Import kdiff3_0.9.98.orig.tar.gz
authorEike Sauer <eike@debian.org>
Sun, 3 Aug 2014 15:37:00 +0000 (16:37 +0100)
committerEike Sauer <eike@debian.org>
Sun, 3 Aug 2014 15:37:00 +0000 (16:37 +0100)
[dgit import orig kdiff3_0.9.98.orig.tar.gz]

426 files changed:
AUTHORS [new file with mode: 0644]
CMakeLists.txt [new file with mode: 0644]
COPYING [new file with mode: 0644]
ChangeLog [new file with mode: 0644]
Doxyfile [new file with mode: 0644]
INSTALL [new file with mode: 0644]
NEWS [new file with mode: 0644]
README [new file with mode: 0644]
TODO [new file with mode: 0644]
cmake/modules/FindLibKonq.cmake [new file with mode: 0644]
config-kdiff3.h.cmake [new file with mode: 0644]
configure [new file with mode: 0755]
diff_ext_for_kdiff3/LICENSE [new file with mode: 0644]
diff_ext_for_kdiff3/Makefile [new file with mode: 0644]
diff_ext_for_kdiff3/Makefile_64bit [new file with mode: 0755]
diff_ext_for_kdiff3/README [new file with mode: 0644]
diff_ext_for_kdiff3/class_factory.cpp [new file with mode: 0644]
diff_ext_for_kdiff3/class_factory.h [new file with mode: 0644]
diff_ext_for_kdiff3/diff_ext.cpp [new file with mode: 0644]
diff_ext_for_kdiff3/diff_ext.h [new file with mode: 0644]
diff_ext_for_kdiff3/diff_ext.pot [new file with mode: 0644]
diff_ext_for_kdiff3/diff_ext_de.po [new file with mode: 0644]
diff_ext_for_kdiff3/diff_ext_for_kdiff3.def [new file with mode: 0644]
diff_ext_for_kdiff3/diff_ext_for_kdiff3.rc [new file with mode: 0644]
diff_ext_for_kdiff3/diff_ext_for_kdiff3.vcproj [new file with mode: 0644]
diff_ext_for_kdiff3/diff_ext_for_kdiff3_msvc.def [new file with mode: 0644]
diff_ext_for_kdiff3/diffextstring.h [new file with mode: 0644]
diff_ext_for_kdiff3/server.cpp [new file with mode: 0644]
diff_ext_for_kdiff3/server.h [new file with mode: 0644]
doc/CMakeLists.txt [new file with mode: 0644]
doc/README [new file with mode: 0644]
doc/createpdfdoc [new file with mode: 0644]
doc/da/CMakeLists.txt [new file with mode: 0644]
doc/da/index.docbook [new file with mode: 0644]
doc/de/CMakeLists.txt [new file with mode: 0644]
doc/de/index.docbook [new file with mode: 0644]
doc/en/CMakeLists.txt [new file with mode: 0644]
doc/en/common/1.png [new file with mode: 0644]
doc/en/common/10.png [new file with mode: 0644]
doc/en/common/2.png [new file with mode: 0644]
doc/en/common/3.png [new file with mode: 0644]
doc/en/common/4.png [new file with mode: 0644]
doc/en/common/5.png [new file with mode: 0644]
doc/en/common/6.png [new file with mode: 0644]
doc/en/common/7.png [new file with mode: 0644]
doc/en/common/8.png [new file with mode: 0644]
doc/en/common/9.png [new file with mode: 0644]
doc/en/common/artistic-license.html [new file with mode: 0644]
doc/en/common/block_title_bottom.png [new file with mode: 0644]
doc/en/common/block_title_mid.png [new file with mode: 0644]
doc/en/common/block_title_top.png [new file with mode: 0644]
doc/en/common/bottom-left.png [new file with mode: 0644]
doc/en/common/bottom-middle.png [new file with mode: 0644]
doc/en/common/bottom-right.png [new file with mode: 0644]
doc/en/common/bsd-license.html [new file with mode: 0644]
doc/en/common/doxygen.css [new file with mode: 0644]
doc/en/common/favicon.ico [new file with mode: 0644]
doc/en/common/fdl-license [new file with mode: 0644]
doc/en/common/fdl-license.html [new file with mode: 0644]
doc/en/common/fdl-notice.html [new file with mode: 0644]
doc/en/common/footer.html [new file with mode: 0644]
doc/en/common/gpl-license [new file with mode: 0644]
doc/en/common/gpl-license.html [new file with mode: 0644]
doc/en/common/header.html [new file with mode: 0644]
doc/en/common/kde-default.css [new file with mode: 0644]
doc/en/common/kde_logo_bg.png [new file with mode: 0644]
doc/en/common/lgpl-license [new file with mode: 0644]
doc/en/common/lgpl-license.html [new file with mode: 0644]
doc/en/common/mainfooter.html [new file with mode: 0644]
doc/en/common/mainheader.html [new file with mode: 0644]
doc/en/common/qpl-license.html [new file with mode: 0644]
doc/en/common/tabs.css [new file with mode: 0644]
doc/en/common/top-kde.jpg [new file with mode: 0644]
doc/en/common/top-left.jpg [new file with mode: 0644]
doc/en/common/top-left.png [new file with mode: 0644]
doc/en/common/top-middle.png [new file with mode: 0644]
doc/en/common/top-right.jpg [new file with mode: 0644]
doc/en/common/top-right.png [new file with mode: 0644]
doc/en/common/top.jpg [new file with mode: 0644]
doc/en/common/x11-license.html [new file with mode: 0644]
doc/en/common/xml.dcl [new file with mode: 0644]
doc/en/dirbrowser.png [new file with mode: 0644]
doc/en/dirmergebig.png [new file with mode: 0644]
doc/en/index.docbook [new file with mode: 0644]
doc/en/iteminfo.png [new file with mode: 0644]
doc/en/kdiff3.1 [new file with mode: 0644]
doc/en/letter_by_letter.png [new file with mode: 0644]
doc/en/merge_current.png [new file with mode: 0644]
doc/en/new.png [new file with mode: 0644]
doc/en/open_dialog.png [new file with mode: 0644]
doc/en/screenshot_diff.png [new file with mode: 0644]
doc/en/screenshot_merge.png [new file with mode: 0644]
doc/en/triple_diff.png [new file with mode: 0644]
doc/en/white_space.png [new file with mode: 0644]
doc/es/CMakeLists.txt [new file with mode: 0644]
doc/es/index.docbook [new file with mode: 0644]
doc/et/CMakeLists.txt [new file with mode: 0644]
doc/et/index.docbook [new file with mode: 0644]
doc/fr/CMakeLists.txt [new file with mode: 0644]
doc/fr/index.docbook [new file with mode: 0644]
doc/it/CMakeLists.txt [new file with mode: 0644]
doc/it/index.docbook [new file with mode: 0644]
doc/nl/CMakeLists.txt [new file with mode: 0644]
doc/nl/index.docbook [new file with mode: 0644]
doc/pt/CMakeLists.txt [new file with mode: 0644]
doc/pt/index.docbook [new file with mode: 0644]
doc/sv/CMakeLists.txt [new file with mode: 0644]
doc/sv/index.docbook [new file with mode: 0644]
doc/update_doc_dir [new file with mode: 0644]
kdiff3.spec [new file with mode: 0644]
kdiff3fileitemactionplugin/CMakeLists.txt [new file with mode: 0644]
kdiff3fileitemactionplugin/kdiff3fileitemaction.cpp [new file with mode: 0644]
kdiff3fileitemactionplugin/kdiff3fileitemaction.desktop [new file with mode: 0644]
kdiff3fileitemactionplugin/kdiff3fileitemaction.h [new file with mode: 0644]
kdiff3plugin-QT4/CMakeLists.txt [new file with mode: 0644]
kdiff3plugin-QT4/Messages.sh [new file with mode: 0644]
kdiff3plugin-QT4/kdiff3_plugin.desktop [new file with mode: 0644]
kdiff3plugin-QT4/kdiff3plugin.cpp [new file with mode: 0644]
kdiff3plugin-QT4/kdiff3plugin.desktop [new file with mode: 0644]
kdiff3plugin-QT4/kdiff3plugin.h [new file with mode: 0644]
po/CMakeLists.txt [new file with mode: 0644]
po/CMakeLists_xx.txt [new file with mode: 0644]
po/README [new file with mode: 0644]
po/ar/CMakeLists.txt [new file with mode: 0644]
po/ar/kdiff3.po [new file with mode: 0644]
po/bg/CMakeLists.txt [new file with mode: 0644]
po/bg/kdiff3.po [new file with mode: 0644]
po/br/CMakeLists.txt [new file with mode: 0644]
po/br/kdiff3.po [new file with mode: 0644]
po/bs/CMakeLists.txt [new file with mode: 0644]
po/bs/kdiff3.po [new file with mode: 0644]
po/bs/kdiff3fileitemactionplugin.po [new file with mode: 0644]
po/bs/kdiff3plugin.po [new file with mode: 0644]
po/ca/CMakeLists.txt [new file with mode: 0644]
po/ca/kdiff3.po [new file with mode: 0644]
po/ca/kdiff3fileitemactionplugin.po [new file with mode: 0644]
po/ca/kdiff3plugin.po [new file with mode: 0644]
po/ca@valencia/CMakeLists.txt [new file with mode: 0644]
po/ca@valencia/kdiff3.po [new file with mode: 0644]
po/ca@valencia/kdiff3plugin.po [new file with mode: 0644]
po/create_qm_files [new file with mode: 0644]
po/cs/CMakeLists.txt [new file with mode: 0644]
po/cs/kdiff3.po [new file with mode: 0644]
po/cs/kdiff3fileitemactionplugin.po [new file with mode: 0644]
po/cs/kdiff3plugin.po [new file with mode: 0644]
po/cy/CMakeLists.txt [new file with mode: 0644]
po/cy/kdiff3.po [new file with mode: 0644]
po/da/CMakeLists.txt [new file with mode: 0644]
po/da/kdiff3.po [new file with mode: 0644]
po/da/kdiff3fileitemactionplugin.po [new file with mode: 0644]
po/da/kdiff3plugin.po [new file with mode: 0644]
po/de/CMakeLists.txt [new file with mode: 0644]
po/de/kdiff3.po [new file with mode: 0644]
po/de/kdiff3fileitemactionplugin.po [new file with mode: 0644]
po/de/kdiff3plugin.po [new file with mode: 0644]
po/el/CMakeLists.txt [new file with mode: 0644]
po/el/kdiff3.po [new file with mode: 0644]
po/el/kdiff3fileitemactionplugin.po [new file with mode: 0644]
po/el/kdiff3plugin.po [new file with mode: 0644]
po/en_GB/CMakeLists.txt [new file with mode: 0644]
po/en_GB/kdiff3.po [new file with mode: 0644]
po/en_GB/kdiff3plugin.po [new file with mode: 0644]
po/eo/CMakeLists.txt [new file with mode: 0644]
po/eo/kdiff3.po [new file with mode: 0644]
po/eo/kdiff3plugin.po [new file with mode: 0644]
po/es/CMakeLists.txt [new file with mode: 0644]
po/es/kdiff3.po [new file with mode: 0644]
po/es/kdiff3fileitemactionplugin.po [new file with mode: 0644]
po/es/kdiff3plugin.po [new file with mode: 0644]
po/et/CMakeLists.txt [new file with mode: 0644]
po/et/kdiff3.po [new file with mode: 0644]
po/et/kdiff3fileitemactionplugin.po [new file with mode: 0644]
po/et/kdiff3plugin.po [new file with mode: 0644]
po/fr/CMakeLists.txt [new file with mode: 0644]
po/fr/kdiff3.po [new file with mode: 0644]
po/fr/kdiff3fileitemactionplugin.po [new file with mode: 0644]
po/fr/kdiff3plugin.po [new file with mode: 0644]
po/ga/CMakeLists.txt [new file with mode: 0644]
po/ga/kdiff3.po [new file with mode: 0644]
po/ga/kdiff3plugin.po [new file with mode: 0644]
po/gl/CMakeLists.txt [new file with mode: 0644]
po/gl/kdiff3.po [new file with mode: 0644]
po/gl/kdiff3plugin.po [new file with mode: 0644]
po/hi/CMakeLists.txt [new file with mode: 0644]
po/hi/kdiff3.po [new file with mode: 0644]
po/hne/CMakeLists.txt [new file with mode: 0644]
po/hne/kdiff3.po [new file with mode: 0644]
po/hr/CMakeLists.txt [new file with mode: 0644]
po/hr/kdiff3.po [new file with mode: 0644]
po/hr/kdiff3plugin.po [new file with mode: 0644]
po/hu/CMakeLists.txt [new file with mode: 0644]
po/hu/kdiff3.po [new file with mode: 0644]
po/hu/kdiff3plugin.po [new file with mode: 0644]
po/is/CMakeLists.txt [new file with mode: 0644]
po/is/kdiff3.po [new file with mode: 0644]
po/is/kdiff3plugin.po [new file with mode: 0644]
po/it/CMakeLists.txt [new file with mode: 0644]
po/it/kdiff3.po [new file with mode: 0644]
po/it/kdiff3fileitemactionplugin.po [new file with mode: 0644]
po/it/kdiff3plugin.po [new file with mode: 0644]
po/ja/CMakeLists.txt [new file with mode: 0644]
po/ja/kdiff3.po [new file with mode: 0644]
po/ja/kdiff3fileitemactionplugin.po [new file with mode: 0644]
po/ja/kdiff3plugin.po [new file with mode: 0644]
po/ka/CMakeLists.txt [new file with mode: 0644]
po/ka/kdiff3.po [new file with mode: 0644]
po/kdiff3.pot [new file with mode: 0644]
po/kdiff3plugin.pot [new file with mode: 0644]
po/lt/CMakeLists.txt [new file with mode: 0644]
po/lt/kdiff3.po [new file with mode: 0644]
po/lt/kdiff3plugin.po [new file with mode: 0644]
po/mai/CMakeLists.txt [new file with mode: 0644]
po/mai/kdiff3.po [new file with mode: 0644]
po/ml/CMakeLists.txt [new file with mode: 0644]
po/ml/kdiff3.po [new file with mode: 0644]
po/ml/kdiff3plugin.po [new file with mode: 0644]
po/nb/CMakeLists.txt [new file with mode: 0644]
po/nb/kdiff3.po [new file with mode: 0644]
po/nb/kdiff3fileitemactionplugin.po [new file with mode: 0644]
po/nb/kdiff3plugin.po [new file with mode: 0644]
po/nds/CMakeLists.txt [new file with mode: 0644]
po/nds/kdiff3.po [new file with mode: 0644]
po/nds/kdiff3fileitemactionplugin.po [new file with mode: 0644]
po/nds/kdiff3plugin.po [new file with mode: 0644]
po/nl/CMakeLists.txt [new file with mode: 0644]
po/nl/kdiff3.po [new file with mode: 0644]
po/nl/kdiff3fileitemactionplugin.po [new file with mode: 0644]
po/nl/kdiff3plugin.po [new file with mode: 0644]
po/nn/CMakeLists.txt [new file with mode: 0644]
po/nn/kdiff3.po [new file with mode: 0644]
po/nn/kdiff3plugin.po [new file with mode: 0644]
po/pl/CMakeLists.txt [new file with mode: 0644]
po/pl/kdiff3.po [new file with mode: 0644]
po/pl/kdiff3fileitemactionplugin.po [new file with mode: 0644]
po/pl/kdiff3plugin.po [new file with mode: 0644]
po/pt/CMakeLists.txt [new file with mode: 0644]
po/pt/kdiff3.po [new file with mode: 0644]
po/pt/kdiff3fileitemactionplugin.po [new file with mode: 0644]
po/pt/kdiff3plugin.po [new file with mode: 0644]
po/pt_BR/CMakeLists.txt [new file with mode: 0644]
po/pt_BR/kdiff3.po [new file with mode: 0644]
po/pt_BR/kdiff3fileitemactionplugin.po [new file with mode: 0644]
po/pt_BR/kdiff3plugin.po [new file with mode: 0644]
po/ro/CMakeLists.txt [new file with mode: 0644]
po/ro/kdiff3.po [new file with mode: 0644]
po/ro/kdiff3plugin.po [new file with mode: 0644]
po/ru/CMakeLists.txt [new file with mode: 0644]
po/ru/kdiff3.po [new file with mode: 0644]
po/ru/kdiff3fileitemactionplugin.po [new file with mode: 0644]
po/ru/kdiff3plugin.po [new file with mode: 0644]
po/rw/CMakeLists.txt [new file with mode: 0644]
po/rw/kdiff3.po [new file with mode: 0644]
po/sk/CMakeLists.txt [new file with mode: 0644]
po/sk/kdiff3.po [new file with mode: 0644]
po/sk/kdiff3fileitemactionplugin.po [new file with mode: 0644]
po/sk/kdiff3plugin.po [new file with mode: 0644]
po/sv/CMakeLists.txt [new file with mode: 0644]
po/sv/kdiff3.po [new file with mode: 0644]
po/sv/kdiff3fileitemactionplugin.po [new file with mode: 0644]
po/sv/kdiff3plugin.po [new file with mode: 0644]
po/ta/CMakeLists.txt [new file with mode: 0644]
po/ta/kdiff3.po [new file with mode: 0644]
po/tg/CMakeLists.txt [new file with mode: 0644]
po/tg/kdiff3.po [new file with mode: 0644]
po/tr/CMakeLists.txt [new file with mode: 0644]
po/tr/kdiff3.po [new file with mode: 0644]
po/tr/kdiff3plugin.po [new file with mode: 0644]
po/ug/CMakeLists.txt [new file with mode: 0644]
po/ug/kdiff3.po [new file with mode: 0644]
po/ug/kdiff3plugin.po [new file with mode: 0644]
po/uk/CMakeLists.txt [new file with mode: 0644]
po/uk/kdiff3.po [new file with mode: 0644]
po/uk/kdiff3fileitemactionplugin.po [new file with mode: 0644]
po/uk/kdiff3plugin.po [new file with mode: 0644]
po/update_po_dir [new file with mode: 0644]
po/zh_CN/CMakeLists.txt [new file with mode: 0644]
po/zh_CN/kdiff3.po [new file with mode: 0644]
po/zh_CN/kdiff3plugin.po [new file with mode: 0644]
po/zh_TW/CMakeLists.txt [new file with mode: 0644]
po/zh_TW/kdiff3.po [new file with mode: 0644]
po/zh_TW/kdiff3fileitemactionplugin.po [new file with mode: 0644]
po/zh_TW/kdiff3plugin.po [new file with mode: 0644]
src-QT4/CMakeLists.txt [new file with mode: 0644]
src-QT4/ccInstHelper.cpp [new file with mode: 0644]
src-QT4/common.cpp [new file with mode: 0644]
src-QT4/common.h [new file with mode: 0644]
src-QT4/diff.cpp [new file with mode: 0644]
src-QT4/diff.h [new file with mode: 0644]
src-QT4/difftextwindow.cpp [new file with mode: 0644]
src-QT4/difftextwindow.h [new file with mode: 0644]
src-QT4/directorymergewindow.cpp [new file with mode: 0644]
src-QT4/directorymergewindow.h [new file with mode: 0644]
src-QT4/fileaccess.cpp [new file with mode: 0644]
src-QT4/fileaccess.h [new file with mode: 0644]
src-QT4/gnudiff_analyze.cpp [new file with mode: 0644]
src-QT4/gnudiff_diff.h [new file with mode: 0644]
src-QT4/gnudiff_io.cpp [new file with mode: 0644]
src-QT4/gnudiff_system.h [new file with mode: 0644]
src-QT4/gnudiff_xmalloc.cpp [new file with mode: 0644]
src-QT4/guiutils.h [new file with mode: 0644]
src-QT4/hi16-app-kdiff3.png [new file with mode: 0644]
src-QT4/hi32-app-kdiff3.png [new file with mode: 0644]
src-QT4/kdiff3.cpp [new file with mode: 0644]
src-QT4/kdiff3.desktop [new file with mode: 0644]
src-QT4/kdiff3.h [new file with mode: 0644]
src-QT4/kdiff3.ico [new file with mode: 0644]
src-QT4/kdiff3.lsm [new file with mode: 0644]
src-QT4/kdiff3.pro [new file with mode: 0644]
src-QT4/kdiff3_os2.ico [new file with mode: 0644]
src-QT4/kdiff3_part.cpp [new file with mode: 0644]
src-QT4/kdiff3_part.h [new file with mode: 0644]
src-QT4/kdiff3_part.rc [new file with mode: 0644]
src-QT4/kdiff3_shell.cpp [new file with mode: 0644]
src-QT4/kdiff3_shell.h [new file with mode: 0644]
src-QT4/kdiff3_shell.rc [new file with mode: 0644]
src-QT4/kdiff3os2.rc [new file with mode: 0644]
src-QT4/kdiff3part.desktop [new file with mode: 0644]
src-QT4/kdiff3win.rc [new file with mode: 0755]
src-QT4/kreplacements/README [new file with mode: 0644]
src-QT4/kreplacements/ShellContextMenu.cpp [new file with mode: 0644]
src-QT4/kreplacements/ShellContextMenu.h [new file with mode: 0644]
src-QT4/kreplacements/config-kdiff3.h [new file with mode: 0644]
src-QT4/kreplacements/kaboutdata.h [new file with mode: 0644]
src-QT4/kreplacements/kaccel.h [new file with mode: 0644]
src-QT4/kreplacements/kaction.h [new file with mode: 0644]
src-QT4/kreplacements/kactioncollection.h [new file with mode: 0644]
src-QT4/kreplacements/kapplication.h [new file with mode: 0644]
src-QT4/kreplacements/kcmdlineargs.h [new file with mode: 0644]
src-QT4/kreplacements/kcolorbutton.h [new file with mode: 0644]
src-QT4/kreplacements/kcomponentdata.h [new file with mode: 0644]
src-QT4/kreplacements/kconfig.h [new file with mode: 0644]
src-QT4/kreplacements/kdialogbase.h [new file with mode: 0644]
src-QT4/kreplacements/kedittoolbar.h [new file with mode: 0644]
src-QT4/kreplacements/kfiledialog.h [new file with mode: 0644]
src-QT4/kreplacements/kfontdialog.h [new file with mode: 0644]
src-QT4/kreplacements/kglobal.h [new file with mode: 0644]
src-QT4/kreplacements/kiconloader.h [new file with mode: 0644]
src-QT4/kreplacements/kinstance.h [new file with mode: 0644]
src-QT4/kreplacements/kio/copyjob.h [new file with mode: 0644]
src-QT4/kreplacements/kio/global.h [new file with mode: 0644]
src-QT4/kreplacements/kio/job.h [new file with mode: 0644]
src-QT4/kreplacements/kio/jobclasses.h [new file with mode: 0644]
src-QT4/kreplacements/kio/jobuidelegate.h [new file with mode: 0644]
src-QT4/kreplacements/klibloader.h [new file with mode: 0644]
src-QT4/kreplacements/klocale.h [new file with mode: 0644]
src-QT4/kreplacements/kmainwindow.h [new file with mode: 0644]
src-QT4/kreplacements/kmenu.h [new file with mode: 0644]
src-QT4/kreplacements/kmenubar.h [new file with mode: 0644]
src-QT4/kreplacements/kmessagebox.h [new file with mode: 0644]
src-QT4/kreplacements/konq_popupmenu.h [new file with mode: 0644]
src-QT4/kreplacements/kpagedialog.h [new file with mode: 0644]
src-QT4/kreplacements/kparts/factory.h [new file with mode: 0644]
src-QT4/kreplacements/kparts/mainwindow.h [new file with mode: 0644]
src-QT4/kreplacements/kparts/part.h [new file with mode: 0644]
src-QT4/kreplacements/kprinter.h [new file with mode: 0644]
src-QT4/kreplacements/kprogress.h [new file with mode: 0644]
src-QT4/kreplacements/kprogressdialog.h [new file with mode: 0644]
src-QT4/kreplacements/kreplacements.cpp [new file with mode: 0644]
src-QT4/kreplacements/kreplacements.h [new file with mode: 0644]
src-QT4/kreplacements/kshortcutsdialog.h [new file with mode: 0644]
src-QT4/kreplacements/kstandardaction.h [new file with mode: 0644]
src-QT4/kreplacements/kstandarddirs.h [new file with mode: 0644]
src-QT4/kreplacements/kstatusbar.h [new file with mode: 0644]
src-QT4/kreplacements/ktemporaryfile.h [new file with mode: 0644]
src-QT4/kreplacements/ktoggleaction.h [new file with mode: 0644]
src-QT4/kreplacements/ktoolbar.h [new file with mode: 0644]
src-QT4/kreplacements/kunload.h [new file with mode: 0644]
src-QT4/kreplacements/kurl.h [new file with mode: 0644]
src-QT4/lo16-app-kdiff3.png [new file with mode: 0644]
src-QT4/lo32-app-kdiff3.png [new file with mode: 0644]
src-QT4/main.cpp [new file with mode: 0644]
src-QT4/merger.cpp [new file with mode: 0644]
src-QT4/merger.h [new file with mode: 0644]
src-QT4/mergeresultwindow.cpp [new file with mode: 0644]
src-QT4/mergeresultwindow.h [new file with mode: 0644]
src-QT4/optiondialog.cpp [new file with mode: 0644]
src-QT4/optiondialog.h [new file with mode: 0644]
src-QT4/options.h [new file with mode: 0644]
src-QT4/pdiff.cpp [new file with mode: 0644]
src-QT4/progress.cpp [new file with mode: 0644]
src-QT4/progress.h [new file with mode: 0644]
src-QT4/smalldialogs.cpp [new file with mode: 0644]
src-QT4/smalldialogs.h [new file with mode: 0644]
src-QT4/stable.cpp [new file with mode: 0644]
src-QT4/stable.h [new file with mode: 0644]
src-QT4/version.h [new file with mode: 0644]
src-QT4/xpm/autoadvance.xpm [new file with mode: 0644]
src-QT4/xpm/currentpos.xpm [new file with mode: 0644]
src-QT4/xpm/down1arrow.xpm [new file with mode: 0644]
src-QT4/xpm/down2arrow.xpm [new file with mode: 0644]
src-QT4/xpm/downend.xpm [new file with mode: 0644]
src-QT4/xpm/file.xpm [new file with mode: 0644]
src-QT4/xpm/filenew.xpm [new file with mode: 0644]
src-QT4/xpm/fileopen.xpm [new file with mode: 0644]
src-QT4/xpm/fileprint.xpm [new file with mode: 0644]
src-QT4/xpm/filesave.xpm [new file with mode: 0644]
src-QT4/xpm/folder.xpm [new file with mode: 0644]
src-QT4/xpm/iconA.xpm [new file with mode: 0644]
src-QT4/xpm/iconB.xpm [new file with mode: 0644]
src-QT4/xpm/iconC.xpm [new file with mode: 0644]
src-QT4/xpm/link_arrow.xpm [new file with mode: 0644]
src-QT4/xpm/nextunsolved.xpm [new file with mode: 0644]
src-QT4/xpm/prevunsolved.xpm [new file with mode: 0644]
src-QT4/xpm/reload.xpm [new file with mode: 0644]
src-QT4/xpm/showequalfiles.xpm [new file with mode: 0644]
src-QT4/xpm/showfilesonlyina.xpm [new file with mode: 0644]
src-QT4/xpm/showfilesonlyinb.xpm [new file with mode: 0644]
src-QT4/xpm/showfilesonlyinc.xpm [new file with mode: 0644]
src-QT4/xpm/showlinenumbers.xpm [new file with mode: 0644]
src-QT4/xpm/showwhitespace.xpm [new file with mode: 0644]
src-QT4/xpm/showwhitespacechars.xpm [new file with mode: 0644]
src-QT4/xpm/startmerge.xpm [new file with mode: 0644]
src-QT4/xpm/up1arrow.xpm [new file with mode: 0644]
src-QT4/xpm/up2arrow.xpm [new file with mode: 0644]
src-QT4/xpm/upend.xpm [new file with mode: 0644]
test/alignmenttest.cpp [new file with mode: 0644]
test/fakefileaccess.cpp [new file with mode: 0644]
test/fakekdiff3_part.cpp [new file with mode: 0644]
test/fakeoptiondialog.cpp [new file with mode: 0644]
test/fakeprogressproxy.cpp [new file with mode: 0644]
test/testdata/1_simpletest_base.txt [new file with mode: 0644]
test/testdata/1_simpletest_contrib1.txt [new file with mode: 0644]
test/testdata/1_simpletest_contrib2.txt [new file with mode: 0644]
test/testdata/1_simpletest_expected_result.txt [new file with mode: 0644]
test/testdata/README [new file with mode: 0644]
test/tests.pro [new file with mode: 0644]

diff --git a/AUTHORS b/AUTHORS
new file mode 100644 (file)
index 0000000..e4781f1
--- /dev/null
+++ b/AUTHORS
@@ -0,0 +1 @@
+Joachim Eibl <joachim.eibl@gmx.de>
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644 (file)
index 0000000..0387420
--- /dev/null
@@ -0,0 +1,53 @@
+cmake_minimum_required(VERSION 2.6)
+project(kdiff3)
+
+find_package(KDE4 REQUIRED)
+include (MacroLibrary)
+SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules)
+
+add_definitions(${QT_DEFINITIONS} ${KDE4_DEFINITIONS})
+
+include_directories( 
+    ${KDE4_INCLUDE_DIR} 
+    ${QT_INCLUDES}  
+    ${CMAKE_CURRENT_BINARY_DIR}
+    )
+
+link_directories(
+    ${KDE4_LIB_DIR}
+    )
+
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config-kdiff3.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-kdiff3.h )
+
+add_subdirectory(src-QT4)
+add_subdirectory(po)
+add_subdirectory(doc)
+
+
+find_file(KFILEITEMACTIONPLUGIN_FOUND kfileitemactionplugin.h PATHS ${KDE4_INCLUDE_DIR} NO_DEFAULT_PATH)
+if(KFILEITEMACTIONPLUGIN_FOUND)
+  message(STATUS "")
+  message(STATUS "kfileitemactionplugin.h found........... YES")
+  message(STATUS "   => kdiff3fileitemactionplugin (KDiff3 contextmenu plugin for Konqueror/Dolphin, KDE>4.6) will be built.")
+  message(STATUS "")
+  add_subdirectory(kdiff3fileitemactionplugin)
+else(KFILEITEMACTIONPLUGIN_FOUND)
+  message(STATUS "")
+  message(STATUS "kfileitemactionplugin.h found........... NO")
+  message(STATUS "   => kdiff3fileitemactionplugin (KDiff3 contextmenu plugin for Konqueror/Dolphin, KDE>4.6) will not be built.)")
+  message(STATUS "Trying fallback via libkonq (works with Konqueror only) ...")
+  MACRO_OPTIONAL_FIND_PACKAGE(LibKonq)
+  MACRO_BOOL_TO_01(LIBKONQ_FOUND HAVE_LIBKONQ)
+  if(LIBKONQ_FOUND)
+    message(STATUS "")
+    message(STATUS "libkonq module found........... YES")
+    message(STATUS "   => kdiff3plugin (KDiff3 contextmenu plugin for Konqueror) will be built.")
+    message(STATUS "")
+    add_subdirectory(kdiff3plugin-QT4)
+  else(LIBKONQ_FOUND)
+    message(STATUS "")
+    message(STATUS "libkonq module found........... NO")
+    message(STATUS "   => kdiff3plugin (KDiff3 contextmenu plugin for Konqueror) will not be built.)")
+    message(STATUS "")
+  endif(LIBKONQ_FOUND)
+endif(KFILEITEMACTIONPLUGIN_FOUND)
diff --git a/COPYING b/COPYING
new file mode 100644 (file)
index 0000000..e7f1f85
--- /dev/null
+++ b/COPYING
@@ -0,0 +1,340 @@
+                   GNU GENERAL PUBLIC LICENSE
+                      Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+               51 Franklin Steet, Fifth Floor, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                           Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+\f
+                   GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+\f
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+\f
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+\f
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+                           NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+                    END OF TERMS AND CONDITIONS
+\f
+           How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/ChangeLog b/ChangeLog
new file mode 100644 (file)
index 0000000..638cabc
--- /dev/null
+++ b/ChangeLog
@@ -0,0 +1,561 @@
+Version 0.9.98 - 2014-07-04
+===========================
+- Text rendering now with QTextLayout fixes the following issues
+  - Correct handling for variable width fonts.
+  - Corrected display of highlighted text with Qt4.8.x on Ubuntu and Mac.
+  - Improved handling of texts with both right to left and left to right languages (mixed Arabic and western texts).
+  - Improved handling of Chinese and Japanese.
+  - Whitespace characters are now shown as dots for spaces and arrows for tabs, and not only in differences.
+  - Fixed symlink comparison (Qt4 symLinkTarget returns absolute paths) 
+- Text analysis for rendering with QTextLayout is interruptable and multithreaded.
+  (See progressbar and abort-button in statusbar)
+- Fix for saving to relative path in KDE-environments. (Patch from Harald Sitter)
+- Fixed bug in 0.9.97: Directory compare was always case sensitive.
+- Fix for saving files on KDE with relative path specified via command line option -o.
+- Fixed problem with KIO (nonlocal urls).
+- Improved Mac support.
+- Write --confighelp information to stdout instead of stderr.
+- Directory Merge Window: Enabled state of "Delete A And B" now also depends on existence of source file A.
+- Works now with Qt4 and Qt5
+- Progress dialog during printing.
+- Workaround for bug in QSplitter::childEvent that broke QFileDialog::getSaveFileName
+
+Version 0.9.97 - 2012-08-10
+===========================
+- Memory usage optimized for comparison of large directories. (ca. 1/5 needed)
+- On Windows use config file .kdiff3rc next to kdiff3.exe if exists.
+- In overwiev for two way diff show if only one side contains text.
+- Fix for Fedora by Neal Becker in src-QT4/kdiff3part.desktop.
+- When word wrap is active toggling line numbers now recalculates the word wrap.
+- Removed confusing "For compatibility ..." hint from option -qall
+- Fixed mouse wheel problem. (Patch by David Hay)
+- Change an encoding in diff text window via click on encoding label. (Patch by Alexey Kostromin)
+- Fix for tab-key moving focus instead of adding a tab character in MergeResultWindow.
+- Workaround for git on Cygwin that allows KDiff3 to find files in a Cygwin "/tmp" directory 
+  when environment variable "CYGWIN_BIN" is set. (Patch by Nigel Stewart)
+- Removed iostream dependency (Patch by Nigel Stewart)
+- Regression test framework (by Maurice van der Pot)
+- Documentation patch (by Burkard Lueck)
+- Select text in Find dialog (by Eike Sauer)
+- If text is selected in either input or output window use that in Find dialog.
+- Added default directory anti patterns ".hg" and ".git" and file anti patterns ".rej" and ".bak" for better mercurial and git integration.
+- Command line option --cs doesn't change the config value permanently anymore.
+- On KDE: Not creating a KDiff3Part anymore.
+- Windows (Vista or Win 7): Shell context menu in directory comparison view now again displays text.
+- Windows 64 bit: Diff-Ext-for-KDiff3 context menu now installed as 32 bit and 64 bit versions to allow other 32 bit programs to use it too.
+- Windows 64 bit specific installer.
+
+Version 0.9.96 - 2011-09-02
+===========================
+- KDiff3FileItemActionPlugin : Context menu that also works in dolphin (for KDE>=4.6)
+- Parser for preprocessor commands. (Allows single apostrophs ')
+- On Windows if the preprocessor command is "sed" try to use a "bin\sed.exe" next to the kdiff3.exe, if available.
+- Warn if conversion errors appear (Invalid characters)
+- Fix crash on A/B-overview (infinite recursion)
+- Fix clearcase temp files not deleted problem on windows
+- KDiff3 plugin: When launching KDiff3 konqueror isn't blocked anymore
+- String corrections (Frederik Schwarzer)
+- Fixed writing to KIO.
+- OS2-Port (Patch by Silvan Scherrer)
+- Fixed problem where destination directory would be renamed or deleted during copy operation. 
+  Now if the destination directory exists only the files inside will be copied.
+- In merge: Separate lines where the automatic choice would be the same but for different reasons.
+- Fixed some problems with huge files in directory comparison mode (>2GB) (but direct comparison is still not possible)
+- Fixed documentation compile errors with KDE>=4.5
+- Fixed white space merge default options
+- Fixed regexp test tool.
+- Exclude printing code if Qt was compiled without printing support.
+- For Windows: Fixed handling of unicode characters in command line parameters.
+- Improved "old mac" lineendstyle handling: Break lines.
+- Detect encoding specified in xml header or html "meta" tag. 
+
+Version 0.9.95 - 2009/03/03
+===========================
+- Show line end style for each file.
+- Updated message translations.
+- Fixed permissions when writing executable file. (Un*x only)
+- Fixed IgnorableCmdLineOptions (important for SVNs '-u'-option)
+- Directory merge: Error when either B or C is changed and the other is deleted. (User choice required.)
+- Qt-only Un*x-version looks for translations in /usr/share/locale/<lang>/LC_MESSAGES/kdiff3.qm
+  (for Debian, by Eike Sauer)
+- New script: po/create_qm_files: To create and install translations for Qt-only version.
+
+Version 0.9.94 - 2009/01/17
+===========================
+- Fix for hidden text windows with --auto-flag.
+- Fix for pasting clipboard truncated text if it contained characters that needed more than one byte in UTF-8 encoding.
+- Fix for horizontal scrolling if word wrap is enabled.
+- Directory tree: files hidden due to options (e.g. patterns etc.) don't affect folder equality any more.
+- KDE: KIO-progress dialog is now hidden. (KDiff3 has its own progress dialog.)
+- Directory merge: Default op for change in either B or C and delete in the other is now merge (previously copy).
+- Directory merge: Not preserving merge operation after reload, because it might have changed.
+
+Version 0.9.93 - 2009/01/06
+===========================
+- Support for KDE4 (with much porting help from Valentin Rusu)
+- Fix for diff_ext_for_kdiff3 (by Sergey Zorin)
+- Win32-Installation: SendTo-integration fixed for Vista.
+- Optional auto detection of line end style for saving.
+- Option to close on ESC (default is off)
+- Option to align B and C for 3 input files (default is off which is usually better for merging).
+
+Version 0.9.92 - 2007/04/15
+===========================
+- Windows installer now allows to install KDiff3 as Clearcase Diff and Merge Tool
+- Windows installer "SVN Merge tool" corrected: Not creating $AppData\Subversion\config subdir anymore.
+- KDE-Konqueror plugin: Launch KDiff3 from Konqueror. (Similar to Diff-Ext on Windows.)
+- Qt4-version
+  - Printing crash fixed
+  - Compilation issue for Mac fixed
+- Dir Rescan keeps settings for Show identical files etc.
+- Bugfix: Empty file and not existing file were detected as binary equal.
+- Temp file names use the process id in file name to allow several instances.
+- Suppress flicker during startup. (Don't show status info window on creation.)
+- New File comparison mode: Trust the size and date, but use binary comparison if date doesn't match (unsafe)
+- After explicitely selecting files any file of the selected may be right clicked for context menu.
+- Open dialog also shows current directories in directory comparison mode.
+- Writing a file via --auto option didn't work for relative files. (Reported by Guilhem Bichot)
+- New option for history merge: Max number of history entries
+- New option "Auto save and quit on merge without conflicts"
+- Directory Merge with Case sensitivity disabled: Correct destination filename chosen for merge.
+
+Version 0.9.91 - 2006/10/29
+===========================
+- Encoding auto detection
+- Fix for crash after double click below last line
+- Saving of maximized window-state (Patch by Robert Vock)
+- Separated Merge-options in own tab because "Diff and Merge"-options tab got too big.
+- When pasting multiple lines into openfile dialog only first line is kept
+- Drawing in directory view fixed.
+- When specifying a separate output dir then for equal files a copy operation will also be offered.
+- Windows specific:
+  - Windows installer problems fixed for users without admin-rights
+  - Fix for slow startup problem on Windows (Patch by Manfred Koehler)
+  - New: diff-ext-for-kdiff3 - Shell extension (originally by Sergey Zorin)
+- Qt4-version:
+  - Saving of merge-result didn't work.
+  - Start external processes directly without cmd.exe-window
+  - Rewrote everything requiring Qt3-support
+
+Version 0.9.90 - 2006/05/14
+===========================
+- Fixed KIO-problems of type "File exists" with tempfiles (introduced in 0.9.89)
+- Fix for manual alignment with 3 files which caused crash (new feature in 0.9.89)
+- Fix for Alt-Left caused crash for leftmost window on windows (due to changed compiler)
+- Use of WResizeNoErase|WRepaintNoErase instead of WNoAutoErase (fix for compiler error with Qt3.1)
+- Removed #include <konq_popupmenu.h> which is (currently) unneeded and required extra dependencies.
+- Removed "Save/Load Directory Merge State ..." in directory menu. (These aren't working yet.)
+- Fixed crash when used as Diff-part with KDevelop.
+- Preserve executable bit when overwriting an existing file.
+
+Version 0.9.89 - 2006/04/09
+===========================
+New features:
+- Version control history auto merge plus sorting
+- Auto merge regular expression
+- Splitting and joining differences for merging
+- Manual Diff Alignment tool
+- Printing of differences
+- Colorsettings for Dir-Colors
+- Dir-show identical/different/A-only/B-only/C-only files with immediate effect (instead of option "List only deltas")
+- Filename-edit above DiffInputWindows
+- Windows-Context Menu in A/B/C-columns for dir-comparison (Windows only)
+- Edit Menu: Select All (Ctrl-A)
+- New commandline options: 
+  --config filename: Select an individual config file. (Now also available for Windows and Qt-only version.)
+  --cs config: Change one specific setting via the command line. (For settings that were previously adjustable via GUI only.)
+  --confighelp: Show available config items and their current values.
+- Dircomp: "Compare/Merge explicitly selected files" (Select files/dirs by clicking icons in columns A/B/C)
+- User definable ignored command line options.
+- Ability to swap pathnames in open dialog
+- "Ignore"-button in error dialog when option not understood (Windows only)
+- Quadratical scroll speedup during selection when mouse moves out of the diff input window.
+Bugfixes, redesign:
+- Preparations for Qt4-Port + some redesign
+- GNU-Diff algorithm improved to be independent of line endings (needed for manual diff alignment)
+- Avoid restoring a window where it is almost invisible (if moved almost out of the screen area)
+- Go to next delta honors special "A vs. B", "A vs. C" or "B vs. C" overview when active. (Patch by Vladan Bato)
+- DirectoryMergeWindow: File/Antifile and DirPattern changes will update immediately without rescan.
+- Blue toolbar icons (for better visibility of disabled state)
+- Bugfix: Crash when merging and selecting "Choose A/B/C for all unsolved conflicts"
+  and one of the solved conflicts contained no lines in chosen input.
+- Fix: With --auto option, GUI stays invisible if not necessary
+- Fixed odd ProgressDialog-behaviour when continuing after an error or abort.
+- Directory merge: Fixed FollowFileLinks. (Didn't work when copying a file.)
+- Initial position now (x=0,y=22). This solves a problem on some Macs.
+- Better alignment of B and C in 3-file comparison
+- Correctly updating the selection when scrolling via keys and mouse is pressed
+- Horizontal scrolling in right-to-left language caused vertical lines - fixed.
+
+
+Version 0.9.88 - 2005/25/02
+===========================
+- Fixed crash that occurred in Directory Comparison mode "Full-Analysis".
+- Fix for Windows: Didn't save encoding correctly.
+- Many translations updated.
+
+Version 0.9.87 - 2005/30/01
+===========================
+- Unicode16 and UTF8 support (Internal data format is now QString (Unicode16). Conversion during save and load.)
+- Directory "Full Analysis": Equality-Coloring for files with only whitespace differences. (Michael Denio)
+- Support for right to left languages.
+- In MergeResultWindow show "<Merge Conflict (Whitespace only)>" for whitespace-only conflicts
+- Statusbar shows the number of remaining conflicts and whitespace conflicts.
+- Go Next/Prev Difference/Conflict now have improved tooltips informing about "Show White Space"-disabled-behaviour.
+
+Version 0.9.86 - 2004/06/14
+===========================
+- Double click on any file in directory merge would close the directory merge window. (Regression in 0.9.85)
+
+Version 0.9.85 - 2004/06/14
+===========================
+- When solving a conflict KDiff3 reports the number of remaining unsolved conflicts in the status bar.
+Bugfixes:
+- Fix for MergeResultWindow-contextmenu: All items were disabled always. (new in 0.9.84)
+- Fix for problem when opening files specified relative to current directory. (new in 0.9.84, qt-only-version)
+- Fix for compilation with older gcc (2.9x)
+- Several Word-wrap problems fixed: 
+     - Find string with word wrap active didn't work if found text was not in first wrap-line.
+     - overview-position was not updated when toggling word wrap
+     - horizontal scrollbar was not updated when toggling word wrap
+     - current selection was lost when toggling word wrap
+     - selecting a conflict in the diff-text-window didn't work right with word wrap.
+- Qt-only: Bold attribute for fonts was not persistent
+- Qt-only: Toolbar position was not persistent
+- Qt-only: Language-choice shows also the full language name.
+- Cursor and windows-boundary-lines were always black instead of having the foreground color
+- Starting KDiff3 with two not existing files showed a dialog saying that files are binary equal.
+- Errors while starting a directory comparison now also reopens the open-dialog.
+- Speedup during directory comparison by avoiding unnecessary redraws. (These always creep in again :-()
+- On KDE: When resetting to default options (or first start) now the default KDE-fixed font will be used.
+- Mergeresultwindow: Improved behaviour after automatic merge operation.
+
+Version 0.9.84 - 2004/05/29
+============================
+New Features:
+- Word Wrap for DiffTextWindow
+- Directory-Comparison: Option "Full Analysis" allows to show the number of solved vs. unsolved 
+  conflicts or deltas vs. whitespace-changes in the directory tree.
+- Diff-Menu for Diff-view specific entries
+- Docs now contain a new chapter for uses of preprocessor and line-matching-preprocessor. 
+- Added several credits which now are also visible in the Qt-only version.
+- The Qt-only version now also shows all command-line options. Under windows a dialog shows them.
+- Command line options -u and -L for Subversion-support.
+- Command line options --L1/2/3 for specifying alias names.
+- In the Qt-only-version the user-interface-language can be set via the regional-settings 
+  (only effective after a restart).
+- ProgressDialog redesign for recursive use.
+- Overview now allows to show the delta between two other files in triplediff-mode.
+- Option to ignore case which treats case-changes like white space (instead of conversion to upcase).
+Bugfixes:
+- Dir-Comp: When one file exists, but the other doesn't then instead the latest used other file was displayed.
+- Open dialog: When previously a file C was used, but should be empty now, it reappeared unbidden.
+- Several bugs for 64-bit systems fixed.
+- Fixed crash when one file ended with a newline and the other did not.
+- Windows: Case insensitive filename-pattern matching.
+- Corrected behaviour for files with size 0.
+- Fix for crash due to a race-condition (Patch by Eike Sauer)
+- Windows: Scrolling didn't work right when another window was in front.
+- Mergeresultwindow didn't show correct position when starting a second or later merge.
+- Fix for problem where sometimes the A/B/C-buttons were in wrong state.
+- Pasting from selection via the middle mousebutton.
+
+Version 0.9.83 - 2004/03/06
+===========================
+- Reading directorys fixed for Win95/98
+- Caseinsensitive filename matching for windows.
+- Autocopy to selection for systems that support this. (Patch by Stefan Partheymueller)
+- Drawing during recalc suppressed in merge result editor.
+- Cursor could go beyond last line in merge result editor. (Corrected NrOfLine-counting.)
+- Windows: Start with invalid cmd-line-options brings up a messagebox with the list of options.
+- Corrected encoding when copying to or pasting from clipboard.
+- Corrected char-by-char-diff at beginning of line. ("012345 12345 xyz" <-> "012345 xyz")
+- Warning when merging with preprocessor or upcase-conversion enabled.
+- Rewrite of preprocessing code should fix several problems. E.g.:
+  - Ignore C/C++-comments only worked with a preprocessor active.
+  - Preprocessor output now is input of line-matching preprocessor.
+  - Paste to diff-window, didn't work if LMPP or Ignore C/C++-Comments was set.
+
+Version 0.9.82 - 2004/02/02
+===========================
+- DirectoryMerge: Running merge op for last item in a folder, performed the
+  merge op for all following items in following folders. (Possible data loss!)
+- Fix: Preprocessors and "Ignore Comments" didn't work at the same time.
+- Fix: Preprocessors crashed with remote files.
+- Open-Dialog: When either input is changed, then reset the output to be empty.
+  (To avoid accidental overwrites.)
+- Icon for "Highlight white space differences."
+- Editor-Option: Line End Style for saving: Dos/Windows "\r\n" vs. Unix "\n"
+- Merge output editor: Corrected wrong encoding for output-filename and 
+  user-typed characters.
+- Speedup for reading directories under Windows.
+- Enhanced progress dialog responsiveness during local file copy.
+- Fix for non-KDE-version: No URL-encoding when dropping files in open dialog.
+
+Version 0.9.81 - 2004/01/08
+===========================
+- Allow to compile with --enable-final
+- Bugfix for 3 file-compare (and A or B don't exist, crashed)
+- Bugfix for crash when second directory is merged
+- Some keyboard-shortcuts for selection of merge-operation didn't work correctly.
+- Shortcuts Ctrl-1/2/3 are possible in textmergewindow and in dirmergewindow, 
+  depending on the focus.
+- First steps towards internationalisation
+- Manpage doc/en/kdiff3.1 by Eike Sauer (for Debian)
+- Directory rescan shortcut SHIFT-F5
+
+Version 0.9.80 - 2003/12/08
+===========================
+New Text Diff/Merge Features:
+- Now using GNU-diff algorithms internally. (Option "External Diff" removed.)
+- Option for treating C/C++ comments as whitespace during diff.
+- Bugfix for locale character encoding (+ new option "Use string encoding")
+- Option for suppressing highlighting in white-space changes.
+  (Also suppresses highlighting in comments and numbers when the
+  respective options are active.)
+- Merge-menu: Choose A/B/C for all unsolved conflicts.
+              Choose A/B/C for all unsolved whitespace conflicts.
+- Options to automatically choose a certain source for whitespace conflicts.
+- Shorcut F5 now used to reload the current file.
+
+New Directory-Comparison/Merge Features:
+- Option to trust filesize. (Some directory services don't copy the date/time correctly.)
+- Shortcut F7 now starts complete directory merge (previously F5).
+- Do the selected merge operation for the selected file/dir only
+  "Run Operation For Current Item" (F6).
+- Shortcuts for selecting the merge operation for the selected item.
+  Ctrl-1/2/3/4/Del select A/B/C/Merge/Delete respectively.
+
+Other Improvements:
+- Several i18n-corrections (by Stephan Binner)
+- Bugfix for option CVS-ignore: Didn't work correctly in subdirectories.
+- Bugfix for remote operations: Operation can now be aborted, when KIO-slaves doesn't respond.
+- Cancel-Button in progress bar.
+- Default diff-view now again side by side instead of one above the other.
+
+
+Version 0.9.71 - 2003/10/17
+===========================
+- Windows-Installer by Sebastien Fricker.
+- Bugfixes for Windows. (Problems with setFont() in paintEvent().)
+- Default font for Windows now "Courier New" (instead of Courier)
+- Fix for compilation with gcc 2.95
+- Support for Ctrl-Tab under Windows.
+- Fix for finding documentation.
+- Fix for problem with directory-sync-mode (new in 0.9.70).
+- Fix for several subsequent CR-characters in input file.
+
+Version 0.9.70 - 2003/09/28
+===========================
+- Transparent access to URLs via KIO (KDE only):
+  Compare files and directories on ftp, fish, smb, tar etc. ressources.
+- Workaround for a Win32-bug (Crashed sometimes during selections)
+- When the merge flag is selected in the open dialog, the directory-tool
+  always starts a merge by default for each file. Without the flag only a
+  diff will be started by default.
+- Immediately showing progress bar in dir scan.
+- Showing progress bar for file comparison too.
+- Directory-menu: Fold/Unfold all subdirs
+- Bugfix for 3-way auto-merge: A line deleted from the base in B and C
+  resulted in a empty line instead of being completely removed.
+- Improved locale support
+- KDiff3 is now a KPart
+   - in KDevelop3 it can be used to compare the current text with the
+     last saved version, or the current version on disk with the last cvs version.
+   - in Konqueror it can be used to look at a unified *.patch-file if one complete
+     version is available too.
+- Documentation is now in docbook-format.
+- "Toggle Split Orientation" for Diff-Input windows. (Good for long lines.)
+- When "Dir and Text Split-Screen-View" is off: Now "Focus Next/Prev Window"
+  also toggles between dir and text-windows. Selecting a file via double click
+  switches to text-screen.
+- KDiff3 displays a warning when trying to read a dir without the permission.
+- Directory-Diff-Option "Use CVS-Ignore" to ignore files like CVS does.
+- Displaying a status message at the end of the directory-comparison.
+- Cursor in MergeResultWindow is automatically placed at current difference when a jump occurred.
+  (But not when something was selected.)
+- Fix for cursor blinking in the topline of the MergeResultWindow.
+
+
+Version 0.9.61 - 2003/06/07
+===========================
+- Compilation problem fixed.
+- Directory merge: Preserving file attributes and times during copy. (now also for Win32)
+- Crash fixed, when directory comparison from the command-line was started.
+
+
+Version 0.9.60 - 2003/06/01
+===========================
+New features:
+- New ways to select input for the diff window:
+  - Pasting clipboard text into a diff window.
+  - Drag and drop a file from a filemanager (e.g. konqueror) onto a diff window.
+  - Drag and drop text from an editor (e.g. kate) onto a diff window.
+  Reanalysis starts immediately if no merge is in progress.
+  (This should help you to compare similar parts in the same file.)
+- New/Deleted white lines are now also considered as white deltas.
+- Configurable keyboard shortcuts for most actions (KDE version only).
+- The overview now also distinguishes whitespace deltas.
+New preprocessor options:
+- You can now define your own external Preprocessor and LineMatchingPreprocessor:
+- "Convert to upper case",
+- "Ignore numbers"
+Fixed bugs:
+- Directory merge: Preserving file attributes and times during copy.
+  (not for Win32 yet)
+Source-tree-structure:
+- Switch to KDevelop3 (Gideon): Renamed subdir "kdiff3" to "src".
+- xpm-files in xpm-subdirectory.
+
+
+Version 0.9.51 - 2003/04/14
+===========================
+- Compilation fix for gcc 2.95.
+
+
+Version 0.9.50 - 2003/03/30
+===========================
+Fixed bugs:
+- Auto-Advance setting was lost when entering the settings-dialog.
+- Windows specific: Keys with AltGr-Combination didn't work.
+- Windows 95/98/ME: Fixed crash when KDiff3 is called used without parameters,
+  and corrected support for external diff.
+New Features:
+- Search-function: Search for a string in all open text windows.
+- Special background colors for current region.
+- Button to toggle showing of whitespace in differences.
+- Buttons to go to next/prev unsolved (!) conflict.
+- While auto-advance waits, no more choices are allowed.
+- New setting: Auto-advance-delay.
+  (Note that with delay 0 fast clicks might be detected as double clicks and the second
+  click does nothing. My advice: Prefer the keyboard-shortcuts Ctrl-1/2/3)
+- Functions to Show/Hide Diff Window A, B or C. The other windows then have more space.
+- Merge editor: The right mouse button selects the current region and lets you choose
+  A, B or C via a popup menu.
+- Commandline option --auto: No GUI if all conflicts are auto-solvable.
+- When equal files are compared, then a message box informs you.
+- Merge current file: When comparing two or three files, the merge can be started with a single click.
+- Option dialog: Warning for "Defaults" added, because it resets all options.
+- A warning is given, when the user tries to merge binary files. (i.e. files that contain '\0'-bytes)
+Changed behaviour:
+- 3 file automerge: When for a line B==C (and A!=B) then C will be selected.
+  (In older versions this was a conflict. I was convinced that this is no problem.)
+- Auto-Advance now jumps to next unsolved (!) conflict.
+- On 256-color-displays KDiff3 uses them. (Previously KDiff3 only used 16 colors.)
+- On 16-color-displays the Defaults-button in the options dialog selects special colors.
+
+
+Version 0.941 - 2003/02/09
+==========================
+Fixed bugs:
+- Qt-only-version: Compile problem corrected.
+- Documentation: Formatting for tables corrected.
+
+
+Version 0.94 - 2003/02/09
+=========================
+New features:
+- Option to use external GNU-diff for line matching.
+  (Sometimes GNU-diff is better, sometimes not: You may choose now.)
+- In diff-windows a tooltip shows the full path if you move the mouse on the filename.
+- Speedup of directory-merge operations without user interaction.
+  (Not every item in the tree is made visible anymore. This took too long.)
+- When opening a file for comparison or merge KDiff3 immediately shows the first difference.
+- "Go To Top/Bottom"-action have been changed to "Go To First/Last Delta".
+- Font-Option "Italic For Deltas" added.
+- Many icons and actions will only be enabled, when the operation is possible.
+- Icon for merge of current file in directory merge mode added.
+- New action "Go to Current Delta".
+- Conflicts where some lines contained only-white-space-changes are now separated from
+  other non-white-space-conflicts.
+- Experimental: Use as replacement for ClearCase-cleardiffmrg.exe (under Windows only).
+  See main.cpp for details.
+
+Fixed bugs:
+- If files were different, but had the same dates, the "not existant"-icon was
+  shown for one file. Now a error message will be shown if the option
+  "Copy newer instead of merging" is used.
+- Documentation: Section "The Operation Column" corrected.
+- Qt-only-version: Fontsize wasn't correctly restored.
+-                  Keyboard accelerators didn't work for ToggleActions.
+
+
+Version 0.931 - 2003/01/19
+==========================
+Fix for compilation problems with gcc version < 3.
+
+
+Version 0.93 - 2003/01/16
+=========================
+New features:
+- Directory comparison and merge. (More than 3000 new lines of code only here!!!)
+- Open-Dialog: Filename specification: If no previous filename is there then start
+  directory is taken from another file.
+- Message about number of found and automatically solved conflicts.
+- Support for wheelmouse based scrolling.
+- New option in Diff-tab: Preserve Carriage Return Characters
+
+Fixed bugs:
+- Save button disabled until all conflicts are solved.
+- Copy-operation conserves conflict messages "<Merge Conflict>".
+- Paste operation created pseudo conflicts when the clipboard contained empty lines.
+- W95/98/ME specific program crash removed.
+
+
+Version 0.92 - 2002/11/04
+=========================
+Severe bug corrected:
+- Merge menu: Choose A/B/C Everywhere sometimes lost data. (introduced in 0.9)
+
+
+Version 0.91 - 2002/11/03
+=========================
+Speed improvements for very big/complicated files:
+- Faster analysis because of limited search range (can be adjusted).
+- Faster scrolling and editor behaviour.
+
+Fixed bugs:
+- Compilation problem with gcc 3.2 fixed.
+- When comparing two lines, matching spaces often were undetected.
+- Merge editor appended extra empty line when saving.
+- Sometimes the next diff/conflict wasn't made visible.
+- The Auto-Advance setting is saved now.
+- When doing a merge the application now has modified-state,
+  even without further input. (The old method wasn't safe.)
+- File selection now always in directory of respective file.
+
+
+Version 0.9 - 2002/10/16
+========================
+New features:
+- Qt-only support. Allows compilation under KDE2, Gnome, Mac, Windows, ...
+  Note that KDE3 still gets special treatment.
+- For Mergers: Auto-Advance after selection, Choose A/B/C everwhere, ...
+- Commandline: If files with same name in different directories
+  are compared, only the first parameter needs the filename.
+- Shift-Del, Ctrl-Ins, Shift-Ins supported for Cut/Copy/Paste
+
+Fixed bugs:
+- Make failed on some systems because of missing "minmax.h".
+- Files where opened for reading, but not closed afterwards.
+- Vertical scrollbar sometimes didn't work correctly.
+
+
+
+Version 0.81 - 2002/08/18
+=========================
+New features:
+- Now KDE3 is also supported. Previously only KDE2 was supported.
+- Navigation via click into the overview column now supported.
+
+Fixed bugs:
+- Some input files caused a crash in the diff-algorithm.
+- The meaning of option "Ignore trivial matches" was inverted.
+- When selecting a text in one window, this deselects any previously
+  active selection in the same or another window.
+
+
+
+Version 0.8 - 2002/07/28
+========================
+This is the first version to be released.
diff --git a/Doxyfile b/Doxyfile
new file mode 100644 (file)
index 0000000..bed3cc1
--- /dev/null
+++ b/Doxyfile
@@ -0,0 +1,236 @@
+# Doxyfile 1.3.7-KDevelop
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+PROJECT_NAME           = kdiff3
+PROJECT_NUMBER         = 0.9.85
+OUTPUT_DIRECTORY       = 
+CREATE_SUBDIRS         = NO
+OUTPUT_LANGUAGE        = English
+USE_WINDOWS_ENCODING   = NO
+BRIEF_MEMBER_DESC      = YES
+REPEAT_BRIEF           = YES
+ABBREVIATE_BRIEF       = 
+ALWAYS_DETAILED_SEC    = NO
+INLINE_INHERITED_MEMB  = NO
+FULL_PATH_NAMES        = NO
+STRIP_FROM_PATH        = 
+STRIP_FROM_INC_PATH    = 
+SHORT_NAMES            = NO
+JAVADOC_AUTOBRIEF      = NO
+MULTILINE_CPP_IS_BRIEF = NO
+DETAILS_AT_TOP         = NO
+INHERIT_DOCS           = YES
+DISTRIBUTE_GROUP_DOC   = NO
+TAB_SIZE               = 8
+ALIASES                = 
+OPTIMIZE_OUTPUT_FOR_C  = NO
+OPTIMIZE_OUTPUT_JAVA   = NO
+SUBGROUPING            = YES
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+EXTRACT_ALL            = YES
+EXTRACT_PRIVATE        = NO
+EXTRACT_STATIC         = NO
+EXTRACT_LOCAL_CLASSES  = YES
+EXTRACT_LOCAL_METHODS  = NO
+HIDE_UNDOC_MEMBERS     = NO
+HIDE_UNDOC_CLASSES     = NO
+HIDE_FRIEND_COMPOUNDS  = NO
+HIDE_IN_BODY_DOCS      = NO
+INTERNAL_DOCS          = NO
+CASE_SENSE_NAMES       = YES
+HIDE_SCOPE_NAMES       = NO
+SHOW_INCLUDE_FILES     = YES
+INLINE_INFO            = YES
+SORT_MEMBER_DOCS       = YES
+SORT_BRIEF_DOCS        = NO
+SORT_BY_SCOPE_NAME     = NO
+GENERATE_TODOLIST      = YES
+GENERATE_TESTLIST      = YES
+GENERATE_BUGLIST       = YES
+GENERATE_DEPRECATEDLIST= YES
+ENABLED_SECTIONS       = 
+MAX_INITIALIZER_LINES  = 30
+SHOW_USED_FILES        = YES
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+QUIET                  = NO
+WARNINGS               = YES
+WARN_IF_UNDOCUMENTED   = YES
+WARN_IF_DOC_ERROR      = YES
+WARN_FORMAT            = "$file:$line: $text"
+WARN_LOGFILE           = 
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+INPUT                  = /home/joachim/kdiff3
+FILE_PATTERNS          = *.c \
+                         *.cc \
+                         *.cxx \
+                         *.cpp \
+                         *.c++ \
+                         *.java \
+                         *.ii \
+                         *.ixx \
+                         *.ipp \
+                         *.i++ \
+                         *.inl \
+                         *.h \
+                         *.hh \
+                         *.hxx \
+                         *.hpp \
+                         *.h++ \
+                         *.idl \
+                         *.odl \
+                         *.C \
+                         *.H \
+                         *.tlh \
+                         *.diff \
+                         *.patch \
+                         *.moc \
+                         *.xpm
+RECURSIVE              = YES
+EXCLUDE                = 
+EXCLUDE_SYMLINKS       = NO
+EXCLUDE_PATTERNS       = 
+EXAMPLE_PATH           = 
+EXAMPLE_PATTERNS       = *
+EXAMPLE_RECURSIVE      = NO
+IMAGE_PATH             = 
+INPUT_FILTER           = 
+FILTER_SOURCE_FILES    = NO
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+SOURCE_BROWSER         = NO
+INLINE_SOURCES         = NO
+STRIP_CODE_COMMENTS    = YES
+REFERENCED_BY_RELATION = YES
+REFERENCES_RELATION    = YES
+VERBATIM_HEADERS       = YES
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+ALPHABETICAL_INDEX     = NO
+COLS_IN_ALPHA_INDEX    = 5
+IGNORE_PREFIX          = 
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+GENERATE_HTML          = YES
+HTML_OUTPUT            = html
+HTML_FILE_EXTENSION    = .html
+HTML_HEADER            = 
+HTML_FOOTER            = 
+HTML_STYLESHEET        = 
+HTML_ALIGN_MEMBERS     = YES
+GENERATE_HTMLHELP      = NO
+CHM_FILE               = 
+HHC_LOCATION           = 
+GENERATE_CHI           = NO
+BINARY_TOC             = NO
+TOC_EXPAND             = NO
+DISABLE_INDEX          = NO
+ENUM_VALUES_PER_LINE   = 4
+GENERATE_TREEVIEW      = NO
+TREEVIEW_WIDTH         = 250
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+GENERATE_LATEX         = NO
+LATEX_OUTPUT           = latex
+LATEX_CMD_NAME         = latex
+MAKEINDEX_CMD_NAME     = makeindex
+COMPACT_LATEX          = NO
+PAPER_TYPE             = a4wide
+EXTRA_PACKAGES         = 
+LATEX_HEADER           = 
+PDF_HYPERLINKS         = NO
+USE_PDFLATEX           = NO
+LATEX_BATCHMODE        = NO
+LATEX_HIDE_INDICES     = NO
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+GENERATE_RTF           = NO
+RTF_OUTPUT             = rtf
+COMPACT_RTF            = NO
+RTF_HYPERLINKS         = NO
+RTF_STYLESHEET_FILE    = 
+RTF_EXTENSIONS_FILE    = 
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+GENERATE_MAN           = NO
+MAN_OUTPUT             = man
+MAN_EXTENSION          = .3
+MAN_LINKS              = NO
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+GENERATE_XML           = NO
+XML_OUTPUT             = xml
+XML_SCHEMA             = 
+XML_DTD                = 
+XML_PROGRAMLISTING     = YES
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+GENERATE_AUTOGEN_DEF   = NO
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+GENERATE_PERLMOD       = NO
+PERLMOD_LATEX          = NO
+PERLMOD_PRETTY         = YES
+PERLMOD_MAKEVAR_PREFIX = 
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor   
+#---------------------------------------------------------------------------
+ENABLE_PREPROCESSING   = YES
+MACRO_EXPANSION        = NO
+EXPAND_ONLY_PREDEF     = NO
+SEARCH_INCLUDES        = YES
+INCLUDE_PATH           = 
+INCLUDE_FILE_PATTERNS  = 
+PREDEFINED             = 
+EXPAND_AS_DEFINED      = 
+SKIP_FUNCTION_MACROS   = YES
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references   
+#---------------------------------------------------------------------------
+TAGFILES               = 
+GENERATE_TAGFILE       = 
+ALLEXTERNALS           = NO
+EXTERNAL_GROUPS        = YES
+PERL_PATH              = /usr/bin/perl
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool   
+#---------------------------------------------------------------------------
+CLASS_DIAGRAMS         = YES
+HIDE_UNDOC_RELATIONS   = YES
+HAVE_DOT               = NO
+CLASS_GRAPH            = YES
+COLLABORATION_GRAPH    = YES
+UML_LOOK               = NO
+TEMPLATE_RELATIONS     = YES
+INCLUDE_GRAPH          = YES
+INCLUDED_BY_GRAPH      = YES
+CALL_GRAPH             = NO
+GRAPHICAL_HIERARCHY    = YES
+DOT_IMAGE_FORMAT       = png
+DOT_PATH               = 
+DOTFILE_DIRS           = 
+MAX_DOT_GRAPH_WIDTH    = 1024
+MAX_DOT_GRAPH_HEIGHT   = 1024
+MAX_DOT_GRAPH_DEPTH    = 0
+GENERATE_LEGEND        = YES
+DOT_CLEANUP            = YES
+#---------------------------------------------------------------------------
+# Configuration::additions related to the search engine   
+#---------------------------------------------------------------------------
+SEARCHENGINE           = NO
diff --git a/INSTALL b/INSTALL
new file mode 100644 (file)
index 0000000..71ec147
--- /dev/null
+++ b/INSTALL
@@ -0,0 +1,4 @@
+Please read the README-file.
+
+Joachim
+
diff --git a/NEWS b/NEWS
new file mode 100644 (file)
index 0000000..203ae39
--- /dev/null
+++ b/NEWS
@@ -0,0 +1 @@
+See the ChangeLog
diff --git a/README b/README
new file mode 100644 (file)
index 0000000..c84b28b
--- /dev/null
+++ b/README
@@ -0,0 +1,188 @@
+KDiff3-Readme
+=============
+
+Author: Joachim Eibl  (joachim.eibl at gmx.de)
+Copyright: (C) 2002-2014 by Joachim Eibl
+KDiff3-Version: 0.9.98
+
+KDiff3 runs best on KDE but can be built without it, depending only on Qt-libs.
+These are available for Un*x, Windows, Mac.
+Thus there are many setup possibilities to consider.
+
+Supported Qt-versions: 4.8, 5.2 or higher.
+Supported KDE-version: 4
+(For KDE3/Qt3 use KDiff3-0.9.92 or older.)
+
+Contents
+--------
+
+- Introduction
+- License
+- Requirements & Installation
+  - For KDE4
+  - With Qt4-libs, without KDE
+    - for Linux/Un*x
+    - for Windows
+    - Debugging with MinGW under Windows:
+    - for Mac: Building KDiff3 for Mac OSX (with Intel processor)
+    - Creating and installing translation messages
+- Additional hints
+
+
+Introduction
+------------
+
+KDiff3 is a program that
+- compares and merges two or three input files or directories,
+- shows the differences line by line and character by character (!),
+- provides an automatic merge-facility and
+- an integrated editor for comfortable solving of merge-conflicts
+- has support for KDE-KIO (ftp, sftp, http, fish, smb),
+- has an intuitive graphical user interface,
+- provides a context menu for KDE-Konqueror and Windows-Explorer,
+- supports 64 bit systems. (Some build issues are discussed in here.)
+- Support for many encodings and Unicode.
+
+Do you want help translating? Read the README in the po-subdirectory!
+
+
+License
+-------
+
+    GNU GENERAL PUBLIC LICENSE, Version 2, June 1991
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Steet, Fifth Floor, Boston, MA 02111-1307
+    USA
+
+    For details see file "COPYING".
+
+
+Build & Install (for Un*x systems)
+----------------------------------
+
+0) Unpack KDiff3*.tar.gz
+1) Run "./configure kde4" or "./configure qt4" from the KDiff3 source directory.
+2) Follow instructions
+If it doesn't work continue reading.
+
+
+Requirements & Installation
+---------------------------
+
+- for KDE4:
+   For installation on most distributions you usually also need these packages
+   (names as on opensuse):
+   - g++ (version 4.2 or newer)
+   - libqt4-devel (Qt4-libs, version 4.8.0 or newer)
+   - libkde4-devel (KDE4 Header files and development libraries)
+   - libkonq-devel (optional, needed for the kdiff3-plugin, if not installed
+                    then the contextmenu plugin for konqueror won't be built.)
+   - cmake (>2.6, checks dependencies and creates the appropriate Makefiles for
+     your system)
+
+   Typically in a terminal (e.g. konsole) you cd into the kdiff3-directory and
+   run "./configure kde4". This script is essentially the same as these commands:
+
+      mkdir releaseKde
+      cd releaseKde
+      # Find out your KDE4-directory and note the result
+      kde4-config --prefix
+      # create Makefile, replace <KDE4-prefix> with the prior result
+      cmake .. -DCMAKE_INSTALL_PREFIX=<KDE4-prefix>
+      # run make (compile and link)
+      make
+      # install as root user
+      sudo make install
+
+   Now KDiff3 should be ready to use. Type "kdiff3" to start it.
+   There should also be a entry in your KDE-start menu in
+   "(Applications->)Development".
+
+   For creating a debug version:
+      mkdir debug
+      cd debug
+      # Find out your KDE4-directory and note the result
+      kde4-config --prefix
+      cmake .. -DCMAKE_INSTALL_PREFIX=<KDE4-prefix> -DCMAKE_BUILD_TYPE=debugfull
+      make
+      sudo make install
+
+   The <KDE4-prefix> depends on your distribution:
+   The command "kde4-config --prefix" should tell you.
+   - For opensuse 12 use "/usr".
+
+- Building KDiff3 with Qt4-libs, but without KDE
+    - for Linux/Un*x
+    - for Windows
+    - for Mac
+
+   The version 0.9.98 requires Qt 4.8.0 or newer (from http://qt-project.org/) for
+   compilation.
+
+   Recommended: Get Qt with QtCreator and use the kdiff3.pro file in src-QT4.
+                (should also work with Qt5)
+
+   From command line: Install a working set of Qt-libs.
+   Build-instructions (Un*x, Linux, Mac):
+    Assuming Qt is correctly installed run "./configure qt4" which essentially
+    does the same as:
+    - mkdir releaseQt
+    - cd releaseQt
+    - qmake ../src-QT4/kdiff3.pro
+    - make (or "gmake", or "mingw32-make" etc.)
+
+  Debugging with MinGW under Windows:
+    - Use Qt Creator as debugger frontend!
+
+  Building KDiff3 (Qt4) for Mac OSX:
+    1) Install XCode
+    2) Install Qt with QtCreator for Mac
+    3) Proceed again by opening the kdiff3.pro file
+
+  Creating and installing the translation messages
+    The po directory contains translations from the KDE-translation teams.
+    If you use the Qt-only-version of KDiff3, then the installation described
+    above won't install translations automatically.
+    To create and install the translations:
+    1) cd .../kdiff3-0.9.98/po
+    2) sh create_qm_files install    (asks for a super user password)
+    Just to create the files in the po directory (as needed for the windows
+    version):
+    2) sh create_qm_files local
+
+
+(End of KDiff3 with Qt4-instructions)
+------------------------------------------------------------------------
+
+Additional hints
+----------------
+
+   Start from commandline:
+   - Comparing 2 files:     kdiff3 file1 file2
+   - Merging 2 files:       kdiff3 file1 file2 -o outputfile
+   - Comparing 3 files:     kdiff3 file1 file2 file3
+   - Merging 3 files:       kdiff3 file1 file2 file3 -o outputfile
+        Note that file1 will be treated as base of file2 and file3.
+
+   If all files have the same name but are in different directories, you can
+   reduce typework by specifying the filename only for the first file. E.g.:
+   - Comparing 3 files:     kdiff3 dir1/filename dir2 dir3
+   (This also works in the open-dialog.)
+
+   If you start without arguments, then a dialog will appear where you can
+   select your files via a filebrowser.
+
+   For more documentation, see the help-menu or the subdirectory doc.
+
+   Have fun!
diff --git a/TODO b/TODO
new file mode 100644 (file)
index 0000000..bf6428d
--- /dev/null
+++ b/TODO
@@ -0,0 +1,123 @@
+This file contains some feature-wishes for future KDiff3-versions.
+
+TODO
+====
+- Verknüpfungsziel für Links relativ anzeigen
+- KDiff3-Plugin sollte auch in Dolphin arbeiten
+- Alignmenttechnik bei Merge von 3 Dateien wählbar
+- Horizontales Scrolling reparieren
+
+- Fix drawing in columns A/B/C-directory window
+- Qt4-translation files
+- Double clicking into empty area causes crash
+- Option window is too big (within KDE). (Scrollable?)
+- Windows issues: 
+  - Diff-Ext-For-KDiff3 included in the installer 
+    - language selection from within KDiff3
+- Export to html-format file
+- Export to diff-format output (and import?)
+- Export to diff3-format output (and import?)
+- Use diff-output as input
+- Variable width fonts.
+
+  - Use regular expression to ignore certain patterns
+  - Start without visible compare widgets. (? what did I mean by that)
+
+- Hardlinks -performance support
+- Manual alignment during merge should tell user his data will be lost
+- Installer for windows for users.
+- "List Only Deltas" causes directory merge to delete files
+  (https://sourceforge.net/tracker/index.php?func=detail&aid=1004853&group_id=58666&atid=488548)
+- Diff-view for binary files
+- Diff-view for pictures
+
+> > What I find weird is that KDiff3 first creates the 3-way merge view (so
+> > the window splits in 4 parts), then closes that and reopens in 2-way
+> > diff view. I've never seen the binary package do that. Can this be fixed?
+
+
+- Only show different lines.
+
+- ftp: Abbruch beim Einlesen von Verzeichnis stoppt nicht vollständig
+
+- Projekt-Verwaltung: Die ganze Config-Datei (=Projektdatei) an einen benutzerdefinierten Ort zu legen. (Keine Angabe->Default)
+- Bei Combobox-History alle Elemente von (A/B/C/Out) anzeigen.
+
+- Test on empty floppy drive.
+
+-I suppose this has been asked before, but are there any plans to use
+ colors for change/insert/delete (i.e. blue = change, green = insert, red
+ = delete)?
+
+> I want to compare two revisions of a file (eventually I wanna do this on
+> two directory hierarchies of files) and have an output of how many lines
+> of code were added, modified, and deleted for each file and overall.
+> Also, for "Send To" from Windows, it would be nice if I could pick one
+> file via Send To, find the second file (if it's in a different
+> directory), and click "Send To" again to compare. I.e., when user does
+> "Send To", if one instance is already open and waiting for a second
+> file, the first instance is used.
+
+- kdiff3 does not preserve the permissions of files it overwrites during a 'save' operation.
+
+- Insbesondere Ausführbarkeit "x" und Schreibschutz "w" sollten erhalten bleiben. 
+
+- Under Windows: Shortcut Ctrl-Shift-2 (for select B everywhere doesn't work.)
+-                Paste from Clipboard doesn't work.
+
+- Bug: Comment section isn't recognized as nonwhite difference if several lines are between /* and */ on one side.
+
+
+- Overview-option to show only remaining conflicts.
+- Overview bar for merge-window and for directory-window.
+
+- ??? The gutters (kdiff3 have 2 "gutters") fonts and background-foreground colors sholud be configured other
+  than the "general" foreground-background colors. Otherwise they are confused with the main dialog.
+
+- Try to autodetect the line-end-style
+- Ignore cvs-keywords like $Revision: x.y$
+
+- Undo function in the merge-editor.
+- More viewing options for directory widget.
+
+- And one observation. When select Cyrillic charset - it looks like it was
+  not saved. When open this dialog again - Latin charset is selected anyway.
+- Add options to specify charset.
+- Ask before saving to a file that already exists (optionally).
+- Don't overwrite existing .orig-file, when saving the second time.
+
+- File Menu: Close (Ctrl-F4): Close current file (check if saved and forget the data)
+- Dirview:
+   - Multiselections: Changing Operations or applying ops for all selected items.
+   - Optionally show size/date for A/B/C
+   - Choose what to see (all or only different items)
+   - If only different items are visible: copy the others nevertheless to destdir.
+   - Warnung wenn Datum in B oder C älter als A ist.
+   - Zielverzeichnis nachträglich änderbar
+   - Bei Kopie von Remote nach lokal: Auf jeden Fall das modification Datum setzen.
+   - Ctrl-Space doesn't work when a file comparison takes place.
+   - Option to allow case-insensitive filename-matching.
+- Options to show/suppress annoying messages
+
+- What's this-Help.
+- Tip of the day.
+
+More Statistics before the merge begins:
+- How many files are there?
+- How many files are equal/different?
+- How many files would be copies/merged/ignored?
+
+- Allow to view and merge CVS-conflict files (and diff3-output) and allow to save output
+  with conflicts in diff3 output-format.
+  
+- Provide configure-rules for systems without KDE. (I need help here.)
+
+- Allow different comment-styles (e.g. via a regexp for comments)
+
+- Possibility to jump to next difference in the same line (for very long lines).
+
+- Allow analysis of unified directory-diff/patch-file.
+
+- LineEdit for Save-Filename
diff --git a/cmake/modules/FindLibKonq.cmake b/cmake/modules/FindLibKonq.cmake
new file mode 100644 (file)
index 0000000..f9a06d2
--- /dev/null
@@ -0,0 +1,39 @@
+# - Try to find konqueror library
+# Once done this will define
+#
+#  LIBKONQ_FOUND - system has libkonq library
+#  LIBKONQ_INCLUDE_DIR - the LIBKONQ include directory
+#  LIBKONQ_LIBRARY - the libkonq library
+#
+#  Original file: FindMarbleWidget.cmake (found in digikam-0.10.0-beta2)
+#  copyright 2008 by Patrick Spendrin <ps_ml@gmx.de>
+#  use this file as you like
+#
+#  Modifications to find libkonq by Joachim Eibl 2008
+
+if(LIBKONQ_INCLUDE_DIR AND LIBKONQ_LIBRARY)
+
+  # Already in cache
+  set(LIBKONQ_FOUND TRUE)
+
+else(LIBKONQ_INCLUDE_DIR AND LIBKONQ_LIBRARY)
+  find_path(LIBKONQ_INCLUDE_DIR konq_popupmenuplugin.h )
+
+  find_library(LIBKONQ_LIBRARY konq)
+
+  if(LIBKONQ_INCLUDE_DIR AND LIBKONQ_LIBRARY)
+    set(LIBKONQ_FOUND TRUE)
+  endif(LIBKONQ_INCLUDE_DIR AND LIBKONQ_LIBRARY)
+
+  if(LIBKONQ_FOUND)
+    if (NOT LIBKONQ_FIND_QUIETLY)
+      message(STATUS "Found libkonq: ${LIBKONQ_LIBRARY}")
+    endif (NOT LIBKONQ_FIND_QUIETLY)
+  else(LIBKONQ_FOUND)
+    if(LIBKONQ_FIND_REQUIRED)
+      message(FATAL_ERROR "Could NOT find KDE4 libkonq library")
+    endif(LIBKONQ_FIND_REQUIRED)
+  endif(LIBKONQ_FOUND)
+
+  mark_as_advanced(LIBKONQ_INCLUDE_DIR LIBKONQ_LIBRARY)
+endif(LIBKONQ_INCLUDE_DIR AND LIBKONQ_LIBRARY)
diff --git a/config-kdiff3.h.cmake b/config-kdiff3.h.cmake
new file mode 100644 (file)
index 0000000..e979021
--- /dev/null
@@ -0,0 +1,4 @@
+/* config-kdiff3.h.cmake. */
+
+/* Define to 1 if you have KDE4 libkonq shared library installed */
+#cmakedefine HAVE_LIBKONQ 1
diff --git a/configure b/configure
new file mode 100755 (executable)
index 0000000..30d60c1
--- /dev/null
+++ b/configure
@@ -0,0 +1,87 @@
+#!/bin/bash
+# Manually created configure
+
+function showUsage {
+   printf "Usage: %s: [-d] [-o directory] [kde4|qt4] \n" $0
+   echo Example 1: $0 kde4
+   echo Example 2: $0 -d qt4
+   echo Options:
+   echo -d ... enable debug
+   echo -o \<dir\> ... specify other build directory
+   echo The default build directory is based on the specified arguments. E.g.: \"releaseKde\"
+   echo For requirements, more options and details in case of failure see the README.
+   exit 2
+}
+
+echo "configure for KDiff3 Qt4/KDE4 by Joachim Eibl"
+
+config=release
+outputDir=""
+currentDir=`pwd`
+
+while getopts do: flag
+do
+    case $flag in
+    d)   config="debug";;
+    o)   outputDir="$OPTARG";;
+    ?)   showUsage;;
+    esac
+done
+if [ ! -z "$debug" ]; then
+    printf "Option -d specified\n"
+fi
+
+shift $(($OPTIND - 1))
+#printf "Remaining arguments are: %s\n" "$*"
+
+
+if [ "$1" = "kde4" ]; then
+   if [ "$outputDir" = "" ]; then
+      outputDir="${config}Kde"
+   fi
+   echo Trying to build for KDE4. If anything fails see the README for details.
+   echo Creating and entering subdir "$outputDir"
+   mkdir "$outputDir"                                  # create sub directory
+   cd "$outputDir"
+   export QT_SELECT=4
+   echo "Running cmake \"$currentDir\" -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix`"
+   if [ config = "debug" ]; then
+     cmake "$currentDir" -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix` -DCMAKE_BUILD_TYPE=debugfull
+   else
+     cmake "$currentDir" -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix` 
+   fi
+   if [ $? -ne 0 ]
+   then
+      echo "CMake errors."
+      exit
+   fi
+
+   echo Running make.
+   make                                           # run make (compile and link)
+   if [ $? -ne 0 ]
+   then
+      echo "Compile errors."
+      exit
+   fi
+
+   echo If everything went OK then KDiff3 was built in the subdir "$outputDir".
+   echo "Install as root (requires password)."
+   sudo make install                              # install as root user
+elif [ "$1" = "qt4" ]; then
+   if [ "$outputDir" = "" ]; then
+      outputDir="${config}Qt"
+   fi
+   echo Trying to build for Qt4 without KDE
+   echo Creating and entering subdir "$outputDir"
+   mkdir "$outputDir"                                  # create sub directory
+   cd "$outputDir"
+   qmakecmd="qmake CONFIG+=$config \"$currentDir/src-QT4/kdiff3.pro\""
+   echo "Running $qmakecmd"
+   $qmakecmd
+   echo "Running make"
+   make
+   echo "If everything went OK then KDiff3 was built as $outputDir/kdiff3"
+else
+   showUsage
+fi
+
diff --git a/diff_ext_for_kdiff3/LICENSE b/diff_ext_for_kdiff3/LICENSE
new file mode 100644 (file)
index 0000000..c05a18d
--- /dev/null
@@ -0,0 +1,25 @@
+Diff-Ext: Copyright (c) 2003-2006, Sergey Zorin
+          All rights reserved.
+
+Redistribution and use in source and binary forms, with or without 
+modification, are permitted provided that the following conditions
+are met:
+   1. Redistributions  of  source  code   must  retain  the  above 
+      copyright notice,  this list of conditions and the following
+      disclaimer.
+   2. Redistributions in binary  form  must  reproduce  the  above
+      copyright notice,  this list of conditions and the following 
+      disclaimer  in  the  documentation  and/or  other  materials 
+      provided with the distribution.
+
+THIS SOFTWARE  IS  PROVIDED  BY  THE  COPYRIGHT  HOLDERS  AND  CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED  WARRANTIES, INCLUDING,  BUT NOT LIMITED
+TO, THE IMPLIED WARRANTIES  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE  ARE  DISCLAIMED.  IN  NO  EVENT  SHALL  THE  COPYRIGHT   OWNER  OR
+CONTRIBUTORS  BE  LIABLE  FOR  ANY DIRECT,  INDIRECT, INCIDENTAL,  SPECIAL,
+EXEMPLARY,  OR  CONSEQUENTIAL  DAMAGES  (INCLUDING,  BUT  NOT  LIMITED  TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+OR BUSINESS INTERRUPTION)  HOWEVER CAUSED AND ON ANY THEORY  OF  LIABILITY,
+WHETHER IN CONTRACT,  STRICT LIABILITY,  OR  TORT  (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING  IN  ANY WAY OUT OF THE USE  OF THIS  SOFTWARE,  EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/diff_ext_for_kdiff3/Makefile b/diff_ext_for_kdiff3/Makefile
new file mode 100644 (file)
index 0000000..a17e3d8
--- /dev/null
@@ -0,0 +1,63 @@
+# Project: diff_ext\r
+# Generates diff_ext_for_kdiff3.dll with gcc.\r
+# Can be used for Cygwin and MingW (MingW ignores -mno-cygwin)\r
+#\r
+PROJ := diff_ext_for_kdiff3\r
+\r
+CXX  ?= g++.exe\r
+\r
+ifdef DEBUG\r
+  CXXFLAGS ?= -g\r
+else\r
+  CXXFLAGS ?= -Os\r
+  LDFLAGS += -L. -s -static-libgcc\r
+endif\r
+CXXFLAGS += -pedantic -Wall -W -D_UNICODE -DUNICODE\r
+\r
+LIBS :=  -luuid -lole32\r
+DEFFILE = $(PROJ).def\r
+STATICLIB = $(PROJ).a\r
+EXPLIB = $(PROJ).exp\r
+\r
+SRC-CXX = $(wildcard *.cpp)\r
+SRC-RC = $(wildcard *.rc)\r
+\r
+OBJ  := $(SRC-CXX:.cpp=.o)\r
+RES  := $(SRC-RC:.rc=.res)\r
+OBJ += $(RES)\r
+DLL  := $(PROJ).dll\r
+\r
+.PHONY: all clean\r
+\r
+.SUFFIXES: .rc .res\r
+\r
+all: .depend $(DLL)\r
+\r
+debug:\r
+       $(MAKE) DEBUG=YES UNICODE=YES\r
+\r
+release:\r
+       $(MAKE) \r
+\r
+.depend: Makefile $(SRC-RC) $(SRC-CXX)\r
+       $(CXX) -M $(CXXFLAGS) $(SRC-RC) $(SRC-CXX) > .depend\r
+       \r
+include .depend\r
+\r
+clean:\r
+       del  .depend $(OBJ) $(DLL) ${EXPLIB} $(STATICLIB)\r
+\r
+$(DLL): $(OBJ)\r
+       dllwrap.exe \\r
+               --def $(DEFFILE) \\r
+               --output-exp ${EXPLIB} \\r
+               --driver-name c++ -L/usr/local/lib -L/usr/lib/mingw \\r
+               --implib $(STATICLIB) \\r
+               $(OBJ) $(LDFLAGS) $(LIBS) \\r
+               -o $@\r
+\r
+.cpp.o:\r
+       $(CXX) $(CXXFLAGS) -c $< -o $@ \r
+\r
+.rc.res:\r
+       windres.exe  $< -J rc -o $@ -O coff -DMING\r
diff --git a/diff_ext_for_kdiff3/Makefile_64bit b/diff_ext_for_kdiff3/Makefile_64bit
new file mode 100755 (executable)
index 0000000..c10cf94
--- /dev/null
@@ -0,0 +1,64 @@
+# Project: diff_ext\r
+# Generates diff_ext_for_kdiff3.dll with gcc.\r
+# Can be used for Cygwin and MingW (MingW ignores -mno-cygwin)\r
+#\r
+PROJ := diff_ext_for_kdiff3\r
+\r
+CXX  := x86_64-w64-mingw32-g++.exe\r
+\r
+ifdef DEBUG\r
+  CXXFLAGS ?= -g\r
+else\r
+  CXXFLAGS ?= -Os\r
+  LDFLAGS += -s\r
+endif\r
+CXXFLAGS += -ansi -pedantic -Wall -W -D_UNICODE -DUNICODE\r
+\r
+LIBS := -luuid -lole32\r
+DEFFILE = $(PROJ).def\r
+STATICLIB = $(PROJ).a\r
+EXPLIB = $(PROJ).exp\r
+\r
+SRC-CXX = $(wildcard *.cpp)\r
+SRC-RC = $(wildcard *.rc)\r
+\r
+OBJ  := $(SRC-CXX:.cpp=.o)\r
+RES  := $(SRC-RC:.rc=.res)\r
+OBJ += $(RES)\r
+DLL  := $(PROJ).dll\r
+\r
+.PHONY: all clean\r
+\r
+.SUFFIXES: .rc .res\r
+\r
+all: .depend $(DLL)\r
+\r
+debug:\r
+       $(MAKE) DEBUG=YES UNICODE=YES\r
+\r
+release:\r
+       $(MAKE) \r
+\r
+.depend: Makefile $(SRC-RC) $(SRC-CXX)\r
+       $(CXX) -M $(CXXFLAGS) $(SRC-RC) $(SRC-CXX) > .depend\r
+       \r
+include .depend\r
+\r
+clean: clean-custom\r
+       ${RM}  $(OBJ) $(DLL) ${EXPLIB} $(STATICLIB)\r
+       \r
+$(DLL): $(OBJ)\r
+       x86_64-w64-mingw32-dllwrap.exe \\r
+               --mno-cygwin \\r
+               --def $(DEFFILE) \\r
+               --output-exp ${EXPLIB} \\r
+               --driver-name x86_64-w64-mingw32-g++ -static-libgcc  -L/Users/Joachim/qt/mingw-w64-bin_i686-mingw_20100105/mingw/lib \\r
+               --implib $(STATICLIB) \\r
+               $(OBJ) $(LDFLAGS) $(LIBS) \\r
+               -o $@\r
+\r
+.cpp.o:\r
+       $(CXX) $(CXXFLAGS) -c $< -o $@ \r
+\r
+.rc.res:\r
+       x86_64-w64-mingw32-windres.exe  $< -J rc -o $@ -O coff -DMING\r
diff --git a/diff_ext_for_kdiff3/README b/diff_ext_for_kdiff3/README
new file mode 100644 (file)
index 0000000..8adde0c
--- /dev/null
@@ -0,0 +1,41 @@
+Diff-Ext for KDiff3 - Readme
+============================
+
+Authors: 
+   Sergey Zorin (Author of diff-ext, see http://diff-ext.sourceforge.net)
+   Joachim Eibl (KDiff3-specific extensions and integration, see http://kdiff3.sourceforge.net)
+
+
+Copyright (c):
+Original Diff-Ext:     Copyright (c) 2003-2006, Sergey Zorin, All rights reserved.
+Extensions for KDiff3: Copyright (c) 2006, Joachim Eibl
+
+
+License: See file LICENSE in this subdirectory
+
+
+Building:
+Via MinGW-compiler package (http://www.mingw.org/): Compile via gnu-make (Makefile)
+Via MSVC2005: Use vcproj-file.
+
+
+Installation:
+For basic testing you can run "regsvr32 diff_ext_for_kdiff3.dll".
+To use all features the installation that comes with the KDiff3-setup*.exe is recommended.
+See also the nsi-file available on the KDiff3-subversion-repository:
+http://svn.sourceforge.net/viewvc/*checkout*/kdiff3/trunk/kdiff3/windows_installer/kdiff3.nsi
+
+
+Translation:
+If you would like help translating diff-ext-for-kdiff3 please copy the diff_ext.pot to
+diff_ext_xx.po (where xx is the language-shortcut).
+Then edit that file and fill in the msgstr-string for each respective msgid-string.
+Then place the for in the KDiff3-translations subdirectory.
+Use the language selection within KDiff3 to switch the language or set the language shortcut
+in the registry HKEY_CURRENT_USER\Software\KDiff3\diff-ext: Language
+If everything works, please send me the created file.
+
+
+Have fun,
+Joachim
+
diff --git a/diff_ext_for_kdiff3/class_factory.cpp b/diff_ext_for_kdiff3/class_factory.cpp
new file mode 100644 (file)
index 0000000..538fd2e
--- /dev/null
@@ -0,0 +1,77 @@
+/*\r
+ * Copyright (c) 2003, Sergey Zorin. All rights reserved.\r
+ *\r
+ * This software is distributable under the BSD license. See the terms\r
+ * of the BSD license in the LICENSE file provided with this software.\r
+ *\r
+ */\r
+\r
+#include "class_factory.h"\r
+#include "diff_ext.h"\r
+#include "server.h"\r
+\r
+CLASS_FACTORY::CLASS_FACTORY() {\r
+  _ref_count = 0L;\r
+\r
+  SERVER::instance()->lock();\r
+}\r
+\r
+CLASS_FACTORY::~CLASS_FACTORY() {\r
+  SERVER::instance()->release();\r
+}\r
+\r
+STDMETHODIMP \r
+CLASS_FACTORY::QueryInterface(REFIID riid, void** ppv) {\r
+  HRESULT ret = E_NOINTERFACE;\r
+  *ppv = 0;\r
+\r
+  if(IsEqualIID(riid, IID_IUnknown) || IsEqualIID(riid, IID_IClassFactory)) {\r
+    *ppv = static_cast<CLASS_FACTORY*>(this);\r
+\r
+    AddRef();\r
+\r
+    ret = NOERROR;\r
+  }\r
+\r
+  return ret;\r
+}\r
+\r
+STDMETHODIMP_(ULONG) \r
+CLASS_FACTORY::AddRef() {\r
+  return InterlockedIncrement((LPLONG)&_ref_count);\r
+}\r
+\r
+STDMETHODIMP_(ULONG) \r
+CLASS_FACTORY::Release() {\r
+  ULONG ret = 0L;\r
+  \r
+  if(InterlockedDecrement((LPLONG)&_ref_count) != 0)\r
+    ret = _ref_count;\r
+  else\r
+    delete this;\r
+\r
+  return ret;\r
+}\r
+\r
+STDMETHODIMP \r
+CLASS_FACTORY::CreateInstance(IUnknown* outer, REFIID refiid, void** obj) {\r
+  HRESULT ret = CLASS_E_NOAGGREGATION;\r
+  *obj = 0;\r
+\r
+  // Shell extensions typically don't support aggregation (inheritance)\r
+  if(outer == 0) {\r
+    DIFF_EXT* ext = new DIFF_EXT();\r
+  \r
+    if(ext == 0)\r
+      ret = E_OUTOFMEMORY;    \r
+    else\r
+      ret = ext->QueryInterface(refiid, obj);\r
+  }\r
+  \r
+  return ret;\r
+}\r
+\r
+STDMETHODIMP \r
+CLASS_FACTORY::LockServer(BOOL) {\r
+  return NOERROR;\r
+}\r
diff --git a/diff_ext_for_kdiff3/class_factory.h b/diff_ext_for_kdiff3/class_factory.h
new file mode 100644 (file)
index 0000000..2efaf34
--- /dev/null
@@ -0,0 +1,33 @@
+/*\r
+ * Copyright (c) 2003, Sergey Zorin. All rights reserved.\r
+ *\r
+ * This software is distributable under the BSD license. See the terms\r
+ * of the BSD license in the LICENSE file provided with this software.\r
+ *\r
+ */\r
+\r
+#ifndef __class_factory_h__\r
+#define __class_factory_h__\r
\r
+#include <shlobj.h>\r
+#include <shlguid.h>\r
+\r
+class CLASS_FACTORY : public IClassFactory {\r
+  public:\r
+    CLASS_FACTORY();\r
+    virtual ~CLASS_FACTORY();\r
+\r
+    //IUnknown members\r
+    STDMETHODIMP QueryInterface(REFIID, void**);\r
+    STDMETHODIMP_(ULONG) AddRef();\r
+    STDMETHODIMP_(ULONG) Release();\r
+\r
+    //ICLASS_FACTORY members\r
+    STDMETHODIMP CreateInstance(IUnknown*, REFIID, void**);\r
+    STDMETHODIMP LockServer(BOOL);\r
+  \r
+  private:\r
+    ULONG _ref_count;\r
+};\r
+\r
+#endif //__class_factory_h__\r
diff --git a/diff_ext_for_kdiff3/diff_ext.cpp b/diff_ext_for_kdiff3/diff_ext.cpp
new file mode 100644 (file)
index 0000000..9a11362
--- /dev/null
@@ -0,0 +1,640 @@
+/*\r
+ * Copyright (c) 2003-2006, Sergey Zorin. All rights reserved.\r
+ *\r
+ * This software is distributable under the BSD license. See the terms\r
+ * of the BSD license in the LICENSE file provided with this software.\r
+ *\r
+ */\r
+#define _CRT_SECURE_NO_DEPRECATE\r
+\r
+#include <assert.h>\r
+#include <stdio.h>\r
+#include <tchar.h>\r
+\r
+#include "diff_ext.h"\r
+#include <map>\r
+#include <vector>\r
+\r
+\r
+#ifdef UNICODE\r
+\r
+static void parseString( const std::wstring& s, size_t& i /*pos*/, std::wstring& r /*result*/ )\r
+{\r
+   size_t size = s.size();\r
+   ++i; // Skip initial '"'\r
+   for( ; i<size; ++i )\r
+   {\r
+      if ( s[i]=='"' )\r
+      {\r
+         ++i;\r
+         break;\r
+      }\r
+      else if ( s[i]==L'\\' && i+1<size )\r
+      {\r
+         ++i;\r
+         switch( s[i] ) {\r
+            case L'n':  r+=L'\n'; break;\r
+            case L'r':  r+=L'\r'; break;\r
+            case L'\\': r+=L'\\'; break;\r
+            case L'"':  r+=L'"';  break;\r
+            case L't':  r+=L'\t'; break;\r
+            default:    r+=L'\\'; r+=s[i]; break;\r
+         }\r
+      }\r
+      else\r
+         r+=s[i];\r
+   }\r
+}\r
+\r
+static std::map< std::wstring, std::wstring > s_translationMap;\r
+static tstring s_translationFileName;\r
+\r
+void readTranslationFile()\r
+{\r
+   s_translationMap.clear();\r
+   FILE* pFile = _tfopen( s_translationFileName.c_str(), TEXT("rb") );\r
+   if ( pFile )\r
+   {\r
+      MESSAGELOG( TEXT( "Reading translations: " ) + s_translationFileName );\r
+      std::vector<char> buffer;\r
+      try {\r
+         if ( fseek(pFile, 0, SEEK_END)==0 )\r
+         {\r
+            size_t length = ftell(pFile); // Get the file length\r
+            buffer.resize(length);\r
+            fseek(pFile, 0, SEEK_SET );\r
+            fread(&buffer[0], 1, length, pFile );\r
+         }\r
+      } \r
+      catch(...) \r
+      {\r
+      }\r
+      fclose(pFile);\r
+\r
+      if (buffer.size()>0)\r
+      {\r
+         size_t bufferSize = buffer.size();\r
+         int offset = 0;\r
+         if ( buffer[0]=='\xEF' && buffer[1]=='\xBB' && buffer[2]=='\xBF' )\r
+         {\r
+            offset += 3;\r
+            bufferSize -= 3;\r
+         }\r
+\r
+         size_t sLength = MultiByteToWideChar(CP_UTF8,0,&buffer[offset], (int)bufferSize, 0, 0 );\r
+         std::wstring s( sLength, L' ' );         \r
+         MultiByteToWideChar(CP_UTF8,0,&buffer[offset], (int)bufferSize, &s[0], (int)s.size() );\r
+\r
+         // Now analyse the file and extract translation strings\r
+         std::wstring msgid;\r
+         std::wstring msgstr;\r
+         msgid.reserve( 1000 );\r
+         msgstr.reserve( 1000 );\r
+         bool bExpectingId = true;\r
+         for( size_t i=0; i<sLength; ++i )\r
+         {\r
+            wchar_t c = s[i];\r
+            if( c == L'\n' || c == L'\r' || c==L' ' || c==L'\t' )\r
+               continue;\r
+            else if ( s[i]==L'#' ) // Comment\r
+               while( s[i]!='\n' && s[i]!=L'\r' && i<sLength )\r
+                  ++i;\r
+            else if ( s[i]==L'"' )\r
+            {\r
+               if ( bExpectingId ) parseString(s,i,msgid);\r
+               else                parseString(s,i,msgstr);\r
+            }\r
+            else if ( sLength-i>5 && wcsncmp( &s[i], L"msgid", 5 )==0 )\r
+            {\r
+               if ( !msgid.empty() && !msgstr.empty() )\r
+               {\r
+                  s_translationMap[msgid] = msgstr;\r
+               }\r
+               bExpectingId = true;\r
+               msgid.clear();\r
+               i+=4;\r
+            }\r
+            else if ( sLength-i>6 && wcsncmp( &s[i], L"msgstr", 6 )==0 )\r
+            {\r
+               bExpectingId = false;\r
+               msgstr.clear();\r
+               i+=5;\r
+            }\r
+            else\r
+            {\r
+               // Unexpected ?\r
+            }\r
+         }\r
+      }\r
+   }\r
+   else\r
+   {\r
+      ERRORLOG( TEXT( "Reading translations failed: " ) + s_translationFileName );\r
+   }\r
+}\r
+\r
+static tstring getTranslation( const tstring& fallback )\r
+{\r
+   std::map< std::wstring, std::wstring >::iterator i = s_translationMap.find( fallback );\r
+   if (i!=s_translationMap.end())\r
+      return i->second;\r
+   return fallback;\r
+}\r
+#else\r
+\r
+static tstring getTranslation( const tstring& fallback )\r
+{\r
+   return fallback;\r
+}\r
+\r
+#endif\r
+\r
+\r
+static void replaceArgs( tstring& s, const tstring& r1, const tstring& r2=TEXT(""), const tstring& r3=TEXT("") )\r
+{\r
+   tstring arg1 = TEXT("%1");\r
+   size_t pos1 = s.find( arg1 );\r
+   tstring arg2 = TEXT("%2");\r
+   size_t pos2 = s.find( arg2 );\r
+   tstring arg3 = TEXT("%3");\r
+   size_t pos3 = s.find( arg3 );\r
+   if ( pos1 != size_t(-1) )\r
+   {\r
+      s.replace( pos1, arg1.length(), r1 );\r
+      if ( pos2 != size_t(-1) && pos1<pos2 )\r
+         pos2 += r1.length() - arg1.length();\r
+      if ( pos3 != size_t(-1) && pos1<pos3 )\r
+         pos3 += r1.length() - arg1.length();\r
+   }\r
+   if ( pos2 != size_t(-1) )\r
+   {\r
+      s.replace( pos2, arg2.length(), r2 );\r
+      if ( pos3 != size_t(-1) && pos2<pos3 )\r
+         pos3 += r2.length() - arg2.length();\r
+   }\r
+   if ( pos3 != size_t(-1) )\r
+   {\r
+      s.replace( pos3, arg3.length(), r3 );\r
+   }\r
+}\r
+\r
+DIFF_EXT::DIFF_EXT() \r
+: m_nrOfSelectedFiles(0), _ref_count(0L),\r
+  m_recentFiles( SERVER::instance()->recent_files() )\r
+{\r
+   LOG();\r
+  _resource = SERVER::instance()->handle();\r
+  \r
+  SERVER::instance()->lock();\r
+}\r
+\r
+DIFF_EXT::~DIFF_EXT() \r
+{\r
+   LOG();\r
+   if(_resource != SERVER::instance()->handle()) {\r
+      FreeLibrary(_resource);\r
+   }\r
+  \r
+   SERVER::instance()->release();\r
+}\r
+\r
+STDMETHODIMP\r
+DIFF_EXT::QueryInterface(REFIID refiid, void** ppv) \r
+{\r
+  HRESULT ret = E_NOINTERFACE;\r
+  *ppv = 0;\r
+\r
+  if(IsEqualIID(refiid, IID_IShellExtInit) || IsEqualIID(refiid, IID_IUnknown)) {\r
+    *ppv = static_cast<IShellExtInit*>(this);\r
+  } else if (IsEqualIID(refiid, IID_IContextMenu)) {\r
+    *ppv = static_cast<IContextMenu*>(this);\r
+  }\r
+\r
+  if(*ppv != 0) {\r
+    AddRef();\r
+\r
+    ret = NOERROR;\r
+  }\r
+\r
+  return ret;\r
+}\r
+\r
+STDMETHODIMP_(ULONG)\r
+DIFF_EXT::AddRef() \r
+{\r
+  return InterlockedIncrement((LPLONG)&_ref_count);\r
+}\r
+\r
+STDMETHODIMP_(ULONG)\r
+DIFF_EXT::Release() \r
+{\r
+  ULONG ret = 0L;\r
+  \r
+  if(InterlockedDecrement((LPLONG)&_ref_count) != 0) {\r
+    ret = _ref_count;\r
+  } else {\r
+    delete this;\r
+  }\r
+\r
+  return ret;\r
+}\r
+\r
+\r
+\r
+STDMETHODIMP\r
+DIFF_EXT::Initialize(LPCITEMIDLIST /*folder not used*/, IDataObject* data, HKEY /*key not used*/) \r
+{\r
+   LOG();\r
+\r
+#ifdef UNICODE\r
+   tstring installDir = SERVER::instance()->getRegistryKeyString( TEXT(""), TEXT("InstallDir") );\r
+   tstring language = SERVER::instance()->getRegistryKeyString( TEXT(""), TEXT("Language") );\r
+   tstring translationFileName = installDir + TEXT("\\translations\\diff_ext_") + language + TEXT(".po");\r
+   if ( s_translationFileName != translationFileName )\r
+   {\r
+      s_translationFileName = translationFileName;\r
+      readTranslationFile();\r
+   }\r
+#endif\r
+\r
+  FORMATETC format = {CF_HDROP, 0, DVASPECT_CONTENT, -1, TYMED_HGLOBAL};\r
+  STGMEDIUM medium;\r
+  medium.tymed = TYMED_HGLOBAL;\r
+  HRESULT ret = E_INVALIDARG;\r
+\r
+  if(data->GetData(&format, &medium) == S_OK) \r
+  {\r
+    HDROP drop = (HDROP)medium.hGlobal;\r
+    m_nrOfSelectedFiles = DragQueryFile(drop, 0xFFFFFFFF, 0, 0);\r
+\r
+    TCHAR tmp[MAX_PATH];\r
+    \r
+    //initialize_language();\r
+    \r
+    if (m_nrOfSelectedFiles >= 1 && m_nrOfSelectedFiles <= 3)\r
+    {\r
+       DragQueryFile(drop, 0, tmp, MAX_PATH);\r
+       _file_name1 = tmp;\r
+\r
+       if(m_nrOfSelectedFiles >= 2) \r
+       {\r
+         DragQueryFile(drop, 1, tmp, MAX_PATH);\r
+         _file_name2 = tmp;\r
+       }\r
+       \r
+       if( m_nrOfSelectedFiles == 3) \r
+       {\r
+         DragQueryFile(drop, 2, tmp, MAX_PATH);\r
+         _file_name3 = tmp;\r
+       }\r
+\r
+       ret = S_OK;\r
+    }\r
+  }\r
+  else\r
+  {\r
+     SYSERRORLOG(TEXT("GetData"));\r
+  }\r
+\r
+  return ret;\r
+}\r
+\r
+static int insertMenuItemHelper( HMENU menu, UINT id, UINT position, const tstring& text, \r
+                                 UINT fState = MFS_ENABLED, HMENU hSubMenu=0 )\r
+{\r
+   MENUITEMINFO item_info;\r
+   ZeroMemory(&item_info, sizeof(item_info));\r
+   item_info.cbSize = sizeof(MENUITEMINFO);\r
+   item_info.wID = id;\r
+   if (text.empty())\r
+   {   // Separator\r
+       item_info.fMask = MIIM_TYPE;\r
+       item_info.fType = MFT_SEPARATOR;\r
+       item_info.dwTypeData = 0;\r
+   }\r
+   else\r
+   {\r
+      item_info.fMask = MIIM_ID | MIIM_TYPE | MIIM_STATE | (hSubMenu!=0 ? MIIM_SUBMENU : 0);\r
+      item_info.fType = MFT_STRING;\r
+      item_info.fState = fState;\r
+      item_info.dwTypeData = (LPTSTR)text.c_str();\r
+      item_info.hSubMenu = hSubMenu;\r
+   }\r
+   if ( 0 == InsertMenuItem(menu, position, TRUE, &item_info) )\r
+      SYSERRORLOG(TEXT("InsertMenuItem"));\r
+   return id;\r
+}\r
+\r
+\r
+STDMETHODIMP\r
+DIFF_EXT::QueryContextMenu(HMENU menu, UINT position, UINT first_cmd, UINT /*last_cmd not used*/, UINT flags) \r
+{\r
+   LOG();\r
+   \r
+   SERVER::instance()->recent_files(); // updates recent files list (reads from registry)\r
+   \r
+   m_id_Diff = UINT(-1);\r
+   m_id_DiffWith = UINT(-1);\r
+   m_id_DiffLater = UINT(-1);\r
+   m_id_MergeWith = UINT(-1);\r
+   m_id_Merge3 = UINT(-1);\r
+   m_id_Diff3 = UINT(-1);\r
+   m_id_DiffWith_Base = UINT(-1);\r
+   m_id_ClearList = UINT(-1);\r
+   m_id_About = UINT(-1);\r
+\r
+   HRESULT ret = MAKE_HRESULT(SEVERITY_SUCCESS, FACILITY_NULL, 0);\r
+\r
+   if(!(flags & CMF_DEFAULTONLY)) \r
+   {\r
+   /* Menu structure:\r
+      KDiff3 -> (1 File selected):  Save 'selection' for later comparison (push onto history stack)\r
+                                    Compare 'selection' with first file on history stack.\r
+                                    Compare 'selection' with -> choice from history stack\r
+                                    Merge 'selection' with first file on history stack.\r
+                                    Merge 'selection' with last two files on history stack.\r
+                (2 Files selected): Compare 's1' with 's2'\r
+                                    Merge 's1' with 's2' \r
+                (3 Files selected): Compare 's1', 's2' and 's3'\r
+   */\r
+      HMENU subMenu = CreateMenu();\r
+\r
+      UINT id = first_cmd;\r
+      m_id_FirstCmd = first_cmd;\r
+\r
+      insertMenuItemHelper( menu, id++, position++, TEXT("") );  // begin separator\r
+\r
+      tstring menuString;\r
+      UINT pos2=0;\r
+      if(m_nrOfSelectedFiles == 1) \r
+      {  \r
+         size_t nrOfRecentFiles = m_recentFiles.size();\r
+         tstring menuStringCompare = i18n("Compare with %1");\r
+         tstring menuStringMerge   = i18n("Merge with %1");\r
+         tstring firstFileName;\r
+         if( nrOfRecentFiles>=1 )\r
+         {\r
+            firstFileName = TEXT("'") + cut_to_length( m_recentFiles.front() ) + TEXT("'");\r
+         } \r
+         replaceArgs( menuStringCompare, firstFileName );\r
+         replaceArgs( menuStringMerge,   firstFileName );\r
+         m_id_DiffWith  = insertMenuItemHelper( subMenu, id++, pos2++, menuStringCompare, nrOfRecentFiles >=1 ? MFS_ENABLED : MFS_DISABLED );\r
+         m_id_MergeWith = insertMenuItemHelper( subMenu, id++, pos2++, menuStringMerge, nrOfRecentFiles >=1 ? MFS_ENABLED : MFS_DISABLED );\r
+\r
+         //if( nrOfRecentFiles>=2 )\r
+         //{\r
+         //   tstring firstFileName = cut_to_length( m_recentFiles.front() );        \r
+         //   tstring secondFileName = cut_to_length( *(++m_recentFiles.begin()) );        \r
+         //} \r
+         m_id_Merge3 = insertMenuItemHelper( subMenu, id++, pos2++, i18n("3-way merge with base"), \r
+            nrOfRecentFiles >=2 ? MFS_ENABLED : MFS_DISABLED );\r
+\r
+         menuString = i18n("Save '%1' for later");\r
+         replaceArgs( menuString, _file_name1 );\r
+         m_id_DiffLater = insertMenuItemHelper( subMenu, id++, pos2++, menuString );\r
+\r
+         HMENU file_list = CreateMenu();\r
+         std::list<tstring>::iterator i;\r
+         m_id_DiffWith_Base = id;\r
+         int n = 0;\r
+         for( i = m_recentFiles.begin(); i!=m_recentFiles.end(); ++i )\r
+         {\r
+            tstring s = cut_to_length( *i );\r
+            insertMenuItemHelper( file_list, id++, n, s );\r
+            ++n;\r
+         }\r
+\r
+         insertMenuItemHelper( subMenu, id++, pos2++, i18n("Compare with ..."), \r
+            nrOfRecentFiles > 0 ? MFS_ENABLED : MFS_DISABLED, file_list );\r
+\r
+         m_id_ClearList = insertMenuItemHelper( subMenu, id++, pos2++, i18n("Clear list"), nrOfRecentFiles >=1 ? MFS_ENABLED : MFS_DISABLED );\r
+      }\r
+      else if(m_nrOfSelectedFiles == 2) \r
+      {      \r
+         //= "Diff " + cut_to_length(_file_name1, 20)+" and "+cut_to_length(_file_name2, 20);\r
+         m_id_Diff = insertMenuItemHelper( subMenu, id++, pos2++, i18n("Compare") );\r
+      } \r
+      else if ( m_nrOfSelectedFiles == 3 ) \r
+      {      \r
+         m_id_Diff3 = insertMenuItemHelper( subMenu, id++, pos2++, i18n("3 way comparison") );\r
+      } \r
+      else \r
+      {\r
+         // More than 3 files selected?\r
+      }\r
+      m_id_About = insertMenuItemHelper( subMenu, id++, pos2++, i18n("About Diff-Ext ...") );\r
+\r
+      insertMenuItemHelper( menu, id++, position++, TEXT("KDiff3"), MFS_ENABLED, subMenu );\r
+\r
+      insertMenuItemHelper( menu, id++, position++, TEXT("") );  // final separator      \r
+\r
+      ret = MAKE_HRESULT(SEVERITY_SUCCESS, FACILITY_NULL, id-first_cmd);\r
+   }\r
+\r
+   return ret;\r
+}\r
+\r
+STDMETHODIMP\r
+DIFF_EXT::InvokeCommand(LPCMINVOKECOMMANDINFO ici) \r
+{\r
+   HRESULT ret = NOERROR;\r
+\r
+   _hwnd = ici->hwnd;\r
+\r
+   if(HIWORD(ici->lpVerb) == 0) \r
+   {\r
+      UINT id = m_id_FirstCmd + LOWORD(ici->lpVerb);\r
+      if(id == m_id_Diff) \r
+      {\r
+         LOG();\r
+         diff( TEXT("\"") + _file_name1 + TEXT("\" \"") + _file_name2 + TEXT("\"") );\r
+      } \r
+      else if(id == m_id_Diff3) \r
+      {\r
+         LOG();\r
+         diff( TEXT("\"") + _file_name1 + TEXT("\" \"") + _file_name2 + TEXT("\" \"") + _file_name3 + TEXT("\"") );\r
+      } \r
+      else if(id == m_id_Merge3) \r
+      {\r
+         LOG();\r
+         std::list< tstring >::iterator iFrom = m_recentFiles.begin();\r
+         std::list< tstring >::iterator iBase = iFrom;\r
+         ++iBase;\r
+         diff( TEXT("-m \"") + *iBase + TEXT("\" \"") + *iFrom + TEXT("\" \"") + _file_name1 + TEXT("\"") );\r
+      } \r
+      else if(id == m_id_DiffWith) \r
+      {\r
+         LOG();\r
+         diff_with(0, false);\r
+      } \r
+      else if(id == m_id_MergeWith) \r
+      {\r
+         LOG();\r
+         diff_with(0, true);\r
+      } \r
+      else if(id == m_id_ClearList) \r
+      {\r
+         LOG();\r
+         m_recentFiles.clear();\r
+         SERVER::instance()->save_history();\r
+      } \r
+      else if(id == m_id_DiffLater) \r
+      {\r
+         MESSAGELOG(TEXT("Diff Later: ")+_file_name1);\r
+         m_recentFiles.remove( _file_name1 );\r
+         m_recentFiles.push_front( _file_name1 );\r
+         SERVER::instance()->save_history();\r
+      } \r
+      else if(id >= m_id_DiffWith_Base && id < m_id_DiffWith_Base+m_recentFiles.size()) \r
+      {\r
+         LOG();\r
+         diff_with(id-m_id_DiffWith_Base, false);\r
+      } \r
+      else if(id == m_id_About) \r
+      {\r
+         LOG();\r
+         std::wstring sBits = i18n("(32 Bit)");\r
+         if (sizeof(void*)==8)\r
+             sBits = i18n("(64 Bit)");\r
+         MessageBox( _hwnd, (i18n("Diff-Ext Copyright (c) 2003-2006, Sergey Zorin. All rights reserved.\n")\r
+            + i18n("This software is distributable under the BSD license.\n")\r
+            + i18n("Some extensions for KDiff3 (c) 2006-2013 by Joachim Eibl.\n")\r
+            + i18n("Homepage for Diff-Ext: http://diff-ext.sourceforge.net\n")\r
+            + i18n("Homepage for KDiff3: http://kdiff3.sourceforge.net")).c_str()\r
+            , (i18n("About Diff-Ext for KDiff3 ")+sBits).c_str(), MB_OK );\r
+      } \r
+      else \r
+      {\r
+         ret = E_INVALIDARG;\r
+         TCHAR verb[80];\r
+         _sntprintf(verb, 79, TEXT("Command id: %d"), LOWORD(ici->lpVerb));\r
+         verb[79]=0;\r
+         ERRORLOG(verb);\r
+      }\r
+   }\r
+   else\r
+   {\r
+      ret = E_INVALIDARG;\r
+   }\r
+\r
+   return ret;\r
+}\r
+\r
+STDMETHODIMP\r
+DIFF_EXT::GetCommandString(UINT_PTR idCmd, UINT uFlags, UINT*, LPSTR pszName, UINT cchMax)\r
+{\r
+   // LOG(); // Gets called very often\r
+   HRESULT ret = NOERROR;\r
+\r
+   if(uFlags == GCS_HELPTEXT) {\r
+      tstring helpString;\r
+      if( idCmd == m_id_Diff ) \r
+      {\r
+         helpString = i18n("Compare selected files");\r
+      } \r
+      else if( idCmd == m_id_DiffWith ) \r
+      {\r
+         if(!m_recentFiles.empty()) \r
+         {\r
+            helpString = i18n("Compare '%1' with '%2'");\r
+            replaceArgs( helpString, _file_name1, m_recentFiles.front() );\r
+         }\r
+      } \r
+      else if(idCmd == m_id_DiffLater) \r
+      {\r
+         helpString = i18n("Save '%1' for later operation");\r
+         replaceArgs( helpString, _file_name1 );\r
+      } \r
+      else if((idCmd >= m_id_DiffWith_Base) && (idCmd < m_id_DiffWith_Base+m_recentFiles.size())) \r
+      {\r
+         if( !m_recentFiles.empty() ) \r
+         {\r
+            unsigned int num = idCmd - m_id_DiffWith_Base;\r
+            std::list<tstring>::iterator i = m_recentFiles.begin();\r
+            for(unsigned int j = 0; j < num && i != m_recentFiles.end(); j++)\r
+               i++;\r
+\r
+            if ( i!=m_recentFiles.end() )\r
+            {\r
+               helpString = i18n("Compare '%1' with '%2'");\r
+               replaceArgs( helpString, _file_name1, *i );\r
+            }\r
+         }\r
+      }\r
+      lstrcpyn( (LPTSTR)pszName, helpString.c_str(), cchMax );\r
+   }\r
+   else\r
+   {\r
+      ret = E_INVALIDARG;\r
+   }\r
+\r
+   return ret;\r
+}\r
+\r
+void\r
+DIFF_EXT::diff( const tstring& arguments ) \r
+{\r
+   LOG();\r
+   STARTUPINFO si;\r
+   PROCESS_INFORMATION pi;\r
+   bool bError = true;\r
+   tstring command = SERVER::instance()->getRegistryKeyString( TEXT(""), TEXT("diffcommand") );\r
+   tstring commandLine = TEXT("\"") + command + TEXT("\" ") + arguments;\r
+   if ( ! command.empty() )\r
+   {\r
+      ZeroMemory(&si, sizeof(si));\r
+      si.cb = sizeof(si);\r
+      if (CreateProcess(command.c_str(), (LPTSTR)commandLine.c_str(), 0, 0, FALSE, 0, 0, 0, &si, &pi) == 0) \r
+      {\r
+         SYSERRORLOG(TEXT("CreateProcess") + command);\r
+      } \r
+      else \r
+      {\r
+         bError = false;\r
+         CloseHandle( pi.hProcess );\r
+         CloseHandle( pi.hThread );\r
+      }\r
+   }\r
+\r
+   if (bError)\r
+   {\r
+      tstring message = i18n("Could not start KDiff3. Please rerun KDiff3 installation.");\r
+      message += TEXT("\n") + i18n("Command") + TEXT(": ") + command;\r
+      message += TEXT("\n") + i18n("CommandLine") + TEXT(": ") + commandLine;\r
+      MessageBox(_hwnd, message.c_str(), i18n("Diff-Ext For KDiff3").c_str(), MB_OK);\r
+   }\r
+}\r
+\r
+void\r
+DIFF_EXT::diff_with(unsigned int num, bool bMerge) \r
+{\r
+   LOG();\r
+   std::list<tstring>::iterator i = m_recentFiles.begin();\r
+   for(unsigned int j = 0; j < num && i!=m_recentFiles.end(); j++) {\r
+      i++;\r
+   }\r
+\r
+   if ( i!=m_recentFiles.end() )\r
+      _file_name2 = *i;\r
+\r
+   diff( (bMerge ? TEXT("-m \"") : TEXT("\"") ) + _file_name2 + TEXT("\" \"") + _file_name1 + TEXT("\"") );\r
+}\r
+\r
+\r
+tstring\r
+DIFF_EXT::cut_to_length(const tstring& in, size_t max_len) \r
+{\r
+  tstring ret;  \r
+  if( in.length() > max_len) \r
+  {\r
+     ret = in.substr(0, (max_len-3)/2);\r
+     ret += TEXT("...");\r
+     ret += in.substr( in.length()-(max_len-3)/2 );\r
+  }\r
+  else \r
+  {\r
+     ret = in;\r
+  }\r
+  \r
+  return ret;\r
+}\r
diff --git a/diff_ext_for_kdiff3/diff_ext.h b/diff_ext_for_kdiff3/diff_ext.h
new file mode 100644 (file)
index 0000000..f0b8a75
--- /dev/null
@@ -0,0 +1,67 @@
+/*\r
+ * Copyright (c) 2003-2004, Sergey Zorin. All rights reserved.\r
+ *\r
+ * This software is distributable under the BSD license. See the terms\r
+ * of the BSD license in the LICENSE file provided with this software.\r
+ *\r
+ */\r
+\r
+#ifndef __diff_ext_h__\r
+#define __diff_ext_h__\r
+\r
+#include <windows.h>\r
+#include <windowsx.h>\r
+#include <shlobj.h>\r
+\r
+#include "server.h"\r
+\r
+\r
+// this is the actual OLE Shell context menu handler\r
+class DIFF_EXT : public IContextMenu, IShellExtInit {\r
+  public:\r
+    DIFF_EXT();\r
+    virtual ~DIFF_EXT();\r
+\r
+    //IUnknown members\r
+    STDMETHODIMP QueryInterface(REFIID interface_id, void** result);\r
+    STDMETHODIMP_(ULONG) AddRef();\r
+    STDMETHODIMP_(ULONG) Release();\r
+\r
+    //IShell members\r
+    STDMETHODIMP QueryContextMenu(HMENU menu, UINT index, UINT cmd_first, UINT cmd_last, UINT flags);\r
+    STDMETHODIMP InvokeCommand(LPCMINVOKECOMMANDINFO info);\r
+    STDMETHODIMP GetCommandString(UINT_PTR cmd, UINT flags, UINT* reserved, LPSTR name, UINT name_length);\r
+\r
+    //IShellExtInit methods\r
+    STDMETHODIMP Initialize(LPCITEMIDLIST folder, IDataObject* subj, HKEY key);\r
+\r
+  private:\r
+    void diff( const tstring& arguments );\r
+    void diff_with(unsigned int num, bool bMerge);\r
+    tstring cut_to_length(const tstring&, size_t length = 64);\r
+    void initialize_language();\r
+\r
+  private:\r
+    UINT m_nrOfSelectedFiles;\r
+    tstring _file_name1;\r
+    tstring _file_name2;\r
+    tstring _file_name3;\r
+    HINSTANCE _resource;\r
+    HWND _hwnd;\r
+\r
+    ULONG  _ref_count;\r
+\r
+    std::list< tstring >& m_recentFiles;\r
+    UINT m_id_FirstCmd;\r
+    UINT m_id_Diff;\r
+    UINT m_id_DiffWith;\r
+    UINT m_id_DiffLater;\r
+    UINT m_id_MergeWith;\r
+    UINT m_id_Merge3;\r
+    UINT m_id_Diff3;\r
+    UINT m_id_DiffWith_Base;\r
+    UINT m_id_About;\r
+    UINT m_id_ClearList;\r
+};\r
+\r
+#endif // __diff_ext_h__\r
diff --git a/diff_ext_for_kdiff3/diff_ext.pot b/diff_ext_for_kdiff3/diff_ext.pot
new file mode 100644 (file)
index 0000000..6cc829c
--- /dev/null
@@ -0,0 +1,96 @@
+# Diff-ext-for-KDiff3
+# Copyright (C) 2006 Joachim Eibl
+# This file is distributed under the same license as the diff-ext-for-KDiff3 package.
+# PO-Template created by Joachim Eibl <Joachim dot Eibl at gmx dot de>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-10-03 06:05+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: diff_ext.cpp:368 diff_ext.cpp:402
+msgid "Compare with"
+msgstr ""
+
+#: diff_ext.cpp:369
+msgid "Merge with"
+msgstr ""
+
+#: diff_ext.cpp:384
+msgid "3-way merge with base"
+msgstr ""
+
+#: diff_ext.cpp:387
+msgid "Save '%1' for later comparison or merge"
+msgstr ""
+
+#: diff_ext.cpp:408
+msgid "Compare"
+msgstr ""
+
+#: diff_ext.cpp:412
+msgid "3 way comparison"
+msgstr ""
+
+#: diff_ext.cpp:418
+msgid "About Diff-Ext ..."
+msgstr ""
+
+#: diff_ext.cpp:482
+msgid "Diff-Ext Copyright (c) 2003-2006, Sergey Zorin. All rights reserved.\n"
+msgstr ""
+
+#: diff_ext.cpp:483
+msgid "This software is distributable under the BSD license.\n"
+msgstr ""
+
+#: diff_ext.cpp:484
+msgid "Some extensions for KDiff3 by Joachim Eibl.\n"
+msgstr ""
+
+#: diff_ext.cpp:485
+msgid "Homepage for Diff-Ext: http://diff-ext.sourceforge.net\n"
+msgstr ""
+
+#: diff_ext.cpp:486
+msgid "Homepage for KDiff3: http://kdiff3.sourceforge.net"
+msgstr ""
+
+#: diff_ext.cpp:487
+msgid "About Diff-Ext for KDiff3"
+msgstr ""
+
+#: diff_ext.cpp:512
+msgid "Compare selected files"
+msgstr ""
+
+#: diff_ext.cpp:518 diff_ext.cpp:538
+msgid "Compare '%1' with '%2'"
+msgstr ""
+
+#: diff_ext.cpp:524
+msgid "Save '%1' for later operation"
+msgstr ""
+
+#: diff_ext.cpp:576
+msgid "Could not start KDiff3. Please rerun KDiff3 installation."
+msgstr ""
+
+#: diff_ext.cpp:577
+msgid "Command"
+msgstr ""
+
+#: diff_ext.cpp:578
+msgid "CommandLine"
+msgstr ""
+
+#: diff_ext.cpp:579
+msgid "Diff-Ext For KDiff3"
+msgstr ""
diff --git a/diff_ext_for_kdiff3/diff_ext_de.po b/diff_ext_for_kdiff3/diff_ext_de.po
new file mode 100644 (file)
index 0000000..79dca98
--- /dev/null
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.\r
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER\r
+# This file is distributed under the same license as the PACKAGE package.\r
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.\r
+#\r
+#, fuzzy\r
+msgid ""\r
+msgstr ""\r
+"Project-Id-Version: PACKAGE VERSION\n"\r
+"Report-Msgid-Bugs-To: \n"\r
+"POT-Creation-Date: 2006-09-04 15:35+0200\n"\r
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"\r
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"\r
+"Language-Team: LANGUAGE <LL@li.org>\n"\r
+"MIME-Version: 1.0\n"\r
+"Content-Type: text/plain; charset=CHARSET\n"\r
+"Content-Transfer-Encoding: 8bit\n"\r
+\r
+#: diff_ext.cpp:363\r
+msgid "Compare with %1"\r
+msgstr "Vergleichen mit %1"\r
+\r
+#: diff_ext.cpp:364\r
+msgid "Merge with %1"\r
+msgstr "Zusammenführen mit %1"\r
+\r
+#: diff_ext.cpp:379\r
+msgid "3-way merge with base"\r
+msgstr "3-Wege Zusammenführung mit Basis"\r
+\r
+#: diff_ext.cpp:382\r
+msgid "Save '%1' for later"\r
+msgstr "Speichere '%1' für später"\r
+\r
+#: diff_ext.cpp:404\r
+msgid "Compare with ..."\r
+msgstr "Vergleichen mit ..."\r
+\r
+#: diff_ext.cpp:403\r
+msgid "Compare"\r
+msgstr "Vergleichen"\r
+\r
+#: diff_ext.cpp:403\r
+msgid "Clear list"\r
+msgstr "Liste löschen"\r
+\r
+\r
+#: diff_ext.cpp:407\r
+msgid "3 way comparison"\r
+msgstr "Vergleiche 3 Dateien"\r
+\r
+#: diff_ext.cpp:413\r
+msgid "About Diff-Ext ..."\r
+msgstr "Über Diff-Ext ..."\r
+\r
+#: diff_ext.cpp:474\r
+msgid "Diff-Ext Copyright (c) 2003-2006, Sergey Zorin. All rights reserved.\n"\r
+msgstr "Diff-Ext Copyright (c) 2003-2006, Sergey Zorin. Alle Rechte vorbehalten.\n"\r
+\r
+#: diff_ext.cpp:475\r
+msgid "This software is distributable under the BSD license.\n"\r
+msgstr "Weitergabe dieses Programms unter den Bedingungen der BSD Lizenz.\n"\r
+\r
+#: diff_ext.cpp:476\r
+msgid "Some extensions for KDiff3 by Joachim Eibl.\n"\r
+msgstr "Einige Erweiterungen für KDiff3 von Joachim Eibl.\n"\r
+\r
+#: diff_ext.cpp:477\r
+msgid "See the homepage http://diff-ext.sourceforge.net"\r
+msgstr "Siehe die Homepage http://diff-ext.sourceforge.net"\r
+\r
+#: diff_ext.cpp:478\r
+msgid "About Diff-Ext for KDiff3"\r
+msgstr "Über Diff-Ext für KDiff3"\r
+\r
+#: diff_ext.cpp:503\r
+msgid "Compare selected files"\r
+msgstr "Vergleiche markierte Dateien"\r
+\r
+#: diff_ext.cpp:509 diff_ext.cpp:529\r
+msgid "Compare '%1' with '%2'"\r
+msgstr "Vergleiche '%1' mit '%2'"\r
+\r
+#: diff_ext.cpp:515\r
+msgid "Merke '%1' für spätere Aktion"\r
+msgstr ""\r
+\r
+#: diff_ext.cpp:567\r
+msgid "Could not start KDiff3. Please rerun KDiff3 installation."\r
+msgstr "Konnte KDiff3 nicht starten. Bitte wiederholen Sie die KDiff3 Installation."\r
+\r
+#: diff_ext.cpp:568\r
+msgid "Command"\r
+msgstr "Kommando"\r
+\r
+#: diff_ext.cpp:569\r
+msgid "CommandLine"\r
+msgstr "Kommandozeile"\r
+\r
+#: diff_ext.cpp:570\r
+msgid "Diff-Ext For KDiff3"\r
+msgstr "Diff-Ext für KDiff3"\r
diff --git a/diff_ext_for_kdiff3/diff_ext_for_kdiff3.def b/diff_ext_for_kdiff3/diff_ext_for_kdiff3.def
new file mode 100644 (file)
index 0000000..a502ed4
--- /dev/null
@@ -0,0 +1,6 @@
+LIBRARY        "diff_ext_for_kdiff3"\r
+EXPORTS\r
+    DllCanUnloadNow=DllCanUnloadNow@0\r
+    DllGetClassObject=DllGetClassObject@12\r
+    DllRegisterServer=DllRegisterServer@0\r
+    DllUnregisterServer=DllUnregisterServer@0\r
diff --git a/diff_ext_for_kdiff3/diff_ext_for_kdiff3.rc b/diff_ext_for_kdiff3/diff_ext_for_kdiff3.rc
new file mode 100644 (file)
index 0000000..5234b16
--- /dev/null
@@ -0,0 +1,47 @@
+/*\r
+ * Copyright (c) 2003-2006, Sergey Zorin. All rights reserved.\r
+ *\r
+ * This software is distributable under the BSD license. See the terms\r
+ * of the BSD license in the LICENSE file provided with this software.\r
+ *\r
+ */\r
+\r
+#include <windows.h>\r
+\r
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US\r
+\r
+VS_VERSION_INFO VERSIONINFO\r
+  FILEVERSION 1,6,1,145\r
+  PRODUCTVERSION 1,6,1,145\r
+  FILEFLAGSMASK 0x3fL\r
+#ifdef _DEBUG\r
+  FILEFLAGS VS_FF_DEBUG\r
+#else\r
+  FILEFLAGS 0L\r
+#endif\r
+  FILEOS VOS_NT_WINDOWS32\r
+  FILETYPE VFT_DLL\r
+  FILESUBTYPE VFT_UNKNOWN\r
+{\r
+    BLOCK "StringFileInfo"\r
+    {\r
+        BLOCK "040904b0"\r
+        {\r
+            VALUE "Comments", ""\r
+            VALUE "CompanyName", ""\r
+            VALUE "FileDescription", "diff shell extension"\r
+            VALUE "FileVersion", "Release 1.6.1"\r
+            VALUE "InternalName", "diff shell extension"\r
+            VALUE "LegalCopyright", "Copyright © 2003-2005 Sergey Zorin"\r
+            VALUE "LegalTrademarks", ""\r
+            VALUE "OriginalFilename", "diff_ext.dll"\r
+            VALUE "PrivateBuild", ""\r
+            VALUE "ProductName", "Diff Context Menu Extension"\r
+            VALUE "ProductVersion", "Release 1.6.1"\r
+        }\r
+    }\r
+    BLOCK "VarFileInfo"\r
+    {\r
+        VALUE "Translation", 0x409, 1200\r
+    }\r
+}\r
diff --git a/diff_ext_for_kdiff3/diff_ext_for_kdiff3.vcproj b/diff_ext_for_kdiff3/diff_ext_for_kdiff3.vcproj
new file mode 100644 (file)
index 0000000..6b8761f
--- /dev/null
@@ -0,0 +1,230 @@
+<?xml version="1.0" encoding="Windows-1252"?>\r
+<VisualStudioProject\r
+       ProjectType="Visual C++"\r
+       Version="8,00"\r
+       Name="diff_ext_for_kdiff3"\r
+       ProjectGUID="{9734C087-C745-4DCE-9076-73BD15145F83}"\r
+       RootNamespace="diff_ext_for_kdiff3"\r
+       Keyword="Win32Proj"\r
+       >\r
+       <Platforms>\r
+               <Platform\r
+                       Name="Win32"\r
+               />\r
+       </Platforms>\r
+       <ToolFiles>\r
+       </ToolFiles>\r
+       <Configurations>\r
+               <Configuration\r
+                       Name="Debug|Win32"\r
+                       OutputDirectory="$(SolutionDir)$(ConfigurationName)"\r
+                       IntermediateDirectory="$(ConfigurationName)"\r
+                       ConfigurationType="2"\r
+                       CharacterSet="1"\r
+                       >\r
+                       <Tool\r
+                               Name="VCPreBuildEventTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCCustomBuildTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCXMLDataGeneratorTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCWebServiceProxyGeneratorTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCMIDLTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCCLCompilerTool"\r
+                               Optimization="0"\r
+                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;DIFF_EXT_FOR_KDIFF3_EXPORTS"\r
+                               MinimalRebuild="true"\r
+                               BasicRuntimeChecks="3"\r
+                               RuntimeLibrary="3"\r
+                               UsePrecompiledHeader="0"\r
+                               WarningLevel="3"\r
+                               Detect64BitPortabilityProblems="true"\r
+                               DebugInformationFormat="3"\r
+                       />\r
+                       <Tool\r
+                               Name="VCManagedResourceCompilerTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCResourceCompilerTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCPreLinkEventTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCLinkerTool"\r
+                               RegisterOutput="false"\r
+                               LinkIncremental="2"\r
+                               ModuleDefinitionFile="diff_ext_for_kdiff3_msvc.def"\r
+                               GenerateDebugInformation="true"\r
+                               SubSystem="2"\r
+                               TargetMachine="1"\r
+                       />\r
+                       <Tool\r
+                               Name="VCALinkTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCManifestTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCXDCMakeTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCBscMakeTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCFxCopTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCAppVerifierTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCWebDeploymentTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCPostBuildEventTool"\r
+                       />\r
+               </Configuration>\r
+               <Configuration\r
+                       Name="Release|Win32"\r
+                       OutputDirectory="$(SolutionDir)$(ConfigurationName)"\r
+                       IntermediateDirectory="$(ConfigurationName)"\r
+                       ConfigurationType="2"\r
+                       CharacterSet="1"\r
+                       WholeProgramOptimization="1"\r
+                       >\r
+                       <Tool\r
+                               Name="VCPreBuildEventTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCCustomBuildTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCXMLDataGeneratorTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCWebServiceProxyGeneratorTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCMIDLTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCCLCompilerTool"\r
+                               Optimization="1"\r
+                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;DIFF_EXT_FOR_KDIFF3_EXPORTS"\r
+                               RuntimeLibrary="2"\r
+                               UsePrecompiledHeader="0"\r
+                               WarningLevel="3"\r
+                               Detect64BitPortabilityProblems="true"\r
+                               DebugInformationFormat="3"\r
+                       />\r
+                       <Tool\r
+                               Name="VCManagedResourceCompilerTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCResourceCompilerTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCPreLinkEventTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCLinkerTool"\r
+                               RegisterOutput="false"\r
+                               LinkIncremental="1"\r
+                               ModuleDefinitionFile="diff_ext_for_kdiff3_msvc.def"\r
+                               GenerateDebugInformation="true"\r
+                               SubSystem="2"\r
+                               OptimizeReferences="2"\r
+                               EnableCOMDATFolding="2"\r
+                               TargetMachine="1"\r
+                       />\r
+                       <Tool\r
+                               Name="VCALinkTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCManifestTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCXDCMakeTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCBscMakeTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCFxCopTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCAppVerifierTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCWebDeploymentTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCPostBuildEventTool"\r
+                       />\r
+               </Configuration>\r
+       </Configurations>\r
+       <References>\r
+       </References>\r
+       <Files>\r
+               <Filter\r
+                       Name="Source Files"\r
+                       Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"\r
+                       UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"\r
+                       >\r
+                       <File\r
+                               RelativePath="class_factory.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="diff_ext.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath=".\diff_ext_for_kdiff3_msvc.def"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="server.cpp"\r
+                               >\r
+                       </File>\r
+               </Filter>\r
+               <Filter\r
+                       Name="Header Files"\r
+                       Filter="h;hpp;hxx;hm;inl;inc;xsd"\r
+                       UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"\r
+                       >\r
+                       <File\r
+                               RelativePath="class_factory.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="diff_ext.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath=".\diffextstring.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="server.h"\r
+                               >\r
+                       </File>\r
+               </Filter>\r
+               <Filter\r
+                       Name="Resource Files"\r
+                       Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"\r
+                       UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"\r
+                       >\r
+               </Filter>\r
+       </Files>\r
+       <Globals>\r
+       </Globals>\r
+</VisualStudioProject>\r
diff --git a/diff_ext_for_kdiff3/diff_ext_for_kdiff3_msvc.def b/diff_ext_for_kdiff3/diff_ext_for_kdiff3_msvc.def
new file mode 100644 (file)
index 0000000..9b61551
--- /dev/null
@@ -0,0 +1,6 @@
+LIBRARY        "diff_ext_for_kdiff3"\r
+EXPORTS\r
+    DllCanUnloadNow PRIVATE\r
+    DllGetClassObject PRIVATE\r
+    DllRegisterServer PRIVATE\r
+    DllUnregisterServer PRIVATE\r
diff --git a/diff_ext_for_kdiff3/diffextstring.h b/diff_ext_for_kdiff3/diffextstring.h
new file mode 100644 (file)
index 0000000..af37057
--- /dev/null
@@ -0,0 +1,157 @@
+/*\r
+ * Copyright (c) 2003, Sergey Zorin. All rights reserved.\r
+ *\r
+ * This software is distributable under the BSD license. See the terms of the\r
+ * BSD license in the LICENSE file provided with this software.\r
+ *\r
+ */\r
+\r
+#ifndef __string_h__\r
+#define __string_h__\r
+\r
+#include <windows.h>\r
+#include <tchar.h>\r
+\r
+#include <string.h>\r
+#include <stdlib.h>\r
+\r
+class STRING;\r
+inline STRING operator+( const STRING& s1, const STRING& s2);\r
+\r
+class STRING {\r
+  public:\r
+    static const int begin = 0;\r
+    static const int end = -1;\r
+  \r
+  public:\r
+    STRING(const STRING& s) {\r
+      _str = new TCHAR[s.length()+1];\r
+      lstrcpy(_str, s);\r
+    }\r
+    \r
+    STRING(const TCHAR* str = TEXT("")) {\r
+      _str = new TCHAR[lstrlen(str)+1];\r
+      lstrcpy(_str, str);\r
+    }\r
+    \r
+    ~STRING() {\r
+      delete[] _str;\r
+    }\r
+\r
+    void resize( size_t newLength )\r
+    {\r
+       size_t oldLength = length();\r
+       if ( newLength < oldLength ) {\r
+          _str[newLength] = 0; // Just truncate the string\r
+       } else if( newLength>oldLength) {\r
+          TCHAR* p = new TCHAR[ newLength + 1 ];\r
+          lstrcpy(p, _str);\r
+          for( size_t i=oldLength; i<newLength; ++i)\r
+             p[i]=TEXT(' ');\r
+          p[newLength]=0;\r
+       }\r
+    }\r
+    \r
+    STRING& operator=(const STRING& s) {\r
+      delete[] _str;\r
+      _str = new TCHAR[s.length()+1];\r
+      lstrcpy(_str, s);\r
+      return *this;\r
+    }\r
+    \r
+    operator TCHAR*() {\r
+      return _str;\r
+    }\r
+    \r
+    operator const TCHAR*() const {\r
+      return _str;\r
+    }\r
+\r
+    const TCHAR* c_str() const {\r
+       return _str;\r
+    }\r
+    \r
+    size_t length() const {\r
+      return _tcslen(_str);\r
+    }\r
+    \r
+    // Also returns the length. Behaviour like std::basic_string::size.\r
+    // See also sizeInBytes() below.\r
+    size_t size() const {\r
+      return length();\r
+    }\r
+\r
+    // String length in bytes. May differ from length() for Unicode or MBCS\r
+    size_t sizeInBytes() const {\r
+      return length()*sizeof(TCHAR);\r
+    }\r
+\r
+    bool empty() const\r
+    {\r
+       return length()==0;\r
+    }\r
+    \r
+    STRING substr(size_t from, size_t len=size_t(-1)) const {\r
+      STRING tmp;\r
+      size_t to = len==size_t(-1) ? length() : from + len;\r
+            \r
+      if(from < to && (to <= length())) {\r
+        size_t new_len = to - from + 1;\r
+        TCHAR* new_str = new TCHAR[new_len+1];\r
+        lstrcpyn(new_str, &_str[from], int(new_len) );\r
+        new_str[new_len] = 0;\r
+        \r
+        tmp = new_str;\r
+        delete[] new_str;\r
+      }\r
+      \r
+      return tmp;\r
+    }\r
+\r
+    STRING& replace( size_t pos, size_t num, const STRING& s )\r
+    {\r
+       *this = substr( 0, pos ) + s + substr( pos+num );\r
+       return *this;\r
+    }\r
+    \r
+    bool operator ==(const STRING& s) const {\r
+      return (lstrcmp(_str, s) == 0);\r
+    }\r
+\r
+    size_t find(const STRING& s) const\r
+    {\r
+       const TCHAR* p = _tcsstr( _str, s._str );\r
+       if (p)\r
+          return p - _str;\r
+       else\r
+          return size_t(-1);\r
+    }\r
+    \r
+    STRING& operator +=(const STRING& s) {\r
+      TCHAR* str = new TCHAR[lstrlen(_str)+s.length()+1];\r
+\r
+      lstrcpy(str, _str);\r
+      lstrcat(str, s);\r
+      \r
+      delete[] _str;\r
+      \r
+      _str = str;\r
+      \r
+      return *this;\r
+    }\r
+\r
+  private:\r
+    TCHAR* _str;\r
+};\r
+\r
+inline STRING operator+( const STRING& s1, const STRING& s2) {\r
+  STRING tmp(s1);\r
+  \r
+  tmp+=s2;\r
+  \r
+  return tmp;\r
+}\r
+\r
+\r
+\r
+#endif // __string_h__\r
diff --git a/diff_ext_for_kdiff3/server.cpp b/diff_ext_for_kdiff3/server.cpp
new file mode 100644 (file)
index 0000000..385f8dc
--- /dev/null
@@ -0,0 +1,467 @@
+/*\r
+ * Copyright (c) 2003-2005, Sergey Zorin. All rights reserved.\r
+ *\r
+ * This software is distributable under the BSD license. See the terms\r
+ * of the BSD license in the LICENSE file provided with this software.\r
+ *\r
+ */\r
+\r
+#define _WIN32_WINNT 0x0502\r
+#define _CRT_NON_CONFORMING_SWPRINTFS \r
+#define _CRT_SECURE_NO_DEPRECATE\r
+\r
+#include <stdio.h>\r
+\r
+#include <windows.h>\r
+#include <tchar.h>\r
+\r
+#include <shlguid.h>\r
+#include <olectl.h>\r
+#include <objidl.h>\r
+\r
+#include <objbase.h>\r
+#include <initguid.h>\r
+\r
+//#include <log/log.h>\r
+//#include <log/log_message.h>\r
+//#include <log/file_sink.h>\r
+//#include <debug/trace.h>\r
+\r
+#include "server.h"\r
+#include "class_factory.h"\r
+\r
+#define DllExport   __declspec( dllexport )\r
+\r
+// registry key util struct\r
+struct REGSTRUCT {\r
+  LPCTSTR subkey;\r
+  LPCTSTR name;\r
+  LPCTSTR value;\r
+};\r
+\r
+SERVER* SERVER::_instance = 0;\r
+static HINSTANCE server_instance; // Handle to this DLL itself.\r
+\r
+//DEFINE_GUID(CLSID_DIFF_EXT, 0xA0482097, 0xC69D, 0x4DEC, 0x8A, 0xB6, 0xD3, 0xA2, 0x59, 0xAC, 0xC1, 0x51);\r
+// New class id for DIFF_EXT for KDiff3\r
+#ifdef _WIN64\r
+// {34471FFB-4002-438b-8952-E4588D0C0FE9}\r
+DEFINE_GUID( CLSID_DIFF_EXT, 0x34471FFB, 0x4002, 0x438b, 0x89, 0x52, 0xE4, 0x58, 0x8D, 0x0C, 0x0F, 0xE9 );\r
+#else\r
+DEFINE_GUID( CLSID_DIFF_EXT, 0x9f8528e4, 0xab20, 0x456e, 0x84, 0xe5, 0x3c, 0xe6, 0x9d, 0x87, 0x20, 0xf3 );\r
+#endif\r
+\r
+tstring SERVER::getRegistryKeyString( const tstring& subKey, const tstring& value )\r
+{\r
+   tstring keyName = m_registryBaseName;\r
+   if (!subKey.empty())\r
+      keyName += TEXT("\\")+subKey;\r
+\r
+   HKEY key;\r
+   HKEY baseKey = HKEY_CURRENT_USER;\r
+   tstring result;\r
+   for(;;)\r
+   {\r
+      if( RegOpenKeyEx( baseKey, keyName.c_str(), 0, KEY_READ | KEY_WOW64_64KEY, &key ) == ERROR_SUCCESS )\r
+      {\r
+         DWORD neededSizeInBytes = 0;\r
+         if (RegQueryValueEx(key, value.c_str(), 0, 0, 0, &neededSizeInBytes) == ERROR_SUCCESS) \r
+         {\r
+            DWORD length = neededSizeInBytes / sizeof( TCHAR );\r
+            result.resize( length );\r
+            if ( RegQueryValueEx( key, value.c_str(), 0, 0, (LPBYTE)&result[0], &neededSizeInBytes ) == ERROR_SUCCESS)\r
+            {\r
+               //Everything is ok, but we want to cut off the terminating 0-character\r
+               result.resize( length - 1 );\r
+               RegCloseKey(key);\r
+               return result;\r
+            }\r
+            else\r
+            {\r
+               result.resize(0);\r
+            }\r
+         }\r
+\r
+         RegCloseKey(key);\r
+      }\r
+      if (baseKey==HKEY_LOCAL_MACHINE)\r
+         break;\r
+      baseKey = HKEY_LOCAL_MACHINE;\r
+   }\r
+\r
+   // Error\r
+   {                                                                                          \r
+      LPTSTR message;                                                                         \r
+      FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, 0,           \r
+         GetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR) &message, 0, 0); \r
+      ERRORLOG( (tstring(TEXT("RegOpenKeyEx: ")+keyName+TEXT("->")+value) + TEXT(": ")) + message );                                        \\r
+      LocalFree(message);                                                                     \r
+   }\r
+   return result;\r
+}\r
+\r
+\r
+STDAPI \r
+DllCanUnloadNow(void) {\r
+  HRESULT ret = S_FALSE;\r
+  \r
+  if(SERVER::instance()->reference_count() == 0) {\r
+    ret = S_OK;\r
+  }\r
+  \r
+  return ret;\r
+}\r
+\r
+extern "C" int APIENTRY\r
+DllMain(HINSTANCE instance, DWORD reason, LPVOID /* reserved */) {\r
+//  char str[1024];\r
+//  char* reason_string[] = {"DLL_PROCESS_DETACH", "DLL_PROCESS_ATTACH", "DLL_THREAD_ATTACH", "DLL_THREAD_DETACH"};\r
+//  sprintf(str, "instance: %x; reason: '%s'", instance, reason_string[reason]);\r
+//  MessageBox(0, str, TEXT("Info"), MB_OK);  \r
+  switch (reason) {\r
+    case DLL_PROCESS_ATTACH:\r
+      server_instance = instance;\r
+      SERVER::instance()->save_history();\r
+      MESSAGELOG(TEXT("DLL_PROCESS_ATTACH"));\r
+      break;\r
+\r
+    case DLL_PROCESS_DETACH:\r
+      MESSAGELOG(TEXT("DLL_PROCESS_DETACH"));\r
+      SERVER::instance()->save_history();\r
+      break;\r
+  }\r
+\r
+  return 1;\r
+}\r
+\r
+STDAPI \r
+DllGetClassObject(REFCLSID rclsid, REFIID riid, void** class_object) {\r
+  HRESULT ret = CLASS_E_CLASSNOTAVAILABLE;\r
+  *class_object = 0;\r
+\r
+  if (IsEqualIID(rclsid, CLSID_DIFF_EXT)) {\r
+    CLASS_FACTORY* pcf = new CLASS_FACTORY();\r
+\r
+    ret = pcf->QueryInterface(riid, class_object);\r
+  }\r
+\r
+  return ret;\r
+}\r
+\r
+/*extern "C" HRESULT STDAPICALLTYPE*/  STDAPI\r
+DllRegisterServer() {\r
+  return SERVER::instance()->do_register();\r
+}\r
+\r
+STDAPI\r
+DllUnregisterServer() {\r
+  return SERVER::instance()->do_unregister();\r
+}\r
+\r
+SERVER* SERVER::instance()\r
+{\r
+   if(_instance == 0) \r
+   {\r
+      _instance = new SERVER();\r
+      _instance->initLogging();\r
+      MESSAGELOG(TEXT("New Server instance"));\r
+   }\r
+   \r
+   return _instance;\r
+}\r
+\r
+SERVER::SERVER()  : _reference_count(0)\r
+{\r
+   m_registryBaseName = TEXT("Software\\KDiff3\\diff-ext");\r
+   m_pRecentFiles = 0;\r
+   m_pLogFile = 0;\r
+}\r
+\r
+void SERVER::initLogging()\r
+{\r
+   tstring logFileName = getRegistryKeyString( TEXT(""), TEXT("LogFile") );\r
+   if ( !logFileName.empty() )\r
+   {\r
+      m_pLogFile = _tfopen( logFileName.c_str(), TEXT("a+, ccs=UTF-8") );\r
+      if (m_pLogFile)\r
+      {\r
+         _ftprintf( m_pLogFile, TEXT("\nSERVER::SERVER()\n") );\r
+      }\r
+   }\r
+}\r
+\r
+SERVER::~SERVER() \r
+{\r
+   if ( m_pLogFile )\r
+   {\r
+      _ftprintf( m_pLogFile, TEXT("SERVER::~SERVER()\n\n") );\r
+      fclose( m_pLogFile );\r
+   }\r
+\r
+   delete m_pRecentFiles;\r
+}\r
+\r
+HINSTANCE \r
+SERVER::handle() const \r
+{\r
+   return server_instance;\r
+}\r
+\r
+void \r
+SERVER::lock() {\r
+  InterlockedIncrement(&_reference_count);\r
+}\r
+\r
+void  \r
+SERVER::release() {\r
+  InterlockedDecrement(&_reference_count);\r
+  \r
+  //if(InterlockedDecrement((LPLONG)&_reference_count) == 0)\r
+  //   delete this;\r
+}\r
+\r
+void SERVER::logMessage( const char* function, const char* file, int line, const tstring& msg )\r
+{\r
+   SERVER* pServer = SERVER::instance();\r
+   if ( pServer && pServer->m_pLogFile )\r
+   {\r
+      SYSTEMTIME st;\r
+      GetSystemTime( &st );\r
+      _ftprintf( pServer->m_pLogFile, TEXT("%04d/%02d/%02d %02d:%02d:%02d ") \r
+#ifdef UNICODE\r
+         TEXT("%S (%S:%d) %s\n"), // integrate char-string into wchar_t string\r
+#else\r
+         TEXT("%s (%s:%d) %s\n"), \r
+#endif\r
+         st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond, function, file, line, msg.c_str() );\r
+      fflush(pServer->m_pLogFile);\r
+   }\r
+}\r
+\r
+std::list<tstring>&\r
+SERVER::recent_files() \r
+{\r
+   LOG();\r
+   if ( m_pRecentFiles==0 )\r
+   {\r
+      m_pRecentFiles = new std::list<tstring>;\r
+   }\r
+   else\r
+   {\r
+      m_pRecentFiles->clear();\r
+   }\r
+   MESSAGELOG(TEXT("Reading history from registry..."));\r
+   for( int i=0; i<32; ++i )  // Max history size\r
+   {\r
+      TCHAR numAsString[10];\r
+      _sntprintf( numAsString, 10, TEXT("%d"), i );\r
+      tstring historyItem = getRegistryKeyString( TEXT("history"), numAsString );\r
+      if ( ! historyItem.empty() )\r
+         m_pRecentFiles->push_back( historyItem );\r
+   }\r
+   return *m_pRecentFiles;\r
+}\r
+\r
+void\r
+SERVER::save_history() const \r
+{\r
+   if( m_pRecentFiles ) \r
+   {\r
+      HKEY key;\r
+      if( RegCreateKeyEx(HKEY_CURRENT_USER, (m_registryBaseName + TEXT("\\history")).c_str(), 0, 0, \r
+                         REG_OPTION_NON_VOLATILE, KEY_WRITE | KEY_WOW64_64KEY, 0, &key, 0) == ERROR_SUCCESS )\r
+      {\r
+         LOG();\r
+         //DWORD len = MAX_PATH;\r
+         int n = 0;\r
+\r
+         std::list<tstring>::const_iterator i;\r
+\r
+         for(i = m_pRecentFiles->begin(); i!=m_pRecentFiles->end(); ++i, ++n )\r
+         {\r
+            tstring str = *i;\r
+            TCHAR numAsString[10];\r
+            _sntprintf( numAsString, 10, TEXT("%d"), n );\r
+            if(RegSetValueEx(key, numAsString, 0, REG_SZ, (const BYTE*)str.c_str(), (DWORD)(str.size()+1)*sizeof(TCHAR) ) != ERROR_SUCCESS) \r
+            {\r
+               LPTSTR message;\r
+               FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, 0,\r
+                  GetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language\r
+                  (LPTSTR) &message, 0, 0);\r
+               MessageBox(0, message, TEXT("KDiff3-diff-ext: Save history failed"), MB_OK | MB_ICONINFORMATION);\r
+               LocalFree(message);\r
+            }\r
+         }\r
+         for(; n<32; ++n )\r
+         {\r
+            TCHAR numAsString[10];\r
+            _sntprintf( numAsString, 10, TEXT("%d"), n );\r
+            RegDeleteValue(key, numAsString ); \r
+         }\r
+\r
+         RegCloseKey(key);\r
+      }\r
+      else\r
+      {\r
+         SYSERRORLOG(TEXT("RegOpenKeyEx"));\r
+      }\r
+   }\r
+}\r
+\r
+HRESULT\r
+SERVER::do_register() {\r
+   LOG();\r
+  TCHAR   class_id[MAX_PATH];\r
+  LPWSTR  tmp_guid;\r
+  HRESULT ret = SELFREG_E_CLASS;\r
+\r
+  if (StringFromIID(CLSID_DIFF_EXT, &tmp_guid) == S_OK) {\r
+#ifdef UNICODE    \r
+    _tcsncpy(class_id, tmp_guid, MAX_PATH);\r
+#else\r
+    wcstombs(class_id, tmp_guid, MAX_PATH);\r
+#endif\r
+    CoTaskMemFree((void*)tmp_guid);\r
+    \r
+    TCHAR    subkey[MAX_PATH];\r
+    TCHAR    server_path[MAX_PATH];\r
+    HKEY     key;\r
+    LRESULT  result = NOERROR;\r
+    DWORD    dwDisp;\r
+\r
+    GetModuleFileName(SERVER::instance()->handle(), server_path, MAX_PATH);\r
+  \r
+    REGSTRUCT entry[] = {\r
+      {TEXT("Software\\Classes\\CLSID\\%s"), 0, TEXT("diff-ext-for-kdiff3")},\r
+      {TEXT("Software\\Classes\\CLSID\\%s\\InProcServer32"), 0, TEXT("%s")},\r
+      {TEXT("Software\\Classes\\CLSID\\%s\\InProcServer32"), TEXT("ThreadingModel"), TEXT("Apartment")}\r
+    };\r
+  \r
+    for(unsigned int i = 0; (i < sizeof(entry)/sizeof(entry[0])) && (result == NOERROR); i++) {\r
+      _sntprintf(subkey, MAX_PATH, entry[i].subkey, class_id);\r
+      result = RegCreateKeyEx(HKEY_CURRENT_USER, subkey, 0, 0, REG_OPTION_NON_VOLATILE, KEY_WRITE, 0, &key, &dwDisp);\r
+    \r
+      if(result == NOERROR) {\r
+        TCHAR szData[MAX_PATH];\r
+\r
+        _sntprintf(szData, MAX_PATH, entry[i].value, server_path);\r
+        szData[MAX_PATH-1]=0;\r
+\r
+        result = RegSetValueEx(key, entry[i].name, 0, REG_SZ, (LPBYTE)szData, DWORD(_tcslen(szData)*sizeof(TCHAR)));\r
+      }\r
+      \r
+      RegCloseKey(key);\r
+    }\r
+    \r
+    if(result == NOERROR) {  \r
+      result = RegCreateKeyEx(HKEY_CURRENT_USER, TEXT("Software\\Classes\\*\\shellex\\ContextMenuHandlers\\diff-ext-for-kdiff3"), 0, 0, REG_OPTION_NON_VOLATILE, KEY_WRITE, 0, &key, &dwDisp);\r
+    \r
+      if(result == NOERROR) {\r
+    \r
+        result = RegSetValueEx(key, 0, 0, REG_SZ, (LPBYTE)class_id, DWORD(_tcslen(class_id)*sizeof(TCHAR)));\r
+    \r
+        RegCloseKey(key);\r
+    \r
+        //If running on NT, register the extension as approved.\r
+        OSVERSIONINFO  osvi;\r
+      \r
+        osvi.dwOSVersionInfoSize = sizeof(osvi);\r
+        GetVersionEx(&osvi);\r
+      \r
+        // NT needs to have shell extensions "approved".\r
+        if (osvi.dwPlatformId == VER_PLATFORM_WIN32_NT) {\r
+          result = RegCreateKeyEx(HKEY_CURRENT_USER, \r
+             TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Shell Extensions\\Approved"), \r
+             0, 0, REG_OPTION_NON_VOLATILE, KEY_WRITE, 0, &key, &dwDisp);\r
+      \r
+          if(result == NOERROR) {\r
+            TCHAR szData[MAX_PATH];\r
+      \r
+            lstrcpy(szData, TEXT("diff-ext"));\r
+      \r
+            result = RegSetValueEx(key, class_id, 0, REG_SZ, (LPBYTE)szData, DWORD(_tcslen(szData)*sizeof(TCHAR)));\r
+      \r
+            RegCloseKey(key);\r
+            \r
+            ret = S_OK;\r
+          } else if (result == ERROR_ACCESS_DENIED) {\r
+           TCHAR msg[] = TEXT("Warning! You have unsufficient rights to write to a specific registry key.\n")\r
+                         TEXT("The application may work anyway, but it is advised to register this module ")\r
+                         TEXT("again while having administrator rights.");\r
+           \r
+           MessageBox(0, msg, TEXT("Warning"), MB_ICONEXCLAMATION);\r
+           \r
+           ret = S_OK;\r
+          }\r
+        }\r
+        else {\r
+          ret = S_OK;\r
+        }\r
+      }\r
+    }\r
+  }\r
+  \r
+  return ret;\r
+}\r
+\r
+HRESULT\r
+SERVER::do_unregister() {\r
+   LOG();\r
+  TCHAR class_id[MAX_PATH];\r
+  LPWSTR tmp_guid;\r
+  HRESULT ret = SELFREG_E_CLASS;\r
+\r
+  if (StringFromIID(CLSID_DIFF_EXT, &tmp_guid) == S_OK) {\r
+#ifdef UNICODE    \r
+    _tcsncpy(class_id, tmp_guid, MAX_PATH);\r
+#else\r
+    wcstombs(class_id, tmp_guid, MAX_PATH);\r
+#endif\r
+    CoTaskMemFree((void*)tmp_guid);\r
+    \r
+    LRESULT result = NOERROR;\r
+    TCHAR subkey[MAX_PATH];\r
+\r
+    REGSTRUCT entry[] = {\r
+      {TEXT("Software\\Classes\\CLSID\\%s\\InProcServer32"), 0, 0},\r
+      {TEXT("Software\\Classes\\CLSID\\%s"), 0, 0}\r
+    };\r
+  \r
+    for(unsigned int i = 0; (i < sizeof(entry)/sizeof(entry[0])) && (result == NOERROR); i++) {\r
+      _stprintf(subkey, entry[i].subkey, class_id);\r
+      result = RegDeleteKey(HKEY_CURRENT_USER, subkey);\r
+    }\r
+  \r
+    if(result == NOERROR) {\r
+      result = RegDeleteKey(HKEY_CURRENT_USER, TEXT("Software\\Classes\\*\\shellex\\ContextMenuHandlers\\diff-ext-for-kdiff3"));\r
+    \r
+      if(result == NOERROR) {\r
+        //If running on NT, register the extension as approved.\r
+        OSVERSIONINFO  osvi;\r
+      \r
+        osvi.dwOSVersionInfoSize = sizeof(osvi);\r
+        GetVersionEx(&osvi);\r
+      \r
+        // NT needs to have shell extensions "approved".\r
+        if(osvi.dwPlatformId == VER_PLATFORM_WIN32_NT) {\r
+          HKEY key; \r
+          \r
+          RegOpenKeyEx(HKEY_CURRENT_USER, TEXT("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Shell Extensions\\Approved"), 0, KEY_ALL_ACCESS, &key);\r
+  \r
+          result = RegDeleteValue(key, class_id);\r
+        \r
+          RegCloseKey(key);\r
+        \r
+          if(result == ERROR_SUCCESS) {\r
+            ret = S_OK;\r
+          }\r
+        }\r
+        else {\r
+          ret = S_OK;\r
+        }\r
+      }\r
+    }\r
+  }\r
+  \r
+  return ret;\r
+}\r
diff --git a/diff_ext_for_kdiff3/server.h b/diff_ext_for_kdiff3/server.h
new file mode 100644 (file)
index 0000000..d443541
--- /dev/null
@@ -0,0 +1,81 @@
+/*\r
+ * Copyright (c) 2003-2005, Sergey Zorin. All rights reserved.\r
+ *\r
+ * This software is distributable under the BSD license. See the terms\r
+ * of the BSD license in the LICENSE file provided with this software.\r
+ *\r
+ */\r
+#ifndef __server_h__\r
+#define __server_h__\r
+#include <list>   // std::list\r
+//#include <log/file_sink.h>\r
+#include <windows.h>\r
+\r
+#if 1\r
+#include <string> // std::wstring\r
+#ifdef UNICODE\r
+typedef std::wstring tstring;\r
+#else\r
+typedef std::string tstring;\r
+#endif\r
+#define i18n(x) getTranslation( TEXT(x) )\r
+#else\r
+#include "diffextstring.h"\r
+typedef STRING tstring;\r
+#define i18n(x) TEXT(x) \r
+#endif\r
+\r
+#define MESSAGELOG( msg ) SERVER::logMessage( __FUNCTION__, __FILE__, __LINE__, msg )\r
+#define LOG()             MESSAGELOG( TEXT("") )\r
+#define ERRORLOG( msg )   MESSAGELOG( TEXT("Error: ")+tstring(msg) )\r
+#define SYSERRORLOG( msg )                                                                    \\r
+   {                                                                                          \\r
+      LPTSTR message;                                                                         \\r
+      FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, 0,           \\r
+         GetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR) &message, 0, 0); \\r
+      ERRORLOG( (tstring(msg) + TEXT(": ")) + message );                                        \\r
+      LocalFree(message);                                                                     \\r
+   }\r
+\r
+\r
+class SERVER {\r
+  public:\r
+    static SERVER* instance();\r
+    void initLogging();\r
+  \r
+  public:\r
+    virtual ~SERVER();\r
+    \r
+    tstring getRegistryKeyString( const tstring& subKey, const tstring& value );\r
+  \r
+    HINSTANCE handle() const;\r
+  \r
+    HRESULT do_register();\r
+    HRESULT do_unregister();\r
+  \r
+    void lock();\r
+    void release();\r
+  \r
+    ULONG reference_count() const {\r
+      return _reference_count;\r
+    }\r
+    \r
+    std::list< tstring >& recent_files();\r
+    \r
+    void save_history() const;\r
+\r
+    static void logMessage( const char* function, const char* file, int line, const tstring& msg );\r
+  \r
+  private:\r
+    SERVER();\r
+    SERVER(const SERVER&) {}\r
+      \r
+  private:\r
+    LONG _reference_count;\r
+    std::list<tstring>* m_pRecentFiles;\r
+    static SERVER* _instance;\r
+    tstring m_registryBaseName;\r
+    FILE* m_pLogFile;\r
+};\r
+\r
+#endif // __server_h__\r
diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt
new file mode 100644 (file)
index 0000000..eacad6d
--- /dev/null
@@ -0,0 +1,9 @@
+add_subdirectory(en)
+add_subdirectory(da)
+add_subdirectory(de)
+add_subdirectory(es)
+add_subdirectory(et)
+add_subdirectory(fr)
+add_subdirectory(it)
+add_subdirectory(nl)
+add_subdirectory(pt)
diff --git a/doc/README b/doc/README
new file mode 100644 (file)
index 0000000..8c28a9a
--- /dev/null
@@ -0,0 +1,80 @@
+README for the Documentation
+============================
+Author: Joachim Eibl, 2004-02-22
+
+The following text contains some info about how the docs are created.
+It helps me remember certain details. Most users probably aren't 
+interested in these things.
+
+Docbook references:
+http://i18n.kde.org/doc/markup/index.html
+http://opensource.bureau-cornavin.com/crash-course/index.html
+
+Each directory contains the documentation for a different translation.
+The textual information is in the index.docbook of every subdirectory.
+
+I wrote the English version in en/index.docbook. The other translations
+were done by the KDE-Internationalization-Team. They are doing a great
+job!
+
+
+The command meinproc (which is part of KDE) can be used to convert this 
+file into HTML.
+
+meinproc index.docbook
+
+If you prefer everything in one big HTML/Postscript/PDF-file:
+   LANG=de_DE meinproc --check index.docbook --stylesheet /opt/kde3/share/apps/ksgmltools2/customization/kde-nochunk.xsl
+   (The LANG=de_DE prevents that meinproc writes the file in UTF-8 encoding, which isn't understood by html2ps.)
+Create ps-file:
+   html2ps -D -u -n index.html >index.ps
+      (For the -D to work add the line "Ghostscript: 1;" in the "package"-section of file /usr/lib/html2ps/html2psrc.)
+Create pdf-file:
+   ps2pdf index.ps index.pdf
+
+The script createpdfdoc does these steps for all subdirectories.
+
+During normal installation on KDE a compressed file is generated:
+meinproc --check --cache index.cache.bz2 index.docbook
+
+
+As a service for non-KDE-users the en-directory also contains the 
+HTML-version of the English documentation.
+
+After running meinproc the HTML-files contain some references to files 
+in help:/common/ which contains stylesheets and KDE-graphics which make
+the result look much prettier. Because on non-KDE-systems this is not 
+available, I placed a copy of these files in doc/en/common. 
+To correct the references, I run the following command, which removes 
+the "help:/"-part of the references, and only the "common/"-part remains.
+
+for i in *.html; do sed -i "s/help:\///g" $i; done
+
+(sed-option "-i" means in-place, "s/orig/repl/" is the replacement-command,
+"g" replaces every occurance in the line, not only the first.)
+
+The screenshots were made with the English KDE-version and therefore are
+placed in the en-directory. But since for the other translations no new
+screenshots were made yet, they only contain links to the English 
+screenshots. These links are created en-bloc with this command. (But
+first you must cd into each subdirectory.)
+
+for i in `ls ../en | grep png`; do ln -s ../en/$i $i; done
+
+Command to retrieve other translations from cvs:
+
+cvs co kde-i18n/subdirs
+#for i in `cat kde-i18n/subdirs`; do  cvs co kde-i18n/$i/docs/kdeextragear-1/kdiff3/index.docbook; done
+for i in `cat subdirs`; do wget http://websvn.kde.org/*checkout*/trunk/l10n/$i/docs/extragear-utils/kdiff3/index.docbook -O $i.docbook; done
+
+If a new translation is available, 
+- create a new directory, 
+- copy the index.docbook file there,
+- copy a Makefile.am there and correct it, 
+- edit the doc/Makefile.am to include the new subdir,
+- create the links for the graphics,
+- and don't forget to run make -f Makefile.cvs in the top directory.
+
+
+
+
diff --git a/doc/createpdfdoc b/doc/createpdfdoc
new file mode 100644 (file)
index 0000000..275a590
--- /dev/null
@@ -0,0 +1,14 @@
+# html2ps is from the "html2ps"-package
+# ps2pdf is part of the "ghostscript-library"-package
+for i in `find * -maxdepth 0 -type d`; do
+  cd $i
+  echo $i
+  if [ $i != "en" ]; then
+     for j in `ls ../en | grep png`; do ln -s ../en/$j $j; done
+     ln -s ../en/common common
+  fi
+  LANG=de_DE meinproc4 --check index.docbook --stylesheet /usr/share/kde4/apps/ksgmltools2/customization/kde-nochunk.xsl
+  html2ps --rcfile /usr/lib/html2ps/html2psrc -D -u -n index.html >index.ps
+  ps2pdf index.ps ../kdiff3_$i.pdf
+  cd ..
+done
diff --git a/doc/da/CMakeLists.txt b/doc/da/CMakeLists.txt
new file mode 100644 (file)
index 0000000..3305e73
--- /dev/null
@@ -0,0 +1 @@
+kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/da SUBDIR kdiff3)
diff --git a/doc/da/index.docbook b/doc/da/index.docbook
new file mode 100644 (file)
index 0000000..10c0757
--- /dev/null
@@ -0,0 +1,2918 @@
+<?xml version="1.0" ?>
+<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
+  <!ENTITY kdiff3 "<application
+>KDiff3</application
+>">
+  <!ENTITY kappname "&kdiff3;">
+  <!ENTITY package "extragear-utils">
+  <!ENTITY % addindex "IGNORE">
+  <!ENTITY % Danish "INCLUDE">
+]>
+
+<book lang="&language;">
+
+<!-- This header contains all of the meta-information for the document such
+as Authors, publish date, the abstract, and Keywords -->
+
+<bookinfo>
+<title
+>&kdiff3;-håndbogen</title>
+
+<authorgroup>
+<author
+><firstname
+>Joachim</firstname
+> <surname
+>Eibl</surname
+> <affiliation
+><address
+> <email
+>joachim.eibl snabela gmx.de</email>
+</address
+></affiliation>
+</author>
+&erik.kjaer.pedersen.role; 
+</authorgroup>
+
+<copyright>
+<year
+>2002-2006</year>
+<holder
+>Joachim Eibl</holder>
+</copyright>
+<!-- Translators: put here the copyright notice of the translation -->
+<!-- Put here the FDL notice.  Read the explanation in fdl-notice.docbook
+     and in the FDL itself on how to use it. -->
+<legalnotice
+>&FDLNotice;</legalnotice>
+
+<!-- Date and version information of the documentation
+Don't forget to include this last date and this last revision number, we
+need them for translation coordination !
+Please respect the format of the date (YYYY-MM-DD) and of the version
+(V.MM.LL), it could be used by automation scripts.
+Do NOT change these in the translation. -->
+
+<date
+>2006-05-14</date>
+<releaseinfo
+>0.9.90</releaseinfo>
+
+
+<abstract>
+<para
+>&kdiff3; er et værktøj til sammenligning og sammenfletning af filer og mapper, som <itemizedlist>
+<listitem
+><para
+>sammenligner og fletter to eller tre tekst-inddatafiler eller mapper sammen,</para
+></listitem>
+<listitem
+><para
+>viser forskellen linje-for-linje og tegn-for-tegn(!),</para
+></listitem>
+<listitem
+><para
+>sørger for en automatisk sammenfletningsfunktion,</para
+></listitem>
+<listitem
+><para
+>har en editor til behagelig løsning af sammenfletningskonflikter,</para
+></listitem>
+<listitem
+><para
+>tilbyder netværksgennemsigtighed via KIO,</para
+></listitem>
+<listitem
+><para
+>har valgmuligheder til at fremhæve eller skjule ændringer i blanke tegn eller kommentarer,</para
+></listitem>
+<listitem
+><para
+>understøtter Unicode, UTF-8 og andre tegnsæt,</para
+></listitem>
+<listitem
+><para
+>udskriver forskelle,</para
+></listitem>
+<listitem
+><para
+>understøtter versionshåndteringsnøgleord og historiksammenfletning.</para
+></listitem>
+</itemizedlist>
+</para
+><para
+>Dette dokument beskriver &kdiff3; version 0.9.98. </para>
+</abstract>
+
+<!-- This is a set of Keywords for indexing by search engines.
+Please at least include KDE, the KDE package it is in, the name
+ of your application, and a few relevant keywords. -->
+
+<keywordset>
+<keyword
+>KDE</keyword>
+<keyword
+>kdeextragear</keyword>
+<keyword
+>kdiff3</keyword>
+<keyword
+>diff</keyword>
+<keyword
+>sammenflet</keyword>
+<keyword
+>CVS</keyword>
+<keyword
+>trippelsammenligning</keyword>
+<keyword
+>sammenlign</keyword>
+<keyword
+>filer</keyword>
+<keyword
+>mapper</keyword>
+<keyword
+>versionskontrol</keyword>
+<keyword
+>trevejs sammenfletning</keyword>
+<keyword
+>forskelle i linje</keyword>
+<keyword
+>synkronisér</keyword>
+<keyword
+>kpart</keyword>
+<keyword
+>kio</keyword>
+<keyword
+>netværksgennemsigtighed</keyword>
+<keyword
+>editor</keyword>
+<keyword
+>blanke tegn</keyword>
+<keyword
+>kommentarer</keyword>
+</keywordset>
+
+</bookinfo>
+
+<chapter id="introduction"
+><title
+>Indledning</title>
+<sect1 id="why"
+><title
+>Endnu en sammenligningsgrænseflade?</title>
+<para
+>Der eksisterer flere grafiske sammenligningsværktøjer. Hvorfor skal du vælge &kdiff3;? Lad mig fortælle dig hvorfor jeg skrev det. </para
+><para
+>&kdiff3; blev påbegyndt fordi jeg var tvunget til at lave en svær sammenfletning. At sammensætte er nødvendigt når flere personer arbejder med samme fil i et projekt. En sammenfletning kan være delvis automatiseret, når sammenfletningsværktøjet ikke kun har adgang til de nye ændrede filer (som kaldes "grene"), men også originalfilen (som kaldes "basis"). Sammenfletningsværktøjet vælger automatisk en ændring som kun er udført i en gren. Når flere bidragydere ændrer samme linjer, detekterer sammenfletningsværktøjet en konflikt som skal løses manuelt. </para
+><para
+>Sammenfletningen var svær eftersom en bidragyder havde ændret meget og rettet indrykningen mange steder. Den anden bidragydere havde også ændret meget tekst i samme fil, hvilket forårsagede flere konflikter ved sammenfletningen. </para
+><para
+>Værktøjet som jeg dengang brugte viste kun ændrede linjer, men ikke hvad der var ændret indenfor linjen. Der fandtes heller ikke nogen information om hvor kun indrykningen var ændret. Sammenfletningen var et mindre mareridt. </para
+><para
+>Det var altså begyndelsen. Den første version kunne vise forskelle på en linje, og viste forskelle i blanke tegn. Senere kom mange andre funktioner til for at øge brugbarheden. </para
+><para
+>Hvis du for eksempel hurtigt vil sammenligne en tekst, kan du kopiere den til klippebordet og indsætte den i et af sammenligningsvinduerne. </para
+><para
+>En funktion som krævede en stor anstrengelse var funktionen for mappesammenligning og sammenfletning, som gjorde programmet til en næsten fuldstændig filsøger. </para
+><para
+>Jeg håber at &kdiff3; også virker for dig. Hav det sjovt! </para
+><para
+>Joachim Eibl (2003) </para>
+</sect1>
+
+<sect1 id="screenshots"
+><title
+>Skærmaftryk og funktioner</title>
+<para
+>Dette skærmaftryk viser forskellen mellem to tekstfiler</para>
+<para
+>(Med en tidlig version af &kdiff3;):</para>
+<screenshot
+><mediaobject>
+   <imageobject
+><imagedata fileref="screenshot_diff.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+
+<para
+>Trevejs sammenfletning understøttes fuldstændigt. Dette er nyttigt hvis to personer ændrer kode uafhængig af hinanden. Originalfilen (basen) bruges til  at hjælpe &kdiff3; med automatisk at vælge de rigtige ændringer. Sammenfletningseditoren under diff-vinduerne lader dig løse konflikter, mens uddata du vil få vises. Skærmbilledet viser tre inddatafiler som er ved at blive flettet sammen: </para
+><para>
+<screenshot
+><mediaobject>
+   <imageobject
+><imagedata fileref="screenshot_merge.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+</para>
+
+<para id="dirmergebigscreenshot"
+>&kdiff3; hjælper dig også med at sammenligne og sammenflette hele mapper. Dette skærmaftryk viser &kdiff3; under en mappesammenfletning: </para
+><para>
+<screenshot
+><mediaobject>
+   <imageobject
+><imagedata fileref="dirmergebig.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+</para>
+</sect1>
+
+<sect1 id="features"
+><title
+>Flere funktioner</title>
+<sect2
+><title
+>Linje-for-linje og tegn-for-tegn sammenligningsvisning</title>
+<para
+>Ved at bruge mulighederne en grafisk farveskærm har, viser &kdiff3; nøjagtigt hvad forskellene er. Når du skal lave mange kodegennemgange, vil du kunne lide dette. </para>
+<screenshot
+><mediaobject>
+   <imageobject
+><imagedata fileref="letter_by_letter.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+</sect2>
+
+<sect2
+><title
+>Se forskelle i blanke tegn med et blik</title>
+<para
+>Mellemrum og tabulatorer som er forskellige ses. Når linjer kun er forskellige i mængden af blanke tegn ses det med et blik i sammendragssøjlen til venstre. (Ikke flere problemer hvis nogen ændrer indrykningen.) </para>
+<screenshot
+><mediaobject>
+   <imageobject
+><imagedata fileref="white_space.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+</sect2>
+
+<sect2
+><title
+>Trevejssammenligninger</title>
+<para
+>Analysér tre filer og se hvor de adskiller sig. </para
+><para
+>Venstre/midt/højre vindue kaldes A/B/C og har blå/grøn/magenta farve. </para
+><para
+>Hvis en fil er den samme og en anden anderledes for en linje, så viser farverne hvilken fil der er anderledes. Den røde farve betyder at begge de andre filer er forskellige. </para>
+<screenshot
+><mediaobject>
+   <imageobject
+><imagedata fileref="triple_diff.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+</sect2>
+
+<sect2
+><title
+>Bekvem sammenfletning af to eller tre inddatafiler</title>
+<para
+>&kdiff3; kan bruges til at sammenflette to eller tre inddatafiler og sammenfletter automatisk så meget som muligt. Resultatet vises i et redigerbart vindue hvor de fleste konflikter kan løses med et enkelt museklik. Vælg knapperne A/B/C i værktøjslinjen for at vælge kilden som skal bruges. Du kan også vælge mere end en kilde. Eftersom udskriftsvinduet er en editor, kan til og med konflikter som behøver yderligere korrigering løses her uden at kræve et andet værktøj. </para>
+</sect2>
+
+<sect2
+><title
+>Og ...</title>
+<itemizedlist>
+   <listitem
+><para
+>Hurtig navigering via knapper.</para
+></listitem>
+   <listitem
+><para
+>Et museklik i sammendragssøjlen synkroniserer alle vinduer så samme position vises.</para
+></listitem>
+   <listitem
+><para
+>Markér og kopiér fra hvilket som helst vindue, og indsæt i resultatvinduet for sammenfletning.</para
+></listitem>
+   <listitem
+><para
+>Oversigtssøjle som viser hvor ændringer og konflikter er.</para
+></listitem>
+   <listitem
+><para
+>Farverne kan justeres efter dine specifikke ønsker.</para
+></listitem>
+   <listitem
+><para
+>Justerbar fanebladsstørrelse.</para
+></listitem>
+   <listitem
+><para
+>Valgmulighed for at indsætte mellemrum i stedet for tabulatortegn.</para
+></listitem>
+   <listitem
+><para
+>Åbn filer bekvemt via dialoger, eller angiv filnavn på kommandolinjen.</para
+></listitem>
+   <listitem
+><para
+>Søg efter strenge i alle tekstvinduer. Find (Ctrl-F) og Find næste (F3).</para
+></listitem>
+   <listitem
+><para
+>Vis linjenummer for hver linje. </para
+></listitem>
+   <listitem
+><para
+>Indsæt klippebordet eller træk tekst til et inddatavindue for sammenligning</para
+></listitem>
+   <listitem
+><para
+>Netværksgennemsigtighed via KIO.</para
+></listitem>
+   <listitem
+><para
+>Kan bruges som en forskelsviser i KDevelop 3.</para
+></listitem>
+   <listitem
+><para
+>Tekstombrydning af lange linjer.</para
+></listitem>
+   <listitem
+><para
+>Støtte for Unicode, UTF-8 og andre kodninger.</para
+></listitem>
+   <listitem
+><para
+>Støtte for sprog som læses fra højre til venstre.</para
+></listitem>
+   <listitem
+><para
+>...</para
+></listitem>
+</itemizedlist>
+</sect2>
+</sect1>
+</chapter>
+
+<chapter id="documentation"
+><title
+>Filsammenligning og fletning</title>
+
+<sect1 id="commandline"
+><title
+>Kommandolinjeflag</title>
+
+<sect2
+><title
+>Sammenlign to filer: </title>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>fil1 fil2</replaceable
+>
+</screen>
+</sect2>
+
+<sect2
+><title
+>Sammenflet to filer: </title>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>fil1 fil2</replaceable
+> -m
+<command
+>kdiff3</command
+> <replaceable
+>fil1 fil2</replaceable
+> -o <replaceable
+>uddatafil</replaceable
+>
+</screen>
+</sect2>
+
+<sect2
+><title
+>Sammenlign tre filer: </title>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>fil1 fil2 fil3</replaceable
+>
+</screen>
+</sect2>
+
+<sect2
+><title
+>sammenflet tre filer: </title>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>fil1 fil2 fil3</replaceable
+> -m
+<command
+>kdiff3</command
+> <replaceable
+>fil1 fil2 fil3</replaceable
+>-o <replaceable
+>uddatafil</replaceable
+>
+</screen>
+<para
+>Bemærk at <replaceable
+>fil1</replaceable
+> behandles som basis for <replaceable
+>fil2</replaceable
+> og <replaceable
+>fil3</replaceable
+>. </para>
+</sect2>
+
+<sect2
+><title
+>Specialtilfælde: Filer med samme navn </title>
+<para
+>Hvis alle filer har samme navn men er i forskellige mapper, kan du reducere hvor meget du skal skrive ved kun at angive filnavnet for den første fil. &eg;: </para>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>kat1/filnavn kat2 kat3</replaceable
+>
+</screen>
+</sect2>
+
+<sect2
+><title
+>Kommandolinje for at starte en mappesammenligning eller sammenfletning: </title>
+<para
+>Dette er meget lignende, men nu drejer det sig om mapper.</para>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>kat1 kat2</replaceable>
+<command
+>kdiff3</command
+> <replaceable
+>kat1 kat2</replaceable
+> -o <replaceable
+>målkat</replaceable>
+<command
+>kdiff3</command
+> <replaceable
+>kat1 kat2 kat3</replaceable>
+<command
+>kdiff3</command
+> <replaceable
+>kat1 kat2 kat3</replaceable
+>-o <replaceable
+>målkat</replaceable
+>
+</screen>
+<para
+>For mappesammenligning og sammenfletning kan du fortsætte med at læse <link linkend="dirmerge"
+>her</link
+>.</para>
+</sect2>
+
+<sect2
+><title
+>Andre kommandolinjeflag</title>
+<para
+>For at se alle tilgængelige kommandolinjeflag, skriv</para>
+<screen
+><command
+>kdiff3</command
+> --help
+</screen>
+<para
+>Eksempeluddata:</para>
+<screen
+>Vælgare:
+  -m, --merge               Sammenflet inddata.
+  -b, --base file           Eksplicit basisfil. For at virke sammen med visse værktøjer.
+  -o, --output file         Uddatafil. Betyder underforstået -m. F.eks.: -o ny_fil.txt
+  --out file                Uddatafil, igen. (for at virke med visse værktøjer.)
+  --auto                    Ingen grafisk grænseflade hvis alle konflikter kan løses automatisk (kræver -o fil)
+  --qall                    Løs ikke konflikter automatisk. (For at virke med andre værktøjer...)
+  --L1 alias1               Synlig erstatning af navn for inddatafil 1 (basis).
+  --L2 alias2               Synlig erstatning af navn for inddatafil 2.
+  --L3 alias3               Synlig erstatning af navn for inddatafil 3.
+  -L, --fname alias         Alternativ synlig erstatning af navn. Angiv dette en gang for al inddata.
+  --cs string               Sæt en indstilling ud af kraft. Anvend en gang for hver indstilling, f.eks.  --cs "AutoAdvance=1"
+  --confighelp              Vis liste med indstillinger og nuværende værdier.
+  --config file             Anvend en anden indstillingsfil.
+</screen>
+<para
+>Flaget <option
+>-cs</option
+> lader dig justere et indstillingstilvalg som ellers kun kan justeres via indstillingsdialogerne. Men vær klar  over at når &kdiff3; afsluttes opbevares den ændrede værdi sammen med andre indstillinger. Med <option
+>--confighelp</option
+> kan du finde ud af  navnene på tilgængelige tilvalg og nuværende værdier.</para>
+<para
+>Via <option
+>--config</option
+> kan du angive en anden indstillingsfil. Hvis du ofte bruger &kdiff3; med helt forskellige indstillinger tillader dette dig nemt at skifte mellem dem.</para>
+</sect2>
+<sect2
+><title
+>Kommandolinjeflag som ignoreres</title>
+<para
+>Mange personer vil bruge &kdiff3; sammen med et versionshåndteringssystem, men når versionshåndteringssystemet kalder &kdiff3; med kommandolinjeflag som &kdiff3; ikke genkender, afsluttes &kdiff3; med en fejl. Integrationsindstillingerne gør det muligt at angive kommandolinjeflag som skal ignoreres af &kdiff3;. De vises i brugshjælpen som i dette eksempel:</para>
+<screen
+>--<replaceable
+>foo</replaceable
+>                     Ignoreres. (brugerdefineret)
+</screen>
+<variablelist>
+  <varlistentry
+><term
+><emphasis
+>Kommandolinjeflag at ignorere:</emphasis
+></term
+><listitem
+><para
+>En liste med flag, adskilte med semikolon ';'. Når et af disse flag findes på kommandolinjen, ignorerer &kdiff3; det og kører uden at rapportere en fejl. (Standard er "u;query;html;abort").</para
+></listitem
+></varlistentry>
+</variablelist>
+<para
+>Hvis dette ikke er nok, anbefales du at skrive et skalscript som udfører oversættelsen af flag.</para>
+</sect2>
+
+</sect1>
+
+<sect1 id="opendialog"
+><title
+>Dialogen Åbn</title>
+<para
+>Eftersom mange inddatafiler skal kunne vælges, har programmet en særlig åbningsdialog: </para>
+<screenshot
+><mediaobject>
+<imageobject
+><imagedata fileref="open_dialog.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+<para
+>Åbningsdialogen tillader at filnavnene redigeres i hånden, at en fil vælges via filsøgeren ("Fil...") eller at nyligt brugte filer vælges i dropned-feltet. Hvis du åbner dialogen igen, eksisterer de nuværende navne stadigvæk der. Den tredje inddatafil kræves ikke. Hvis feltet for "C" forbliver tomt, udføres kun en tovejs sammenligninganalyse. </para
+><para
+>Du kan også vælge en mappe med "Mappe...". Hvis en mappe angives for A, starter en mappesammenligning og sammenfletning. Hvis A angiver en fil, men B, C eller udskriften angiver en mappe, bruger &kdiff3; filnavnet fra A i de angivne mapper. </para
+><para
+>Hvis "Sammenflet" er valgt, bliver linjen "Udskrift" redigerbar. Det kræves dog ikke at uddatafilens navn angives med det samme. Du kan også vente med dette til du gemmer. </para
+><para
+>Knappen "Indstil.." viser indstillingsdialogen, så du kan indstille tilvalgene inden analysen udføres. </para>
+</sect1>
+
+<sect1 id="pasteinput"
+><title
+>Indsæt eller slip inddata</title>
+<para
+>Sommetider vil du sammenligne dele af en tekst som ikke er en egen fil. &kdiff3; lader dig også indsætte tekst fra klippebordet i det inddatavindue for sammenligning som har fokus. Sammenligningsanalysen sker så med det samme. I åbningsdialogen behøver du så ikke at angive filer, men kun at lukke den via "Annullér". </para
+><para
+>Du kan også bruge træk og slip: Træk en fil fra en filhåndtering eller markeret tekst fra en editor og slip den på et inddatavindue til sammenligning. </para
+><para
+>Hvad er idéen? Sommetider indeholder en fil to lignende funktioner, men at kontrollere hvor ens de virkelig er bliver en stor anstrengelse hvis du først skal oprette to filer og derefter indlæse dem. Nu kan du helt enkelt kopiere, indsætte og sammenligne de relevante afsnit. </para
+><para
+>Bemærk: For øjeblikket kan du ikke trække noget fra &kdiff3;. Det understøttes kun at slippe inddata i sammenligningvinduet. </para
+><para
+>Advarsel: Visse editorer tolker stadigvæk træk og slip til et andet program som klip ud (i stedet for kopiér) og indsæt. De oprindelige data kan derfor gå tabt. </para>
+</sect1>
+
+<sect1 id="interpretinginformation"
+><title
+>Sammenlign filer og tolke informationen i inddatavinduerne</title>
+<screenshot
+><mediaobject>
+<imageobject
+><imagedata fileref="screenshot_diff.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+<sect2
+><title
+>Informationslinje</title
+><para
+>Længst oppe i hvert tekstvindue er dets "informationslinje". Informationslinjerne i inddatavinduet indeholder bogstaven "A", "B" eller "C", filnavnet og linjenummeret for den første synlige linje i vinduet. (Bemærk at vinduet "C" er valgfrit.) Hver informationslinje vises i en egen farve. </para
+><para
+>Når du vælger en anden fil ved at bladre eller afslutter at redigere filnavnet her ved at trykke på returtasten, indlæses den nye fil og sammenlignes med filen eller filerne som allerede er indlæste. </para
+></sect2
+><sect2
+><title
+>Farvelægning</title
+><para
+>De tre inddatavinduer tildeles bogstaverne "A", "B" og "C". "A" har blå farve, "B" har grøn farve og "C" har magenta. (Dette er standardfarver, men de kan ændres via menuen Opsætning.) </para
+><para
+>Når en forskel opdages viser farven hvilken inddatafil som adskiller sig. Når begge de øvrige inddatafiler adskiller sig, er farven som bruges for at udtrykke dette normalt rød ("Konfliktfarve" i indstillingerne). Dette farvelægningsmønster er særlig nyttigt i tilfældet med tre inddatafiler, som ses i næste afsnit (<link linkend="merging"
+>Sammenfletning</link
+>). </para
+></sect2
+><sect2
+><title
+>Sammenfatningssøjle</title
+><para
+>Til venstre for hver tekst er "sammendragssøjlen". Hvis forskelle opstod på en linje, viser sammendragssøjlen tilsvarende farve. For en forskel som kun består af blanke tegn er sammendraget afkrydset. For programmeringssprog, hvor blanke tegn ikke er så vigtige er det nyttigt at se med et blik om noget af vigtighed er ændret. (For C/C++ er blanke tegn kun interessante inde i strenge, i kommentarer, for præprocessoren og i nogle meget esoteriske situationer.) </para
+><para
+>Den lodrette linje som adskiller sammendragssøjlen og teksten er afbrudt hvis inddatafilen ikke har nogen linjer der. Når tekstombrydning er aktiveret så vil denne linje se prikket ud for ombrudte linjer. </para
+></sect2
+><sect2
+><title
+>Oversigtssøjle</title
+><para
+>På højre side er en "oversigtssøjle" synlig til venstre for den lodrette rullebjælke. Den viser et komprimeret sammendrag af inddata "A". Alle forskelle og konflikter er synlige med et blik. Når kun to inddatavinduer bruges, ses alle forskelle i rødt her, eftersom alle forskelle også er konflikter. Et sort rektangel indrammer den synlige del af inddata. For meget lange inddatafiler, hvor antallet af inddatalinjer er større end højden på oversigten i billedpunkter, deler flere inddatalinjer en oversigtslinje. En konflikt har prioritet over enkle forskelle, som har prioritet over ingen ændringer, så ingen forskelle eller konflikter går tabte her. Ved at klikke på oversigtssøjlen vises den tilsvarende tekst. </para
+></sect2
+><sect2 id="manualdiffhelp"
+><title
+>Justér linjer manuelt</title
+><para
+>Sommetider placerer algoritmen forkerte linjer ved siden af hinanden, eller du vil  sammenligne et stykke tekst med tekst på en helt anden position i den anden fil. I disse tilfælde kan du manuelt fortælle  &kdiff3; at visse linjer skal arrangeres i bestemte linjer linje. Markér teksten som du vil arrangere med musen, som du ville gøre ved kopi og indsæt, i det første diff-vindue og vælg derefter "Tilføj manuel justering af sammenligning" i menuen "Sammenligning" (genvejstasten "Ctrl+Y"). En orange linje vises i sammenfatningssøjlen udfor den markerede tekst. Gentag det for den anden og (hvis tilgængelig) tredje sammenligningsvisning. &kdiff3; genberegner med det samme sammenligningen hver gang du gør det, og justerer de markerede linjer. Naturligvis matcher nogle af linjerne tidligere matchede ikke længere. </para
+><para
+>For øjeblikket understøttes ikke sammenfletning ved brug af manuel hjælp til sammenligning. </para
+></sect2>
+</sect1>
+
+
+<sect1 id="merging"
+><title
+>Sammenfletning og editorvinduet for sammenfletning af uddata</title>
+<screenshot
+><mediaobject>
+<imageobject
+><imagedata fileref="screenshot_merge.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+<para
+>Editorvinduet for sammenfletning af uddata (under inddatavinduet for sammenligning) har også en informationslinje længst oppe som viser "Uddata", filnavnet og "[Ændret]" hvis du har redigeret noget. Oftest indeholder det en tekst fra de automatiske sammenfletningsfunktioner, men det indeholder også ofte konflikter. </para
+><para
+>Gem er deaktiveret indtil alle konflikter er løst!!! (Brug knapperne "Gå til foregående/næste uløste konflikt" for at finde de tilbageværende konflikter.) </para
+><para
+>Med kun to filer er hver forskel også en konflikt, som skal løses manuelt. </para
+><para
+>Med tre inddatafiler behandles den første som basis, mens den anden og tredje inddatafil indeholder ændringer. Hvis kun inddata B eller C er ændret for en vis linje, men ikke begge vælges den ændrede kilde automatisk. Kun hvis B og C er ændret på samme linjer, detekterer værktøjet en konflikt som skal løses manuelt. Når B og C er ens, men ikke det samme som A, vælges C.  </para
+><sect2
+><title
+>Sammenfatningssøjlen</title
+><para
+>Editorvinduet for sammenfletning af uddata har også en sammendragssøjle til venstre. Den viser bogstaverne for inddata fra hvilken  linjen valgtes, eller ingenting hvis alle tre kilder var ens for linjen. Ved konflikter viser den et spørgsmålstegn "?" og linjen viser "&lt; Konflikter ved sammenfletning &gt;", alt med rødt. Eftersom det ville tage meget lang tid at løse konflikter linje for linje, grupperes linjer i grupper som har samme forskelle og konfliktkarakter. Konflikter med kun blanke tegn adskilles dog fra andre konflikter for at forbedre sammenfletningen af filer hvor indrykningen er ændret på mange linjer. </para
+></sect2
+><sect2 id="synchronise_views"
+><title
+>Indstil nuværende gruppe og synkronisér sammenfletnings- og sammenligningsvisningen position</title
+><para
+>Når du klikker på sammenfatningssøjlen med venstre museknap i et af  vinduerne, så markeres gruppen som hører til den linje i alle vinduer og gruppens begyndelse vises. (Dette kan indebære et automatisk skift af position i vinduerne hvis gruppens begyndelse ikke ses.) Gruppen bliver så til den "nuværende gruppe". Den markeres med "Baggrundsfarven for nuværende sammenligningsområde" og en sort linje vises til venstre for teksten. </para
+></sect2
+><sect2
+><title
+>Vælg inddata A, B eller C for nuværende konflikt og redigering</title
+><para
+>Knaplinjen under menulinjen indeholder tre knapper for inddatavalg som indeholder bogstaverne "A", "B" og "C". Klik på knappen for inddatavalg for at indsætte linjer (eller fjerne dem hvis de allerede er indsat) fra de respektive kildefil. For at vælge linjer fra flere inddatafiler klikkes på de respektive knapper i den nødvendige rækkefølge. Hvis du for eksempel ønsker at linjer fra "B" skal havne før linjer fra "A" i uddata, klikkes først på "B" og derefter på "A". </para
+><para
+>Hvis du bruger tilvalget automatisk at gå videre (<link linkend="autoadvance"
+>Gå automatisk til næste uløste konflikt efter valg af kilde</link
+>), skal du deaktivere dette inden du vælger linjer fra flere inddatafiler eller hvis du vil redigere linjerne efter du valgt dem. Ellers går &kdiff3; til næste konflikt efter den første inddatafil er valgt. </para
+><para
+>Det er ofte nyttigt direkte at redigere sammenflettet uddata. Sammenfatningssøjlen viser "m" for hver linje som er ændret manuelt. Når forskellene for eksempel justeres på en måde så et enkelt valg af inddata ikke er tilfredsstillende, kan du markere teksten som behøves og bruge normal <link linkend="selections"
+>kopiér og indsæt</link
+> for at placere den i sammenflettet uddata. </para
+><para
+>Sommetider, når en linje fjernes enten på grund af automatisk fletning eller ved redigering og ingen andre linjer er tilbage i gruppen, vises teksten  &lt;No src line&gt; på linjen. Det er kun en pladsmarkør for gruppen hvis du ændrer mening og vælger en kilde igen. Teksten ses ikke i gemte filer eller i nogen markeringer som du vil kopiere og indsætte. </para
+><para
+>Teksten "&lt;Merge Conflict&gt;" vises i klippebordet hvis du kopierer og indsætter noget tekst som indeholder en sådan linje. Men vær satdig forsigtig med at gøre det. </para
+></sect2
+><sect2
+><title
+>Vælg inddata A, B eller C for alle konflikter</title
+><para
+>Den normale sammenfletning vil starte med at løse simple konflikter automatisk. Men "Flet"-menu sørger for handlinger for andre almindelige behov. Hvis du skal vælge samme kilde for de fleste konflikter, så kan du vælge"A", "B" eller "C" overalt, eller kun for de tiloversblevne uløste konflikter, eller for uløste konflikter med blanke tegn. Hvis du ønsker at afgøre hver lille forskel selv, kan du "Sætte lille forskel til konflikt". Eller hvis du ønsker at vende tilbage de automatiske valg udført af &kdiff3; så  vælg "Løs simple konflikter automatisk". &kdiff3; starter så sammenfletningen forfra. For handlinger der ændrer dine  tidligere ændringer vil &kdiff3; bede om bekræftelse før den går videre. </para
+><para
+>Bemærk: Når en af kilderne for uløste konflikter med blanke tegn vælges og tilvalgene "Ignorér tal" eller "Ignorér C/C++ kommentarer" bruges så  bliver ændringer i tal eller kommentarer også behandlet som blanke tegn. </para
+></sect2
+><sect2 id="vcskeywordsmergesupport"
+><title
+>Sammenflet automatisk nøgleord for versionshåndtering og historik (log)</title
+><para
+>Mange versionskontrolsystemer understøtter specielle nøgleord i filen. (f.eks. "&#36;Date:&#36;", "&#36;Header&#36;", "&#36;Author&#36;", "&#36;&#36;" osv.) Ved check-in ændrer versionskontrolsystemet (VCS) disse linjer. For eksempel bliver "&#36;Date:&#36;" til "&#36; Date:2005/03/22 18:45:01 &#36;". Idet denne linje vil være forskellig i hver version af filen, ville det kræve manuel interaktion under sammenfletningen. </para
+><para
+>&kdiff3; tilbyder automatisk sammenfletning af disse indgange. For enkle linjer som matcher tilvalget "Regulært udtryk for automatisk sammenfletning" i alle inddatafiler vælger &kdiff3; linjen fra B, eller om tilgængelig, den fra C. (Desuden er det nødvendigt at linjerne det drejer sig om linjes op i sammenligningen og at foregående linje ikke indeholder en konflikt.) Den automatiske sammenfletning kan enten udføres med det samme når sammenfletningen startes (aktivér tilvalget "Kør automatisk sammenfletning med regulært udtryk når sammenfletning starter") eller senere via "Kør automatisk sammenfletning med regulært udtryk" i menuen Sammenflet. </para
+><para
+>Automatisk sammenfletning for versionshåndteringshistorik (også kaldet "log") understøttes også. Automatisk sammenfletning af historik kan enten udføres med det samme når sammenfletningen startes ved at aktivere tilvalget  "Sammenfletning ifølge versionshåndteringshistorik når sammenfletning starter" eller senere via "Løs automatisk historikkonflikter" i menuen Sammenflet. </para
+><para
+>Oftest begynder versionshåndteringshistorikken med en linje som indeholder nøgleordet "&#36;Log&#36;". Den skal matches af tilvalget "Regulært udtryk for historikkens begyndelse". &kdiff3; detekterer hvilke efterfølgende linjer som indgår i historikken ved at analysere de indledende tegn som fandtes før nøgleordet "&#36;Log&#36;". Hvis samme "indledende kommentar" også findes på følgende linjer inkluderes de også i historikken. </para
+><para
+>Ved hver arkivering skriver VCS en entydig linje som angiver version, dato- og tidsinformation fulgt af linjer med brugerens kommentarer. Disse linjer udgør en historikindgang. Historikafsnittet vokser ved hver arkivering og de seneste indgange vises længst oppe (efter historikkens startlinje). </para
+><para
+>Når to udvikler arkiverer grene af en fil under parallel udvikling, kommer historikken for sammenfletning til at indeholde flere indgange som vises som konflikter under sammefletning af grenene. Eftersom sammenfletning af dem kan blive meget trættende, tilbyder &kdiff3; understøttelse for den med to mulige strategier: Blot indsætte historikinformationen fra begge bidragsyderne længst oppe, eller sortere historikinformationen ifølge en brugerdefineret nøgle. </para
+><para
+>Metoden kun at indsætte alle indgange er nemmest at indstille. &kdiff3; behøver kun en metode til at detektere hvilke linjer som hører til en historikindgang. De fleste VCS indsætter en tom linje efter hver historikindgang. Hvis der ikke findes andre tomme linjer, er det en tilstrækkelig betingelse for &kdiff3;. Angiv blot et tomt "Regulært udtryk for historikkens begyndelse". Hvis kriteriet med en tom linje ikke er tilstrækkeligt kan du angive et regulært udtryk for at detektere historikindgangen begyndelse. </para
+><para
+>Bemærk at &kdiff3; fjerner duplikerede historikindgange. Hvis en historikindgang blev fundet flere gange i en inddatafils historik, forbliver kun en indgang i uddataen. </para
+><para
+>Hvis du vil sortere historikken skal du angive hvordan sorteringsnøglen skal bygges. Brug parenteser som i "Regulært udtryk for historikindgangens begyndelse" for at gruppere dele af det regulære udtryk som senere skal bruges i sorteringsnøglen. Angiv derefter "Sorteringsnøglernes rækkefølge fra historikindgangens begyndelse" med en liste af tal som refererer til gruppens position i det regulære udtryk adskilt af kommategn ",". </para
+><para
+>Eftersom det ikke er så enkelt at få det rigtigt med det samme, kan du teste  og forbedre det regulære udtryk og nøglegenereringen i en særlig dialog ved at klikke på knappen "Test dine regulære udtryk". </para
+><para
+>Antag at historikken ser ud så her: <screen>
+/**************************************************************************
+** HISTORIK:    &#36;Log: \toms_sammenfletning_hovedvisning\Mit_program\kode\komplexalgoritm.cpp &#36;
+**
+**     \head\integreringsgren_12   2 Apr 2001 10:45:41   tom
+**  Sammenflettede grenen simongren_15.
+**
+**     \main\henry_felretningsgren_7\1   30 Mar 2001 19:22:05   henry
+**  Forbedrede hastigheden for delrutinen forvandleTil().
+**  Ordnede sammenbrud.
+**************************************************************************/
+</screen
+> Historikkens indledende linje matcher det regulære udtryk ".*\&#36;Log.*\&#36;.*". Derefter følger historikindgangene. </para
+><para
+>Linjen med nøgleordet "&#36;Log&#36;" begynder med to "*" og derefter følger et mellemrum. &kdiff3; bruger den første streng uden blanke tegn som "indledende kommentar" og antager at historikken slutter med den første linje uden denne indledende kommentar. I eksemplet slutter den sidste linje med en streng som også begynder med to "*", men i stedet for et mellemrum følger flere "*". Derfor afslutter denne linje historikken. </para
+><para
+>Hvis sortering af historikken ikke kræves kan det regulære udtryk for historikindgangens begyndelsen se sådan her ud. (Linjen er delt i to eftersom den ikke ville få plads ellers.) <screen>
+\s*\\main\\\S+\s+[0-9]+ (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)
+ [0-9][0-9][0-9][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9]\s+.*
+</screen
+> For detaljer om regulære udtryk se <ulink url="http://doc.trolltech.com/3.3/qregexp.html#details"
+>Trolltechs dokumentation af regulære udtryk</ulink
+>. Bemærk at "\s" (med et lille "s") matcher alle blanke tegn og  "\S" (med et stort "S") matcher alle tegn som ikke er blanke. I vort eksempel indeholder historikindgangens begyndelse først versionsinformation med det regulære udtryk "\\main\\\S+", datoen som består af dagen "[0-9]+", månaden "(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)" og året "[0-9][0-9][0-9][0-9]", tiden "[0-9][0-9]:[0-9][0-9]:[0-9][0-9]" og til sidst udviklerens brugernavn ".*". Bemærk at den indledende kommentar (i eksemplet "**") allerede er fjernet af &kdiff3; inden matcheforsøget, derfor begynder det regulære udtryk med at matche et eller flere blanke tegn "\s*". </para
+><para
+>Hvis du kræver sorteret historik skal sorteringsnøglen beregnes. For at gøre dette skal relevante dele i det regulære udtryk grupperes med parenteser. (De ekstra parenteser kan også forblive hvis historiksortering deaktiveres.) <screen>
+\s*\\main\\(\S+)\s+([0-9]+) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)
+ ([0-9][0-9][0-9][0-9]) ([0-9][0-9]:[0-9][0-9]:[0-9][0-9])\s+(.*)
+</screen
+> Parenteserne indeholder nu 1. versionsinformation, 2. dag, 3. måned, 4. år, 5. tid, 6. navn. Men hvis vi vil sortere efter dato og tid skal vi oprette en nøgle med elementerne synlige i en anden rækkefølge: Først året, fulgt af måned, dag, tid, versionsinformation og navn. Derfor skal sorteringsnøglens rækkefølge som angives være  "4,3,2,5,1,6". </para
+><para
+>Eftersom månednavne ikke er gode at sortere efter ("Apr" ville være først) detekterer &kdiff3; hvilken rækkefølge månednavnene angives og bruger dette nummer i stedet  for ("Apr"->"04"). Og hvis et rent nummer findes forvandles det til en fireciffers værdi med indledende nuller for sortering. Endelig bliver den resulterende sorteringsnøgle for den første historikindgangens indledende linje: <screen
+>2001 04 0002 10:45:41 integreringsgren_12   tom 
+</screen>
+</para
+><para
+>For mere information, se også <link linkend="diffmergeoptions"
+>Opsætning af sammenlign og sammenflet</link
+>. </para>
+</sect2>
+</sect1>
+
+<sect1 id="navigation"
+><title
+>Navigering og redigering</title>
+<para
+>Meget navigering gøres med rullelisterne og musen, men du kan også navigere med tastaturet. Hvis du klikker på et vindue kan du bruge markørtasterne venstrepil, højrepil, opadpil, nedadpil, Page Up, Page Down, Home, End, Ctrl+Home og Ctrl+End ligesom du kan i andre programmer. Sammenfatningssøjlen ved siden af inddatafilernes lodrette rulleliste kan også bruges til at navigere ved at klikke i den. </para
+><para
+>Du kan også bruge musehjulet til at rulle opad og nedad. </para
+><para
+>I editoren for fletning kan du også bruge andre taster til redigering. Du kan skifte mellem indsætnings- og erstatningstilstand med Insert-tasten. (Normaltilstanden er at indsætte.) </para
+><para
+>Et klik med venstre museknap i en sammenfatningssøjle synkroniserer alle vinduer til at vise begyndelsen af samme gruppe af linjer (som forklaret i afsnittet <link linkend="synchronise_views"
+>Indstil nuværende gruppe og synkronisér sammenfletnings- og sammenligningsvisningens position</link
+>). </para
+><para
+>Værktøjslinjen indeholder også ni navigeringsknapper som du kan bruge til at gå til nuværendel/førsea/sidste forskel, til næste/foregående forskel (Ctrl+Nedadpil eller Ctrl+Opadpil), til næste/foregående konflikt (Ctrl+Page Down eller Ctrl+Page Up) eller til næste/foregående uløste konflikt. Bemærk at for &kdiff3; forbliver en "konflikt" som ikke automatisk blev løst ved start af sammenfletningen altid en "konflikt" også selvom den er løst. Deraf nødvendigheden af at skelne "uløste konflikter". </para>
+<sect2 id="autoadvance"
+><title
+>Automatisk fortsættelse</title>
+<para
+>Der er også en knap som hedder "Gå automatisk til næste uløste konflikt efter valg af kilde" (automatisk fortsættelse). Hvis du aktiverer dette, så går &kdiff3; automatisk til næste uløste konflikt når en kilde vælges. Dette kan hjælpe til når du kun vil vælge en kilde. Når du behøver begge kilder, eller du vil redigere efter valget, bør du formodentlig slå dette fra. Inden &kdiff3; fortsætter til næste uløste konflikt, vises effekten af valget en kort tid. Denne forsinkelse kan justeres i indstillingerne under Sammenlign og sammenflet. Du kan angive <guilabel
+>Forsinkelse ved automatisk fortsættelse</guilabel
+> i millisekunder mellem 0 og 2000. </para>
+</sect2>
+</sect1>
+
+<sect1 id="selections"
+><title
+>Markér, kopiér og indsæt</title>
+<para
+>Inddatavinduerne viser ikke nogen markør, så markeringer skal udføres med musen, ved at klikke med venstre museknap på begyndelsen, holde museknappen nede og gå til slutningen, hvor museknappen slippes igen. Du kan også markere et ord ved at dobbeltklikke på det. I editoren for sammenfletningsuddata kan du også markere med tastaturet, ved at holde shift-tasten nede og navigere med piletasterne. </para
+><para
+>Hvis markeringen overstiger det synlige område, kan du flytte musen over vindueskanterne, hvilket gør at &kdiff3; ruller i den retning. </para
+><para
+>For meget store markeringer kan du også bruge navigationstasterne mens museknappen holdes nede. Brug f.eks. Page Up og Page Down for hurtigt at gå til en bestemt position. Slip museknappen på slutpositionen. </para
+><para
+>For at markere alt i det nuværende vindue, bruges menuen "Redigér" -> Markér alt" (Ctrl+A). </para
+><para
+>For at kopiere til klippebordet skal du trykke på knappen "Kopiér" (Ctrl+C eller Ctrl+Insert). Men der er et tilvalg som hedder "Kopiér automatisk markering". Hvis det er aktiveret, kopieres hvad du end vælger med det samme, og du behøver aldrig eksplicit kopiere. Men vær forsigtig når du bruger dette, eftersom klippebordets indhold kan ødelægges ved en fejl. </para
+><para
+>"Klip" (Ctrl+X eller Shift+Delete) kopierer til klippebordet og fjerner den markerede tekst. </para
+><para
+>"Indsæt" (Ctrl+V eller Shift+Insert) indsætter teksten på klippebordet ved markørens position eller i stedet for den nuværende markeringen. Hvis du indsætter i et af sammenligningsvinduerne vises klippebordets indhold i vinduet og sammenligningen genstartes med det samme. Dette er nyttigt hvis du hurtigt vil hente et stykke tekst et sted og sammenligne det med noget andet uden først at oprette filer. </para>
+</sect1>
+
+<sect1 id="saving"
+><title
+>Gemmer</title>
+<para
+>At gemme tillades kun når alle konflikter er løste. Hvis filen allerede findes og tilvalget "Sikkerhedskopiér filer" er markeret, ændres originalversionens navn med tilføjelse af filendelsen .orig, og hvis en sådan fil allerede findes fjernes den. Når du afslutter eller starter en ny sammenligningsanalyse og data ikke er gemt endnu, spørger &kdiff3; om du vil gemme, annullere eller fortsætte uden at gemme. (&kdiff3; fanger ingen signaler, så hvis du "dræber" &kdiff3; går data tabt.) </para
+><para
+>Linjeslut gemmes ifølge den normale metoden i det underliggende operativsystem. For Unix slutter hver linje med et nylinjetegn "\n", mens for Windows-baserede systemer slutter hvert linje med et returtegn og et nylinjetegn "\r\n". &kdiff3; beholder ikke linjeslut for inddatafilerne, hvilket også betyder at du ikke skal bruge &kdiff3; med binære filer. </para>
+</sect1>
+
+<sect1 id="find"
+><title
+>Søg efter strenge</title>
+<para
+>Du kan søge efter en streng i et hvilket som helst tekstvindue i &kdiff3;. Kommandoen "Søg..." (Ctrl+F) i menuen Redigér, viser en dialog som lader dig angive strengen at søge efter. Du kan også vælge de vinduer som skal søges. Søgning starter altid fra begyndelsen. Brug kommandoen "Søg igen" (F3) for at fortsætte til næste forekomst. Hvis du vælger at søge i flere vinduer, gennemsøges det første vindue fra begyndelsen til slutningen inden søgningen fortsætter fra begyndelsen i næste vindue, osv. </para>
+</sect1>
+
+<sect1 id="printing"
+><title
+>Udskrift</title>
+<para
+>&kdiff3; understøtter udskrift af forskelle mellem tekstfiler. Kommandoen "Skriv ud..." (Ctrl+P) i menuen Fil viser en dialog som lader dig vælge printer og justere andre tilvalg. </para
+><para
+>Der er flere muligheder for at justere området. Afhængig af forskellige udskriftsdialoger på forskellige operativsystemer, varierer metoden for at opnå valg af et vist område. </para>
+<variablelist>
+   <varlistentry
+><term
+>Alle:</term
+><listitem
+><para
+>Udskriv alt.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+>Nuværende:</term
+><listitem
+><para
+>Udskriv en side som begynder på den første synlige linje i vinduet. (På systemer uden dette tilvalg kan dette opnås ved at angive sidenummeret 10000 for udskrift.)</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+>Markering:</term
+><listitem
+><para
+>Inden du vælger at udskrive, markeres tekst med musen (som for kopiere og indsætte) i et af sammenligningsvinduerne for at definere start- og slutlinje. Hvis ingen tekst er markeret i et af sammenligningsvinduerne, er dette tilvalg ikke tilgængeligt. (På systemer uden dette tilvalg kan dette opnås ved at angive sidenummeret 9999 for udskrift.)</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+>Område:</term
+><listitem
+><para
+>Angiv første og sidste side. </para
+></listitem
+></varlistentry>
+</variablelist>
+<para
+>Andre vigtige indstillinger for udskrift tages fra de normale indstillinger: </para
+><itemizedlist>
+   <listitem
+><para
+>Skrifttype, tegnstørrelse</para
+></listitem>
+   <listitem
+><para
+>Vis linjenummer</para
+></listitem>
+   <listitem
+><para
+>Linjebrud</para
+></listitem>
+   <listitem
+><para
+>Farver</para
+></listitem>
+   <listitem
+><para
+>osv.</para
+></listitem>
+</itemizedlist>
+<para
+>Landskabsformatering anbefales også for udskrift. </para>
+</sect1>
+
+<sect1 id="options"
+><title
+>Tilvalg</title>
+<para
+>Tilvalg og listen med nylige filer gemmes når du afslutter programmet, og indlæses igen når du starter det. (Menuen Opsætning->Indstil KDiff3 ...) </para>
+<sect2
+><title
+>Skrifttype</title>
+<para
+>Vælg en skrifttype med fast bredde. (På visse systemer viser dialogen også skrifttyper med variabel bredde, men du bør ikke bruge dem.) </para>
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Kursiv stil for forskelle:</emphasis
+></term
+><listitem
+><para
+>Hvis du markerer dette, vises tekstforskelle med kursiv versionen af den valgte skrifttype. Hvis skrifttypen ikke understøtter kursiv stil, gør dette ingenting.</para>
+   </listitem
+></varlistentry>
+</variablelist>
+</sect2>
+
+<sect2
+><title
+>Farver</title>
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Forgrundsfarve:</emphasis
+></term
+><listitem
+><para
+>Oftest sort. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Baggrundsfarve:</emphasis
+></term
+><listitem
+><para
+>Oftest hvid. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Baggrundsfarve for sammenligning:</emphasis
+></term
+><listitem
+><para
+>Oftest lysegrå. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Farve A:</emphasis
+></term
+><listitem
+><para
+>Oftest mørkeblå. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Farve B:</emphasis
+></term
+><listitem
+><para
+>Oftest mørkegrøn. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Farve C:</emphasis
+></term
+><listitem
+><para
+>Oftest mørk magenta. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Konfliktfarve:</emphasis
+></term
+><listitem
+><para
+>Oftest rød.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Baggrundsfarve for nuværende område:</emphasis
+></term
+><listitem
+><para
+>Oftest lysegul.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Baggrundsfarve for nuværende sammenligningsområde:</emphasis
+></term
+><listitem
+><para
+>Oftest mørkegul.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Farve for manuelt valgte sammenligningsområder:</emphasis
+></term
+><listitem
+><para
+>Oftest orange.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Farve for nyeste fil i mappesammenligning:</emphasis
+></term
+><listitem
+><para
+>Oftest grøn.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Farve for ældste fil i en mappesammenligning:</emphasis
+></term
+><listitem
+><para
+>Oftest rød.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Farve for middelgamle filer i en mappesammenligning:</emphasis
+></term
+><listitem
+><para
+>Oftest mørkegul.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Farve for manglende filer i et mappesammenligning:</emphasis
+></term
+><listitem
+><para
+>Oftest sort.</para
+></listitem
+></varlistentry>
+</variablelist>
+<para
+>At ændre farverne for mappesammenligninger får ikke nogen virkning før end næste mappesammenligning startes. </para>
+<para
+>For systemer med kun 16 eller 256 farver er visse rene farver ikke tilgængelige. For sådanne systemer vælger knappen "Standard" en ren farve. </para>
+</sect2>
+
+<sect2
+><title
+>Opsætning af editor</title>
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Tabulator indsætter mellemrum:</emphasis
+></term
+><listitem
+><para
+>Hvis dette ikke er markeret, og du trykker på tabulatortasten, indsættes en tabulator, ellers indsættes et passende antal mellemrum.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Tabulatorbredde:</emphasis
+></term
+><listitem
+><para
+>Kan justeres efter dine specielle behov. Normalværdien er 8. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Automatisk indrykning:</emphasis
+></term
+><listitem
+><para
+>Når du trykker på Enter eller returtasten, bruges foregående linjes indrykning for den nye linje. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Kopiere markering automatisk:</emphasis
+></term
+><listitem
+><para
+>Hver markering kopieres med det samme til klippebordet når dette aktiveres, og du behøver ikke kopiere den eksplicit. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Stil for linjeafslutning:</emphasis
+></term
+><listitem
+><para
+>Når du gemmer kan du vælge den stil for linjeafslutning du foretrækker. Standardindstillingen er det almindelige valg for det operativsystem der bruges. </para
+></listitem
+></varlistentry>
+</variablelist>
+</sect2>
+
+<sect2 id="diffmergeoptions"
+><title
+>Opsætning af sammenligning og fletning</title>
+<para
+>Når filer sammenlignes forsøger &kdiff3; først at matche linjer som er ens i alle inddatafiler. Det er kun under dette skridt at blanke tegn kan ignoreres. Det næste skridt sammenligner hver linje. Under dette skridt ignoreres  blanke tegn ikke. Under sammenfletning ignoreres blanke tegn heller ikke. </para>
+
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Behold returtegn:</emphasis
+></term
+><listitem
+><para
+>Visse editorer (på visse systemer) gemmer returtegn '\r' og nylinjetegn '\n' i slutningen på linjen, mens andre kun gemmer nylinjetegnet '\n'. Oftest ignorerer &kdiff3; returtegnet, men så ser filer som ikke har samme størrelse ens ud ved sammenligning side for side. Når dette tilvalg  er markeret, gøres returtegn synlige, men behandles som blanke tegn. Dette tilvalg skal være slået fra under en sammenfletning. Standardværdien er fra.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Ignorér cifre:</emphasis
+></term
+><listitem
+><para
+>Standardværdien er fra. Ciffertegn ('0'-'9','.','-') ignoreres under første del af analysen når linjematchningen udføres. Forskellene for resultatet vises alligevel, men de behandles som blanke tegn. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Ignorér C/C++ kommentarer:</emphasis
+></term
+><listitem
+><para
+>Normalværdien er fra. Ændringer i kommentarer vil blive behandlet ligesom ændringer i blanke tegn. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Ignorér versaltype:</emphasis
+></term
+><listitem
+><para
+>Standardværdien er fra. Ændringer i versaltilstand for tegn (såsom 'A' eller 'a') håndteres som ændringer i blanke tegn. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Præprocessorkommando:</emphasis
+></term
+><listitem
+><para
+>Se <link linkend="preprocessors"
+>næste afsnit</link
+>. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Præprocessorkommando for linjematchning:</emphasis
+></term
+><listitem
+><para
+>Se <link linkend="preprocessors"
+>næste afsnit</link
+>. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Prøv hårdt:</emphasis
+></term
+><listitem
+><para
+>Prøv hårdt at finde selv små fejl. (Normalt slået til.) Det er formodentlig effektivt for komplicerede og store filer, og langsomt for meget store filer. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Forsinkelse ved automatisk fortsættelse (ms):</emphasis
+></term
+><listitem
+><para
+>I automatisk fortsættelsestilstand angiver denne indstilling hvor længe resultatet for gruppen skal vises inden der hoppes til næste uløste konflikt. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Blanke tegn 2/3-fil fletningsstandard:</emphasis
+></term
+><listitem
+><para
+>Løs automatisk alle konflikter for blanke tegn ved at vælge angiven fil. (Standardværdien er manuelt valg.) Nyttigt hvis blanke tegn virkelig ikke er vigtige i mange filer. Hvis du kun behøver det ind iblandt, er det bedre at bruge "Vælg A/B/C for uløste konflikter med blanke tegn" i menuen "Sammenflet". Bemærk at hvis du enten aktiverer Ignorér cifre eller "Ignorere C/C++ kommentarer" gælder det automatiske valg også ved konflikter for cifre eller kommentarer. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Regulært udtryk for automatisk sammenfletning:</emphasis
+></term
+><listitem
+><para
+>Regulært udtryk for linjer hvor &kdiff3; automatisk skal vælge en kilde. Se også <link linkend="vcskeywordsmergesupport"
+>Automatisk sammenfletning ...</link
+> </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Kør automatisk sammenfletning med regulært udtryk når sammenfletning starter:</emphasis
+></term
+><listitem
+><para
+>Hvis aktiveret udfører &kdiff3; den automatiske sammenfletning med "Regulært udtryk for automatisk sammenfletning" når en sammenfletning startes. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Regulært udtryk for historikkens begyndelse:</emphasis
+></term
+><listitem
+><para
+>Regulært udtryk for begyndelsen af historikindgangen for sammenfletning. Som oftest indeholder linjen nøgleordet "&#36;Log&#36;". Standardværdi: ".*\&#36;Log.*\&#36;.*" </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Regulært udtryk for historikindgangens begyndelse:</emphasis
+></term
+><listitem
+><para
+>En historikindgang for sammenfletning består af flere linjer. Angiv det regulære udtryk for at detektere den første linje (uden indledende kommentar). Brug parenteser for at gruppere nøglerne du vil bruge til sortering. Hvis det efterlades tomt, antager &kdiff3; at tomme linjer skiller historikindgangene ad. Se også <link linkend="vcskeywordsmergesupport"
+>Automatisk sammenfletning ...</link
+> </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Sortering af historiksammenfletning:</emphasis
+></term
+><listitem
+><para
+>Aktivér sortering af versionshåndteringshistorik. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Sorteringsnøglernes rækkefølge fra historikindgangens begyndelse:</emphasis
+></term
+><listitem
+><para
+>Hver parentes som bruges i det regulære udtrykket for historikkens startindgang grupperer en nøgle som kan bruges til sortering. Angiv listen med nøgler (som nummereres i rækkefølge de optræder med begyndelsen på 1) med ',' som skilletegn (f.eks. "4,5,6,1,2,3,7"). Hvis det efterlades tomt udføres ingen sortering. Se også <link linkend="vcskeywordsmergesupport"
+>Automatisk sammenfletning ...</link
+> </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Sammenfletning ifølge versionshåndteringshistorik når sammenfletningen starter:</emphasis
+></term
+><listitem
+><para
+>Hvis aktiveret udfører &kdiff3; den automatiske sammefletning af historik med tidligere nævnte tilvalg når en sammenfletning startes. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Test dine regulære udtryk</emphasis
+></term
+><listitem
+><para
+>Denne knap viser en dialog som lader dig forbedre og teste det regulære udtryk ovenfor. Kopiér blot de respektive data fra dine filer til eksempellinjerne. "Matcheresultaterne" viser med det samme om det lykkes at matche eller ej. "Sorteringsnøgleresultat" viser nøglen som bruges til sortering ved sammenfletning af historik. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Irrelevant sammenfletningskommando:</emphasis
+></term
+><listitem
+><para
+>Angiv en egen kommando som skal kaldes når &kdiff3; detekterer at filen fra B ikke bidrager med relevant data som ikke allerede findes i filen fra C. Denne kommando kaldes med de tre filnavne som parametre. Data som matches af "Regulært udtryk for automatisk sammenfletning" eller i historikken anses ikke for at være relevant. </para
+></listitem
+></varlistentry>
+</variablelist>
+
+</sect2>
+
+<sect2
+><title
+>Mappefletning</title>
+<para
+>Disse valgmulighederne har at gøre med gennemsøgning af mappen og håndtering af sammenfletningen: Se <link linkend="dirmergeoptions"
+>Mappesammenligning og sammenfletning</link
+> for detaljer. </para
+><para
+>Der er endnu en valgmulighed her som også er relevant for at gemme enkelte filer: </para>
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Sikkerhedskopiér filer:</emphasis
+></term
+><listitem
+><para
+>Når en fil gemmes og en ældre version allerede eksisterer, ændres originalversionens navn med tilføjelse af filendelsen ".orig". Hvis en gammel sikkerhedskopi med ".orig" allerede eksisterer slettes den uden sikkerhedskopiering. </para
+></listitem
+></varlistentry>
+</variablelist>
+</sect2>
+
+<sect2
+><title
+>Indstillinger for region og sprog</title>
+  <variablelist>
+    <varlistentry
+><term
+><emphasis
+>Sprog:</emphasis
+></term
+><listitem
+><para
+>Justér brugergrænsefladens sprog. At ændre dette påvirker ikke programmet som kører. Du skal afslutte og genstarte &kdiff3; for at ændre sprog. (Dette er ikke tilgængeligt i &kde;-versionen af &kdiff3;, eftersom sproget kan justeres i de generelle &kde;-indstillinger.) </para
+></listitem
+></varlistentry>
+    <varlistentry
+><term
+><emphasis
+>Brug samme kodning til alt:</emphasis
+></term
+><listitem
+><para
+>Følgende kodningstilvalg kan justeres separat for hvert objekt, eller hvis tilvalget er sandt, indstilles alle værdier til den første værdi. </para
+></listitem
+></varlistentry>
+    <varlistentry
+><term
+><emphasis
+>Lokal kodning:</emphasis
+></term
+><listitem
+><para
+>Ovenfor kodningsvælgerne vises en note som fortæller dig hvad den lokale kodning er (Den kan ikke justeres, men er kun til information hvis du ikke ved hvad den lokale kodning er, men har brug for at kunne vælge den.) </para
+></listitem
+></varlistentry>
+    <varlistentry
+><term
+><emphasis
+>Filkodning for A/B/C:</emphasis
+></term
+><listitem
+><para
+>Justér filkodningen for inddatafiler. Dette har en effekt på hvordan specialtegn tolkes. Eftersom du kan justere hvert kodning separat, kan du til og med sammenligne og sammenflette filer som blev gemt med forskellige kodninger. </para
+></listitem
+></varlistentry>
+    <varlistentry
+><term
+><emphasis
+>Filkodning for sammenflettet uddata og ved at gemme:</emphasis
+></term
+><listitem
+><para
+>Når du har redigeret en fil, kan du justere hvilken kodning som bruges når den gemmes til disk. </para
+></listitem
+></varlistentry>
+    <varlistentry
+><term
+><emphasis
+>Filkodning for præprocessorfiler:</emphasis
+></term
+><listitem
+><para
+>Når du definerer præprocessorer, kan de måske ikke håndtere din kodning (eksempelvis hvis dine filer bruger 16-bit Unicode og præprocessoren kun kan håndtere 8-bit ASCII). Med dette kan du definere kodningen for præprocessorens uddata. </para
+></listitem
+></varlistentry>
+    <varlistentry
+><term
+><emphasis
+>Sprog som læses fra højre til venstre</emphasis
+></term
+><listitem
+><para
+>Visse sprog skrives fra højre til venstre. Når dette er aktiveret, tegner &kdiff3; tekst fra højre til venstre i sammenligningsvinduerne og i sammenfletningsvinduet. Bemærk at hvis du starter &kdiff3; med kommandolinjeflaget "--reverse" så vises al layout også fra højre til venstre. (Dette er en funktion som &Qt; sørger for.) Denne dokumentation er skrevet under antagelse af at "Sprog som læses fra højre til venstre" eller omvendt layout ikke er aktiverede. Visse referencer til "venstre" eller "højre" skal erstattes af det modsatte hvis du bruger disse valgmuligheder. </para
+></listitem
+></varlistentry>
+
+  </variablelist>
+</sect2>
+
+<sect2
+><title
+>Diverse</title>
+<para
+>(Disse tilvalg og handlinger er tilgængelige i menuerne eller værktøjslinjen.)</para>
+<variablelist>
+  <varlistentry
+><term
+><emphasis
+>Vis linjenummer:</emphasis
+></term
+><listitem
+><para
+>Du kan vælge om linjenummer skal vises for inddatafilerne.</para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Vis mellemrum og tabulatortegn i sammenligning:</emphasis
+></term
+><listitem
+><para
+>Sommetider er synlige mellemrum og tabulatortegn forstyrrende. Du kan slå dette fra.</para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Vis blanke tegn:</emphasis
+></term
+><listitem
+><para
+>Luk af for dette for ikke at vise ændringer af kun blanke tegn i teksten eller oversigtssøjlerne. (Bemærk at dette også gælder ændringer af cifre eller kommentarer hvis valgmulighederne "Ignorér cifre" eller "Ignorér C/C++ kommentarer" er aktive.)</para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Overblikstilvalg:</emphasis
+></term
+><listitem
+><para
+>Disse tilvalg er kun tilgængelige når du sammenligner tre filer. I standardtilstand vises alle forskelle i en farvekodet oversigtssøjle, men sommetider er du især interesseret i forskellene mellem to af de tre filer. Ved at vælge oversigten "A mod B", "A mod C" eller "B mod C" vises en anden oversigtssøjle med den forespurgte information ved siden af den almindelige oversigt. </para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Tekstombrydning af diff-vinduer:</emphasis
+></term
+><listitem
+><para
+>Ombryd linjer når deres længde ville have været større end vinduets bredde. </para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Vis vindue A/B/C:</emphasis
+></term
+><listitem
+><para
+>Sommetider vil du gerne bruge skærmpladsen bedre for lange linjer. Skjul vinduer som ikke er vigtige. (I menuen Vinduer.)</para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Skift opdelingsorientering:</emphasis
+></term
+><listitem
+><para
+>Skift mellem sammenligningsvinduer som vises ved siden af hinanden (A til venstre for B til venstre for C) eller ovenfor hinanden (A over B over C). Dette bør også hjælpe med lange linjer. (I menuen Vinduer.) </para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Start sammenfletning hurtigt:</emphasis
+></term
+><listitem
+><para
+>Sommetider kigger du på forskelle, og bestemmer dig for at sammenflette. <inlinemediaobject
+><imageobject
+><imagedata fileref="merge_current.png" format="PNG"/></imageobject
+></inlinemediaobject
+> "Sammenflet denne fil" i menuen Mappe virker også hvis du kun sammenligner to filer. Et enkelklik starter sammenfletningen og bruger filnavnet på den sidste inddatafil som standarduddatafilnavn. (Når dette bruges til at genstarte en sammenfletning, beholdes uddatafilnavnet.)</para
+></listitem
+></varlistentry>
+</variablelist>
+</sect2>
+
+<sect2 id="shortcuts"
+><title
+>Indstil genvejstaster</title>
+<para
+>For øjeblikket understøtter kun &kde;-versionen indstillelige genvejstaster (Menuen Opsætning->Indstil genveje...) </para>
+</sect2>
+</sect1>
+
+<sect1 id="preprocessors"
+><title
+>Præprocessorkommandoer</title>
+<para
+>&kdiff3; understøtter to præprocessortilvalg. </para
+><para>
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Præprocessorkommando:</emphasis
+></term
+><listitem
+><para
+>Når en fil læses, sendes den via denne eksterne kommando. Uddata fra denne kommando vises i stedet for den oprindelige fil. Du kan skrive din egen præprocessor som opfylder dine specielle behov. Brug dette til at fjerne forstyrrende dele af filen, eller for automatisk at korrigere indrykning, osv. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Præprocessorkommando for linjematchning:</emphasis
+></term
+><listitem
+><para
+>Når en fil læses, sendes den via denne eksterne kommando. Hvis en præprocessorkommando (se ovenfor) også angives er udskriften fra præprocessoren input til kommandoen for linjematchning. Udskriften bruges kun under linjematchningsfasen af analysen. Du kan skrive din egen præprocessor som opfylder dine specielle behov. Hvert inddatalinje skal have en tilsvarende uddatalinje. </para
+></listitem
+></varlistentry>
+</variablelist>
+</para>
+<para
+>Idéen er at tillade brugeren større fleksibilitet mens diff-resultatet indstilles. Men dette kræver et eksternt program, og mange brugere ønsker ikke selv at skrive et sådant. Heldigvis er det meget ofte sådan at  <command
+>sed</command
+> or <command
+>perl</command
+> vil kunne klare det. </para>
+<para
+>For eksempel et enkelt tilfælde at teste: Betragt filen a.txt (6 linjer): <screen>
+      aa
+      ba
+      ca
+      da
+      ea
+      fa
+</screen
+> Og filen b.txt (3 linjer): <screen>
+      cg
+      dg
+      eg
+</screen
+> Uden en præprocessor ville følgende linjer placeres ud for hinanden: <screen>
+      aa - cg
+      ba - dg
+      ca - eg
+      da
+      ea
+      fa
+</screen
+> Det er formodentlig ikke det der ønskes eftersom det første bogstav indeholder den interessante information. For at hjælpe matchealgoritmen med at ignorere det andet bogstav kan man bruge en linjematchende præprocessorkommando som erstatter 'g' med 'a': <screen>
+   <command
+>sed</command
+> 's/g/a/'
+</screen
+> Med den kommando bliver resultatet af at matche: <screen>
+      aa
+      ba
+      ca - cg
+      da - dg
+      ea - eg
+      fa
+</screen
+> Internt ser matchealgoritmen filerne efter den linjematchende præprocessor er kørt, men på skærmen er filen uforandret. (Den normale præprocessor ville også ændre data på skærmen.) </para>
+
+<sect2 id="sedbasics"
+><title
+>Basal <command
+>sed</command
+></title>
+<para
+>Dette afsnit introducerer blot nogle meget grundlæggende funktioner i <command
+>sed</command
+>. For mere information se <ulink url="info:/sed"
+>info:/sed</ulink
+> eller <ulink url="http://www.gnu.org/software/sed/manual/html_mono/sed.html"
+>http://www.gnu.org/software/sed/manual/html_mono/sed.html</ulink
+>. En forkompileret version for &Windows; eksisterer på <ulink url="http://unxutils.sourceforge.net"
+>http://unxutils.sourceforge.net</ulink
+>. Bemærk at følgende eksempel antager at <command
+>sed</command
+> eksisterer i en mappe i miljøvariablen PATH. Hvis dette ikke er tilfældet, skal du angive fuldstændig absolut søgesti til kommandoen.  </para>
+<note
+><para
+>Bemærk også at følgende eksempel bruger enkle citationstegn ('), hvilket ikke virker i Windows. I Windows skal du i stedet bruge dobbelte citationstegn (").</para
+></note>
+<para
+>I denne sammenhæng bruges kun erstatningskommandoen i <command
+>sed</command
+>: <screen>
+   <command
+>sed</command
+> 's/<replaceable
+>REGUDTRYK</replaceable
+>/<replaceable
+>ERSTATNING</replaceable
+>/<replaceable
+>FLAG</replaceable
+>'
+</screen
+> Inden du bruger en ny kommando inde i &kdiff3;, bør du først teste den i en terminal. Her er kommandoen <command
+>echo</command
+> nyttig. For eksempel: <screen>
+   <command
+>echo</command
+> abrakadabra | <command
+>sed</command
+> 's/a/o/'
+   -> obrakadabra
+</screen
+> Dette eksempel viser en meget enkel sed-kommando som erstatter den første forekomst af "a" med "o". Hvis du vil erstatte alle forekomster behøver du flaget "g": <screen>
+   <command
+>echo</command
+> abrakadabra | <command
+>sed</command
+> 's/a/o/g'
+   -> obrokodobro
+</screen
+> Symbolet "|" er en pipe-kommando som overfører uddata fra foregående kommando til inddata i efterfølgende kommando. Hvis du vil teste med en længere fil kan du bruge <command
+>cat</command
+> på Unix-lignende systemer eller <command
+>type</command
+> på Windows-lignende systemer. <command
+>sed</command
+> udfører erstatningen for hver linje. <screen
+><command
+>cat</command
+> <replaceable
+>filnavn</replaceable
+> | <command
+>sed</command
+> <replaceable
+>flag</replaceable
+>
+</screen>
+</para>
+</sect2>
+<sect2 id="sedforkdiff3"
+><title
+>Eksempel på brug af <command
+>sed</command
+> i &kdiff3;</title>
+<sect3
+><title
+>Ignorering af andre typer kommentarer</title>
+<para
+>For øjeblikket forstår &kdiff3; kun C/C++ kommentarer. Ved at bruge en linjematchende præprocessorkommando kan du også ignorere andre typer af kommentarer ved at konvertere dem til C/C++ kommentarer. For eksempel for at  ignorere kommentarer som begynder med "#", skulle du ville konvertera dem til "//". Bemærk at du også skal aktivere tilvalget "Ignorér C/C++ kommentarer" for at få nogen virkning. En passende linjematchende præprocessorkommando ville være: <screen>
+   <command
+>sed</command
+> 's/#/\/\//'
+</screen
+> Eftersom tegnet "/" har en særlig betydning i <command
+>sed</command
+>, er det nødvendigt at tilføje tegnet "\" inden hver "/" i erstatningsstrengen. Sommetider behøves "\" for at tilføje eller fjerne en særlig betydning for visse tegn. De enkle citationstegn (') inden og efter erstatningskommandoen er nu vigtige, eftersom skallen ellers ville forsøge at tolke visse specialtegn som '#', '$' eller '\' inden de sendes til <command
+>sed</command
+>. <emphasis
+>Bemærk at i Windows behøver du dobbelte citationstegn (") her. Windows erstatter andre tegn som '%', så du kan få brug for at eksperimentere noget.</emphasis
+> </para>
+</sect3>
+<sect3
+><title
+>Ikke versalfølsom Diff</title>
+<para
+>Brug følgende linjematchende præprocessorkommando til at forvandle al inddata til store bogstaver: <screen>
+   <command
+>sed</command
+> 's/\(.*\)/\U\1/'
+</screen
+> Her er ".*" et regulært udtryk som matcher alle strenge, og i denne sammenhæng matcher alle tegn på linjen. Tegnet "\1" i erstatningsstrengen svarer til den matchede tekst mellem det første par "\(" og "\)". "\U" konverterer den indsatte tekst til store bogstaver. </para>
+</sect3>
+
+<sect3
+><title
+>Ignorering af nøgleord for versionskontrol</title>
+<para
+>CVS og andre versionshåndteringssystemer bruger flere nøgleord til at indsætte automatisk genererede strenge (<ulink url="info:/cvs/Keyword substitution"
+>info:/cvs/Keyword substitution</ulink
+>). Alle følger mønstret "$NØGLEORD genereret tekst$". Nu behøver vi en linjematchende præprocessorkommando som kun fjerner den genererede tekst: <screen>
+   <command
+>sed</command
+> 's/\$\(Revision\|Author\|Log\|Header\|Date\).*\$/\$\1\$/'
+</screen
+> Strengen "\|" skiller de mulige nøgleord ad. Du vil måske ændre listen ifølge dine behov. Tegnet "\" ud for "$" behøves eftersom "$" ellers matcher linjeslut. </para>
+<para
+>Mens du eksperimenterer med <command
+>sed</command
+> kommer du måske til at forstå og endog at kunne lide disse regulære udtryk. De er nyttige fordi der er mange andre programmer der også understøtter lignende ting. </para>
+</sect3>
+
+<sect3
+><title
+>Ignorér cifre</title>
+<para
+>At ignorere tal er i virkeligheden et indbygget tilvalg, men som et andet eksempel, vises hvordan det ville se ud som en linjematchende præprocessorkommando. <screen>
+   <command
+>sed</command
+> 's/[0123456789.-]//g'
+</screen
+> Alle tegn indenfor '[' og ']' matcher og vil blive erstattet af ingenting. </para>
+</sect3>
+
+<sect3
+><title
+>Ignorering af visse søjler</title>
+<para
+>Sommetider er teksten meget strengt formateret, og indeholder søjler som du altid vil ignorere, mens der er andre søjler du vil bevare for analyse. I følgende eksempel ignoreres de fem første søjler (tegn), de følgende ti søjler bevares, derefter ignoreres igen fem søjler og resten af linjen bevares. <screen>
+   <command
+>sed</command
+> 's/.....\(..........\).....\(.*\)/\1\2/'
+</screen
+> Hvert punktum '.' svarer til et hvilket som helst enkelt tegn. Strengene "\1" og "\2" i erstatningsstrengen refererer til den matchende tekst indenfor det første og andre par af  "\(" og "\)" som angiver teksten at bevare. </para>
+</sect3>
+
+<sect3
+><title
+>Kombination af flere substitutioner</title>
+<para
+>Sommetider vil du tilpasse flere erstatninger samtidigt. Så kan du bruge semikolon ';' for at skille dem fra hinanden. For eksempel: <screen
+><command
+>echo</command
+> abrakadabra | <command
+>sed</command
+> 's/a/o/g;s/\(.*\)/\U\1/'
+ -> OBROKODOBRO
+</screen>
+</para>
+</sect3>
+
+<sect3
+><title
+>Brug af <command
+>perl</command
+> i stedet for <command
+>sed</command
+></title>
+<para
+>I stællet for <command
+>sed</command
+> måske du vil bruge noget andet som <command
+>perl</command
+>. <screen>
+   <command
+>perl</command
+> -p -e 's/<replaceable
+>REGUTTRYCK</replaceable
+>/<replaceable
+>ERSÆTTNING</replaceable
+>/<replaceable
+>FLAGGOR</replaceable
+>'
+</screen
+> Men visse detaljer er anderledes i <command
+>perl</command
+>. Bemærk at hvor <command
+>sed</command
+> behøver "\(" og "\)" kræver <command
+>perl</command
+> det enklare  "(" og ")" uden indledende '\'. Till eksempel: <screen
+><command
+>sed</command
+> 's/\(.*\)/\U\1/'
+  <command
+>perl</command
+> -p -e 's/(.*)/\U\1/'
+</screen>
+</para>
+</sect3>
+</sect2>
+
+<sect2
+><title
+>Rækkefølge for præprocessor-udførsel</title>
+<para
+>Data sendes gennem alle interne og eksterne præprocessorer i følgende rækkefølge: </para>
+<itemizedlist>
+<listitem
+><para
+>Normal præprocessor,</para
+></listitem>
+<listitem
+><para
+>Præprocessor for linjematchning,</para
+></listitem>
+<listitem
+><para
+>Ignorér versaler (konvertér til store bogstaver),</para
+></listitem>
+<listitem
+><para
+>Detektion af C/C++ kommentarer,</para
+></listitem>
+<listitem
+><para
+>Ignorér cifre,</para
+></listitem>
+<listitem
+><para
+>Ignorér blanke tegn</para
+></listitem>
+</itemizedlist>
+<para
+>Data efter den normale præprocessor vil blive bevaret til visning og indfletning. De andre operationer ændrer kun de data som den linjematchende diff-algoritme ser. </para
+><para
+>I de sjældne tilfælde hvor du bruger en normal præprocessor, bemærk at den linjematchende præprocessor ser uddata fra den normale præprocessor som inddata. </para>
+</sect2>
+
+<sect2
+><title
+>Advarsel</title>
+<para
+>Forbehandlingskommandoer er ofte meget nyttige, men som med alle tilvalg som ændrer teksten eller skjuler visse forskelle automatisk, kan du ved en fejl springe over visse forskelle og i værste fald ødelægge vigtige data. </para
+><para
+>Af denne grund, hvis en normal præprocessorkommando bruges under en sammenfletning, fortæller &kdiff3; dig om det og spørger om det skal deaktiveres eller ej. Men du får ingen advarsel hvis en linjematchende præprocessorkommando er aktiv. Sammenfletningen sker ikke førend alle konflikter er løste. Hvis du deaktiverede "Vis blanke tegn" bliver også forskellene som blev fjernet med den linjematchende præprocessorkommando usynlige. Hvis knappen Gem forbliver inaktiv under en sammenfletning (på grund af tilbageværende konflikter), så sørg for at aktivere "Vis blanke tegn". Hvis du ikke vil sammenflette disse mindre vigtige forskelle manuelt kan du vælge "Vælg [A|B|C] for uløste konflikter med blanke tegn" i menuen "Sammenflet". </para>
+</sect2>
+</sect1>
+</chapter>
+
+
+<chapter id="dirmerge"
+><title
+>Mappesammenligning og sammenfletning med &kdiff3;</title>
+<sect1 id="dirmergeintro"
+><title
+>Introduktion til mappesammenligning og sammenfletning</title>
+<para
+>Ofte skal programmører ændre mange filer i en mappe for at opnå deres formål. For at opnå dette lader &kdiff3; dig også sammenligne og sammenflette hele mapper rekursivt! </para
+><para
+>Selvom sammenligning og sammenfletning af mapper synes at være ganske selvklart, er der flere detaljer som du bør kende til. Det vigtigste er naturligvis det faktum at mange filer nu kan påvirkes af hver handling. Hvis du ikke har sikkerhedskopier af originale data, kan det være meget svært eller til og med umuligt at komme tilbage til originaltilstanden. Så inden du påbegynder en sammenfletning, skal du sørge for at data er sikret, og at det er muligt at nulstille. Om du laver et arkiv, eller bruger et versionskontrolsystem er din egen beslutning, men til og med erfarne programmører og integratører behøver sommetider gammel kildekode. Bemærk også at også selvom jeg (forfatteren til &kdiff3;) forsøger at gøre mit bedste, kan jeg ikke garantere at der ikke er fejl. Ifølge GNU GPL er der INGEN GARANTI af nogen slags for dette program. Så hvor ydmyg, og husk altid: </para>
+<blockquote
+><para>
+   <emphasis
+>At fejle er menneskeligt, men for at virkelig lave rod i det behøves en maskine.</emphasis>
+</para
+></blockquote>
+<para
+>Så dette er hvad programmet kan gøre for dig: &kdiff3; ... </para>
+<itemizedlist>
+     <listitem
+><para
+>... læser og sammenligner to eller tre mapper rekursivt,</para
+></listitem>
+     <listitem
+><para
+>... håndterer symbolske link særskilt,</para
+></listitem>
+     <listitem
+><para
+>... lader dig bladre gennem filer med et dobbeltklik,</para
+></listitem>
+     <listitem
+><para
+>... foreslår en sammenfletningsmulighed for hvert objekt, som du kan ændre inden mappesammenfletningen startes,</para
+></listitem>
+     <listitem
+><para
+>... lader dig simulere sammenfletningen og giver en liste af handlingerne som ville ske, uden at virkelig gøre dem,</para
+></listitem>
+     <listitem
+><para
+>... lader dig udføre sammenfletningen, og lader dig bestemme hvornår manuel interaktion behøves,</para
+></listitem>
+     <listitem
+><para
+>... lader dig udføre valgt handling for alle punkter (tasten F7) eller markeret punkt (tasten F6),</para
+></listitem>
+     <listitem
+><para
+>... lader dig fortsætte sammenfletningen efter manuel interaktion med tasten F7,</para
+></listitem>
+     <listitem
+><para
+>... laver valgfrie sikkerhedskopier, med filendelsen ".orig".</para
+></listitem>
+     <listitem
+><para
+>...</para
+></listitem>
+</itemizedlist>
+</sect1>
+
+<sect1 id="startingdirmerge"
+><title
+>Start mappesammenligning eller sammenfletning</title>
+<para
+>Dette ligner meget sammenfletning og sammenligning af en enkelt fil. Du skal kun angive mapper på kommandolinjen eller i dialogen for filåbning. </para>
+<sect2
+><title
+>Sammenlign eller sammenflet to mapper: </title>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>kat1 kat2</replaceable>
+   <command
+>kdiff3</command
+> <replaceable
+>kat1 kat2</replaceable
+> -o <replaceable
+>målkat</replaceable
+>
+</screen>
+<para
+>Hvis ingen målmappe angives, bruger &kdiff3; <replaceable
+>kat2</replaceable
+>. </para>
+</sect2>
+
+<sect2
+><title
+>Sammenlign eller sammenflet tre mapper: </title>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>kat1 kat2 kat3</replaceable>
+   <command
+>kdiff3</command
+> <replaceable
+>kat1 kat2 kat3</replaceable
+> -o <replaceable
+>målkat</replaceable
+>
+</screen>
+<para
+>Når tre mapper sammenflettes, bruges <replaceable
+>kat1</replaceable
+> som basen for sammenfletningen. Hvis ingen målmappe angives, bruger &kdiff3; <replaceable
+>kat3</replaceable
+> som målmappe for sammenfletningen. </para>
+
+<para
+>Bemærk at kun sammenligningen startes automatisk, ikke sammenfletningen. For det skal du først vælge et menupunkt eller tasten F7. (Mere information kommer senere.) </para>
+</sect2>
+</sect1>
+
+<sect1 id="dirmergevisible"
+><title
+>Katalogsammenfletning af synlig information</title>
+<para
+>Mens mapperne læses vises et meddelelsesfelt som informerer dig om forløbet. Hvis du afbryder mappesøgningen, vises kun filer som hidtil er sammenlignet. </para
+><para
+>Når mappegennemsøgningen er færdig, viser &kdiff3; et listefelt med tilbageværende resultater, ... </para>
+<screenshot
+><mediaobject>
+<imageobject
+><imagedata fileref="dirbrowser.png" format="PNG"/></imageobject
+> <!--alt="Image of the directory browser."-->
+</mediaobject
+></screenshot>
+<para
+>... og detaljer om det markerede punkt til højre: </para>
+<screenshot
+><mediaobject>
+<imageobject
+><imagedata fileref="iteminfo.png" format="PNG"/></imageobject>
+   <!--alt="Image with information about the selected item."-->
+</mediaobject
+></screenshot>
+
+<sect2 id="name"
+><title
+>Navnesøjlen</title>
+<para
+>Hver fil og mappe som blev fundet under søgningen vises her i et træ. Du kan vælge et punkt ved at klikke en gang på det med musen. </para
+><para
+>Mapperne er normalt sammentrukket. Du kan ekspandere og trække dem sammen ved at klikke på "+"/"-", ved at dobbeltklikke på punktet eller ved at bruge tasterne "venstrepil" og "højrepil". Menuen "Mappe" indeholder også to tilvalg "Træk alle undermapper sammen" og "Ekspandér alle undermapper" som du kan bruge til at trække sammen eller ekspandere alle mapper på én gang. </para
+><para
+>Hvis du dobbeltklikker på et filpunkt, udføres filsammenligning og sammenligningvinduet for filer vises. </para>
+<para
+>Ikonen i navnesøjlen svarer til filtypen i den første mappe ("A"). Den kan være en af disse: </para>
+<itemizedlist>
+     <listitem
+><para
+>Normal fil</para
+></listitem>
+     <listitem
+><para
+>Normal mappe (mappeikon)</para
+></listitem>
+     <listitem
+><para
+>Link til en fil (filikon med en link-pil)</para
+></listitem>
+     <listitem
+><para
+>Link til en mappe (mappeikon med en link-pil)</para
+></listitem>
+</itemizedlist>
+<para
+>Hvis filtypen er anderledes i de øvrige mapper, ses det i søjlerne A/B/C og i vinduet som viser detaljerne om det markerede punkt. Bemærk at i disse tilfælde kan ingen sammenfletningshandling vælges automatisk. Når sammenfletningen startes, informeres brugeren om denne slags problemer. </para>
+</sect2>
+
+<sect2 id="coloring"
+><title
+>Søjlerne A/B/C og farvesammensætninger</title>
+<para
+>Som det ses i billedet ovenfor, bruges farverne rød, grøn, gul og sort i søjlerne A/B/C. </para>
+<itemizedlist>
+     <listitem
+><para
+>Sort: Dette punkt eksisterer ikke i denne mappe.</para
+></listitem>
+     <listitem
+><para
+>Grøn: Nyeste punkt.</para
+></listitem>
+     <listitem
+><para
+>Gul: Ældre end grøn, nyere end rød.</para
+></listitem>
+     <listitem
+><para
+>Rød: Ældst punkt.</para
+></listitem>
+</itemizedlist>
+<para
+>Men for punkter som er identiske i sammenligningen, er farven også identisk selvom alderen ikke er det. </para
+><para
+>Mapper anses for at være ens hvis alle objekter de indeholder er ens. Så har de også samme farve. Alderen på en mappe spiller ingen rolle for dens farve. </para
+><para
+>Idéen til denne farvesammensætning fandt jeg i <ulink url="http://samba.org/cgi-bin/cvsweb/dirdiff"
+>dirdiff</ulink
+>. Farverne svarer til farverne for et blad, som er grønt i begyndelsen, derefter bliver gult og til sidst rødt når det er gammelt. </para>
+
+</sect2
+><sect2 id="operation"
+><title
+>Handlingssøjlen</title>
+<para
+>Efter at have sammenlignet mapperne evaluerer &kdiff3; også et forslag til sammenfletningshandling. Den vises i søjlen "Handling". Du kan ændre den ved at klikke på handlingen du vil ændre. En lille menu dukker op og lader dig vælge en handling for dette punkt. (Du kan også vælge den oftest bruge handling via tastaturet. Ctrl+1/2/3/4/Delete vælger A/B/C/Sammenflet/Slet hvis de er tilgængelige.) Denne handling udføres under sammenfletningen. Hvilke handlinger som er tilgængelige afhænger af punktet og sammenfletningstilstanden som bruges. Sammenfletningstilstanden er en af: </para>
+<itemizedlist>
+     <listitem
+><para
+>Sammenfletning af tre mapper ("A" behandles som ældste basis for begge).</para
+></listitem>
+     <listitem
+><para
+>Sammenfletning af to mapper.</para
+></listitem>
+     <listitem
+><para
+>To-mappes synkroniseringstilstand (aktiveres med tilvalget "Synkronisér mapper").</para
+></listitem>
+</itemizedlist>
+<para
+>Ved tremappers-sammenfletning er den handling der foreslås: Hvis for et objekt... </para>
+<itemizedlist>
+     <listitem
+><para
+>... alle tre mapper er ens: Kopiér fra C</para
+></listitem>
+     <listitem
+><para
+>... A og C er ens med B er det ikke: Kopiér fra B (eller hvis B ikke eksisterer, slet målet hvis det eksisterer)</para
+></listitem>
+     <listitem
+><para
+>... A og B er ens men C er det ikke: Kopiér fra C (eller hvis C ikke eksisterer, slet målet hvis det eksisterer)</para
+></listitem>
+     <listitem
+><para
+>... B og C er ens med A er det ikke: Kopiér fra C (eller hvis C ikke eksisterer, slet målet hvis det eksisterer)</para
+></listitem>
+     <listitem
+><para
+>... kun A eksisterer: Slet målet (hvis det eksisterer)</para
+></listitem>
+     <listitem
+><para
+>... kun B eksisterer: Kopiér fra B</para
+></listitem>
+     <listitem
+><para
+>... kun C eksisterer: Kopiér fra C</para
+></listitem>
+     <listitem
+><para
+>... A, B og C er ikke ens: Sammenflet</para
+></listitem>
+     <listitem
+><para
+>A, B og C har ikke samme filtype (f.eks. A er en mappe, B er en fil): "Fejl: Konflikt i filtyper". Så længe sådanne punkter eksisterer, kan mappesammenfletningen ikke startes.</para
+></listitem>
+</itemizedlist>
+<para
+>Ved tomappers sammenfletning er den foreslåede handling: Hvis for et objekt... </para>
+<itemizedlist>
+     <listitem
+><para
+>... begge mapper er ens: Kopiér fra B</para
+></listitem>
+     <listitem
+><para
+>...A eksisterer men ikke B: Kopiér fra A</para
+></listitem>
+     <listitem
+><para
+>... B eksisterer men ikke A: Kopiér fra B</para
+></listitem>
+     <listitem
+><para
+>... A og B eksisterer men er ikke ens: Sammenflet</para
+></listitem>
+     <listitem
+><para
+>A og B har ikke samme filtype (f.eks. A er en mappe, B er en fil): "Fejl: Konflikt i filtyper". Så længe sådanne punkter eksisterer, kan mappesammenfletningen ikke startes.</para
+></listitem>
+</itemizedlist>
+<para
+>Synkroniseringstilstand er kun aktiv hvis to mapper og ingen eksplicit målmappe angives, og hvis tilvalget "Synkronisér mapper" er aktivt. &kdiff3; vælger så en standardhandling så begge mapper er ens bagefter. Hvis for et punkt ... </para>
+<itemizedlist>
+     <listitem
+><para
+>... begge mapper er ens: Ingenting gøres.</para
+></listitem>
+     <listitem
+><para
+>... A eksisterer, men ikke B: Kopiér A til B</para
+></listitem>
+     <listitem
+><para
+>... B eksisterer, men ikke A: Kopiér B til A</para
+></listitem>
+     <listitem
+><para
+>... A og B eksisterer, men er ikke ens: Sammenflet og opbevar resultatet i begge mapper. (For brugeren er det synlige filnavn for at gemme B, men derefter kopierer &kdiff3; også B til A.)</para
+></listitem>
+     <listitem
+><para
+>A og B har ikke samme filtype (f.eks. A er en mappe, B er en fil): "Fejl: Konflikt i filtyper". Så længe sådanne punkter eksisterer, kan mappesammenfletningen ikke startes.</para
+></listitem>
+</itemizedlist>
+<para
+>Når to mapper sammenflettes og tilvalget "Kopiér nyere i stedet for at sammenflette" er markeret, kigger &kdiff3; på datoen og foreslår at vælge den nyere fil. Hvis filerne ikke er ens men har samme dato, indeholder handlingen "Fejl: Dato er ens men filerne er det ikke." Så længe sådanne punkter eksisterer, kan  mappesammenfletningen ikke startes. </para>
+</sect2>
+
+<sect2 id="status"
+><title
+>Statussøjlen</title>
+<para
+>Under sammenfletningen behandles en fil af gangen. Statussøjlen viser "Færdig" for punkter hvor sammenfletningshandlingen er lykkedes, og en anden tekst hvis noget uventet indtraf. Når en sammenfletning er færdig, bør du udføre en sidste kontrol for at se at status for alle punkter er acceptabel. </para>
+</sect2>
+
+<sect2 id="statisticscolulmns"
+><title
+>Statistiske søjler</title>
+<para
+>Når filsammenligningtilstanden "Fuldstændig analyse" er aktiveret i valgmulighederne, viser &kdiff3; ekstra søjler som indeholder antal uløste, løste, ikke blanke og blanke konflikter. (Søjlen løste vises kun når mapper sammenlignes eller sammenflettes.) </para>
+</sect2>
+
+<sect2 id="selectingvisiblefiles"
+><title
+>Vælg listede filer</title>
+<para
+>Flere tilvalg påvirker hvilke filer som listes her. Nogle er tilgængelige i <link linkend="dirmergeoptions"
+>indstillingsdialogen</link
+>. Menuen Mappe indeholder punkterne: </para
+><para
+><itemizedlist>
+     <listitem
+><para
+>"Vis identiske filer": Filer som er detekteret som ens i alle inddatamapper.</para
+></listitem>
+     <listitem
+><para
+>"Vis forskellige filer": Filer som findes i to eller flere mapper men ikke er ens.</para
+></listitem>
+     <listitem
+><para
+>"Vis kun filer i A": Filer som kun findes i A, men ikke i B eller C.</para
+></listitem>
+     <listitem
+><para
+>"Vis kun filer i B": Filer som kun findes i B, men ikke i A eller C.</para
+></listitem>
+     <listitem
+><para
+>"Vis kun filer i C": Filer som kun findes i C, men ikke i A eller B.</para
+></listitem>
+</itemizedlist
+></para>
+<para
+>Aktivér kun valgmulighederne "Vis" for de punkter du vil liste. Hvis du for eksempel kun vil liste alle punkter som enten findes i A eller i B men ikke i begge, skal du aktivere "Vis kun filer i A" og "Vis kun filer i B" og deaktivere alle andre ("Vis identiske filer", "Vis forskellige filer", "Vis kun filer i C"). Listen opdateres med det samme for at svare til ændringen. </para
+><para
+>Disse tilvalg gælder også for mapper med en undtagelse: At deaktivere "Vis forskellige filer" skjuler ikke hele mapper. Dette fungerer kun for filer inde i dem. </para
+><para
+>Bemærk at af disse er det kun tilvalget "Vis identiske filer" som er bestående. De øvrige aktiveres når &kdiff3; startes. </para>
+</sect2>
+
+</sect1>
+
+
+<sect1 id="dothemerge"
+><title
+>Udfør en mappesammenfletning</title>
+<para
+>Du kan enten sammenflette det valgte punkt (fil eller mappe), eller alle punkter. Når du har lavet alle valg af handlinger (også i alle undermapper), kan du udføre sammenfletningen. </para
+><para
+>Vær klar over at hvis du ikke eksplicit angav en målmappe, bliver målet "C" i tre-mappetilstand, "B" i to-mappetilstand, og i synkroniseringstilstand er det "A" og/eller "B". </para
+><para
+>Hvis du også har angivet en målmappe, kontrollér at alle objekter som skal eksisterer i udskriften eksisterer i træet. Der er nogle valgmuligheder som får visse objekter til at blive udeladt fra mappesammenligningen og sammenfletningen. Kontrollér disse valgmuligheder for at undgå ubehagelige overraskelser: </para>
+<itemizedlist>
+     <listitem
+><para
+>"Rekursive mapper": Hvis det er fra, er der ikke punkter i undermapper.</para
+></listitem>
+     <listitem
+><para
+>"Mønster" eller "Undtagelsesmønster": Inkludér eller undtag punkter som matcher.</para
+></listitem>
+     <listitem
+><para
+>"Undtag gemte filer"</para
+></listitem>
+     <listitem
+><para
+><link linkend="selectingvisiblefiles"
+>"Vis"-tilvalg</link
+> (Vis identiske/forskellige filer, kun filer i A/B/C)</para
+></listitem>
+</itemizedlist>
+<para
+>Hvis du ændrer indstillingerne for at vise flere filer, skal du gøre en omsøgning via menuen "Mappe" -> "Skan igen". (Grunden til dette er at &kdiff3; udelader sammenligning for filer ifølge kriterierne for at få hurtigere sammenligningshastighed.) Hvis du ændrede fil- og mappemønstre for at undtage filer, opdateres fillisten med det samme når indstillingsdialogen lukkes. </para
+><para
+>Bemærk at når du skriver til en helt ny mappe vil du oftest også kopiere de identiske filer. Aktivér "Vis identiske filer" i dette tilfælde. Hvis din målmappe er en af inddatamapperne, er dette ikke nødvendigt eftersom filerne allerede findes der. </para
+><para
+>Hvis du er tilfreds indtil videre, er resten enkelt. </para
+><para
+>For at sammenflette alle punkter: Vælg "Start eller fortsæt mappesammenfletning"  i menuen "Mappe" eller tryk på F7 (som er standardgenvejstasten). For kun at sammenflette nuværende punkt: Vælg "Udfør handling for nuværende punkt" eller tryk på F6. </para
+><para
+>Hvis visse objekter med ugyldige filtyper stadigvæk eksisterer, på grund af filtyper med konflikter, vises et meddelelsefelt og objektet udpeges, så du kan vælge en gyldig handling for objektet. </para
+><para
+>Hvis du sammenfletter alle punkter vises en dialog som giver dig valgmulighederne "Gør det", "Simulér det" og "Annullér". </para>
+<itemizedlist>
+     <listitem
+><para
+>Vælg "Simulér det" hvis du vil se hvad der ville blive gjort uden virkelig at gøre det. En udførlig liste med alle handlinger vises.</para
+></listitem>
+     <listitem
+><para
+>Vælg ellers "Gør det" for virkelig at udføre sammenfletningen.</para
+></listitem>
+</itemizedlist>
+<para
+>Derefter udfører &kdiff3; den angivne handling for alle punkter. Hvis manuel interaktion kræves (sammenfletning af enkelt fil), vises et sammenfletningsvindue (<link linkend="dirmergebigscreenshot"
+>se det store skærmaftryk</link
+>). </para
+><para
+>Når du er færdig med manuel indfletning af en fil, vælges igen "Start eller fortsæt mappesammenfletning"  eller tryk på F7. Hvis du ikke har gemt endnu, beder en dialog dig om at gøre det. Derefter fortsætter &kdiff3; til næste punkt. </para
+><para
+>Når &kdiff3; støder på en fejl, meddeles det og udførlig statusinformation vises. Længst nede i listen er der nogen fejlmeddelelser som bør hjælpe dig til at forstå problemets grund. Når du fortsætter sammenfletningen (tasten F7), giver &kdiff3; dig valget at forsøge igen eller springe over punktet som forårsagede problemet. Dette betyder at du kan vælge en anden handling, eller løse problemet på anden måde, inden du fortsætter. </para
+><para
+>Når sammenfletningen er færdig, informerer &kdiff3; dig med et meddelelsesfelt. </para
+><para
+>Hvis visse punkter sammenflettedes individuelt før mappefletning bruges, husker &kdiff3; det (mens sammenfletningssessionen er i gang), og sammenfletter dem ikke igen når sammenfletningen for alle punkter udføres. Selv når sammenfletningen springes over eller ingenting gemmes regnes disse punkter som færdige. Kun når sammenfletningshandlingen ændres, vil "Færdig"-status for punktet blive fjernet så det kan sammenflettes igen. </para>
+</sect1>
+
+<sect1 id="dirmergeoptions"
+><title
+>Tilvalg for at sammenligne og sammenflette mapper</title>
+<para
+>Indstilling af &kdiff3; (menuen "Opsætning"-&gt;"Indstil KDiff3") har en side som hedder "Mappesammenfletning" med følgende tilvalg: </para>
+
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Rekursive mapper:</emphasis
+></term
+><listitem
+><para
+>Vælg om mapper skal gennemsøges rekursivt.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Mønster for filer:</emphasis
+></term
+><listitem
+><para
+>Kun filer som matcher et mønster her tilføjes i træet. Mere end et mønster kan angives ved at bruge semikolon ";" som skilletegn. Gyldige jokertegn: "*" og "?". (f.eks. "*.cpp;*.h"). Standardværdien er "*". Dette mønster bruges ikke for mapper.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Anti-mønster for filer:</emphasis
+></term
+><listitem
+><para
+>Filer som matcher et mønster undtages fra træet. Mere end et mønster kan angives ved at bruge semikolon ";" som skilletegn. Gyldige jokertegn: '*' og '?'. Standardværdien er "*.orig;*.o;"*.obj".</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Mappeundtagelsesmønster for filer:</emphasis
+></term
+><listitem
+><para
+>Mapper som matcher et mønster undtages fra træet. Mere end et mønster kan angives ved at bruge semikolon ";" som skilletegn. Gyldige jokertegn: '*' og '?'. Standardværdien er "CVS;deps;.svn".</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Brug .cvsignore:</emphasis
+></term
+><listitem
+><para
+>Ignorér filer og mapper som også ville blive ignoreret af CVS. Mange automatisk genererede filer ignoreres af CVS. Den store fordel er at dette kan være mappespecifikt via en lokal ".cvsignore" fil. (Se <ulink url="info:/cvs/cvsignore"
+>info:/cvs/cvsignore</ulink
+>.)</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Find efter skjulte filer og mapper:</emphasis
+></term
+><listitem
+><para
+>For visse filsystemer har filer egenskaben "Skjult". For andre systemer skjules et filnavn som begynder med et punktum ("."). Dette lader dig bestemme om disse filer skal indgå i træet eller ej. Standardværdien er til.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Følg fillink:</emphasis
+></term
+><listitem
+><para
+>For link til filer: Hvis deaktiveret, sammenlignes de symbolske link. Hvis aktiveret, sammenlignes filerne bagved linkene. Normalværdien er fra.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Følg mappelink:</emphasis
+></term
+><listitem
+><para
+>For link til mapper: Hvis deaktiveret, sammenlignes symbolske link. Hvis aktiveret behandles linket som et mappe og gennemsøges rekursivt. (Bemærk at programmet ikke kontrollerer om linket er "rekursivt". En mappe som indeholder et link til samme mappe vil forårsage en uendelig løkke, og efter en vis tid når stakken bliver fuld eller hukommelsen løber ud, bryder programmet sammen.) Standardværdien er fra.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Versaltilstandsfølsom filnavnesammenligning:</emphasis
+></term
+><listitem
+><para
+>Standardværdi er falsk på Windows, og sand for andre operativsystemer.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Filsammenligningstilstand:</emphasis
+></term
+><listitem
+><para>
+<variablelist
+>            
+   <varlistentry
+><term
+><emphasis
+>Binær sammenligning:</emphasis
+></term
+><listitem
+><para
+>Dette er standardsammenligningstilstanden. </para
+></listitem
+></varlistentry
+>         
+   <varlistentry
+><term
+><emphasis
+>Fuld analyse:</emphasis
+></term
+><listitem
+><para
+>Udfør en fuld analyse for hver fil og vis de statistiske informationssøjler. (Antal løste, uløste, ikke blanke og blanke konflikter.) Den fulde analyse er langsommere end en simpel binær analyse, og meget langsommere når den bruges på filer der ikke indeholder tekst. (Angiv de passende fil-antimønstre.) </para
+></listitem
+></varlistentry
+>         
+   <varlistentry
+><term
+><emphasis
+>Stol på ændringsdato:</emphasis
+></term
+><listitem
+><para
+>Hvis du sammenligner store mapper via et langsomt netværk, kan det gå hurtigere kun at sammenligne ændringsdato og fillængde. Men hastighedsforbedringen kommer med prisen af en lille usikkerhed. Brug dette med forsigtighed. Normalværdien er fra.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Stol på størrelsen:</emphasis
+></term
+><listitem
+><para
+>Ligesom at stile på ændringsdatoen. Ingen egentlig sammenligning foregår. To filer betragtes som ens hvis deres filstørrelser er ens. Dette er nyttigt når filkopieringsoperationen ikke bevarer ændringsdatoen. Brug dette med forsigtighed. Normalværdien er fra.</para
+></listitem
+></varlistentry>
+</variablelist
+></para
+></listitem
+></varlistentry>
+         
+   <varlistentry
+><term
+><emphasis
+>Synkronisér mapper:</emphasis
+></term
+><listitem
+><para
+>Aktiverer "synkroniseringstilstand" når to mapper sammenlignes og ingen eksplicit målmappe angives. I denne tilstand vælges de foreslåede handlinger så begge kildemapperne er ens bagefter. Sammenfletningsresultatet skrives også til begge mapper. Normalværdien er fra.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Kopiér nyere i stedet for at sammenflette:</emphasis
+></term
+><listitem
+><para
+>I stedet for at sammenflette kopieres den foreslåede handling den nyere kilden hvis der er sket om ændringer. (Anses for at være usikkert, eftersom det betyder at du ved at den anden fil ikke også er redigeret. Tjek for at være sikker i hvert enkelt tilfælde.) Normalværdien er fra.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Sikkerhedskopiér filer:</emphasis
+></term
+><listitem
+><para
+>Hvis en fil eller hel mappe erstattes med en anden eller slettes, så ændres originalversionens navn med tilføjelse af filendelsen ".orig". Hvis en gammel sikkerhedskopi med filendelsen ".orig" allerede eksisterer slettes den uden sikkerhedskopiering. Dette gælder også normal sammenfletning af enkelte filer, ikke kun sammenfletningstilstand for mapper. Standardværdien er til.</para
+></listitem
+></varlistentry>
+</variablelist>
+</sect1>
+
+<sect1 id="other"
+><title
+>Andre funktioner i mappesammenfletningsvinduet</title>
+<sect2
+><title
+>Opdelt eller fuldskærmstilstand</title>
+<para
+>Sædvanligvis forbliver listevinduet for mappesammenfletning synligt mens en enkelt fil sammenlignes eller sammenflettes. Du kan flytte linjen som opdeler fillisten fra vinduerne til tekstsammenligning med musen. Hvis du ikke vil gøre dette, kan du deaktivere "Opdelt skærmvisning" i menuen "Mappe". Derefter kan du bruge "Skift visning" i menuen "Mappe" til at skifte mellem fillisten og vinduerne til tekstsammenligning, som så optager hele vinduet. </para>
+</sect2>
+<sect2
+><title
+>Sammenlign og sammenflette en enkelt fil</title>
+<para
+>Du foretrækker formodentlig et almindeligt dobbeltklik på musen for at sammenligne en fil. Ikke desto mindre er der også en indgang i menuen "Mappe". Du kan også direkte sammenflette en enkelt fil, uden at starte mappesammenfletning via "Sammenflet markerede filer" i menuen "Mappe". Når resultatet gemmes, sættes status til færdig, og filen sammenflettes ikke igen hvis en mappesammenfletning startes. </para
+><para
+>Men observér at statusinformationen går tabt når du kører en mappegennemsøgning igen: "Mappe"-menuen "Skan igen". </para>
+</sect2>
+<sect2
+><title
+>Sammenlign og sammenflet filer med forskellige navne</title>
+<para
+>Sommetider behøver du at sammenligne eller sammenflette filer med forskellige navne (f.eks. nuværende fil og sikkerhedskopi i samme mappe). </para
+><para
+>Markér den nøjagtige fil ved at klikke på ikonen i søjlen A, B eller C. Filen som først markeres på den måde markeres med "A", den anden og tredje med "B" og "C" uafhængig af hvilken søjle de findes i. Kun op til tre filer kan markeres på denne måde. </para
+><para
+>Fortsæt ved at vælge "Sammenlign eksplicit markerede filer" eller "Sammenflet eksplicit markerede filer" fra menuen "Mappe". Af bekvemmelighedsgrunder findes også menuvalgmulighederne som en sammenhængsafhængig menu som vises når du klikker på den senest markerede fil. </para
+><para
+>Sammenligningen eller sammenfletningen af en fil sker i samme vindue. Hvis denne metode bruges for mapper åbnes et nyt vindue. </para
+></sect2>
+</sect1>
+</chapter>
+
+<chapter id="misc">
+<title
+>Diverse emner</title>
+<sect1 id="networktransparency">
+<title
+>Netværksgennemsigtighed via KIO</title>
+<sect2
+><title
+>I/O-slaver</title>
+<para
+>&kde; understøtter netværkstransparens via I/O-slaver. &kdiff3; bruger dem til at indlæse datafiler og gennemsøge mapper. Det betyder at du kan angive filer og mapper på lokal- og fjern-ressourcer via &URL;'er. </para
+><para
+>Eksempel: </para
+><para>
+<screen
+><command
+>kdiff3</command
+> test.cpp  ftp://ftp.langtbortistan.org/test.cpp
+   <command
+>kdiff3</command
+> tar:/home/hakker/arkiv.tar.gz/kat ./kat
+</screen>
+</para>
+<para
+>Den første linje sammenligner en lokal fil med en fil på en &FTP;-server. Den anden linje sammenligner en mappe i et komprimerat arkiv med en lokal mappe. </para
+><para
+>Andre I/O-slaver som er interessante er: </para>
+<itemizedlist>
+<listitem
+><para
+>Filer fra WWW (http:),</para
+></listitem>
+<listitem
+><para
+>Filer fra FTP (ftp:),</para
+></listitem>
+<listitem
+><para
+>Krypteret filoverførsel (fish:, sftp:),</para
+></listitem>
+<listitem
+><para
+>Ressourcer fra Windows (smb:),</para
+></listitem>
+<listitem
+><para
+>Lokale filer (file:),</para
+></listitem>
+</itemizedlist>
+<para
+>Andre ting som er mulige, men formodentlig mindre nyttige, er: </para>
+<itemizedlist>
+<listitem
+><para
+>Manualsider (man:),</para
+></listitem>
+<listitem
+><para
+>Infosider (info:),</para
+></listitem>
+</itemizedlist>
+</sect2>
+
+<sect2
+><title
+>Hvordan man skriver &URL;'er</title>
+<para
+>En &URL; har en anderledes syntaks sammenlignet med søgestier til lokale filer og mapper. Visse ting skal der tages hensyn til: </para>
+<itemizedlist>
+<listitem
+><para
+>En søgesti kan være relativ, og kan indeholde "." eller "..". Dette er ikke muligt for &URL;'er, som altid er absolutte. </para
+></listitem
+><listitem
+><para
+>Specialtegn skal skrives med særlige "escape". ("#"->"%23", mellemrum bliver til "%20", osv.) For eksempel ville en fil med navnet "/#foo#" have &URL; "file:/%23foo%23". </para
+></listitem
+><listitem
+><para
+>Når &URL;'er ikke virker som ventet, så forsøg at åbne dem i &konqueror; først. </para
+></listitem>
+</itemizedlist>
+
+</sect2>
+
+<sect2
+><title
+>Muligheder med I/O-slaver</title>
+<para
+>Netværkstransparens har en bagdel: Ikke alle ressourcer har samme muligheder. </para
+><para
+>Sommetider skyldes det serverens filsystem, sommetider protokollen. Her er en kort liste med begrænsninger: </para>
+<itemizedlist>
+<listitem
+><para
+>Sommetider er der ikke støtte for link. </para
+></listitem
+><listitem
+><para
+>Eller der er ingen måde at skelne mellem om et link peger på en fil eller mappe, der antages altid en fil (ftp:, sftp:). </para
+></listitem
+><listitem
+><para
+>Kan ikke altid afgøre filstørrelsen. </para
+></listitem
+><listitem
+><para
+>Begrænset støtte for rettigheder. </para
+></listitem
+><listitem
+><para
+>Ingen mulighed at ændre rettigheder eller ændringstid, så rettigheder eller tiden for en kopi adskiller sig fra originalen. (Se tilvalget "Stol på størrelse".)  (At ændre af tilladelser eller ændringstidspunkt er kun muligt for lokale filer.) </para
+></listitem>
+</itemizedlist>
+</sect2>
+</sect1>
+
+<sect1 id="kpart">
+<title
+>Brug &kdiff3; som en Kpart</title>
+<para
+>&kdiff3; er en Kpart. For øjeblikket implementeres grænsefladen KParts::ReadOnlyPart. </para
+><para
+>Hovedanvendelsen er til forskelsvisning i KDevelop. KDevelop starter altid den interne forskelsvisning først. For at bruge &kdiff3;, klik med højre museknap i forskelsvisningens vindue og vælg "Vis i KDiff3-part" i den sammenhængsafhængige menuen. </para
+><para
+>&kdiff3; kræver normalt to fuldstændige filer som inddata. Når det bruges som en part, antager &kdiff3; at inddatafilen er en programrettelsesfil i forenet format. &kdiff3; henter derefter originalfilernes navn i programrettelsesfilen. I det mindste en af de to filer skal være tilgængelig. &kdiff3; starter så kommandoen <command
+>patch</command
+> for at genoprette den anden fil. </para
+><para
+>Du kan vælge en programrettelsesfil i &konqueror; og vælge "Forhåndsvis i"-"&kdiff3;-part"i den sammenhængsafhængige menu. Vær klar over at dette ikke virker hvis ingen af originalfilerne er tilgængelige, og er ikke tilforladeligt hvis originalfilen eller filerne er ændret siden programrettelsesfilen blev oprettet. </para
+><para
+>Når det kører som en Kpart sørger &kdiff3; kun for sammenligning mellem to filer, en meget lille værktøjslinje og menu. Sammenfletning eller mappesammenligning understøttes ikke. </para>
+</sect1>
+</chapter>
+
+<chapter id="faq">
+<title
+>Spørgsmål og svar</title>
+&reporting.bugs; &updating.documentation; <qandaset id="faqlist">
+
+<qandaentry
+><question
+><para
+>Hvorfor kaldes det &kdiff3;? </para
+></question
+><answer
+><para
+>Værktøjer som hedder "KDiff" og "KDiff2" (som nu kaldes &kompare;) fandtes allerede. Desuden skal &kdiff3; antyde at programmet kan sammenflette ligesom værktøjet "diff3" fra samlingen med diff-værktøjer. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Hvorfor udgives det under GPL? </para
+></question
+><answer
+><para
+>Jeg har brugt GPL-programmer i meget lang tid nu, og lært mig meget ved at kigge på en hel del af kildekoden. Altså er dette min "tak" til alle programmører som også gjorde eller kommer til at gøre det samme. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Visse knapper og funktioner mangler. Hvad er galt? </para
+></question
+><answer
+><para
+>Du kompilerede fra kildekode, men angav formodentlig ikke rigtigt &kde;-præfiks med 'configure'. Som standard vil configure installere i /usr/local, men så kan &kde; ikke finde ressourcefilerne for brugergrænsefladen (dvs. kdiff3ui.rc). README-filen indeholder mere information om rigtig præfiks. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Ofte vises linjer som ligner men ikke er identiske med hinanden, men ikke altid. Hvorfor? </para
+></question
+><answer
+><para
+>Linjer hvor kun antal blanke tegn er forskellige behandles først som "ens", mens kun et andet slags blankt tegn gør at linjerne er "forskellige". Hvis lignende linjer er ved siden af hinanden, er dette i virkeligheden et tilfælde men det er heldigvis ofte noget der sker. Se også manualen <link linkend="manualdiffhelp"
+>Diff Help</link
+>. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Hvorfor skal alle konflikter være løste inden sammenfletningsresultatet kan gemmes? </para
+></question
+><answer
+><para
+>For hver ens eller forskelligt afsnit husker editoren i vinduet med sammenfletningsresultatet hvor det begynder og slutter. Det er nødvendigt eftersom konflikter kan løses op manuelt ved helt enkelt at vælge kildeknappen (A, B eller C). Informationen går tabt når filen gemmes som tekst, og det er for besværligt at oprette et specielt filformat som understøtter at gemme og genoprette al nødvendig information. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Hvordan kan jeg synkronisere sammenligningsvisningen og sammenfletningsvisningen så alle visninger viser samme tekstposition? </para
+></question
+><answer
+><para
+>Klik på sammenfatningssøjlen til venstre for teksten. (<link linkend="synchronise_views"
+>Se også her.</link
+>) </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Hvorfor har editoren i resultatvinduet for sammenfletning ikke en "fortryde"-funktion? </para
+></question
+><answer
+><para
+>Hidtil har det været for besværligt. Du kan altid genoprette en version fra en kilde (A, B eller C) ved at klikke på den tilsvarende knap. For større redigering, anbefales brug af en anden editor alligevel. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Når jeg fjernede en del tekst, vistes pludselig "&lt;Ingen kildelinje&gt;" og dette kan ikke slettes. Hvad betyder det og hvordan kan man fjerne det? </para
+></question
+><answer
+><para
+>For hvert afsnit der er ligedan eller anderledes husker editoren i vinduet med sammenfletningsresultatet hvor det begynder og slutter. "&lt;Ingen kildelinje&gt;" betyder at der ikke er noget tilbage i et afsnit, ikke engang et nylinjetegn. Dette kan indtræffe enten ved automatisk sammenfletning eller efter redigering. Det er intet problem, eftersom denne information ikke eksisterer i den gemte fil. Hvis du vil have  originalkilden igen, markeres kilden blot (klikke på sammenfatningssøjlen til venstre) og klik derefter på kildeknappen med indholdet som ønskes (A, B eller C). </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Hvorfor understøtter &kdiff3; ikke syntaksfremhævning? </para
+></question
+><answer
+><para
+>&kdiff3; bruger allerede mange farver til fremhævning af sammenligninger. Yderligere frem,hævning ville være forvirrende. Burg en anden editor til dette. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Kan jeg bruge &kdiff3; til at sammenligne filer fra OpenOffice.Org, Word, Excel, PDF, og så videre? </para
+></question
+><answer
+><para
+>Selvom &kdiff3; kan analysere alle slags filer, vil resultatet formodentlig ikke være særligt tilfredsstillende for dig. </para
+><para
+>&kdiff3; blev lavet til at sammenligne rene tekstfiler. OpenOffice, Word, Excel, og så videre, opbevarer meget mere information i filerne (om skrifttype, billeder, sider, farver, osv.), som &kdiff3; ikke kender til. Altså viser &kdiff3; dig indholdet i filen tolket som ren tekst, men dette kan være ulæseligt eller i det mindste se meget mærkeligt ud. </para
+><para
+>Eftersom de fleste programmer nu om dage opbevarer deres indhold i XML-format, kan du måske læse det som ren tekst. Hvis ændringen kun var lille, kan &kdiff3; måske stadigvæk hjælpe dig. </para
+><para
+>Den bedste løsning hvis du kun vil sammenligne teksten (uden indlejrede objekter såsom billeder) er at bruge "Markér alt" og "Kopiér" i programmet for at kopiere den interessante tekst til klippebordet og derefter indsætte teksten i et af sammenligningsvinduerne i &kdiff3;. (Se også <link linkend="selections"
+>Markér, kopiér og indsæt</link
+>.) </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Hvorfor er mappetilvalget "List kun forskelle" blevet fjernet? </para
+></question
+><answer
+><para
+>Der er nu flere forskellige <link linkend="selectingvisiblefiles"
+>"Vis"-tilvalg</link
+> i mappemenuen. At deaktivere "Vis identiske filer" afstedkommer hvad aktivering af "List kun forskelle" plejede at gøre. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Hvordan kan man lave en stor markering i sammenligningsvinduet når det tager så lang tid at rulle teksten? </para
+></question
+><answer
+><para
+>Start markeringen som sædvanligt (klik og hold venstre museknap nede). Brug derefter navigationstasterne (f.eks. Page Up, Page Down) mens venstre museknap holdes nede. (Se også <link linkend="selections"
+>Markér, kopiér og indsæt</link
+>.) </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Der er en stor mængde  information her, men dit spørgsmål er alligevel ikke besvaret? </para
+></question
+><answer
+><para
+>Send gerne dit spørgsmål til mig. Jeg sætter pris på alle kommentarer. </para
+></answer
+></qandaentry>
+
+</qandaset>
+</chapter>
+
+<chapter id="credits">
+
+<title
+>Medvirkende og licens</title>
+
+<para
+>&kdiff3;: Værktøj til sammenligning og sammenfletning af filer og mapper </para>
+<para
+>Program ophavsret 2002-2006 Joachim Eibl <email
+>joachim.eibl at gmx.de</email
+> </para>
+<para
+>Flere fede idéer og fejlrapporter kom fra kolleger og mange personer ude på www. Tak! </para>
+
+<para
+>Dokumentation ophavsret &copy; 2002-2006 Joachim Eibl <email
+>joachim.eibl at gmx.de</email
+> </para>
+
+&erik.kjaer.pedersen.credit; 
+&underFDL; &underGPL; </chapter>
+
+<appendix id="installation">
+<title
+>Installation</title>
+
+<sect1 id="getting-kdiff3">
+<title
+>Hvordan får man fat på &kdiff3;</title>
+
+<para
+>Du kan hente seneste version af &kdiff3; fra hjemmesiden <ulink url="http://kdiff3.sourceforge.net"
+>http://kdiff3.sourceforge.net</ulink
+>. </para
+><para
+>&kdiff3; er også tilgængelig for andre platforme. Se hjemmesiden for detaljer. </para>
+
+
+</sect1>
+
+<sect1 id="requirements">
+<title
+>Krav</title>
+
+<para
+>For at bruge alle funktioner i &kdiff3; med godt resultat har du brug for &kde; 3.1 eller nyere. </para
+><para
+>For information om hvordan &kdiff3; kan køres på andre platforme uden &kde;, se <ulink url="http://kdiff3.sourceforge.net"
+>hjemmesiden</ulink
+>. </para
+><para
+>Du finder en liste med ændringer på <ulink url="http://kdiff3.sourceforge.net/ChangeLog"
+>http://kdiff3.sourceforge.net/ChangeLog</ulink
+> eller i filen "ChangeLog" i kildekodepakken. </para>
+</sect1>
+
+<sect1 id="compilation">
+<title
+>Kompilering og installation</title>
+
+<para
+>For at kompilere og installere &kdiff3; på et system med KDE, skriv følgende i basismappen for distributionen af &kdiff3;:</para>
+
+<screen
+><prompt
+>%</prompt
+> <userinput
+><command
+>./configure --prefix=<replaceable
+>kde-mappe</replaceable
+></command
+></userinput>
+<prompt
+>%</prompt
+> <userinput
+><command
+>make</command
+></userinput>
+<prompt
+>%</prompt
+> <userinput
+><command
+>make</command
+> install</userinput
+>
+</screen>
+<para
+><replaceable
+>kde-mappe</replaceable
+> angiver mappen som indeholder KDE på dit system. Hvis du ikke er sikker, læs filen README for detaljer. </para>
+<para
+>Hvis du ikke bruger KDE, så brug ikke <command
+>configure</command
+> men følg instruktionerne for systemer som kun bruger Qt i filen README.</para>
+<para
+>Eftersom &kdiff3; bruger <command
+>autoconf</command
+> og <command
+>automake</command
+> skulle du ikke have problemer med at kompilere det. Skulle du støde på problemer, så rapportér dem gerne til &kde;'s e-mail-lister.</para>
+
+</sect1>
+
+</appendix>
+
+&documentation.index;
+</book>
+
+<!--
+Local Variables:
+mode: sgml
+sgml-minimize-attributes:nil
+sgml-general-insert-case:lower
+sgml-indent-step:0
+sgml-indent-data:nil
+End:
+
+vim:tabstop=2:shiftwidth=2:expandtab
+-->
diff --git a/doc/de/CMakeLists.txt b/doc/de/CMakeLists.txt
new file mode 100644 (file)
index 0000000..b30f93b
--- /dev/null
@@ -0,0 +1 @@
+kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/de SUBDIR kdiff3)
diff --git a/doc/de/index.docbook b/doc/de/index.docbook
new file mode 100644 (file)
index 0000000..1192e87
--- /dev/null
@@ -0,0 +1,2430 @@
+<?xml version="1.0" ?>
+<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
+  <!ENTITY kdiff3 "<application
+>KDiff3</application
+>">
+  <!ENTITY kappname "&kdiff3;">
+  <!ENTITY package "kdeextragear-1">
+  <!ENTITY % addindex "IGNORE">
+  <!ENTITY % German "INCLUDE">
+]>
+
+<book lang="&language;">
+
+<!-- This header contains all of the meta-information for the document such
+as Authors, publish date, the abstract, and Keywords -->
+
+<bookinfo>
+<title
+>Das Handbuch zu &kdiff3;</title>
+
+<authorgroup>
+<author
+><firstname
+>Joachim</firstname
+> <surname
+>Eibl</surname
+> <affiliation
+><address
+> <email
+>joachim.eibl at gmx.de</email>
+</address
+></affiliation>
+</author>
+</authorgroup>
+
+<othercredit role="translator"
+><firstname
+>Thomas</firstname
+><surname
+>Reitelbach</surname
+><affiliation
+><address
+><email
+>tr@erdfunkstelle.de</email
+></address
+></affiliation
+><contrib
+>Deutsche Übersetzung</contrib
+></othercredit
+> 
+
+<copyright>
+<year
+>2002-2005</year>
+<holder
+>Joachim Eibl</holder>
+</copyright>
+<!-- Translators: put here the copyright notice of the translation -->
+<!-- Put here the FDL notice.  Read the explanation in fdl-notice.docbook
+     and in the FDL itself on how to use it. -->
+<legalnotice
+>&FDLNotice;</legalnotice>
+
+<!-- Date and version information of the documentation
+Don't forget to include this last date and this last revision number, we
+need them for translation coordination !
+Please respect the format of the date (YYYY-MM-DD) and of the version
+(V.MM.LL), it could be used by automation scripts.
+Do NOT change these in the translation. -->
+
+<date
+>2005-01-30</date>
+<releaseinfo
+>0.9.87</releaseinfo>
+
+
+<abstract>
+<para
+></para>
+<para
+>&kdiff3; ist ein Programm zum Anzeigen von Unterschieden und zum Zusammenführen von Dateien und Ordnern. &kdiff3; <itemizedlist>
+<listitem
+><para
+>vergleicht zwei oder drei Textdateien bzw. Ordner und führt sie zusammen,</para
+></listitem>
+<listitem
+><para
+>kann Unterschiede zeilenweise und sogar Zeichen für Zeichen anzeigen,</para
+></listitem>
+<listitem
+><para
+>hat eine Funktion zum automatischen Zusammenführen,</para
+></listitem>
+<listitem
+><para
+>enthält einen speziellen komfortablen Editor zum Auflösen von Konflikten beim Zusammenführen,</para
+></listitem>
+<listitem
+><para
+>ist mit Hilfe von KIO Netzwerktransparent,</para
+></listitem>
+<listitem
+><para
+>kann Unterschiede in "weißen" Zeichen oder Kommentaren besonders hervorheben oder verstecken.</para
+></listitem>
+<listitem
+><para
+>unterstützt Unicode, UTF-8 und weitere Dateikodierungen.</para
+></listitem>
+</itemizedlist>
+</para
+><para
+>Dieses Dokument beschreibt &kdiff3; in der Version 0.9.87. </para>
+</abstract>
+
+<!-- This is a set of Keywords for indexing by search engines.
+Please at least include KDE, the KDE package it is in, the name
+ of your application, and a few relevant keywords. -->
+
+<keywordset>
+<keyword
+>KDE</keyword>
+<keyword
+>kdeextragear</keyword>
+<keyword
+>kdiff3</keyword>
+<keyword
+>vergleichen</keyword>
+<keyword
+>zusammenführen</keyword>
+<keyword
+>CVS</keyword>
+<keyword
+>dreifach-vergleichen</keyword>
+<keyword
+>vergleichen</keyword>
+<keyword
+>Dateien</keyword>
+<keyword
+>Ordner</keyword>
+<keyword
+>Versionskontrolle</keyword>
+<keyword
+>Drei-Wege-Zusammenführen</keyword>
+<keyword
+>Unterschiede innerhalb einer Zeile</keyword>
+<keyword
+>synchronisieren</keyword>
+<keyword
+>kpart</keyword>
+<keyword
+>kio</keyword>
+<keyword
+>netzwerktransparent</keyword>
+<keyword
+>Editor</keyword>
+<keyword
+>"weißes" Zeichen</keyword>
+<keyword
+>Kommentare</keyword>
+</keywordset>
+
+</bookinfo>
+
+<chapter id="introduction"
+><title
+>Einführung</title>
+<sect1 id="why"
+><title
+>Noch eine Oberfläche zu Diff?</title>
+<para
+>Es gibt viele graphische Werkzeuge zum Vergleichen. Warum also &kdiff3;? Lassen Sie mich kurz erklären, warum ich &kdiff3; ins Leben gerufen habe. </para
+><para
+>&kdiff3; wurde programmiert, weil ich eine sehr komplizierte Zusammenführung durchzuführen hatte. Zusammenführen wird dann nötig, wenn mehrere Personen an der gleichen Datei in einem Projekt arbeiten. Wenn das verwendete Werkzeug zum Zusammenführen nicht nur die geänderten Dateien ("Branch" genannt), sondern auch die Originale ("Basis") zur Verfügung hat, kann das Zusammenführen gewissermaßen automatisiert werden. Das Programm wird dann automatisch die in der Branch gemachten Änderungen auswählen. Doch wenn mehrere Beitragende die gleichen Zeilen ändern, wird ein Konflikt erkannt. Solch ein Konflikt muss dann von Hand aufgelöst werden. </para
+><para
+>Die Zusammenführung war sehr kompliziert, weil einer der Beitragenden viele Änderungen vorgenommen und gleichzeitig an vielen Stellen die Einrückung korrigiert hatte. Ein weiterer Programmierer hatte in der gleichen Datei viel Text verändert. Das Ergebnis waren zahlreiche Konflikte beim Zusammenführen. </para
+><para
+>Das von mir benutzte Programm zeigte mir nur die geänderten Zeilen an, ich konnte aber nicht sehen, was genau sich innerhalb dieser Zeilen geändert hatte. Und es gab keinerlei Hinweise auf die Stellen, wo sich vielleicht nur die Einrückung geändert hatte. Das Zusammenführen dieser Änderungen war ein kleiner Albtraum. </para
+><para
+>Das war also der Beginn. Die erste Version von &kdiff3; konnte Unterschiede innerhalb einer Zeile und Änderungen an "weißen" Zeichen darstellen. Später wurden noch jede Menge weiterer nützlicher Funktionen hinzugefügt. </para
+><para
+>Wenn Sie zum Beispiel schnell Text vergleichen möchten, kopieren Sie ihn einfach in die Zwischenablage und fügen ihn in eines der Vergleichsfenster ein. </para
+><para
+>Eine Funktion die viel Arbeit machte, war das Vergleichen und Zusammenführen von Ordnern. Diese Funktion verwandelte &kdiff3; beinahe in einen vollwertigen Datei-Browser. </para
+><para
+>Ich hoffe, dass Sie viel Nutzen an &kdiff3; haben und wünsche Ihnen viel Freude! </para
+><para
+>Joachim Eibl (2003) </para>
+</sect1>
+
+<sect1 id="screenshots"
+><title
+>Bildschirmphotos und Funktionen</title>
+<para
+>Dieses Bildschirmphoto zeigt die Unterschiede zwischen zwei Textdateien</para>
+<para
+>(Unter Verwendung einer frühen Version von &kdiff3;):</para>
+<screenshot
+><mediaobject>
+   <imageobject
+><imagedata fileref="screenshot_diff.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+
+<para
+>Auch 3-Wege-Zusammenführen wird vollständig unterstützt. Dies ist nützlich, wenn zwei Personen unabhängig voneinander an einem Stück Kode arbeiten und Änderungen vornehmen. Die Originaldatei (die Basis) hilft &kdiff3; beim automatischen Auswählen der jeweils korrekten Änderungen. Der Zusammenführungs-Editor unter den Unterschiede-Fenstern ermöglicht das Auflösen von Konflikten und zeigt gleichzeitig das zu erwartende Ergebnis an. In diesem Editor können Sie das Ergebnis sogar direkt bearbeiten. Das Bildschirmphoto zeigt drei Quell-Dateien beim Zusammenführen: </para
+><para>
+<screenshot
+><mediaobject>
+   <imageobject
+><imagedata fileref="screenshot_merge.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+</para>
+
+<para id="dirmergebigscreenshot"
+>&kdiff3; hilft Ihnen auch beim Vergleichen und Zusammenführen kompletter Ordner. Dieses Bildschirmphoto zeigt &kdiff3; beim Ordner-Zusammenführen: </para
+><para>
+<screenshot
+><mediaobject>
+   <imageobject
+><imagedata fileref="dirmergebig.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+</para>
+</sect1>
+
+<sect1 id="features"
+><title
+>Weitere Funktionen</title>
+<sect2
+><title
+>Zeilen- und sogar Zeichenweises Darstellen von Unterschieden</title>
+<para
+>&kdiff3; zeigt die exakten Unterschiede an und bediehnt sich dazu der Möglichkeiten heutiger Farbmonitore. Wenn Sie häufig Kode überprüfen müssen, werden Sie diese Funktion mögen. </para>
+<screenshot
+><mediaobject>
+   <imageobject
+><imagedata fileref="letter_by_letter.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+</sect2>
+
+<sect2
+><title
+>Erkennen von Unterschieden in "weißen" Zeichen auf einen Blick</title>
+<para
+>Unterschiede in "weißen" Zeichen und Tabulatoren werden sichtbar dargestellt. Wenn sich Zeilen nur in einer gewissen Anzahl an "weißen" Zeichen unterscheiden, kann man das auf einen Blick an der Zusammenfassung in der Spalte an der linken Seite sehen. (Kein Ärger mehr, wenn Jemand die Einrückung ändert.) </para>
+<screenshot
+><mediaobject>
+   <imageobject
+><imagedata fileref="white_space.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+</sect2>
+
+<sect2
+><title
+>3-Wege-Vergleichen</title>
+<para
+>Man kann drei Dateien analysieren und sehen, an wo sie sich unterscheiden. </para
+><para
+>Das linke/mittlere/rechte Fenster hat den Namen A/B/C und ist entsprechend blau/grün/magenta eingefärbt. </para
+><para
+>Wenn eine Datei gleich ist, und die andere sich in einer Zeile unterscheidet, dann zeigt die Farbe an, welche Datei unterschiedlich ist. Rote Farbe bedeutet, dass beide sich Dateien unterscheiden. </para>
+<screenshot
+><mediaobject>
+   <imageobject
+><imagedata fileref="triple_diff.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+</sect2>
+
+<sect2
+><title
+>Komfortables zusammenführen von zwei oder drei Dateien</title>
+<para
+>Mit &kdiff3; kann man zwei oder drei Dateien zusammenführen. Dabei führt &kdiff3; so viel wie möglich automatisch zusammen. Das Ergebnis wird in einem editierbaren Fenster angezeigt; dort können die meisten Konflikte schon mit einem einfachen Mausklick gelöst werden: Wählen Sie zwischen den Knöpfen A/B/C um die zu benutzende Quelle auszuwählen. Sie können auch mehr als eine Quelle wählen. Weil das Fenster im Grunde ein Editor ist, können hier selbst Konflikte, die eine weitere Bearbeitung erfordern, einfach aufgelöst werden. Sie benötigen dazu keine weiteren Hilfsmittel. </para>
+</sect2>
+
+<sect2
+><title
+>Und ...</title>
+<itemizedlist>
+   <listitem
+><para
+>Schnelle Navigation über Knöpfe.</para
+></listitem>
+   <listitem
+><para
+>Ein Mausklick in die Zusammenfassungs-Spalte gleicht alle Fenster ab, so dass alle die gleiche Stelle anzeigen.</para
+></listitem>
+   <listitem
+><para
+>Kopieren Sie eine Auswahl aus irgendeinem Fenster einfach in das Ergebnisfenster.</para
+></listitem>
+   <listitem
+><para
+>Die Übersichtsspalte zeigt an, wo sich Änderungen und Konflikte befinden.</para
+></listitem>
+   <listitem
+><para
+>Die Farben sind an Ihre Bedürfnisse anpassbar.</para
+></listitem>
+   <listitem
+><para
+>Die Größe von Unterfenstern ist veränderbar.</para
+></listitem>
+   <listitem
+><para
+>Es gibt die Option, anstelle von Tabulatoren Leerzeichen einzufügen.</para
+></listitem>
+   <listitem
+><para
+>Bequemes Öffnen von Dateien über einen Dialog oder über die Kommandozeile.</para
+></listitem>
+   <listitem
+><para
+>Suchen (Strg-F) und Weitersuchen (F3) nach bestimmten Zeichenketten in allen Textfenstern.</para
+></listitem>
+   <listitem
+><para
+>Anzeigen der Zeilennummer zu jeder Zeile. </para
+></listitem>
+   <listitem
+><para
+>Einfügen aus der Zwischenablage oder das Ziehen von Text in ein Vergleichsfenster.</para
+></listitem>
+   <listitem
+><para
+>Netzwerktransparenz durch KIO.</para
+></listitem>
+   <listitem
+><para
+>&kdiff3; kann als Anzeigemodul in KDevelop 3 genutzt werden um Unterschiede anzuzeigen.</para
+></listitem>
+   <listitem
+><para
+>Zeilenumbruch für lange Zeilen</para
+></listitem>
+   <listitem
+><para
+>Unterstützung für Unicode, UTF-8 und weitere Kodierungen.</para
+></listitem>
+   <listitem
+><para
+>Unterstützung für Sprachen, die von rechts nach links geschrieben werden.</para
+></listitem>
+   <listitem
+><para
+>...</para
+></listitem>
+</itemizedlist>
+</sect2>
+</sect1>
+</chapter>
+
+<chapter id="documentation"
+><title
+>Dokumentation zum Vergleichen und Zusammenführen von Dateien</title>
+
+<sect1 id="commandline"
+><title
+>Kommandozeilen-Optionen</title>
+
+<sect2
+><title
+>Vergleichen von zwei Dateien: </title>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>datei1 datei2</replaceable
+>
+</screen>
+</sect2>
+
+<sect2
+><title
+>Zusammenführen von zwei Dateien: </title>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>datei1 datei2</replaceable
+> -m
+   <command
+>kdiff3</command
+> <replaceable
+>datei1 datei2</replaceable
+> -o <replaceable
+>ausgabedatei</replaceable
+>
+</screen>
+</sect2>
+
+<sect2
+><title
+>Vergleichen von drei Dateien: </title>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>datei1 datei2 datei3</replaceable
+>
+</screen>
+</sect2>
+
+<sect2
+><title
+>Zusammenführen von drei Dateien: </title>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>datei1 datei2 datei3</replaceable
+> -m
+   <command
+>kdiff3</command
+> <replaceable
+>datei1 datei2 datei3</replaceable
+> -o <replaceable
+>ausgabedatei</replaceable
+>
+</screen>
+<para
+>Beachten Sie, dass <replaceable
+>datei1</replaceable
+> als Basis für <replaceable
+>datei2</replaceable
+> und <replaceable
+>datei3</replaceable
+> verwendet wird. </para>
+</sect2>
+
+<sect2
+><title
+>Spezialfall: Dateien mit gleichem Namen </title>
+<para
+>Wenn alle Dateien den gleichen Namen haben, aber in verschiedenen Ordnern liegen, dann können Sie sich die Tipparbeit erleichtern indem Sie nur den Dateinamen der ersten Datei vollständig ausschreiben. Beispiel: </para>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>Ordner1/Dateiname Ordner2 Ordner3</replaceable
+>
+</screen>
+</sect2>
+
+<sect2
+><title
+>Kommandozeile zum Vergleichen bzw. Zusammenführen von Ordnern: </title>
+<para
+>Das Vorgehen ist hier sehr ähnlich, doch nun geht es um Ordner.</para>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>Ordner1 Ordner2</replaceable>
+   <command
+>kdiff3</command
+> <replaceable
+>Ordner1 Ordner2</replaceable
+> -o <replaceable
+>Zielordner</replaceable>
+   <command
+>kdiff3</command
+> <replaceable
+>Ordner1 Ordner2 Ordner3</replaceable>
+   <command
+>kdiff3</command
+> <replaceable
+>Ordner1 Ordner2 Ordner3</replaceable
+> -o <replaceable
+>Zielordner</replaceable
+>
+</screen>
+<para
+>Zum Vergleichen bzw. Zusammenführen von Ordnern lesen Sie bitte <link linkend="dirmerge"
+>hier</link
+> weiter.</para>
+</sect2>
+
+<sect2
+><title
+>Mehr Informationen zu den Kommandozeilen-Optionen erhalten Sie mit diesem Befehl: </title>
+<screen
+><command
+>kdiff3</command
+> --help
+Options:
+  -m, --merge               Quellen zusammenführen.
+  -b, --base file           Explizite Basisdatei. Für Kompatibilität mit anderen Programmen.
+  -o, --output datei        Ausgabe-Datei. Impliziert -m. Z. B.: -o neueDatei.txt
+  --out file                Ausgabe-Datei. (Für Kompatibilität mit anderen Programmen.)
+  --auto                    Keine graphische Oberfläche, wenn alle Konflikte automatisch aufgelöst werden können. (Benötigt -o datei)
+  --qall                    Konflikte nicht automatisch auflösen. (Aus Kompatibilitätsgründen.)
+  --L1 alias1               Sichtbarer Namensersatz für Quelldatei 1 (Basis).
+  --L2 alias2               Sichtbarer Namensersatz für Quelldatei 2.
+  --L3 alias3               Sichtbarer Namensersatz für Quelldatei 3.
+  -L, --fname alias         Alternativer sichtbarer Namensersatz. Für jede Quelldatei einmal angeben.
+  -u                        Hat keine Wirkung. Für Kompatibilität mit anderen Programmen.
+</screen>
+</sect2>
+
+</sect1>
+
+<sect1 id="opendialog"
+><title
+>Öffnen-Dialog</title>
+<para
+>Weil mehrere Dateien auszuwählen sind, hat &kdiff3; einen besonderen Dialog zum Öffnen von Dateien: </para>
+<screenshot
+><mediaobject>
+<imageobject
+><imagedata fileref="open_dialog.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+<para
+>Der Öffnen-Dialog ermöglicht das manuelle Eintippen von Dateinamen, die Auswahl über den Datei-Browser ("Datei...") oder das Auswählen einer zuletzt geöffneten Datei aus der Aufklappliste. Der Öffnen-Dialog merkt sich Ihre Auswahl und zeigt sie beim nächsten Mal wieder an. Sie müssen keine dritte Datei angeben; wenn Sie den Eintrag für "C" leer lassen, wird die Analyse der Unterschiede mit zwei Dateien durchgeführt. </para
+><para
+>Über den Knopf "Ordner..." können Sie auch einen Ordner auswählen. Wenn Sie einen Ordner wählen, wird das Vergleichen bzw. Zusammenführen von Ordnern eingeleitet. Wenn für "A" eine Datei ausgewählt wird, für "B" und "C" jedoch ein Ordner, dann benutzt &kdiff3; den Dateinamen aus "A" in den beiden anderen Ordnern. </para
+><para
+>Wenn "Zusammenführen" angekreuzt ist, wird das Eingabefeld für "Ziel" aktiv und lässt sich bearbeiten. Es ist allerdings nicht unbedingt erforderlich, sofort eine Ausgabedatei festzulegen. Sie können diesen Schritt auch später beim Speichern erledigen. </para
+><para
+>Der "Einrichten"-Knopf öffnet einen Dialog mit Einstellungen. Hier können Sie Optionen festlegen bevor Sie mit dem Vergleichen/Zusammenführen beginnen. </para>
+</sect1>
+
+<sect1 id="pasteinput"
+><title
+>Einfügen und Ablegen von Text</title>
+<para
+>Manchmal möchte man nicht eine ganze Datei, sondern nur Teile eines Textes vergleichen. &kdiff3; ermöglicht Ihnen, Textteile aus der Zwischenablage in das aktive Vergleichsfenster zu ziehen. Der Vergleich beginnt dann sofort. Im Öffnen-Dialog müssen Sie keine Dateien auswählen, Sie können den Dialog einfach mit dem "Abbrechen"-Knopf schließen. </para
+><para
+>Sie können auch "Ziehen und Ablegen" benutzen: Ziehen Sie einfach eine Datei aus einem Dateimanager oder ausgewählten Text aus einem Editor und lassen Sie ihn über einem Vergleichsfenster fallen. </para
+><para
+>Welcher Gedanke steckt dahinter? Manchmal enthält eine Datei z. B. mehrere ähnliche Funktionen. Wenn Sie herausfinden möchten, wie ähnlich sich diese Funktionen sind, wäre das ein relativ großer Aufwand. Sie müssten erst zwei entsprechende Dateien erstellen, sie in &kdiff3; laden und diese dann vergleichen. Jetzt können Sie die relevanten Abschnitte einfach kopieren, einfügen und dann vergleichen. </para
+><para
+>Anmerkung: Zur Zeit können Sie nichts aus &kdiff3; herausziehen. Nur das Fallenlassen von Text in ein Vergleichsfenster wird unterstützt. </para
+><para
+>Warnung: Einige Editoren interpretieren das Ziehen und Ablegen von Text in ein anderes Programm als Ausschneiden und Einfügen (anstelle von Kopieren und Einfügen). In einem solchen Fall könnten Ihre Originaldaten verloren gehen. </para>
+</sect1>
+
+<sect1 id="interpretinginformation"
+><title
+>Interpretieren der angezeigten Informationen in den Quellfenstern</title>
+<screenshot
+><mediaobject>
+<imageobject
+><imagedata fileref="screenshot_diff.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+<para
+>Im oberen Teil jedes Textfensters befindet sich die Info-Zeile. Die Info-Zeile der Quellfenster enthält die Zeichen "A", "B" oder "C", den Dateinamen und die Zeilennummer der ersten sichtbaren Zeile im Fenster. (Beachten Sie, dass Fenster "C" optional ist.) Jede Info-Zeile hat eine unterschiedliche Farbe. (Wenn der Pfad zu einer Datei zu lang ist, lassen Sie die Maus eine Weile über der Zeile ruhen. Dann wird ein kleines Hilfsfenster den vollständigen Namen anzeigen.) </para
+><para
+>Den drei Quellfenstern sind die Buchstaben "A", "B" und "C" zugeordnet. "A" hat die Farbe Blau, "B" die Farbe Grün und "C" ist magenta. (Diese Voreinstellungen können über das Einstellungen-Menü geändert werden.) </para
+><para
+>Wenn ein Unterschied erkannt wird, sieht man an der Farbe, welche Datei sich unterscheidet. Wenn sich beide Dateien unterscheiden, ist die Voreingestellte Farbe dafür Rot. ("Farbe für Konflikte" in den Einstellungen). Das Farbschema ist besonders nützlich, wenn Sie drei Dateien vergleichen. Das ist im nächsten Abschnitt (<link linkend="merging"
+>Zusammenführen</link
+>) gut zu sehen. </para
+><para
+>Links neben dem Text befindet sich die Zusammenfassungs-Spalte. Wenn Unterschiede gefunden wurden, zeigt die Spalte die entsprechende Farbe an. Bei Unterschieden in "weißen" Zeichen wird die Farbe gerastert angezeigt. Bei einigen Programmiersprachen wo "weiße" Zeichen nicht so wichtig sind, ist es nützlich, nur die relevanten Änderungen zu sehen. (Bei C/C++ z. B. sind "weiße" Zeichen nur in Zeichenketten und Kommentaren, für den Preprozessor und in wenigen, seltenen Einzelfällen relevant.) </para
+><para
+>Die vertikale Linie, die die Zusammenfassungs-Spalte vom Text trennt, wird an den Stellen unterbrochen, wo die jeweilige Quelldatei keine Zeilen hat. Wenn der Zeilenumbruch aktiviert ist, wird die Linie an umgebrochenen Zeilen gepunktet dargestellt. </para
+><para
+>An der rechten Seite befindet sich eine Übersichts-Spalte, direkt links neben der vertikalen Bildlaufleiste. Sie zeigt eine komprimierte Zusammenfassung des gesamten Fenster "A". Alle Unterschiede und Konflikte sind hier auf einen Blick erkennbar. Wenn nur zwei Quellfenster genutzt werden, dann erscheinen alle Unterschiede rot, denn dann ist jeder Unterschied gleichzeitig auch ein Konflikt. Der aktuell sichtbare Bereich der Quelltexte wird durch ein schwarzes Rechteck umrandet. Bei sehr langen Quelldateien mit mehr Zeilen als die Übersichts-Spalte in Pixeln anzeigen kann, teilen sich mehrere Zeilen jeweils eine Zeile in der Übersichts-Spalte. Ein Konflikt hat gegenüber einfacher Unterschiede die höchste Priorität. Unterschiede wiederum haben eine höhere Priorität als "keine Änderungen". So gehen keine Konflikte oder Unterschiede verloren. Durch einen Klick in die Übersichts-Spalte wird der zugehörige Text angezeigt. </para>
+</sect1>
+
+
+<sect1 id="merging"
+><title
+>Zusammenführen und das editierbare Ergebnisfenster</title>
+<screenshot
+><mediaobject>
+<imageobject
+><imagedata fileref="screenshot_merge.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+<para
+>Das Ergebnisfenster (unter den Vergleichsfenstern) hat auch eine Info-Zeile mit der Aufschrift "Ausgabe:", dem Dateinamen und "[Geändert]" wenn Sie das Ergebnis bearbeitet haben. Üblicherweise enthält es durch das automatische Zusammenführen bereits Text, aber oft enthält es auch Konflikte. </para
+><para
+>!!! Bis alle Konflikte aufgelöst sind, ist das Speichern deaktiviert !!! (Benutzen Sie die Knöpfe "Springe zu nächstem gelösten/ungelösten Konflikt" um die noch verbleibenden Konflikte zu finden.) </para
+><para
+>Wenn nur zwei Vergleichsfenstern benutzt werden, ist jeder Unterschied gleichzeitig auch ein Konflikt der manuell gelöst werden muss. </para
+><para
+>Bei drei Vergleichsfenstern wird die erste Datei als Basis verwendet, und die zweite und dritte Datei enthalten die Änderungen. Wenn eine Zeile nur in Datei B oder C geändert wurde, aber nicht in beiden, dann wird automatisch die richtige Änderung ausgewählt. Wenn B und C allerdings Änderungen in der gleichen Zeile enthalten, erkennt &kdiff3; einen manuell zu lösenden Konflikt. Wenn B und C identisch sind, sich aber von A unterscheiden, dann wird C als Quelle ausgewählt. </para
+><para
+>Das Ergebnisfenster hat auch eine Zusammenfassungs-Spalte an der linken Seite. Sie zeigt entweder den Buchstaben des Vergleichsfensters an von dem eine Zeile stammt, oder sie ist leer, wenn alle drei Quellen an der Stelle identisch sind. Konflikte werden mit einem roten Fragezeichen "?" und dem Text &lt;Zusammenführungskonflikt&gt; dargestellt. Weil das zeilenweise Auflösen von Konflikten sehr lange dauern würde, werden Zeilen mit gleichem Unterschied und Charakteristika gruppiert. Konflikte mit "weißen" Zeichen und Konflikte mit "nicht-weißen" Zeichen werden getrennt dargestellt, um das Zusammenführen von Dateien mit vielen Einrückungsänderungen zu vereinfachen. </para
+><para
+>Durch einen Klick mit der linken Maustaste in die Zusammenfassungs-Spalte in einem der Fenster wird die zu der Zeile gehörende Gruppe in allen Fenstern markiert und die erste Zeile der Gruppe wird angezeigt. (Dadurch wird auch ein Sprung der Position in den Fenstern verursacht, wo der Anfang der Gruppe sonst nicht sichtbar wäre.) Diese Gruppe wird dann die "aktuelle Gruppe". Sie wird mit der Farbe "Hintergrundfarbe für aktuellen Bereich" hervorgehoben und jeweils zur Linken erscheint ein schwarzer Balken. </para
+><para
+>Beachten Sie die Knöpfe zur Auswahl der Quelle mit der Beschriftung "A", "B" und "C" unterhalb der Menüleiste. Wenn Sie auf einen der Knöpfe klicken, werden die Zeilen aus dem entsprechenden Fenster an das Ende der ausgewählten Gruppe im Ergebnisfenster angehängt (wenn sie nicht bereits vorhanden sind). Falls die Zeilen bereits vorhanden sind, werden sie beim Klicken auf den Knopf entsprechend wieder entfernt. </para
+><para
+>Hinweis: Sie können auch jede Zeile manuell bearbeiten. Die Zusammenfassungs-Spalte zeigt dann ein "m" in jeder Zeile, die Sie von Hand bearbeitet haben. </para
+><para
+>Manchmal bleibt durch das automatische Zusammenführen oder durch manuelles Bearbeiten keine weitere Zeile mehr in der Gruppe übrig; dann wird in diesen Zeilen der Text &lt;Keine Zeile in der Quelle&gt; angezeigt. Das ist nur ein Platzhalter für den Fall, dass Sie Ihre Meinung ändern und vielleicht doch wieder eine andere Quelle wählen. Dieser Text erscheint weder in der endgültigen gespeicherten Datei, noch in einer Markierung die Sie vielleicht kopieren und woanders einfügen. </para
+><para
+>Der Text &lt;Zusammenführungskonflikt&gt; erscheint allerdings in der Zwischenablage, wenn Sie solchen Text aus dem Ergebnisfenster kopieren. Gehen Sie vorsichtig mit dieser Funktion um. </para
+><para
+>Das normale Zusammenführen startet mit dem automatischen Lösen einfacher Konflikte. Das "Zusammenführen"-Menü enthält einige häufig verwendete Funktionen. Wenn Sie bei den meisten Konflikten die gleiche Quelle auswählen müssen, können Sie z. B. überall "A", "B" oder "C" auswählen. Die gleiche Möglichkeit gibt es auch für die noch verbleibenden ungelösten Konflikte oder sogar für die noch verbleibenden ungelösten Konflikte in "weißen" Zeichen. Wenn Sie solche Entscheidungen nicht zusammengefasst für eine Gruppe, sondern sogar für jeden einzelnen Unterschied im Detail treffen möchten, dann wählen Sie "Alle Unterschiede zu Konflikten machen". Sie können wieder zur automatischen Auswahl von &kdiff3; zurück, indem Sie "Automatisch einfache Konflikte lösen" wählen. &kdiff3; startet das Zusammenführen dann erneut. &kdiff3; fragt nach, bevor Ihre eventuell gemachten Änderungen verloren gehen. </para
+><para
+>Hinweis: Wenn beim Auswählen der Quellen die Optionen "Zahlen ignorieren" oder "Ignoriere C/C++ Kommentare" aktiviert sind, werden Änderungen in Zahlen oder Kommentaren auch wie "weiße" Zeichen behandelt. </para>
+</sect1>
+
+<sect1 id="navigation"
+><title
+>Navigieren und Bearbeiten</title>
+<para
+>Navigiert wird hauptsächlich mit den Bildlaufleisten und der Maus, aber Sie können dazu auch die Tastatur benutzen. Wenn Sie in eines der Fenster klicken, können Sie die Pfeiltasten links, rechts, hoch, runter, Seite auf, Seite ab, Anfang, Ende, Strg-Anfang und Strg-Ende benutzen, siw wie Sie es auch von anderen Programmen gewohnt sind. Die Übersichts-Spalte neben der vertikalen Bildlaufleiste kann durch hineinklicken auch zum Navigieren benutzt werden. </para
+><para
+>Ausserdem können Sie das Rädchen Ihrer Maus zum hoch- und runterblättern benutzen. </para
+><para
+>Im Augabefenster können Sie auch die anderen Tasten zum Bearbeiten verwenden. Mit der "Einfügen"-Taste können Sie zwischen Einfüge- und Überschreibmodus wechseln. (Voreingestellt ist der Einfügemodus.) </para
+><para
+>Ein Klick mit der linken Maustaste in eine der Zusammenfassungs-Spalten synchronisiert die Ansicht aller Fenster auf den Anfang der jeweiligen Gruppe (wie bereits im Abschnitt <link linkend="merging"
+>"Zusammenführen und das editierbare Ausgabefenster"</link
+> erklärt wurde). </para
+><para
+>Die Werkzeugleiste enthält sieben Knöpfe zur Navigation mit denen Sie zum aktuellen/ersten/letzten Unterschied, zum nächsten/vorigen Unterschied (Strg-unten/Strg-oben), zum nächsten/vorigen Konflikt (Strg-Bild Aufwärts/Strg-Bild Abwärts) oder zum nächsten/vorigen ungelösten Konflikt springen können. Beachten Sie, dass &kdiff3; alle nicht automatisch gelösten Konflikte auch nach dem manuellen lösen weiterhin als Konflikt betrachtet. Daher muss zwischen gelösten und ungelösten Konflikten unterschieden werden. </para
+><para
+>Es gibt auch einen Knopf "Automatisch zum nächsten ungelösten Konflikt weiterspringen". Wenn Sie dies aktivieren, wird &kdiff3; nach der ersten Auswahl der Quelle automatisch zum nächsten ungelösten Konflikt weiterspringen und ihn lösen. Das ist hilfreich, wenn Sie immer nur eine Quelle wählen möchten. Wenn Sie beide Quellen brauchen, oder das Ergebnis nach der Auswahl noch bearbeiten möchten, dann sollten Sie diese Funktion ausschalten. Bevor &kdiff3; zum nächsten ungelösten Konflikt weiterspringt, wird das Ergebnis der Auswahl für eine Kurze Zeit angezeigt. Die Verzögerungszeit kann im Abschnitt "Vergleich und Zusammenführung" in den Einstellungen eingestellt werden: Geben Sie für "Automatisch-Weiterspringen-Verzögerung" einen Wert zwischen 0 und 2000 Millisekunden an. Tipp: Wenn Sie sich viele Mausklicks sparen möchten, dann benutzen Sie eine kurze Verzögerungszeit und die Tastenkürzel Strg-1/2/3 uum Auswählen der Quelle A/B/C. </para>
+</sect1>
+
+<sect1 id="selections"
+><title
+>Markieren, Kopieren und Einfügen</title>
+<para
+>In den Vergleichsfenstern wird kein Cursor angezeigt, daher müssen Markierungen mit der Maus gemacht werden. Drücken Sie am Beginn der Markierung die linke Maustaste und halten Sie sie gedrückt, ziehen Sie die Maus dann bis zum Ende der Markierung und lassen Sie hier die Maustaste wieder los. Ein einzelnes Wort kann auch einfach durch einen Doppelklick darauf markiert werden. Im Ergebnisfenster können Sie zum Markieren auch die Tastatur benutzen. Drücken Sie dazu die Umschalt-Taste und verändern Sie die Markierung mit den Pfeiltasten. </para
+><para
+>Um die Markierung in die Zwischenablage zu kopieren, müssen Sie den "Kopieren"-Knopf (Strg-C oder Strg-Einfügen) drücken. Es gibt auch die Option "Auswahl automatisch kopieren". Wenn diese aktiviert ist, wird, was immer Sie markieren, automatisch in die Zwischenablage kopiert und das manuelle Kopieren entfällt. Seien Sie mit dieser Option aber vorsichtig, denn Sie könnten so den Inhalt der Zwischenablage versehentlich überschreiben. </para
+><para
+>"Ausschneiden" (Strg-X oder Umschalt-Entfernen) kopiert in die Zwischenablage und löscht den markierten Text. "Einfügen" (Strg-V oder Umschalt-Einfügen) fügt den Text aus der Zwischenablage an der aktuellen Cursorposition ein bzw. ersetzt die aktuelle Markierung. </para>
+</sect1>
+
+<sect1 id="saving"
+><title
+>Speichern</title>
+<para
+>Speichern ist erst möglich, wenn alle Konflikte gelöst sind. Falls die Datei bereits existiert und die Option "Sicherungskopie erstellen" aktiviert ist, dann erhält die bestehende Datei die Endung ".orig". Wenn bereits eine ".orig"-Datei existiert, wird diese überschrieben. Wenn Sie einen weiteren Vergleich starten bzw. beenden und noch nicht gespeichert haben, dann fragt &kdiff3;, ob Sie Speichern, Abbrechen oder ohne zu speichern fortfahren möchten. (KDiff3 fängt allerdings keine System-Signale ab. Wenn Sie &kdiff3; also mit dem Signal "kill" beenden, gehen Ihre ungespeicherten Daten verloren.) </para
+><para
+>Zeilenenden werden entsprechend dem zugrundeliegenden Betriebssystem gespeichert. Unix-Varianten verwenden ein Zeilenvorschub-Zeichen "\n", und Win32-basierte Systeme benutzen Wagenrücklauf + Zeilenvorschub "\r\n". KDiff3 behält die Zeilenenden der Quelldateien nicht bei, darum sollten Sie &kdiff3; auch nicht mit Binärdateien verwenden. </para>
+</sect1>
+
+<sect1 id="find"
+><title
+>Suchen und Finden von Zeichenketten</title>
+<para
+>Sie können in jedem Textfenster von &kdiff3; nach einer Zeichenkette suchen. Die "Suchen..."-Funktion (Strg-F) im Bearbeiten-Menü öffnet einen Dialog, in dem Sie die zu suchende Zeichenkette eingeben können. Eine Suche beginnt immer am Anfang. Mit der Funktion "Weitersuchen" (F3) können Sie zum nächsten Vorkommen der gesuchten Zeichenkette springen. Wenn Sie eine Suche über mehrere Fenster aktiviert haben, wird erst das erste Fenster vom Beginn bis zum Ende durchsucht, danach das nächste Fenster, u. s. w. </para>
+</sect1>
+
+
+<sect1 id="options"
+><title
+>Optionen</title>
+<para
+>Die Optionen und die Liste der zuletzt verwendeten Dateien wird beim Beenden automatisch gespeichert und beim nächsten Start wiederhergestellt. (Menü Einstellungen->KDiff3 einrichten...) </para>
+<sect2
+><title
+>Schriftart</title>
+<para
+>Wählen Sie eine Schrift mit fester Breite. (Auf einigen Systemen stellt der Dialog auch Schriften mit variabler Breite zur Auswahl, Sie sollten diese aber nicht benutzen.) </para>
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Kursivschrift bei Unterschieden:</emphasis
+></term
+><listitem
+><para
+>Wenn Sie diese Option aktivieren, werden Unterschiede in kursiver Schrift dargestellt. Wenn die gewählte Schrift diese Darstellung nicht unterstützt, passiert gar nichts.</para>
+   </listitem
+></varlistentry>
+</variablelist>
+</sect2>
+
+<sect2
+><title
+>Farbe</title>
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Vordergrundfarbe:</emphasis
+></term
+><listitem
+><para
+>Üblicherweise Schwarz. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Hintergrundfarbe:</emphasis
+></term
+><listitem
+><para
+>Üblicherweise Weiß. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Hintergrundfarbe bei Unterschieden:</emphasis
+></term
+><listitem
+><para
+>Üblicherweise helles Grau. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Farbe für A:</emphasis
+></term
+><listitem
+><para
+>Üblicherweise dunkles Blau. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Farbe für B:</emphasis
+></term
+><listitem
+><para
+>Üblicherweise dunkles Grün. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Farbe für C:</emphasis
+></term
+><listitem
+><para
+>Üblicherweise dunkles Magenta. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Farbe für Konflikte:</emphasis
+></term
+><listitem
+><para
+>Üblicherweise Rot.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Hintergrundfarbe für aktuellen Bereich:</emphasis
+></term
+><listitem
+><para
+>Üblicherweise helles Gelb.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Hintergrundfarbe für Unterschiede im aktuellen Bereich:</emphasis
+></term
+><listitem
+><para
+>Üblicherweise dunkles Gelb.</para
+></listitem
+></varlistentry>
+</variablelist>
+<para
+>An Systemen mit nur 16 oder 256 Farben könnten einige Farben nicht in ihrer reinen Form verfügbar sein sondern würden gerastert dargestellt werden. An diesen Systemen stellt der Knopf "Voreinstellungen" automatisch eine ungerasterte Farbe ein. </para>
+</sect2>
+
+<sect2
+><title
+>Editor</title>
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Tabulator fügt Leerzeichen ein:</emphasis
+></term
+><listitem
+><para
+>Wenn diese Option aktiviert ist, wird beim Drücken der Tabulator-Taste die entsprechende Anzahl an Leerzeichen eingefügt. Ansonsten wird ein Tabulator-Zeichen eingefügt.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Tabulator Länge:</emphasis
+></term
+><listitem
+><para
+>Kann nach Ihren persönlichen Vorstellungen eingestellt werden. Voreingestellt ist 8. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Automatisch einrücken:</emphasis
+></term
+><listitem
+><para
+>Wenn Sie Eingabe oder Return drücken, wird die Einrückung der vorangehenden Zeile automatisch auch für die nächste Zeile verwendet. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Auswahl automatisch kopieren:</emphasis
+></term
+><listitem
+><para
+>Wenn diese Option aktiviert ist, wird jede Auswahl automatisch in die Zwischenablage kopiert. Das manuelle kopieren in die Zwischenablage entfällt dann. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Zeilenende-Typ:</emphasis
+></term
+><listitem
+><para
+>Sie können auswählen, welchen Zeilenende-Typ Sie zum Speichern bevorzugen. Der voreingestellte Wert ist die allgemein übliche Auswahl auf dem verwendeten Betriebssystem. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Verwendung der lokalen Codetabelle:</emphasis
+></term
+><listitem
+><para
+>Zum Anzeigen ausländischer Zeichen. Ändern Sie diese Option, wenn ausländische Zeichen nicht korrekt angezeigt werden. </para
+></listitem
+></varlistentry>
+</variablelist>
+</sect2>
+
+<sect2
+><title
+>Vergleich und Zusammenführung</title>
+<para
+>Beim Vergleichen von Dateien versucht &kdiff3; zuerst, alle vollständig identischen Zeilen in den Quelldateien zu finden. Nur während diesem ersten Schritt können "weiße" Zeichen ignoriert werden. Der zweite Schritt vergleicht jede Zeile. In diesem Schritt werden "weiße" Zeichen nicht ignoriert. Auch beim Zusammenführen werden "weiße" Zeichen nicht ignoriert. </para>
+
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Wagenrücklaufzeichen anzeigen:</emphasis
+></term
+><listitem
+><para
+>Manche Editoren (auf manchen Systemen) speichern ein Wagenrücklaufzeichen '\r' und einen Zeilenvorschub '\n' am Ende einer Zeile, andere wiederum speichern nur einen Zeilenvorschub '\n'. Üblicherweise ignoriert &kdiff3; das Wagenrücklaufzeichen, aber dann könnten Dateien mit unterschiedlichen Größen im Seite-an-Seite-Vergleich identisch aussehen, obwohl sie unterschiedlich sind. Wenn diese Option aktiviert ist, werden Wagenrücklaufzeichen sichtbar gemacht, jedoch wie ein "weißes" Zeichen behandelt. Während dem Zusammenführen muss diese Option deaktiviert sein. In der Voreinstellung ist dies deaktiviert.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Zahlen ignorieren:</emphasis
+></term
+><listitem
+><para
+>In der Voreinstellung ist diese Option deaktiviert. Im ersten Teil der Analyse werden Zahlen und zugehörige Zeichen ('0'-'9', '.', '-') ignoriert. Im Ergebnis werden die Unterschiede dennoch angezeigt, aber sie werden wie "weiße" Zeichen behandelt. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Ignoriere C/C++ Kommentare:</emphasis
+></term
+><listitem
+><para
+>In der Voreinstellung ist diese Option deaktiviert. Änderungen in Kommentaren werden wie Änderungen in "weißen" Zeichen behandelt. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Groß-/Kleinschreibung ignorieren:</emphasis
+></term
+><listitem
+><para
+>In der Voreinstellung ist diese Option deaktiviert. Underschiede in einzelnen Zeichen (wie z. B. 'A' und 'a') werden wie Unterschiede in "weißen" Zeichen behandelt. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Vorverarbeitungsbefehl:</emphasis
+></term
+><listitem
+><para
+>Siehe <link linkend="preprocessors"
+>nächster Abschnitt</link
+>. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Vorverarbeitungsbefehl nur für Zeilenabgleich:</emphasis
+></term
+><listitem
+><para
+>Siehe <link linkend="preprocessors"
+>nächster Abschnitt</link
+>. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Aufwändig suchen (langsamer):</emphasis
+></term
+><listitem
+><para
+>Intensiv nach noch kleineren Unterschieden suchen. Die Option ist in der Voreinstellung aktiviert. Sie ist effektiv bei komplizierten und großen Dateien, aber langsam bei sehr großen Dateien. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Automatisch-Weiterspringen-Verzögerung (ms):</emphasis
+></term
+><listitem
+><para
+>Im Automatisch-Weiterspringen-Modus bestimmt diese Einstellung, wie lange das Ergebnis der Auswahl angezeigt wird, bevor zum nächsten ungelösten Konflikt weitergesprungen wird. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>"Weiße" Zeichen Autoauswahl bei 2/3 Dateien:</emphasis
+></term
+><listitem
+><para
+>Löst automatische alle Konflikte in "weißen" Zeichen indem die gewählte Datei als Quelle benutzt wird. (Voreingestellt ist manuelle Auswahl.) Das ist nützlich, wenn "weiße" Zeichen in vielen Dateien weniger wichtig sind. Wenn Sie dies nur von Zeit zu Zeit benötigen, dann nutzen Sie besser die Funktionen "Wähle A/B/C für alle ungelösten "weißen" Konflikte" aus dem Zusammenführen-Menü. Beachten Sie, dass die Automatische Auswahl auch Konflikte in Zahlen oder Kommentaren betrifft, wenn die Optionen "Zahlen ignorieren" oder "Ignoriere C/C++-Kommentare" aktiviert sind. </para
+></listitem
+></varlistentry>
+</variablelist>
+
+</sect2>
+
+<sect2
+><title
+>Verzeichnis-Zusammenführung</title>
+<para
+>Diese Optionen werden im Kapitel zum Scannen von Ordnern und Durchführen einer Zusammenführung behandelt. Schauen Sie für Details unter <link linkend="dirmergeoptions"
+>Dokumentation zum Verzeichnis-Vergleich und Zusammenführung</link
+> nach. </para
+><para
+>Es gibt hier dennoch eine Option die auch beim Speichern von einzelnen Dateien relevant ist: </para>
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Sicherungskopie erstellen (.orig):</emphasis
+></term
+><listitem
+><para
+>Wenn eine Datei gespeichert wird und bereits eine ältere Version existiert, dann wird der Originalversion das Suffix ".orig" angehängt. Wenn bereits eine solche Backupdatei mit dem Suffix ".orig" existiert, wird diese ohne weitere Sicherung gelöscht. </para
+></listitem
+></varlistentry>
+</variablelist>
+</sect2>
+
+<sect2
+><title
+>Regional- und Spracheinstellungen</title>
+  <variablelist>
+    <varlistentry
+><term
+><emphasis
+>Sprache:</emphasis
+></term
+><listitem
+><para
+>Passt die Sprache der Benutzeroberfläche an. Das Ändern dieser Option betrifft nicht das aktuell laufende Programm. Sie müssen &kdiff3; beenden und neu starten, damit die Änderung aktiv wird. (Diese Option ist in der KDE-Version von &kdiff3; nicht verfügbar, weil die Sprache dort global über das Kontrollzentrum eingestellt wird.) </para
+></listitem
+></varlistentry>
+    <varlistentry
+><term
+><emphasis
+>Die gleiche Kodierung für alles verwenden:</emphasis
+></term
+><listitem
+><para
+>Die folgenden Kodierungseinstellungen können für jeden Eintrag separat eingestellt werden. Wenn man diese Option aktiviert, wird für alle Einträge die obere Einstellung verwendet. </para
+></listitem
+></varlistentry>
+    <varlistentry
+><term
+><emphasis
+>Lokale kodierung:</emphasis
+></term
+><listitem
+><para
+>Über den Auswahlfeldern für die Kodierung erscheint ein kurzer Hinweis, was die lokale Kodierung ist. (Dies kann hier nicht geändert werden und hat für Sie rein informellen Charakter.) </para
+></listitem
+></varlistentry>
+    <varlistentry
+><term
+><emphasis
+>Datei-Kodierung für A/B/C:</emphasis
+></term
+><listitem
+><para
+>Passen Sie die Datei-Kodierung für Quelldateien an. Dies beeinflusst, wie Sonderzeichen behandelt und interpretiertwerden. Da die Kodierung für jede Datei einzeln einstellbar ist, können selbst Dateien mit unterschiedlicher Kodierung verglichen und zusammengeführt werden. </para
+></listitem
+></varlistentry>
+    <varlistentry
+><term
+><emphasis
+>Datei-Kodierung für die Zusammenführen-Ausgaben und zum Speichern:</emphasis
+></term
+><listitem
+><para
+>Wenn Sie eine Datei bearbeitet haben, können Sie hier festlegen, welche Kodierung zum Speichern verwendet werden soll. </para
+></listitem
+></varlistentry>
+    <varlistentry
+><term
+><emphasis
+>Datei-Kodierung für Preprozessor-Dateien:</emphasis
+></term
+><listitem
+><para
+>Wenn Sie Vorverarbeitungsbefehle definieren, könnten sie eventuell nicht mit Ihrem Codec funktionieren. (Z. B. könnten Ihre Dateien 16-Bit Unicode sein, aber der Vorverarbeitungsbefehl kann nur mit 8-Bit ASCII umgehen.) Mit dieser Option kann man die Kodierung der Ausgabe von Vorverarbeitungsbefehelen festlegen. </para
+></listitem
+></varlistentry>
+    <varlistentry
+><term
+><emphasis
+>Rechts-nach-Links-Sprache:</emphasis
+></term
+><listitem
+><para
+>Einige Sprachen werden von Rechts nach Links geschrieben. Wenn diese Option aktiviert ist, zeigt &kdiff3; den Text in Vergleichs- und Zusammenführen-Fenstern von Rechts nach Links an. Wenn Sie &kdiff3; mit der Option "--reverse" starten, wird das gesamte Layout der Programmoberfläche von Rechts nach Links angezeigt. (Dies ist eine Funktion von Qt.) Diese Dokumentation wurde unter der Annahme geschrieben, dass "Rechts-nach-Links Sprache" und umgedrehtes Layout abgeschaltet sind. Wenn Sie diese Optionen verwenden, müssen Sie also Referenzen auf "Rechts" und "Links" entsprechend umkehren. </para
+></listitem
+></varlistentry>
+
+  </variablelist>
+</sect2>
+
+<sect2
+><title
+>Verschiedenes</title>
+<para
+>(Diese Optionen und Aktionen sind in den Menüs oder den Werkzeugleisten zu finden.)</para>
+<variablelist>
+  <varlistentry
+><term
+><emphasis
+>Zeige Zeilennummern:</emphasis
+></term
+><listitem
+><para
+>Sie können wählen, ob in den Quelldateien die Zeilennummern angezeigt werden sollen.</para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Zeige Leerzeichen und Tabulator-Zeichen in Unterschieden:</emphasis
+></term
+><listitem
+><para
+>Manchmal sind sichtbare Leerzeichen und Tabulatoren störend. Sie können die Anzeige dieser Zeichen abschalten.</para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Zeige "weiße" Zeichen:</emphasis
+></term
+><listitem
+><para
+>Schalten Sie dies ab, um Hervorhebungen von Änderungen in "weißen" Zeichen in den Text- oder Übersichtsspalten zu unterdrücken. (Hinweis: Dies gilt auch für Änderungen in Zahlen oder Kommentaren, wenn die Optionen "Zahlen ignorieren" oder "Ignoriere C/C++-Kommentare" aktiviert sind.)</para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Übersichts-Optionen:</emphasis
+></term
+><listitem
+><para
+>Dieses Auswahl ist nur verfügbar, wenn Sie drei Dateien vergleichen. Im normalen Modus werden alle Unterschiede in einer farblich kodierten Übersichts-Spalte angezeigt. Aber manchmal möchten Sie vielleicht nur die Unterschiede zwischen zwei von drei Dateien sehen. Nach Auswahl von "A &lt;-&gt; B", "A &lt;-&gt; C" oder "B &lt;-&gt; C" wird neben der normalen noch eine zweite Übersichts-Spalte mit den benötigten Informationen angezeigt. </para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Zeilenumbruch in Diff-Fenstern:</emphasis
+></term
+><listitem
+><para
+>Aktiviert den Zeilenumbruch in Diff-Fenstern, wenn die Länge einer Zeile die Breite des Fensters überschreitet. </para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Zeige Fenster A/B/C:</emphasis
+></term
+><listitem
+><para
+>Manchmal möchte man den verfügbaren Platz auf dem Bildschirm lieber für lange Zeilen benutzen. Verstecken Sie einfach die weniger wichtigen Fenster. (Diese Option befindet sich im Fenster-Menü.)</para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Ausrichtung der Fensterteilung wechseln:</emphasis
+></term
+><listitem
+><para
+>Ordnet die Vergleichfenster nebeneinander oder übereinander an. Dies kann auch zum Anzeigen von langen Zeilen nützlich sein. (Diese Option befindet sich im Fenster-Menü.) </para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Aktuelle Datei zusammenführen:</emphasis
+></term
+><listitem
+><para
+>Manchmal betrachten Sie die Unterschiede und entscheiden sich dann unvermittelt, die Dateien zusammenzuführen. <inlinemediaobject
+><imageobject
+><imagedata fileref="merge_current.png" format="PNG"/></imageobject
+></inlinemediaobject
+>"Aktuelle Datei zusammenführen" im Zusammenführen-Menü funktioniert auch dann, wenn Sie nur zwei Dateien vergleichen. Ein einfacher Klick startet die Zusammenführung und benutzt den Dateinamen der letzten Quelldatei als voreingestellten Namen für die Ausgabedatei. (Wenn diese Funktion benutzt wird, um das Zusammenführen erneut zu starten, dann wird der Name der zuletzt benutzten Ausgabedatei beibehalten.)</para
+></listitem
+></varlistentry>
+</variablelist>
+</sect2>
+
+<sect2 id="shortcuts"
+><title
+>Kurzbefehle festlegen</title>
+<para
+>Zur Zeit unterstützt nur die KDE-Version benutzerdefinierbare Kurzbefehle (Menü Einstellungen->Kurzbefehle festlegen...) </para>
+</sect2>
+</sect1>
+
+<sect1 id="preprocessors"
+><title
+>Vorverarbeitungsbefehle:</title>
+<para
+>KDiff3 unterstützt zwei Vorverarbeitungsbefehle. </para
+><para>
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Vorverarbeitungsbefehl:</emphasis
+></term
+><listitem
+><para
+>Beim Lesen einer Datei wird sie zuerst diesem externen Kommando übergeben. In &kdiff3; wird dann die Ausgabe des Kommandos sichtbar, und nicht die Datei selbst. Sie können Ihren eigenen Präprozessor schreiben, der genau Ihren Ansprüchen entspricht. Sie können diese Funktion z. B. zum herausschneiden störender Teile oder zum korrigieren der Einrückung verwenden. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Vorverarbeitungsbefehl nur für Zeilenabgleich:</emphasis
+></term
+><listitem
+><para
+>Beim Lesen einer Datei wird sie zuerst diesem externen Kommando übergeben. Wenn auch ein normaler Vorverarbeitungsbefehl angegeben wurde (siehe oben), dann ist die Ausgabe des Befehls die Eingabe dieses Vorverarbeitungsbefehls. Die Ausgabe des Kommandos wird nur beim Zeilenabgleich verwendet. Sie können Ihren eigenen Präprozessor schreiben, der genau Ihren Ansprüchen entspricht. Jede Eingabe-Zeile muss eine zugehörige Ausgabe-Zeile haben. </para
+></listitem
+></varlistentry>
+</variablelist>
+</para>
+<para
+>Der Gedanke dahinter ist, dem Anwender mehr Flexibilität beim Einrichten der Diff-Ergebnisse zu ermöglichen. Doch dafür wird ein externes Programm benötigt, und die meisten Anwender möchten das nicht selbst programmieren. Die Gute Nachricht ist allerdings, dass in dem meisten Fällen <command
+>sed</command
+> oder <command
+>perl</command
+> vollkommen ausreichen. </para>
+<para
+>Beispiel: Ein einfacher Testfall. Wie nehmen eine Datei a.txt (6 Zeilen):<screen>
+      aa
+      ba
+      ca
+      da
+      ea
+      fa
+</screen
+> Und eine Datei b.txt (3 Zeilen): <screen>
+      cg
+      dg
+      eg
+</screen
+>  Ohne Preprozessor würden die folgenden Zeilen nebeneinander stehen: <screen>
+      aa - cg
+      ba - dg
+      ca - eg
+      da
+      ea
+      fa
+</screen
+> Dies ist allerdings nicht das gewünschte Ergebnis, weil der erste Buchstabe die interessante Information darstellt. Um den Suchalgorythmus beim Abgleich zu unterstützen, ignorieren wir den zweiten Buchstaben. Dazu kann folgender Zeilen-Preprozessor verwendet werden, der "g" durch "a" ersetzt: <screen>
+   <command
+>sed</command
+> 's/g/a/'
+</screen
+> Mit diesem Kommando würde das Ergebnis so aussehen: <screen>
+      aa
+      ba
+      ca - cg
+      da - dg
+      ea - eg
+      fa
+</screen
+>  Programmintern "sieht" der Vergleichsalgorythmus die Dateien erst nach dem Durchlauf des Zeilen-Preprozessors, auf dem Bildschirm jedoch erscheinen die Dateien unverändert. (Der normale Preprozessor würde auch die Daten auf dem Bildschirm ändern.) </para>
+
+<sect2 id="sedbasics"
+><title
+><command
+>sed</command
+>-Grundlagen</title>
+<para
+>Dieser Abschnitt führt Sie nur in einige sehr grundlegende Funktionen von <command
+>sed</command
+> ein. Weiterführende Informationen finden Sie unter <ulink url="info:/sed"
+>info:/sed</ulink
+> oder <ulink url="http://www.gnu.org/software/sed/manual/html_mono/sed.html"
+>http://www.gnu.org/software/sed/manual/html_mono/sed.html</ulink
+>. Eine vorkompilierte Version für Windows finden Sie unter <ulink url="http://unxutils.sourceforge.net"
+>http://unxutils.sourceforge.net</ulink
+>. Beachten Sie, dass die folgenden Beispiele voraussetzen, dass das Kommando <command
+>sed</command
+> sich in einem Ordner in der PATH-Variable befindet. Falls das nicht der Fall sein sollte, müssen Sie den vollständigen Pfad zu <command
+>sed</command
+> angeben. Außerdem nutzen die Beispiele einfache Hochkommas ('), die allerdings unter Windows nicht funktionieren. Unter Windows müssen Sie doppelte Hochkommas (") verwenden. </para>
+<para
+>In diesem Kontext wird nur das <command
+>sed</command
+>-Substitute-Kommando benutzt: <screen>
+   <command
+>sed</command
+> 's/<replaceable
+>REGEXP</replaceable
+>/<replaceable
+>ERSATZ</replaceable
+>/<replaceable
+>SCHALTER</replaceable
+>'
+</screen
+> Bevor Sie in KDiff3 ein neues Kommando benutzen, sollten Sie es zuerst in der Konsole testen. Hier kann der <command
+>echo</command
+>-Befehl sehr hilfreich sein. Beispiel: <screen>
+   <command
+>echo</command
+> abrakadabra | <command
+>sed</command
+> 's/a/o/'
+   -> obrakadabra
+</screen
+> Dieses Beispiel zeigt ein einfaches <command
+>sed</command
+>-Kommando, das das erste Vorkommen von "a" durch "o" ersetzt. Wenn Sie alle Vorkommen ersetzen möchten, müssen Sie den Schalter "g" benutzen: <screen>
+   <command
+>echo</command
+> abrakadabra | <command
+>sed</command
+> 's/a/o/g'
+   -> obrokodobro
+</screen
+> Das "|"-Symbol ist das Pipe-Kommando, es übergibt die Ausgabe des ersten Kommandos an die Eingabe des folgenden Kommando. Wenn Sie Ihr <command
+>sed</command
+>-Kommando mit einer längeren Datei testen möchten, dann können Sie unter Unix <command
+>cat</command
+> und unter Window <command
+>type</command
+> dazu benutzen. <command
+>sed</command
+> wird die Ersetzung in jeder Zeile der Datei durchführen. <screen
+><command
+>cat</command
+> <replaceable
+>dateiname</replaceable
+> | <command
+>sed</command
+> <replaceable
+>optionen</replaceable
+>
+</screen>
+</para>
+</sect2>
+<sect2 id="sedforkdiff3"
+><title
+>Beispielanwendungen von <command
+>sed</command
+> in KDiff3</title>
+<sect3
+><title
+>Ignorieren weiterer Kommentartypen</title>
+<para
+>Zur Zeit unterstützt KDiff3 nur C/C++-Kommentare. Mit Hilfe des Vorverarbeitungsbefehl nur für Zeilenabgleich können Sie auf andere Kommentar-Arten unterstützen. Dafür wandeln Sie diese in C/C++-Kommentare um. Beispiel: Um Kommentare zu ignorieren, die mit "#" beginnen, würden Sie diese zu "//" umwandeln. Außerdem muss natürlich die Option "C/C++-Kommentare ignorieren" aktiviert sein damit dies etwas bewirkt. Ein passendes Kommando für den Vorverarbeitungsbefehl nur für Zeilenabgleich wäre zum Beispiel: <screen>
+   <command
+>sed</command
+> 's/#/\/\//'
+</screen
+> Weil das Zeichen "/" für <command
+>sed</command
+> ein Sonderzeichen ist, muss jedem "/" ein "\" vorangestellt werden. Manchmal wird dies benötigt, um einem Sonderzeichen die besondere Bedeutung zu "entziehen". Außerdem sind die einfachen Anführungszeichen (') vor und hinter dem Ersetzungskommando wichtig, weil die Shell sonst versucht, einige der Zeichen wie '#', '$' oder '\' zu ersetzen bevor sie an <command
+>sed</command
+> weitergereicht werden. Unter Windows müssen Sie doppelte Anführungszeichen verwenden ("). Windows ersetzt Zeichen wie '%' grundsätzlich, hier müssen Sie eventuell ein wenig experimentieren. </para>
+</sect3>
+<sect3
+><title
+>Diff ohne Beachtung der Groß-/ Kleinschreibung</title>
+<para
+>Verwenden Sie diesen Vorverarbeitungsbefehl für Zeilenabgleich um die Eingabe in Großbuchstaben umzuwandeln: <screen>
+   <command
+>sed</command
+> 's/\(.*\)/\U\1/'
+</screen
+> Das ".*" ist ein ergulärer Ausdruck der auf jede Zeichenkette passt und in diesem Zusammenhang daher alle Zeichen in einer Zeile erfasst. Die "\1" in der Ersetzungs-Zeichenkette bezieht sich auf den gefundenen Text im ersten Klammernpaar. Das "\U" wandelt den gefundenen Text in Großbuchstaben um. </para>
+</sect3>
+
+<sect3
+><title
+>Ignorieren von Schlüsselwörtern aus Versionskontrolle-Systemen</title>
+<para
+>CVS und andere Versionskontrolle-Systeme verwenden einige Schlüsselwörter um automatisch erzeugte Zeichenketten einzufügen (<ulink url="info:/cvs/Keyword substitution"
+>info:/cvs/Keyword substitution</ulink
+>). Alle folgen dem selben Muster "$SCHLÜSSELWORT erzeugter Text$". Nun wird also ein Vorverarbeitungsbefehl für Zeilenabgleich benötigt, der den automatisch erzeugten Text entfernt: <screen>
+   <command
+>sed</command
+> 's/\$\(Revision\|Author\|Log\|Header\|Date\).*\$/\$\1\$/'
+</screen
+> Das "\|" trennt die möglichen Schlüsselwörter. Sie können die Liste nach Bedarf ändern. Das "\" vor dem "$" ist nötig, weil "$" ein Sonderzeichen ist und "Ende der Zeile" bedeuten würde. </para>
+<para
+>Während Sie mit <command
+>sed</command
+> experimentieren, beginnen Sie vielleicht, es zu verstehen und vielleicht mögen Sie diese regulären Ausdrücke sogar. Sie sind sehr nützlich weil es viele Programme gibt, die sehr ähnliche Dinge unterstützen. </para>
+</sect3>
+
+<sect3
+><title
+>Ignorieren von Zahlen</title>
+<para
+>Das Ignorieren von Zahlen ist eigentlich eine bereits eingebaute Funktion in KDiff3. Aber sie ist gut als Beispiel für einen weiteren Vorverarbeitungsbefehl für Zeilenabgleich geeignet. <screen>
+   <command
+>sed</command
+> 's/[0123456789.-]//g'
+</screen
+> Jedes Zeichen zwischen '[' und ']' ist ein Treffer, und jeder Treffer wird durch nichts ersetzt, also quasi gelöscht. </para>
+</sect3>
+
+<sect3
+><title
+>Ignorieren von bestimmten Spalten</title>
+<para
+>Manchmal ist ein Text nach strengen Regeln formatiert und enthält Spalten, die Sie grundsätzlich ignorieren möchten, und andere Spalten, die Sie für die Analyse heranziehen möchten. Im folgenden Beispiel werden die ersten fünf Spalten (Zeichen) ignoriert, dann 10 Spalten beibehalten, dann wieder fünf Spalten ignoriert und der Rest der Zeile wird beibehalten. <screen>
+   <command
+>sed</command
+> 's/.....\(..........\).....\(.*\)/\1\2/'
+</screen
+> Jeder Punkt '.' passt auf genau ein Zeichen. Die "\1" und "\2" in der Ersetzungs-Zeichenkette beziehen sich auf den gefundenen Text im ersten und zweiten Klammernpaar und markieren so den beizubehaltenden Text. </para>
+</sect3>
+
+<sect3
+><title
+>Mehrere Ersetzungen kombinieren</title>
+<para
+>Manchmal möchten Sie vielleicht mehrere Ersetzungen auf einmal durchführen. Dann können Sie das Semikolon ';' benutzen, um die Ersetzungen voneinander zu trennen. Beispiel: <screen
+><command
+>echo</command
+> abrakadabra | <command
+>sed</command
+> 's/a/o/g;s/\(.*\)/\U\1/'
+   -> OBROKODOBRO
+</screen>
+</para>
+</sect3>
+
+<sect3
+><title
+><command
+>perl</command
+> statt <command
+>sed</command
+> benutzen</title>
+<para
+>Statt <command
+>sed</command
+> können Sie auch etwas anderes wie z. B. <command
+>perl</command
+> verwenden. <screen>
+   <command
+>perl</command
+> -p -e 's/<replaceable
+>REGEXP</replaceable
+>/<replaceable
+>ERSETZUNG</replaceable
+>/<replaceable
+>SCHALTER</replaceable
+>'
+</screen
+> Allerdings sind bei <command
+>perl</command
+> einige Details anders. Wo <command
+>sed</command
+> "\(" und "\)" benötigt, braucht <command
+>perl</command
+> nur noch "(" und ")" ohne das vorangestellte '\'. Beispiel: <screen
+><command
+>sed</command
+> 's/\(.*\)/\U\1/'
+   <command
+>perl</command
+> -p -e 's/(.*)/\U\1/'
+</screen>
+</para>
+</sect3>
+</sect2>
+
+<sect2
+><title
+>Reihenfolge der Ausführung von Preprozessoren</title>
+<para
+>Die Daten werden durch interne und externe Preprozessoren in dieser Reihenfolge durchgeschleust: </para>
+<itemizedlist>
+<listitem
+><para
+>Normaler Preprozessor,</para
+></listitem>
+<listitem
+><para
+>Vorverarbeitungsbefehl für Zeilenabgleich,</para
+></listitem>
+<listitem
+><para
+>Groß-/Kleinschreibung ignorieren (Umwandlung in Großbuchstaben),</para
+></listitem>
+<listitem
+><para
+>Erkennung von C/C++ Kommentaren,</para
+></listitem>
+<listitem
+><para
+>Zahlen ignorieren,</para
+></listitem>
+<listitem
+><para
+>"weiße" Zeichen ignorieren</para
+></listitem>
+</itemizedlist>
+<para
+>Die Daten nach dem normalen Preprozessor werden für die Anzeige und zum Zusammenführen beibehalten. Die weiteren Operationen verändern nur die Daten, die der Zeilenabgleich-Algorythmus "sieht". </para
+><para
+>Beachten Sie: In seltenen Fällen wenn Sie einen normalen Preprozessor verwenden, sieht der Zeilenabgleich-Preprozessor die Ausgabe des normalen Preprozessors als Eingabe. </para>
+</sect2>
+
+<sect2
+><title
+>Warnung</title>
+<para
+>Die Preprozessor-Kommandos sind sehr nützlich, aber wie bei jeder Funktion, die Text verändert oder Unterschiede versteckt, können Sie versehentlich bestimmte Unterschiede nicht bemerken und im schlimmsten Fall wichtige Daten zerstören. </para
+><para
+>Beim Zusammenführen werden Sie daher von KDiff3 gewarnt, falls ein Preprozessor-Kommando benutzt wurd. Sie werden gefragt, ob dieser deaktiviert werden soll oder nicht. Sie werden allerdings nicht gewarnt, wenn ein Vorverarbeitungsbefehl für den Zeilenabgleich benutzt wird. Das Zusammenführen ist nicht abgeschlossen bevor nicht alle Konflikte aufgelöst wurden. Falls Sie "Weiße" Zeichen anzeigen deaktiviert haben, dann sind die vom Zeilenabgleich-Preprozessor entfernten Unterschiede ebenfalls unsichtbar. Wenn der Knopf "Speichern" während dem Zusammenführen deaktiviert bleibt (durch nicht aufgelöste Konflikte), dann aktivieren Sie "weiße" Zeichen anzeigen. Falls diese weniger wichtigen Unterschiede nicht zusammengeführt werden sollen, können Sie auch "Wähle [A|B|C] für alle ungelöste Konflikte" im Menü Zusammenführen-Menü auswählen. </para>
+</sect2>
+</sect1>
+</chapter>
+
+
+<chapter id="dirmerge"
+><title
+>Mit &kdiff3; Ordner Vergleichen und Zusammenführen</title>
+<sect1 id="dirmergeintro"
+><title
+>Einführung</title>
+<para
+>Oftmals müssen Programmierer in einem Ordner viele Dateien bearbeiten. Aus diesem Grund können Sie mit &kdiff3; komplette Ordner rekursiv vergleichen und zusammenführen. </para
+><para
+>Auch wenn das Vergleichen und Zusammenführen von ganzen Ordnern recht naheliegend und einleuchtend erscheint, gibt es einige Details, die Sie wissen sollten. Der wichtigste Punkt ist natürlich, dass sich jeder Durchlauf dieser Funktion gleich auf viele Dateien auswirkt. Wenn Sie keine Sicherungskopie der Originaldaten haben, könnte es schwer oder gar unmöglich werden, den Originalstand wiederherzustellen. Bevor Sie das Zusammenführen starten, sollten Sie also sicherstellen, dass Ihre Daten gesichert sind und das Sie alles rückgängig machen können. Ob Sie ein Archiv erstellen oder ein System zur Versionskontrolle benutzen, ist Ihre Entscheidung; selbst erfahrene Programmierer und Integratoren benötigen hin und wieder die alten Quelltexte. Bitte beachten Sie auch, dass selbst ich (der Autor von &kdiff3;) keine Garantie geben kann, dass das Programm fehlerlos ist. Entsprechend der GNU-GPL gibt es für dieses Programm KEINE GARANTIE. Also denken Sie daran: </para>
+<blockquote
+><para>
+   <emphasis
+>Irren ist menschlich, aber um etwas wirklich durcheinander zu bringen braucht man schon einen Computer ;-)</emphasis>
+</para
+></blockquote>
+<para
+>All diese Dinge kann &kdiff3; für Sie erledigen: &kdiff3;... </para>
+<itemizedlist>
+     <listitem
+><para
+>... liest und vergleicht rekursiv zwei oder drei Ordner,</para
+></listitem>
+     <listitem
+><para
+>... behandelt symbolische Links besonders vorsichtig,</para
+></listitem>
+     <listitem
+><para
+>... lässt Sie Ihre Dateien per Mausklick durchsuchen,</para
+></listitem>
+     <listitem
+><para
+>... macht für jedes Objekt einen Vorschlag zum Zusammenführen; Sie können den Vorschlag vor dem Start anpassen,</para
+></listitem>
+     <listitem
+><para
+>... kann das Zusammenführen simulieren und zeigt die simulierten Änderungen an, ohne sie wirklich durchzuführen,</para
+></listitem>
+     <listitem
+><para
+>... führt letztendlich die Zusammenführung durch und lässt Sie (wenn nötig) eingreifen,</para
+></listitem>
+     <listitem
+><para
+>... führt ausgewählte Aktionen entweder mit allen (F7-Taste), oder nur mit den ausgewählten Objekten (F6-Taste) aus,</para
+></listitem>
+     <listitem
+><para
+>... setzt das Zusammenführen nach einem manuellen Eingriff fort (F7-Taste),</para
+></listitem>
+     <listitem
+><para
+>... erzeugt optional Sicherungskopien mit der Erweiterung".orig",</para
+></listitem>
+     <listitem
+><para
+>...</para
+></listitem>
+</itemizedlist>
+</sect1>
+
+<sect1 id="startingdirmerge"
+><title
+>Ordnervergleich oder -zusammenführung starten</title>
+<para
+>Dies ist dem Vergleichen und Zusammenführen von einzelnen Dateien sehr ähnlich. Sie müssen nur Ordner auf der Kommandozeile oder im "Datei öffnen"-Dialog angeben. </para>
+<sect2
+><title
+>Vergleichen/Zusammenführen von zwei Ordnern: </title>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>Ordner1 Ordner2</replaceable>
+   <command
+>kdiff3</command
+> <replaceable
+>Ordner1 Ordner2</replaceable
+> -o <replaceable
+>Zielordner</replaceable
+>
+</screen>
+<para
+>Wenn kein Zielordner angegeben wurde, benutzt &kdiff3; <replaceable
+>Ordner2</replaceable
+>. </para>
+</sect2>
+
+<sect2
+><title
+>Vergleichen/Zusammenführen von drei Ordnern: </title>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>Ordner1 Ordner2 Ordner3</replaceable>
+   <command
+>kdiff3</command
+> <replaceable
+>Ordner1 Ordner2 Ordner3</replaceable
+> -o <replaceable
+>Zielordner</replaceable
+>
+</screen>
+<para
+>Wenn drei Ordner zusammengeführt werden, dann wird <replaceable
+>Ordner1</replaceable
+> als Basis benutzt. Wenn kein Zielordner angegeben wurde, verwendet &kdiff3; <replaceable
+>Ordner3</replaceable
+> als Zielordner. </para>
+
+<para
+>Beachten Sie, dass nur der Vergleich von Ordnern automatisch startet, nicht das Zusammenführen. Um das Zusammenführen zu starten, müssen Sie den entsprechenden Menüeintrag auswählen oder die F7-Taste drücken. (Weitere Details folgen.) </para>
+</sect2>
+</sect1>
+
+<sect1 id="dirmergevisible"
+><title
+>Sichtbare Informationen</title>
+<para
+>Während dem Einlesen der Ordner informiert Sie ein kleines Nachrichtenfenster über den aktuellen Fortschritt. Wenn Sie das Scannen der Ordner abbrechen, werden nur die Dateien aufgelistet, die bis dahin verglichen wurden. </para
+><para
+>Wenn das Scannen der Ordner abgeschlossen ist, zeigt &kdiff3; ein Listenfenster mit den Ergebnissen auf der linken Seite, ... </para>
+<screenshot
+><mediaobject>
+<imageobject
+><imagedata fileref="dirbrowser.png" format="PNG"/></imageobject
+> <!--alt="Image of the directory browser."-->
+</mediaobject
+></screenshot>
+<para
+>... und den Details zu dem jeweils ausgewählten Objekt auf der rechten Seite: </para>
+<screenshot
+><mediaobject>
+<imageobject
+><imagedata fileref="iteminfo.png" format="PNG"/></imageobject>
+   <!--alt="Image with information about the selected item."-->
+</mediaobject
+></screenshot>
+
+<sect2 id="name"
+><title
+>Die Spalte "Name"</title>
+<para
+>Jede Datei und jeder Ordner der während dem Scan gefunden wurde, wird hier in einem Baum dargestellt. Sie können ein Objekt mit einem einfachen Mausklick auswählen. </para
+><para
+>Die Ordnerstruktur wird normalerweise zusammengeklappt dargestellt. Sie können einen Ordner aufklappen, indem Sie auf das "+"/"-" klicken, oder auf das Objekt doppelklicken oder indem Sie die Pfeiltasten für links/rechts benutzen. Das "Verzeichnis"-Menü enthält zwei Funktionen "Alle Unterverzeichnisse einklappen" und "Alle Unterverzeichnisse aufklappen" mit denen Sie alle Ordner auf- bzw. zuklappen können. </para
+><para
+>Wenn Sie auf eine Datei doppelklicken, wird der Dateivergleich gestartet und es erscheint ein Vergleichsfenster. </para>
+<para
+>Das Symbol in der Spalte "Name" spiegelt den Dateityp im ersten Ordner ("A") wieder. Diese Typen sind möglich: </para>
+<itemizedlist>
+     <listitem
+><para
+>Normale Datei</para
+></listitem>
+     <listitem
+><para
+>Normaler Ordner (Ordner-Symbol)</para
+></listitem>
+     <listitem
+><para
+>Link auf eine Datei (Datei-Symbol mit einem Link-Pfeil)</para
+></listitem>
+     <listitem
+><para
+>Link auf einen Ordner (Ordner-Symbol mit einem Link-Pfeil)</para
+></listitem>
+</itemizedlist>
+<para
+>Wenn der Dateityp in den anderen Ordnern unterschiedlich ist, dann ist dies in den Spalten A/B/C und in dem Detailfenster zu dem ausgewählten Objekt sichtbar. In einem solchen Fall kann die Zusammenführ-Aktion nicht automatisch gewählt werden. Wenn das Zusammenführen gestartet wird, werden Sie über Probleme dieser Art nochmals informiert. </para>
+</sect2>
+
+<sect2 id="coloring"
+><title
+>Die Spalten A/B/C und das Farbschema</title>
+<para
+>Wie in dem obigen Bild zu sehen ist, werden in den Spalten A/B/C die Farben Rot, Grün, Gelb und Schwarz verwendet. </para>
+<itemizedlist>
+     <listitem
+><para
+>Schwarz: Dieser Eintrag existiert nicht in diesem Ordner.</para
+></listitem>
+     <listitem
+><para
+>Grün: Neuester Eintrag.</para
+></listitem>
+     <listitem
+><para
+>Gelb: Älter als grün, neuer als rot.</para
+></listitem>
+     <listitem
+><para
+>Rot: Ältester Eintrag.</para
+></listitem>
+</itemizedlist>
+<para
+>Bei identischen Einträgen ist die Farbe allerdings auch identisch, auch wenn das Alter der Einträge unterschiedlich ist. </para
+><para
+>Ordner werden als identisch betrachtet, wenn ihr gesamter Inhalt identisch ist. Dann haben auch Ordner die gleiche Farbe. Bei Ordnern ist das Alter unerheblich für seine Farbe. </para
+><para
+>Die Idee zu diesem Farbschema basiert auf <ulink url="http://samba.org/cgi-bin/cvsweb/dirdiff"
+>dirdiff</ulink
+>. Die Farben spiegeln die Farben eines Blattes wieder, welches erst grün ist, dann gelb wird und später, wenn es alt ist, rot wird. </para>
+
+</sect2
+><sect2 id="operation"
+><title
+>Die Aktions-Spalte</title>
+<para
+>Nach dem Vergleichen der Ordner schlägt &kdiff3; eine Zusammenführ-Aktion vor. Dieser Vorschlag wird in der Aktions-Spalte angezeigt. Sie können den Vorschlag ändern, indem Sie auf den entsprechenden Eintrag klicken. Daraufhin erscheint ein kleines Menü, in dem Sie eine Aktion auswählen können. (Die häufigsten Aktionen können Sie auch mit der Tastatur auswählen. Strg+1/2/3/4/Entf wählt entsprechend A/B/C/Zusammenführen/Löschen aus.) Die Aktion wird dann während dem Zusammenführen ausgeführt. Welche Aktionen möglich sind, hängt von dem Eintrag und dem aktuellen Zusammenführ-Modus ab. Mögliche Zusammenführ-Modi sind </para>
+<itemizedlist>
+     <listitem
+><para
+>Drei-Ordner-Zusammenführen ("A" wird als die ältere Basis für die beiden anderen herangezogen).</para
+></listitem>
+     <listitem
+><para
+>Zwei-Ordner-Zusammenführen.</para
+></listitem>
+     <listitem
+><para
+>Zwei-Ordner-Synchronisieren-Modus (aktivieren Sie diesen Modus mit der Option "Verzeichnisse Synchronisieren").</para
+></listitem>
+</itemizedlist>
+<para
+>Beim Zusammenführen von drei Ordnern sind diese Aktions-Vorschläge möglich: Wenn für ein Objekt... </para>
+<itemizedlist>
+     <listitem
+><para
+>... alle drei Ordner identisch sind: Kopieren von C</para
+></listitem>
+     <listitem
+><para
+>... A und C identisch sind, aber nicht B: Kopieren von B (oder falls B nicht existiert, löschen des Ziels, falls es existiert)</para
+></listitem>
+     <listitem
+><para
+>... A und B identisch sind, aber nicht C: Kopieren von C (oder falls C nicht existiert, löschen des Ziels, falls es existiert)</para
+></listitem>
+     <listitem
+><para
+>... B und C identisch sind, aber nicht A: Kopieren von A (oder falls A nicht existiert, löschen des Ziels, falls es existiert)</para
+></listitem>
+     <listitem
+><para
+>... nur A existiert: Löschen des Ziels (falls es existiert)</para
+></listitem>
+     <listitem
+><para
+>... nur B existiert: Kopieren von B</para
+></listitem>
+     <listitem
+><para
+>... nur C existiert: Kopieren von C</para
+></listitem>
+     <listitem
+><para
+>... A, B und C nicht identisch sind: Zusammenführen</para
+></listitem>
+     <listitem
+><para
+>... A, B und C nicht den gleichen Dateityp haben (z. B. wenn A ein Ordner und B eine Datei ist): "Fehler: Widersprüchliche Dateitypen". Solange solche fehlerhaften Objekte existieren, kann das Zusammenführen nicht gestartet werden.</para
+></listitem>
+</itemizedlist>
+<para
+>Beim Zusammenführen von zwei Ordnern sind diese Aktions-Vorschläge möglich: Wenn für ein Objekt... </para>
+<itemizedlist>
+     <listitem
+><para
+>... beide Ordner gleich sind: Kopieren von B</para
+></listitem>
+     <listitem
+><para
+>... A existiert, aber nicht B: Kopieren von A</para
+></listitem>
+     <listitem
+><para
+>... B existiert, aber nicht A: Kopieren von B</para
+></listitem>
+     <listitem
+><para
+>... A und B existieren aber nicht identisch sind: Zusammenführen</para
+></listitem>
+     <listitem
+><para
+>... A und B nicht den gleichen Dateityp haben (z. B. wenn A ein Ordner und B eine Datei ist): "Fehler: Widersprüchliche Dateitypen". Solange solche fehlerhaften Objekte existieren, kann das Zusammenführen nicht gestartet werden.</para
+></listitem>
+</itemizedlist>
+<para
+>Der Modus zum Synchronisieren ist aktiv, wenn nur zwei Ordner und kein expliziter Zielordner angegeben wurden und wenn die Option "Verzeichnisse synchronisieren" aktiv ist. Dann wählt &kdiff3; die nötige Aktion aus, damit nachher beide Ordner identisch sind. Wenn für einen Eintrag... </para>
+<itemizedlist>
+     <listitem
+><para
+>... beide Ordner identisch sind: Es wird nichts unternommen.</para
+></listitem>
+     <listitem
+><para
+>... A existiert, aber nicht B: Kopieren von A nach B</para
+></listitem>
+     <listitem
+><para
+>... B existiert, aber nicht A: Kopieren von B nach A</para
+></listitem>
+     <listitem
+><para
+>... A und B existieren, aber nicht identisch sind: Zusammenführen und das Ergebnis in beiden Ordnern speichern. (Der Anwender sieht als sichtbaren Dateinamen für die Ausgabedatei nur B; direkt nach dem Zusammenführen kopiert &kdiff3; B nach A.)</para
+></listitem>
+     <listitem
+><para
+>... A und B nicht den gleichen Dateityp haben (z. B. wenn A ein Ordner und B eine Datei ist): "Fehler: Widersprüchliche Dateitypen". Solange solche fehlerhaften Objekte existieren, kann das Zusammenführen nicht gestartet werden.</para
+></listitem>
+</itemizedlist>
+<para
+>Wenn zwei Ordner zusammengeführt werden und die Option "Neuere Datei statt Zusammenführung auswählen (unsicher)" aktiviert ist, dann untersucht &kdiff3; das Datum der Dateien und schlägt die neuere Datei zum Kopieren vor. Wenn die Dateien unterschiedlich sind, aber das gleiche Datum aufweisen, dann erscheint eine Fehlermeldung "Fehler: Dateien sind unterschiedlich, aber das Datum ist identisch.". Solange solche Fehler nicht beseitigt sind, kann das Zusammenführen der Ordner nicht gestartet werden. </para>
+</sect2>
+
+<sect2 id="status"
+><title
+>Die Status-Spalte</title>
+<para
+>Während dem Zusammenführen wird eine Datei nach der anderen abgearbeitet. Sie Status-Spalte zeigt "Fertig" an, wenn das Zusammenführen erfolgreich war, und entsprechend andere Meldungen, wenn etwas unerwartetes auftrat. Wenn das Zusammenführen abgeschlossen ist, sollten Sie eine letzte Überprüfung vornehmen und nachsehen, ob der Status überall in Ordnung ist. </para>
+</sect2>
+
+<sect2 id="statisticscolulmns"
+><title
+>Die Statistik-Spalte</title>
+<para
+>Wenn im Einrichtungsdialog die Dateivergleichsmethode "Vollständige Analyse" gewählt ist, wird KDiff3 weitere Spalten anzeigen. Diese enthalten die Anzahl ungelöster, gelöster, nicht "weißer" und "weißer" Konflikte. (Die Spalte für gelöste Konflikte wird nur angezeigt, wenn drei Ordner verglichen oder zusammengeführt werden.) </para>
+</sect2>
+
+</sect1>
+
+
+<sect1 id="dothemerge"
+><title
+>Eine Zusammenführung durchführen</title>
+<para
+>Sie können entweder den gerade ausgewählten Eintrag (Datei oder Odner) zusammenführen, oder alle Einträge auf einmal. Wenn Sie alle Zusammenführ-Aktionen ausgewählt haben (auch in allen Unterordnern), können Sie das Zusammenführen starten. </para
+><para
+>Beachten Sie bitte: Wenn Sie keinen Zielordner angegeben haben, dann wird im Drei-Ordner-Zusammenführen-Modus "C" als Ziel benutzt, beim Zwei-Ordner-Zusammenführen wird "B" als Ziel gewählt und beim Synchronisieren wird "A" und/oder "B" als Ziel verwendet. </para
+><para
+>Wenn Sie einen Zielordner ausgewählt haben, prüfen Sie bitte nachher, ob alle Einträge die im Zielordner sein sollten, auch in der Ordnerstruktur angezeigt werden. Es gibt einige Optionen durch die bestimmte Einträge übersprungen werden könnten. Überprüfen Sie diese Optionen um unliebsame Überraschungen zu vermeiden: </para>
+<itemizedlist>
+     <listitem
+><para
+>"Rekursive Verzeichnisse": Wenn diese Option deaktiviert ist, werden keine Dateien in Unterordnern bearbeitet.</para
+></listitem>
+     <listitem
+><para
+>"Datei Muster"/"Datei Anti-Muster": Ein-/ und Ausschließen auf das Muster passender Einträge</para
+></listitem>
+     <listitem
+><para
+>"Finde versteckte Dateien und Verzeichnisse"</para
+></listitem>
+     <listitem
+><para
+>"Nur Unterschiede anzeigen": Dateien die in allen Ordnern identisch sind erscheinen nicht in der Ordnerstruktur, und folglich auch nicht im Zielordner.</para
+></listitem>
+</itemizedlist>
+<para
+>(In der aktuellen Programmversion müssen Sie nach Änderungen an diesen Optionen den Ordner mit der Funktion "Aktualisieren" neu einlesen.) </para
+><para
+>Wenn Sie soweit zufrieden sind ist der Rest einfach. </para
+><para
+>Um alle Einträge zusammenzuführen: Wählen Sie "Verzeichniszusammenführung starten/fortsetzen" im "Verzeichnis"-Menü oder drücken Sie F7 (das Tastenkürzel). Um nur den aktuellen Eintrag zusammenzuführen: Wählen Sie "Aktion des aktuellen Elements ausführen" oder drücken Sie F6. </para
+><para
+>Wenn durch widersprüchliche Dateitypen immer noch ungültige Zusammenführen-Aktionen existieren, erscheint eine Meldung die auf die fehlerhaften Elemente hinweist. Sie können für sie dann eine gültige Aktion auswählen. </para
+><para
+>Wenn Sie alle Einträge zusammenführen, erscheint ein Dialogfenster mit den Optionen "Durchführen", "Simulieren" und "Abbrechen". </para>
+<itemizedlist>
+     <listitem
+><para
+>Wählen Sie "Simulieren" wenn Sie erst sehen möchten was passieren würde, ohne das wirklich Änderungen vorgenommen werden. Sie erhalten dann eine ausführliche Liste aller Aktionen.</para
+></listitem>
+     <listitem
+><para
+>Ansonsten klicken Sie auf "Durchführen" um das Zusammenführen wirklich zu starten.</para
+></listitem>
+</itemizedlist>
+<para
+>&kdiff3; führt dann bestimmte Aktionen mit allen Einträgen durch. Wenn ein manueller Eingriff nötig ist (zusammenführen einer einzelnen Datei), dann öffnet sich ein Zusammenführen-Fenster (<link linkend="dirmergebigscreenshot"
+>beachten Sie das Bildschirmphoto</link
+>). </para
+><para
+>Wenn Sie mit einer Datei fertig sind, wählen Sie erneut "Verzeichniszusammenführung starten/fortsetzen" oder drücken Sie F7. Wenn Sie noch nicht gespeichert haben, erscheint ein entsprechender Dialog. Dann führt &kdiff3; seine Arbeit mit dem nächsten Eintrag fort. </para
+><para
+>Wenn &kdiff3; auf einen Fehler stösst, erscheint eine Nachricht und ausführliche Status-Informationen. Am Schluss der Liste sehen Sie einige Fehlermeldungen, die Ihnen helfen sollen, die Ursache des Problems auszumachen. Wenn Sie das Zusammenführen fortfahren (F7-Taste), lässt &kdiff3; Ihnen die Wahl es erneut zu versuchen, oder den problematischen Eintrag zu überspringen. So haben Sie die Möglichkeit, eine andere Aktion für den Eintrag auszuwählen oder das Problem auf andere Weise zu lösen, bevor Sie mit dem Zusammenführen fortfahren. </para
+><para
+>&kdiff3; informiert Sie mit einem Info-Fenster wenn das Zusammenführen abgeschlossen ist. </para
+><para
+>Falls einige Einträge individuell zusammengeführt wurden, merkt sich &kdiff3; diese Einträge (in der aktuellen Sitzung) und führt sie beim späteren zusammenführen aller Einträge nicht nochmals zusammen. Selbst wenn hier das Zusammenführen übersprungen wurde oder nicht gespeichert wurde, werden diese Einträge als erledigt betrachtet. Nur wenn Sie die Zusammenführen-Aktion ändern, werden diese Einträge erneut zusammengeführt. </para>
+</sect1>
+
+<sect1 id="dirmergeoptions"
+><title
+>Optionen zum Vergleichen und Zusammenführen von Ordnern</title>
+<para
+>Das Einstellungen-Menü von &kdiff3; (Menü "Einstellungen"->"KDiff3 einrichten...") hat nun einen Abschnitt namens "Verzeichnis-Zusammenführung" mit diesen Optionen: </para>
+
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Rekursive Verzeichnisse:</emphasis
+></term
+><listitem
+><para
+>Stellen Sie ein, ob Ordner rekursiv durchsucht werden sollen.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Datei Muster:</emphasis
+></term
+><listitem
+><para
+>Nur Dateien, die auf das angegebene Muster passen, werden im Elementbaum angezeigt. Es können mehrere Muster eingegeben werden. Trennen Sie die Muster mit einem Semikolon ";". Gültige Platzhalter: '*' und '?'. (z. B. "*.cpp;*.h"). Die Voreinstellung ist "*". Ordner müssen nicht diesem Muster entsprechen.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Datei Anti-Muster:</emphasis
+></term
+><listitem
+><para
+>Dateien und Ordner die diesem Muster entsprechen, werden nicht im Elementbaum angezeigt. Es kann mehr als ein Muster eingegeben werden, benutzen Sie das Semikolon ";" als Trennzeichen . Gültige Platzhalter: '*' und '?'. Voreinstellung ist "*.orig;*.o".</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>.cvsignore benutzen:</emphasis
+></term
+><listitem
+><para
+>Ignoriert Dateien, die auch von CVS ignoriert werden würden. Viele autmatisch erzeugte Dateien werden von CVS ignoriert. Der große Vorteil ist, dass dies Ordnerspezifisch mit einer ".cvsignore"-Datei eingestellt werden kann. (Schauen Sie unter <ulink url="info:/cvs/cvsignore"
+>info:/cvs/cvsignore</ulink
+>.)</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Finde versteckte Dateien und Verzeichnisse:</emphasis
+></term
+><listitem
+><para
+>In einigen Dateisystemen haben Dateien ein "Versteckt"-Attribut. In anderen Dateisystemen markiert ein vorangestellter Punkt "." eine Datei als versteckt. Diese Option lässt Sie entscheiden, ob diese Dateien im Elementbaum angezeigt werden sollen oder nicht. Diese Option ist in der Voreinstellung eingeschaltet.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Folge Datei-Verknüpfungen:</emphasis
+></term
+><listitem
+><para
+>Bei Links auf Dateien: Wenn die Option abgeschaltet ist, werden symbolische Verknüpfungen verglichen. Wenn die Option eingeschaltet ist, werden die Dateien verglichen, auf die die Links zeigen. Dies ist in der Voreinstellung deaktiviert.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Folge Verzeichnis-Verknüpfungen:</emphasis
+></term
+><listitem
+><para
+>Bei Links auf Ordner: Wenn die Option abgeschaltet ist, werden die symbolischen Links verglichen. Wenn die Option eingeschaltet ist, werden die Links wie normale Ordner behandelt und rekursiv durchsucht. (Beachten Sie, dass &kdiff3; nicht auf mögliche Rekursionen prüft. Ein Link auf einen Ordner der einen Link auf sich selbst enthält würde zu einer Endlosschleife führen und &kdiff3; stürzt ab.) Diese Option ist in der Voreinstellung abgeschaltet.</para
+></listitem
+></varlistentry
+>   
+   <varlistentry
+><term
+><emphasis
+>Nur Unterschiede anzeigen:</emphasis
+></term
+><listitem
+><para
+>Es werden nur Einträge angezeigt, die Unterschiede aufweisen. Das führt auch dazu, dass identische Dateien beim Zusammenführen nicht in den Zielordner kopiert werden. Falls der Zielordner diese Dateien nicht bereits enthält, fehlen sie nach dem Zusammenführen. (Das Verhalten wird in einer späteren Programmversion wahrscheinlich abgeändert.) Diese Option ist in der Voreinstellung abgeschaltet.</para
+></listitem
+></varlistentry>
+
+   <varlistentry
+><term
+><emphasis
+>Dateivergleichsmethode:</emphasis
+></term
+><listitem
+><para>
+<variablelist
+>            
+   <varlistentry
+><term
+><emphasis
+>Binärvergleich:</emphasis
+></term
+><listitem
+><para
+>Dies ist die voreingestellte Vergleichsmethode. </para
+></listitem
+></varlistentry
+>         
+   <varlistentry
+><term
+><emphasis
+>Vollständige Analyse:</emphasis
+></term
+><listitem
+><para
+>Führt eine vollständige Analyse jeder Datei durch und zeigt die Statistik-Spalten an. (Die Anzahl gelöster, ungelöster, nicht-"weißer" und "weißer" Konflikte.) Die vollständige Analyse ist langsamer als eine einfache binäre Analyse, und wesentlich langsamer, wenn sie auf Dateien angewendet wird, die keinen Text enthalten. (Geben Sie ein entsprechendes Anti-Muster ein.) </para
+></listitem
+></varlistentry
+>         
+   <varlistentry
+><term
+><emphasis
+>Vertraue dem Änderungsdatum (unsicher):</emphasis
+></term
+><listitem
+><para
+>Wenn Sie große Ordner über ein langsames Netzwerk vergleichen, geht es möglicherweise schneller, nur das Änderungsdatum und die Dateigröße zu vergleichen. Dieser Geschwindigkeitsvorteil kostet Sie allerdings ein gewisses Maß an Sicherheit. Bitte mit Vorsicht benutzen. Diese Option ist in der Voreinstellung abgschaltet.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Vertraue der Größe (unsicher):</emphasis
+></term
+><listitem
+><para
+>Ähnlich wie "Vertraue dem Änderungsdatum". Es findet kein echter Vergleich statt. Die Dateien werden als identisch betrachtet, wenn sie gleich groß sind. Das kann z. B. nützlich sein, wenn beim Kopieren das Änderungsdatum verlorengegangen ist. Bitte mit Vorsicht benutzen. Diese Option ist in der Voreinstellung abgschaltet.</para
+></listitem
+></varlistentry>
+</variablelist
+></para
+></listitem
+></varlistentry>
+         
+   <varlistentry
+><term
+><emphasis
+>Verzeichnisse synchronisieren:</emphasis
+></term
+><listitem
+><para
+>Aktiviert den "Synchronisieren"-Modus wenn zwei Ordner verglichen werden und kein Zielordner angegeben wurde. In diesem Modus werden die Vorschläge zum Zusammenführen so ausgewählt, dass nachher beide Ordner identisch sind. Auch die Ergebnisse vom Zusammenführen von Dateien werden in beiden Ordnern gespeichert. Diese Option ist in der Voreinstellung abgeschaltet.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Neuere Datei statt Zusammenführung auswählen (unsicher):</emphasis
+></term
+><listitem
+><para
+>Falls es Unterschiede gibt, wird statt dem Zusammenführen das Kopieren der neueren Datei als Aktion vorgeschlagen. (Dies wird als unsicher betrachtet, denn es wird das Wissen vorausgesetzt, dass die andere Datei nicht auch verändert wurde. Sie sollten dies in jedem Fall prüfen.) Diese Option ist in der Voreinstellung abgeschaltet.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Sicherungskopie erstellen (.orig):</emphasis
+></term
+><listitem
+><para
+>Wenn eine Datei oder ein Ordner durch eine andere ersetzt oder gelöscht wird, dann wird die Originalversion umbenannt und erhält die Erweiterung ".orig". Wenn eine alte Backup-Datei mit der ".orig"-Erweiterung bereits existiert, so wird diese ohne weiteres Backup gelöscht. Das betrifft auch das normale Zusammenführen einzelner Dateien, nicht nur das Zusammenführen ganzer Ordner. Diese Option ist in der Voreinstellung eingeschaltet.</para
+></listitem
+></varlistentry>
+</variablelist>
+</sect1>
+
+<sect1 id="other"
+><title
+>Weitere Funktionen</title>
+<sect2
+><title
+>Verzeichnis &amp; Textfenster teilen sich Hauptfenster</title>
+<para
+>Normalerweise bleibt die Ordner-Zusammenführen-Ansicht währen dem Zusammenführen einzelner Dateien sichtbar; Sie können den Fensterteiler mit der Maus verschieben. Wenn Sie das nicht wollen, können Sie die Option "Verzeichnis &amp; Textfenster teilen sich Hauptfenster" im "Fenster"-Menü abschalten und mittels "Wechsel zwischen Verzeichnis &amp; Textfenster" zwischen den beiden Ansichten umschalten. </para>
+</sect2>
+<sect2
+><title
+>Vergleichen und Zusammenführen einer einzelnen Datei</title>
+<para
+>Wahrscheinlich bevorzugen Sie, eine Datei einfach mittels Doppelklick zu vergleichen. Dennoch gibt es im "Verzeichnis"-Menü auch einen entsprechenden Menüeintrag. Sie können eine einzelne Datei auch direkt zusammenführen, ohne erst das Ordnerzusammenführen starten zu müssen. Dazu benutzen Sie die Funktion "Aktuelle Datei Zusammenführen" aus dem "Zusammenführen"-Menü. Sobald Sie das Ergebnis speichern, wird der Status auf "Erledigt" gesetzt und die Datei wird nicht nochmals zusammengeführt wenn Sie das Ordnerzusammenführen starten. </para
+><para
+>Dieser Status geht allerdings verloren, wenn Sie das Verzeichnis erneut einlesen: "Verzeichnis"-Menü: "Neu einlesen" </para>
+</sect2>
+</sect1>
+</chapter>
+
+<chapter id="misc">
+<title
+>Verschiedene Themen</title>
+<sect1 id="networktransparency">
+<title
+>Netzwerktransparenz via KIO</title>
+<sect2
+><title
+>KIO-Slaves</title>
+<para
+>KDE unterstützt Netzwerktransparenz mit Hilfe von KIO-Slaves. KDiff3 benutzt dies zum Einlesen von Dateien und Ordnern. Auf diese Weise können Sie Dateien und Ordner zum Öffnen angeben, die sich auf lokalen oder entfernten Rechnern befinden. </para
+><para
+>Beispiel: </para
+><para>
+<screen
+><command
+>kdiff3</command
+> test.cpp  ftp://ftp.weitweg.org/test.cpp
+   <command
+>kdiff3</command
+> tar:/home/hacker/archiv.tar.gz/ordner ./ordner
+</screen>
+</para>
+<para
+>Die erste Kommandozeile vergleicht eine lokale Datei mit einer auf einem FTP-Server. Die zweite Kommandozeile vergleicht einen Ordner innerhalb eines komprimierten Archivs mit einem lokalen Ordner. </para
+><para
+>Weitere interessante KIO-Slaves sind: </para>
+<itemizedlist>
+<listitem
+><para
+>Dateien aus dem WWW (http:),</para
+></listitem>
+<listitem
+><para
+>Dateien von FTP (ftp:),</para
+></listitem>
+<listitem
+><para
+>Verschlüsselte Dateiübertragung (fish:, sftp:),</para
+></listitem>
+<listitem
+><para
+>Windows-Ressourcen (smb:),</para
+></listitem>
+<listitem
+><para
+>Lokale Dateien (file:),</para
+></listitem>
+</itemizedlist>
+<para
+>Desweiteren wäre möglich (wenn auch weniger nützlich): </para>
+<itemizedlist>
+<listitem
+><para
+>Man-Pages (man:),</para
+></listitem>
+<listitem
+><para
+>Info-Seiten (info:),</para
+></listitem>
+</itemizedlist>
+</sect2>
+
+<sect2
+><title
+>Wie man eine URL schreibt</title>
+<para
+>Eine URL hat eine andere Syntax als lokale Dateien und Ordner. Ein paar Dinge sollten Sie beachten: </para>
+<itemizedlist>
+<listitem
+><para
+>Ein Pfad kann relativ sein und "." oder ".." enthalten. Das ist mit URLs nicht möglich, diese sind immer absolut. </para
+></listitem
+><listitem
+><para
+>Sonderzeichen müssen maskiert werden. ("#"->"%23", Leerzeichen->"%20", u.s.w.). Zum Beispiel hat eine Datei mit dem Namen "/#foo#" die URL "file:/%23foo%23". </para
+></listitem
+><listitem
+><para
+>Wenn eine URL nicht wie erwartet funktioniert, versuchen Sie erstmal, diese im Konqueror zu öffnen. </para
+></listitem>
+</itemizedlist>
+
+</sect2>
+
+<sect2
+><title
+>Fähigkeiten von KIO-Slaves</title>
+<para
+>Netzwerktransparenz hat auch einen Nachteil: Nicht alle Ressourcen haben die gleichen Fähigkeiten. </para
+><para
+>Manchmal aufgrund des Dateisystems auf dem Server, manchmal durch das verwendete Protokoll. Es folgt eine kurze Liste der Einschränkungen: </para>
+<itemizedlist>
+<listitem
+><para
+>Teilweise werden keine Links unterstützt. </para
+></listitem
+><listitem
+><para
+>Oder es kann nicht unterschieden werden, ob ein Link auf eine Datei oder einen Ordner zeigt. Dann wird immer eine Datei als Link-Ziel angenommen. (ftp:, sftp:). </para
+></listitem
+><listitem
+><para
+>Die Dateigröße kann nicht immer ermittelt werden. </para
+></listitem
+><listitem
+><para
+>Eingeschränkte Unterstützung für Berechtigungen. </para
+></listitem
+><listitem
+><para
+>Es gibt keine Möglichkeit, Berechtigungen oder Veränderungsdatum zu bearbeiten. Daher weichen die Berechtigungen oder das Veränderungsdatum vom Original ab. (Beachten Sie hierzu die Option "Vertraue der Größe".) (Dies ist nur bei lokalen Dateien möglich.) </para
+></listitem>
+</itemizedlist>
+</sect2>
+</sect1>
+
+<sect1 id="kpart">
+<title
+>&kdiff3; als KPart benutzen</title>
+<para
+>&kdiff3; ist ein KPart. Zur Zeit ist die KParts::ReadOnlyPart-Schnittstelle eingebaut. </para
+><para
+>Der hauptsächliche Verwendungszweck ist zur Zeit als Unterschiede-Betrachter in KDevelop. KDevelop startet zuerst immer den eingebauten Unterschiede-Betrachter. Um KDiff3 zu starten, drücken Sie die rechte Maustaste über dem Unterschiede-Betrachter und wählen dann "In KDiff3Part anzeigen" aus dem Kontextmenü. </para
+><para
+>Normalerweise benötigt &kdiff3; zwei vollständige Eingabedateien. Wenn es allerdings als KPart angewendet wird, nimmt &kdiff3; an, dass die Eingabedatei eine Patch-Datei im unified-Format ist. Dann entnimmt &kdiff3; die Namen der Originaldateien aus der Patch-Datei. Mindestens eine der beiden Dateien muss existieren. Dann startet &kdiff3; das Programm <command
+>patch</command
+> um die fehlende Datei wiederherzustellen. </para
+><para
+>Im Konqueror können Sie auf eine Patch-Datei klicken und aus dem Kontextmenü "Vorschau in"-"KDiff3Part" auswählen. Beachten Sie bitte, dass das nicht funktioniert wenn keine der Originaldateien existiert. Ausserdem ist dies unzuverlässig, wenn sich die Originaldateien seit Erzeugung der Patch-Datei verändert haben. </para
+><para
+>Wenn &kdiff3; als Part ausgeführt wird, unterstützt es nur das Vergleichen von zwei Dateien, eine sehr kleine Werkzeugleiste und Menü. Das Zusammenführen oder das Vergleichen von Ordnern wird im KPart-Modus nicht unterstützt. </para>
+</sect1>
+</chapter>
+
+<chapter id="faq">
+<title
+>Fragen und Antworten</title>
+&reporting.bugs; &updating.documentation; <qandaset id="faqlist">
+
+<qandaentry
+><question
+><para
+>Warum heisst das Programm "KDiff3"? </para
+></question
+><answer
+><para
+>Werkzeuge mit dem Namen "KDiff" und "KDiff2" (nun heist es "Kompare") gibt es bereits. Ausserdem weist der Name "KDiff3" bereits darauf hin, dass es Zusammenführen kann wie das Programm "diff3" aus der Diff-Tool-Sammlung. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Warum wurde KDiff3 unter der GPL lizenziert? </para
+></question
+><answer
+><para
+>Ich verwende GPL-Programme schon sehr lange und habe viel gelernt indem ich in die Quellen anderer Programme geschaut habe. Dies ist mein "Dankeschön" an alle Programmierer die diesen Weg gegangen sind oder ihn mal so gehen werden. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Einige Knöpfe und Funktionen fehlen. Was ist passiert? </para
+></question
+><answer
+><para
+>Sie haben das Programm aus den Quellen kompiliert und dem configure-Skript vermutlich nicht den richtigen Prefix zu KDE mitgeteilt. In der Voreinstellung installiert configure in /usr/local, aber dann kann KDE die Ressourcen für die Benutzerschnittstellen nicht finden (z. B. kdiff3ui.rc). In der README-Datei finden Sie nähere Informationen zu diesem Thema. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Häufig werden ähnliche, aber nicht identische Zeilen nebeneinander angezeigt, und manchmal nicht. Warum? </para
+></question
+><answer
+><para
+>Wenn nur die Anzahl an "weißen" Zeichen unterschiedlich ist, werden diese Zeilen erstmal als "identisch" behandelt; wenn jedoch auch nur ein "nicht-weißes" Zeichen unterschiedlich ist, wird die Zeile als "nicht identisch" behandelt. If similar lines appear next to each other, this actually is coincidence but this fortunately is often the case. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Warum müssen alle Konflikte gelöst sein, bevor das Ergebnis gespeichert werden kann? </para
+></question
+><answer
+><para
+>Der Editor merkt sich für jeden Unterschied in den Dateien wo er beginnt und wo er endet. Das ist nötig, um einen Konflikt einfach durch das Klicken in den Quelltext und Auswählen des Knopfes A/B/C lösen zu können. Diese wichtige Information geht allerdings verloren, wenn das Ergebnis einfach als Textdatei gespeichert wird und es ist zuviel Aufwand, extra ein eigenes Dateiformat zu entwerfen, das diese Informationen speichern könnte. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Warum hat der Editor im Ergebnisfenster einer Zusammenführung keine "Rückgängig"-Funktion? </para
+></question
+><answer
+><para
+>Der Aufwand dafür war bisher zu groß. Sie können eine bestimmte Version immer durch das Auswählen einer Quelle A/B/C wiederherstellen. Um grössere Mengen an Text zu bearbeiten sollte ein anderer Editor verwendet werden. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Nach dem entfernen von Text ist plötzlich "&lt;No src line&gt;" erschienen und der Text lässt sich nicht löschen. Was bedeutet das und wie kann das entfernt werden? </para
+></question
+><answer
+><para
+>Der Editor merkt sich für jede gleiche und unterschiedliche Sektion wo sie beginnt und wo sie aufhört. "&lt;No src line&gt;" bedeutet, dass in dieser Sektion nichts mehr existiert, nocht nicht mal mehr das Zeichen für den Zeilenvorschub. Soetwas kann beim automatischen Zusammenführen oder beim Editieren passieren und ist kein Problem, denn der Text erscheint nicht in der gespeicherten Datei. Wenn Sie den Originaltext wiederhaben möchten, klicken Sie in die Sektion und wählen die korrekte Quelle A/B/C aus. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Warum unterstützt KDiff3 keine Syntax-Hervorhebung? </para
+></question
+><answer
+><para
+>KDiff3 benutzt bereits viele Farben zum hervorheben von Unterschieden. Noch mehr Hervorhebung wäre verwirrend und verfehlt den Zweck. Benutzen Sie dafür bitte einen anderen Editor. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Wird Ihre Frage hier nicht beantwortet? </para
+></question
+><answer
+><para
+>Bitte senden Sie mir Ihre Frage zu. Ich bin dankbar für jeden Kommentar. </para
+></answer
+></qandaentry>
+
+</qandaset>
+</chapter>
+
+<chapter id="credits">
+
+<title
+>Dank und Lizenz</title>
+
+<para
+>&kdiff3; - Ein Programm zum vergleichen und zusammenführen von Dateien und Ordnern </para>
+<para
+>Programm-Copyright 2002-2005 Joachim Eibl <email
+>joachim.eibl at gmx.de</email
+> </para>
+<para
+>Viele gute Ideen und Fehlerberichte kamen von Kollegen und vielen Leuten aus dem "Wild Wild Web". Vielen Dank! </para>
+
+<para
+>Dokumentations-Copyright &copy; 2002-2005 Joachim Eibl <email
+>joachim.eibl at gmx.de</email
+> </para>
+
+<para
+>Deutsche Übersetzung: Thomas Reitelbach <email
+>tr@erdfunkstelle.de</email
+></para
+> 
+&underFDL; &underGPL; </chapter>
+
+<appendix id="installation">
+<title
+>Installation</title>
+
+<sect1 id="getting-kdiff3">
+<title
+>Wie Sie &kdiff3; bekommen können</title>
+
+<para
+>Sie können die neueste Version von KDiff3 von der Homepage <ulink url="http://kdiff3.sourceforge.net"
+>http://kdiff3.sourceforge.net</ulink
+> herunterladen. </para
+><para
+>Kdiff3 gibt es auch für andere Plattformen. Besuchen Sie für Details bitte die Homepage. </para>
+
+
+</sect1>
+
+<sect1 id="requirements">
+<title
+>Voraussetzungen</title>
+
+<para
+>Um alle Funktionen von &kdiff3; nutzen zu können, benötigen Sie &kde; 3.1 oder neuer. </para
+><para
+>Informationen, wie Sie KDiff3 auf anderen Plattformen ohne KDE benutzen können finden Sie auf der <ulink url="http://kdiff3.sourceforge.net"
+>Homepage</ulink
+>. </para
+><para
+>Eine Liste der letzten Änderungen finden Sie unter <ulink url="http://kdiff3.sourceforge.net/ChangeLog"
+>http://kdiff3.sourceforge.net/ChangeLog</ulink
+> oder in der Datei "ChangeLog" im Quell-Paket. </para>
+</sect1>
+
+<sect1 id="compilation">
+<title
+>Kompilieren und Installation</title>
+
+<para
+>Um &kdiff3; auf einem System mit &kde; zu kompilieren und installieren, benutzen Sie folgendes Kommando im Basisordner der &kdiff3;-Distribution:</para>
+
+<screen
+><prompt
+>%</prompt
+> <userinput
+><command
+>./configure --prefix=<replaceable
+>kde-dir</replaceable
+></command
+></userinput>
+<prompt
+>%</prompt
+> <userinput
+><command
+>make</command
+></userinput>
+<prompt
+>%</prompt
+> <userinput
+><command
+>make</command
+> install</userinput
+>
+</screen>
+<para
+><replaceable
+>kde-dir</replaceable
+> gibt den Ordner in Ihrem System an, in dem KDE installiert ist. Wenn Sie unsicher sind, finden Sie weitere Details in der README-Datei. </para>
+<para
+>Da &kdiff3; <command
+>autoconf</command
+> und <command
+>automake</command
+> verwendet, sollten Sie keine Probleme beim Kompilieren haben. Sollten dennoch Schwierigkeiten auftreten, berichten Sie bitte auf den &kde;-Mailinglisten davon.</para>
+
+</sect1>
+
+</appendix>
+
+&documentation.index;
+</book>
+
+<!--
+Local Variables:
+mode: sgml
+sgml-minimize-attributes:nil
+sgml-general-insert-case:lower
+sgml-indent-step:0
+sgml-indent-data:nil
+End:
+
+vim:tabstop=2:shiftwidth=2:expandtab
+-->
diff --git a/doc/en/CMakeLists.txt b/doc/en/CMakeLists.txt
new file mode 100644 (file)
index 0000000..1ae7394
--- /dev/null
@@ -0,0 +1 @@
+kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kdiff3)
diff --git a/doc/en/common/1.png b/doc/en/common/1.png
new file mode 100644 (file)
index 0000000..a9ea29c
Binary files /dev/null and b/doc/en/common/1.png differ
diff --git a/doc/en/common/10.png b/doc/en/common/10.png
new file mode 100644 (file)
index 0000000..00ba60f
Binary files /dev/null and b/doc/en/common/10.png differ
diff --git a/doc/en/common/2.png b/doc/en/common/2.png
new file mode 100644 (file)
index 0000000..cc9762a
Binary files /dev/null and b/doc/en/common/2.png differ
diff --git a/doc/en/common/3.png b/doc/en/common/3.png
new file mode 100644 (file)
index 0000000..7e0e4f1
Binary files /dev/null and b/doc/en/common/3.png differ
diff --git a/doc/en/common/4.png b/doc/en/common/4.png
new file mode 100644 (file)
index 0000000..fd80c92
Binary files /dev/null and b/doc/en/common/4.png differ
diff --git a/doc/en/common/5.png b/doc/en/common/5.png
new file mode 100644 (file)
index 0000000..cbad319
Binary files /dev/null and b/doc/en/common/5.png differ
diff --git a/doc/en/common/6.png b/doc/en/common/6.png
new file mode 100644 (file)
index 0000000..20ddbd5
Binary files /dev/null and b/doc/en/common/6.png differ
diff --git a/doc/en/common/7.png b/doc/en/common/7.png
new file mode 100644 (file)
index 0000000..22fee5b
Binary files /dev/null and b/doc/en/common/7.png differ
diff --git a/doc/en/common/8.png b/doc/en/common/8.png
new file mode 100644 (file)
index 0000000..a9adacf
Binary files /dev/null and b/doc/en/common/8.png differ
diff --git a/doc/en/common/9.png b/doc/en/common/9.png
new file mode 100644 (file)
index 0000000..56b3612
Binary files /dev/null and b/doc/en/common/9.png differ
diff --git a/doc/en/common/artistic-license.html b/doc/en/common/artistic-license.html
new file mode 100644 (file)
index 0000000..2069b4e
--- /dev/null
@@ -0,0 +1,165 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+                   "http://www.w3.org/TR/html40/strict.dtd">
+<HTML LANG="en-US">
+  <HEAD>
+    <TITLE>The "Artistic License"</TITLE>
+    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
+    <META HTTP-EQUIV="Content-Language" CONTENT="en-US">
+    <META NAME="description" CONTENT="Artistic License">
+    <META NAME="keywords" CONTENT="Artistic, artistic, Artistic License, Artistic license, Artisticlicense, artistic license, artisticlicense, Artistic Licence, Artistic licence, Artisticlicence, artistic licence, artisticlicence, license, licence, software, softwarelicense">
+    <META NAME="robots" CONTENT="none">
+    <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+    <LINK REL="stylesheet" HREF="kde-default.css" TYPE="text/css">
+  </HEAD>
+  <BODY CLASS="license">
+    <H1>The "Artistic License"</H1>
+
+    <H2>Preamble</H2>
+
+    <P>The intent of this document is to state the conditions under
+      which a Package may be copied, such that the Copyright Holder
+      maintains some semblance of artistic control over the
+      development of the package, while giving the users of the
+      package the right to use and distribute the Package in a
+      more-or-less customary fashion, plus the right to make
+      reasonable modifications.</P>
+
+    <H2>Definitions</H2>
+
+    
+    <P>"Package" refers to the collection of files distributed by the
+      Copyright Holder, and derivatives of that collection of files
+      created through textual modification.</P>
+
+    <P>"Standard Version" refers to such a Package if it has not been
+      modified, or has been modified in accordance with the wishes of
+      the Copyright Holder as specified below.</P>
+
+    <P>"Copyright Holder" is whoever is named in the copyright or
+      copyrights for the package.</P>
+
+    <P>"You" is you, if you're thinking about copying or distributing
+      this Package.</P>
+
+    <P>"Reasonable copying fee" is whatever you can justify on the
+      basis of media cost, duplication charges, time of people
+      involved, and so on. (You will not be required to justify it to
+      the Copyright Holder, but only to the computing community at
+      large as a market that must bear the fee.)</P>
+
+    <P>"Freely Available" means that no fee is charged for the item
+      itself, though there may be fees involved in handling the
+      item. It also means that recipients of the item may redistribute
+      it under the same conditions they received it.</P>
+
+
+    <OL STYLE="list-style-type: decimal;">
+      <LI><DIV CLASS="li">You may make and give away verbatim copies of the source
+       form of the Standard Version of this Package without
+       restriction, provided that you duplicate all of the original
+       copyright notices and associated disclaimers.</DIV></LI>
+
+      <LI>You may apply bug fixes, portability fixes and other
+       modifications derived from the Public Domain or from the
+       Copyright Holder. A Package modified in such a way shall still
+       be considered the Standard Version.</LI>
+
+      <LI>You may otherwise modify your copy of this Package in any
+       way, provided that you insert a prominent notice in each
+       changed file stating how and when you changed that file, and
+       provided that you do at least ONE of the following:
+       <OL STYLE="list-style-type: lower-alpha;">
+         <LI>place your modifications in the Public Domain or
+           otherwise make them Freely Available, such as by posting
+           said modifications to Usenet or an equivalent medium, or
+           placing the modifications on a major archive site such as
+           uunet.uu.net, or by allowing the Copyright Holder to
+           include your modifications in the Standard Version of the
+           Package.</LI>
+
+         <LI>use the modified Package only within your corporation or
+           organization.</LI>
+
+         <LI>rename any non-standard executables so the names do not
+           conflict with standard executables, which must also be
+           provided, and provide a separate manual page for each
+           non-standard executable that clearly documents how it
+           differs from the Standard Version.  d. make other
+           distribution arrangements with the Copyright Holder.</LI>
+       </OL>
+      </LI>
+    </OL>
+
+    <P>You may distribute the programs of this Package in object code
+      or executable form, provided that you do at least ONE of the
+      following:</P>
+
+    <OL STYLE="list-style-type: lower-alpha;">
+      <LI>distribute a Standard Version of the executables and library
+       files, together with instructions (in the manual page or
+       equivalent) on where to get the Standard Version.</LI>
+
+      <LI>accompany the distribution with the machine-readable source
+       of the Package with your modifications.</LI>
+      
+      <LI>give non-standard executables non-standard names, and
+       clearly document the differences in manual pages (or
+       equivalent), together with instructions on where to get the
+       Standard Version.</LI>
+
+      <LI>make other distribution arrangements with the Copyright
+       Holder.</LI>
+    </OL>
+
+    <P>You may charge a reasonable copying fee for any distribution of
+      this Package. You may charge any fee you choose for support of
+      this Package. You may not charge a fee for this Package
+      itself. However, you may distribute this Package in aggregate
+      with other (possibly commercial) programs as part of a larger
+      (possibly commercial) software distribution provided that you do
+      not advertise this Package as a product of your own. You may
+      embed this Package's interpreter within an executable of yours
+      (by linking); this shall be construed as a mere form of
+      aggregation, provided that the complete Standard Version of the
+      interpreter is so embedded.</P>
+
+    <P>The scripts and library files supplied as input to or produced
+      as output from the programs of this Package do not automatically
+      fall under the copyright of this Package, but belong to whomever
+      generated them, and may be sold commercially, and may be
+      aggregated with this Package. If such scripts or library files
+      are aggregated with this Package via the so-called "undump" or
+      "unexec" methods of producing a binary executable image, then
+      distribution of such an image shall neither be construed as a
+      distribution of this Package nor shall it fall under the
+      restrictions of Paragraphs 3 and 4, provided that you do not
+      represent such an executable image as a Standard Version of this
+      Package.</P>
+
+    <P>C subroutines (or comparably compiled subroutines in other
+      languages) supplied by you and linked into this Package in order
+      to emulate subroutines and variables of the language defined by
+      this Package shall not be considered part of this Package, but
+      are the equivalent of input as in Paragraph 6, provided these
+      subroutines do not change the language in any way that would
+      cause it to fail the regression tests for the language.</P>
+
+    <P>Aggregation of this Package with a commercial distribution is
+      always permitted provided that the use of this Package is
+      embedded; that is, when no overt attempt is made to make this
+      Package's interfaces visible to the end user of the commercial
+      distribution. Such use shall not be construed as a distribution
+      of this Package.</P>
+
+    <P>The name of the Copyright Holder may not be used to endorse or
+      promote products derived from this software without specific
+      prior written permission.</P>
+
+    <P>THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
+      IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+      WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
+      PURPOSE.</P>
+
+    <DIV STYLE="text-align: center;">The End</DIV>
+  </BODY>
+</HTML>
diff --git a/doc/en/common/block_title_bottom.png b/doc/en/common/block_title_bottom.png
new file mode 100644 (file)
index 0000000..c0c0af5
Binary files /dev/null and b/doc/en/common/block_title_bottom.png differ
diff --git a/doc/en/common/block_title_mid.png b/doc/en/common/block_title_mid.png
new file mode 100644 (file)
index 0000000..f1ce933
Binary files /dev/null and b/doc/en/common/block_title_mid.png differ
diff --git a/doc/en/common/block_title_top.png b/doc/en/common/block_title_top.png
new file mode 100644 (file)
index 0000000..2344376
Binary files /dev/null and b/doc/en/common/block_title_top.png differ
diff --git a/doc/en/common/bottom-left.png b/doc/en/common/bottom-left.png
new file mode 100644 (file)
index 0000000..a2d8a49
Binary files /dev/null and b/doc/en/common/bottom-left.png differ
diff --git a/doc/en/common/bottom-middle.png b/doc/en/common/bottom-middle.png
new file mode 100644 (file)
index 0000000..eba0bb0
Binary files /dev/null and b/doc/en/common/bottom-middle.png differ
diff --git a/doc/en/common/bottom-right.png b/doc/en/common/bottom-right.png
new file mode 100644 (file)
index 0000000..01d5cd5
Binary files /dev/null and b/doc/en/common/bottom-right.png differ
diff --git a/doc/en/common/bsd-license.html b/doc/en/common/bsd-license.html
new file mode 100644 (file)
index 0000000..422bb33
--- /dev/null
@@ -0,0 +1,45 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+                   "http://www.w3.org/TR/html40/strict.dtd">
+<HTML LANG="en-US">
+  <HEAD>
+    <TITLE>BSD License</TITLE>
+    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
+    <META HTTP-EQUIV="Content-Language" CONTENT="en-US">
+    <META NAME="description" CONTENT="BSD License">
+    <META NAME="keywords" CONTENT="BSD, bsd, Bsd, license, licence, software, free software, softwarelicense, BSD Software license">
+    <META NAME="robots" CONTENT="none">
+    <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+    <LINK REL="stylesheet" HREF="kde-default.css" TYPE="text/css">
+  </HEAD>
+  <BODY CLASS="license">
+    <H1>BSD License</H1>
+
+    <P>Redistribution and use in source and binary forms, with or
+      without modification, are permitted provided that the following
+      conditions are met:</P>
+
+    <OL>
+      <LI>Redistributions of source code must retain the above
+       copyright notice, this list of conditions and the following
+       disclaimer.</LI>
+
+      <LI>Redistributions in binary form must reproduce the above
+       copyright notice, this list of conditions and the following
+       disclaimer in the documentation and/or other materials
+       provided with the distribution.</LI>
+    </OL>
+
+    <P>THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY
+      EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+      THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+      PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR
+      BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+      EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+      TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+      DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+      ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+      LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+      IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+      THE POSSIBILITY OF SUCH DAMAGE.</P>
+  </BODY>
+</HTML>
diff --git a/doc/en/common/doxygen.css b/doc/en/common/doxygen.css
new file mode 100644 (file)
index 0000000..48563b4
--- /dev/null
@@ -0,0 +1,96 @@
+#content td.memItemLeft {
+text-align: right;
+}
+
+.groupHeader {
+font-size: medium;
+color: #418ADE;
+}
+
+hr { display: none; }
+#content h2 { margin-left: 0px; }
+
+table.memname {
+empty-cells: show;
+background-color: #f8f8f8;
+outline: .2em solid #d7d7d7;
+margin-top: 3em;
+margin-bottom: 1em;
+}
+
+td.memname {
+white-space: nowrap;
+font-weight: bold;
+}
+
+.paramtype {
+white-space: nowrap;
+font-weight: bold;
+}
+
+.paramname {
+white-space: nowrap;
+font-weight: bold;
+}
+
+.paramkey {
+text-align: right;
+}
+
+
+table.mdTable {
+background-color: #f8f8f8;
+outline: .2em solid #d7d7d7;
+width: 80%;
+}
+
+td.mdRow { padding: 8px 20px; }
+td.md { font-weight: bold; }
+td.mdname1 { font-weight: bold; color: #602020; }
+td.mdname { font-weight: bold; color: #602020;  }
+
+div.bic {
+border: 2px solid #E72300;
+background: #F6CFDD;
+padding: 0.5ex 1em;
+}
+
+div.memitem {
+}
+
+div.memproto {
+/*background: #F9F9F9;
+border: 1px solid #AAAAAA;*/
+font-weight: bold;
+}
+
+div.memproto td {
+white-space: nowrap;
+padding:0;
+margin:0;
+}
+
+table.memname {
+border-spacing: 0;
+border-collapse:collapse;
+}
+
+td.paramtype {
+font-family:monospace;
+}
+
+div.memproto a.el {
+font-family:monospace;
+}
+
+div.memproto a.elRef {
+font-family:monospace;
+}
+
+SPAN.keyword       { color: #008000 }
+SPAN.keywordtype   { color: #604020 }
+SPAN.keywordflow   { color: #e08000 }
+SPAN.comment       { color: #800000 }
+SPAN.preprocessor  { color: #806020 }
+SPAN.stringliteral { color: #002080 }
+SPAN.charliteral   { color: #008080 }
diff --git a/doc/en/common/favicon.ico b/doc/en/common/favicon.ico
new file mode 100644 (file)
index 0000000..3741beb
Binary files /dev/null and b/doc/en/common/favicon.ico differ
diff --git a/doc/en/common/fdl-license b/doc/en/common/fdl-license
new file mode 100644 (file)
index 0000000..4a0fe1c
--- /dev/null
@@ -0,0 +1,397 @@
+               GNU Free Documentation License
+                 Version 1.2, November 2002
+
+
+ Copyright (C) 2000,2001,2002  Free Software Foundation, Inc.
+     51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+
+0. PREAMBLE
+
+The purpose of this License is to make a manual, textbook, or other
+functional and useful document "free" in the sense of freedom: to
+assure everyone the effective freedom to copy and redistribute it,
+with or without modifying it, either commercially or noncommercially.
+Secondarily, this License preserves for the author and publisher a way
+to get credit for their work, while not being considered responsible
+for modifications made by others.
+
+This License is a kind of "copyleft", which means that derivative
+works of the document must themselves be free in the same sense.  It
+complements the GNU General Public License, which is a copyleft
+license designed for free software.
+
+We have designed this License in order to use it for manuals for free
+software, because free software needs free documentation: a free
+program should come with manuals providing the same freedoms that the
+software does.  But this License is not limited to software manuals;
+it can be used for any textual work, regardless of subject matter or
+whether it is published as a printed book.  We recommend this License
+principally for works whose purpose is instruction or reference.
+
+
+1. APPLICABILITY AND DEFINITIONS
+
+This License applies to any manual or other work, in any medium, that
+contains a notice placed by the copyright holder saying it can be
+distributed under the terms of this License.  Such a notice grants a
+world-wide, royalty-free license, unlimited in duration, to use that
+work under the conditions stated herein.  The "Document", below,
+refers to any such manual or work.  Any member of the public is a
+licensee, and is addressed as "you".  You accept the license if you
+copy, modify or distribute the work in a way requiring permission
+under copyright law.
+
+A "Modified Version" of the Document means any work containing the
+Document or a portion of it, either copied verbatim, or with
+modifications and/or translated into another language.
+
+A "Secondary Section" is a named appendix or a front-matter section of
+the Document that deals exclusively with the relationship of the
+publishers or authors of the Document to the Document's overall subject
+(or to related matters) and contains nothing that could fall directly
+within that overall subject.  (Thus, if the Document is in part a
+textbook of mathematics, a Secondary Section may not explain any
+mathematics.)  The relationship could be a matter of historical
+connection with the subject or with related matters, or of legal,
+commercial, philosophical, ethical or political position regarding
+them.
+
+The "Invariant Sections" are certain Secondary Sections whose titles
+are designated, as being those of Invariant Sections, in the notice
+that says that the Document is released under this License.  If a
+section does not fit the above definition of Secondary then it is not
+allowed to be designated as Invariant.  The Document may contain zero
+Invariant Sections.  If the Document does not identify any Invariant
+Sections then there are none.
+
+The "Cover Texts" are certain short passages of text that are listed,
+as Front-Cover Texts or Back-Cover Texts, in the notice that says that
+the Document is released under this License.  A Front-Cover Text may
+be at most 5 words, and a Back-Cover Text may be at most 25 words.
+
+A "Transparent" copy of the Document means a machine-readable copy,
+represented in a format whose specification is available to the
+general public, that is suitable for revising the document
+straightforwardly with generic text editors or (for images composed of
+pixels) generic paint programs or (for drawings) some widely available
+drawing editor, and that is suitable for input to text formatters or
+for automatic translation to a variety of formats suitable for input
+to text formatters.  A copy made in an otherwise Transparent file
+format whose markup, or absence of markup, has been arranged to thwart
+or discourage subsequent modification by readers is not Transparent.
+An image format is not Transparent if used for any substantial amount
+of text.  A copy that is not "Transparent" is called "Opaque".
+
+Examples of suitable formats for Transparent copies include plain
+ASCII without markup, Texinfo input format, LaTeX input format, SGML
+or XML using a publicly available DTD, and standard-conforming simple
+HTML, PostScript or PDF designed for human modification.  Examples of
+transparent image formats include PNG, XCF and JPG.  Opaque formats
+include proprietary formats that can be read and edited only by
+proprietary word processors, SGML or XML for which the DTD and/or
+processing tools are not generally available, and the
+machine-generated HTML, PostScript or PDF produced by some word
+processors for output purposes only.
+
+The "Title Page" means, for a printed book, the title page itself,
+plus such following pages as are needed to hold, legibly, the material
+this License requires to appear in the title page.  For works in
+formats which do not have any title page as such, "Title Page" means
+the text near the most prominent appearance of the work's title,
+preceding the beginning of the body of the text.
+
+A section "Entitled XYZ" means a named subunit of the Document whose
+title either is precisely XYZ or contains XYZ in parentheses following
+text that translates XYZ in another language.  (Here XYZ stands for a
+specific section name mentioned below, such as "Acknowledgements",
+"Dedications", "Endorsements", or "History".)  To "Preserve the Title"
+of such a section when you modify the Document means that it remains a
+section "Entitled XYZ" according to this definition.
+
+The Document may include Warranty Disclaimers next to the notice which
+states that this License applies to the Document.  These Warranty
+Disclaimers are considered to be included by reference in this
+License, but only as regards disclaiming warranties: any other
+implication that these Warranty Disclaimers may have is void and has
+no effect on the meaning of this License.
+
+
+2. VERBATIM COPYING
+
+You may copy and distribute the Document in any medium, either
+commercially or noncommercially, provided that this License, the
+copyright notices, and the license notice saying this License applies
+to the Document are reproduced in all copies, and that you add no other
+conditions whatsoever to those of this License.  You may not use
+technical measures to obstruct or control the reading or further
+copying of the copies you make or distribute.  However, you may accept
+compensation in exchange for copies.  If you distribute a large enough
+number of copies you must also follow the conditions in section 3.
+
+You may also lend copies, under the same conditions stated above, and
+you may publicly display copies.
+
+
+3. COPYING IN QUANTITY
+
+If you publish printed copies (or copies in media that commonly have
+printed covers) of the Document, numbering more than 100, and the
+Document's license notice requires Cover Texts, you must enclose the
+copies in covers that carry, clearly and legibly, all these Cover
+Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
+the back cover.  Both covers must also clearly and legibly identify
+you as the publisher of these copies.  The front cover must present
+the full title with all words of the title equally prominent and
+visible.  You may add other material on the covers in addition.
+Copying with changes limited to the covers, as long as they preserve
+the title of the Document and satisfy these conditions, can be treated
+as verbatim copying in other respects.
+
+If the required texts for either cover are too voluminous to fit
+legibly, you should put the first ones listed (as many as fit
+reasonably) on the actual cover, and continue the rest onto adjacent
+pages.
+
+If you publish or distribute Opaque copies of the Document numbering
+more than 100, you must either include a machine-readable Transparent
+copy along with each Opaque copy, or state in or with each Opaque copy
+a computer-network location from which the general network-using
+public has access to download using public-standard network protocols
+a complete Transparent copy of the Document, free of added material.
+If you use the latter option, you must take reasonably prudent steps,
+when you begin distribution of Opaque copies in quantity, to ensure
+that this Transparent copy will remain thus accessible at the stated
+location until at least one year after the last time you distribute an
+Opaque copy (directly or through your agents or retailers) of that
+edition to the public.
+
+It is requested, but not required, that you contact the authors of the
+Document well before redistributing any large number of copies, to give
+them a chance to provide you with an updated version of the Document.
+
+
+4. MODIFICATIONS
+
+You may copy and distribute a Modified Version of the Document under
+the conditions of sections 2 and 3 above, provided that you release
+the Modified Version under precisely this License, with the Modified
+Version filling the role of the Document, thus licensing distribution
+and modification of the Modified Version to whoever possesses a copy
+of it.  In addition, you must do these things in the Modified Version:
+
+A. Use in the Title Page (and on the covers, if any) a title distinct
+   from that of the Document, and from those of previous versions
+   (which should, if there were any, be listed in the History section
+   of the Document).  You may use the same title as a previous version
+   if the original publisher of that version gives permission.
+B. List on the Title Page, as authors, one or more persons or entities
+   responsible for authorship of the modifications in the Modified
+   Version, together with at least five of the principal authors of the
+   Document (all of its principal authors, if it has fewer than five),
+   unless they release you from this requirement.
+C. State on the Title page the name of the publisher of the
+   Modified Version, as the publisher.
+D. Preserve all the copyright notices of the Document.
+E. Add an appropriate copyright notice for your modifications
+   adjacent to the other copyright notices.
+F. Include, immediately after the copyright notices, a license notice
+   giving the public permission to use the Modified Version under the
+   terms of this License, in the form shown in the Addendum below.
+G. Preserve in that license notice the full lists of Invariant Sections
+   and required Cover Texts given in the Document's license notice.
+H. Include an unaltered copy of this License.
+I. Preserve the section Entitled "History", Preserve its Title, and add
+   to it an item stating at least the title, year, new authors, and
+   publisher of the Modified Version as given on the Title Page.  If
+   there is no section Entitled "History" in the Document, create one
+   stating the title, year, authors, and publisher of the Document as
+   given on its Title Page, then add an item describing the Modified
+   Version as stated in the previous sentence.
+J. Preserve the network location, if any, given in the Document for
+   public access to a Transparent copy of the Document, and likewise
+   the network locations given in the Document for previous versions
+   it was based on.  These may be placed in the "History" section.
+   You may omit a network location for a work that was published at
+   least four years before the Document itself, or if the original
+   publisher of the version it refers to gives permission.
+K. For any section Entitled "Acknowledgements" or "Dedications",
+   Preserve the Title of the section, and preserve in the section all
+   the substance and tone of each of the contributor acknowledgements
+   and/or dedications given therein.
+L. Preserve all the Invariant Sections of the Document,
+   unaltered in their text and in their titles.  Section numbers
+   or the equivalent are not considered part of the section titles.
+M. Delete any section Entitled "Endorsements".  Such a section
+   may not be included in the Modified Version.
+N. Do not retitle any existing section to be Entitled "Endorsements"
+   or to conflict in title with any Invariant Section.
+O. Preserve any Warranty Disclaimers.
+
+If the Modified Version includes new front-matter sections or
+appendices that qualify as Secondary Sections and contain no material
+copied from the Document, you may at your option designate some or all
+of these sections as invariant.  To do this, add their titles to the
+list of Invariant Sections in the Modified Version's license notice.
+These titles must be distinct from any other section titles.
+
+You may add a section Entitled "Endorsements", provided it contains
+nothing but endorsements of your Modified Version by various
+parties--for example, statements of peer review or that the text has
+been approved by an organization as the authoritative definition of a
+standard.
+
+You may add a passage of up to five words as a Front-Cover Text, and a
+passage of up to 25 words as a Back-Cover Text, to the end of the list
+of Cover Texts in the Modified Version.  Only one passage of
+Front-Cover Text and one of Back-Cover Text may be added by (or
+through arrangements made by) any one entity.  If the Document already
+includes a cover text for the same cover, previously added by you or
+by arrangement made by the same entity you are acting on behalf of,
+you may not add another; but you may replace the old one, on explicit
+permission from the previous publisher that added the old one.
+
+The author(s) and publisher(s) of the Document do not by this License
+give permission to use their names for publicity for or to assert or
+imply endorsement of any Modified Version.
+
+
+5. COMBINING DOCUMENTS
+
+You may combine the Document with other documents released under this
+License, under the terms defined in section 4 above for modified
+versions, provided that you include in the combination all of the
+Invariant Sections of all of the original documents, unmodified, and
+list them all as Invariant Sections of your combined work in its
+license notice, and that you preserve all their Warranty Disclaimers.
+
+The combined work need only contain one copy of this License, and
+multiple identical Invariant Sections may be replaced with a single
+copy.  If there are multiple Invariant Sections with the same name but
+different contents, make the title of each such section unique by
+adding at the end of it, in parentheses, the name of the original
+author or publisher of that section if known, or else a unique number.
+Make the same adjustment to the section titles in the list of
+Invariant Sections in the license notice of the combined work.
+
+In the combination, you must combine any sections Entitled "History"
+in the various original documents, forming one section Entitled
+"History"; likewise combine any sections Entitled "Acknowledgements",
+and any sections Entitled "Dedications".  You must delete all sections
+Entitled "Endorsements".
+
+
+6. COLLECTIONS OF DOCUMENTS
+
+You may make a collection consisting of the Document and other documents
+released under this License, and replace the individual copies of this
+License in the various documents with a single copy that is included in
+the collection, provided that you follow the rules of this License for
+verbatim copying of each of the documents in all other respects.
+
+You may extract a single document from such a collection, and distribute
+it individually under this License, provided you insert a copy of this
+License into the extracted document, and follow this License in all
+other respects regarding verbatim copying of that document.
+
+
+7. AGGREGATION WITH INDEPENDENT WORKS
+
+A compilation of the Document or its derivatives with other separate
+and independent documents or works, in or on a volume of a storage or
+distribution medium, is called an "aggregate" if the copyright
+resulting from the compilation is not used to limit the legal rights
+of the compilation's users beyond what the individual works permit.
+When the Document is included in an aggregate, this License does not
+apply to the other works in the aggregate which are not themselves
+derivative works of the Document.
+
+If the Cover Text requirement of section 3 is applicable to these
+copies of the Document, then if the Document is less than one half of
+the entire aggregate, the Document's Cover Texts may be placed on
+covers that bracket the Document within the aggregate, or the
+electronic equivalent of covers if the Document is in electronic form.
+Otherwise they must appear on printed covers that bracket the whole
+aggregate.
+
+
+8. TRANSLATION
+
+Translation is considered a kind of modification, so you may
+distribute translations of the Document under the terms of section 4.
+Replacing Invariant Sections with translations requires special
+permission from their copyright holders, but you may include
+translations of some or all Invariant Sections in addition to the
+original versions of these Invariant Sections.  You may include a
+translation of this License, and all the license notices in the
+Document, and any Warranty Disclaimers, provided that you also include
+the original English version of this License and the original versions
+of those notices and disclaimers.  In case of a disagreement between
+the translation and the original version of this License or a notice
+or disclaimer, the original version will prevail.
+
+If a section in the Document is Entitled "Acknowledgements",
+"Dedications", or "History", the requirement (section 4) to Preserve
+its Title (section 1) will typically require changing the actual
+title.
+
+
+9. TERMINATION
+
+You may not copy, modify, sublicense, or distribute the Document except
+as expressly provided for under this License.  Any other attempt to
+copy, modify, sublicense or distribute the Document is void, and will
+automatically terminate your rights under this License.  However,
+parties who have received copies, or rights, from you under this
+License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+
+10. FUTURE REVISIONS OF THIS LICENSE
+
+The Free Software Foundation may publish new, revised versions
+of the GNU Free Documentation License from time to time.  Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.  See
+http://www.gnu.org/copyleft/.
+
+Each version of the License is given a distinguishing version number.
+If the Document specifies that a particular numbered version of this
+License "or any later version" applies to it, you have the option of
+following the terms and conditions either of that specified version or
+of any later version that has been published (not as a draft) by the
+Free Software Foundation.  If the Document does not specify a version
+number of this License, you may choose any version ever published (not
+as a draft) by the Free Software Foundation.
+
+
+ADDENDUM: How to use this License for your documents
+
+To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and
+license notices just after the title page:
+
+    Copyright (c)  YEAR  YOUR NAME.
+    Permission is granted to copy, distribute and/or modify this document
+    under the terms of the GNU Free Documentation License, Version 1.2
+    or any later version published by the Free Software Foundation;
+    with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+    A copy of the license is included in the section entitled "GNU
+    Free Documentation License".
+
+If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
+replace the "with...Texts." line with this:
+
+    with the Invariant Sections being LIST THEIR TITLES, with the
+    Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
+
+If you have Invariant Sections without Cover Texts, or some other
+combination of the three, merge those two alternatives to suit the
+situation.
+
+If your document contains nontrivial examples of program code, we
+recommend releasing these examples in parallel under your choice of
+free software license, such as the GNU General Public License,
+to permit their use in free software.
diff --git a/doc/en/common/fdl-license.html b/doc/en/common/fdl-license.html
new file mode 100644 (file)
index 0000000..9ce378a
--- /dev/null
@@ -0,0 +1,512 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+                   "http://www.w3.org/TR/html40/strict.dtd">
+<HTML LANG="en-US">
+  <HEAD>
+    <TITLE>GNU Free Documentation License - version 1.1</TITLE>
+    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
+    <META HTTP-EQUIV="Content-Language" CONTENT="en-US">
+    <META NAME="description" CONTENT="GNU free documentation license (for inclusion in documentation files)">
+    <META NAME="keywords" CONTENT="gnu, Gnu, GNU, license, licence, software, free software, software license, software licence, GNU general public license, GNU General Public License, documentation licence, documentation license, documentation, GNU free documentation license, GNU Free Documentation License">
+    <META NAME="robots" CONTENT="none">
+    <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+    <LINK REL="stylesheet" HREF="kde-default.css" TYPE="text/css">
+  </HEAD>
+  <BODY CLASS="license">
+<h3>GNU Free Documentation License</h3>
+<p>
+  Version 1.2, November 2002
+</p>
+
+<pre>
+  Copyright (C) 2000,2001,2002  Free Software Foundation, Inc.
+  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+  Everyone is permitted to copy and distribute verbatim copies
+  of this license document, but changing it is not allowed.
+</pre>
+
+<p>
+  <strong>0. PREAMBLE</strong>
+</p>
+
+<p>
+  The purpose of this License is to make a manual, textbook, or other
+  functional and useful document "free" in the sense of freedom: to
+  assure everyone the effective freedom to copy and redistribute it,
+  with or without modifying it, either commercially or noncommercially.
+  Secondarily, this License preserves for the author and publisher a way
+  to get credit for their work, while not being considered responsible
+  for modifications made by others.
+</p>
+
+<p>
+  This License is a kind of "copyleft", which means that derivative
+  works of the document must themselves be free in the same sense.  It
+  complements the GNU General Public License, which is a copyleft
+  license designed for free software.
+</p>
+
+<p>
+  We have designed this License in order to use it for manuals for free
+  software, because free software needs free documentation: a free
+  program should come with manuals providing the same freedoms that the
+  software does.  But this License is not limited to software manuals;
+  it can be used for any textual work, regardless of subject matter or
+  whether it is published as a printed book.  We recommend this License
+  principally for works whose purpose is instruction or reference.
+</p>
+
+<p>
+  <strong>1. APPLICABILITY AND DEFINITIONS</strong>
+</p>
+
+<p>
+  This License applies to any manual or other work, in any medium, that
+  contains a notice placed by the copyright holder saying it can be
+  distributed under the terms of this License.  Such a notice grants a
+  world-wide, royalty-free license, unlimited in duration, to use that
+  work under the conditions stated herein.  The "Document", below,
+  refers to any such manual or work.  Any member of the public is a
+  licensee, and is addressed as "you".  You accept the license if you
+  copy, modify or distribute the work in a way requiring permission
+  under copyright law.
+</p>
+
+<p>
+  A "Modified Version" of the Document means any work containing the
+  Document or a portion of it, either copied verbatim, or with
+  modifications and/or translated into another language.
+</p>
+
+<p>
+  A "Secondary Section" is a named appendix or a front-matter section of
+  the Document that deals exclusively with the relationship of the
+  publishers or authors of the Document to the Document's overall subject
+  (or to related matters) and contains nothing that could fall directly
+  within that overall subject.  (Thus, if the Document is in part a
+  textbook of mathematics, a Secondary Section may not explain any
+  mathematics.)  The relationship could be a matter of historical
+  connection with the subject or with related matters, or of legal,
+  commercial, philosophical, ethical or political position regarding
+  them.
+</p>
+
+<p>
+  The "Invariant Sections" are certain Secondary Sections whose titles
+  are designated, as being those of Invariant Sections, in the notice
+  that says that the Document is released under this License.  If a
+  section does not fit the above definition of Secondary then it is not
+  allowed to be designated as Invariant.  The Document may contain zero
+  Invariant Sections.  If the Document does not identify any Invariant
+  Sections then there are none.
+</p>
+
+<p>
+  The "Cover Texts" are certain short passages of text that are listed,
+  as Front-Cover Texts or Back-Cover Texts, in the notice that says that
+  the Document is released under this License.  A Front-Cover Text may
+  be at most 5 words, and a Back-Cover Text may be at most 25 words.
+</p>
+
+<p>
+  A "Transparent" copy of the Document means a machine-readable copy,
+  represented in a format whose specification is available to the
+  general public, that is suitable for revising the document
+  straightforwardly with generic text editors or (for images composed of
+  pixels) generic paint programs or (for drawings) some widely available
+  drawing editor, and that is suitable for input to text formatters or
+  for automatic translation to a variety of formats suitable for input
+  to text formatters.  A copy made in an otherwise Transparent file
+  format whose markup, or absence of markup, has been arranged to thwart
+  or discourage subsequent modification by readers is not Transparent.
+  An image format is not Transparent if used for any substantial amount
+  of text.  A copy that is not "Transparent" is called "Opaque".
+</p>
+
+<p>
+  Examples of suitable formats for Transparent copies include plain
+  ASCII without markup, Texinfo input format, LaTeX input format, SGML
+  or XML using a publicly available DTD, and standard-conforming simple
+  HTML, PostScript or PDF designed for human modification.  Examples of
+  transparent image formats include PNG, XCF and JPG.  Opaque formats
+  include proprietary formats that can be read and edited only by
+  proprietary word processors, SGML or XML for which the DTD and/or
+  processing tools are not generally available, and the
+  machine-generated HTML, PostScript or PDF produced by some word
+  processors for output purposes only.
+</p>
+
+<p>
+  The "Title Page" means, for a printed book, the title page itself,
+  plus such following pages as are needed to hold, legibly, the material
+  this License requires to appear in the title page.  For works in
+  formats which do not have any title page as such, "Title Page" means
+  the text near the most prominent appearance of the work's title,
+  preceding the beginning of the body of the text.
+</p>
+
+<p>
+  A section "Entitled XYZ" means a named subunit of the Document whose
+  title either is precisely XYZ or contains XYZ in parentheses following
+  text that translates XYZ in another language.  (Here XYZ stands for a
+  specific section name mentioned below, such as "Acknowledgements",
+  "Dedications", "Endorsements", or "History".)  To "Preserve the Title"
+  of such a section when you modify the Document means that it remains a
+  section "Entitled XYZ" according to this definition.
+</p>
+
+<p>
+  The Document may include Warranty Disclaimers next to the notice which
+  states that this License applies to the Document.  These Warranty
+  Disclaimers are considered to be included by reference in this
+  License, but only as regards disclaiming warranties: any other
+  implication that these Warranty Disclaimers may have is void and has
+  no effect on the meaning of this License.
+</p>
+
+<p>
+  <strong>2. VERBATIM COPYING</strong>
+</p>
+
+<p>
+  You may copy and distribute the Document in any medium, either
+  commercially or noncommercially, provided that this License, the
+  copyright notices, and the license notice saying this License applies
+  to the Document are reproduced in all copies, and that you add no other
+  conditions whatsoever to those of this License.  You may not use
+  technical measures to obstruct or control the reading or further
+  copying of the copies you make or distribute.  However, you may accept
+  compensation in exchange for copies.  If you distribute a large enough
+  number of copies you must also follow the conditions in section 3.
+</p>
+
+<p>
+  You may also lend copies, under the same conditions stated above, and
+  you may publicly display copies.
+</p>
+
+<p>
+  <strong>3. COPYING IN QUANTITY</strong>
+</p>
+
+<p>
+  If you publish printed copies (or copies in media that commonly have
+  printed covers) of the Document, numbering more than 100, and the
+  Document's license notice requires Cover Texts, you must enclose the
+  copies in covers that carry, clearly and legibly, all these Cover
+  Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
+  the back cover.  Both covers must also clearly and legibly identify
+  you as the publisher of these copies.  The front cover must present
+  the full title with all words of the title equally prominent and
+  visible.  You may add other material on the covers in addition.
+  Copying with changes limited to the covers, as long as they preserve
+  the title of the Document and satisfy these conditions, can be treated
+  as verbatim copying in other respects.
+</p>
+
+<p>
+  If the required texts for either cover are too voluminous to fit
+  legibly, you should put the first ones listed (as many as fit
+  reasonably) on the actual cover, and continue the rest onto adjacent
+  pages.
+</p>
+
+<p>
+  If you publish or distribute Opaque copies of the Document numbering
+  more than 100, you must either include a machine-readable Transparent
+  copy along with each Opaque copy, or state in or with each Opaque copy
+  a computer-network location from which the general network-using
+  public has access to download using public-standard network protocols
+  a complete Transparent copy of the Document, free of added material.
+  If you use the latter option, you must take reasonably prudent steps,
+  when you begin distribution of Opaque copies in quantity, to ensure
+  that this Transparent copy will remain thus accessible at the stated
+  location until at least one year after the last time you distribute an
+  Opaque copy (directly or through your agents or retailers) of that
+  edition to the public.
+</p>
+
+<p>
+  It is requested, but not required, that you contact the authors of the
+  Document well before redistributing any large number of copies, to give
+  them a chance to provide you with an updated version of the Document.
+</p>
+
+<p>
+  <strong>4. MODIFICATIONS</strong>
+</p>
+
+<p>
+  You may copy and distribute a Modified Version of the Document under
+  the conditions of sections 2 and 3 above, provided that you release
+  the Modified Version under precisely this License, with the Modified
+  Version filling the role of the Document, thus licensing distribution
+  and modification of the Modified Version to whoever possesses a copy
+  of it.  In addition, you must do these things in the Modified Version:
+</p>
+
+<ul>
+  <li><strong>A.</strong> Use in the Title Page (and on the covers, if any) a title distinct
+  from that of the Document, and from those of previous versions
+  (which should, if there were any, be listed in the History section
+  of the Document).  You may use the same title as a previous version
+  if the original publisher of that version gives permission.</li>
+  <li><strong>B.</strong> List on the Title Page, as authors, one or more persons or entities
+  responsible for authorship of the modifications in the Modified
+  Version, together with at least five of the principal authors of the
+  Document (all of its principal authors, if it has fewer than five),
+  unless they release you from this requirement.</li>
+  <li><strong>C.</strong> State on the Title page the name of the publisher of the
+  Modified Version, as the publisher.</li>
+  <li><strong>D.</strong> Preserve all the copyright notices of the Document.</li>
+  <li><strong>E.</strong> Add an appropriate copyright notice for your modifications
+  adjacent to the other copyright notices.</li>
+  <li><strong>F.</strong> Include, immediately after the copyright notices, a license notice
+  giving the public permission to use the Modified Version under the
+  terms of this License, in the form shown in the Addendum below.</li>
+  <li><strong>G.</strong> Preserve in that license notice the full lists of Invariant Sections
+  and required Cover Texts given in the Document's license notice.</li>
+  <li><strong>H.</strong> Include an unaltered copy of this License.</li>
+  <li><strong>I.</strong> Preserve the section Entitled "History", Preserve its Title, and add
+  to it an item stating at least the title, year, new authors, and
+  publisher of the Modified Version as given on the Title Page.  If
+  there is no section Entitled "History" in the Document, create one
+  stating the title, year, authors, and publisher of the Document as
+  given on its Title Page, then add an item describing the Modified
+  Version as stated in the previous sentence.</li>
+  <li><strong>J.</strong> Preserve the network location, if any, given in the Document for
+  public access to a Transparent copy of the Document, and likewise
+  the network locations given in the Document for previous versions
+  it was based on.  These may be placed in the "History" section.
+  You may omit a network location for a work that was published at
+  least four years before the Document itself, or if the original
+  publisher of the version it refers to gives permission.</li>
+  <li><strong>K.</strong> For any section Entitled "Acknowledgements" or "Dedications",
+  Preserve the Title of the section, and preserve in the section all
+  the substance and tone of each of the contributor acknowledgements
+  and/or dedications given therein.</li>
+  <li><strong>L.</strong> Preserve all the Invariant Sections of the Document,
+  unaltered in their text and in their titles.  Section numbers
+  or the equivalent are not considered part of the section titles.</li>
+  <li><strong>M.</strong> Delete any section Entitled "Endorsements".  Such a section
+  may not be included in the Modified Version.</li>
+  <li><strong>N.</strong> Do not retitle any existing section to be Entitled "Endorsements"
+  or to conflict in title with any Invariant Section.</li>
+  <li><strong>O.</strong> Preserve any Warranty Disclaimers.</li>
+</ul>
+
+<p>
+  If the Modified Version includes new front-matter sections or
+  appendices that qualify as Secondary Sections and contain no material
+  copied from the Document, you may at your option designate some or all
+  of these sections as invariant.  To do this, add their titles to the
+  list of Invariant Sections in the Modified Version's license notice.
+  These titles must be distinct from any other section titles.
+</p>
+
+<p>
+  You may add a section Entitled "Endorsements", provided it contains
+  nothing but endorsements of your Modified Version by various
+  parties--for example, statements of peer review or that the text has
+  been approved by an organization as the authoritative definition of a
+  standard.
+</p>
+
+<p>
+  You may add a passage of up to five words as a Front-Cover Text, and a
+  passage of up to 25 words as a Back-Cover Text, to the end of the list
+  of Cover Texts in the Modified Version.  Only one passage of
+  Front-Cover Text and one of Back-Cover Text may be added by (or
+  through arrangements made by) any one entity.  If the Document already
+  includes a cover text for the same cover, previously added by you or
+  by arrangement made by the same entity you are acting on behalf of,
+  you may not add another; but you may replace the old one, on explicit
+  permission from the previous publisher that added the old one.
+</p>
+
+<p>
+  The author(s) and publisher(s) of the Document do not by this License
+  give permission to use their names for publicity for or to assert or
+  imply endorsement of any Modified Version.
+</p>
+
+<p>
+  <strong>5. COMBINING DOCUMENTS</strong>
+</p>
+
+<p>
+  You may combine the Document with other documents released under this
+  License, under the terms defined in section 4 above for modified
+  versions, provided that you include in the combination all of the
+  Invariant Sections of all of the original documents, unmodified, and
+  list them all as Invariant Sections of your combined work in its
+  license notice, and that you preserve all their Warranty Disclaimers.
+</p>
+
+<p>
+  The combined work need only contain one copy of this License, and
+  multiple identical Invariant Sections may be replaced with a single
+  copy.  If there are multiple Invariant Sections with the same name but
+  different contents, make the title of each such section unique by
+  adding at the end of it, in parentheses, the name of the original
+  author or publisher of that section if known, or else a unique number.
+  Make the same adjustment to the section titles in the list of
+  Invariant Sections in the license notice of the combined work.
+</p>
+
+<p>
+  In the combination, you must combine any sections Entitled "History"
+  in the various original documents, forming one section Entitled
+  "History"; likewise combine any sections Entitled "Acknowledgements",
+  and any sections Entitled "Dedications".  You must delete all sections
+  Entitled "Endorsements."
+</p>
+
+<p>
+  <strong>6. COLLECTIONS OF DOCUMENTS</strong>
+</p>
+
+<p>
+  You may make a collection consisting of the Document and other documents
+  released under this License, and replace the individual copies of this
+  License in the various documents with a single copy that is included in
+  the collection, provided that you follow the rules of this License for
+  verbatim copying of each of the documents in all other respects.
+</p>
+
+<p>
+  You may extract a single document from such a collection, and distribute
+  it individually under this License, provided you insert a copy of this
+  License into the extracted document, and follow this License in all
+  other respects regarding verbatim copying of that document.
+</p>
+
+<p>
+  <strong>7. AGGREGATION WITH INDEPENDENT WORKS</strong>
+</p>
+
+<p>
+  A compilation of the Document or its derivatives with other separate
+  and independent documents or works, in or on a volume of a storage or
+  distribution medium, is called an "aggregate" if the copyright
+  resulting from the compilation is not used to limit the legal rights
+  of the compilation's users beyond what the individual works permit.
+  When the Document is included in an aggregate, this License does not
+  apply to the other works in the aggregate which are not themselves
+  derivative works of the Document.
+</p>
+
+<p>
+  If the Cover Text requirement of section 3 is applicable to these
+  copies of the Document, then if the Document is less than one half of
+  the entire aggregate, the Document's Cover Texts may be placed on
+  covers that bracket the Document within the aggregate, or the
+  electronic equivalent of covers if the Document is in electronic form.
+  Otherwise they must appear on printed covers that bracket the whole
+  aggregate.
+</p>
+
+<p>
+  <strong>8. TRANSLATION</strong>
+</p>
+
+<p>
+  Translation is considered a kind of modification, so you may
+  distribute translations of the Document under the terms of section 4.
+  Replacing Invariant Sections with translations requires special
+  permission from their copyright holders, but you may include
+  translations of some or all Invariant Sections in addition to the
+  original versions of these Invariant Sections.  You may include a
+  translation of this License, and all the license notices in the
+  Document, and any Warranty Disclaimers, provided that you also include
+  the original English version of this License and the original versions
+  of those notices and disclaimers.  In case of a disagreement between
+  the translation and the original version of this License or a notice
+  or disclaimer, the original version will prevail.
+</p>
+
+<p>
+  If a section in the Document is Entitled "Acknowledgements",
+  "Dedications", or "History", the requirement (section 4) to Preserve
+  its Title (section 1) will typically require changing the actual
+  title.
+</p>
+
+<p>
+  <strong>9. TERMINATION</strong>
+</p>
+
+<p>
+  You may not copy, modify, sublicense, or distribute the Document except
+  as expressly provided for under this License.  Any other attempt to
+  copy, modify, sublicense or distribute the Document is void, and will
+  automatically terminate your rights under this License.  However,
+  parties who have received copies, or rights, from you under this
+  License will not have their licenses terminated so long as such
+  parties remain in full compliance.
+</p>
+
+<p>
+  <strong>10. FUTURE REVISIONS OF THIS LICENSE</strong>
+</p>
+
+<p>
+  The Free Software Foundation may publish new, revised versions
+  of the GNU Free Documentation License from time to time.  Such new
+  versions will be similar in spirit to the present version, but may
+  differ in detail to address new problems or concerns.  See
+  http://www.gnu.org/copyleft/.
+</p>
+
+<p>
+  Each version of the License is given a distinguishing version number.
+  If the Document specifies that a particular numbered version of this
+  License "or any later version" applies to it, you have the option of
+  following the terms and conditions either of that specified version or
+  of any later version that has been published (not as a draft) by the
+  Free Software Foundation.  If the Document does not specify a version
+  number of this License, you may choose any version ever published (not
+  as a draft) by the Free Software Foundation.
+</p>
+
+<h3>How to use this License for your documents</h3>
+
+<p>
+  To use this License in a document you have written, include a copy of
+  the License in the document and put the following copyright and
+  license notices just after the title page:
+</p>
+
+<pre>
+  Copyright (c)  YEAR  YOUR NAME.
+  Permission is granted to copy, distribute and/or modify this document
+  under the terms of the GNU Free Documentation License, Version 1.2
+  or any later version published by the Free Software Foundation;
+  with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
+  Texts.  A copy of the license is included in the section entitled "GNU
+  Free Documentation License".
+</pre>
+
+<p>
+  If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
+  replace the "with...Texts." line with this:
+</p>
+
+<pre>
+  with the Invariant Sections being LIST THEIR TITLES, with the
+  Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
+</pre>
+
+<p>
+  If you have Invariant Sections without Cover Texts, or some other
+  combination of the three, merge those two alternatives to suit the
+  situation.
+</p>
+
+<p>
+  If your document contains nontrivial examples of program code, we
+  recommend releasing these examples in parallel under your choice of
+  free software license, such as the GNU General Public License,
+  to permit their use in free software.
+</p>
+  </BODY>
+</HTML>
diff --git a/doc/en/common/fdl-notice.html b/doc/en/common/fdl-notice.html
new file mode 100644 (file)
index 0000000..862f09e
--- /dev/null
@@ -0,0 +1,15 @@
+<html>
+<head>
+<title>FDL Notice</title>
+</head>
+
+<body>
+
+<p>Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or any
+later version published by the Free Software Foundation; with no Invariant
+Sections, with no Front-Cover Texts, and with no Back-Cover Texts.  A copy
+of the license is included <a href="fdl-license.html">here</a>.</p>
+
+</body>
+</html>
diff --git a/doc/en/common/footer.html b/doc/en/common/footer.html
new file mode 100644 (file)
index 0000000..baa2973
--- /dev/null
@@ -0,0 +1,64 @@
+            </div>
+          </div>
+        </div>
+        <div id="left">
+          <div class="menu_box">
+<a name="cp-menu" /><div class="menutitle"><div>
+<h2 id="cp-menu-project">$projectname</h2>
+<a href="#cp-skip-project" class="cp-doNotDisplay">Skip menu "$projectname"</a>
+</div></div>
+<!-- menu -->
+<!-- cmenu.begin -->
+<h2>Class Picker</h2>
+<div style="text-align: center;">
+<form name="guideform">
+<select name="guidelinks" style="width:100%;" onChange="window.location=document.guideform.guidelinks.options[document.guideform.guidelinks.selectedIndex].value">
+<option value="annotated.html">-- Choose --</option>
+<!-- cmenu -->
+</select>
+</form>
+</div>
+<!-- cmenu.end -->
+
+<div class="menu_box">
+<a name="cp-menu" /><div class="menutitle"><div>
+<h2 id="cp-menu-project">@topname@</h2>
+<a href="#cp-skip-project" class="cp-doNotDisplay">Skip menu "@topname@"</a>
+</div></div>
+<div class="nav_list">
+<ul>
+<!-- gmenu -->
+</ul></div></div>
+
+          </div>
+        </div>
+        <div class="clearer"></div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+
+
+    <div id="end_body"></div>
+
+
+    <div id="footer"><div id="footer_text">
+    Generated for @topname@ by
+    <a href="http://www.doxygen.org/index.html">doxygen</a> $doxygenversion<br />
+
+    This website is maintained by <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;groo&#116;&#64;kde&#46;or&#x67;">Adriaan de Groot</a>
+and
+<a href="&#109;a&#105;&#108;&#116;&#111;&#58;w&#105;n&#116;er&#64;kde&#46;or&#x67;">Allen Winter</a>.<br />
+        KDE<sup>&#174;</sup> and <a href="@topdir@/kde_gear_black.png">the K Desktop Environment<sup>&#174;</sup> logo</a> are registered trademarks of <a href="http://ev.kde.org/" title="Homepage of the KDE non-profit Organization">KDE e.V.</a> |
+        <a href="http://www.kde.org/contact/impressum.php">Legal</a>
+    </div></div>
+  </div>
+
+<!--
+WARNING: DO NOT SEND MAIL TO THE FOLLOWING EMAIL ADDRESS! YOU WILL
+BE BLOCKED INSTANTLY AND PERMANENTLY!
+<a href="mailto:aaaatrap-45abe0e0c3bebc77@kde.org">Block me</a>
+WARNING END
+-->
+
+</body>
+</html>
diff --git a/doc/en/common/gpl-license b/doc/en/common/gpl-license
new file mode 100644 (file)
index 0000000..93796b6
--- /dev/null
@@ -0,0 +1,340 @@
+                   GNU GENERAL PUBLIC LICENSE
+                      Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+     51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                           Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                   GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+                           NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+                    END OF TERMS AND CONDITIONS
+
+           How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) 19yy  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) 19yy name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/doc/en/common/gpl-license.html b/doc/en/common/gpl-license.html
new file mode 100644 (file)
index 0000000..26ae3af
--- /dev/null
@@ -0,0 +1,381 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+                   "http://www.w3.org/TR/html40/strict.dtd">
+<HTML LANG="en-US">
+  <HEAD>
+    <TITLE>GNU General Public License</TITLE>
+    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
+    <META HTTP-EQUIV="Content-Language" CONTENT="en-US">
+    <META NAME="description" CONTENT="GNU general public license (for inclusion in distributions)">
+    <META NAME="keywords" CONTENT="gnu, Gnu, GNU, license, licence, software, free software, software license, software licence, GNU general public license, GNU General Public License">
+    <META NAME="robots" CONTENT="none">
+    <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+    <LINK REL="stylesheet" HREF="kde-default.css" TYPE="text/css">
+  </HEAD>
+  <BODY CLASS="license">
+<H1>GNU General Public License</H1>
+<P>Version 2, June 1991</P>
+
+<P>Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA<BR>
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.</P>
+
+<H2>Preamble</H2>
+
+<P>The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.</P>
+
+<P>When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.</P>
+
+<P>To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.</P>
+
+<P>For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.</P>
+
+<P>We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.</P>
+
+<P>Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.</P>
+
+<P>Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.</P>
+
+<P>The precise terms and conditions for copying, distribution and
+modification follow.</P>
+
+<H2><A NAME="show-c">GNU General Public License<BR>
+Terms And Conditions For Copying, Distribution And Modification</A></H2>
+
+<P>0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".</P>
+
+<P>Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.</P>
+
+<P>1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.</P>
+
+<P>You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.</P>
+
+<P>2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:</P>
+
+<OL STYLE="list-style-type: lower-alpha;">
+<LI>
+<P>You must cause the modified files to carry prominent notices
+stating that you changed the files and the date of any change.</P>
+</LI>
+
+<LI>
+<P>You must cause any work that you distribute or publish, that in
+whole or in part contains or is derived from the Program or any
+part thereof, to be licensed as a whole at no charge to all third
+parties under the terms of this License.</P>
+</LI>
+
+<LI>
+<P>If the modified program normally reads commands interactively
+when run, you must cause it, when started running for such
+interactive use in the most ordinary way, to print or display an
+announcement including an appropriate copyright notice and a
+notice that there is no warranty (or else, saying that you provide
+a warranty) and that users may redistribute the program under
+these conditions, and telling the user how to view a copy of this
+License.  (Exception: if the Program itself is interactive but
+does not normally print such an announcement, your work based on
+the Program is not required to print an announcement.)</P>
+</LI>
+</OL>
+
+<P>These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.</P>
+
+<P>Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.</P>
+
+<P>In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.</P>
+
+<P>3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:</P>
+
+<OL STYLE="list-style-type: lower-alpha;">
+<LI>
+<P>Accompany it with the complete corresponding machine-readable
+source code, which must be distributed under the terms of Sections
+1 and 2 above on a medium customarily used for software interchange; or,</P>
+</LI>
+
+<LI>
+<P>Accompany it with a written offer, valid for at least three
+years, to give any third party, for a charge no more than your
+cost of physically performing source distribution, a complete
+machine-readable copy of the corresponding source code, to be
+distributed under the terms of Sections 1 and 2 above on a medium
+customarily used for software interchange; or,</P>
+</LI>
+
+<LI>
+<P>Accompany it with the information you received as to the offer
+to distribute corresponding source code.  (This alternative is
+allowed only for noncommercial distribution and only if you
+received the program in object code or executable form with such
+an offer, in accord with Subsection b above.)</P>
+</LI>
+</OL>
+
+<P>The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.</P>
+
+<P>If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.</P>
+
+<P>4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.</P>
+
+<P>5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.</P>
+
+<P>6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.</P>
+
+<P>7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.</P>
+
+<P>If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.</P>
+
+<P>It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.</P>
+
+<P>This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.</P>
+
+<P>8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.</P>
+
+<P>9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.</P>
+
+<P>Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.</P>
+
+<P>10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.</P>
+
+<H2><A NAME="show-w">No Warranty</A></H2>
+
+<P>11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.</P>
+
+<P>12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.</P>
+
+<DIV STYLE="text-align: center;">END OF TERMS AND CONDITIONS</DIV>
+
+<hr>
+
+<h2>How to Apply These Terms to Your New Programs</h2>
+
+<p>If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these
+terms.</p>
+
+
+<p>To do so, attach the following notices to the program.  It is
+safest to attach them to the start of each source file to most
+effectively convey the exclusion of warranty; and each file should
+have at least the "copyright" line and a pointer to where the full
+notice is found.</p>
+
+
+<pre>    &lt;one line to give the program's name and a brief idea of what it does.&gt;
+    Copyright (C) 19yy  &lt;name of author&gt;
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA</pre>
+
+<p>Also add information on how to contact you by electronic and paper
+mail.</p>
+
+<p>If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:</p>
+
+<pre>    Gnomovision version 69, Copyright (C) 19yy name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.</pre>
+
+<p>The hypothetical commands &quot;show w&quot; and &quot;show c&quot; should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than &quot;show w&quot; and &quot;show c&quot;; they could even be
+mouse-clicks or menu items--whatever suits your program.</p>
+
+<p>You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a &quot;copyright disclaimer&quot; for the program, if
+necessary.  Here is a sample; alter the names:</p>
+
+<pre>  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  &lt;signature of Ty Coon&gt;, 1 April 1989
+  Ty Coon, President of Vice</pre>
+
+<p>This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Library General
+Public License instead of this License.</p>
+
+
+
+  </BODY>
+</HTML>
diff --git a/doc/en/common/header.html b/doc/en/common/header.html
new file mode 100644 (file)
index 0000000..a0c9211
--- /dev/null
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
+<head>
+  <title>$title</title>
+
+<style type="text/css">
+  .cp-doNotDisplay { display: none; }
+  @media aural, braille, handheld, tty { .cp-doNotDisplay { display: inline; speak: normal; }}
+  .cp-edit { text-align: right; }
+  @media print, embossed { .cp-edit { display: none; }}
+</style>
+
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <meta http-equiv="Content-Style-Type" content="text/css" />
+  <link rel="meta" href="http://www.kde.org/labels.rdf" type="application/rdf+xml" title="ICRA labels" />
+  <meta name="trademark" content="KDE e.V." />
+  <meta name="description" content="K Desktop Environment Homepage, KDE.org" />
+  <meta name="MSSmartTagsPreventParsing" content="true" />
+  <meta name="robots" content="all" />
+  <meta name="no-email-collection" content="http://www.unspam.com/noemailcollection" />
+  <link rel="shortcut icon" href="@topdir@/favicon.ico" /><link rel="icon" href="@topdir@/favicon.ico" />
+  <link rel="stylesheet" type="text/css" href="@topdir@/doxygen.css" />
+  <link rel="stylesheet" type="text/css" href="@topdir@/tabs.css" />
+  <link rel="stylesheet" media="screen" type="text/css" title="KDE Colors" href="@topdir@/kde.css" />
+  <link rel="stylesheet" media="print, embossed" type="text/css" href="@topdir@/print.css" />
+  <link rel="stylesheet" media="screen, aural, handheld, tty, braille" type="text/css" title="Flat" href="@topdir@/flat.css" />
+</head>
+
+<body>
+
+<ul class="cp-doNotDisplay">
+  <li><a href="#cp-content" accesskey="2">Skip to content</a></li>
+  <li><a href="#cp-menu" accesskey="5">Skip to link menu</a></li>
+</ul>
+
+<div id="container">
+<div id="header">
+  <div id="header_top"><div><div>
+    <img alt ="" src="@topdir@/top-kde.jpg"/>
+    KDE 4.1 API Reference  </div></div></div>
+  <div id="header_bottom">
+    <div id="location">
+      <ul>
+        <li><a href="http://api.kde.org">KDE API Reference</a></li>
+        <li><a href="@topdir@/index.html">@topname@</a></li>
+      </ul>
+    </div>
+
+    <div id="menu">
+<ul><li><a href="http://kde.org/family/">Sitemap</a></li>
+<li><a href="http://kde.org/contact/">Contact Us</a></li>
+</ul>    </div>
+  </div>
+</div>
+<!-- End page header -->
+    <div id="body_wrapper">
+      <div id="body">
+        <!-- begin main content -->
+        <div id="right">
+          <div class="content">
+          <div id="main">
+            <div class="clearer">&nbsp;</div>
+<h2><a name="content"></a>$projectname</h2>
+
+<!-- BC -->
diff --git a/doc/en/common/kde-default.css b/doc/en/common/kde-default.css
new file mode 100644 (file)
index 0000000..61043e9
--- /dev/null
@@ -0,0 +1,327 @@
+/*
+    KDE-wide default CSS for HTML documentation (all media types).
+    Copyright (C) 2000 Frederik Fouvry
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+    Send comments, suggestions, etc. to Frederik Fouvry 
+    <fouvry@sfs.nphil.uni-tuebingen.de>. */
+
+/*
+   Important note: these setting may be overridden by localised CSS.  Do not 
+   add here any localization-sensitive style declarations.
+   
+   Any updates should be validated, e.g. http://jigsaw.w3.org/css-validator/ */
+
+/* Note: "should be inherit" means that in a proper browser inherit should work.
+   Somehow Netscape manages to interpret "inherit" as bright green. 
+   Yuck.  */
+
+body {
+  background: white none;
+  color: black;
+  font-family: sans-serif;
+  padding: 0 15px 0 0;
+  margin: 0; 
+}
+
+.legalnotice, .copyright {
+  padding: 0;
+  margin: 0; 
+}
+
+.abstract {
+  font-weight: bolder;
+  padding-right: 1em; 
+}
+
+.toc, .list-of-tables {
+  padding-left: 1em;
+}
+
+.sect1, .chapter, .synopsis, .appendix, .preface, .article, .refsect1, .index, .glossary, .section {
+  padding-left: 1em;
+}
+
+.toc .chapter {
+padding: 0em 0em 0em 1em;
+}
+
+.author {
+  color: rgb(82,80,82);
+  font-weight: bolder;
+  padding: 0;
+  margin: 0;
+}
+
+.othercredit {
+  line-height: 1em;
+}
+
+.chapter .sect1, .chapter .titlepage, .sect1 .titlepage, .article .titlepage {
+  padding: 0em;
+}
+
+.titlepage {
+  padding-left: 1em;
+  padding-right: 1em;
+}
+
+/* Links in Navigation */
+
+.navLeft a:link, .navCenter a:link, .navRight a:link, .header a:link, .header a:visited, .bottom-nav a:link, .bottom-nav a:visited {
+  color: #41597A;
+  font-weight: bold;
+}
+
+
+/* Nice link colors for the main text */
+
+:link { 
+  color: #41597A;
+}
+
+:visited { 
+  color: #597ba8;
+}
+
+.navLeft {
+  position: absolute; 
+  left: 20px;
+}
+
+.navRight {
+  position: absolute; 
+  right: 20px;
+}
+
+.navCenter {
+  text-align: center;
+  align: center;
+}
+
+.bannerBottomLeft {
+  position: absolute; left: 0px;
+}
+
+.bannerBottomRight {
+  position: absolute; right: 0px;
+}
+
+.header {
+  background: #3E91EB none;
+  border-bottom: 1px solid #206dcd;
+  border-top: 1px solid white;
+  color: white;
+  font-size: small;
+  height: 1.7em;
+  line-height: 1em;
+  margin: 0px;
+  padding-bottom: 0px;
+  padding-left: 1em;
+  padding-right: 0px;
+  padding-top: 0px;
+  vertical-align: middle;
+}
+
+.bottom-nav { 
+  background-color: #3E91EB; 
+  border-bottom: 1px solid #206dcd; 
+  border-top: 1px solid white;
+  color: white; 
+  font-size: small; 
+  height: 1.7em; 
+  line-height: 1em; 
+  margin: 0px; 
+  padding-bottom: 0px; 
+  padding-left: 1em;
+  padding-right: 0px; 
+  padding-top: 10px; 
+  vertical-align: middle; 
+}
+
+#logo {
+  background: url('kde_logo_bg.png') transparent repeat;
+}
+
+/* A little bit of padding makes the tables for keybindings etc much easier to read */
+
+table { 
+  padding: 5px; 
+} 
+
+dl { 
+  margin-top: 0em; 
+  margin-bottom: 0.5em; 
+}
+
+dt { 
+  margin-top: 1em; 
+}
+div.toc dt { 
+  margin-top: 0px; 
+}
+div.screenshot { 
+  margin-bottom: 1em;
+  margin-top: 1em; 
+}
+
+div.informalexample { 
+  border-style: dotted;
+  padding: 10px;
+}
+
+/* But no padding for navigation elements */
+
+.toplogo, .navbackground { 
+  padding: 0px; 
+}
+
+table.programlisting
+table.screen { 
+  border-style: none;
+  background-color: rgb(224,224,224);
+  table-layout: auto; /* 100%? */
+  color: rgb(0,0,0); /* should be inherit */
+}
+
+/* Same as previous block, but more general (previous is HTML only)
+   Not all browsers understand this yet.
+   TABLE[class~=programlisting]
+   TABLE[class~=screen] { border-style: none;
+          background-color: rgb(224,224,224);
+          table-layout: auto;
+          color: inherit;
+}
+*/
+
+p { 
+  text-align: justify; 
+}
+
+/* More specific settings */
+/* Temporary patch: browsers break on bad HTML */
+/* P, H1, H2, H3, H4, H5, TD, TH { font-family: Helvetica, Arial, sans-serif;
+    } */
+
+p, h1, h2, h3, h4, h5, h6, td, th { 
+  font-family: sans-serif;
+}
+
+/* Visual cues for GUI elements etc in the text */
+
+.guimenu, .guimenuitem, .guisubmenu { 
+  background-color: rgb(220,220,220);
+  color: rgb(0,0,0); /* should be inherit */
+}
+
+.guilabel, .interface, .guibutton { 
+  background-color: rgb(220,220,220);
+  color: rgb(0,0,0); /* should be inherit */
+}
+
+.shortcut { 
+  background-color: rgb(220,220,220);
+  color: rgb(0,0,0); /* should be inherit */
+}
+
+.shortcut .keycap { 
+  background-color: rgb(220,220,220);
+  color: rgb(0,0,0); /* should be inherit */
+}
+
+.question { 
+  font-weight: bolder; 
+}
+
+.accel { 
+  background-color: rgb(220,220,220);
+  color: rgb(0,0,0); 
+  text-decoration: underline;
+}
+
+.option, .command { 
+  background-color: rgb(255,255,255);
+  color: rgb(0,96,160);
+  font-weight: bold;
+}
+
+h1, h2, h3, h4, h5, h6 { 
+  color: rgb(82,80,82);
+  background-color: transparent;
+}
+
+.arg, .parameter, .replaceable { 
+  background-color: rgb(255,255,255);
+  color: rgb(0,128,64);
+  font-style: italic;
+}
+
+.screen, .programlisting { 
+  background-color: rgb(220,220,220);
+  color: rgb(0,0,0); /* should be inherit */
+  border-style: dotted;
+  border-color: rgb(0,0,0);
+  border-width: thin; 
+  padding: 5px; 
+} 
+
+
+/* This one is set in inches because the admonitions are set in inches
+   and they're more difficult to change.  We can live with it in here, 
+   for the meantime, it gives consistent margins */
+
+.example { 
+  margin-left: 0.5in; 
+  margin-right: 0.5in;
+}
+
+div.mediaobject { 
+  /* float: right; */ 
+  /* might make it much nicer. although someone has to
+     understand the rules ;-)  You also don't want it to be
+     surrounded by text it doesn't refer to ...  But that
+     may be among others a question of writing style. */
+  text-align: center; /* a bit of a hack: it should
+                         position _images_ */
+}
+
+.caption { 
+  margin: 0em 2em 3em 2em; 
+  text-align: center;
+}
+
+.inlinemediaobject { 
+  vertical-align: baseline; 
+  padding-right: 1em;
+  padding-left: 1em;           
+}
+
+/* An idea that could be nice: a search engine looking for specific
+classes could display them in some conspicuous color.  All that is
+needed is an on the fly generated style element/style sheet. */
+
+/* Only used in the hand-made HTML license texts */
+body.license { 
+  background-color: rgb(255,255,255);
+  text-align: justify; 
+  color: rgb(0,0,0);
+}
+pre.license { 
+  background-color: rgb(255,255,255);
+  font-family: monospace;
+  color: rgb(0,0,0);
+}
+
diff --git a/doc/en/common/kde_logo_bg.png b/doc/en/common/kde_logo_bg.png
new file mode 100644 (file)
index 0000000..6cf47f1
Binary files /dev/null and b/doc/en/common/kde_logo_bg.png differ
diff --git a/doc/en/common/lgpl-license b/doc/en/common/lgpl-license
new file mode 100644 (file)
index 0000000..ec47efc
--- /dev/null
@@ -0,0 +1,504 @@
+                 GNU LESSER GENERAL PUBLIC LICENSE
+                      Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+     51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL.  It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+                           Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it.  You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+  When we speak of free software, we are referring to freedom of use,
+not price.  Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+  To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights.  These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  To protect each distributor, we want to make it very clear that
+there is no warranty for the free library.  Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+\f
+  Finally, software patents pose a constant threat to the existence of
+any free program.  We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder.  Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+  Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License.  This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License.  We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+  When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library.  The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom.  The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+  We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License.  It also provides other free software developers Less
+of an advantage over competing non-free programs.  These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries.  However, the Lesser license provides advantages in certain
+special circumstances.
+
+  For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard.  To achieve this, non-free programs must be
+allowed to use the library.  A more frequent case is that a free
+library does the same job as widely used non-free libraries.  In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+  In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software.  For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+  Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+\f
+                 GNU LESSER GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+  
+  1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+  You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+\f
+  2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+\f
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+  If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+\f
+  6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Use a suitable shared library mechanism for linking with the
+    Library.  A suitable mechanism is one that (1) uses at run time a
+    copy of the library already present on the user's computer system,
+    rather than copying library functions into the executable, and (2)
+    will operate properly with a modified version of the library, if
+    the user installs one, as long as the modified version is
+    interface-compatible with the version that the work was made with.
+
+    c) Accompany the work with a written offer, valid for at
+    least three years, to give the same user the materials
+    specified in Subsection 6a, above, for a charge no more
+    than the cost of performing this distribution.
+
+    d) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    e) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+\f
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+  9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+\f
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded.  In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+\f
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+                           NO WARRANTY
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+                    END OF TERMS AND CONDITIONS
+\f
+           How to Apply These Terms to Your New Libraries
+
+  If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change.  You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+  To apply these terms, attach the following notices to the library.  It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the library's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+  <signature of Ty Coon>, 1 April 1990
+  Ty Coon, President of Vice
+
+That's all there is to it!
+
+
diff --git a/doc/en/common/lgpl-license.html b/doc/en/common/lgpl-license.html
new file mode 100644 (file)
index 0000000..343576d
--- /dev/null
@@ -0,0 +1,502 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+                   "http://www.w3.org/TR/html40/strict.dtd">
+<HTML LANG="en-US">
+  <HEAD>
+    <TITLE>GNU Lesser General Public License</TITLE>
+    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
+    <META HTTP-EQUIV="Content-Language" CONTENT="en-US">
+    <META NAME="description" CONTENT="GNU lesser general public license (for inclusion in library distributions)">
+    <META NAME="keywords" CONTENT="gnu, Gnu, GNU, license, licence, software, free software, software license, software licence, GNU general public license, GNU General Public License, library licence, library license, software library, software libraries, GNU lesser general public license, GNU Lesser General Public License">
+    <META NAME="robots" CONTENT="none">
+    <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+    <LINK REL="stylesheet" HREF="kde-default.css" TYPE="text/css">
+  </HEAD>
+  <BODY CLASS="license">
+<H1>GNU LESSER GENERAL PUBLIC LICENSE</H1>
+<P>Version 2.1, February 1999</P>
+
+<P>Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA<BR>
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.</P>
+
+<P>[This is the first released version of the Lesser GPL.  It also counts
+as the successor of the GNU Library Public License, version 2, hence
+the version number 2.1.]</P>
+
+<H2>Preamble</H2>
+
+<P>The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.</P>
+
+<P>This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it.  You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.</P>
+
+<P>When we speak of free software, we are referring to freedom of use,
+not price.  Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.</P>
+
+<P>To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights.  These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.</P>
+
+<P>For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.</P>
+
+<P>We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.</P>
+
+<P>To protect each distributor, we want to make it very clear that
+there is no warranty for the free library.  Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.</P>
+
+<P>Finally, software patents pose a constant threat to the existence of
+any free program.  We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder.  Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.</P>
+
+<P>Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License.  This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License.  We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.</P>
+
+<P>When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library.  The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom.  The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.</P>
+
+<P>We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License.  It also provides other free software developers Less
+of an advantage over competing non-free programs.  These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries.  However, the Lesser license provides advantages in certain
+special circumstances.</P>
+
+<P>For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard.  To achieve this, non-free programs must be
+allowed to use the library.  A more frequent case is that a free
+library does the same job as widely used non-free libraries.  In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.</P>
+
+<P>In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software.  For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.</P>
+
+<P>Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.</P>
+
+<P>The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.</P>
+
+<H2>GNU Lesser General Public License<BR>
+Terms And Conditions For Copying, Distribution And Modification</H2>
+
+<P>0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".</P>
+
+<P>A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.</P>
+
+<P>The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)</P>
+
+<P>"Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.</P>
+
+<P>Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.</P>
+
+<P>1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.</P>
+
+<P>You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.</P>
+
+<P>2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:</P>
+
+<OL STYLE="list-style-type: lower-alpha;">
+<LI>
+<P>The modified work must itself be a software library.</P>
+</LI>
+
+<LI>
+<P>You must cause the files modified to carry prominent notices
+stating that you changed the files and the date of any change.</P>
+</LI>
+
+<LI>
+<P>You must cause the whole of the work to be licensed at no
+charge to all third parties under the terms of this License.</P>
+</LI>
+
+<LI>
+<P>If a facility in the modified Library refers to a function or a
+table of data to be supplied by an application program that uses
+the facility, other than as an argument passed when the facility
+is invoked, then you must make a good faith effort to ensure that,
+in the event an application does not supply such function or
+table, the facility still operates, and performs whatever part of
+its purpose remains meaningful.</P>
+
+<P>(For example, a function in a library to compute square roots has
+a purpose that is entirely well-defined independent of the
+application.  Therefore, Subsection 2d requires that any
+application-supplied function or table used by this function must
+be optional: if the application does not supply it, the square
+root function must still compute square roots.)</P>
+</LI>
+</OL>
+
+<P>These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.</P>
+
+<P>Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.</P>
+
+<P>In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.</P>
+
+<P>3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.</P>
+
+<P>Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.</P>
+
+<P>This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.</P>
+
+<P>4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.</P>
+
+<P>If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.</P>
+
+<P>5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.</P>
+
+<P>However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.</P>
+
+<P>When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.</P>
+
+<P>If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)</P>
+
+<P>Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.</P>
+
+<P>6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.</P>
+
+<P>You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:</P>
+
+<OL STYLE="list-style-type: lower-alpha;">
+<LI>
+<P>Accompany the work with the complete corresponding
+machine-readable source code for the Library including whatever
+changes were used in the work (which must be distributed under
+Sections 1 and 2 above); and, if the work is an executable linked
+with the Library, with the complete machine-readable "work that
+uses the Library", as object code and/or source code, so that the
+user can modify the Library and then relink to produce a modified
+executable containing the modified Library.  (It is understood
+that the user who changes the contents of definitions files in the
+Library will not necessarily be able to recompile the application
+to use the modified definitions.)</P>
+</LI>
+
+<LI>
+<P>Use a suitable shared library mechanism for linking with the
+Library.  A suitable mechanism is one that (1) uses at run time a
+copy of the library already present on the user's computer system,
+rather than copying library functions into the executable, and (2)
+will operate properly with a modified version of the library, if
+the user installs one, as long as the modified version is
+interface-compatible with the version that the work was made with.</P>
+</LI>
+
+<LI>
+<P>Accompany the work with a written offer, valid for at
+least three years, to give the same user the materials
+specified in Subsection 6a, above, for a charge no more
+than the cost of performing this distribution.</P>
+</LI>
+
+<LI>
+<P>If distribution of the work is made by offering access to copy
+from a designated place, offer equivalent access to copy the above
+specified materials from the same place.</P>
+</LI>
+
+<LI>
+<P>Verify that the user has already received a copy of these
+materials or that you have already sent this user a copy.</P>
+</LI>
+</OL>
+
+<P>For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.</P>
+
+<P>It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.</P>
+
+<P>7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:</P>
+
+<OL STYLE="list-style-type: lower-alpha;">
+<LI>
+<P>Accompany the combined library with a copy of the same work
+based on the Library, uncombined with any other library
+facilities.  This must be distributed under the terms of the
+Sections above.</P>
+</LI>
+
+<LI>
+<P>Give prominent notice with the combined library of the fact
+that part of it is a work based on the Library, and explaining
+where to find the accompanying uncombined form of the same work.</P>
+</LI>
+</OL>
+
+<P>8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.</P>
+
+<P>9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.</P>
+
+<P>10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.</P>
+
+<P>11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.</P>
+
+<P>If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.</P>
+
+<P>It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.</P>
+
+<P>This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.</P>
+
+<P>12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded.  In such case, this License incorporates the limitation as if
+written in the body of this License.</P>
+
+<P>13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.</P>
+
+<P>Each version is given a distinguishing version number.  If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.</P>
+
+<P>14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.</P>
+
+<H2>No Warranty</H2>
+
+<P>15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.</P>
+
+<P>16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.</P>
+
+<DIV STYLE="text-align: center;">END OF TERMS AND CONDITIONS</DIV>
+  </BODY>
+</HTML>
diff --git a/doc/en/common/mainfooter.html b/doc/en/common/mainfooter.html
new file mode 100644 (file)
index 0000000..491e706
--- /dev/null
@@ -0,0 +1,72 @@
+<div class="copyrights">
+This file is part of the documentation for $projectname $projectnumber.<br/>
+Documentation copyright &copy; @copyright@.<br/>
+Generated on $datetime by
+<a href="http://www.doxygen.org/index.html">doxygen</a> $doxygenversion written
+by <a href="mailto:dimitri@stack.nl">Dimitri van Heesch</a>, &copy;&nbsp;1997-2006
+<p>
+KDE's <a href="http://techbase.kde.org/Policies/Library_Documentation_Policy">Doxygen guidelines</a> are available online.
+Questions about the reference manuals should be sent to 
+<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;groo&#116;&#64;kde&#46;or&#x67;">Adriaan de Groot</a>
+or 
+<a href="&#109;a&#105;&#108;&#116;&#111;&#58;w&#105;n&#116;er&#64;kde&#46;or&#x67;">Allen Winter</a>.
+
+</p>
+</div>
+            </div>
+          </div>
+        </div>
+        <div id="left">
+          <div class="menu_box">
+
+<!-- menu -->
+<!-- cmenu.begin -->
+<h2>Class Picker</h2>
+<div style="text-align: center;">
+<form name="guideform">
+<select name="guidelinks" style="width:100%;" onChange="window.location=document.guideform.guidelinks.options[document.guideform.guidelinks.selectedIndex].value">
+<option value="annotated.html">Choose...</option>
+<!-- cmenu -->
+</select>
+</form>
+</div>
+<!-- cmenu.end -->
+
+<div class="menu_box">
+<a name="cp-menu" /><div class="menutitle"><div>
+<h2 id="cp-menu-project">@topname@</h2>
+<a href="#cp-skip-project" class="cp-doNotDisplay">Skip menu "$projectname"</a>
+</div></div>
+<div class="nav_list">
+<ul>
+<!-- gmenu -->
+</ul></div></div>
+
+          </div>
+        </div>
+        <div class="clearer"></div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+
+
+    <div id="end_body"></div>
+
+    <div id="footer"><div id="footer_text">
+    This website is maintained by <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;groo&#116;&#64;kde&#46;or&#x67;">Adriaan de Groot</a>
+and
+<a href="&#109;a&#105;&#108;&#116;&#111;&#58;w&#105;n&#116;er&#64;kde&#46;or&#x67;">Allen Winter</a>.<br />
+        KDE<sup>&#174;</sup> and <a href="@topdir@/kde_gear_black.png">the K Desktop Environment<sup>&#174;</sup> logo</a> are registered trademarks of <a href="http://ev.kde.org/" title="Homepage of the KDE non-profit Organization">KDE e.V.</a> |
+        <a href="http://www.kde.org/contact/impressum.php">Legal</a>
+    </div></div>
+  </div>
+
+<!--
+WARNING: DO NOT SEND MAIL TO THE FOLLOWING EMAIL ADDRESS! YOU WILL
+BE BLOCKED INSTANTLY AND PERMANENTLY!
+<a href="mailto:aaaatrap-45abe0e0c3bebc77@kde.org">Block me</a>
+WARNING END
+-->
+
+</body>
+</html>
diff --git a/doc/en/common/mainheader.html b/doc/en/common/mainheader.html
new file mode 100644 (file)
index 0000000..2f5ad32
--- /dev/null
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
+<head>
+  <title>$title</title>
+
+<style type="text/css">
+  .cp-doNotDisplay { display: none; }
+  @media aural, braille, handheld, tty { .cp-doNotDisplay { display: inline; speak: normal; }}
+  .cp-edit { text-align: right; }
+  @media print, embossed { .cp-edit { display: none; }}
+</style>
+
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <meta http-equiv="Content-Style-Type" content="text/css" />
+  <link rel="meta" href="http://www.kde.org/labels.rdf" type="application/rdf+xml" title="ICRA labels" />
+  <meta name="trademark" content="KDE e.V." />
+  <meta name="description" content="K Desktop Environment Homepage, KDE.org" />
+  <meta name="MSSmartTagsPreventParsing" content="true" />
+  <meta name="robots" content="all" />
+  <meta name="no-email-collection" content="http://www.unspam.com/noemailcollection" />
+  <link rel="shortcut icon" href="@topdir@/favicon.ico" /><link rel="icon" href="@topdir@/favicon.ico" />
+  <link rel="stylesheet" type="text/css" href="@topdir@/doxygen.css" />
+  <link rel="stylesheet" type="text/css" href="@topdir@/tabs.css" />
+  <link rel="stylesheet" media="screen" type="text/css" title="KDE Colors" href="@topdir@/kde.css" />
+  <link rel="stylesheet" media="print, embossed" type="text/css" href="@topdir@/print.css" />
+  <link rel="stylesheet" media="screen, aural, handheld, tty, braille" type="text/css" title="Flat" href="@topdir@/flat.css" />
+</head>
+
+<body>
+
+<ul class="cp-doNotDisplay">
+  <li><a href="#cp-content" accesskey="2">Skip to content</a></li>
+  <li><a href="#cp-menu" accesskey="5">Skip to link menu</a></li>
+</ul>
+
+<div id="container">
+<div id="header">
+  <div id="header_top"><div><div>
+    <img alt ="" src="@topdir@/top-kde.jpg"/>
+    KDE 4.1 API Reference  </div></div></div>
+  <div id="header_bottom">
+    <div id="location">
+      <ul>
+        <li><a href="http://api.kde.org">KDE API Reference</a></li>
+      </ul>
+    </div>
+
+    <div id="menu">
+<ul><li><a href="http://kde.org/family/">Sitemap</a></li>
+<li><a href="http://kde.org/contact/">Contact Us</a></li>
+</ul>    </div>
+  </div>
+</div>
+<!-- End page header -->
+    <div id="body_wrapper">
+      <div id="body">
+        <!-- begin main content -->
+        <div id="right">
+          <div class="content">
+          <div id="main">
+            <div class="clearer">&nbsp;</div>
+<h2><a name="content"></a>$projectname</h2>
+
+<!-- BC -->
diff --git a/doc/en/common/qpl-license.html b/doc/en/common/qpl-license.html
new file mode 100644 (file)
index 0000000..19a863b
--- /dev/null
@@ -0,0 +1,164 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+                   "http://www.w3.org/TR/html40/strict.dtd">
+<HTML LANG="en-US">
+  <HEAD>
+    <TITLE>The Q Public License - version 1.0</TITLE>
+    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
+    <META HTTP-EQUIV="Content-Language" CONTENT="en-US">
+    <META NAME="description" CONTENT="Q Public License">
+    <META NAME="keywords" CONTENT="Q, q, Q Public License, Q public license, q public license, public license, Q Public Licence, Q public licence, q public licence, public licence, license, licence, software, softwarelicense, Troll, troll, Troll License, troll license, Troll Licence, troll licence">
+    <META NAME="robots" CONTENT="none">
+    <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+    <LINK REL="stylesheet" HREF="kde-default.css" TYPE="text/css">
+  </HEAD>
+  <BODY CLASS="license">
+    <H1>The Q Public License</H1>
+    <P>version 1.0</P>
+    
+    <P>Copyright (C) 1999-2000 Troll Tech AS, Norway.<BR>
+      Everyone is permitted to copy and distribute this license
+      document.
+    </P>
+
+    <P>The intent of this license is to establish freedom to share and
+      change the software regulated by this license under the open
+      source model.</P>
+
+    <P>This license applies to any software containing a notice placed
+      by the copyright holder saying that it may be distributed under
+      the terms of the Q Public License version 1.0.  Such software is
+      herein referred to as the Software.  This license covers
+      modification and distribution of the Software, use of
+      third-party application programs based on the Software, and
+      development of free software which uses the Software.</P>
+
+    <H2>Granted Rights</H2>
+
+    <OL STYLE="list-style-type: decimal;">
+      <LI>
+       <P>You are granted the non-exclusive rights set forth in this
+         license provided you agree to and comply with any and all
+         conditions in this license.  Whole or partial distribution
+         of the Software, or software items that link with the
+         Software, in any form signifies acceptance of this
+         license.</P>
+      </LI>
+
+      <LI>
+       <P>You may copy and distribute the Software in unmodified form
+         provided that the entire package, including - but not
+         restricted to - copyright, trademark notices and
+         disclaimers, as released by the initial developer of the
+         Software, is distributed.</P></LI>
+
+      <LI>
+       <P>You may make modifications to the Software and distribute
+         your modifications, in a form that is separate from the
+         Software, such as patches. The following restrictions apply
+         to modifications:</P>
+
+       <OL STYLE="list-style-type: lower-alpha;">
+         <LI>
+           <P>Modifications must not alter or remove any copyright
+             notices in the Software.</P></LI>
+         <LI>
+           <P>When modifications to the Software are released under
+             this license, a non-exclusive royalty-free right is
+             granted to the initial developer of the Software to
+             distribute your modification in future versions of the
+             Software provided such versions remain available under
+             these terms in addition to any other license(s) of the
+             initial developer.</P>
+         </LI>
+       </OL>
+
+      <LI>
+       <P>You may distribute machine-executable forms of the Software
+         or machine-executable forms of modified versions of the
+         Software, provided that you meet these restrictions:</P>
+
+       <OL STYLE="list-style-type: lower-alpha;">
+         <LI>
+           <P>You must include this license document in the
+             distribution.</P>
+         </LI>
+
+         <LI>
+           <P>You must ensure that all recipients of the
+             machine-executable forms are also able to receive the
+             complete machine-readable source code to the distributed
+             Software, including all modifications, without any
+             charge beyond the costs of data transfer, and place
+             prominent notices in the distribution explaining
+             this.</P>
+         </LI>
+
+         <LI>
+           <P>You must ensure that all modifications included in the
+             machine-executable forms are available under the terms
+             of this license.</P>
+         </LI>
+       </OL>
+      </LI>
+
+      <LI>
+       <P>You may use the original or modified versions of the
+         Software to compile, link and run application programs
+         legally developed by you or by others.</P>
+      </LI>
+
+      <LI>
+       <P>You may develop application programs, reusable components
+         and other software items that link with the original or
+         modified versions of the Software.  These items, when
+         distributed, are subject to the following requirements:</P>
+
+       <OL STYLE="list-style-type: lower-alpha;">
+         <LI>
+           <P>You must ensure that all recipients of
+             machine-executable forms of these items are also able to
+             receive and use the complete machine-readable source
+             code to the items without any charge beyond the costs of
+             data transfer.</P>
+         </LI>
+
+         <LI>
+           <P>You must explicitly license all recipients of your
+             items to use and re-distribute original and modified
+             versions of the items in both machine-executable and
+             source code forms. The recipients must be able to do so
+             without any charges whatsoever, and they must be able to
+             re-distribute to anyone they choose.</P>
+         </LI>
+
+         <LI>
+           <P>If the items are not available to the general public,
+             and the initial developer of the Software requests a
+             copy of the items, then you must supply one.</P>
+         </LI>
+       </OL>
+      </LI>
+    </OL>
+
+    <H2>Limitations of Liability</H2>
+
+    <P>In no event shall the initial developers or copyright holders
+      be liable for any damages whatsoever, including - but not
+      restricted to - lost revenue or profits or other direct,
+      indirect, special, incidental or consequential damages, even if
+      they have been advised of the possibility of such damages,
+      except to the extent invariable law, if any, provides
+      otherwise.</P>
+
+    <H2>No Warranty</H2>
+
+    <P>The Software and this license document are provided AS IS with
+      NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN,
+      MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.</P>
+
+    <H2>Choice of Law</H2>
+
+    <P>This license is governed by the Laws of Norway. Disputes shall
+      be settled by Oslo City Court.</P>
+  </BODY>
+</HTML>
diff --git a/doc/en/common/tabs.css b/doc/en/common/tabs.css
new file mode 100644 (file)
index 0000000..a61552a
--- /dev/null
@@ -0,0 +1,102 @@
+/* tabs styles, based on http://www.alistapart.com/articles/slidingdoors */
+
+DIV.tabs
+{
+   float            : left;
+   width            : 100%;
+   background       : url("tab_b.gif") repeat-x bottom;
+   margin-bottom    : 4px;
+}
+
+DIV.tabs UL
+{
+   margin           : 0px;
+   padding-left     : 10px;
+   list-style       : none;
+}
+
+DIV.tabs LI, DIV.tabs FORM
+{
+   display          : inline;
+   margin           : 0px;
+   padding          : 0px;
+}
+
+DIV.tabs FORM
+{
+   float            : right;
+}
+
+DIV.tabs A
+{
+   float            : left;
+   background       : url("tab_r.gif") no-repeat right top;
+   border-bottom    : 1px solid #84B0C7;
+   font-size        : x-small;
+   font-weight      : bold;
+   text-decoration  : none;
+}
+
+DIV.tabs A:hover
+{
+   background-position: 100% -150px;
+}
+
+DIV.tabs A:link, DIV.tabs A:visited,
+DIV.tabs A:active, DIV.tabs A:hover
+{
+       color: #1A419D;
+}
+
+DIV.tabs SPAN
+{
+   float            : left;
+   display          : block;
+   background       : url("tab_l.gif") no-repeat left top;
+   padding          : 5px 9px;
+   white-space      : nowrap;
+}
+
+DIV.tabs INPUT
+{
+   float            : right;
+   display          : inline;
+   font-size        : 1em;
+}
+
+DIV.tabs TD
+{
+   font-size        : x-small;
+   font-weight      : bold;
+   text-decoration  : none;
+}
+
+
+
+/* Commented Backslash Hack hides rule from IE5-Mac \*/
+DIV.tabs SPAN {float : none;}
+/* End IE5-Mac hack */
+
+DIV.tabs A:hover SPAN
+{
+   background-position: 0% -150px;
+}
+
+DIV.tabs LI#current A
+{
+   background-position: 100% -150px;
+   border-width     : 0px;
+}
+
+DIV.tabs LI#current SPAN
+{
+   background-position: 0% -150px;
+   padding-bottom   : 6px;
+}
+
+DIV.nav
+{
+   background       : none;
+   border           : none;
+   border-bottom    : 1px solid #84B0C7;
+}
diff --git a/doc/en/common/top-kde.jpg b/doc/en/common/top-kde.jpg
new file mode 100644 (file)
index 0000000..48967d3
Binary files /dev/null and b/doc/en/common/top-kde.jpg differ
diff --git a/doc/en/common/top-left.jpg b/doc/en/common/top-left.jpg
new file mode 100644 (file)
index 0000000..23c31c7
Binary files /dev/null and b/doc/en/common/top-left.jpg differ
diff --git a/doc/en/common/top-left.png b/doc/en/common/top-left.png
new file mode 100644 (file)
index 0000000..22e3bc6
Binary files /dev/null and b/doc/en/common/top-left.png differ
diff --git a/doc/en/common/top-middle.png b/doc/en/common/top-middle.png
new file mode 100644 (file)
index 0000000..280ee2e
Binary files /dev/null and b/doc/en/common/top-middle.png differ
diff --git a/doc/en/common/top-right.jpg b/doc/en/common/top-right.jpg
new file mode 100644 (file)
index 0000000..22d2a29
Binary files /dev/null and b/doc/en/common/top-right.jpg differ
diff --git a/doc/en/common/top-right.png b/doc/en/common/top-right.png
new file mode 100644 (file)
index 0000000..02598bc
Binary files /dev/null and b/doc/en/common/top-right.png differ
diff --git a/doc/en/common/top.jpg b/doc/en/common/top.jpg
new file mode 100644 (file)
index 0000000..8be8caa
Binary files /dev/null and b/doc/en/common/top.jpg differ
diff --git a/doc/en/common/x11-license.html b/doc/en/common/x11-license.html
new file mode 100644 (file)
index 0000000..444a27b
--- /dev/null
@@ -0,0 +1,45 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+                   "http://www.w3.org/TR/html40/strict.dtd">
+<HTML LANG="en-US">
+  <HEAD>
+    <TITLE>X Window System License - X11R6.4</TITLE>
+    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
+    <META HTTP-EQUIV="Content-Language" CONTENT="en-US">
+    <META NAME="description" CONTENT="X Window System License - X11R6.4">
+    <META NAME="keywords" CONTENT="X, x, X Window, x window, X Windows, x windows, X Window System License, x window system license, X Window System Licence, x window system licence, X11R6.4, x11r6.4, x11r64, license, licence, software, softwarelicense">
+    <META NAME="robots" CONTENT="none">
+    <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+    <LINK REL="stylesheet" HREF="kde-default.css" TYPE="text/css">
+  </HEAD>
+  <BODY CLASS="license">
+    <H1>X Window System License - X11R6.4</H1>
+
+    <P>Copyright (c) 1998 The Open Group</P>
+
+    <P>Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation files
+(the "Software"), to deal in the Software without restriction,
+including without limitation the rights to use, copy, modify, merge,
+publish, distribute, sublicense, and/or sell copies of the Software,
+and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:</P>
+
+    <P>The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.</P>
+
+    <P>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.</P>
+
+    <P>Except as contained in this notice, the name of The Open Group
+shall not be used in advertising or otherwise to promote the sale, use
+or other dealings in this Software without prior written authorization
+from The Open Group.</P>
+
+    <P>X Window System is a trademark of The Open Group</P>
+  </BODY>
+</HTML>
diff --git a/doc/en/common/xml.dcl b/doc/en/common/xml.dcl
new file mode 100644 (file)
index 0000000..fed2103
--- /dev/null
@@ -0,0 +1,179 @@
+<!SGML -- SGML Declaration for valid XML documents --
+     "ISO 8879:1986 (WWW)"
+
+     CHARSET
+         BASESET
+             "ISO Registration Number 176//CHARSET
+             ISO/IEC 10646-1:1993 UCS-4 with implementation 
+             level 3//ESC 2/5 2/15 4/6"
+         DESCSET
+                0       9       UNUSED
+                9       2       9
+                11      2       UNUSED
+                13      1       13
+                14      18      UNUSED
+                32      95      32
+                127     1       UNUSED
+                128     32      UNUSED
+             -- use this instead of the official declaration because SP only
+                supports 16-bit characters --
+                160     65374   160
+                65534   2       UNUSED 
+             -- 55296   2048    UNUSED
+                57344   8190    57344
+                65534   2       UNUSED
+                65536   1048576 65536 --
+     CAPACITY NONE
+
+     SCOPE DOCUMENT
+
+     SYNTAX
+         SHUNCHAR NONE
+         BASESET "ISO Registration Number 176//CHARSET
+                 ISO/IEC 10646-1:1993 UCS-4 with implementation 
+                 level 3//ESC 2/5 2/15 4/6"
+         DESCSET
+             0 1114112 0
+         FUNCTION
+             RE    13
+             RS    10
+             SPACE 32
+             TAB   SEPCHAR 9
+
+         NAMING
+             LCNMSTRT ""
+             UCNMSTRT ""
+             NAMESTRT
+                 58 95 192-214 216-246 248-305 308-318 321-328
+                 330-382 384-451 461-496 500-501 506-535 592-680
+                 699-705 902 904-906 908 910-929 931-974 976-982
+                 986 988 990 992 994-1011 1025-1036 1038-1103
+                 1105-1116 1118-1153 1168-1220 1223-1224
+                 1227-1228 1232-1259 1262-1269 1272-1273
+                 1329-1366 1369 1377-1414 1488-1514 1520-1522
+                 1569-1594 1601-1610 1649-1719 1722-1726
+                 1728-1742 1744-1747 1749 1765-1766 2309-2361
+                 2365 2392-2401 2437-2444 2447-2448 2451-2472
+                 2474-2480 2482 2486-2489 2524-2525 2527-2529
+                 2544-2545 2565-2570 2575-2576 2579-2600
+                 2602-2608 2610-2611 2613-2614 2616-2617
+                 2649-2652 2654 2674-2676 2693-2699 2701
+                 2703-2705 2707-2728 2730-2736 2738-2739
+                 2741-2745 2749 2784 2821-2828 2831-2832
+                 2835-2856 2858-2864 2866-2867 2870-2873 2877
+                 2908-2909 2911-2913 2949-2954 2958-2960
+                 2962-2965 2969-2970 2972 2974-2975 2979-2980
+                 2984-2986 2990-2997 2999-3001 3077-3084
+                 3086-3088 3090-3112 3114-3123 3125-3129
+                 3168-3169 3205-3212 3214-3216 3218-3240
+                 3242-3251 3253-3257 3294 3296-3297 3333-3340
+                 3342-3344 3346-3368 3370-3385 3424-3425
+                 3585-3630 3632 3634-3635 3648-3653 3713-3714
+                 3716 3719-3720 3722 3725 3732-3735 3737-3743
+                 3745-3747 3749 3751 3754-3755 3757-3758 3760
+                 3762-3763 3773 3776-3780 3904-3911 3913-3945
+                 4256-4293 4304-4342 4352 4354-4355 4357-4359
+                 4361 4363-4364 4366-4370 4412 4414 4416 4428
+                 4430 4432 4436-4437 4441 4447-4449 4451 4453
+                 4455 4457 4461-4462 4466-4467 4469 4510 4520
+                 4523 4526-4527 4535-4536 4538 4540-4546 4587
+                 4592 4601 7680-7835 7840-7929 7936-7957
+                 7960-7965 7968-8005 8008-8013 8016-8023 8025
+                 8027 8029 8031-8061 8064-8116 8118-8124 8126
+                 8130-8132 8134-8140 8144-8147 8150-8155
+                 8160-8172 8178-8180 8182-8188 8486 8490-8491
+                 8494 8576-8578 12295 12321-12329 12353-12436
+                 12449-12538 12549-12588 19968-40869 44032-55203
+
+             LCNMCHAR ""
+             UCNMCHAR ""
+             NAMECHAR
+                 45-46 183 720-721 768-837 864-865 903 1155-1158
+                 1425-1441 1443-1465 1467-1469 1471 1473-1474
+                 1476 1600 1611-1618 1632-1641 1648 1750-1764
+                 1767-1768 1770-1773 1776-1785 2305-2307 2364
+                 2366-2381 2385-2388 2402-2403 2406-2415
+                 2433-2435 2492 2494-2500 2503-2504 2507-2509
+                 2519 2530-2531 2534-2543 2562 2620 2622-2626
+                 2631-2632 2635-2637 2662-2673 2689-2691 2748
+                 2750-2757 2759-2761 2763-2765 2790-2799
+                 2817-2819 2876 2878-2883 2887-2888 2891-2893
+                 2902-2903 2918-2927 2946-2947 3006-3010
+                 3014-3016 3018-3021 3031 3047-3055 3073-3075
+                 3134-3140 3142-3144 3146-3149 3157-3158
+                 3174-3183 3202-3203 3262-3268 3270-3272
+                 3274-3277 3285-3286 3302-3311 3330-3331
+                 3390-3395 3398-3400 3402-3405 3415 3430-3439
+                 3633 3636-3642 3654-3662 3664-3673 3761
+                 3764-3769 3771-3772 3782 3784-3789 3792-3801
+                 3864-3865 3872-3881 3893 3895 3897 3902-3903
+                 3953-3972 3974-3979 3984-3989 3991 3993-4013
+                 4017-4023 4025 8400-8412 8417 12293 12330-12335
+                 12337-12341 12441-12442 12445-12446 12540-12542
+
+             NAMECASE
+                 GENERAL NO
+                 ENTITY  NO
+
+         DELIM
+             GENERAL SGMLREF
+             HCRO "&#38;#x" -- 38 is the number for ampersand --
+             NESTC "/"
+             NET ">"
+             PIC "?>"
+             SHORTREF NONE
+
+         NAMES
+             SGMLREF
+
+         QUANTITY NONE
+
+         ENTITIES
+             "amp" 38
+             "lt" 60
+             "gt" 62
+             "quot" 34
+             "apos" 39
+
+     FEATURES
+         MINIMIZE
+             DATATAG NO
+             OMITTAG NO
+             RANK NO
+             SHORTTAG
+                 STARTTAG
+                     EMPTY NO
+                     UNCLOSED NO 
+                     NETENABL IMMEDNET
+                 ENDTAG
+                     EMPTY NO 
+                     UNCLOSED NO
+                 ATTRIB
+                     DEFAULT YES
+                     OMITNAME NO
+                     VALUE NO
+             EMPTYNRM YES
+             IMPLYDEF
+                 ATTLIST NO
+                 DOCTYPE NO
+                 ELEMENT NO
+                 ENTITY NO
+                 NOTATION NO
+         LINK
+             SIMPLE NO
+             IMPLICIT NO
+             EXPLICIT NO
+         OTHER
+             CONCUR NO
+             SUBDOC NO
+             FORMAL NO
+             URN NO
+             KEEPRSRE YES
+             VALIDITY TYPE
+             ENTITIES
+                 REF ANY
+                 INTEGRAL YES
+     APPINFO NONE
+     SEEALSO "ISO 8879:1986//NOTATION
+             Extensible Markup Language (XML) 1.0//EN"
+>
diff --git a/doc/en/dirbrowser.png b/doc/en/dirbrowser.png
new file mode 100644 (file)
index 0000000..1d3151f
Binary files /dev/null and b/doc/en/dirbrowser.png differ
diff --git a/doc/en/dirmergebig.png b/doc/en/dirmergebig.png
new file mode 100644 (file)
index 0000000..3d05e8a
Binary files /dev/null and b/doc/en/dirmergebig.png differ
diff --git a/doc/en/index.docbook b/doc/en/index.docbook
new file mode 100644 (file)
index 0000000..e604ded
--- /dev/null
@@ -0,0 +1,2126 @@
+<?xml version="1.0" ?>
+<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
+  <!ENTITY kdiff3 "<application>KDiff3</application>">
+  <!ENTITY kappname "&kdiff3;">
+  <!ENTITY package "extragear-utils">
+  <!ENTITY % addindex "IGNORE">
+  <!ENTITY % English "INCLUDE">
+]>
+
+<book lang="&language;">
+
+<!-- This header contains all of the meta-information for the document such
+as Authors, publish date, the abstract, and Keywords -->
+
+<bookinfo>
+<title>The &kdiff3; Handbook</title>
+
+<authorgroup>
+<author>
+<!--<personname>-->
+<firstname>Joachim</firstname>
+<surname>Eibl</surname>
+<!--</personname>-->
+<affiliation><address>
+   <email>joachim.eibl at gmx.de</email>
+</address></affiliation>
+</author>
+<!-- TRANS:ROLES_OF_TRANSLATORS -->
+</authorgroup>
+
+<copyright>
+<year>2002-2007</year>
+<holder>Joachim Eibl</holder>
+</copyright>
+<!-- Translators: put here the copyright notice of the translation -->
+<!-- Put here the FDL notice.  Read the explanation in fdl-notice.docbook
+     and in the FDL itself on how to use it. -->
+<legalnotice>&FDLNotice;</legalnotice>
+
+<!-- Date and version information of the documentation
+Don't forget to include this last date and this last revision number, we
+need them for translation coordination !
+Please respect the format of the date (YYYY-MM-DD) and of the version
+(V.MM.LL), it could be used by automation scripts.
+Do NOT change these in the translation. -->
+
+<date>2007-31-03</date>
+<releaseinfo>0.9.92</releaseinfo>
+
+
+<abstract>
+<para>
+   &kdiff3; is a file and directory diff and merge tool which
+<itemizedlist>
+<listitem><para>compares and merges two or three text input files or directories,</para></listitem>
+<listitem><para>shows the differences line by line and character by character(!),</para></listitem>
+<listitem><para>provides an automatic merge-facility,</para></listitem>
+<listitem><para>has an editor for comfortable solving of merge-conflicts,</para></listitem>
+<listitem><para>provides networktransparency via KIO,</para></listitem>
+<listitem><para>has options to highlight or hide changes in white-space or comments,</para></listitem>
+<listitem><para>supports Unicode, UTF-8 and other file encodings,</para></listitem>
+<listitem><para>prints differences,</para></listitem>
+<listitem><para>supports version control keyword and history merging.</para></listitem>
+</itemizedlist>
+</para><para>
+   This document describes &kdiff3;-version 0.9.92.
+</para>
+</abstract>
+
+<!-- This is a set of Keywords for indexing by search engines.
+Please at least include KDE, the KDE package it is in, the name
+ of your application, and a few relevant keywords. -->
+
+<keywordset>
+<keyword>KDE</keyword>
+<keyword>kdeextragear</keyword>
+<keyword>kdiff3</keyword>
+<keyword>diff</keyword>
+<keyword>merge</keyword>
+<keyword>CVS</keyword>
+<keyword>triplediff</keyword>
+<keyword>compare</keyword>
+<keyword>files</keyword>
+<keyword>directories</keyword>
+<keyword>version control</keyword>
+<keyword>three-way-merge</keyword>
+<keyword>in-line-differences</keyword>
+<keyword>synchronise</keyword>
+<keyword>kpart</keyword>
+<keyword>kio</keyword>
+<keyword>networktransparent</keyword>
+<keyword>editor</keyword>
+<keyword>white space</keyword>
+<keyword>comments</keyword>
+</keywordset>
+
+</bookinfo>
+
+<chapter id="introduction"><title>Introduction</title>
+<sect1 id="why"><title>Yet Another Diff Frontend?</title>
+<para>
+Several graphical diff tools exist. Why choose &kdiff3;? Let me say, why I wrote it.
+</para><para>
+&kdiff3; started because I had to do a difficult merge. Merging is necessary when several
+people work on the same files in a project. A merge can be somewhat automated, when the
+merge-tool not only has the new modified files (called "branches"), but also the original file
+(called "base"). The merge tool will automatically choose any modification that was only
+done in one branch. When several contributors change the same lines, then the merge tool
+detects a conflict which must be solved manually.
+</para><para>
+The merge then was difficult because one contributor had changed many things and corrected
+the indentation in many places. Another contributor also had changed much text in the same file,
+which resulted in several merge conflicts.
+</para><para>
+The tool I used then, only showed the changed lines, but not what had changed within these
+lines. And there was no information about where only the indentation was changed. The merge
+was a little nightmare.
+</para><para>
+So this was the start. The first version could show differences within a line and showed white space differences.
+Later many other features were added to increase the usefulness.
+</para><para>
+For example if you want to compare some text quickly, then you can copy it to the clipboard and
+paste it into either diff window.
+</para><para>
+A feature that required a big effort was the directory comparison and merge facility, which turned
+the program almost into a full file browser.
+</para><para>
+I hope &kdiff3; works for you too. Have fun!
+</para><para>
+Joachim Eibl (2003)
+</para>
+</sect1>
+
+<sect1 id="screenshots"><title>Screenshots and Features</title>
+<para>This screenshot shows the difference between two text files</para>
+<para>(Using an early version of &kdiff3;):</para>
+<screenshot><mediaobject>
+   <imageobject><imagedata fileref="screenshot_diff.png" format="PNG"/></imageobject>
+</mediaobject></screenshot>
+
+<para>
+   3-way-merging is fully supported. This is useful if two people change code independently.
+   The original file (the base) is used to help &kdiff3; to automatically select the correct
+   changes.
+   The merge-editor below the diff-windows allows you to solve conflicts, while showing you the output you will get.
+   You can even edit the output.
+   This screenshot shows three input files being merged:
+</para><para>
+<screenshot><mediaobject>
+   <imageobject><imagedata fileref="screenshot_merge.png" format="PNG"/></imageobject>
+</mediaobject></screenshot>
+</para>
+
+<para id="dirmergebigscreenshot">&kdiff3; also helps you to compare and merge complete directories.
+This screenshot shows &kdiff3; during a directory merge:
+</para><para>
+<screenshot><mediaobject>
+   <imageobject><imagedata fileref="dirmergebig.png" format="PNG"/></imageobject>
+</mediaobject></screenshot>
+</para>
+</sect1>
+
+<sect1 id="features"><title>More Features</title>
+<sect2><title> Line-By-Line And Char-By-Char Diff-Viewer</title>
+<para>By using the possiblities of a graphical color display &kdiff3; shows
+   exactly what the difference is. When you have to do many code-reviews, you will like this.
+</para>
+<screenshot><mediaobject>
+   <imageobject><imagedata fileref="letter_by_letter.png" format="PNG"/></imageobject>
+</mediaobject></screenshot>
+</sect2>
+
+<sect2><title> See White-Space Differences At One Glance</title>
+<para>Spaces and tabs that differ appear visibly. When lines differ only
+   in  the  amount of white space this can be seen at one look in the summary
+   column on the left side. (No more worries when people change the indentation.)
+</para>
+<screenshot><mediaobject>
+   <imageobject><imagedata fileref="white_space.png" format="PNG"/></imageobject>
+</mediaobject></screenshot>
+</sect2>
+
+<sect2><title> Triple-Diff</title>
+<para> Analyze three files and see where they differ.
+</para><para>
+   The left/middle/right windows are named A/B/C and have the blue/green/magenta
+   color respectively.
+</para><para>
+   If one file is the same and one file is different on a line then the
+   color   shows which file is different. The red color means that both other
+   files  are different.
+</para>
+<screenshot><mediaobject>
+   <imageobject><imagedata fileref="triple_diff.png" format="PNG"/></imageobject>
+</mediaobject></screenshot>
+</sect2>
+
+<sect2><title> Comfortable Merge Of Two Or Three Input Files</title>
+<para> &kdiff3; can be used to merge two or three input files and automatically
+   merges as much as possible. The result is presented in an editable window
+   where most conflicts can be solved with a single mouseclick: Select the
+   buttons  A/B/C from the button-bar to select the source that should be used.
+   You can  also select more than one source. Since this output window is an
+   editor even  conflicts which need further corrections can be solved here without
+   requiring  another tool.
+</para>
+</sect2>
+
+<sect2><title>And ...</title>
+<itemizedlist>
+   <listitem><para>Fast navigation via buttons.</para></listitem>
+   <listitem><para>A mouse-click into a summary column sync's all windows to show the same position.</para></listitem>
+   <listitem><para>Select and copy from any window and paste into the merge result window.</para></listitem>
+   <listitem><para>Overview column that shows where the changes and conflicts are.</para></listitem>
+   <listitem><para>The colors are adjustable to your specific preferences.</para></listitem>
+   <listitem><para>Adjustable Tab size.</para></listitem>
+   <listitem><para>Option to insert spaces instead of tabs.</para></listitem>
+   <listitem><para>Open files comfortably via dialog or specify files on the command line.</para></listitem>
+   <listitem><para>Search for strings in all text windows. Find (Ctrl-F) and Find Next (F3)</para></listitem>
+   <listitem><para>Show the line numbers for each line. </para></listitem>
+   <listitem><para>Paste clipboard or drag text into a diff input window.</para></listitem>
+   <listitem><para>Networktransparency via KIO.</para></listitem>
+   <listitem><para>Can be used as diff-viewer in KDevelop 3.</para></listitem>
+   <listitem><para>Word-wrap for long lines.</para></listitem>
+   <listitem><para>Support for Unicode, UTF-8 and other codecs.</para></listitem>
+   <listitem><para>Support for right to left languages.</para></listitem>
+   <listitem><para>...</para></listitem>
+</itemizedlist>
+</sect2>
+</sect1>
+</chapter>
+
+<chapter id="documentation"><title>File Comparison And Merge</title>
+
+<sect1 id="commandline"><title>Command-Line Options</title>
+
+<sect2><title>Comparing 2 files: </title>
+<screen>
+   <command>kdiff3</command> <replaceable>file1 file2</replaceable>
+</screen>
+</sect2>
+
+<sect2><title>Merging 2 files: </title>
+<screen>
+   <command>kdiff3</command> <replaceable>file1 file2</replaceable> -m
+   <command>kdiff3</command> <replaceable>file1 file2</replaceable> -o <replaceable>outputfile</replaceable>
+</screen>
+</sect2>
+
+<sect2><title>Comparing 3 files: </title>
+<screen>
+   <command>kdiff3</command> <replaceable>file1 file2 file3</replaceable>
+</screen>
+</sect2>
+
+<sect2><title>Merging 3 files: </title>
+<screen>
+   <command>kdiff3</command> <replaceable>file1 file2 file3</replaceable> -m
+   <command>kdiff3</command> <replaceable>file1 file2 file3</replaceable> -o <replaceable>outputfile</replaceable>
+</screen>
+<para>
+   Note that <replaceable>file1</replaceable> will be treated as
+   base of <replaceable>file2</replaceable> and
+   <replaceable>file3</replaceable>.
+</para>
+</sect2>
+
+<sect2><title>Special case: Files with the same name </title>
+<para>
+If all files have the same name but are in different directories, you can
+reduce typework by specifying the filename only for the first file. E.g.:
+</para>
+<screen>
+   <command>kdiff3</command> <replaceable>dir1/filename dir2 dir3</replaceable>
+</screen>
+</sect2>
+
+<sect2><title>Commandline for starting a directory comparison or merge: </title>
+<para>This is very similar, but now it's about directories.</para>
+<screen>
+   <command>kdiff3</command> <replaceable>dir1 dir2</replaceable>
+   <command>kdiff3</command> <replaceable>dir1 dir2</replaceable> -o <replaceable>destdir</replaceable>
+   <command>kdiff3</command> <replaceable>dir1 dir2 dir3</replaceable>
+   <command>kdiff3</command> <replaceable>dir1 dir2 dir3</replaceable> -o <replaceable>destdir</replaceable>
+</screen>
+<para>For directory comparison and merge you can continue to read <link linkend="dirmerge">here</link>.</para>
+</sect2>
+
+<sect2><title>Other command line options</title>
+<para>To see all available command line options type</para>
+<screen>
+<command>kdiff3</command> --help
+</screen>
+<para>Example output:</para>
+<screen>
+Options:
+  -m, --merge               Merge the input.
+  -b, --base file           Explicit base file. For compatibility with certain tools.
+  -o, --output file         Output file. Implies -m. E.g.: -o newfile.txt
+  --out file                Output file, again. (For compatibility with certain tools.)
+  --auto                    No GUI if all conflicts are auto-solvable. (Needs -o file)
+  --qall                    Don't solve conflicts automatically. (For compatibility...)
+  --L1 alias1               Visible name replacement for input file 1 (base).
+  --L2 alias2               Visible name replacement for input file 2.
+  --L3 alias3               Visible name replacement for input file 3.
+  -L, --fname alias         Alternative visible name replacement. Supply this once for every input.
+  --cs string               Override a config setting. Use once for every setting. E.g.: --cs "AutoAdvance=1"
+  --confighelp              Show list of config settings and current values.
+  --config file             Use a different config file.
+</screen>
+<para>The option <option>--cs</option> allows you to adjust a configuration value that is otherwise only adjustable via the configure dialogs. 
+But be aware that when &kdiff3; then terminates the changed value will be stored along with the other settings. 
+With <option>--confighelp</option> you can find out the names of the available items and current values.</para>
+<para>Via <option>--config</option> you can specify a different config file. When you often use &kdiff3; 
+with completely different setups this allows you to easily switch between them.</para>
+</sect2>
+<sect2><title>Ignorable command line options</title>
+<para>Many people want to use &kdiff3; with some version control system. 
+But when that version control system calls &kdiff3; using command line parameters that &kdiff3; doesn't recognise, then &kdiff3; terminates with an error.
+The integration settings allow to specify command line parameters that should be ignored by &kdiff3;. 
+They will appear in the usage help like in this example:</para>
+<screen>
+  --<replaceable>foo</replaceable>                     Ignored. (User defined.)
+</screen>
+<variablelist>
+  <varlistentry><term><emphasis>Command line options to ignore:</emphasis></term><listitem><para>
+     A list of options, separated via semicolon ';'. When one of these options appears on the commandline, 
+     then &kdiff3; will ignore it and run without reporting an error. 
+     (Default is "u;query;html;abort").</para></listitem></varlistentry>
+</variablelist>
+<para>When this isn't enough, then it is recommended to write a shell script that does the option translation.</para>
+</sect2>
+
+</sect1>
+
+<sect1 id="opendialog"><title>Open-Dialog</title>
+<para>
+   Since many input files must be selectable, the program has a special open dialog:
+</para>
+<screenshot><mediaobject>
+<imageobject><imagedata fileref="open_dialog.png" format="PNG"/></imageobject>
+</mediaobject></screenshot>
+<para>
+   The open dialog allows to edit the filenames by hand, selecting a file
+   via  the file-browser ("File...") or allows to choose recent files from
+   the drop-down lists. If you open the dialog again, then the current names
+   still remain there. The third input file is not required. If the
+   entry   for "C" remains empty, then only a two file diff analysis will be
+   done.
+</para><para>
+   You can also select a directory via "Dir...". If for A a directory is specified
+   then a directory-comparison/merge starts. If A specifies a file but B, C or
+   the output specify a directory, then &kdiff3; uses the filename from A in the
+   specified directories.
+</para><para>
+   If "Merge" is selected, then the "Output"-line becomes editable. But it
+   is not required to specify the output filename immediately. You can also
+   postpone this until saving.
+</para><para>
+   The "Configure..."-button opens the options-dialog, so that you can set
+   the options before running the analysis.
+</para>
+</sect1>
+
+<sect1 id="pasteinput"><title>Paste and Drop Input</title>
+<para>
+   Sometimes you want to compare parts of a text that is not an own file. &kdiff3; also
+   allows you to paste text from the clipboard into the diff input window that has the focus.
+   The diff analysis happens immediately then.
+   In the open dialog you need not specify files then, but just close it via "Cancel".
+</para><para>
+   You can also use drag and drop: Drag a file from a file manager
+   or selected text from an editor and drop it onto a diff input window.
+</para><para>
+   What's the idea? Sometimes a file contains two similar functions, but checking how similar
+   they really are is a big effort if you first must create two files and then load them. Now
+   you can simply copy, paste and compare the relevant sections.
+</para><para>
+   Note: Currently you cannot drag anything from &kdiff3;. Only dropping in the diff input
+   is supported.
+</para><para>
+   Warning: Some editors still interpret the drag and drop into another program like cut
+   (instead of copy) and paste. Your original data might be lost then.
+</para>
+</sect1>
+
+<sect1 id="interpretinginformation"><title>Comparing Files And Interpreting The Information In The Input Windows</title>
+<screenshot><mediaobject>
+<imageobject><imagedata fileref="screenshot_diff.png" format="PNG"/></imageobject>
+</mediaobject></screenshot>
+<sect2><title>Info Line</title><para>
+   At the top of each text window is its "info line". The info lines of
+   the input windows contain a letter "A", "B" or "C", the editable filename,
+   a button for browsing, and the line number of the first visible line in the window. 
+   (Note that window "C" is  optional.) Each info line appears in a different color.
+</para><para>
+   When you selected another file via browsing or finished editing the filename here 
+   by pressing enter, the new file will be loaded and 
+   compared with the already loaded file(s).
+</para></sect2><sect2><title>Coloring</title><para>
+   The three input windows are assigned the letters "A", "B" and "C".
+   "A"   has  color blue, "B" has green and "C" has magenta. (These are the
+   defaults,   but  can be changed in the Settings-Menu.)
+</para><para>
+   When a difference is detected then the color shows which input file
+   differs.   When both other input files differ then the color used to express
+   this is   red by default ("Conflict color" in the Settings).
+   This colorscheme is especially useful in the case of three input files, which will be
+   seen in the next section (<link linkend="merging">Merging</link>).
+</para></sect2><sect2><title>Summary Column</title><para>
+   Left of each text is the "summary column". If differences occurred on a
+   line then the summary column shows the respective color. For a white-space-only
+   difference the summary is chequered. For programming languages where white
+   space is not so important this is useful to see at one glance if anything
+   of importance was modified. (In C/C++ white space is only interesting within
+   strings, comments, for the preprocessor, and some only very esoteric situations.)
+</para><para>
+   The vertical line separating the summary column and the text is interrupted
+   if the input file had no lines there. When word-wrap is enabled then this vertical 
+   line appears dotted for wrapped lines.
+</para></sect2><sect2><title>Overview Column</title><para>
+   On the right side a "overview"-column is visible left of the vertical scrollbar.
+   It shows the compressed summary column of input "A". All the differences
+   and conflicts are visible at one glance. When only two input windows are
+   used, then all differences appear red here because every difference is
+   also   a conflict. A black rectangle frames the visible part of the inputs.
+   For  very long input files, when the number of input lines is bigger than
+   the height of the overview column in pixels, then several input lines share
+   one overview line. A conflict then has top priority over simple differences,
+   which have priority over no change, so that no difference or conflict is
+   lost here.  By clicking into this overview column the corresponding text
+   will be shown.
+</para></sect2><sect2 id="manualdiffhelp"><title>Manually Aligning Lines</title><para>
+   Sometimes the algorithm places the wrong lines next to each other. Or you want to compare 
+   one piece of text with text at a completely different position in the other file.
+   For these situations you can manually instruct &kdiff3; to align certain lines. 
+   Mark the text for which you want to improve the alignment with the mouse as you would 
+   for copy and paste in the first diff view and then choose "Add Manual Diff Alignment" 
+   in the "Diffview"-menu (keyboard shortcut "Ctrl-Y") . An orange bar will appear in 
+   the summary column next to the chosen text. Repeat this for the second and 
+   (if available) third diff view. &kdiff3; will immediately recalculate the differences everytime you do this.
+   and will align the chosen lines. Of course some of the previously matching lines in between 
+   might not match anymore.
+</para><para>
+   Currently merging doesn't support the use of manual diff help.
+</para></sect2><sect2 id="joinsplitsections"><title>Manually Joining and Splitting Diff Sections</title><para>
+   In some cases &kdiff3; will see too many or too few diff sections for merging. In such a 
+   case you can join or split existing sections.
+</para><para>
+   Add new sections by first selecting text in the lines that belong together in either input window (as for copying to the clipboard). 
+   Then choose "Split Diff At Selection" in the "Merge" menu.
+   Splits will be added above the first line and below the last line of the selected text.
+   If you only want to add one section, then select text beginning at another section-split.
+</para><para>
+   For joining sections in either input window select something in the lines from the sections to join.
+   (You can join several sections in one step too.) Then choose "Join selected Diffs" in the "Merge"-menu.
+</para></sect2>
+</sect1>
+
+
+<sect1 id="merging"><title>Merging And The Merge Output Editor Window</title>
+<screenshot><mediaobject>
+<imageobject><imagedata fileref="screenshot_merge.png" format="PNG"/></imageobject>
+</mediaobject></screenshot>
+<para>
+   The merge output editor window (below the diff input windows) also has an info line at the top showing "Output:", the
+   filename   and "[Modified]" if you edited something. Usually it will contain
+   some text  through the automatic merge facilities, but often it will also
+   contain conflicts.
+</para><para>
+   !!! Saving is disabled until all conflicts are resolved !!! (Use the "Go
+   to prev/next unsolved conflicts"-buttons to find the remaining conflicts.)
+</para><para>
+   With only two input files every difference is also a conflict that must
+   be solved manually.
+</para><para>
+   With three input files the first file is treated as base, while the
+   second   and third input files contain modifications. When at any line only
+   either   input B or input C have changed but not both then the changed source
+   will   automatically be selected. Only when B and C have changed on the same
+   lines,   then the tool detects a conflict that must be solved manually.
+   When B and C are the same, but not the same as A, then C is selected.
+</para><sect2><title>The Summary Column</title><para>
+   The merge output editor window also has a summary column on the left. It shows the
+   letter of the input from which a line was selected or nothing if all three
+   sources where equal on a line. For conflicts it shows a questionmark "?"
+   and the line shows "&lt;Merge Conflict&gt;", all in red. Because solving
+   conflicts  line by line would take very long, the lines are grouped into
+   groups that  have the same difference and conflict characteristics.
+   But only-white-space-conflicts are separated from non-white-space-conflicts
+   in order to ease the merging of files were the indentation changed for many
+   lines.
+</para></sect2><sect2 id="synchronise_views"><title>Setting The Current Group And Synchronising Merge And Diff View Position</title><para>
+   When clicking into  the summary column with the left mouse button in either
+   window then the beginning of the group belonging to that line will shown in all windows.
+   This group then becomes the "current group". It is highlighted with the
+   "Current range (diff) background color" and
+   a black bar appears on the left side of the text.
+</para></sect2><sect2><title>Choosing Inputs A, B or C For Current Conflict And Editing</title><para>
+   The button bar below the menubar contains three input selector buttons 
+   containing the letters "A", "B" and "C". Click the input selector 
+   button to insert (or remove if already inserted) the lines from the respective source.
+   To choose the lines from several inputs click the respective buttons in the
+   needed order. For example if you want that the lines from "B" appear before 
+   the lines from "A" in the output, first click "B", then "A".
+</para><para>
+   If you use the auto-advance option 
+   (<link linkend="autoadvance">"Automatically go to next unsolved conflict after source selection"</link>),
+   you should disable this before choosing lines from several inputs or if you want to
+   edit the lines after your choice. Otherwise &kdiff3; will jump to the next
+   conflict after choosing the first input.
+</para><para>
+   It is often helpful directly edit the merge output. 
+   The summary column will show "m" for every line that was manually modified. 
+   When for instance the differences are aligned in a way that simply choosing 
+   the inputs won't be satisfactory, then you can mark the needed text and use 
+   normal <link linkend="selections">copy and paste</link> to put it into the merge output.
+</para><para>
+   Sometimes, when a line is removed either by automatic merge or by editing
+   and no other lines remain in that group, then the text &lt;No src line&gt;
+   will appear in that line. This is just a placeholder for the group for
+   when  you might change your mind and select some source again. This text won't
+   appear in the saved file or in any selections you want to copy and paste.
+</para><para>
+   The text "&lt;Merge Conflict&gt;" will appear in the clipboard if you
+   copy and   paste some text containing such a line. But still be careful to
+   do so.
+</para></sect2><sect2><title>Choosing Input A, B, or C for All Conflicts</title><para>
+   The normal merge will start by solving simple conflicts automatically.
+   But the "Merge"-menu provides some actions for other common needs.
+   If you have to select the same source for most conflicts, then you can
+   choose "A", "B" or "C" everywhere, or only for the remaining unsolved
+   conflicts, or for unsolved white space conflicts. If you want to decide every
+   single delta yourself, you can "Set deltas to conflicts". Or if you want to
+   return to the automatic choices of &kdiff3; then select
+   "Automatically solve simple conflicts". &kdiff3; then restarts the merge.
+   For actions that change your previous modifications &kdiff3; will ask for your
+   confirmation before proceeding.
+</para><para>
+   Note: When choosing either source for unsolved white space conflicts and
+   the options "Ignore Numbers" or "Ignore C/C++ Comments" are used then changes in
+   numbers or comments will be treated like white space too.
+
+</para></sect2><sect2 id="vcskeywordsmergesupport"><title>Automatic Merge of Version Control Keywords and History (Log)</title><para>
+Many version control systems support special keywords in the file. (e.g. "&#36;Date&#36;", 
+"&#36;Header&#36;", "&#36;Author&#36;", "&#36;Log&#36;" etc.) During the 
+check-in the version control system (VCS) changes these lines. For instance 
+"&#36;Date&#36;" will turn into "&#36;Date: 2005/03/22 18:45:01 &#36;". Since this line will 
+be different in every version of the file, it would require manual interaction 
+during the merge.
+</para><para>
+&kdiff3; offers automatic merge for these items. For simple lines that match the 
+"Auto merge regular expression"-option in all input-files &kdiff3; will choose 
+the line from B or - if available - from C. (Additionally it is necessary that the lines 
+in question line up in the comparison and the previous line contains no conflict.)
+This auto merge can either be run immediately after a merge starts (activate the option 
+"Run regular expression auto merge on merge start") or later via the merge 
+menu "Run Regular Expression Auto Merge".
+</para><para>
+Automatic merge for version control history (also called "log") is also supported.
+The history automerge can either run immediately when the merge starts by activating the 
+option "Merge version control history on merge start" or later via the merge menu 
+"Automatically Solve History Conflicts".
+</para><para>
+Usually the version control history begins with a line containing the keyword "&#36;Log&#36;".
+This must be matched by the "History start regular expression"-option.
+&kdiff3; detects which subsequent lines are in the history by analysing the leading characters 
+that came before the "&#36;Log&#36;"-keyword. If the same "leading comment"-characters also appears in the following
+lines, then they are also included in the history.
+</para><para>
+During each check-in the VCS writes a unique line specifying version-, date- and time-information 
+followed by lines with user comments.
+These lines form one history-entry. This history section grows with every check-in and the 
+most recent entries appear at the top (after the history start line). 
+</para><para>
+When for parallel development two or more developers check-in a branch of the file then 
+the merge history will contain several entries that appear as conflicts during the merge 
+of the branches. Since merging these can become very tedious, &kdiff3; offers support with two 
+possible strategies: Just insert the history information from both contributors at the top
+or sort the history information by a user defined key.
+</para><para>
+The just-insert-all-entries-method is easier to configure. &kdiff3; just needs a method to
+detect, which lines belong to one history entry. Most VCS insert an empty line after each
+history entry. If there are no other empty lines, this is a sufficient criterion for &kdiff3;.
+Just set an empty "History entry start regular expression". If the empty line criterion 
+isn't sufficient, you can specify a regular expression to detect the history entry start.
+</para><para>
+Note that &kdiff3; will remove duplicate history entrys. If a history entry appeared several times
+in the history of a input file, only one entry will remain in the output.
+</para><para>
+If you want to sort the history, then you have to specify how the sort key should be built.
+Use parentheses in the "History entry start regular expression" to group parts of the regular 
+expression that should later be used for the sort key.
+Then specify the "History entry start sort key order" specifying a comma "," separated list of 
+numbers referring to the position of the group in the regular expression.
+</para><para>
+Because this is not so easy to get right immediately, you are able to test and improve
+the regular expressions and key-generation in a dedicated dialog by pressing the 
+"Test your regular expressions"-button.
+</para><para>Example: Assume a history that looks like this:
+<screen>
+/**************************************************************************
+** HISTORY:    &#36;Log: \toms_merge_main_view\MyApplication\src\complexalgorithm.cpp &#36;
+**
+**     \main\integration_branch_12   2 Apr 2001 10:45:41   tom
+**  Merged branch simon_branch_15.
+**
+**     \main\henry_bugfix_branch_7\1   30 Mar 2001 19:22:05   henry
+**  Improved the speed for subroutine convertToMesh().
+**  Fixed crash.
+**************************************************************************/
+</screen>
+The history start line matches the regular expression ".*\&#36;Log.*\&#36;.*". Then follow 
+the history entries.
+</para><para>
+The line with the "&#36;Log&#36;"-keyword begins with two "*" after which follows a space. 
+&kdiff3; uses the first non-white-space string as "leading comment" and assumes that
+the history ends in the first line without this leading comment. In this example the
+last line ends with a string that also starts with two "*", but instead of a space 
+character more "*" follow. Hence this line ends the history.
+</para><para>
+If history sorting isn't required then the history entry start line regular expression
+could look like this. (This line is split in two because it wouldn't fit otherwise.)
+<screen>
+\s*\\main\\\S+\s+[0-9]+ (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)
+ [0-9][0-9][0-9][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9]\s+.*
+</screen>
+For details about regular expressions please see the
+<ulink url="http://doc.trolltech.com/3.3/qregexp.html#details">regular expression documentation by Trolltech</ulink>.
+Note that "\s" (with lowercase "s") matches any white space and "\S" (with uppercase "S") matches any non-white-space.
+In our example the history entry start contains first the version info with reg. exp. "\\main\\\S+", the date consisting of day "[0-9]+", month "(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)" and year "[0-9][0-9][0-9][0-9]", the time "[0-9][0-9]:[0-9][0-9]:[0-9][0-9]" and finally the developers login name ".*".
+</para><para>
+Note that the "leading comment"-characters (in the example "**") will already be removed by &kdiff3; 
+before trying to match, hence the regular expression begins with a match for none or more white-space characters "\s*".
+Because comment characters can differ in each file (e.g. C/C++ uses other comment characters than a Perl script)
+&kdiff3; takes care of the leading comment characters and you should not specify them in the regular expression.
+</para><para>
+If you require a sorted history. Then the sortkey must be calculated. For this the 
+relevant parts in the regular expression must be grouped by parentheses. 
+(The extra parentheses can also stay in if history sorting is disabled.)
+<screen>
+\s*\\main\\(\S+)\s+([0-9]+) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)
+ ([0-9][0-9][0-9][0-9]) ([0-9][0-9]:[0-9][0-9]:[0-9][0-9])\s+(.*)
+</screen>
+The parentheses now contain 1. version info, 2. day, 3. month, 4. year, 5. time, 6. name. 
+But if we want to sort by date and time, we need to construct a key with the elements in a different order of appearance:
+First the year, followed by month, day, time, version info and name. Hence the sortkey order to specify is "4,3,2,5,1,6".
+</para><para>
+Because  month names aren't good for sorting ("Apr" would be first) &kdiff3; detects in which order 
+the month names were given and uses that number instead ("Apr"->"04"). 
+And if a pure number is found it will be transformed to a 4-digit value with leading zeros for sorting.
+Finally the resulting sort key for the first history entry start line will be:
+<screen>
+2001 04 0002 10:45:41 integration_branch_12   tom 
+</screen>
+</para><para>
+For more information also see <link linkend="mergeoptions">Merge Settings</link>.
+</para>
+</sect2>
+</sect1>
+
+<sect1 id="navigation"><title>Navigation And Editing</title>
+<para>
+   Much navigation will be done with the scroll bars and the mouse but
+   you  can also navigate with the keys. If you click into either window then
+   you  can use the cursor buttons left, right, up, down, page up, page down,
+   home,  end, ctrl-home, ctrl-end as you would in other programs. The overview-column
+   next to the vertical scroll bar of the input files can also be used  for
+   navigating by clicking into it.
+</para><para>
+   You can also use the wheel mouse to scroll up and down.
+</para><para>
+   In the merge output editor you can also use the other keys for editing.
+   You can toggle between insert and overwrite mode with the insert key. (Default
+   is insert-mode.)
+</para><para>
+   A left-mouse-button-click into any summary column will synchronise all
+   windows to show the beginning of the same group of lines (as explained
+   in section <link linkend="synchronise_views">"Setting The Current Group And Synchronising Merge And Diff View Position"</link>).
+</para><para>
+   The button bar also contains nine navigation buttons with which you can
+   jump to the current/first/last difference, to the next/previous difference
+   (ctrl-down/ctrl-up), to the next/previous conflict (ctrl-pgdown/ctrl-pgup),
+   or to the next/previous unsolved conflict. Note that for &kdiff3; a "conflict"
+   that was not automatically solved at the start of the merge stays a "conflict"
+   even if it is solved. Hence the necessity to distinguish "unsolved conflicts".
+</para>
+<sect2 id="autoadvance"><title>Auto-Advance</title>
+<para>
+   There also is a button "Automatically go to next unsolved conflict after
+   source selection" (Auto-Advance). If you enable this, then, when one source
+   is selected, &kdiff3; will jump to and select the next unsolved conflict
+   automatically. This can help when you always want to choose one source only.
+   When you need both sources, or you want to edit after selecting, then you
+   probably want to switch this off. Before proceeding to the next unsolved conflict
+   &kdiff3; shows you the effect of your choice for a short time. This delay is
+   adjustable in the Diff- &amp; Merge-Settings: You can
+   specify the "Auto-Advance delay" in milli seconds between 0 and 2000. Hint:
+   Tired of many clicks? - Use a small Auto-Advance-delay and the shortcuts
+   Ctrl-1/2/3 to select A/B/C for many conflicts.
+</para>
+</sect2>
+</sect1>
+
+<sect1 id="selections"><title>Select, Copy And Paste</title>
+<para>
+   The input windows don't show a cursor, so selections must be made
+   with   the mouse by clicking with the left mouse button at the start, holding
+   down   the mousebutton and moving to the end, where you release the mouse
+   button   again. You can also select a word by double clicking it. In the merge
+   output   editor you can also select via the keyboard by holding the "shift"-button
+   and navigation with the cursor keys.
+</para><para>
+   If the selection exceeds the visible range you can move the mouse over the 
+   window borders which causes &kdiff3; to scroll in that direction. 
+</para><para>
+   For very large selections you can also use the navigation keys while holding down 
+   the mouse. E.g. use page up and page down to quickly go to a certain position. At the 
+   end position release the mouse button.
+</para><para>
+   In order to select everything in the current window use menu "Edit"->"Select All" (Ctrl-A).
+</para><para>
+   To copy to the clipboard you must press the "Copy"-button (Ctrl-C or Ctrl-Insert).
+   But there exists an option "Auto Copy Selection". If this is enabled,
+   then whatever you select is copied immediately and you don't need to explicitely
+   copy. But pay attention when using this because the contents of the clipboard
+   might then be destroyed accidentally.
+</para><para>
+   "Cut" (Ctrl-X or Shift-Delete) copies to the clipboard and deletes the
+   selected text.
+</para><para>
+   "Paste" (Ctrl-V or Shift-Insert) inserts the text in the clipboard at the 
+   cursorposition or over the current selection.
+   If you paste to either diff input window the contents of the clipboard will 
+   be shown in that window and the comparison will restart immediately. This is 
+   useful if you want to quickly grab a piece of text from somewhere and 
+   compare it with something else without first creating files.
+</para>
+</sect1>
+
+<sect1 id="saving"><title>Saving</title>
+<para>
+   Saving will only be allowed, when all conflicts were solved. If the file
+   already exists and the "Backup files"-option is enabled then the existing
+   file will be renamed with an ".orig"-extension, but if such a file exists
+   it will be deleted. When you exit or start another diff-analysis and data
+   wasn't saved yet, then &kdiff3; will ask if you want to save, cancel or proceed
+   without saving. (&kdiff3; does not catch any signals. So if you "kill" &kdiff3;
+   then your data will be lost.)
+</para><para>
+   Line endings are saved according to the normal method on the underlying
+   operating system. For Unices each line ends with an linefeed-character "\n",
+   while for Win32-based systems each line ends with a carriage-return + a linefeed
+   "\r\n". &kdiff3; does not preserve the line-endings of the input files, which
+   also means that you shouldn't use &kdiff3; with binary files.
+</para>
+</sect1>
+
+<sect1 id="find"><title>Finding Strings</title>
+<para>
+   You can search for a string in any text-window of &kdiff3;. The "Find ..."-command
+   (Ctrl-F) in the Edit-menu opens a dialog that lets you specify the string
+   to search for. You can also select the windows which should be searched.
+   Searching will always start at the top. Use the "Find Next"-command (F3)
+   to proceed to the next occurrence. If you select to search several windows then the first
+   window will be searched from top to bottom before the search starts in the next
+   window at the top again, etc.
+</para>
+</sect1>
+
+<sect1 id="printing"><title>Printing</title>
+<para>
+   &kdiff3; supports printing for textfile differences. The "Print..."-command (Ctrl-P) 
+   in the File-menu opens a dialog that allows you to select the printer and to adjust
+   other options.
+</para><para>
+   There are several possibilities to adjust the range. Due to different printing 
+   dialogs on different operating systems, the method to achieve certain range selections varies.
+</para>
+<variablelist>
+   <varlistentry><term>All:</term><listitem><para>Print everything.</para></listitem></varlistentry>
+   <varlistentry><term>Current:</term><listitem><para>Print a page starting at the first visible line in the window. 
+       (On systems without this option this can be achived by specifying page number 10000 for printing.)</para></listitem></varlistentry>
+   <varlistentry><term>Selection:</term><listitem><para>
+       Before choosing to print select text with the mouse (like for copy and paste) 
+       in one of the diff input windows to define the start and end line. If no text 
+       in one of the diff input windows was selected, then this won't be an available 
+       choice. (On systems without this option this can be achived by specifying page 
+       number 9999 for printing.)</para></listitem></varlistentry>
+   <varlistentry><term>Range:</term><listitem><para>Specify the first and last page.
+       </para></listitem></varlistentry>
+</variablelist>
+<para>
+   Other important options for printing will be taken from the normal options:
+</para><itemizedlist>
+   <listitem><para>Font, font size</para></listitem>
+   <listitem><para>Show line numbers</para></listitem>
+   <listitem><para>Word wrap</para></listitem>
+   <listitem><para>Colors</para></listitem>
+   <listitem><para>etc.</para></listitem>
+</itemizedlist>
+<para>
+   Landscape formatting is also recommended for printing.
+</para>
+</sect1>
+
+<sect1 id="options"><title>Options</title>
+<para>
+   Options and the recent-file-list will be saved when you exit the program,
+   and reloaded when you start it. (Menu Settings->Configure &kdiff3; ...)
+</para>
+<sect2><title>Font</title>
+<para>
+   Select a fixed width font. (On some systems this dialog will also
+   present    variable width fonts, but you should not use them.)
+</para>
+<variablelist>
+   <varlistentry><term><emphasis>Italic Font for Deltas:</emphasis></term><listitem><para> If you select this, then text differences
+       will be drawn with the italic version of the selected font. If the font
+       doesn't  support italic, then this does nothing.</para>
+   </listitem></varlistentry>
+</variablelist>
+</sect2>
+
+<sect2><title>Colors</title>
+<variablelist>
+   <varlistentry><term><emphasis>Foreground color:</emphasis></term><listitem><para> Usually black. </para></listitem></varlistentry>
+   <varlistentry><term><emphasis>Background color:</emphasis></term><listitem><para> Usually white. </para></listitem></varlistentry>
+   <varlistentry><term><emphasis>Diff Background color:</emphasis></term><listitem><para> Usually light gray. </para></listitem></varlistentry>
+   <varlistentry><term><emphasis>Color A:</emphasis></term><listitem><para> Usually dark blue. </para></listitem></varlistentry>
+   <varlistentry><term><emphasis>Color B:</emphasis></term><listitem><para> Usually dark green. </para></listitem></varlistentry>
+   <varlistentry><term><emphasis>Color C:</emphasis></term><listitem><para> Usually dark magenta. </para></listitem></varlistentry>
+   <varlistentry><term><emphasis>Conflict Color:</emphasis></term><listitem><para> Usually red.</para></listitem></varlistentry>
+   <varlistentry><term><emphasis>Current range background color:</emphasis></term><listitem><para> Usually light yellow.</para></listitem></varlistentry>
+   <varlistentry><term><emphasis>Current range diff background color:</emphasis></term><listitem><para> Usually dark yellow.</para></listitem></varlistentry>
+   <varlistentry><term><emphasis>Color for manually selected diff ranges:</emphasis></term><listitem><para> Usually orange.</para></listitem></varlistentry>
+   <varlistentry><term><emphasis>Newest file color in directory comparison:</emphasis></term><listitem><para> Usually green.</para></listitem></varlistentry>
+   <varlistentry><term><emphasis>Oldest file color in directory comparison:</emphasis></term><listitem><para> Usually red.</para></listitem></varlistentry>
+   <varlistentry><term><emphasis>Middle age file color in directory comparison:</emphasis></term><listitem><para> Usually dark yellow.</para></listitem></varlistentry>
+   <varlistentry><term><emphasis>Color for missing files in directory comparison:</emphasis></term><listitem><para> Usually black.</para></listitem></varlistentry>
+</variablelist>
+<para>
+   Changing the colors for directory comparison will be effective only when starting the next directory comparison.
+</para>
+<para>
+   On systems with only 16 or 256 colors some colors are not available in pure
+   form. On such systems the "Defaults"-button will choose a pure color.
+</para>
+</sect2>
+
+<sect2><title>Editor Settings</title>
+<variablelist>
+   <varlistentry><term><emphasis>Tab inserts spaces:</emphasis></term><listitem><para> If this is disabled and you press the
+      tabulator key,   a tab-character is inserted, otherwise the appropriate
+      amount  of characters   is inserted.</para></listitem></varlistentry>
+   <varlistentry><term><emphasis>   Tab size:</emphasis></term><listitem><para> Can be adjusted for your specific needs. Default is 8. </para></listitem></varlistentry>
+   <varlistentry><term><emphasis>   Auto indentation:</emphasis></term><listitem><para> When pressing Enter or Return the indentation
+      of the previous  line is used for the new line. </para></listitem></varlistentry>
+   <varlistentry><term><emphasis>   Auto copy selection:</emphasis></term><listitem><para> Every selection is immediately copied
+      to the clipboard   when active and you needn't explicitely copy it. </para></listitem></varlistentry>
+   <varlistentry><term><emphasis>   Line end style:</emphasis></term><listitem><para> When saving you can select what line 
+      end style you prefer. The default setting is the common choice for the used operating system. </para></listitem></varlistentry>
+</variablelist>
+</sect2>
+
+<sect2 id="diffoptions"><title>Diff Settings</title>
+<para>
+   When comparing files, &kdiff3; first it tries to match lines that are equal
+   in all input files. Only during this step it might ignore white space. The
+   second step compares each line. In this step white space will not be ignored.
+   Also during the merge white space will not be ignored.
+</para>
+
+<variablelist>
+  <!-- commented in code
+   <varlistentry><term><emphasis>Preserve Carriage Return:</emphasis></term><listitem><para> Some editors (on some systems) save
+      carriage return '\r' and linefeed '\n'-characters at the end of line, while
+      others will only save the linefeed '\n'. Usually &kdiff3; ignores the carriage
+      return, but then files that don't have equal sizes, look equal in side by
+      side comparison. When this option is on, then the carriage return characters
+      are made visible but are treated as white space. This option must be off
+      during a merge. Default is off.</para></listitem></varlistentry>
+   -->
+   <varlistentry><term><emphasis>Ignore numbers:</emphasis></term><listitem><para> Default is off. Number characters ('0'-'9', '.', '-')
+      will be ignored  in the first  part of the analysis in which the line matching is
+      done. In the result the differences will be shown nevertheless, but they are treated
+      as white space.
+   </para></listitem></varlistentry>
+   <varlistentry><term><emphasis>Ignore C/C++ comments:</emphasis></term><listitem><para> Default is off.
+      Changes in comments will be treated like changes in white space.
+   </para></listitem></varlistentry>
+   <varlistentry><term><emphasis>Ignore case:</emphasis></term><listitem><para>  Default is off. 
+      Case-differences of characters (like 'A' vs. 'a') will be treated like changes in white space.
+   </para></listitem></varlistentry>
+   <varlistentry><term><emphasis>Preprocessor-Command:</emphasis></term><listitem><para>
+   See <link linkend="preprocessors">next section</link>.
+   </para></listitem></varlistentry>
+   <varlistentry><term><emphasis>Line-Matching Preprocessor-Command:</emphasis></term><listitem><para>
+   See <link linkend="preprocessors">next section</link>.
+   </para></listitem></varlistentry>
+   <varlistentry><term><emphasis>Try Hard:</emphasis></term><listitem><para>
+      Try hard to find an even smaller delta. (Default is on.) This will probably
+      be effective for complicated and big files. And slow for very big files.
+   </para></listitem></varlistentry>
+</variablelist>
+</sect2>
+
+<sect2 id="mergeoptions"><title>Merge Settings</title>
+<variablelist>
+   <varlistentry><term><emphasis>Auto Advance Delay (ms):</emphasis></term><listitem><para> When in auto-advance-mode this setting specifies
+      how long to show the result of the selection before jumping to the next unsolved
+      conflict.
+   </para></listitem></varlistentry>
+   <varlistentry><term><emphasis>White space 2/3-file merge default:</emphasis></term><listitem><para>
+      Automatically solve all white-space conflict by choosing the specified file.
+      (Default is manual choice.) Useful if white space really isn't important in many files.
+      If you need this only occasionally better use "Choose A/B/C For All Unsolved Whitespace Conflicts"
+      in the merge menu. Note that if you enable either "Ignore numbers" or "Ignore C/C++ comments"
+      then this auto-choice also applies for conflicts in numbers or comments.
+   </para></listitem></varlistentry>
+   <varlistentry><term><emphasis>Auto merge regular expression:</emphasis></term><listitem><para>
+      Regular expression for lines where &kdiff3; should automatically choose one source. See also <link linkend="vcskeywordsmergesupport">Automatic Merge ...</link>
+   </para></listitem></varlistentry>
+   <varlistentry><term><emphasis>Run regular expression auto merge on merge start:</emphasis></term><listitem><para>
+      If activated &kdiff3; runs the automatic merge using the "Auto merge regular expression" when a merge is started.
+   </para></listitem></varlistentry>
+   <varlistentry><term><emphasis>History start regular expression:</emphasis></term><listitem><para>
+      Regular expression for the start of the merge history entry.
+      Usually this line contains the "&#36;Log&#36;"-keyword.
+      Default value: ".*\&#36;Log.*\&#36;.*"
+   </para></listitem></varlistentry>
+   <varlistentry><term><emphasis>History entry start regular expression:</emphasis></term><listitem><para>
+      A merge history entry consists of several lines.
+      Specify the regular expression to detect the first line (without the leading comment).
+      Use parentheses to group the keys you want to use for sorting.
+      If left empty, then &kdiff3; assumes that empty lines separate history entries.
+      See also <link linkend="vcskeywordsmergesupport">Automatic Merge ...</link>
+   </para></listitem></varlistentry>
+   <varlistentry><term><emphasis>History merge sorting:</emphasis></term><listitem><para>
+      Enable version control history sorting.
+   </para></listitem></varlistentry>
+   <varlistentry><term><emphasis>History entry start sort key order:</emphasis></term><listitem><para>
+      Each parentheses used in the regular expression for the history start entry
+      groups a key that can be used for sorting.
+      Specify the list of keys (that are numbered in order of occurrence
+      starting with 1) using ',' as separator (e.g. "4,5,6,1,2,3,7").
+      If left empty, then no sorting will be done.
+      See also <link linkend="vcskeywordsmergesupport">Automatic Merge ...</link>
+   </para></listitem></varlistentry>
+   <varlistentry><term><emphasis>Merge version control history on merge start:</emphasis></term><listitem><para>
+      If activated &kdiff3; runs the automatic history merging using aforementioned options when a merge is started.
+   </para></listitem></varlistentry>
+   <varlistentry><term><emphasis>Max number of history entries:</emphasis></term><listitem><para>
+      &kdiff3; truncates the history list after the specified number of entries. Use -1 to avoid truncation. (Default is -1).
+   </para></listitem></varlistentry>
+   <varlistentry><term><emphasis>Test your regular expressions</emphasis></term><listitem><para>
+      This button shows a dialog that allows you to improve and test the regular expressions above.
+      Just copy the respective data from your files into the example lines. The "Match results" 
+      will immediately show whether the match succeeds or not.
+      The "Sort key result" will display the key used for history merge sorting.
+   </para></listitem></varlistentry>
+   <varlistentry><term><emphasis>Irrelevant merge command:</emphasis></term><listitem><para>
+      Specify a command of your own that should be called when &kdiff3; detects 
+      that for a three file merge the file from B doesn't contribute any 
+      relevant data that isn't already contained in the file from C.
+      The command is called with the three filenames as parameters.
+      Data matched by the "Auto merge regular expression" or in the 
+      history isn't considered relevant.
+   </para></listitem></varlistentry>
+</variablelist>
+
+</sect2>
+
+<sect2><title>Directory Merge</title>
+<para>
+   These options are concerned with scanning the directory and handling the
+   merge: See the <link linkend="dirmergeoptions">Directory Comparison/Merge
+   Docs</link> for details.
+</para><para>
+Yet there is one option here that is also relevant for saving single files:
+</para>
+<variablelist>
+   <varlistentry><term><emphasis>Backup files:</emphasis></term><listitem><para> When a file is saved and an older version already
+      exists, then the original version will be renamed with an ".orig" extension.
+      If an old backup file with ".orig" extension already exists then this will
+      be deleted without backup.
+   </para></listitem></varlistentry>
+</variablelist>
+</sect2>
+
+<sect2><title>Regional and Language Options</title>
+  <variablelist>
+    <varlistentry><term><emphasis>Language:</emphasis></term><listitem><para>Adjust the language of the user interface. Changing this option doesn't affect the running program. You have to exit and restart &kdiff3; so that the language is changed. (This option is not available in the KDE version of &kdiff3; because the language is adjustable in the global KDE settings.) 
+       </para></listitem></varlistentry>
+    <varlistentry><term><emphasis>Use the same encoding for everything:</emphasis></term><listitem><para> The following encoding options can be adjusted separately for each item or if this option is true, all values will take the first value.
+       </para></listitem></varlistentry>
+    <varlistentry><term><emphasis>Local Encoding:</emphasis></term><listitem><para>Above the codec-selectors appears a note that tells you what the local encoding is. (This is not adjustable but for your information just in case you don't know your local encoding, but need to select it.)
+       </para></listitem></varlistentry>
+    <varlistentry><term><emphasis>File Encoding for A/B/C:</emphasis></term><listitem><para> Adjust the file encoding for input files. This has an effect on how the special characters are interpreted. Since you can adjust each codec separately you can even compare and merge files that were saved using different codecs.
+       </para></listitem></varlistentry>
+    <varlistentry><term><emphasis>File Encoding for Merge Output and Saving:</emphasis></term><listitem><para> When you have edited a file, then you can adjust which encoding will be used when saving to disk.
+       </para></listitem></varlistentry>
+    <varlistentry><term><emphasis>File Encoding for Preprocessor Files:</emphasis></term><listitem><para>When you define preprocessors then they might not be able to operate on your codec. (e.g.: Your files are 16-bit-unicode and your preprocessor can only take 8-bit-ascii.) With this option you can define the encoding of preprocessor output.
+       </para></listitem></varlistentry>
+    <varlistentry><term><emphasis>Right To Left Language:</emphasis></term><listitem><para>Some languages are written right to left. When this option is enabled, &kdiff3; draws the text from right to left in the diff input windows and in the merge output window. Note that if you start &kdiff3; with the command line option "--reverse" then all layouting will be done right to left too. (This is a feature provided by Qt.) This documentation was written assuming that "Right To Left Language" or reverse layout are disabled. So some references to "left" or "right" must be replaced by their respective counterpart if you use these options.
+       </para></listitem></varlistentry>
+
+  </variablelist>
+</sect2>
+
+<sect2><title>Miscellaneous</title>
+<para>(These options and actions are available in menus or the buttonbar.)</para>
+<variablelist>
+  <varlistentry><term><emphasis>Show line numbers:</emphasis></term><listitem><para> You can select if line numbers should be
+     shown for the input files.</para></listitem></varlistentry>
+  <varlistentry><term><emphasis>Show space and tabulator characters for differences:</emphasis></term><listitem><para> Sometimes
+     the visible spaces and tabs are disturbing. You can turn this off.</para></listitem></varlistentry>
+  <varlistentry><term><emphasis>Show white space:</emphasis></term><listitem><para> Turn this off to suppress
+      any highlighting of white-space-only changes in the text or overview-columns.
+      (Note that this also applies to changes in numbers or comments if the options "Ignore numbers"
+      or "Ignore C/C++ comments" are active.)</para></listitem></varlistentry>
+  <varlistentry><term><emphasis>Overview options:</emphasis></term><listitem><para>
+     These choices are only available when you compare three files. In normal mode all
+     differences are shown in one color-coded overview-column. But sometimes you are  
+     especially interested in the differences between only two of these three files.
+     Selecting "A vs. B", "A vs. C" or "B vs. C"-overview will show a second overview 
+     column with the required information next to the normal overview.
+  </para></listitem></varlistentry>
+  <varlistentry><term><emphasis>Word wrap diff windows:</emphasis></term><listitem><para>
+     Wrap lines when their length would exceed the width of a window.
+  </para></listitem></varlistentry>
+  <varlistentry><term><emphasis>Show Window A/B/C:</emphasis></term><listitem><para> Sometimes you want to use the space on
+      the screen better for long lines. Hide the windows that are not important.
+      (In the Windows-menu.)</para></listitem></varlistentry>
+  <varlistentry><term><emphasis>Toggle Split Orientation:</emphasis></term><listitem><para>
+      Switch between diff windows shown next to each other (A left of B left of C) or above
+      each other (A above B above C). This should also help for long lines. (In the Windows-menu.)
+      </para></listitem></varlistentry>
+  <varlistentry><term><emphasis>Start a merge quickly:</emphasis></term><listitem><para>
+      Sometimes you are viewing the deltas and decide to merge.
+      <inlinemediaobject><imageobject><imagedata fileref="merge_current.png" format="PNG"/></imageobject></inlinemediaobject>
+      "Merge current file" in the Directory-menu also works if you only compare
+      two files. A single click starts the merge and uses the filename of the last
+      input-file as the default output filename. (When this is used to restart
+      a merge, then the output filename will be preserved.)</para></listitem></varlistentry>
+</variablelist>
+</sect2>
+
+<sect2 id="shortcuts"><title>Configuring Keyboard-Shortcuts</title>
+<para>
+   Currently only the KDE-version supports user-configurable keyboard-shortcuts.
+   (Menu Settings->Configure Shortcuts...)
+</para>
+</sect2>
+</sect1>
+
+<sect1 id="preprocessors"><title>Preprocessor Commands</title>
+<para>
+&kdiff3; supports two preprocessor options.
+</para><para>
+<variablelist>
+   <varlistentry><term><emphasis>Preprocessor-Command:</emphasis></term><listitem><para>
+      When any file is read, it will be piped through this external command.
+      The output of this command will be visible instead of the original file.
+      You can write your own preprocessor that fulfills your specific needs.
+      Use this to cut away disturbing parts of the file, or to automatically
+      correct the indentation etc.
+   </para></listitem></varlistentry>
+   <varlistentry><term><emphasis>Line-Matching Preprocessor-Command:</emphasis></term><listitem><para>
+      When any file is read, it will be piped through this external command. If
+      a preprocessor-command (see above) is also specified, then the output of the
+      preprocessor is the input of the line-matching preprocessor.
+      The output will only be used during the line matching phase of the analysis.
+      You can write your own preprocessor that fulfills your specific needs.
+      Each input line must have a corresponding output line.
+   </para></listitem></varlistentry>
+</variablelist>
+</para>
+<para>
+The idea is to allow the user greater flexibility while configuring the diff-result.
+But this requires an external program, and many users don't want to write one themselves.
+The good news is that very often <command>sed</command> or <command>perl</command> 
+will do the job. 
+</para>
+<para>Example: Simple testcase: Consider file a.txt (6 lines):
+<screen>
+      aa
+      ba
+      ca
+      da
+      ea
+      fa
+</screen>
+And file b.txt (3 lines):
+<screen>
+      cg
+      dg
+      eg
+</screen>
+Without a preprocessor the following lines would be placed next to each other:
+<screen>
+      aa - cg
+      ba - dg
+      ca - eg
+      da
+      ea
+      fa
+</screen>
+This is probably not wanted since the first letter contains the actually interesting information.
+To help the matching algorithm to ignore the second letter we can use a line matching preprocessor 
+command, that replaces 'g' with 'a':
+<screen>
+   <command>sed</command> 's/g/a/'
+</screen>
+With this command the result of the comparison would be:
+<screen>
+      aa
+      ba
+      ca - cg
+      da - dg
+      ea - eg
+      fa
+</screen>
+Internally the matching algorithm sees the files after running the line matching preprocessor,
+but on the screen the file is unchanged. (The normal preprocessor would change the data also on 
+the screen.)
+</para>
+
+<sect2 id="sedbasics"><title><command>sed</command> Basics</title>
+<para>
+This section only introduces some very basic features of <command>sed</command>. For more
+information see <ulink url="info:/sed">info:/sed</ulink> or 
+<ulink url="http://www.gnu.org/software/sed/manual/html_mono/sed.html">
+http://www.gnu.org/software/sed/manual/html_mono/sed.html</ulink>.
+A precompiled version for Windows can be found at <ulink url="http://unxutils.sourceforge.net">
+http://unxutils.sourceforge.net</ulink>.
+Note that the following examples assume that the <command>sed</command>-command is in some 
+directory in the PATH-environment variable. If this is not the case, you have to specify the full absolute
+path for the command. 
+</para>
+<note><para>Also note that the following examples use the single quotation mark (') which won't work for Windows. 
+On Windows you should use the double quotation marks (") instead.</para></note>
+<para>
+In this context only the <command>sed</command>-substitute-command is used:
+<screen>
+   <command>sed</command> 's/<replaceable>REGEXP</replaceable>/<replaceable>REPLACEMENT</replaceable>/<replaceable>FLAGS</replaceable>'
+</screen>
+Before you use a new command within &kdiff3;, you should first test it in a console.
+Here the <command>echo</command>-command is useful. Example:
+<screen>
+   <command>echo</command> abrakadabra | <command>sed</command> 's/a/o/'
+   -> obrakadabra
+</screen>
+This example shows a very simple sed-command that replaces the first occurance 
+of "a" with "o". If you want to replace all occurances then you need the "g"-flag:
+<screen>
+   <command>echo</command> abrakadabra | <command>sed</command> 's/a/o/g'
+   -> obrokodobro
+</screen>
+The "|"-symbol is the pipe-command that transfers the output of the previous 
+command to the input of the following command. If you want to test with a longer file
+then you can use <command>cat</command> on Unix-like systems or <command>type</command> 
+on Windows-like systems. <command>sed</command> will do the substitution for each line.
+<screen>
+   <command>cat</command> <replaceable>filename</replaceable> | <command>sed</command> <replaceable>options</replaceable>
+</screen>
+</para>
+</sect2>
+<sect2 id="sedforkdiff3"><title>Examples For <command>sed</command>-Use In &kdiff3;</title>
+<sect3><title>Ignoring Other Types Of Comments</title>
+<para>
+Currently &kdiff3; understands only C/C++ comments. Using the
+Line-Matching-Preprocessor-Command you can also ignore
+other types of comments, by converting them into C/C++-comments.
+
+Example: To ignore comments starting with "#", you would like to convert them
+to "//". Note that you also must enable the "Ignore C/C++-Comments" option to get 
+an effect. An appropriate Line-Matching-Preprocessor-Command would be:
+
+<screen>
+   <command>sed</command> 's/#/\/\//'
+</screen>
+Since for <command>sed</command> the "/"-character has a special meaning, it is necessary to place the 
+"\"-character before each "/" in the replacement-string. Sometimes the "\" is required
+to add or remove a special meaning of certain characters. The single quotation marks (') before 
+and after the substitution-command are important now, because otherwise the shell will
+try to interpret some special characters like '#', '$' or '\' before passing them to 
+<command>sed</command>. <emphasis>Note that on Windows you will need the double quotation marks (") here. Windows
+substitutes other characters like '%', so you might have to experiment a little bit.</emphasis>
+</para>
+</sect3>
+<sect3><title>Caseinsensitive Diff</title>
+<para>
+Use the following Line-Matching-Preprocessor-Command to convert all input to uppercase:
+<screen>
+   <command>sed</command> 's/\(.*\)/\U\1/'
+</screen>
+Here the ".*" is a regular expression that matches any string and in this context matches 
+all characters in the line. 
+The "\1" in the replacement string refers to the matched text within the first pair of "\(" and "\)".
+The "\U" converts the inserted text to uppercase.
+</para>
+</sect3>
+
+<sect3><title>Ignoring Version Control Keywords</title>
+<para>
+CVS and other version control systems use several keywords to insert automatically
+generated strings (<ulink url="info:/cvs/Keyword substitution">info:/cvs/Keyword substitution</ulink>).
+All of them follow the pattern "$KEYWORD generated text$". We now need a
+Line-Matching-Preprocessor-Command that removes only the generated text:
+<screen>
+   <command>sed</command> 's/\$\(Revision\|Author\|Log\|Header\|Date\).*\$/\$\1\$/'
+</screen>
+The "\|" separates the possible keywords. You might want to modify this list 
+according to your needs.
+The "\" before the "$" is necessary because otherwise the "$" matches the end of the line.
+</para>
+<para>
+While experimenting with <command>sed</command> you might come to understand and even like
+these regular expressions. They are useful because there are many other programs that also 
+support similar things.
+</para>
+</sect3>
+
+<sect3><title>Ignoring Numbers</title>
+<para>
+Ignoring numbers actually is a built-in option. But as another example, this is how
+it would look as a Line-Matching-Preprocessor-command.
+<screen>
+   <command>sed</command> 's/[0123456789.-]//g'
+</screen>
+Any character within '[' and ']' is a match and will be replaced with nothing.
+</para>
+</sect3>
+
+<sect3><title>Ignoring Certain Columns</title>
+<para>
+Sometimes a text is very strictly formatted, and contains columns that you always want to ignore, while there are
+other columns you want to preserve for analysis. In the following example the first five columns (characters) are 
+ignored, the next ten columns are preserved, then again five columns are ignored and the rest of the line is preserved.
+<screen>
+   <command>sed</command> 's/.....\(..........\).....\(.*\)/\1\2/'
+</screen>
+Each dot '.' matches any single character. The "\1" and "\2" in the replacement string refer to the matched text within the first 
+and second pair of "\(" and "\)" denoting the text to be preserved.
+</para>
+</sect3>
+
+<sect3><title>Combining Several Substitutions</title>
+<para>
+Sometimes you want to apply several substitutions at once. You can then use the 
+semicolon ';' to separate these from each other. Example:
+<screen>
+   <command>echo</command> abrakadabra | <command>sed</command> 's/a/o/g;s/\(.*\)/\U\1/'
+   -> OBROKODOBRO
+</screen>
+</para>
+</sect3>
+
+<sect3><title>Using <command>perl</command> instead of <command>sed</command></title>
+<para>
+Instead of <command>sed</command> you might want to use something else like 
+<command>perl</command>.
+<screen>
+   <command>perl</command> -p -e 's/<replaceable>REGEXP</replaceable>/<replaceable>REPLACEMENT</replaceable>/<replaceable>FLAGS</replaceable>'
+</screen>
+But some details are different in <command>perl</command>. Note that where 
+<command>sed</command> needed "\(" and "\)" <command>perl</command>
+requires the simpler "(" and ")" without preceding '\'. Example:
+<screen>
+   <command>sed</command> 's/\(.*\)/\U\1/'
+   <command>perl</command> -p -e 's/(.*)/\U\1/'
+</screen>
+</para>
+</sect3>
+</sect2>
+
+<sect2><title>Order Of Preprocessor Execution</title>
+<para>
+The data is piped through all internal and external preprocessors in the 
+following order:
+</para>
+<itemizedlist>
+<listitem><para>Normal preprocessor,</para></listitem>
+<listitem><para>Line-Matching-Preprocessor,</para></listitem>
+<listitem><para>Ignore case (conversion to uppercase),</para></listitem>
+<listitem><para>Detection of C/C++ comments,</para></listitem>
+<listitem><para>Ignore numbers,</para></listitem>
+<listitem><para>Ignore white space</para></listitem>
+</itemizedlist>
+<para>
+The data after the normal preprocessor will be preserved for display and merging. The
+other operations only modify the data that the line-matching-diff-algorithm sees.
+</para><para>
+In the rare cases where you use a normal preprocessor note that 
+the line-matching-preprocessor sees the output of the normal preprocessor as input.
+</para>
+</sect2>
+
+<sect2><title>Warning</title>
+<para>
+The preprocessor-commands are often very useful, but as with any option that modifies
+your texts or hides away certain differences automatically, you might accidentally overlook 
+certain differences and in the worst case destroy important data.
+</para><para>
+For this reason during a merge if a normal preprocessor-command is being used &kdiff3; 
+will tell you so and ask you if it should be disabled or not. 
+But it won't warn you if a Line-Matching-Preprocessor-command is active. The merge will not complete until
+all conflicts are solved. If you disabled "Show White Space" then the differences that
+were removed with the Line-Matching-Preprocessor-command will also be invisible. If the 
+Save-button remains disabled during a merge (because of remaining conflicts), make sure to enable 
+"Show White Space". If you don't wan't to merge these less important differences manually
+you can select "Choose [A|B|C] For All Unsolved White space Conflicts" in the Merge-menu.
+</para>
+</sect2>
+</sect1>
+</chapter>
+
+
+<chapter id="dirmerge"><title>Directory Comparison and Merge with &kdiff3;</title>
+<sect1 id="dirmergeintro"><title>Introduction into Directory Comparison and Merge</title>
+<para>
+   Often programmers must modify many files in a directory to achieve their
+   purpose. For this &kdiff3; also lets you compare and merge complete directories
+   recursively!
+</para><para>
+   Even though comparing and merging directories seems to be quite obvious,
+   there are several details that you should know about. Most important is of
+   course the fact that now many files might be affected by each operation.
+   If you don't have backups of your original data, then it can be very hard
+   or even impossible to return to the original state. So before starting a merge,
+   make sure that your data is safe, and going back is possible. If you make
+   an archive or use some version control system is your decision, but even
+   experienced programmers and integrators need the old sources now and then.
+   And note that even though I (the author of &kdiff3;) try to do my best, I can't
+   guarantee that there are no bugs. According to the GNU-GPL there is NO WARRANTY
+   whatsoever for this program. So be humble and always keep in mind:
+</para>
+<blockquote><para>
+   <emphasis>To err is human, but to really mess things up you need a computer.</emphasis>
+</para></blockquote>
+<para>
+So this is what this program can do for you: &kdiff3; ...
+</para>
+<itemizedlist>
+     <listitem><para>... reads and compares two or three directories recursively,</para></listitem>
+     <listitem><para>... takes special care of symbolic links,</para></listitem>
+     <listitem><para>... lets you browse files on mouse double click,</para></listitem>
+     <listitem><para>... for each item proposes a merge operation, which you can change
+                         before starting the directory merge,</para></listitem>
+     <listitem><para>... lets you simulate the merge and lists the actions that would
+                         take  place, without actually doing them,</para></listitem>
+     <listitem><para>... lets you really do the merge, and lets you interact whenever
+                         manual interaction is needed,</para></listitem>
+     <listitem><para>... lets you run the selected operation for all items (key F7) or the selected item (key F6),</para></listitem>
+     <listitem><para>... lets you continue the merge after manual interaction with key F7,</para></listitem>
+     <listitem><para>... optionally creates backups, with the ".orig" extension,</para></listitem>
+     <listitem><para>...</para></listitem>
+</itemizedlist>
+</sect1>
+
+<sect1 id="startingdirmerge"><title>Starting Directory Comparison Or Merge</title>
+<para>
+   This is very similar to the single file merge and comparison. You just
+   have  to specify directories on the command line or in the file-open
+   dialog.
+</para>
+<sect2><title>Compare/Merge two directories: </title>
+<screen>
+   <command>kdiff3</command> <replaceable>dir1 dir2</replaceable>
+   <command>kdiff3</command> <replaceable>dir1 dir2</replaceable> -o <replaceable>destdir</replaceable>
+</screen>
+<para>
+   If no destination directory is specified, then &kdiff3; will use <replaceable>dir2</replaceable>.
+</para>
+</sect2>
+
+<sect2><title>Compare/Merge three directories: </title>
+<screen>
+   <command>kdiff3</command> <replaceable>dir1 dir2 dir3</replaceable>
+   <command>kdiff3</command> <replaceable>dir1 dir2 dir3</replaceable> -o <replaceable>destdir</replaceable>
+</screen>
+<para>
+   When three directories are merged then <replaceable>dir1</replaceable>
+   is used as the base for the merge.
+   If no destination directory is specified, then &kdiff3; will use <replaceable>dir3</replaceable>
+   as the  destination directory for the merge.
+</para>
+
+<para>
+   Note that only the comparison starts automatically, not the merge. For this you first must
+   select a menu entry or the key F7. (More details later.)
+</para>
+</sect2>
+</sect1>
+
+<sect1 id="dirmergevisible"><title>Directory Merge Visible Information</title>
+<para>
+   While reading the directories a message-box appears that informs you of
+   the progress. If you abort the directory scan, then only files that have
+   been  compared until then will be listed.
+</para><para>
+   When the directory scan is complete then &kdiff3; will show a listbox with
+   the results left, ...
+</para>
+<screenshot><mediaobject>
+<imageobject><imagedata fileref="dirbrowser.png" format="PNG"/></imageobject> <!--alt="Image of the directory browser."-->
+</mediaobject></screenshot>
+<para>
+   ... and details about the currently selected item on the right:
+</para>
+<screenshot><mediaobject>
+<imageobject><imagedata fileref="iteminfo.png" format="PNG"/></imageobject>
+   <!--alt="Image with information about the selected item."-->
+</mediaobject></screenshot>
+
+<sect2 id="name"><title>The Name Column</title>
+<para>
+   Each file and directory that was found during the scan is shown here in
+   a tree. You can select an item by clicking it with the mouse once.
+</para><para>
+   The directories are collapsed by default. You can expand and collapse
+   them by clicking on the "+"/"-" or by double-clicking the item or
+   by using  the left/right-arrow-keys. The "Directory"-menu also contains two
+   actions "Fold all subdirs" and "Unfold all subdirs" with which you can
+   collapse or expand all directories at once.
+</para><para>
+   If you double-click a file item then the file comparison starts and the
+   file-diff-window will appear.
+</para>
+<para>
+   The image in the name column reflects the file type in the first
+   directory  ("A"). It can be one of these:
+</para>
+<itemizedlist>
+     <listitem><para>Normal file</para></listitem>
+     <listitem><para>Normal directory (directory-image)</para></listitem>
+     <listitem><para>Link to a file (file-image with a link arrow)</para></listitem>
+     <listitem><para>Link to a directory (directory-image with a link arrow)</para></listitem>
+</itemizedlist>
+<para>
+   If the file type is different in the other directories, then this is visible
+   in the columns A/B/C and in the window that shows the details about the selected
+   item. Note that for such a case no merge operation can be selected automatically.
+   When starting the merge, then the user will be informed of problems of that
+   kind.
+</para>
+</sect2>
+
+<sect2 id="coloring"><title>The Columns A/B/C and the Coloring Scheme</title>
+<para>
+   As can be seen in the image above the colors red, green, yellow and black
+   are used in the columns A/B/C.
+</para>
+<itemizedlist>
+     <listitem><para>Black: This item doesn't exist in this directory.</para></listitem>
+     <listitem><para>Green: Newest item.</para></listitem>
+     <listitem><para>Yellow: Older than green, newer than red.</para></listitem>
+     <listitem><para>Red: Oldest item.</para></listitem>
+</itemizedlist>
+<para>
+   But for items that were identical in the comparison their color also is
+   identical even if the age is not.
+</para><para>
+   Directories are considered equal if all items they contain are identical.
+   Then they also will have the same color. But the age of a directory is not
+   considered for its color.
+</para><para>
+   The idea for this coloring scheme I came upon in
+   <ulink url="http://samba.org/cgi-bin/cvsweb/dirdiff">dirdiff</ulink>. The colors
+   resemble the colors of a leaf that is green when new, turns yellow later and red
+   when old.
+</para>
+
+</sect2><sect2 id="operation"><title>The Operation Column</title>
+<para>
+   After comparing the directories &kdiff3; also evaluates a proposal for a
+   merge  operation. This is shown in the "Operation" column. You can modify
+   the operation  by clicking on the operation you want to change. A small menu
+   will popup and allows you to select an operation for that item. (You can also
+   select the most needed operations via keyboard.
+   Ctrl+1/2/3/4/Del will select A/B/C/Merge/Delete respectively if available.)
+   This operation will be executed during the merge. It depends on the item and
+   on the merge-mode you are in, what operations are available. The merge-mode is one of
+</para>
+<itemizedlist>
+     <listitem><para>Three directory-merge ("A" is treated as older base of both).</para></listitem>
+     <listitem><para>Two directory-merge.</para></listitem>
+     <listitem><para>Two directory-sync-mode (activate via option "Synchronize Directories").</para></listitem>
+</itemizedlist>
+<para>
+   In three directory merge the operation proposal will be: If for an item ...
+</para>
+<itemizedlist>
+     <listitem><para>... all three directories are equal: Copy from C</para></listitem>
+     <listitem><para>... A and C are equal but B is not: Copy from B (or if B does not
+                         exist, delete the destination if exists)</para></listitem>
+     <listitem><para>... A and B are equal but C is not: Copy from C (or if C does not
+                         exist, delete the destination if exists)</para></listitem>
+     <listitem><para>... B and C are equal but A is not: Copy from C (or if C does not
+                         exist, delete the destination if exists)</para></listitem>
+     <listitem><para>... only A exists: Delete the destination (if exists)</para></listitem>
+     <listitem><para>... only B exists: Copy from B</para></listitem>
+     <listitem><para>... only C exists: Copy from C</para></listitem>
+     <listitem><para>... A, B and C are not equal: Merge</para></listitem>
+     <listitem><para>... A, B and C don't have the same file type (e.g. A is a directory,
+                         B is a file): "Error: Conflicting File Types". While such items exist the
+                         directory merge cannot start.</para></listitem>
+</itemizedlist>
+<para>
+   In two directory merge the operation proposal will be: If for an item ...
+</para>
+<itemizedlist>
+     <listitem><para>... both directories are equal: Copy from B</para></listitem>
+     <listitem><para>... A exists, but not B: Copy from A</para></listitem>
+     <listitem><para>... B exists, but not A: Copy from B</para></listitem>
+     <listitem><para>... A and B exist but are not equal: Merge</para></listitem>
+     <listitem><para>... A and B don't have the same file type (e.g. A is a directory,
+                         B is a file): "Error: Conflicting File Types". While such items exist the
+                         directory merge cannot start.</para></listitem>
+</itemizedlist>
+<para>
+   Sync-mode is active if only two directories and no explicit destination
+   were specified and if the option "Synchronize directories" is active. &kdiff3;
+   then selects a default operation so that both directories are the same afterwards.
+   If for an item ...
+</para>
+<itemizedlist>
+     <listitem><para>... both directories are equal: Nothing will be done.</para></listitem>
+     <listitem><para>... A exists, but not B: Copy A to B</para></listitem>
+     <listitem><para>... B exists, but not A: Copy B to A</para></listitem>
+     <listitem><para>... A and B exist, but are not equal: Merge and store the result
+                         in  both directories. (For the user the visible save-filename is B,
+                         but then &kdiff3; copies B also to A.)</para></listitem>
+     <listitem><para>... A and B don't have the same file type (e.g. A is a directory,
+                         B is a file): "Error: Conflicting File Types". While such items exist the
+                         directory merge cannot start.</para></listitem>
+</itemizedlist>
+<para>
+   When two directories are merged and the option "Copy newer instead of merging" is selected,
+   then &kdiff3; looks at the dates and proposes to choose the newer file. If the files are not
+   equal but have equal dates, then the operation will contain
+   "Error: Dates are equal but files are not." While such items exist the
+   directory merge cannot start.
+</para>
+</sect2>
+
+<sect2 id="status"><title>The Status Column</title>
+<para>
+   During the merge one file after the other will be processed. The status
+   column will show "Done" for items where the merge operation has succeeded,
+   and other texts if something unexpected happened. When a merge is complete,
+   then you should make a last check to see if the status for all items is
+   agreeable.
+</para>
+</sect2>
+
+<sect2 id="statisticscolulmns"><title>Statistics Columns</title>
+<para>
+   When the file comparison mode "Full Analysis" is enabled in the options, then
+   &kdiff3; will show extra columns containing the numbers of unsolved, solved, nonwhite and whitespace
+   conflicts. (The solved-column will only show when comparing or merging three directories.)
+</para>
+</sect2>
+
+<sect2 id="selectingvisiblefiles"><title>Selecting Listed Files</title>
+<para>   
+   Several options influence which files are listed here. Some are accessible in the 
+   <link linkend="dirmergeoptions">settings dialog</link>. The Directory-menu contains the entries:
+</para><para><itemizedlist>
+     <listitem><para>"Show Identical Files": Files that have been detected equal in all input directories.</para></listitem>
+     <listitem><para>"Show Different Files": Files that exist in two or more directories but are not equal.</para></listitem>
+     <listitem><para>"Show Files only in A": Files that exist only in A, but not in B or C.</para></listitem>
+     <listitem><para>"Show Files only in B": Files that exist only in B, but not in A or B.</para></listitem>
+     <listitem><para>"Show Files only in C": Files that exist only in C, but not in A or B.</para></listitem>
+</itemizedlist></para>
+<para>
+   Activate only the "Show"-options for the items you want listed. If for example you only want to list all items that 
+   exist either in A or in B but not in both, you'll have to activate "Show Files only in A" and "Show Files only in B" 
+   and deactivate all others ("Show Identical Files", "Show Different Files", "Show Files only in C").
+   The list will be updated immediately to reflect the change.
+</para><para>
+   These options also apply for directories with one exception: Disabling "Show Different Files" will not hide 
+   any complete directories. This will work only for files within.
+</para><para>
+   Note that of these only the "Show Identical Files"-option is persistant. The others are enabled when starting &kdiff3;. 
+</para>
+</sect2>
+
+</sect1>
+
+
+<sect1 id="dothemerge"><title>Doing A Directory Merge</title>
+<para>
+   You can either merge the currently selected item (file or directory), or all items.
+   When you have made all your operation choices (in all subdirectories too)
+   then you can start the merge.
+</para><para>
+   Be aware that if you didn't specify a destination directory explicitely,
+   then the destination will be "C" in three directory mode, "B" in two directory
+   merge mode, and in sync-mode it will be "A" or/and "B".
+</para><para>
+   If you have specified a destination directory also check that all items
+   that should be in the output, are in the tree. There are some options that
+   cause certain items to be omitted from the directory comparison and merge.
+   Check these options to avoid unpleasant surprises:
+</para>
+<itemizedlist>
+     <listitem><para>"Recursive Directories": If this is off, then items in subdirectories
+                     will not be found.</para></listitem>
+     <listitem><para>"Pattern"/"Anti-Pattern": Include/exclude items that match</para></listitem>
+     <listitem><para>"Find hidden files and directories"</para></listitem>
+     <listitem><para><link linkend="selectingvisiblefiles">"Show"-options</link> (Show Identical/Different Files, Files only in A/B/C)</para></listitem>
+</itemizedlist>
+<para>
+   If you change the settings in order to list more files, you must do a rescan via menu "Directory"->"Rescan" yourself.
+   (The reason for this is that for faster comparison-speed &kdiff3; omits the comparison for files suppressed by these criteria.)
+   If you changed your file and dir patterns to exclude files, then the file-list will immediately be updated on closing
+   the options-dialog.
+</para><para>
+   Note that when you write to a completely new directory then you usually also want to copy the identical files.
+   In that case enable the "Show Identical Files"-option. If your destination-directory is one of the inputs, 
+   then this isn't necessary because the file is already there.
+</para><para>
+   If you are satisfied so far, the rest is easy.
+</para><para>
+   To merge all items: Select "Start/Continue directory merge" in the "Directory"-menu
+   or press F7 (which is the default shortcut).
+   To merge only the current item: Select "Run Operation For Current Item"
+   or press F6.
+</para><para>
+   If due to conflicting filetypes still some items with invalid operations
+   exist, then a messagebox will appear and these items will be pointed out,
+   so you can select a valid operation for the item.
+</para><para>
+   If you merge all items a dialog will appear giving you the options "Do it", "Simulate
+   it" and "Cancel".
+</para>
+<itemizedlist>
+     <listitem><para>Select "Simulate it" if you want to see what would be done without
+                     actually doing it. A verbose list of all operations will be shown.</para></listitem>
+     <listitem><para>Otherwise select "Do it" to really start merging.</para></listitem>
+</itemizedlist>
+<para>
+   Then &kdiff3; will run the specified operation for all items. If manual
+   interaction  is required (single file merge), then a merge window will open
+   (<link linkend="dirmergebigscreenshot">see the big screenshot</link>).
+</para><para>
+   When you have finished with manually merging a file, again select "Start/Continue directory
+   merge" or the key F7. If you haven't saved it yet, a dialog will ask you to
+   do so. Then &kdiff3; will continue with the next item.
+</para><para>
+   When &kdiff3; encounters an error, it will tell you so and will show the
+   verbose-status-information. At the bottom of this list, there will be some
+   error messages which should help you to understand the cause of the problem.
+   When you continue merging (F7 key) &kdiff3; will give you the choice to retry
+   or skip the item that caused the problem. This means that before continuing
+   you can choose another operation or solve the problem by other means.
+</para><para>
+   When the merge is complete, then &kdiff3; will inform you via a message
+   box.
+</para><para>
+   If some items were merged individually before running the directorymerge then 
+   &kdiff3; remembers this (while this
+   merge-session goes on), and doesn't merge them again when later the merge for
+   all items is run. Even when the merge was skipped or nothing was saved these
+   items count as completed. Only when you change the merge operation the 
+   "Done"-status of the item will be removed and it can be merged again.
+</para>
+</sect1>
+
+<sect1 id="dirmergeoptions"><title>Options for Comparing and Merging Directories</title>
+<para>
+   The &kdiff3;-preferences (menu "Settings"-&gt;"Configure &kdiff3;") has
+   a section called "Directory Merge" with these options:
+</para>
+
+<variablelist>
+   <varlistentry><term><emphasis>Recursive Directories:</emphasis></term><listitem><para> Select whether to search directories
+         recursively.</para></listitem></varlistentry>
+   <varlistentry><term><emphasis>File Pattern(s):</emphasis></term><listitem><para> Only files that match any pattern here will
+         be put in the tree. More than one pattern may be specified here by using
+         the semicolon ";" as separator. Valid wildcards: '*' and '?'. (e.g. "*.cpp;*.h").
+         Default is "*". This pattern is not used on directories.</para></listitem></varlistentry>
+   <varlistentry><term><emphasis>File Anti-Pattern(s):</emphasis></term><listitem><para> Files that match this pattern
+         will be excluded from the tree. More than one pattern may be specified here
+         via using the semicolon ";" as separator. Valid wildcards: '*' and '?'. Default
+         is "*.orig;*.o;*.obj".</para></listitem></varlistentry>
+   <varlistentry><term><emphasis>Directory Anti-Pattern(s):</emphasis></term><listitem><para> Directories that match this pattern
+         will be excluded from the tree. More than one pattern may be specified here
+         via using the semicolon ";" as separator. Valid wildcards: '*' and '?'. Default
+         is "CVS;deps;.svn".</para></listitem></varlistentry>
+   <varlistentry><term><emphasis>Use CVS-Ignore:</emphasis></term><listitem><para>
+         Ignore files and directories that would also be ignored by CVS.
+         Many automatically generated files are ignored by CVS.
+         The big advantage is that this can be directory specific via a local ".cvsignore"-file.
+         (See <ulink url="info:/cvs/cvsignore">info:/cvs/cvsignore</ulink>.)</para></listitem></varlistentry>
+   <varlistentry><term><emphasis>Find Hidden Files and Directories:</emphasis></term><listitem><para> On some file systems files
+         have an "Hidden"-attribute. On other systems a filename starting with a dot
+         "." causes it to be hidden. This option allows you to decide whether to
+         include  these files in the tree or not. Default is on.</para></listitem></varlistentry>
+   <varlistentry><term><emphasis>Follow File Links:</emphasis></term><listitem><para> For links to files: When disabled, then
+         the symbolic links are compared. When enabled, then the files behind the
+         links are compared. Default is off.</para></listitem></varlistentry>
+   <varlistentry><term><emphasis>Follow Directory Links:</emphasis></term><listitem><para> For links to directories: When disabled,
+         then the symbolic links will be compared. When enabled then the link will
+         be treated like a directory and it will be scanned recursively. (Note that
+         the program doesn't check if the link is "recursive". So for example a directory
+         that contains a link to the directory would cause an infinite loop, and after
+         some time when the stack overflows or all memory is used up, crash the program.)
+         Default is off.</para></listitem></varlistentry>
+   <varlistentry><term><emphasis>Case Sensitive Filename Comparison:</emphasis></term><listitem><para> 
+         Default is false on Windows, true for other operating systems.</para></listitem></varlistentry>
+   <varlistentry><term><emphasis>File Comparison Mode:</emphasis></term><listitem><para>
+<variablelist>            
+   <varlistentry><term><emphasis>Binary Comparison:</emphasis></term><listitem><para>
+         This is the default file comparison mode.
+         </para></listitem></varlistentry>         
+   <varlistentry><term><emphasis>Full Analysis:</emphasis></term><listitem><para>
+         Do a full analysis of each file and show the statistics information columns.
+         (Number of solved, unsolved, nonwhite and white conflicts.)
+         The full analysis is slower than a simple binary analysis, and much
+         slower when used on files that don't contain text. 
+         (Specify the appropriate file-antipatterns.)
+         </para></listitem></varlistentry>         
+   <varlistentry><term><emphasis>Trust the modification date:</emphasis></term><listitem><para> If you compare big directories
+         over a slow network, it might be faster to compare the modification dates
+         and file length alone. But this speed improvement comes with the price of
+         a little uncertainty. Use this option with care. Default is off.</para></listitem></varlistentry>
+   <varlistentry><term><emphasis>Trust the size:</emphasis></term><listitem><para>
+         Similar to trusting the modification date. No real comparison happens. Two
+         files are considered equal if their file-sizes are equal. This is useful
+         when the file-copy operation didn't preserve the modification date.
+         Use this option with care. Default is off.</para></listitem></varlistentry>
+</variablelist></para></listitem></varlistentry>
+         
+   <varlistentry><term><emphasis>Synchronize Directories:</emphasis></term><listitem><para> Activates "Sync-Mode" when two directories
+         are compared and no explicit destination directory was specified. In this
+         mode the proposed operations will be chosen so that both source directories
+         are equal afterwards. Also the merge result will be written to both directories.
+         Default is off.</para></listitem></varlistentry>
+   <varlistentry><term><emphasis>Copy newer instead of merging:</emphasis></term><listitem><para> Instead of merging the proposed
+         operation will copy the newer source if changes happened. (Considered unsafe,
+         because it implies that you know, that the other file hasn't been edited
+         too. Check to make sure in every case.) Default is off.</para></listitem></varlistentry>
+   <varlistentry><term><emphasis>Backup files:</emphasis></term><listitem><para> If a file or complete directory is replaced
+         by  another or is deleted then the original version will be renamed with an
+         ".orig"  extension. If an old backup file with ".orig" extension already exists
+         then  this will be deleted without backup. This also affects the normal merging
+         of single files, not only in directory-merge mode. Default is on.</para></listitem></varlistentry>
+</variablelist>
+</sect1>
+
+<sect1 id="other"><title>Other Functions in Directory Merge Window</title>
+<sect2><title>Split/Full Screen Mode</title>
+<para>
+   Usually the directory merge list view remains visible while a single file
+   is compared or merged. With the mouse you can move the the splitter bar that
+   separates the file list from the text-diff windows. If you don't want this,
+   you can disable "Split Screen View" in the "Directory"-menu. Then you can
+   use "Toggle View" in the "Directory"-menu to switch between the file list
+   and the text-diff view that then occupy the full screen.
+</para>
+</sect2>
+<sect2><title>Comparing or Merging a Single File</title>
+<para>
+   Probably you will prefer a simple double mouse click on a file in order
+   to compare it. Nevertheless there also exists an entry in the "Directory"-menu.
+   You can also directly merge a single file by selecting it and 
+   choosing "Merge current file" in the "Merge"-Menu. On saving the
+   result, the status will be set to done, and the file will not be merged again
+   if a directory merge is started.
+</para><para>
+   But note that this status information will be lost when you rerun a directory
+   scan: "Directory"-menu: "Rescan"
+</para>
+</sect2>
+<sect2><title>Comparing or Merging Files with Different Names</title>
+<para>
+   Sometimes you need to compare or merge files with different names (e.g. the current 
+   file and the backup in the same folder).
+</para><para>
+   Select the exact file by clicking onto the icon in the column A, B or C. The first 
+   file selected thus will be marked with an "A", the second and third with "B" and "C" 
+   regardless on what column they are in. Only up to three files can be chosen like this.
+</para><para>
+   Proceed by choosing "Compare Explicitely Selected Files" or "Merge Explicitely 
+   Selected Files" from the "Directory"-menu. For your convenience these menu entries 
+   also appear as context menu when you right-click the last selected file.
+</para><para>
+   The comparison or merge of a file will happen in the same window. 
+   If this method is used for directories a new window will be opened.
+</para></sect2>
+</sect1>
+</chapter>
+
+<chapter id="misc">
+<title>Miscellaneous Topics</title>
+<sect1 id="networktransparency">
+<title>Networktransparency via KIO</title>
+<sect2><title>KIO-Slaves</title>
+<para>
+KDE supports networktransparency via KIO-slaves. &kdiff3; uses this
+for reading input files and for scanning directories.
+This means that you can specify files and directories on local and
+remote resources via URLs.
+</para><para>
+Example:
+</para><para>
+<screen>
+   <command>kdiff3</command> test.cpp  ftp://ftp.faraway.org/test.cpp
+   <command>kdiff3</command> tar:/home/hacker/archive.tar.gz/dir ./dir
+</screen>
+</para>
+<para>The first line compares a local file with a file on an FTP-server. The second line
+compares a directory within an compressed archive with a local directory.
+</para><para>
+Other KIO-slaves that are interesting are:
+</para>
+<itemizedlist>
+<listitem><para>Files from the WWW (http:),</para></listitem>
+<listitem><para>Files from the FTP (ftp:),</para></listitem>
+<listitem><para>Encrypted file transfer (fish:, sftp:),</para></listitem>
+<listitem><para>Windows-ressources (smb:),</para></listitem>
+<listitem><para>Local files (file:),</para></listitem>
+</itemizedlist>
+<para>
+Other things that are possible, but probably less useful are:
+</para>
+<itemizedlist>
+<listitem><para>Man-pages (man:),</para></listitem>
+<listitem><para>Info-pages (info:),</para></listitem>
+</itemizedlist>
+</sect2>
+
+<sect2><title>How To Write URLs</title>
+<para>
+   An URL has a different syntax compared with paths for local files and directories.
+   Some things should be considered:
+</para>
+<itemizedlist>
+<listitem><para>
+   A path can be relative and can contain "." or "..". This is not possible for URLs
+   which are always absolute.
+</para></listitem><listitem><para>
+   Special characters must be written with "escaping". ("#"->"%23", space->"%20", etc.)
+   E.g. A file with the name "/#foo#" would have the URL "file:/%23foo%23".
+</para></listitem><listitem><para>
+   When URLs don't work as expected, try to open them in Konqueror first.
+</para></listitem>
+</itemizedlist>
+
+</sect2>
+
+<sect2><title>Capabilities of KIO-Slaves</title>
+<para>
+   Networktransparency has one drawback: Not all ressources have the same cababilities.
+</para><para>
+   Sometimes this is due to the file system of the server, sometimes due to the protocol.
+   Here is a short list of restrictions:
+</para>
+<itemizedlist>
+<listitem><para>
+   Sometimes there is no support for links.
+</para></listitem><listitem><para>
+   Or there is no way to distinguish if a link points to a file or a directory; always
+   assuming a file. (ftp:, sftp:).
+</para></listitem><listitem><para>
+   Can't always determine the filesize.
+</para></listitem><listitem><para>
+   Limited support for permissions.
+</para></listitem><listitem><para>
+   No possibility to modify permissions or modification time, so permissions or time
+   of a copy will differ from the original. (See the option "Trust the size".)
+   (To modify permissions or modification time is only possible for local files.)
+</para></listitem>
+</itemizedlist>
+</sect2>
+</sect1>
+
+<sect1 id="kpart">
+<title>Using &kdiff3; as a KPart</title>
+<para>
+&kdiff3; is a KPart. Currently it implements the KParts::ReadOnlyPart-interface.
+</para><para>
+  <!-- Is this still valid? -->
+It's main use is as difference-viewer in KDevelop. KDevelop always starts the
+internal difference viewer first. To invoke &kdiff3; press the right mouse button
+on the difference viewer window and select "Show in KDiff3Part" from the contextmenu.
+</para><para>
+&kdiff3; normally requires two complete files as input. When used as part &kdiff3;
+will assume that the inputfile is a patch-file in the unified format. &kdiff3;
+then retrieves the original filenames from the patch-file. At least one of
+the two files must be available. &kdiff3; will then invoke <command>patch</command> to
+recreate the second file.
+</para><para>
+In Konqueror you can select a patch-file and select "Preview in"-"KDiff3Part" from
+the contextmenu. Be aware that this won't work if none of the original files are
+available, and it is not reliable if the original file(s) have changed since the
+patch-file was generated.
+</para><para>
+When run as a part &kdiff3; only provides the a two-file-diff, a very small toolbar
+and menu. Merging or directory-comparison are not supported then.
+</para>
+</sect1>
+</chapter>
+
+<chapter id="faq">
+<title>Questions and Answers</title>
+
+&reporting.bugs;
+&updating.documentation;
+
+<qandaset id="faqlist">
+
+<qandaentry><question><para>
+   Why is it called "&kdiff3;"?
+</para></question><answer><para>
+   Tools named "KDiff" and "KDiff2" (now called "Kompare") already exist. Also "KDiff3" should suggest
+   that it can merge like the "diff3"-tool in the Diff-Tool collection.
+</para></answer></qandaentry>
+
+<qandaentry><question><para>
+   Why did I release it under GPL?
+</para></question><answer><para>
+   I'm using GPL programs for a very long time now and learned very much
+   by  having a look at many of the sources. Hence this is my "Thank You"
+   to   all  programmers that also did so or will do the same.
+</para></answer></qandaentry>
+
+<qandaentry><question><para>
+   Some buttons and functions are missing. What's wrong?
+</para></question><answer><para>
+   You compiled from source but you probably didn't specify the correct KDE-prefix
+   with configure. By default configure wants to install in /usr/local but then KDE can't
+   find the user-interface ressource file (i.e. kdiff3ui.rc). The README-file contains
+   more information about the correct prefix.
+</para></answer></qandaentry>
+
+<qandaentry><question><para>
+   Often lines that are similar but not identical appear next to each other
+   but sometimes not. Why?
+</para></question><answer><para>
+   Lines where only the amount of white space characters is different
+   are   treated as "equal" at first, while just one different non-white character
+   causes the lines to be "different". If similar lines appear next to each
+   other, this actually is coincidence but this fortunately is often the case.
+   See also <link linkend="manualdiffhelp">Manual Diff Help</link>.
+</para></answer></qandaentry>
+
+<qandaentry><question><para>
+   Why must all conflicts be solved before the merge result can be saved?
+</para></question><answer><para>
+   For each equal or different section the editor in the merge result
+   window    remembers where it begins or ends. This is needed so that conflicts
+   can  be solved manually by simply selecting the source button (A, B or C).
+   This  information is lost while saving as text and it is too much effort to
+   create  a special file format that supports saving and restoring all necessary
+   information.
+</para></answer></qandaentry>
+
+<qandaentry><question><para>
+   How can I synchronise the diff and merge views, so that all views show the same text position?
+</para></question><answer><para>
+  Click into the summary column left of the text. (<link linkend="synchronise_views">See also here.</link>)
+</para></answer></qandaentry>
+
+<qandaentry><question><para>
+   Why does the editor in the merge result window not have an "undo"-function?
+</para></question><answer><para>
+  This was too much effort until now. You can always
+  restore a version from one source (A, B or C) by clicking the respective
+  button. For big editing the use of another editor is recommended anyway.
+</para></answer></qandaentry>
+
+<qandaentry><question><para>
+   When I removed some text, then suddenly "&lt;No src line&gt;" appeared
+   and cannot be deleted. What does that mean and how can one remove this?
+</para></question><answer><para>
+   For each equal or different section the editor in the merge result
+   window    remembers where it begins or ends. "&lt;No src line&gt;" means
+   that    there is nothing left in a section, not even a new line character.
+   This  can happen either while merging automatically or by editing. This is
+   no problem,   since this hint won't appear in the saved file. If you want
+   the orignal source  back just select the section (click on the left summary
+   column) and then click the source button with the needed contents (A/B or
+   C).
+</para></answer></qandaentry>
+
+<qandaentry><question><para>
+   Why doesn't &kdiff3; support syntax-highlighting?
+</para></question><answer><para>
+   &kdiff3; already uses many colors for difference highlighting. More
+   highlighting    would be confusing. Use another editor for this.
+</para></answer></qandaentry>
+
+<qandaentry><question><para>
+   Can I use &kdiff3; to compare OpenOffice.Org, Word, Excel, PDF-, &etc; files?
+</para></question><answer><para>
+   Although &kdiff3; will analyse any kind of file the result will probably
+   not be very satisfactory for you.
+</para><para>
+   &kdiff3; was made to compare pure text files. OpenOffice, Word, Excel etc.
+   store much more information in the files (about fonts, pictures, pages,
+   colors etc.) which &kdiff3; doesn't know about. So &kdiff3; will 
+   show you the contents of the file interpreted as pure text, but 
+   this might be unreadable or at least it will look very odd.
+</para><para>
+   Since most programs nowadays store their contents in XML-format, you might 
+   be able to read it as pure text. So if the change was only small,
+   &kdiff3; still might help you.
+</para><para>
+   The best solution if you only want to compare the text (without embedded 
+   objects like pictures) is to use "Select All" and "Copy" in your program 
+   to copy the interesting text to the clipoard and then in &kdiff3; paste the 
+   text into either diff input window. 
+   (See also <link linkend="selections">Select, Copy And Paste</link>.)
+</para></answer></qandaentry>
+
+<qandaentry><question><para>
+   Where has the the directory option "List only deltas" gone?
+</para></question><answer><para>
+   There are now several <link linkend="selectingvisiblefiles">"Show"-options</link> in the directory menu.
+   Disabling "Show identical files" will achieve what enabling "List only deltas" used to do.
+</para></answer></qandaentry>
+
+<qandaentry><question><para>
+   How can I make a big selection in the diff input window
+   because scrolling takes so long?
+</para></question><answer><para>
+   Start the selection as usual (click and hold the left mouse button). 
+   Then use the navigation keys (e.g. page up, page down) while holding the left mouse button down.
+   (See also <link linkend="selections">Select, Copy And Paste</link>.)
+</para></answer></qandaentry>
+
+<qandaentry><question><para>
+   There is so much information here, but your question is still not answered?
+</para></question><answer><para>
+   Please send me your question. I appreciate every comment.
+</para></answer></qandaentry>
+
+</qandaset>
+</chapter>
+
+<chapter id="credits">
+
+<title>Credits and License</title>
+
+<para>
+&kdiff3; - File and Directory Comparison and Merge Tool
+</para>
+<para>
+Program copyright 2002-2007 Joachim Eibl <email>joachim.eibl at gmx.de</email>
+</para>
+<para>
+Several cool ideas and bugreports came from colleagues and many people out in the Wild Wild Web. Thank you!
+</para>
+
+<para>
+Documentation Copyright &copy; 2002-2007 Joachim Eibl <email>joachim.eibl at gmx.de</email>
+</para>
+
+<!-- TRANS:CREDIT_FOR_TRANSLATORS -->
+
+&underFDL;               <!-- FDL: do not remove -->
+
+
+&underGPL;              <!-- GPL License -->
+
+</chapter>
+
+<appendix id="installation">
+<title>Installation</title>
+
+<sect1 id="getting-kdiff3">
+<title>How to obtain &kdiff3;</title>
+
+<para>
+You can download the latest version of &kdiff3; from its homepage <ulink url="http://kdiff3.sourceforge.net">http://kdiff3.sourceforge.net</ulink>.
+</para><para>
+&kdiff3; is also available for other platforms. See the homepage for details.
+</para>
+
+
+</sect1>
+
+<sect1 id="requirements">
+<title>Requirements</title>
+
+<para>
+   In order to successfully use all features of &kdiff3;, you need &kde; >4.4.
+</para><para>
+   For information about how to run &kdiff3; on other platforms without KDE please see the
+   <ulink url="http://kdiff3.sourceforge.net">homepage</ulink>.
+</para><para>
+You can find a list of changes at <ulink
+url="http://kdiff3.sourceforge.net/ChangeLog">http://kdiff3.sourceforge.net/ChangeLog</ulink>
+or in the "ChangeLog"-file of the source package.
+</para>
+</sect1>
+
+<sect1 id="compilation">
+<title>Compilation and Installation</title>
+
+&install.compile.documentation;
+
+<para>If you don't use KDE, follow the instructions for Qt-only systems in the README file.</para>
+
+</sect1>
+
+</appendix>
+
+&documentation.index;
+</book>
+
+<!--
+Local Variables:
+mode: sgml
+sgml-minimize-attributes:nil
+sgml-general-insert-case:lower
+sgml-indent-step:0
+sgml-indent-data:nil
+End:
+
+vim:tabstop=2:shiftwidth=2:expandtab
+-->
diff --git a/doc/en/iteminfo.png b/doc/en/iteminfo.png
new file mode 100644 (file)
index 0000000..4c285d9
Binary files /dev/null and b/doc/en/iteminfo.png differ
diff --git a/doc/en/kdiff3.1 b/doc/en/kdiff3.1
new file mode 100644 (file)
index 0000000..b4d8752
--- /dev/null
@@ -0,0 +1,121 @@
+.\" $Header$
+.\"
+.\"    transcript compatibility for postscript use.
+.\"
+.\"    synopsis:  .P! <file.ps>
+.\"
+.de P!
+.fl
+\!!1 setgray
+.fl
+\\&.\"
+.fl
+\!!0 setgray
+.fl                    \" force out current output buffer
+\!!save /psv exch def currentpoint translate 0 0 moveto
+\!!/showpage{}def
+.fl                    \" prolog
+.sy sed -e 's/^/!/' \\$1\" bring in postscript file
+\!!psv restore
+.
+.de pF
+.ie     \a\\*(f1\a\a .ds f1 \\n(.f
+.el .ie \a\\*(f2\a\a .ds f2 \\n(.f
+.el .ie \a\\*(f3\a\a .ds f3 \\n(.f
+.el .ie \a\\*(f4\a\a .ds f4 \\n(.f
+.el .tm ? font overflow
+.ft \\$1
+..
+.de fP
+.ie     !\a\\*(f4\a\a \{\
+.      ft \\*(f4
+.      ds f4\"
+'      br \}
+.el .ie !\a\\*(f3\a\a \{\
+.      ft \\*(f3
+.      ds f3\"
+'      br \}
+.el .ie !\a\\*(f2\a\a \{\
+.      ft \\*(f2
+.      ds f2\"
+'      br \}
+.el .ie !\a\\*(f1\a\a \{\
+.      ft \\*(f1
+.      ds f1\"
+'      br \}
+.el .tm ? font underflow
+..
+.ds f1\"
+.ds f2\"
+.ds f3\"
+.ds f4\"
+'\" t 
+.ta 8n 16n 24n 32n 40n 48n 56n 64n 72n  
+.TH "KDIFF3" "1" 
+.SH "NAME" 
+kdiff3 \(em compares two or three input files or directories 
+.SH "SYNOPSIS" 
+.PP 
+\fBkdiff3\fR [\fBQT options\fP]  [\fBKDE options\fP]  [\fBkdiff3 options\fP]  [\fB\fIFile1\fR\fP]  [\fB\fIFile2\fR\fP]  [\fB\fIFile3\fR\fP]  
+.SH "DESCRIPTION" 
+.PP 
+This manual page documents briefly the 
+\fBkdiff3\fR tool. 
+.PP 
+This manual page was written for the \fBDebian\fP distribution 
+because the original program does not have a manual page. 
+For comprehensive help, please see \fBkhelpcenter help:/kdiff3\fR. 
+.PP 
+\fBkdiff3\fR is a program that 
+.IP "   \(bu" 6 
+compares two or three input files  
+.IP "   \(bu" 6 
+shows the differences line by line and character by character  
+.IP "   \(bu" 6 
+provides an automatic merge-facility and  
+.IP "   \(bu" 6 
+an integrated editor for comfortable solving of merge-conflicts  
+.IP "   \(bu" 6 
+and has an intuitive graphical user interface  
+.IP "   \(bu" 6 
+and allows directory comparison and merge.      
+.SH "OPTIONS" 
+.PP 
+This program follows the usual GNU command line syntax, 
+with long options starting with two dashes (`-').  A summary of 
+options is included below. For a full summary of options, run 
+\fBkdiff3 --help\fR. 
+.IP "\fB-m, --merge\fP         " 10 
+Merge the input. 
+.IP "\fB-b, --base file\fP         " 10 
+Explicit base file. For compatibility with certain tools. 
+.IP "\fB-o, --output file\fP         " 10 
+Output file. Implies -m. E.g.: -o newfile.txt 
+.IP "\fB--out file\fP         " 10 
+Output file, again. (For compatibility with certain tools.) 
+.IP "\fB--auto\fP         " 10 
+No GUI if all conflicts are auto-solvable. (Needs -o file) 
+.IP "\fB--qall\fP         " 10 
+Don't solve conflicts automatically. (For compatibility...) 
+.IP "\fB--fname alias\fP         " 10 
+Visible name replacement. Supply this once for every input. 
+.IP "\fB-v, --version\fP         " 10 
+Show version of program.    
+.SH "AUTHOR" 
+.PP 
+This manual page was written by Eike Sauer <eikes@cs.tu-berlin.de> for 
+the \fBDebian\fP system (but may be used by others).  Permission is 
+granted to copy, distribute and/or modify this document under 
+the terms of the GNU General Public License, Version 2 
+(or, at your option, any later version published by the Free 
+Software Foundation). 
+.PP 
+On Debian systems, the complete text of the GNU General Public 
+License can be found in /usr/share/common-licenses/GPL. 
+.\" created by instant / docbook-to-man, Fri 07 Nov 2003, 15:46 
diff --git a/doc/en/letter_by_letter.png b/doc/en/letter_by_letter.png
new file mode 100644 (file)
index 0000000..215788a
Binary files /dev/null and b/doc/en/letter_by_letter.png differ
diff --git a/doc/en/merge_current.png b/doc/en/merge_current.png
new file mode 100644 (file)
index 0000000..721552e
Binary files /dev/null and b/doc/en/merge_current.png differ
diff --git a/doc/en/new.png b/doc/en/new.png
new file mode 100644 (file)
index 0000000..09660a7
Binary files /dev/null and b/doc/en/new.png differ
diff --git a/doc/en/open_dialog.png b/doc/en/open_dialog.png
new file mode 100644 (file)
index 0000000..cf02fca
Binary files /dev/null and b/doc/en/open_dialog.png differ
diff --git a/doc/en/screenshot_diff.png b/doc/en/screenshot_diff.png
new file mode 100644 (file)
index 0000000..60e510e
Binary files /dev/null and b/doc/en/screenshot_diff.png differ
diff --git a/doc/en/screenshot_merge.png b/doc/en/screenshot_merge.png
new file mode 100644 (file)
index 0000000..695a048
Binary files /dev/null and b/doc/en/screenshot_merge.png differ
diff --git a/doc/en/triple_diff.png b/doc/en/triple_diff.png
new file mode 100644 (file)
index 0000000..8c4759e
Binary files /dev/null and b/doc/en/triple_diff.png differ
diff --git a/doc/en/white_space.png b/doc/en/white_space.png
new file mode 100644 (file)
index 0000000..4dac363
Binary files /dev/null and b/doc/en/white_space.png differ
diff --git a/doc/es/CMakeLists.txt b/doc/es/CMakeLists.txt
new file mode 100644 (file)
index 0000000..d8823d6
--- /dev/null
@@ -0,0 +1 @@
+kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/es SUBDIR kdiff3)
diff --git a/doc/es/index.docbook b/doc/es/index.docbook
new file mode 100644 (file)
index 0000000..03c56f6
--- /dev/null
@@ -0,0 +1,2965 @@
+<?xml version="1.0" ?>
+<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
+  <!ENTITY kdiff3 "<application
+>KDiff3</application
+>">
+  <!ENTITY kappname "&kdiff3;">
+  <!ENTITY package "extragear-utils">
+  <!ENTITY % addindex "IGNORE">
+  <!ENTITY % Spanish "INCLUDE">
+]>
+
+<book lang="&language;">
+
+<!-- This header contains all of the meta-information for the document such
+as Authors, publish date, the abstract, and Keywords -->
+
+<bookinfo>
+<title
+>El manual de &kdiff3;</title>
+
+<authorgroup>
+<author
+><firstname
+>Joachim</firstname
+> <surname
+>Eibl</surname
+> <affiliation
+><address
+> <email
+>joachim.eibl at gmx.de</email>
+</address
+></affiliation>
+</author>
+<othercredit role="translator"
+> <firstname
+>Santiago</firstname
+> <surname
+>Fernández Sancho</surname
+> <affiliation
+><address
+><email
+>santi@kde-es.org</email
+></address
+></affiliation
+> <contrib
+>Traductor</contrib
+> </othercredit
+> 
+</authorgroup>
+
+<copyright>
+<year
+>2002-2007</year>
+<holder
+>Joachim Eibl</holder>
+</copyright>
+<!-- Translators: put here the copyright notice of the translation -->
+<!-- Put here the FDL notice.  Read the explanation in fdl-notice.docbook
+     and in the FDL itself on how to use it. -->
+<legalnotice
+>&FDLNotice;</legalnotice>
+
+<!-- Date and version information of the documentation
+Don't forget to include this last date and this last revision number, we
+need them for translation coordination !
+Please respect the format of the date (YYYY-MM-DD) and of the version
+(V.MM.LL), it could be used by automation scripts.
+Do NOT change these in the translation. -->
+
+<date
+>2007-31-03</date>
+<releaseinfo
+>0.9.92</releaseinfo>
+
+
+<abstract>
+<para
+>&kdiff3; es una herramienta para ver diferencias y fusionar archivos y directorios que: <itemizedlist>
+<listitem
+><para
+>Compara y fusiona dos o tres archivos o directorios de texto.</para
+></listitem>
+<listitem
+><para
+>Muestra las diferencias línea a línea y caracter a caracter (!).</para
+></listitem>
+<listitem
+><para
+>Proporciona una utilidad de fusión automática.</para
+></listitem>
+<listitem
+><para
+>Tiene un editor para resolver de forma cómoda los conflictos de fusión.</para
+></listitem>
+<listitem
+><para
+>Proporciona transparencia de red a través de KIO.</para
+></listitem>
+<listitem
+><para
+>Tiene opciones para resaltar u ocultar los cambios en los espacios en blanco o en los comentarios.</para
+></listitem>
+<listitem
+><para
+>Soporta Unicode, UTF-8 y otras codificaciones de archivo.</para
+></listitem>
+<listitem
+><para
+>Imprime diferencias.</para
+></listitem>
+<listitem
+><para
+>Soporta claves de control de versiones e historial de fusionado.</para
+></listitem>
+</itemizedlist>
+</para
+><para
+>Este documento describe la versión 0.9.92 de &kdiff3;. </para>
+</abstract>
+
+<!-- This is a set of Keywords for indexing by search engines.
+Please at least include KDE, the KDE package it is in, the name
+ of your application, and a few relevant keywords. -->
+
+<keywordset>
+<keyword
+>KDE</keyword>
+<keyword
+>kdeextragear</keyword>
+<keyword
+>kdiff3</keyword>
+<keyword
+>diferencia</keyword>
+<keyword
+>fusión</keyword>
+<keyword
+>CVS</keyword>
+<keyword
+>triple diferencia</keyword>
+<keyword
+>comparar</keyword>
+<keyword
+>archivos</keyword>
+<keyword
+>directorios</keyword>
+<keyword
+>control de versiones</keyword>
+<keyword
+>fusión del árbol</keyword>
+<keyword
+>diferencias en línea</keyword>
+<keyword
+>sincronización</keyword>
+<keyword
+>kpart</keyword>
+<keyword
+>kio</keyword>
+<keyword
+>transparencia de red</keyword>
+<keyword
+>editor</keyword>
+<keyword
+>espacio en blanco</keyword>
+<keyword
+>comentarios</keyword>
+</keywordset>
+
+</bookinfo>
+
+<chapter id="introduction"
+><title
+>Introducción</title>
+<sect1 id="why"
+><title
+>¿Otro interfaz para diff?</title>
+<para
+>Ya existen varias herramientas gráficas para diff. ¿Por qué elegir &kdiff3;? Déjeme decirle por qué lo escribí. </para
+><para
+>&kdiff3; se inició debido a la dificultad para hacer la fusión. La fusión es necesaria cuando varias personas trabajan sobre los mismos archivos en un proyecto. Una fusión puede ser algo automatizado, cuando la herramienta de fusionado no solo tiene nuevos archivos modificados (llamados «ramas»), sino también el archivo original (llamado «base»). La herramienta de fusionado seleccionará automáticamente cualquier modificación que se haga solo en una rama. Cuando varios colaboradores cambian la misma línea, la herramienta detecta un conflicto que deberá resolverse manualmente. </para
+><para
+>El fusionado se vuelve difícil porque, por ejemplo, un colaborador cambió muchas cosas y corrigió el sangrado en algunos lugares. Otro colaborador también cambió mucho texto en el mismo archivo, y todo esto dió como resultado varios conflictos durante la fusión. </para
+><para
+>La herramienta que utilizaba, solo mostraba las líneas cambiadas, pero no los cambios hechos en estas líneas. Y no había información sobre los cambios en el sangrado. La fusión era una pequeña pesadilla. </para
+><para
+>Por eso empecé. La primera versión podía mostrar las diferencias en un línea y las diferencias en los espacios en blanco. Después se añadieron otras características para incrementar la utilidad. </para
+><para
+>Por ejemplo, si desea comparar algún texto rápidamente, podrá copiarlo al portapapeles y pegarlo en otra ventana de diff. </para
+><para
+>Una característica que requería un enorme esfuerzo era la capacidad de comparar y fusionar directorios, que convirtió el programa en un navegador de archivos completo. </para
+><para
+>Espero que &kdiff3; le funcione también. ¡Diviértase! </para
+><para
+>Joachim Eibl (2003) </para>
+</sect1>
+
+<sect1 id="screenshots"
+><title
+>Capturas de pantalla y características</title>
+<para
+>Esta captura de pantalla muestra la diferencia entre dos archivos de texto.</para>
+<para
+>(Utilizando una versión temprana de &kdiff3;):</para>
+<screenshot
+><mediaobject>
+   <imageobject
+><imagedata fileref="screenshot_diff.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+
+<para
+>Existe 3 formas de fusión totalmente soportados. Es práctico si dos personas modifican código de forma independiente. El archivo original (la base) se utiliza para ayudar a &kdiff3; para seleccionar automáticamente los cambios correctos. El editor de fusión bajo la ventana de diferencias le permite resolver los conflictos, a la vez que le muestra la salida. También podrá editar la salida. Esta captura de pantalla muestra tres archivos de entrada que se pueden fusionar: </para
+><para>
+<screenshot
+><mediaobject>
+   <imageobject
+><imagedata fileref="screenshot_merge.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+</para>
+
+<para id="dirmergebigscreenshot"
+>&kdiff3; también le ayuda a comparar y fusionar directorios completos. Esta captura muestra &kdiff3; durante la fusión de un directorio: </para
+><para>
+<screenshot
+><mediaobject>
+   <imageobject
+><imagedata fileref="dirmergebig.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+</para>
+</sect1>
+
+<sect1 id="features"
+><title
+>Más características</title>
+<sect2
+><title
+>Visor de diferencias línea a línea y caracter a caracter</title>
+<para
+>Utilizando las posibilidades que permite una pantalla gráfica a color &kdiff3; muestra exactamente cuál es la diferencia. Cuando haga algunas revisiones de código, obtendrá algo como ésto. </para>
+<screenshot
+><mediaobject>
+   <imageobject
+><imagedata fileref="letter_by_letter.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+</sect2>
+
+<sect2
+><title
+>Ver diferencias de espacios en blanco de un vistazo</title>
+<para
+>Los espacios y tabulaciones que difieren se muestran visiblemente. Cuando las líneas difieren solo en la cantidad de espacios en blanco puede verse de un vistazo en la columna resumen en la parte izquierda (no más preocupaciones cuando se hagan cambios en el sangrado). </para>
+<screenshot
+><mediaobject>
+   <imageobject
+><imagedata fileref="white_space.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+</sect2>
+
+<sect2
+><title
+>Triple diferencia</title>
+<para
+>Analiza tres archivos y ve dónde está la diferencia. </para
+><para
+>Las ventanas izquierda/central/derecha se llamarán A/B/C y tendrán los colores azul/verde/gris respectivamente. </para
+><para
+>Si un archivo es igual y el otro es diferente en una línea, el color mostrado en el archivo será diferente. El color rojo significa que ambos archivos son diferentes. </para>
+<screenshot
+><mediaobject>
+   <imageobject
+><imagedata fileref="triple_diff.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+</sect2>
+
+<sect2
+><title
+>Fusión cómoda de dos o tres archivos de entrada</title>
+<para
+>&kdiff3; puede utilizarse para fusionar dos o tres archivos de entrada y hacer la fusión todo lo automática que sea posible. El resultado se presentará en una ventana editable donde se podrán resolver la mayor parte de los conflictos con una pulsación de ratón: Seleccione los botones A/B/C de la barra de botones para seleccionar la fuente que se utilizará. También podrá seleccionar más de una fuente. Como la ventana de salida es un editor aunque los conflictos puedan necesitar correcciones más profundas, éste hecho puede resolverse aquí sin ninguna herramienta adicional. </para>
+</sect2>
+
+<sect2
+><title
+>Y ...</title>
+<itemizedlist>
+   <listitem
+><para
+>Navegación rápida a través de los botones.</para
+></listitem>
+   <listitem
+><para
+>Una pulsación del ratón en la columna resumen sincronizará todas las ventanas para mostrar la misma posición.</para
+></listitem>
+   <listitem
+><para
+>Seleccione una copia desde cualquier ventana y péguela en la ventana de fusión del resultado.</para
+></listitem>
+   <listitem
+><para
+>Columna de vista general que muestra los cambios y conflictos.</para
+></listitem>
+   <listitem
+><para
+>Los colores pueden ajustarse a sus preferencias.</para
+></listitem>
+   <listitem
+><para
+>Tamaño de pestaña ajustable.</para
+></listitem>
+   <listitem
+><para
+>Opción de insertar espacios en lugar de tabuladores.</para
+></listitem>
+   <listitem
+><para
+>Abrir archivos cómodamente a través de un diálogo o especificando archivos en la línea de órdenes.</para
+></listitem>
+   <listitem
+><para
+>Buscar cadenas en todas las ventanas de texto. Buscar (Ctrl-F) y Buscar siguiente (F3).</para
+></listitem>
+   <listitem
+><para
+>Mostrar los números de línea. </para
+></listitem>
+   <listitem
+><para
+>Pegar el portapapeles y arrastrar texto a una ventana de diferencias.</para
+></listitem>
+   <listitem
+><para
+>Transferencia de red a través de KIO.</para
+></listitem>
+   <listitem
+><para
+>Puede utilizarse como visor de diff en KDevelop 3.</para
+></listitem>
+   <listitem
+><para
+>Ajuste de línea para las líneas largas.</para
+></listitem>
+   <listitem
+><para
+>Soporte para Unicode, UTF-8 y otras codificaciones.</para
+></listitem>
+   <listitem
+><para
+>Soporte para idiomas que van de derecha a izquierda.</para
+></listitem>
+   <listitem
+><para
+>...</para
+></listitem>
+</itemizedlist>
+</sect2>
+</sect1>
+</chapter>
+
+<chapter id="documentation"
+><title
+>Comparación y fusión de archivos</title>
+
+<sect1 id="commandline"
+><title
+>Opciones de la línea de órdenes</title>
+
+<sect2
+><title
+>Comparar 2 archivos: </title>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>archivo1 archivo2</replaceable
+>
+</screen>
+</sect2>
+
+<sect2
+><title
+>Fusionar 2 archivos: </title>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>archivo1 archivo2</replaceable
+> -m
+   <command
+>kdiff3</command
+> <replaceable
+>archivo1 archivo2</replaceable
+> -o <replaceable
+>archivosalida</replaceable
+>
+</screen>
+</sect2>
+
+<sect2
+><title
+>Comparar 3 archivos: </title>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>archivo1 archivo2 archivo3</replaceable
+>
+</screen>
+</sect2>
+
+<sect2
+><title
+>Fusionar 3 archivos: </title>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>archivo1 archivo2 archivo3</replaceable
+> -m
+   <command
+>kdiff3</command
+> <replaceable
+>archivo1 archivo2 archivo3</replaceable
+> -o <replaceable
+>archivosalida</replaceable
+>
+</screen>
+<para
+>Tenga en cuenta que <replaceable
+>archivo1</replaceable
+> será tratado como base de <replaceable
+>archivo2</replaceable
+> y <replaceable
+>archivo3</replaceable
+>. </para>
+</sect2>
+
+<sect2
+><title
+>Caso especial: Archivos con el mismo nombre </title>
+<para
+>Si todos los archivos tienen el mismo nombre pero están en directorios diferentes, puede reducir el tipo de trabajo especificando el nombre del archivo sólo para el primer archivo. P.ej.: </para>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>directorio1/nombrearchivo directorio2 directorio3</replaceable
+>
+</screen>
+</sect2>
+
+<sect2
+><title
+>Línea de órdenes para iniciar la comparación o fusión de un directorio: </title>
+<para
+>Es muy similar, pero ahora  sobre directorios.</para>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>directorio1 directorio2</replaceable>
+   <command
+>kdiff3</command
+> <replaceable
+>directorio1 directorio2</replaceable
+> -o <replaceable
+>directoriodestino</replaceable>
+   <command
+>kdiff3</command
+> <replaceable
+>directorio1 directorio2 directorio3</replaceable>
+   <command
+>kdiff3</command
+> <replaceable
+>directorio1 directorio2 directorio3</replaceable
+> -o <replaceable
+>directoriodestino</replaceable
+>
+</screen>
+<para
+>Para la comparación y fusión de directorios puede continuar leyendo <link linkend="dirmerge"
+>aquí</link
+>.</para>
+</sect2>
+
+<sect2
+><title
+>Opciones de la línea de órdenes</title>
+<para
+>Para obtener más información sobre las opciones de la línea de órdenes utilice:</para>
+<screen
+><command
+>kdiff3</command
+> --help
+</screen>
+<para
+>Ejemplo de salida:</para>
+<screen
+>Opciones:
+  -m, --merge               Fusiona la entrada.
+  -b, --base archivo        Archivo base explícito. Por compatibilidad con ciertas herramientas.
+  -o, --output archivo      Archivo de salida. Supone -m. Ejem.: -o nuevoarchivo.txt
+  --out archivo             Archivo de salida, de nuevo. (Por compatibilidad con ciertas herramientas.)
+  --auto                    Sin interfaz si todos los conflictos se resuelven de forma automática. (Necesita -o archivo)
+  --qall                    No resuelve los conflictos automáticamete. (Por compatibilidad...)
+  --L1 alias1               Reemplazo de nombre visible para la entrada del archivo 1 (base).
+  --L2 alias2               Reemplazo de nombre visible para la entrada del archivo 2.
+  --L3 alias3               Reemplazo de nombre visible para la entrada del archivo 3.
+  -L, --fname alias         Reemplazo de nombre visible alternativo. Proporcione éste una vez para cada entrada.
+  --cs string               Sobreescribe la configuración. Utilícelo una vez para cada opción. P.ej.: --cs "AutoAdvance=1"
+  --confighelp              Muestra la lista de las opciones de configuración y sus valores actuales.
+  --config file             Utiliza un archivo de configuración diferente.
+</screen>
+<para
+>La opción <option
+>--cs</option
+> le permite ajustar un valor de configuración que de otra forma solo sería ajustable a través del diálogo de configuración. Pero asegúrese de que cuando &kdiff3; finalice se guarden los valores con las configuraciones nuevas. Con <option
+>--confighelp</option
+> puede encontrar los nombres de los elementos disponibles y los valores actuales.</para>
+<para
+>A través de <option
+>--config</option
+> puede especificar un archivo de configuración diferente. Cuando utilice con frecuencia diferentes configuraciones para &kdiff3; ésto le permitirá cambiar entre ellas.</para>
+</sect2>
+<sect2
+><title
+>Opciones de la línea de órdenes que se ignoran</title>
+<para
+>Mucha gente quiere utilizar &kdiff3; con algún sistema de control de versiones. Pero cuando el sistema de control de versiones llama a &kdiff3; utilizando los parámetros de la línea de órdenes &kdiff3; no los reconoce, y termina con un error. Las preferencias de integración le permiten especificar los parámetros de línea de órdenes que &kdiff3; debería ignorar. Aparecerán en la ayuda de uso, de forma similar a este ejemplo:</para>
+<screen
+>--<replaceable
+>foo</replaceable
+>                     Ignored. (Definida por el usuario.)
+</screen>
+<variablelist>
+  <varlistentry
+><term
+><emphasis
+>Opciones de la línea de órdenes a ignorar:</emphasis
+></term
+><listitem
+><para
+>Una lista de opciones separadas por punto y coma «;». Cuando aparezca una de estas opciones en una línea de órdenes, &kdiff3; la ignorará y se ejecutará sin informar de ningún error (el valor predeterminado es «u;query;html;abort»).</para
+></listitem
+></varlistentry>
+</variablelist>
+<para
+>Si ésto no es suficiente, se recomienda escribir un script para el intérprete de órdenes que traduzcan esta opción.</para>
+</sect2>
+
+</sect1>
+
+<sect1 id="opendialog"
+><title
+>Diálogo abrir</title>
+<para
+>Como se pueden seleccionar varios archivos de entrada, el programa tiene un diálogo de apertura especial: </para>
+<screenshot
+><mediaobject>
+<imageobject
+><imagedata fileref="open_dialog.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+<para
+>El diálogo abrir le permite editar los nombres de los archivos manualmente, seleccionando un archivo a través del navegador de archivos («Archivo...») o permitir la elección de los archivos recientes a través de las listas desplegables. Si abre el diálogo nuevamente, el nombre actual continúa ahí. El tercer archivo de entrada no es necesario. si la entrada para «C» permanece vacía, solo se efectuará el análisis de diferencia de dos archivos. </para
+><para
+>Puede seleccionar un directorio a través de «Dir...». Si se especifica un directorio para A entonces comienza la comparación/fusión de directorios. Si en A especifica un archivo pero en B,C o en la salida se especifica un directorio, &kdiff3; utiliza el nombre del archivo de A en los directorios especificados. </para
+><para
+>Si está seleccionado «Fusionar», la línea de «Salida» será editable. Pero no se necesita especificar el nombre de archivo de salida de forma inmediata. Puede postponerlo hasta que lo guarde. </para
+><para
+>El botón «Configurar...» abre el diálogo de opciones, de forma que pueda seleccionar las opciones antes de realizar el análisis. </para>
+</sect1>
+
+<sect1 id="pasteinput"
+><title
+>Pegar y soltar la entrada</title>
+<para
+>Algunas veces deseará comparar partes de un texto que no sea propiamente un archivo. &kdiff3; también le permite pegar texto desde el portapapeles a la ventana de entrada de diff que tenga el foco. El análisis de las diferencias se producirá inmediatamente. En el diálogo abrir no necesitará especificar archivos entonces, ciérrelo con el botón «Cancelar». </para
+><para
+>También podrá utilizar arrastrar y soltar: Arrastre un archivo desde un administrador de archivos o seleccione texto en un editor y arrástrelo a la ventana de entrada. </para
+><para
+>¿Cuál es la idea? Algunas veces un archivo contiene dos funciones similares, pero comprobar las similitudes es un esfuerzo enorme si primero debe crear los archivos y luego cargarlos. Ahora bastará con copiar, pegar y comparar las secciones relevantes. </para
+><para
+>Nota: En estos momentos no podrá arrastrar nada desde &kdiff3;. Solo está soportado en la ventana de entrada diff. </para
+><para
+>Aviso: Algunos editores todavía interpretan arrastrar y soltar en otro programa como cortar (en lugar de copiar) y pegar. En este caso sus datos originales se perderían. </para>
+</sect1>
+
+<sect1 id="interpretinginformation"
+><title
+>Interpretar la información en las ventanas de entrada</title>
+<screenshot
+><mediaobject>
+<imageobject
+><imagedata fileref="screenshot_diff.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+<sect2
+><title
+>Línea de información</title
+><para
+>En la parte superior de cada ventana de texto se encuentra la «línea de información». Las líneas de información de las ventanas de entrada contienen una letra «A», «B» y «C», el nombre del archivo, un botón para el navegador, y el número de línea de la primera línea visible en la ventana (recuerde que la ventana «C» es opcional). Cada línea de información aparecerá con un color diferente. </para
+><para
+>Cuando selecciona otro archivo a través del navegador o termina de editar el nombre del archivo pulsando entrar, el nuevo archivo se cargará y se comparará con el(los) archivo(s) que ya estaba(n) cargado(s). </para
+></sect2
+><sect2
+><title
+>Coloreado</title
+><para
+>Las tres ventanas de entrada tienen asignadas las letras «A», «B» y «C». «A» tiene color azul, «B» verde y «C» magenta (estos son los valores predeterminados, pero puede cambiarlos en el menú Preferencias). </para
+><para
+>Cuando se detecta una diferencia el color mostrado en el archivo de entrada cambia. Cuando los dos archivos presentan diferencias el color utilizado para expresar esto es rojo de manera predeterminada («Color de conflicto» en las preferencias). Este esquema de color es especialmente práctico en el caso de que tenga tres archivos de entrada, tal y como se verá en la próxima sección (<link linkend="merging"
+>Fusionar</link
+>). </para
+></sect2
+><sect2
+><title
+>Columna resumen</title
+><para
+>A la izquierda de cada texto se encuentra la «columna resumen». Si las diferencias se producen en una línea la columna resumen muestra el color correspondiente. Si la diferencia es sólo de espacios en blanco se marca el resumen. Para los lenguajes de programación en los que los espacios no son importantes es práctico para apreciar de un vistazo si se modificó algo importante. (En C/C++ los espacios en blanco sólo son interesantes en el interior de las cadenas, comentarios, para el preprocesador y en otra serie de extrañas situaciones). </para
+><para
+>La línea vertical que separa la columna resumen y el texto se interrumpe si el archivo de entrada no tiene líneas. Cuando se activa el ajuste de línea, esta línea vertical aparecerá punteada en las líneas ajustadas. </para
+></sect2
+><sect2
+><title
+>Columna de visión general</title
+><para
+>En el lado derecho podemos encontrar la columna «visión general», a la izquierda de la barra de desplazamiento. Muestra la columna de resumen comprimida de la entrada «A». todas las diferencias y conflictos se pueden apreciar de un vistazo. Cuando solo se utilizan dos ventanas de entrada, todas las diferencias aparecerán en rojo, ya que cada diferencia supondrá un conflicto. Un rectángulo negro marca la parte visible de las entradas. Para los archivos con entradas muy largas, cuando el número de líneas es más grande que la altura de la columna visión general en pixels, varias líneas de entrada compartirán una línea de visión general. Un conflicto tendrá más prioridad que las simples diferencias, que a su vez tendrán prioridad sobre lo no cambiado, de forma que no se pierdan las diferencias o los conflictos aquí. Pulsando sobre la columna de visión general se mostrará el correspondiente texto. </para
+></sect2
+><sect2 id="manualdiffhelp"
+><title
+>Líneas alineadas manualmente</title
+><para
+>Algunas veces el algoritmo sitúa líneas incorrectas unas al lado de otras. O desea comparar un trozo de texto con otro texto que está en una posición completamente diferente en el otro archivo. Para estas situaciones puede indicar a &kdiff3; manualmente que alinee algunas líneas. Marque el texto que quiera alinear con el ratón, como si estuviera copiando y pegando, en la primera vista de diferencia y seleccione «Añadir alineación manual de diferencias» en el menú «Diffview» (acceso rápido de teclado «Ctrl-Y»). Aparecerá una barra naranja en la columna resumen al lado del texto seleccionado. Repita esto para la segunda y (si está disponible) para la tercera vista. &kdiff3; recalculará inmediatamente las diferencias cada vez que haga esto, y alineará las líneas elegidas. Por supuesto, alguna de las líneas que antes coincidían puede que ya no coincidan. </para
+><para
+>En estos momentos el fusionado no soporta el uso de ayuda de diff manual. </para
+></sect2
+><sect2 id="joinsplitsections"
+><title
+>Secciones de división y unión manual</title
+><para
+>En algunos casos &kdiff3; verá muy pocas o demasiadas secciones diff para fusionar. Si éste es el caso puede unir o dividir las secciones existentes. </para
+><para
+>Añada secciones nuevas seleccionando primero el texto de las líneas situadas junto a las ventanas de entrada (para copiarlo al portapapeles). A continuación elija «Dividir Diff en la selección» en el menú «Fusionar». Las divisiones se añadirán encima de la primera línea bajo el texto seleccionado. Si solo desea añadir una sección, seleccione el texto por el que comienza la sección que desea dividir. </para
+><para
+>Para unir secciones en las ventanas de entrada seleccione varias líneas en las secciones que desea unir (puede unir varias secciones en un solo paso). A continuación elija «Unir las diferencias seleccionadas» en el menú «Fusionar». </para
+></sect2>
+</sect1>
+
+
+<sect1 id="merging"
+><title
+>Fusionar y la ventana del editor de la salida fusionada</title>
+<screenshot
+><mediaobject>
+<imageobject
+><imagedata fileref="screenshot_merge.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+<para
+>La ventana del editor de la salida fusionada (bajo las ventanas de la entrada de diferencias) también tiene una línea de información sobre ella que mostrará «Salida», el nombre del archivo y «[Modificado]» si edita algo. Normalmente contendrá texto que podrá fusionarse automáticamente con facilidad, pero algunas veces también contendrá conflictos. </para
+><para
+>El guardado está desactivado hasta que se hayan resuelto todos los conflictos (utilice los botones «Ir al conflicto anterior/siguiente sin resolver» para encontrar los conflictos que falten). </para
+><para
+>Con sólo dos archivos de entrada, cada diferencia es también un conflicto que debe resolverse manualmente. </para
+><para
+>Con tres archivos de entrada el primer archivo se utiliza como base, mientras que el segundo y tercer archivos de entrada contienen las modificaciones. Si en cualquier línea solo tienen cambios la entrada B o la C pero no ambas se seleccionará automáticamente la fuente cambiada. Solo cuando B y C tengan cambios en las mismas líneas, la herramienta detectará un conflicto que debe resolverse manualmente. Cuando B y C sean iguales, pero diferentes a A, se seleccionará C. </para
+><sect2
+><title
+>La columna resumen</title
+><para
+>El editor de la salida de fusionado también tiene una columna resumen a su izquierda. Mostrará la letra de la entrada de la que se seleccionó la línea, o nada si las tres fuentes son iguales en esa línea. Para los conflictos mostrará un signo de interrogación «?» y la línea mostrará «&lt;Conflicto de fusionado&gt;», en rojo. Puesto que resolver los conflictos línea a línea es muy arduo, las líneas se agruparán en grupos que tengan las mismas diferencias y conflictos característicos. Pero los conflictos causados solo por espacios en blanco se separarán de los conflictos no causados por espacios en blanco para facilitar el fusionado de los archivos cuando el sangrado cambia en muchas líneas. </para
+></sect2
+><sect2 id="synchronise_views"
+><title
+>Configurar el grupo actual, sincronizado de fusión y posición de vista de diferencias</title
+><para
+>Cuando se pulsa en la columna resumen con el botón izquierdo del ratón en la ventana a la que pertenezca este grupo, se seleccionarán todas las ventanas y se mostrará el comienzo de este grupo (ésto implica un salto automático en la posición de la ventana si el principio del grupo no se encuentra visible). El grupo se convierte en el «grupo actual». Se resalta con la «gama (diff) de color del fondo actual» y aparecerá una barra negra en la parte izquierda del texto. </para
+></sect2
+><sect2
+><title
+>Seleccionar las entradas A, B o C para el conflicto actual y la edición</title
+><para
+>La barra de botones bajo el menú incluye tres botones para seleccionar las entradas que contienen las letras «A», «B» y «C». Pulse el botón selector de entrada para insertar (o eliminar si ya se ha insertado) las líneas de la fuente respectiva. Para seleccionar las líneas de varias entradas pulse los botones correspondientes en el orden que necesite. Por ejemplo, si desea que las líneas de «B» aparezcan antes de las líneas de «A» en la salida, pulse primero «B» y luego «A». </para
+><para
+>Si estaba utilizando la opción avance automático (<link linkend="autoadvance"
+>«Automáticamente ir al conflicto siguiente sin resolver después de una selección de origen»</link
+>), debería desactivarla antes de elegir líneas desde varias entradas o editar líneas después de su elección. Sino lo hace &kdiff3; saltará al siguiente conflicto después de elegir la primera entrada. </para
+><para
+>Suele ser práctico para editar directamente la salida resultante de la fusión. La columna resumen mostrará «m» para cada línea que se haya modificado manualmente. Cuando, por ejemplo, las diferencias estén alineadas de forma que la simple elección no sea satisfactoria, puede marcar el texto necesario y utilizar <link linkend="selections"
+>copiar y pegar</link
+> de forma normal para situarlo en la salida de fusionado. </para
+><para
+>Algunas veces, cuando una línea se elimina bien por el fusionado o por la edición manual y no hay más líneas en este grupo, aparecerá el texto &lt;Sin línea fuente&gt;. Se coloca en lugar del grupo de forma que pueda cambiar de idea y seleccionar de nuevo la fuente. Este texto no aparecerá en el archivo guardado o en cualquier selección que copie y pegue. </para
+><para
+>El texto «&lt;Conflicto de fusionado&gt;» aparecerá en el portapapeles si copia y pega texto que la contenga. Pero tenga cuidado al hacerlo. </para
+></sect2
+><sect2
+><title
+>Seleccionar las entradas A, B o C para todos los conflictos</title
+><para
+>El fusionado normal se inicia resolviendo los conflictos sencillos automáticamente. Pero el menú «Fusionar» proporciona algunas acciones para otras necesidades habituales. Si ha seleccionado la misma fuente para más conflictos, podrá seleccionar «A», «B» o «C» en cualquier sitio, o solo para los conflictos pendientes de resolver, o para los conflictos sin resolver que sean debidos a espacios. Si desea decidir cada delta por sí mismo, puede «Establecer deltas a conflictos». O si desea volver a las elecciones automáticas de &kdiff3; seleccione «Resolver automáticamente conflictos simples». &kdiff3; reiniciará el fusionado. Para las acciones que cambien sus modificaciones anteriores &kdiff3; le pedirá confirmación antes de realizarlo. </para
+><para
+>Nota: Cuando seleccione fuente para los conflictos de espacios en blanco sin resolver y las opciones «Ignorar números» o «Ignorar comentarios C/C++», los cambios en los números o en los comentarios se tratarán también como espacios en blanco. </para
+></sect2
+><sect2 id="vcskeywordsmergesupport"
+><title
+>Fusión automática de las claves de control de versión y del historial (registro)</title
+><para
+>Muchos sistemas de control de versión soportan claves especiales en el archivo (p. ej.: «&#36;Date&#36;$», «&#36;Header&#36;», «&#36;Author&#36;», «&#36;Log&#36;», etc.) Durante la descarga el sistema de control de versiones (VCS) cambia estas líneas. Por ejemplo, «&#36;Date&#36;» se cambiará por «&#36;Date: 2005/03/22 18:45:01 &#36;». Como esta línea será diferente en cada versión del archivo, podría requerir interacción manual durante la fusión. </para
+><para
+>&kdiff3; ofrece fusionado automático para estos elementos. Para las líneas que coincidan con la opción «Fusionar automáticamente expresión regular» en todos los archivos de entrada de &kdiff3; se elegirá la línea desde B o -si está disponible- desde C (adicionalmente es necesario que las líneas en cuestión si las comparamos con las líneas anteriores no han de tener conflictos). Esta fusión automática también se puede ejecutar de forma inmediata después de iniciar la fusión (active la opción «Ejecutar expresión regular de fusión automática al iniciar la fusión») o posteriormente a través del menú de fusión «Ejecutar expresión regular de fusión automática»). </para
+><para
+>También está soportada la fusión automática para el historial de control de versión (también llamado «registro»). El historial de fusión automática se puede ejecutar automáticamente cuando se inicie la fusión activando la opción «Resolver automáticamente los conflictos del historial». </para
+><para
+>Normalmente el historial de control de versión comienza con una línea que contiene la palabra clave «&#36;Log&#36;». Ésta deberá coincidir con la opción «El historial comienza con la expresión regular». &kdiff3; detecta que las siguientes líneas se encuentran en el historial analizando los caracteres importantes que se encuentran delante de la palabra clave «&#36;Log&#36;». Si el mismo «comentario importante» también aparece en las siguientes líneas, también éstas se incluirán en el historial. </para
+><para
+>Durante cada descarga el VCS escribe una única línea especificando la versión, fecha, e información horaria seguida de líneas con comentarios del usuario. Estas líneas forman una entrada de historial. Esta sección del historial crece cada vez que descarga de forma que las entrada más recientes aparecerán en la parte superior (después de la línea de inicio del historial). </para
+><para
+>Cuando dos o más desarrolladores que están realizando un desarrollo paralelo descargan una rama de un archivo la fusión del historial contendrá varias entradas que aparecerán como conflictos durante la fusión de las ramas. Como esta fusión puede ser muy aburrido, &kdiff3; ofrece soporte con dos posibles estrategias: Insertar la información del historial de ambos colaboradores en la parte superior u ordenar la información del historial por una clave definida por el usuario. </para
+><para
+>El método que simplemente inserta las entradas es fácil de configurar. &kdiff3; solo necesita un método para detectar qué líneas pertenecen a una entrada del historial. La mayor parte de los VCS insertan una línea vacía después de cada entrada del historial. Sino hay otras líneas vacías, éste criterio es suficiente para &kdiff3;. Seleccione «Entrada del historial que inicia una expresión regular». Si el criterio de la línea vacía no es suficiente, puede especificar una expresión regular para detectar el inicio de la entrada del historial. </para
+><para
+>Tenga en cuenta que &kdiff3; eliminará las entradas duplicadas del historial. Si una entrada aparece varias veces en el historial de un archivo de entrada, solo permanecerá una en la salida. </para
+><para
+>Si desea ordenar el historial, debe especificar cómo se debe construir la clave de  ordenación. Utilice paréntesis en «Entrada del historial que inicia una expresión regular» para agrupar partes del a expresión regular que se deberían utilizar posteriormente para la tecla de ordenación. A continuación especifique «Orden de la clave de ordenación que inicia la entrada del historial» especificando una lista de números separados por una coma «,» para referirse a la posición del grupo en la expresión regular. </para
+><para
+>Debido a que no es sencillo de hacer al primer intento, podrá comprobar y mejorar la expresión regular y la generación de clave en un diálogo dedicado pulsando el botón «Comprobar sus expresiones regulares». </para
+><para
+>Ejemplo: Supongamos que tenemos un historial similar a este: <screen>
+/**************************************************************************
+** HISTORIAL:    &#36;Log: \vista_principal_de_tom\MiAplicación\src\algoritmocomplejo.cpp &#36;
+**
+**     \main\rama_integración_12   2 Abr 2001 10:45:41   tom
+**  rama fusionada simon_rama_15.
+**
+**     \main\henry_correccionerrores_rama_7\1   30 Mar 2001 19:22:05   henry
+**  mejora la velocidad de la subrutina convertToMesh().
+**  Eliminación de fallo.
+**************************************************************************/
+</screen
+> La línea de comienzo del historial es la que coincida con la expresión regular ".*\&#36;Log.*\&#36;.*". Las siguientes son las entradas del historial. </para
+><para
+>La línea con «&#36;Log&#36;» -la palabra clave comienza con dos «*» seguidos de un espacio. &kdiff3; utiliza la cadena con el primer espacio no vacío como «comentario importante» y asume que el historial finaliza en la primera línea sin este comentario importante. En este ejemplo la última línea finaliza con una cadena que también comienza con dos «*», pero en lugar de un caracter de espacio le siguen más «*». Por tanto, esta línea finalizará el historial. </para
+><para
+>Sino es necesaria la ordenación del historial entonces la entrada del historial comenzará con una línea de expresión regular como ésta (esta línea se divide en dos porque sino no se puede ajustar) <screen>
+\s*\\main\\\S+\s+[0-9]+ (Ene|Feb|Mar|Abr|May|Jun|Jul|Ago|Sep|Oct|Nov|Dic)
+ [0-9][0-9][0-9][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9]\s+.*
+</screen
+> Para obtener detalles sobre las expresiones regulares por favor, consulte la <ulink url="http://doc.trolltech.com/3.3/qregexp.html#details"
+>documentación de las expresiones regulares de Trolltech</ulink
+>. Tenga en cuenta que «\s» (con la «s» minúscula) coincidirá con cualquier espacio y «\S» (con «S» mayúscula) coincidirá con lo que no sean espacios en blanco. En nuestro ejemplo la entrada del historial deberá contener primero la versión de información de la expresión regular "\\main\\\S+", la fecha formada por el día «[0-9]+», més «(Ene|Feb|Mar|Abr|May|Jun|Jul|Ago|Sep|Oct|Nov|Dic)» y año «[0-9][0-9][0-9][0-9]», la hora «[0-9][0-9]:[0-9][0-9]:[0-9][0-9]» y finalmente el nombre de registro del desarrollador «.*». </para
+><para
+>Observe que el «comentario importante» (en el ejemplo «**») lo eliminará &kdiff3; antes de buscar la coincidencia, de ahí que la expresión regular comience con con una expresión regular para ninguno o más espacios en blanco «.*». Puesto que los caracteres de comentario puede ser diferentes en cada archivo (por ejemplo, C/C++ utilizan caracteres de comentarios diferentes a los que utiliza Perl script) &kdiff3; tiene en cuenta los caracteres de los comentarios y no debería especificarlos en la expresión regular. </para
+><para
+>Si necesita un historial ordenado, se calculará la clave de ordenación. Para esta las partes relevantes en la expresión regular se deben agrupar entre paréntesis (los paréntesis adicionales puede mantenerse aunque desactive la ordenación del historial). <screen>
+(Ene|Feb|Mar|Abr|May|Jun|Jul|Ago|Sep|Oct|Nov|Dic)
+ ([0-9][0-9][0-9][0-9]) ([0-9][0-9]:[0-9][0-9]:[0-9][0-9])\s+(.*)
+</screen
+> Los paréntesis ahora contendrán: 1. versión de información, 2. día, 3. mes, 4. año, 5. hora, 6. nombre. Pero si deseamos ordenarlos por fecha y hora, necesitará construir una clave con los elementos en un orden de aparición diferente: Primero el año, seguido del mes, día, hora, información de versión y nombre. De ahí que el orden de la clave de ordenación que se deba especificar sea «4,3,2,5,1,6». </para
+><para
+>Ya que los nombres de los meses no son buenos para la ordenación («Abr» iría primero) &kdiff3; detectará que son nombres de meses y utilizará números en su lugar («Abr»->«04»). Si se encuentra un número puro se transformará en un valor de 4 dígitos con ceros significativos para la ordenación. Finalmente la clave de ordenación resultante que iniciará la primera entrada del historial será: <screen
+>2001 04 0002 10:45:41 rama_integración_12   tom 
+</screen>
+</para
+><para
+>Para obtener más detalles consulte también <link linkend="mergeoptions"
+>Preferencias de fusionado</link
+>. </para>
+</sect2>
+</sect1>
+
+<sect1 id="navigation"
+><title
+>Navegación y edición</title>
+<para
+>La mayor parte de la navegación puede realizarse con las barras de desplazamiento y el ratón, pero también puede navegar con las teclas. Si pulsa en cualquier ventana puede utilizar los cursores izquierdo, derecho, arriba, abajo, página arriba, página abajo, inicio, fin, Ctrl-Inicio, Ctrl-Fin tal y como lo haría en otros programas. La columna vista general situada al lado de la barra vertical de desplazamiento en los archivos de entrada también puede utilizarse para navegar pulsando sobre ella. </para
+><para
+>También puede utilizar la rueda del ratón para desplazarse arriba y abajo. </para
+><para
+>En el editor de la salida de fusionado también puede utilizar las otras teclas para la edición. Puede cambiar entre los modos insertar y sobreescribir con la tecla Insertar (el modo predeterminado es insertar). </para
+><para
+>Una pulsación del botón izquierdo del ratón en la columna resumen sincronizará todas las ventanas para mostrar el inicio del mismo grupo de líneas (tal y como se explicaba en la sección <link linkend="synchronise_views"
+>«Configurar el grupo actual, sincronizado de fusión y posición de vista de diferencias»</link
+>). </para
+><para
+>La barra de botones también contiene siete botones de navegación con los que podrá saltar a la diferencia actual/primera/última, a la siguiente/anterior diferencia (Ctrl-Flecha abajo/Ctrl-Flecha arriba), al siguiente/anterior conflicto (Ctrl-Página abajo/Ctrl-Página arriba), o al siguiente/anterior conflicto sin resolver. Tenga en cuenta que para &kdiff3; un «conflicto» que no se pudo resolver automáticamente al comienzo del fusionado continúa siendo un «conflicto» aunque se haya resuelto. De aquí la necesidad de distinguir los «conflictos sin resolver» </para>
+<sect2 id="autoadvance"
+><title
+>Avance automático</title>
+<para
+>También existe el botón «Automáticamente ir al conflicto siguiente sin resolver después de una selección origen» (avance automático). Si activa esto, cuando se seleccione una fuente &kdiff3; saltará automáticamente al siguiente conflicto sin resolver. Esto puede ayudarle cuando desee seleccionar una sola fuente. Cuando necesite ambas fuerte, o desee editar después de la selección, probablemente querrá desactivar esto. Antes de continuar con el siguiente conflicto sin resolver &kdiff3; muestra el resultado de su elección durante un momento. Este retardo es ajustable en las preferencias Diff y fusión: Puede especificar en «Retardo auto avanzado» en milisegundos un valor entre 0 y 2.000. Pista: ¿Cansado de tanta pulsación? Utilice un retardo de avance automático pequeño y los accesos rápidos Ctrl-1/2/3 para seleccionar A/B/C para muchos de los conflictos. </para>
+</sect2>
+</sect1>
+
+<sect1 id="selections"
+><title
+>Seleccionar, copiar y pegar</title>
+<para
+>Las ventanas de entrada no muestran un cursor, por ello las selecciones se hacen pulsando el botón izquierdo del ratón al inicio, manteniendo pulsado el botón del ratón y moviéndose al final, momento en el que soltará el botón del ratón. También puede seleccionar una palabra con una doble pulsación. En la salida del editor de fusionado puede realizar la selección a través del teclado manteniendo pulsado el botón «mayúsculas» y navegando con las teclas de cursor. </para
+><para
+>Si la selección excede el rango visible puede desplazar el ratón sobre los bordes de la ventana que harán que &kdiff3; se desplace en esta dirección. </para
+><para
+>Para las selecciones muy largas puede utilizar las teclas de navegación mientras mantiene pulsado el ratón. P.ej. utilice RePág y AvPág para ir rápidamente a una posición determinada. Al final de la posición suelte el botón del ratón. </para
+><para
+>Para seleccionarlo todo en la ventana actual utilice el menú «Editar»->«Seleccionar todo» (Ctrl-A). </para
+><para
+>Para copiar al portapapeles debe pulsar el botón «Copiar» (Ctrl-C o Ctrl-Insertar). Pero también existe la opción «Auto copiar selección». Si está activado, todo lo que seleccione se copiará inmediatamente y no necesitará realizar la copia explícitamente. Ponga atención cuando lo utilice ya que el contenido del portapapeles puede destruirse accidentalmente. </para
+><para
+>«Cortar» (Ctrl-X o Mayúsculas-Borrar) copia el texto seleccionado al portapapeles y lo borra. </para
+><para
+>«Pegar» (Ctrl-V o Mayúsculas-Insertar) inserta el texto del portapapeles en la posición del cursor o sobre la selección actual. Si pega algo en cualquier ventana de entrada de diferencia se mostrará el contenido del portapapeles en esta ventana y la comparación se reiniciará inmediatamente. Es práctico si desea guardar rápidamente un trozo de texto de alguna parte y compararlo con algo sin crear los archivos en primer lugar. </para>
+</sect1>
+
+<sect1 id="saving"
+><title
+>Guardar</title>
+<para
+>Guardar solo estará permitido cuando se hayan resuelto todos los conflictos. Si el archivo ya existe y la opción «Archivos de copia de seguridad» está activada el archivo existente se renombrará con una extensión «.orig», pero si ya existe un archivo se borrará. Cuando salga o inicie otro análisis de diferencias y los datos no se hayan guardado, &kdiff3; le preguntará si desea guardar, cancelar o continuar sin guardar (&kdiff3; no captura ninguna señal. Por eso si ejecuta «kill» sobre &kdiff3; sus datos se perderán). </para
+><para
+>Los finales de línea se guardan de acuerdo con el método utilizado por el sistema operativo. Para Unix cada línea termina con un caracter de nueva línea «\n», mientras que para los sistemas basados en Win-32 cada línea termina con un retorno de carro + un nueva línea «\r\n». &kdiff3; no conserva los finales de línea de los archivos de entrada, lo que significa que no debería utilizar &kdiff3; con archivos binarios. </para>
+</sect1>
+
+<sect1 id="find"
+><title
+>Buscar cadenas</title>
+<para
+>Puede buscar una cadena en cualquier ventana de texto de &kdiff3;. La orden «Buscar...» («Ctrl-F) en el menú Editar abre un diálogo que le permite especificar la cadena a buscar. La búsqueda siempre comenzará en la parte superior. Utilice la orden «Buscar siguiente» («F3») para buscar la siguiente aparición. si selecciona la búsqueda en varias ventanas se comenzará a buscar en la primera ventana de arriba hacia abajo antes de iniciar la búsqueda en la parte superior de la siguiente ventana, etc. </para>
+</sect1>
+
+<sect1 id="printing"
+><title
+>Impresión</title>
+<para
+>&kdiff3; soporta impresión de las diferencias en los archivos de texto. La orden «Imprimir» (Ctrl-P) en el menú archivo abre un diálogo que permite seleccionar la impresora y ajustar otras opciones. </para
+><para
+>Existen varias posibilidades de ajustar el rango. Debido a las diferencias existentes en los diálogos de impresión de los diversos sistemas operativos, el método para realizar determinadas selecciones variará. </para>
+<variablelist>
+   <varlistentry
+><term
+>Todo:</term
+><listitem
+><para
+>Imprime todo.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+>Actual:</term
+><listitem
+><para
+>Imprime un página comenzando en la primera línea visible de la ventana (en sistemas sin esta opción se puede suplir este inconveniente especificando la página número 10000 para imprimir).</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+>Selección:</term
+><listitem
+><para
+>Antes de realizar esta elección de impresión seleccione el texto con el ratón (como para copiar y pegar) en una de las ventanas de entrada de diferencias para definir las líneas inicial y final. Si no hay texto seleccionado en una de las ventanas de diferencia, no estará disponible esta opción (en sistemas sin esta opción se puede conseguir el mismo resultado especificando la página 9999).</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+>Rango:</term
+><listitem
+><para
+>Especifique la primera y última página. </para
+></listitem
+></varlistentry>
+</variablelist>
+<para
+>Otras opciones importantes para la impresión son las habituales: </para
+><itemizedlist>
+   <listitem
+><para
+>Letra, tamaño de letra</para
+></listitem>
+   <listitem
+><para
+>Mostrar números de línea</para
+></listitem>
+   <listitem
+><para
+>Ajuste de texto</para
+></listitem>
+   <listitem
+><para
+>Colores</para
+></listitem>
+   <listitem
+><para
+>etc.</para
+></listitem>
+</itemizedlist>
+<para
+>También se recomienda la impresión en formato apaisado. </para>
+</sect1>
+
+<sect1 id="options"
+><title
+>Opciones</title>
+<para
+>Las opciones y la lista de archivos recientes se guardarán cuando salga del programa, y se recargarán cuando lo inicie (Menú Preferencias->Configurar &kdiff3; ...). </para>
+<sect2
+><title
+>Fuente</title>
+<para
+>Seleccione un tipo de letra de ancho fijo (en algunos sistemas este diálogo puede mostrar tipos de letra de ancho variable, pero no debería utilizarlas). </para>
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Fuente cursiva para deltas:</emphasis
+></term
+><listitem
+><para
+>Si selecciona esto, las diferencias de texto se dibujarán con la versión cursiva del tipo de letra. Si el tipo de letra no soporta cursiva, no hará nada.</para>
+   </listitem
+></varlistentry>
+</variablelist>
+</sect2>
+
+<sect2
+><title
+>Colores</title>
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Color del primer plano:</emphasis
+></term
+><listitem
+><para
+>Habitualmente negro. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Color de fondo:</emphasis
+></term
+><listitem
+><para
+>Habitualmente blanco. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Color del fondo de diff:</emphasis
+></term
+><listitem
+><para
+>Habitualmente gris claro. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Color A:</emphasis
+></term
+><listitem
+><para
+>Habitualmente azul oscuro. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Color B:</emphasis
+></term
+><listitem
+><para
+>Habitualmente verde oscuro. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Color C:</emphasis
+></term
+><listitem
+><para
+>Habitualmente magenta oscuro. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Color de conflicto:</emphasis
+></term
+><listitem
+><para
+>Habitualmente rojo.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Rango actual de color de fondo:</emphasis
+></term
+><listitem
+><para
+>Habitualmente amarillo claro.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Rango actual de color de fondo de diff:</emphasis
+></term
+><listitem
+><para
+>Habitualmente amarillo oscuro.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Colores para los rangos de diferencias seleccionados manualmente:</emphasis
+></term
+><listitem
+><para
+>Habitualmente naranja.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Color del archivo más nuevo en la comparación de directorios:</emphasis
+></term
+><listitem
+><para
+>Habitualmente verde.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Color del archivo más antiguo en la comparación de directorios:</emphasis
+></term
+><listitem
+><para
+>Habitualmente rojo.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Color de los archivos de antigüedad media en la comparación de directorios:</emphasis
+></term
+><listitem
+><para
+>Habitualmente amarillo oscuro.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Color para los archivos que faltan en la comparación de directorios:</emphasis
+></term
+><listitem
+><para
+>Habitualmente negro.</para
+></listitem
+></varlistentry>
+</variablelist>
+<para
+>Los cambios de color para la comparación de directorios no tendrán efecto hasta la siguiente vez que inicie la comparación de directorios. </para>
+<para
+>En sistemas que solo tengan 16 ó 256 colores algunos de ellos no estarán disponibles en su forma exacta. En aquellos sistema el botón «Predeterminados» seleccionará un color puro. </para>
+</sect2>
+
+<sect2
+><title
+>Preferencias del editor</title>
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>El tabulador inserta espacios:</emphasis
+></term
+><listitem
+><para
+>Si está desactivado y pulsa la tecla tabulador, se insertará un caracter de tabulación, sino se insertará la cantidad adecuada de caracteres.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Tamaño del tabulador:</emphasis
+></term
+><listitem
+><para
+>Se puede ajustar para sus necesidades. El valor predeterminado es 8. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Auto indentación:</emphasis
+></term
+><listitem
+><para
+>Cuando pulsa Entrar; o Return el sangrado de la línea anterior se utiliza para la nueva línea. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Auto-copiar selección:</emphasis
+></term
+><listitem
+><para
+>Cada selección se copia inmediatamente al portapapeles de forma que no necesitará copiarlo explícitamente. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Estilo línea final:</emphasis
+></term
+><listitem
+><para
+>Al guardar puede seleccionar qué estilo de línea prefiere. El valor predeterminado es la elección habitual para el sistema operativo utilizado. </para
+></listitem
+></varlistentry>
+</variablelist>
+</sect2>
+
+<sect2 id="diffoptions"
+><title
+>Preferencias de fusionado</title>
+<para
+>Cuando se comparan archivos, &kdiff3; primero intenta hacer coincidir las líneas que sean iguales en todos los archivos de entrada. Solo durante este paso se ignorarán los espacios en blanco. El segundo paso compara cada línea. En este paso los espacios en blanco no se ignorarán. Los espacios en blanco tampoco se ignorarán durante la fusión. </para>
+
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Conservar el retorno de carro</emphasis
+></term
+><listitem
+><para
+>Algunos editores (en algunos sistemas) guardan los caracteres de retorno de carro «\r» y de línea siguiente «\n» al final de la línea, mientras que otros solo guardan el de línea siguiente «\n». Normalmente &kdiff3; ignora el retorno de carro, pero a pesar de que debido a ello no tengan el mismo tamaño parecerán iguales si se comparan juntos. Cuando se activa esta opción, los caracteres de retorno de carro se harán visibles, pero se tratarán como espacios en blanco. Esta opción debería estar desactivada durante el mezclado. El valor predeterminado es apagado.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Ignorar números:</emphasis
+></term
+><listitem
+><para
+>De forma predeterminada estará desactivado. Los caracteres numéricos («0-9», «.», «-») se ignorarán en la primera parte del análisis en la que se efectuará la coincidencia de líneas. Sin embargo en el resultado las diferencias sí se mostrarán, pero serán tratadas como espacios en blanco. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Ignorar comentarios de C/C++:</emphasis
+></term
+><listitem
+><para
+>De forma predeterminada estará desactivado. Los cambios en los comentarios se tratarán como cambios de espacios en blanco. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Ignorar mayúsculas:</emphasis
+></term
+><listitem
+><para
+>De forma predeterminada estará desactivado. Las diferencias de mayúsculas y minúsculas de los caracteres (como «A» y «a») se tratarán como cambios de espacios en blanco. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Comando del preprocesador:</emphasis
+></term
+><listitem
+><para
+>Vea la <link linkend="preprocessors"
+>siguiente sección</link
+>. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Comando de preprocesador de combinación de línea:</emphasis
+></term
+><listitem
+><para
+>Vea la <link linkend="preprocessors"
+>siguiente sección</link
+>. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Intentar más a fondo:</emphasis
+></term
+><listitem
+><para
+>Intenta encontrar más a fondo una delta más pequeña (de forma predeterminada estará activada). Debería ser efectivo para archivos grandes y complicados. Y lento para archivos muy grandes. </para
+></listitem
+></varlistentry>
+</variablelist>
+</sect2>
+
+<sect2 id="mergeoptions"
+><title
+>Preferencias de fusionado</title>
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Retardo auto avanzado (ms):</emphasis
+></term
+><listitem
+><para
+>Cuando está activado el modo de «auto avanzado» aquí se especifica durante cuanto tiempo se mostrará el resultado de la selección antes de saltar al siguiente conflicto sin resolver. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Fusionar de forma predeterminada espacios en blanco de dos/tres archivos:</emphasis
+></term
+><listitem
+><para
+>Resuelve automáticamente todos los conflictos de los espacios en blanco seleccionando el archivo especificado (el modo predeterminado es el manual). Práctico si los espacios no son realmente importantes en los archivos. Si solo necesita ésto ocasionalmente mejor utilice «Seleccionar A/B/C para todos conflictos de los espacios en blanco sin resolver» en el menú Fusionar. Tenga en cuenta que si ha activado «Ignorar números» o «Ignorar comentarios de C/C++» esta autoelección también se aplica a los conflictos en los números y en los comentarios. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Expresión regular de fusión automática:</emphasis
+></term
+><listitem
+><para
+>Expresión regular para las líneas en las que &kdiff3; debería elegir automáticamente una fuente. Consulte también <link linkend="vcskeywordsmergesupport"
+>Fusión automática</link
+>. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Ejecutar expresión regular de fusión automática al iniciar la fusión:</emphasis
+></term
+><listitem
+><para
+>Si está activado &kdiff3; ejecutará la fusión automática utilizando la «expresión regular de fusión automática» cuando se inicie una fusión. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Expresión regular de inicio de historial:</emphasis
+></term
+><listitem
+><para
+>Expresión regular para el inicio de la entrada del historial de fusionado. Normalmente esta línea contiene la palabra clave «&#36;Log&#36;». El valor predeterminado es «.*\&#36;Log.*\&#36;.*». </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Expresión regular de inicio de entrada del historial:</emphasis
+></term
+><listitem
+><para
+>Una entrada del historial de fusión está formada por varias líneas. Especifique la expresión regular para detectar la primera línea (sin el comentario importante). Utilice paréntesis para agrupar las claves que desee utilizar para la ordenación. Si está vacío, KDiff3 asume que las líneas vacías separan entradas del historial. Consulte también <link linkend="vcskeywordsmergesupport"
+>Fusión automática</link
+>. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Ordenación del historial de fusión:</emphasis
+></term
+><listitem
+><para
+>Activar ordenación del historial del control de versiones </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>orden de la clave de ordenación del inicio de la entrada del historial:</emphasis
+></term
+><listitem
+><para
+>Cada paréntesis utilizado en la expresión regular para la entrada del inicio del historial agrupa una clave que puede utilizarse para la ordenación. Especifique la lista de claves (están numeradas en orden de aparición comenzando con 1) y utilizando «,» como separador (p. ej. «4,5,6,1,2,3,7»). Si permanece vacío, no se realizará ordenación. Consulte también <link linkend="vcskeywordsmergesupport"
+>fusión automática</link
+>. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Historial del control de versión de fusión al iniciar la fusión</emphasis
+></term
+><listitem
+><para
+>Si está activado &kdiff3; ejecuta automáticamente el fusionado del historial utilizando las opciones antes mencionadas cuando se inicia una fusión. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Número máximo  de entradas en el historial:</emphasis
+></term
+><listitem
+><para
+>&kdiff3; corta la lista del historial después del número especificado de entradas. Utilice -1 para evitar el corte (el valor predeterminado es -1). </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Compruebe sus expresiones regulares</emphasis
+></term
+><listitem
+><para
+>Este botón muestra un diálogo que le permite mejorar y comprobar la expresión regular. Copie los datos de sus archivos en las líneas de ejemplo. Los «Resultados coincidentes» si la coincidencia se produjo o no. El «Resultado de la clave de ordenación» mostrará la clave utilizada para la ordenación del historial de fusión. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Orden de fusión irrelevante:</emphasis
+></term
+><listitem
+><para
+>Especifique una orden que debería ser llamada cuando &kdiff3; detecte que para el archivo B no contiene datos relevantes ya que están incluídos en C. La orden se llama con los tres nombres de archivo como parámetros. Las datos deberán coincidir con la «expresión regular de fusionado automático» o con el historial sino se considera relevante. </para
+></listitem
+></varlistentry>
+</variablelist>
+
+</sect2>
+
+<sect2
+><title
+>Fusión de directorios</title>
+<para
+>Estas opciones están relacionadas con la exploración del directorio y el manejo del fusionado: Vea la <link linkend="dirmergeoptions"
+>Comparación/fusión de directorios de documentos</link
+> para obtener los detalles. </para
+><para
+>También existe una opción relevante para guardar archivos sencillos: </para>
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Archivos de copia de seguridad:</emphasis
+></term
+><listitem
+><para
+>Cuando se guarde un archivo y ya exista una versión antigua, la versión original se renombrará con una extensión «.orig». Si ya existía un archivo de copia de seguridad antigua con la extensión «.orig» se borrará. </para
+></listitem
+></varlistentry>
+</variablelist>
+</sect2>
+
+<sect2
+><title
+>Configuraciones regionales</title>
+  <variablelist>
+    <varlistentry
+><term
+><emphasis
+>Idioma:</emphasis
+></term
+><listitem
+><para
+>Ajusta el idioma de la interfaz de usuario. Cambiar esta opción no afectará a la ejecución del programa. Tendrá que salir y reiniciar &kdiff3; para que el cambio tenga efecto (esta opción no está disponible en la versión de KDE; de &kdiff3; porque el idioma se ajusta de forma global en las preferencias de KDE). </para
+></listitem
+></varlistentry>
+    <varlistentry
+><term
+><emphasis
+>Usar la misma codificación para todo:</emphasis
+></term
+><listitem
+><para
+>Las siguientes opciones de codificación se pueden ajustar de forma separada para cada elemento, o si esta opción está activada, todos los valores tomarán el primer valor. </para
+></listitem
+></varlistentry>
+    <varlistentry
+><term
+><emphasis
+>Codificación local:</emphasis
+></term
+><listitem
+><para
+>Sobre los selectores de código aparece una nota que le indica cuál es la codificación local (no es ajustable, ya que se utiliza para informarle de su codificación en caso de que no la conozca, y necesite seleccionarla). </para
+></listitem
+></varlistentry>
+    <varlistentry
+><term
+><emphasis
+>Codificación de archivo para A/B/C:</emphasis
+></term
+><listitem
+><para
+>Ajusta la codificación para los archivos de entrada. Esto tiene efecto en la interpretación de los caracteres especiales. Como puede ajustar cada codificación por separado puede comparar y fusionar archivos guardados con diferentes codificaciones. </para
+></listitem
+></varlistentry>
+    <varlistentry
+><term
+><emphasis
+>Codificación de archivo para la salida de la fusión y guardar:</emphasis
+></term
+><listitem
+><para
+>Cuando haya editado un archivo, podrá ajustar qué codificación se utilizará al guardarse en el disco. </para
+></listitem
+></varlistentry>
+    <varlistentry
+><term
+><emphasis
+>Codificación de archivo para los archivos del preprocesador:</emphasis
+></term
+><listitem
+><para
+>Cuando defina el preprocesador puede que no sea capaz de operar con su codificación (ejem: Sus archivos son de unicode de 16 bit y su preprocesador solo puede utilizar ascii de 8 bit). Con esta opción puede definir la codificación de la salida del preprocesador. </para
+></listitem
+></varlistentry>
+    <varlistentry
+><term
+><emphasis
+>Idioma de derecha a izquierda:</emphasis
+></term
+><listitem
+><para
+>Algunos idiomas se escriben de derecha a izquierda. Cuando esta opción está activada, &kdiff3; dibuja el texto de derecha a izquierda en las ventanas de entrada de diff y en la ventana de la salida del fusionado. Tenga en cuenta que si inicia &kdiff3; con la opción de línea de órdenes «--reverse» toda la distribución se hará de derecha a izquierda también (ésta es una característica proporcionada por Qt). Este manual se escribió asumiendo que «Idioma de derecha a izquierda» o invertir distribución están desactivados. Por ello, algunas referencias a «izquierda» o «derecha» se reemplazarán por sus respectivas homólogas si utiliza estas opciones. </para
+></listitem
+></varlistentry>
+
+  </variablelist>
+</sect2>
+
+<sect2
+><title
+>Varios</title>
+<para
+>Estas opciones y acciones están disponibles en los menús o en la barra de botones.</para>
+<variablelist>
+  <varlistentry
+><term
+><emphasis
+>Mostrar números de líneas:</emphasis
+></term
+><listitem
+><para
+>Puede seleccionar si los números deberían mostrarse en los archivos de entrada.</para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Mostrar caracteres espacio y tabulador por diferencias:</emphasis
+></term
+><listitem
+><para
+>Algunas veces los espacios visibles y los tabuladores molestan. Puede desactivarlos.</para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Mostrar espacio en blanco:</emphasis
+></term
+><listitem
+><para
+>Desactívelo para suprimir cualquier resaltado o cambio de «solo espacio en blanco» en el texto o en las columnas de vista general (tenga en cuenta que ésto también se aplicará a los cambios en los números y comentarios si están activadas las opciones «Ignorar números» o «Ignorar comentarios C/C++»).</para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Opciones de la vista general:</emphasis
+></term
+><listitem
+><para
+>Estas elecciones están disponibles cuando compara tres archivos. En el modo normal todas las diferencias se muestra en un color codificado en la columna de vista general. Pero algunas veces puede estar interesado en las diferencias entre solo dos de los tres archivos. Seleccionando vista «A vs. B», «A vs. C» o «B vs. C» se mostrará una segunda columna de vista general con la información requerida situado al lado de la visión general normal. </para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Ajuste de palabras en las ventanas diff:</emphasis
+></term
+><listitem
+><para
+>Ajusta las líneas cuando su longitud excede del ancho de una ventana. </para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Mostrar ventana A/B/C:</emphasis
+></term
+><listitem
+><para
+>Algunas veces deseará utilizar mejor el espacio de la pantalla para las líneas largas. Oculte las ventanas que no sean importantes (en el menú Ventanas).</para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Cambiar orientación de división:</emphasis
+></term
+><listitem
+><para
+>Cambia entre las ventanas diff mostrándolas una cerca de la otra (A a la izquierda de B, y a la izquierda de C) o una sobre otra (A sobre B y sobre C). También debería servir de ayuda para las líneas largas (en el menú Ventanas). </para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Iniciar fusión rápida:</emphasis
+></term
+><listitem
+><para
+>Algunas veces puede estar viendo las deltas y decidir fusionarlas. <inlinemediaobject
+><imageobject
+><imagedata fileref="merge_current.png" format="PNG"/></imageobject
+></inlinemediaobject
+> «Fusionar el archivo actual» en el menú Directorio también funcionará si solo compara dos archivos. Una simple pulsación inicia la fusión y utiliza el nombre de archivo del último archivo de entrada como nombre de archivo predeterminado (cuando se utiliza esto para reiniciar una fusión, se conservará el nombre de archivo de la salida).</para
+></listitem
+></varlistentry>
+</variablelist>
+</sect2>
+
+<sect2 id="shortcuts"
+><title
+>Configurar accesos rápidos de teclado</title>
+<para
+>En estos momentos solo la versión para KDE soporta accesos rápidos de teclado configurables por el usuario (Menú Preferencias->Configurar accesos rápidos). </para>
+</sect2>
+</sect1>
+
+<sect1 id="preprocessors"
+><title
+>Órdenes del preprocesador</title>
+<para
+>&kdiff3; soporta dos opciones para el preprocesador. </para
+><para>
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Comando del preprocesador:</emphasis
+></term
+><listitem
+><para
+>Cuando se lee cualquier archivo, se redirigirá a través de esta orden externa. Se podrá ver la salida de esta orden en lugar del archivo original. Puede escribir su propio preprocesador que cubra sus necesidades específicas. Utilice esto para cortar determinadas partes del archivo, o para corregir de forma automática el sangrado, etc. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Comando de preprocesador de combinación de línea:</emphasis
+></term
+><listitem
+><para
+>Cuando se lee cualquier archivo, se redirigirá a través de esta orden externa. Si se especifica una orden de preprocesado (ver a continuación), la salida del preprocesador será la entrada de la coincidencia de líneas del preprocesador. La salida solo se utilizará durante la fase de coincidencia de líneas durante el análisis. Puede escribir su propio preprocesador que cubra sus necesidades específicas. Cada línea de entrada tendrá la correspondiente línea de salida. </para
+></listitem
+></varlistentry>
+</variablelist>
+</para>
+<para
+>La idea es permitir al usuario gran flexibilidad durante la configuración del resultado de diff. Pero necesita un programa externo, y muchos usuarios no quieren escribirlo ellos. La buena noticia es que muchas veces <command
+>sed</command
+> o <command
+>perl</command
+> harán este trabajo. </para>
+<para
+>Ejemplo: Prueba de mayúsculas sencilla: considerar el archivo a.txt (6 líneas): <screen>
+      aa
+      ba
+      ca
+      da
+      ea
+      fa
+</screen
+> y el archivo b.txt (3 líneas): <screen>
+      cg
+      dg
+      eg
+</screen
+>Sin un preprocesador las siguientes líneas se situarán unas al lado de otras: <screen>
+      aa - cg
+      ba - dg
+      ca - eg
+      da
+      ea
+      fa
+</screen
+> Esto no es lo que probablemente lo que se desea ya qu ela primera letra contiene actualmetne la información interesante. Para ayudar al algoritmo de coincidencias a ignorar la segunda letra podemos utilizar una orden de preprocesador, que reemplace «g» con «a»: <screen>
+   <command
+>sed</command
+> 's/g/a/'
+</screen
+> Con esta orden el resultado del a comparación será:<screen>
+      aa
+      ba
+      ca - cg
+      da - dg
+      ea - eg
+      fa
+</screen
+>Internamente el algoritmo de coincidencia ve los archivos después de la ejecución de la línea del preprocesador de coincidencia, pero en la pantalla el archivo continúa sin cambios (el preprocesador normal cambiará también los datos en la pantalla). </para>
+
+<sect2 id="sedbasics"
+><title
+>Lo básico de <command
+>sed</command
+></title>
+<para
+>Esta sección solo introduce algunas características muy básicas de <command
+>sed</command
+>. Para obtener más información consulte <ulink url="info:/sed"
+>info:/sed</ulink
+> o <ulink url="http://www.gnu.org/software/sed/manual/html_mono/sed.html"
+>http://www.gnu.org/software/sed/manual/html_mono/sed.html</ulink
+>. Una versión precompilada para Windows puede encontrarse en <ulink url="http://unxutils.sourceforge.net"
+>http://unxutils.sourceforge.net</ulink
+>. Tenga en cuenta que los siguientes ejemplos asumen que la orden <command
+>sed</command
+> se encuentra en algún directorio definido en la variable de entorno PATH. Si este no es el caso, deberá especificar la ruta completa absoluta de lo orden. </para>
+<note
+><para
+>También debe tener en cuenta que los siguientes ejemplos utilizan una marca de comilla simple (') que no funcionará para Windows. En Windows debería utilizar las marcas de comillas dobles (") en su lugar.</para
+></note>
+<para
+>En este contexto solo se utiliza la orden de sustitución <command
+>sed</command
+>: <screen>
+   <command
+>sed</command
+> 's/<replaceable
+>REGEXP</replaceable
+>/<replaceable
+>REEMPLAZO</replaceable
+>/<replaceable
+>MODIFICADORES</replaceable
+>'
+</screen
+> Antes de utilizar una orden nueva con &kdiff3;, debería comprobarla en una consola. Aquí será práctica la orden <command
+>echo</command
+>. Ejemplo: <screen>
+   <command
+>echo</command
+> abrakadabra | <command
+>sed</command
+> 's/a/o/'
+   -> obrakadabra
+</screen
+> Este ejemplo muestra una orden sed muy simple que reemplaza la primera aparición de «a» con «o». Si desea reemplazar todas las apariciones necesitará el modificador «g»: <screen>
+   <command
+>echo</command
+> abrakadabra | <command
+>sed</command
+> 's/a/o/g'
+   -> obrokodobro
+</screen
+> El símbolo «|» es la orden de tubería que transfiere la salida de la orden anterior a la entrada de la siguiente orden. Si desea comprobar el uso con un archivo largo puede utiilzar <command
+>cat</command
+> en los sistemas tipo Unix o <command
+>type</command
+> en los sistemas tipo Windows. <command
+>sed</command
+> hará la sustitución para cada línea. <screen
+><command
+>cat</command
+> <replaceable
+>nombrearchivo</replaceable
+> | <command
+>sed</command
+> <replaceable
+>opciones</replaceable
+>
+</screen>
+</para>
+</sect2>
+<sect2 id="sedforkdiff3"
+><title
+>Ejemplos para <command
+>sed</command
+> usados en &kdiff3;</title>
+<sect3
+><title
+>Ignorar otros tipos de comentarios</title>
+<para
+>En estos momentos &kdiff3; solo entiende los comentarios C/C++. Utilizando la orden del preprocesado de línea coincidente también puede ignorar otros tipos de comentarios, convirtiéndoles en comentarios C/C++. Ejemplo: Para ignorar los comentarios que comiencen con «#», debería convertirlos a «//». Tenga en cuenta que debe tener activada la opción «Ignorar comentarios C/C++» para que tenga efecto. Una línea de preprocesado de línea coincidente podría ser: <screen>
+   <command
+>sed</command
+> 's/#/\/\//'
+</screen
+>Al igual que para <command
+>sed</command
+> el caracter «/» tienen un significado especial, y es necesarío reemplazar el caracter «\» antes de cada «/» en la cadena de reemplazo. Algunas veces el «\» es necesario para añadir o eliminar un significado especial de ciertos caracteres. Las comillas simples (') antes y después de la orden de sustitución son importantes, ya que sino el intérprete de órdenes intentará interpretar algunos caracteres especiales como «#», «$» o «\» antes de pasarlos a <command
+>sed</command
+>. <emphasis
+>Tenga en cuenta que en Windows aquí necesitará utilizar las comillas dobles ("). Windows sustituye otros caracteres como «%», por ello debería experimentar un poquito</emphasis
+>. </para>
+</sect3>
+<sect3
+><title
+>Sensibilidad de diff a mayúsculas y minúsculas</title>
+<para
+>Utilice la siguiente orden de preprocesado de coincidencia de línea para convertir todas las entradas a mayúsculas: <screen>
+   <command
+>sed</command
+> 's/\(.*\)/\U\1/'
+</screen
+>Aquí el «.*» es una expresión regular que incluye a todos los caracteres en la línea. El «\1» en la cadena de reemplazo hace referencia al texto que coincide con el primer par de «\(» y «\)». La «\U» convierte el texto insertado a mayúsculas. </para>
+</sect3>
+
+<sect3
+><title
+>Ignorar las claves de control de versión</title>
+<para
+><acronym
+>CVS</acronym
+> y otros sistemas de control de versión utilizan algunas claves para insertar cadenas automáticamente generadas (<ulink url="info:/cvs/Keyword substitution"
+>info:/cvs/Keyword sustitución</ulink
+>). Todos ellos siguen el modelo «$CLAVE generada texto$». Ahora necesitaremos una orden de preprocesado que elimine solo el texto generado: <screen>
+   <command
+>sed</command
+> 's/\$\(Revision\|Author\|Log\|Header\|Date\).*\$/\$\1\$/'
+</screen
+> Las «\|» separan las posibles claves. Podría querer modificar esta lista para acomodarla a sus necesidades. La «\» before the «$» es necesaria porque de otra forma «$» coincidirá con el final de la línea. </para>
+<para
+>Mientras experimenta con <command
+>sed</command
+> puede llegar a entender y a gustarle las expresiones regulares. Son prácticas porque hay muchos programas que soportan cosas similares. </para>
+</sect3>
+
+<sect3
+><title
+>Ignorar números</title>
+<para
+>Ignorar los números en realidad es una opción de construcción. Pero como en otros ejemplos, indica el aspecto que podría tener la orden de preprocesado. <screen>
+   <command
+>sed</command
+> 's/[0123456789.-]//g'
+</screen
+> Cualquier caracter entre «[» y «]» será una coincidencia y no se reemplazará con nada. </para>
+</sect3>
+
+<sect3
+><title
+>Ignorar ciertas columnas</title>
+<para
+>Algunas veces una texto tiene un formato muy estricto y contiene columnas que desearía ignorar, mientras que otras columnas deseará conservarlas para el análisis. En el siguiente ejemplo las primeras cinco columnas (caracteres) se ignorarán, las siguientes diez se conservarán, otras cinco se ignorarán y el resto de la línea se conservará. <screen>
+   <command
+>sed</command
+> 's/.....\(..........\).....\(.*\)/\1\2/'
+</screen
+> Cada punto «.» coincidirá con cualquier caracter simple. El «\1» y el «\2» en la cadena de reemplazo hacen referencia al texto coincidente dentro del primer y segundo par de «\(» y «\)» indicando el texto que se conservará. </para>
+</sect3>
+
+<sect3
+><title
+>Combinar varias sustituciones</title>
+<para
+>Algunas veces deseará aplicar varias sustituciones a la vez. Puede utilizar el punto y coma «;» para separarlas unas de otras. Ejemplo: <screen
+><command
+>echo</command
+> abrakadabra | <command
+>sed</command
+> 's/a/o/g;s/\(.*\)/\U\1/'
+   -> OBROKODOBRO
+</screen>
+</para>
+</sect3>
+
+<sect3
+><title
+>Utilizar <command
+>perl</command
+> en lugar de <command
+>sed</command
+></title>
+<para
+>En lugar de <command
+>sed</command
+> podría utilizar algo como <command
+>perl</command
+>. <screen>
+   <command
+>perl</command
+> -p -e 's/<replaceable
+>EXPREG</replaceable
+>/<replaceable
+>REEMPLAZO</replaceable
+>/<replaceable
+>MODIFICADORES</replaceable
+>'
+</screen
+> Pero algunos detalles son diferentes en <command
+>perl</command
+>. Tenga en cuenta que <command
+>sed</command
+> necesita «\(» y «\)» <command
+>perl</command
+> necesita solo «(» y «)»  sin estar precedido de «\». Ejemplo: <screen
+><command
+>sed</command
+> 's/\(.*\)/\U\1/'
+   <command
+>perl</command
+> -p -e 's/(.*)/\U\1/'
+</screen>
+</para>
+</sect3>
+</sect2>
+
+<sect2
+><title
+>Orden de la ejecución de preprocesado</title>
+<para
+>Los datos van pasando por todos los preprocesadores internos y externos en el siguiente orden: </para>
+<itemizedlist>
+<listitem
+><para
+>Preprocesador normal.</para
+></listitem>
+<listitem
+><para
+>Preprocesador de coincidencia de líneas.</para
+></listitem>
+<listitem
+><para
+>Ignorar mayúsculas (conversión a mayúsculas).</para
+></listitem>
+<listitem
+><para
+>Detección de comentarios C/C++.</para
+></listitem>
+<listitem
+><para
+>Ignorar números.</para
+></listitem>
+<listitem
+><para
+>Ignorar espacios en blanco.</para
+></listitem>
+</itemizedlist>
+<para
+>Los datos después del preprocesador normal se conservarán para mostrarse y fusionarse. El resto de operaciones solo modificarán los datos para que los vea el algoritmo de coincidencia de líneas de diff. </para
+><para
+>En alguna ocasión cuando use el preprocesador normal se dará cuenta de que el preprocesador de coincidencia de líneas verá la salida del preprocesador normal como entrada. </para>
+</sect2>
+
+<sect2
+><title
+>Aviso</title>
+<para
+>La orden de preprocesado suele ser muy práctica, pero como con cualquier opción que modifique su texto u oculte ciertas diferencias automáticamente, puede saltarse accidentalmente ciertas diferencias y en el peor de los casos destruir datos importantes. </para
+><para
+>Por esta razón durante un fusionado si &kdiff3; utiliza una orden de preprocesado normal le preguntará si desea desactivarla o no. Pero no se producirá ningún aviso si está activada la orden de preprocesado de líneas coincidentes. La fusión no se completará hasta que se resuelvan los conflictos. Si desactiva «Mostrar espacios en blanco» las diferencias eliminadas con la orden de preprocesado de líneas coincidentes también estarán visibles. Si el botón guardar continúa desactivado durante una fusión (porque aún existen conflictos), asegúrese de activar «Mostrar espacios en blanco». Si no desea fusionar estas diferencias sin importancia de forma manual puede elegir «Seleccionar [A|B|C] para todos los conflictos de espacios en blanco sin resolver» en el menú Fusionar. </para>
+</sect2>
+</sect1>
+</chapter>
+
+
+<chapter id="dirmerge"
+><title
+>Comparación y fusionado de directorios con &kdiff3;</title>
+<sect1 id="dirmergeintro"
+><title
+>Iniciar la comparación y fusión del directorio</title>
+<para
+>Frecuentemente los programadores modifican varios archivos en un directorio para conseguir su propósito. Para esto &kdiff3; también le permite comparar y fusionar directorios completos recursivamente. </para
+><para
+>Aunque la comparación y fusionado de directorios parezca bastante obvio, existen varios detalles que debería conocer. Lo más importante es el hecho de que la operación podría afectar a muchos archivos. Si no tiene copias de seguridad de los datos originales, podría ser complicado e incluso imposible devolverlos a su estado original. Por lo tanto, antes de realizar un fusionado, asegúrese de guardar sus datos en un lugar seguro, de forma que sea posible volver atrás. Si crea un archivo o utiliza algún sistema de control de versiones es cosa suya, pero los programadores experimentados y los integradores pueden necesitan las antiguas fuentes. Y tenga en cuenta que a pesar de que yo (el autor de &kdiff3;) intento hacerlo lo mejor posible, no garantizo que no existan fallos. De acuerdo con la licencia GNU GPL NO EXISTE NINGUNA GARANTÍA para este programa. Por lo tanto, sea humilde y tenga siempre lo siguiente en mente: </para>
+<blockquote
+><para>
+   <emphasis
+>Errar es humano, pero para echar las cosas a perder necesita un ordenador.</emphasis>
+</para
+></blockquote>
+<para
+>Ésto es lo que este programa puede hacer por usted: &kdiff3; ... </para>
+<itemizedlist>
+     <listitem
+><para
+>... lee y compara dos o tres directorios recursivamente.</para
+></listitem>
+     <listitem
+><para
+>... tiene un especial cuidado con los enlaces simbólicos.</para
+></listitem>
+     <listitem
+><para
+>... le permitirá navegar por los directorios con una doble pulsación del ratón.</para
+></listitem>
+     <listitem
+><para
+>... para cada elemento propone una operación de fusión, que puede cambiar antes de iniciar la fusión del directorio.</para
+></listitem>
+     <listitem
+><para
+>... le permite simular la fusión y lista las acciones que se realizarían si se llegasen a llevar a cabo.</para
+></listitem>
+     <listitem
+><para
+>... le permite realizar la fusión, y le permite interactuar cuando sea necesaria la interacción manual.</para
+></listitem>
+     <listitem
+><para
+>... le permite ejecutar las operaciones seleccionadas para todos los elementos (tecla F7) o para el elemento seleccionado (tecla F6).</para
+></listitem>
+     <listitem
+><para
+>... le permite continuar la fusión después de la interacción manual con la tecla F7.</para
+></listitem>
+     <listitem
+><para
+>... crea copias de seguridad opcionales, con la extensión «.orig».</para
+></listitem>
+     <listitem
+><para
+>...</para
+></listitem>
+</itemizedlist>
+</sect1>
+
+<sect1 id="startingdirmerge"
+><title
+>Iniciar la comparación o fusión del directorio</title>
+<para
+>Es similar a la fusión y comparación de archivos. Solo debe especificar los directorios en la línea de órdenes o en el diálogo abrir archivo. </para>
+<sect2
+><title
+>Comparar/fusionar dos directorios: </title>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>directorio1 directorio2</replaceable>
+   <command
+>kdiff3</command
+> <replaceable
+>directorio1 directorio2</replaceable
+> -o <replaceable
+>directorio-destino</replaceable
+>
+</screen>
+<para
+>Sino se especifica directorio de destino, &kdiff3; utilizará <replaceable
+>directorio2</replaceable
+>. </para>
+</sect2>
+
+<sect2
+><title
+>Comparar/fusionar tres directorios: </title>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>directorio1 directorio2 directorio3</replaceable>
+   <command
+>kdiff3</command
+> <replaceable
+>directorio1 directorio2 directorio3</replaceable
+> -o <replaceable
+>directorio-destino</replaceable
+>
+</screen>
+<para
+>Cuando se fusionen tres directorios <replaceable
+>directorio1</replaceable
+> se utiliza como base para la fusión. Sino se especifica directorio destino, &kdiff3; utilizará <replaceable
+>directorio3</replaceable
+> como directorio destino para la fusión. </para>
+
+<para
+>Tenga en cuenta que solo la comparación se inicia automáticamente, no la fusión. Para esto debería seleccionar la entrada de menú o la tecla F7 (más detalles a continuación). </para>
+</sect2>
+</sect1>
+
+<sect1 id="dirmergevisible"
+><title
+>Información visible del directorio de fusión</title>
+<para
+>Mientras lee estos directorios se mostrará un cuadro de diálogo en el que se informará del progreso. Si cancela la exploración del directorio, solo se compararán los archivos listados. </para
+><para
+>Cuando se termine la exploración del directorio &kdiff3; mostrará una lista con el resultado... </para>
+<screenshot
+><mediaobject>
+<imageobject
+><imagedata fileref="dirbrowser.png" format="PNG"/></imageobject
+> <!--alt="Image of the directory browser."-->
+</mediaobject
+></screenshot>
+<para
+>... y detalles sobre el elemento seleccionado actualmente a la derecha: </para>
+<screenshot
+><mediaobject>
+<imageobject
+><imagedata fileref="iteminfo.png" format="PNG"/></imageobject>
+   <!--alt="Image with information about the selected item."-->
+</mediaobject
+></screenshot>
+
+<sect2 id="name"
+><title
+>La columna nombre</title>
+<para
+>Cada archivo y directorio que se encuentre durante la exploración se mostrará aquí en un árbol. Puede seleccionar un elemento pulsando una vez con el ratón. </para
+><para
+>De forma predeterminada los directorios están contraídos. Puede expandirlos y contraerlos pulsando en «+»/«-», con una doble pulsación, o utilizando las teclas Flecha izquierda o Flecha derecha. El menú «Directorio» también contiene dos acciones «Plegar todos los subdirectorios» y «Desplegar todos los subdirectorios» con los que podrá contraer y expandir todos los directorios de una vez. </para
+><para
+>Si hace una doble pulsación sobre un elemento de archivo comenzará la comparación y aparecerá la ventana de diferencias de archivos. </para>
+<para
+>La imagen de la columna nombre reflejará el tipo de archivo en el primer directorio («A»). Puede ser uno de estos: </para>
+<itemizedlist>
+     <listitem
+><para
+>Archivo normal.</para
+></listitem>
+     <listitem
+><para
+>Directorio normal (imagen de directorio).</para
+></listitem>
+     <listitem
+><para
+>Enlace a un archivo (imagen de archivo con una flecha de enlace).</para
+></listitem>
+     <listitem
+><para
+>Enlace a un directorio (imagen de directorio con una flecha de enlace).</para
+></listitem>
+</itemizedlist>
+<para
+>Si el tipo de archivo es diferente en el resto de directorios, ésto podrá verse en las columnas A/B/C y en la ventana que muestra los detalles sobre el elemento seleccionado. Tenga en cuenta que en este caso la fusión no podrá seleccionarse automáticamente. Cuando inicie la fusión, el usuario será informado de problemas de este tipo. </para>
+</sect2>
+
+<sect2 id="coloring"
+><title
+>Las columnas A/B/C y el esquema de coloreado</title>
+<para
+>Como puede verse en la imagen superior los colores rojo, verde, amarillo y negro son los que se utilizan en las columnas A/B/C. </para>
+<itemizedlist>
+     <listitem
+><para
+>Negro: Este elemento no existe en este directorio.</para
+></listitem>
+     <listitem
+><para
+>Verde: El elemento más nuevo.</para
+></listitem>
+     <listitem
+><para
+>Amarillo: Más antiguo que verde, más nuevo que rojo.</para
+></listitem>
+     <listitem
+><para
+>Rojo: El elemento más antiguo.</para
+></listitem>
+</itemizedlist>
+<para
+>Pero para los elementos que son idénticos en la comparación sus colores son idénticos aunque no coincida la antigüedad. </para
+><para
+>Los directorios se consideran iguales si todos los elementos que contienen son idénticos. Entonces tendrán el mismo color. Pero la antigüedad de un directorio no se considerará para su color. </para
+><para
+>La idea de este esquema de color se basa en <ulink url="http://samba.org/cgi-bin/cvsweb/dirdiff"
+>dirdiff</ulink
+>.Los colores son semejantes a las hojas, que son verdes cuando nacen, se vuelven amarillas más tarde y cuando envejecen se vuelven rojos. </para>
+
+</sect2
+><sect2 id="operation"
+><title
+>La columna Operación</title>
+<para
+>Después de comparar los directorios &kdiff3; también evalúa una propuesta para una operación de fusión. Esto se muestra en la columna «Operación». Puede modificar la operación pulsando en la operación que desee cambiar. Aparecerá un pequeño menú y le permitirá seleccionar una operación para este elemento (también puede seleccionar las operaciones a través del teclado. Ctrl+1/2/3/4/Supr seleccionarán A/B/C/Fusionar/Borrar respectivamente si están disponibles). Esta operación se ejecutará durante la fusión. La disponibilidad de estas operaciones dependerá del elemento y del modo de fusión. El modo de fusión será uno de los siguientes: </para>
+<itemizedlist>
+     <listitem
+><para
+>Fusión del árbol de directorios («A» será tratada como la base más antigua de ambas).</para
+></listitem>
+     <listitem
+><para
+>Fusionar dos directorios.</para
+></listitem>
+     <listitem
+><para
+>Sincronizar dos directorios (activado a través de la opción «Sincronizar directorios»).</para
+></listitem>
+</itemizedlist>
+<para
+>En la fusión de tres directorios la operación propuesta será: Si para un elemento... </para>
+<itemizedlist>
+     <listitem
+><para
+>... todos los árboles de directorios son iguales: Copiar desde C.</para
+></listitem>
+     <listitem
+><para
+>... A y C son iguales pero B no: Copiar desde B (o si B no existe, borra el destino, si existe).</para
+></listitem>
+     <listitem
+><para
+>... A y B son iguales pero C no: Copiar desde C (o si C no existe, borra el destino, si existe).</para
+></listitem>
+     <listitem
+><para
+>... B y C son iguales pero A no: Copiar desde C (o si C no existe, borra el destino, si existe).</para
+></listitem>
+     <listitem
+><para
+>... solo existe A: Borrar el destino (si existe).</para
+></listitem>
+     <listitem
+><para
+>... solo existe B: Copiar desde B.</para
+></listitem>
+     <listitem
+><para
+>... solo existe C: Copiar desde C.</para
+></listitem>
+     <listitem
+><para
+>... A, B y C no son iguales: Fusionar.</para
+></listitem>
+     <listitem
+><para
+>... A, B y C no tienen el mismo tipo de archivo (p.ej. A es un directorio, B es un archivo): «Error: Conflicto en los tipos de archivo». Mientras existan elementos como éstos la fusión de directorio no comenzará.</para
+></listitem>
+</itemizedlist>
+<para
+>En la fusión de dos directorios la operación propuesta será: Si para un elemento... </para>
+<itemizedlist>
+     <listitem
+><para
+>... ambos directorios son iguales: Copiar desde B.</para
+></listitem>
+     <listitem
+><para
+>... A existe, pero B no: Copiar desde A.</para
+></listitem>
+     <listitem
+><para
+>... B existe, pero no A: Copiar desde B.</para
+></listitem>
+     <listitem
+><para
+>... A y B existe pero no son iguales: Fusionar.</para
+></listitem>
+     <listitem
+><para
+>... A y B no tienen el mismo tipo de archivo (p.ej. A es un directorio, B es un archivo): «Error: Conflicto en los tipos de archivo». Mientras existan de elementos como éstos la fusión de directorio no comenzará.</para
+></listitem>
+</itemizedlist>
+<para
+>El modo de sincronización estará activo si solo existen dos directorios, no se ha especificado destino y está activa la opción «Sincronizar directorios». &kdiff3; seleccionará una operación predeterminada de forma que ambos directorios sean idénticos después. Si para un elemento ... </para>
+<itemizedlist>
+     <listitem
+><para
+>... ambos directorios son iguales: No se hará nada.</para
+></listitem>
+     <listitem
+><para
+>... A existe, pero B no: copiar A a B.</para
+></listitem>
+     <listitem
+><para
+>... B existe, pero A no: Copiar B a A.</para
+></listitem>
+     <listitem
+><para
+>... A y B existen, pero no son iguales: Fusionar y guardar el resultado en ambos directorios (para los usuarios el nombre de archivo guardado es B, pero entonces &kdiff3; copiará B a A).</para
+></listitem>
+     <listitem
+><para
+>... A y B no tienen el mismo tipo de archivo (p.ej. A es un directorio, B es un archivo): «Error: Conflicto en los tipos de archivo». Mientras existan de elementos como éstos la fusión de directorio no comenzará.</para
+></listitem>
+</itemizedlist>
+<para
+>Cuando se fusionen dos directorios y esté seleccionada la opción «Copiar nuevo en lugar de fusionar», &kdiff3; buscará en las fechas y propondrá como elección el nuevo archivo. Si los archivos no son iguales pero tienen las mismas fechas, la operación contendrá «Error: Las fechas son iguales pero los archivos no». Mientras éstos elementos existan no se iniciará la fusión de directorios. </para>
+</sect2>
+
+<sect2 id="status"
+><title
+>La columna estado</title>
+<para
+>Durante la fusión se procesará un archivo tras otro. La columna estado mostrará «Hecho» para los elementos donde se haya producido la operación de fusionado, y otro texto si sucede algo inesperado. Cuando se completa una fusión, debería hacer una última comprobación para ver si el estado de todos los elementos es el adecuado. </para>
+</sect2>
+
+<sect2 id="statisticscolulmns"
+><title
+>Columnas estadísticas</title>
+<para
+>Cuando está activado en las opciones el modo de comparación de archivos «Análisis completo», &kdiff3; mostrará columnas que contienen el número de conflictos sin resolver, resueltos, no en blanco o de espacios en blanco (la columna resueltos solo se mostrará cuando se comparen o fusionen directorios). </para>
+</sect2>
+
+<sect2 id="selectingvisiblefiles"
+><title
+>Seleccionar archivos listados</title>
+<para
+>Varias opciones influyen en los archivos que se listarán aquí. Algunas son accesibles a través del <link linkend="dirmergeoptions"
+>diálogo preferencias</link
+>. El menú Directorio contiene las entradas: </para
+><para
+><itemizedlist>
+     <listitem
+><para
+>«Mostrar archivos idénticos». Archivos que se han detectado como iguales en todos los directorios.</para
+></listitem>
+     <listitem
+><para
+>«Mostrar archivos diferentes». Archivos que existen en dos o más directorios pero que no son iguales.</para
+></listitem>
+     <listitem
+><para
+>«Mostrar archivos solo en A». Archivos que existen solo en A, pero no en B o C.</para
+></listitem>
+     <listitem
+><para
+>«Mostrar archivos solo en B». Archivos que existen solo en B, pero no en A o B.</para
+></listitem>
+     <listitem
+><para
+>«Mostrar archivos solo en C». Archivos que existen solo en C, pero no en A o B.</para
+></listitem>
+</itemizedlist
+></para>
+<para
+>Active las opciones «Mostrar» para los elementos que desee listar. Si por ejemplo solo desea listar todos los elementos que existan en A o en B pero no en ambos, deberá activar «Mostrar archivos solo en A» y «Mostrar archivos solo en B» y desactivar todas las demás («Mostrar archivos idénticos», «Mostrar archivos diferentes», «Mostrar archivos solo en C»). La lista se actualizará inmediatamente para reflejar los cambios. </para
+><para
+>Estas opciones también se aplican para los directorio con una excepción: Desactivar «Mostrar archivos diferentes» no ocultará ningún directorio. Solo funcionará para los archivos que contenga. </para
+><para
+>Tenga en cuenta que de estas opciones solo es persistente la opción «Mostrar archivos idénticos». Los otros se activarán cuando se inicie &kdiff3;. </para>
+</sect2>
+
+</sect1>
+
+
+<sect1 id="dothemerge"
+><title
+>Hacer una fusión de directorios</title>
+<para
+>Puede fusionar el elemento seleccionado (archivo o directorio) o todos los elementos. Cuando haya hecho todas sus operaciones de elección (en todos los subdirectorios también) podrá iniciar la fusión. </para
+><para
+>Sea consciente de que sino especifica un directorio de destino explícitamente, el destino será «C» en el modo de tres directorios, «B» en el modo de fusión de dos directorios, y en el modo de sincronización será «A» y/o «B». </para
+><para
+>Si ha especificado un directorio de destino marque todos los elementos del árbol que debieran estar en la salida. Existen algunas opciones que hará que se omitan ciertos elementos del directorio de comparación y del de fusión. Marque estas opciones para evitar sorpresas desagradables: </para>
+<itemizedlist>
+     <listitem
+><para
+>«Directorios recursivos»: Si está desactivado, no se buscarán los elementos de los directorios.</para
+></listitem>
+     <listitem
+><para
+>«Patrón»/«Anti-patrón»: Incluir/excluir elementos que coincidan.</para
+></listitem>
+     <listitem
+><para
+>«Excluir archivos ocultos»</para
+></listitem>
+     <listitem
+><para
+><link linkend="selectingvisiblefiles"
+>«Mostrar» opciones</link
+> (Mostrar archivos idénticos/diferentes, archivos solo en A/B/C)</para
+></listitem>
+</itemizedlist>
+<para
+>Si cambia las preferencias para listar más archivos, debería volver a buscar a través del menú «Directorio»->«Volver a buscar» (el motivo es que para realizar una comparación rápida &kdiff3; omite la comparación para los archivos suprimidos por este criterio). Si cambia sus patrones de archivo y directorio de exclusión de archivos, la lista de archivos se actualizará inmediatamente al cerrar el diálogo de las opciones. </para
+><para
+>Tenga en cuenta que cuando escribe un nuevo directorio completo también deseará copiar los archivos idénticos. En este caso active la opción «Mostrar archivos idénticos». Si su directorio de destino es una de las entradas, ésto no será necesario ya que el archivo ya estará aquí. </para
+><para
+>Si está satisfecho con ésto, el resto es sencillo. </para
+><para
+>Para fusionar todos los elementos: Seleccione «Comenzar/continuar fusión de directorio» en el menú «Directorio» o pulse F7 (que es el acceso rápido). Para fusionar solo el elemento actual: Seleccione «Realizar operación para el elemento actual» o pulse F6. </para
+><para
+>Si debido a tipos de archivos conflictivos todavía continúan existiendo operaciones no válidas, aparecerá un mensaje señalándolo, de forma que pueda seleccionar una operación válida para este elemento. </para
+><para
+>Si fusiona todos los elementos aparecerá un diálogo proporcionándole las opciones «Hacer», «Simular» y «Cancelar». </para>
+<itemizedlist>
+     <listitem
+><para
+>Seleccione «Simular» si desea ver el resultado sin hacer la fusión. Se mostrará un lista de todas las operaciones.</para
+></listitem>
+     <listitem
+><para
+>Sino seleccione «Hacer» para realizar el fusionado.</para
+></listitem>
+</itemizedlist>
+<para
+>Entonces &kdiff3; realizará las operaciones especificadas para todos los elementos. Si se precisa interacción manual (fusión de un solo archivo), aparecerá una ventana de fusión (<link linkend="dirmergebigscreenshot"
+>vea la gran captura de pantalla</link
+>). </para
+><para
+>Cuando haya terminado con un archivo, seleccione de nuevo «Comenzar/continuar fusión de directorio» o la tecla F7. Si todavía no la había guardado, un diálogo le preguntará para hacerlo. Entonces &kdiff3; continuará con el siguiente elemento. </para
+><para
+>Cuando &kdiff3; encuentre un error, éste se lo indicará con información literal del estado. En la parte inferior de la lista, aparecerán algunos mensajes de error que deberían ayudarle a entender la causa del problema. Cuando continúe con la fusión (tecla F7) &kdiff3; le permitirá reintentar o saltarse el elemento que provocó el problema. Esto significa que antes de continuar puede seleccionar otra operación o resolver el problema por otros medios. </para
+><para
+>Cuando la fusión se haya completado, &kdiff3; le informará a través de un cuadro de diálogo. </para
+><para
+>Si algunos elementos se fusionaron de forma individual &kdiff3; lo recordará (mientras esté en esta sesión de fusionado), y no les fusionará nuevamente cuando haga la fusión para todos los elementos. Incluso cuando se salte la fusión o no se guarde nada estos elementos se contarán como completos. Solo cuando cambie la operación de fusionado se eliminará el estado «hecho» del elemento y se podrá fusionar de nuevo. </para>
+</sect1>
+
+<sect1 id="dirmergeoptions"
+><title
+>Opciones para comparación y fusión de directorios</title>
+<para
+>Las preferencias de &kdiff3; (menú «Preferencias»-&gt;«Configurar &kdiff3;») ahora tienen una sección llamada «Fusión de directorio» con estas opciones: </para>
+
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Directorios recursivos:</emphasis
+></term
+><listitem
+><para
+>Indica si se realizará la búsqueda en los directorios de forma recursiva.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Patrón(es) de archivo(s):</emphasis
+></term
+><listitem
+><para
+>Solo los archivos que coincidan con el patrón se colocarán en el árbol. Puede especificarse más de un patrón utilizando el punto y coma «;» como separador. Comodines válidos: «*» y «?» (p. ej. «*.cpp;*.h»). El valor predeterminado es «*». Este patrón no se utiliza en directorios.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Anti-patrón(es) de archivo:</emphasis
+></term
+><listitem
+><para
+>Los archivos y directorios que coincidan con este patrón se excluirán del árbol. Se puede especificar más de un patrón utilizando el «;» como separador. Comodines válidos: «*» y «?». El valor predeterminado es «*.orig;*.o;*.obj».</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Anti-patrón(es) de direcctorio:</emphasis
+></term
+><listitem
+><para
+>Los archivos y directorios que coincidan con este patrón se excluirán del árbol. Se puede especificar más de un patrón utilizando el «;» como separador. Comodines válidos: «*» y «?». El valor predeterminado es «CVS;deps;.svn».</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Usar .cvsignore:</emphasis
+></term
+><listitem
+><para
+>Ignora los archivos y directorios que también se vayan a ignorar por el CVS. Muchos archivos generados automáticamente se ingorarán por el CVS. La gran ventaja es que puede ser un directorio especificado a través del archivo local «.cvsignore» (vea <ulink url="info:/cvs/cvsignore"
+>info:/cvs/cvsignore</ulink
+>).</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Buscar archivos y directorios ocultos:</emphasis
+></term
+><listitem
+><para
+>En algunos sistemas de archivos tienen un atributo «Oculto». En otros sistemas el nombre de archivo comienza con un punto («.»), lo que hace que esté oculto. Esta opción le permite decidir si incluir o no estos archivos en el árbol. De forma predeterminada está activado.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Seguir enlaces de archivos:</emphasis
+></term
+><listitem
+><para
+>Para los enlaces de los archivos: Cuando esté desactivado, se compararán los enlaces simbólicos. Cuando esté activado, se compararán los archivos que estén detrás de los enlaces. De forma predeterminada está desactivada.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Seguir enlaces de directorios:</emphasis
+></term
+><listitem
+><para
+>Para los enlaces de los directorios: Cuando esté desactivado se compararán los enlaces simbólicos. Cuando esté activado, el enlace será tratado como un directorio y se explorará recursivamente (tenga en cuenta que el programa no comprueba si el enlace es «recursivo»). Así por ejemplo, un directorio que contenga un enlace al directorio puede provocar un bucle infinito, y después de cierto tiempo podrá sobrecargar la pila o utilizar toda la memoria, colgando el programa). De forma predeterminada está desactivada.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Comparación de nombres de archivo sensible a mayúsculas y minúsculas:</emphasis
+></term
+><listitem
+><para
+>El valor predeterminado es false (falso) para Windows, true (verdadero) para otros sistemas operativos.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Modo de comparación de archivos:</emphasis
+></term
+><listitem
+><para>
+<variablelist
+>            
+   <varlistentry
+><term
+><emphasis
+>Comparación binaria:</emphasis
+></term
+><listitem
+><para
+>Éste es el modo de comparación de archivos predeterminado. </para
+></listitem
+></varlistentry
+>         
+   <varlistentry
+><term
+><emphasis
+>Análisis completo:</emphasis
+></term
+><listitem
+><para
+>Hace un análisis completo de cada archivo y muestra las columnas de información estadística (número de conflictos resueltos, sin resolver, no blancos y blancos). El análisis completo es más lento que un simple análisis binario, y mucho más lento cuando se utiliza con archivos que no contienen texto (especifique el anti-patrón archivo). </para
+></listitem
+></varlistentry
+>         
+   <varlistentry
+><term
+><emphasis
+>Validar la fecha de modificación:</emphasis
+></term
+><listitem
+><para
+>Si compara directorios grandes sobre una red lenta, es más rápido comparar solo las fechas de modificación y el tamaño del archivo. Pero esta mejora del rendimiento paga el precio de una pequeña inseguridad. Utilice esta opción con cuidado. De forma predeterminada estará desactivada.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Validar el tamaño:</emphasis
+></term
+><listitem
+><para
+>Similar a la validación de la fecha. No hace comparaciones reales. Dos archivos se consideran iguales si sus tamaños son iguales. Esto es práctico cuando la operación de copiado no conserva la fecha de modificación. Utilice esta opción con cuidado. De forma predeterminada estará desactivada.</para
+></listitem
+></varlistentry>
+</variablelist
+></para
+></listitem
+></varlistentry>
+         
+   <varlistentry
+><term
+><emphasis
+>Sincronizar directorios:</emphasis
+></term
+><listitem
+><para
+>Activa el «Modo sincronizado» cuando se comparan dos directorios y no se especificó el directorio de destino. En este modo las operaciones propuestas se seleccionarán de forma que tras realizar la operación ambos directorios queden iguales. Por ello el resultado del fusionado se escribirá en ambos directorios. De forma predeterminada estará desactivada.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Copiar el más nuevo en vez de fusionar:</emphasis
+></term
+><listitem
+><para
+>En lugar de fusionar la operación propuesta será copiar la fuente nueva si hubo algún cambio (considerado inseguro, ya que implica que el otro directorio no ha sido editado. Deberá hacer una comprobación para cada caso). De forma predeterminada estará desactivada.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Archivos de copia de seguridad:</emphasis
+></term
+><listitem
+><para
+>Si se reemplaza un archivo o directorio por otro o se borra, la versión original se renombrará con una extensión «.orig». Si ya existía un archivo con la extensión «.orig» se borrará sin hacer copia de seguridad. También afecta al fusionado normal de archivos simples, no solo al modo de fusionado de directorio. De forma predeterminada estará activada.</para
+></listitem
+></varlistentry>
+</variablelist>
+</sect1>
+
+<sect1 id="other"
+><title
+>Otras funciones en la ventana del directorio de fusión</title>
+<sect2
+><title
+>Modo de pantalla dividida/completa</title>
+<para
+>Normalmente la vista de la lista de fusionado de directorios permanece visible cuando se compara o fusiona un solo archivo. Con el ratón puede mover la barra divisoria que separa la lista de archivos de las ventanas de texto diff. Sino desea ésto, puede desactivar la «Vista de pantalla dividida» en el menú «Directorio». A continuación utilice «Cambiar vista» en el menú «Directorio» para conmutar entre la lista de archivos y la ventana de texto diff que ocupará la pantalla completa. </para>
+</sect2>
+<sect2
+><title
+>Comparar o fusionar un solo archivo</title>
+<para
+>Probablemente preferirá una doble pulsación del ratón sobre un archivo para compararlos. Sin embargo existe una entrada en el menú «Directorio». También puede fusionar directamente un solo archivo, sin iniciar el fusionado del directorio a través de la opción «Fusionar un solo archivo» en el menú «Directorio». Al guardar el resultado, el estado cambiará a «hecho», y el archivo no se fusionará si se inicia un fusionado de directorio. </para
+><para
+>Pero tenga en cuenta que la información del estado se perderá cuando vuelva a explorar un directorio: Menú «Directorio»->«Volver a buscar». </para>
+</sect2>
+<sect2
+><title
+>Comparar o fusionar archivos con nombres diferentes</title>
+<para
+>Algunas veces necesitará comparar o fusionar archivos con nombres diferentes (p. ej. el archivo actual y la copia de seguridad en la misma carpeta). </para
+><para
+>Seleccione el archivo exacto pulsando en el icono en la columna A, B o C. El primer archivo seleccionado se marcará con una «A», el segundo y tercero con «B» y «C» con independencia de la columna en la que esté. Solo se podrá seleccionar en la parte superior de los árboles de archivos. </para
+><para
+>Seleccione «Comparar explícitamente archivos seleccionados» o «Fusionar explícitamente archivos seleccionados» desde el menú «Directorio». Estas entradas también aparecerán como menú contextual cuando pulse el botón derecho cuando pulse el último archivo seleccionado. </para
+><para
+>La comparación o fusión de un archivo se realizará en la misma ventana. Si este método se utiliza para directorios se abrirá una ventana nueva. </para
+></sect2>
+</sect1>
+</chapter>
+
+<chapter id="misc">
+<title
+>Temas variados</title>
+<sect1 id="networktransparency">
+<title
+>Transferencia de red a través de KIO</title>
+<sect2
+><title
+>KIO-Slaves</title>
+<para
+>KDE soporta transparencia de red a través de los KIO-slaves. &kdiff3; lo utiliza para leer los archivos de entrada y para explorar directorios. Esto significa que puede especificar archivos y directorios locales y en recursos remotos a través de URLs. </para
+><para
+>Ejemplo: </para
+><para>
+<screen
+><command
+>kdiff3</command
+> prueba.cpp  ftp://ftp.muylejos.org/prueba.cpp
+<command
+>kdiff3</command
+> tar:/home/hacker/archivo.tar.gz/dir ./dir
+</screen>
+</para>
+<para
+>La primera línea compara un archivo local con un archivo en un servidor FTP. La segunda línea compara un directorio con un archivo comprimido con un directorio local. </para
+><para
+>Otros KIO-slaves interesantes son: </para>
+<itemizedlist>
+<listitem
+><para
+>Archivos de la web (http:).</para
+></listitem>
+<listitem
+><para
+>Archivos desde el FTP (ftp:).</para
+></listitem>
+<listitem
+><para
+>Transferencia de archivos encriptados (fish:, sftp:).</para
+></listitem>
+<listitem
+><para
+>Recursos Windows (smb:).</para
+></listitem>
+<listitem
+><para
+>Archivos locales (file:).</para
+></listitem>
+</itemizedlist>
+<para
+>Otras cosas posibles, aunque probablemente poco prácticas son: </para>
+<itemizedlist>
+<listitem
+><para
+>Páginas de manual (man:).</para
+></listitem>
+<listitem
+><para
+>Páginas de información (info:).</para
+></listitem>
+</itemizedlist>
+</sect2>
+
+<sect2
+><title
+>Cómo escribir URLs</title>
+<para
+>Una URL tiene una sintaxis diferente comparada con las rutas de los archivos y directorios locales. Algunas cosas a considerar son: </para>
+<itemizedlist>
+<listitem
+><para
+>Una ruta puede ser relativa y puede contener «.» o «..» Ésto no es posible para URLs que son siempre absolutas. </para
+></listitem
+><listitem
+><para
+>Los caracteres especiales deben escribirse «escapados» («#» se convertirá en «%23», los espacios se convertirán en «%20» y así sucesivamente). P.ej. Un archivo con el nombre «/#foo#» tendrá el URL «file:///%23foo%23». </para
+></listitem
+><listitem
+><para
+>Cuando un URL no funcione tal y como esperaba, intente abrirla primero en Konqueror. </para
+></listitem>
+</itemizedlist>
+
+</sect2>
+
+<sect2
+><title
+>Capacidades de los KIO-Slaves.</title>
+<para
+>La transparencia de red tiene un inconveniente: No todos los recursos tienen las mismas capacidades. </para
+><para
+>Algunas veces esto es debido al sistema de archivos del servidor, otras al protocolo. Aquí tenemos una pequeña lista de restricciones: </para>
+<itemizedlist>
+<listitem
+><para
+>Algunas veces no soporta enlaces. </para
+></listitem
+><listitem
+><para
+>O no hay forma de distinguir si un enlace apunta a un archivo o a un directorio. Siempre se asume un archivo (ftp:, sftp:). </para
+></listitem
+><listitem
+><para
+>No siempre se puede determinar el tamaño del archivo. </para
+></listitem
+><listitem
+><para
+>Soporte limitado para los permisos. </para
+></listitem
+><listitem
+><para
+>No hay posibilidad de modificar los permisos o la hora, por ello los permisos o la hora de la copia puede diferir del original (vea la opción «Verificar tamaño»). La modificación de permisos o de la hora solo es posible en los archivos locales. </para
+></listitem>
+</itemizedlist>
+</sect2>
+</sect1>
+
+<sect1 id="kpart">
+<title
+>Utilizar &kdiff3; como un KPart</title>
+<para
+>KDiff3 es un KPart. Actualmente implementa la interfaz KParts::ReadOnlyPart-interface. </para
+><para
+>Su principal utilización es la de visor de diferencias en KDevelop. KDevelop siempre inicia primero el visor interno de diferencias. Para llamar a &kdiff3; pulse el botón derecho del ratón en la ventana de diferencias y seleccione «Mostrar en KDiff3Part» en el menú contextual. </para
+><para
+>&kdiff3; normalmente requiere dos archivos completos como entrada. Cuando se utiliza como una parte &kdiff3; asume que el archivo de entrada es un archivo de parches en formato unificado. &kdiff3; recupera el nombre del archivo original del archivo del parche. Al menos uno de los dos archivos debe estar disponible. &kdiff3; llamará a <command
+>patch</command
+> para volver a crear el segundo archivo. </para
+><para
+>En Konqueror puede seleccionar un archivo de parche y seleccionar «Previsualizar en» - «KDiff3Part» desde el menú contextual. Sea consciente de que esto no funcionará si no está disponible ninguno de los archivos originales, y no será fiable si hubo modificaciones en el(los) archivo(s) original(es) desde que se generó el parche. </para
+><para
+>Cuando se ejecute como una parte, &kdiff3; solo proporcionará la diferencia de dos archivos, una pequeñísima barra de herramientas y un menú. La fusión y comparación de directorios no está soportada. </para>
+</sect1>
+</chapter>
+
+<chapter id="faq">
+<title
+>Preguntas y respuestas</title>
+&reporting.bugs; &updating.documentation; <qandaset id="faqlist">
+
+<qandaentry
+><question
+><para
+>¿Por qué se llama «&kdiff3;»? </para
+></question
+><answer
+><para
+>Las herramientas llamadas «KDiff» y «KDiff2» (ahora llamada «Kompare») ya existen. Por tanto «KDiff3» debería sugerir que incluye la fusión de forma similar a la herramienta «diff3» de la colección de herramientas Diff. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>¿Por qué la he liberado bajo la GPL? </para
+></question
+><answer
+><para
+>He utilizado programas GPL durante mucho tiempo y aprendí mucho echando un vistazo a muchas fuentes. Ésta es mi forma de dar las «gracias» a todos programadores que han hecho lo mismo. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Faltan algunos botones y funciones. ¿Que está pasando? </para
+></question
+><answer
+><para
+>Compiló las fuentes, pero probablemente no especificó de forma correcta el parámetro «prefix» de KDE en configure. De forma predeterminada configure intentará instalarlo en /usr/local pero KDE no encuentra el archivo de recursos de la interfaz de usuario (p.ej. kdiff3ui.rc). El archivo README contiene más información sobre el parámetro «prefix» correcto. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Algunas líneas que son similares, pero no idénticas aparecen unas al lado de las otras, pero no siempre. ¿Por qué? </para
+></question
+><answer
+><para
+>Las líneas que solo contienen una cantidad diferente de espacios se tratan «igual» al principio, de forma que solo una diferencia en un caracter que no sea un espacio en blanco hará que las líneas sean «diferentes». Si aparecen líneas similares unas al lado de las otras, en realidad es una coincidencia, y sucede algunas veces. Consulte <link linkend="manualdiffhelp"
+>el manual de ayuda de Diff</link
+>. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>¿Por que se deben resolver todos los conflictos de fusionado antes de guardarlos? </para
+></question
+><answer
+><para
+>Para cada sección ya sea igual o diferente el editor en la ventana de resultado de la fusión recordará su comienzo y su final. Ésto es necesario para que los conflictos puedan resolverse manualmente pulsando el botón de la fuente (A, B o C). Esta información se perderá cuando se guarde el texto y es demasiado complicado crear un formato de archivo especial que soporte el guardado y la restauración de toda la información. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Cómo puedo sincronizar las vista de diferencia y de fusión, de forma que todas muestren la misma posición de texto? </para
+></question
+><answer
+><para
+>Pulse en la columna de resumen situada a la izquierda del texto (<link linkend="synchronise_views"
+>Consulte también estó.</link
+>) </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>¿Por qué el editor en la ventana de resultado no tiene una función «deshacer»? </para
+></question
+><answer
+><para
+>Es demasiado esfuerzo por el momento. Siempre puede restaurar una versión a partir de una fuente (A, B o C) pulsando el botón respectivo. Para editar archivos grandes se recomienda utilizar otro editor. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Cuando eliminó texto, de repente aparece «&lt;Sin línea fuente&gt;» y no se puede borrar. ¿Qué significa y cómo puedo eliminarlo? </para
+></question
+><answer
+><para
+>Para cada sección ya sea igual o diferente el editor en la ventana de resultado de la fusión recuerda dónde comienza y dónde termina. «&lt;Sin línea fuente&gt;» significa que no falta nada en una sección, ni siquiera un caracter de línea nueva. Esto puede suceder mientras realiza la fusión automática o mientras está editando. Ésto no es un problema, ya que no aparecerá en el archivo guardado. Si desea volver al archivo original seleccione la sección (pulse en la columna de resumen a la izquierda) y después pulse el botón de la fuente con los contenidos necesarios (A/B o C). </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>¿Por qué &kdiff3; no soporta resaltado de sintaxis? </para
+></question
+><answer
+><para
+>&kdiff3; ya utiliza muchos colores para resaltar las diferencias. Más resaltado resultaría confuso. Utilice otro editor para esto. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Puedo utilizar &kdiff3; para comparar archivos OpenOffice.Org, Word, Excel, Pdf, &etc;? </para
+></question
+><answer
+><para
+>A pesar de que &kdiff3; analizará cualquier tipo de archivo el resultado no será satisfactorio. </para
+><para
+>&kdiff3; se creó para comparar archivos de texto puro. OpenOffice, Word, Excel, etc. guardan mucha más información en los archivos (relativa a tipos de letra, imágenes, páginas, colores, etc.) con la que &kdiff3; no sabe qué hacer. Por tanto &kdiff3; le mostrará el contenido del archivo interpretado como si fuera texto puro, pero esto no es para lo que se utiliza. </para
+><para
+>Desde que muchos programa guardan su contenido en formato XML, puede ser capaz de leer éste como texto puro. Por tanto si el cambio es pequeño, &kdiff3; todavía puede ayudarle. </para
+><para
+>La mejor solución si solo desea comparar texto (sin objetos empotrados como imágenes) es utilizar «Seleccionar todo» y «Copiar» en su programa para copiar el texto interesante al portapapeles y a continuación pegar en &kdiff3; el texto en cualquiera de las ventanas de diferencias (Consulte también <link linkend="selections"
+>Seleccionar, copiar y pegar</link
+>). </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>¿Donde está la opción de directorio «Listar solo deltas»? </para
+></question
+><answer
+><para
+>Ahora existen varias <link linkend="selectingvisiblefiles"
+>opciones «Mostrar»</link
+> en el menú directorio. Desactivar «Mostrar archivos idénticos» activará «Listar solo deltas» </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>¿Cómo puedo realizar una selección grande en la ventana de entrada de diferencias sin tardar demasiado tiempo? </para
+></question
+><answer
+><para
+>Inicie la selección de la forma habitual (pulse y mantenga pulsado el botón izquierdo del ratón). A continuación utilice las teclas de navegación (p.ej. RéPag, AvPág) manteniendo pulsado el botón izquierdo del ratón (consulte también <link linkend="selections"
+>Seleccionar, copiar y pegar</link
+>). </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Aquí hay mucha información, pero ¿su pregunta no está respondida? </para
+></question
+><answer
+><para
+>Por favor, envíeme su pregunta. Aprecio todos los comentarios. </para
+></answer
+></qandaentry>
+
+</qandaset>
+</chapter>
+
+<chapter id="credits">
+
+<title
+>Créditos y licencia</title>
+
+<para
+>&kdiff3; - Herramienta de comparación y fusionado de archivos y directorios. </para>
+<para
+>Derechos de autor del programa. 2002-2007. Joachim Eibl <email
+>joachim.eibl en gmx.de</email
+>. </para>
+<para
+>Algunas buenas ideas e informes de fallos me llegaron de colegas y de mucha gente a lo largo de la red ¡Gracias! </para>
+
+<para
+>Derechos de autor de la documentación. &copy; 2002-2007. Joachim Eibl <email
+>joachim.eibl en gmx.de</email
+>. </para>
+
+<para
+>Traducido por Santiago Fernández Sancho <email
+>santi@kde-es.org</email
+>.</para
+> 
+&underFDL; &underGPL; </chapter>
+
+<appendix id="installation">
+<title
+>Instalación</title>
+
+<sect1 id="getting-kdiff3">
+<title
+>Cómo obtener &kdiff3;</title>
+
+<para
+>Puede descargar la última versión de &kdiff3; de su página principal: <ulink url="http://kdiff3.sourceforge.net"
+>http://kdiff3.sourceforge.net</ulink
+>. </para
+><para
+>&kdiff3; también está disponible para otras plataformas. Vea la página principal para obtener más detalles. </para>
+
+
+</sect1>
+
+<sect1 id="requirements">
+<title
+>Requerimientos</title>
+
+<para
+>Para utilizar adecuadamente todas las características de &kdiff3;, necesitará &kde; 3.1 o superior. </para
+><para
+>Para obtener información sobre cómo ejecutar &kdiff3; en otras plataformas sin KDE vea la <ulink url="http://kdiff3.sourceforge.net"
+>página principal</ulink
+>. </para
+><para
+>Puede encontrar una lista de cambios en <ulink url="http://kdiff3.sourceforge.net/ChangeLog"
+>http://kdiff3.sourceforge.net/ChangeLog</ulink
+> o en el archivo «ChangeLog» del paquete fuente. </para>
+</sect1>
+
+<sect1 id="compilation">
+<title
+>Compilación e instalación</title>
+
+<para
+>Para compilar en instalar &kdiff3; en un sistema con KDE, teclee lo siguiente en el directorio base de la distribución de &kdiff3;:</para>
+
+<screen
+><prompt
+>%</prompt
+> <userinput
+><command
+>./configure --prefix=<replaceable
+>kde-dir</replaceable
+></command
+></userinput>
+<prompt
+>%</prompt
+> <userinput
+><command
+>make</command
+></userinput>
+<prompt
+>%</prompt
+> <userinput
+><command
+>make</command
+> install</userinput
+>
+</screen>
+<para
+><replaceable
+>kde-dir</replaceable
+> especifica el directorio que contiene KDE en su sistema. Sino está seguro, lea el archivo README para obtener los detalles. </para>
+<para
+>Sino utiliza KDE utilice <command
+>configure</command
+> pero siga las instrucciones para los sistemas que solo tienen Qt en el archivo README.</para>
+<para
+>Puesto que &kdiff3; utiliza <command
+>autoconf</command
+> y <command
+>automake</command
+> no debería tener problemas para compilarlo. Si tiene problemas al ejecutarlo, por favor, informe de ello a las listas de correo de &kde;.</para>
+
+</sect1>
+
+</appendix>
+
+&documentation.index;
+</book>
+
+<!--
+Local Variables:
+mode: sgml
+sgml-minimize-attributes:nil
+sgml-general-insert-case:lower
+sgml-indent-step:0
+sgml-indent-data:nil
+End:
+
+vim:tabstop=2:shiftwidth=2:expandtab
+-->
diff --git a/doc/et/CMakeLists.txt b/doc/et/CMakeLists.txt
new file mode 100644 (file)
index 0000000..23f992e
--- /dev/null
@@ -0,0 +1 @@
+kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/et SUBDIR kdiff3)
diff --git a/doc/et/index.docbook b/doc/et/index.docbook
new file mode 100644 (file)
index 0000000..304addc
--- /dev/null
@@ -0,0 +1,2964 @@
+<?xml version="1.0" ?>
+<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
+  <!ENTITY kdiff3 "<application
+>KDiff3</application
+>">
+  <!ENTITY kappname "&kdiff3;">
+  <!ENTITY package "extragear-utils">
+  <!ENTITY % addindex "IGNORE">
+  <!ENTITY % Estonian  "INCLUDE">
+]>
+
+<book lang="&language;">
+
+<!-- This header contains all of the meta-information for the document such
+as Authors, publish date, the abstract, and Keywords -->
+
+<bookinfo>
+<title
+>&kdiff3; käsiraamat</title>
+
+<authorgroup>
+<author
+><firstname
+>Joachim</firstname
+> <surname
+>Eibl</surname
+> <affiliation
+><address
+> <email
+>joachim.eibl at gmx.de</email>
+</address
+></affiliation>
+</author>
+<othercredit role="translator"
+><firstname
+>Marek</firstname
+> <surname
+>Laane</surname
+> <affiliation
+><address
+><email
+>bald@starman.ee</email
+></address
+></affiliation
+><contrib
+>Tõlge eesti keelde</contrib
+></othercredit
+> 
+</authorgroup>
+
+<copyright>
+<year
+>2002-2007</year>
+<holder
+>Joachim Eibl</holder>
+</copyright>
+<!-- Translators: put here the copyright notice of the translation -->
+<!-- Put here the FDL notice.  Read the explanation in fdl-notice.docbook
+     and in the FDL itself on how to use it. -->
+<legalnotice
+>&FDLNotice;</legalnotice>
+
+<!-- Date and version information of the documentation
+Don't forget to include this last date and this last revision number, we
+need them for translation coordination !
+Please respect the format of the date (YYYY-MM-DD) and of the version
+(V.MM.LL), it could be used by automation scripts.
+Do NOT change these in the translation. -->
+
+<date
+>2007-31-03</date>
+<releaseinfo
+>0.9.92</releaseinfo>
+
+
+<abstract>
+<para
+>&kdiff3; on failide ja kataloogide võrdlemise ja ühendamise vahend, mis <itemizedlist>
+<listitem
+><para
+>võrdleb ja ühendab kaks või kolm sisendfaili või -kataloogi,</para
+></listitem>
+<listitem
+><para
+>näitab erinevusi rida realt ja sümbol sümbolilt (!),</para
+></listitem>
+<listitem
+><para
+>pakub automaatse ühendamise võimalust,</para
+></listitem>
+<listitem
+><para
+>võimaldab kasutada hõlpsasti ühendamiskonflikte lahendada suutvat redaktorit</para
+></listitem>
+<listitem
+><para
+>pakub tänu KIO moodulitele võrguläbipaistvust</para
+></listitem>
+<listitem
+><para
+>võimaldab esile tõsta või peita tühikute või kommentaaride erinevusi</para
+></listitem>
+<listitem
+><para
+>toetab Unicode'i, UTF-8 ja muid kodeeringuid.</para
+></listitem>
+<listitem
+><para
+>näitab erinevusi,</para
+></listitem>
+<listitem
+><para
+>toetab versioonikontrolli võtmesõnade ja ajaloo ühendamist.</para
+></listitem>
+</itemizedlist>
+</para
+><para
+>Käesolev käsiraamat kirjeldab &kdiff3; versiooni 0.9.92. </para>
+</abstract>
+
+<!-- This is a set of Keywords for indexing by search engines.
+Please at least include KDE, the KDE package it is in, the name
+ of your application, and a few relevant keywords. -->
+
+<keywordset>
+<keyword
+>KDE</keyword>
+<keyword
+>kdeextragear</keyword>
+<keyword
+>kdiff3</keyword>
+<keyword
+>diff</keyword>
+<keyword
+>ühendamine</keyword>
+<keyword
+>CVS</keyword>
+<keyword
+>kolmikvõrdlus</keyword>
+<keyword
+>võrdlemine</keyword>
+<keyword
+>failid</keyword>
+<keyword
+>kataloogid</keyword>
+<keyword
+>versioonide kontroll</keyword>
+<keyword
+>kolmikühendamine</keyword>
+<keyword
+>reaerinevused</keyword>
+<keyword
+>sünkroniseerimine</keyword>
+<keyword
+>kpart</keyword>
+<keyword
+>kio</keyword>
+<keyword
+>võrguläbipaistvus</keyword>
+<keyword
+>redaktor</keyword>
+<keyword
+>tühimärgid</keyword>
+<keyword
+>kommentaarid</keyword>
+</keywordset>
+
+</bookinfo>
+
+<chapter id="introduction"
+><title
+>Sissejuhatus</title>
+<sect1 id="why"
+><title
+>Veel üks võrdlemisrakendus?</title>
+<para
+>Teatavasti on olemas üsna mitu graafilist võrdlusrakendust. Miks siis veel &kdiff3;? Siin ma selgitan veidi selle loomise tagamaid. </para
+><para
+>&kdiff3; nägi ilmavalgust sellepärast, et mul oli raskusi ühendamisega. Ühendamine on hädavajalik, kui mingi projekti failide kallal töötab korraga mitu inimest. Ühendamine peab olema mingil määral automatiseeritud, kui arvestada seda, et ühendamisvahend tegeleb nii uute, muudetud failidega (niinimetatud harudega) kui ka algse failiga (niinimetatud baas). Ühendamisvahend valib automaatselt muudatuse, mis mingis harus on tehtud. Kui mitu arendajat on muutnud üht ja sama rida, tuvastab ühendamisvahend konflikti, mis tuleb lahendada käsitsi. </para
+><para
+>Ühendamine oli sellisel juhul keeruline, sest üks arendaja muutis hulk asju ja lisaks sellele parandas veel paljudes kohtades näiteks taanet. Samal ajal muutis teine arendaja samuti üsna palju samas failis ja nii tekkiski korraga mitu ühendamiskonflikti. </para
+><para
+>Vahendid, mida ma toona kasutasin, näitasid ainult muudetud ridu, aga mitte seda, mida neis ridades on muudetud. Ning miski ei viidanud ka sellele, et muudetud on ainult taanet. See muutis ühendamise väikest viisi luupainajaks. </para
+><para
+>Minu jaoks oli see alguspunkt. Esimene versioon oskas näidata erinevusi rea sees ning erinevusi tühimärkides. Hiljem lisandus veel hulk võimalusi, mis ainult suurendasid rakenduse kasulikkust. </para
+><para
+>Nii on näiteks võimalik teksti kiireks võrdlemiseks kopeerida see lõikepuhvrisse ja asetada siis mis tahes võrdlusaknasse. </para
+><para
+>Päris suurt pingutust nõudvaks võimaluseks osutus kataloogide võrdlemine ja ühendamine, mille tulemusena sündis peaaegu juba brauseri mõõtu lisandus. </para
+><para
+>Ma loodan, et &kdiff3; rahuldab ka sinu vajadused. Edu sulle! </para
+><para
+>Joachim Eibl (2003) </para>
+</sect1>
+
+<sect1 id="screenshots"
+><title
+>Pildid ja võimalused</title>
+<para
+>See pilt näitab erinevust kahe tekstifaili vahel</para>
+<para
+>(&kdiff3; üks varasemaid versioone):</para>
+<screenshot
+><mediaobject>
+   <imageobject
+><imagedata fileref="screenshot_diff.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+
+<para
+>Kolmikühendamine on täielikult toetatud. See on abiks juhul, kui kaks inimest on koodi teineteisest sõltumatult muutnud. Algne fail (baas) võimaldab &kdiff3; automaatselt valida korrektsed muudatused. Võrdlusakende all asuv ühendamisredaktor lubab konflikte lahendada ja näitab, milline on sellisel juhul tulemus. Isegi seda tulemust saab kohe edasi redigeerida. See pilt näitab kolme sisendfaili ühendamist: </para
+><para>
+<screenshot
+><mediaobject>
+   <imageobject
+><imagedata fileref="screenshot_merge.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+</para>
+
+<para id="dirmergebigscreenshot"
+>&kdiff3; aitab ka võrrelda ja ühendada terveid katalooge. See pilt näitabki &kdiff3; kataloogide ühendamisel: </para
+><para>
+<screenshot
+><mediaobject>
+   <imageobject
+><imagedata fileref="dirmergebig.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+</para>
+</sect1>
+
+<sect1 id="features"
+><title
+>Veel võimalusi</title>
+<sect2
+><title
+>Võrdlemine rida realt ja märk märgilt</title>
+<para
+>Graafiliselt, värvidega näitab &kdiff3; täpselt, milles peituvad erinevused. Kui tegeled palju koodi (ümber)kirjutamisega, on see kindlasti abiks. </para>
+<screenshot
+><mediaobject>
+   <imageobject
+><imagedata fileref="letter_by_letter.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+</sect2>
+
+<sect2
+><title
+>Tühimärkide erinevuste näitamine</title>
+<para
+>Tühikute ja tabeldusmärkide erinevused näidatakse otseselt ära. Kui read erinevad ainult tühimärkide arvu poolest, võib seda üheainsa pilguga näha vasakul asuval kokkuvõttetulbal (mis tähendab, et ei pruugi enam pead murda, kui muudetud on kõigest taanet). </para>
+<screenshot
+><mediaobject>
+   <imageobject
+><imagedata fileref="white_space.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+</sect2>
+
+<sect2
+><title
+>Kolmikvõrdlus</title>
+<para
+>Kolme faili analüüs ja nende erinevuste näitamine. </para
+><para
+>Vasakpoolne, keskmine ja parempoolne aken kannavad vastavalt nimesid A, B ja C ning neid eristab ka värv (sinine, roheline, magenta). </para
+><para
+>Kui ühes failis on rida sama, teises aga erinev, näitab värv, milline fail on erinev. Punane värv tähendab, et mõlemad ülejäänud failid on erinevustega. </para>
+<screenshot
+><mediaobject>
+   <imageobject
+><imagedata fileref="triple_diff.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+</sect2>
+
+<sect2
+><title
+>Kahe või kolme sisendfaili hõlpus ühendamine</title>
+<para
+>&kdiff3; võib ühendada kaks või kolm sisendfaili, sealjuures võimalikult palju juba automaatselt. Tulemust näidatakse redigeeritavas aknas, kus enamiku konflikte saab lahendada üheainsa hiireklõpsuga: vali nupuribalt A, B või C määramaks, millist allikat kasutada. Valida võib ka enam kui ühe allika. Kuna väljundiaken on samal ajal redaktor, siis saab isegi selliseid konflikte, mille puhul tuleb midagi täiendavalt teha, lahendada ilma mingit muud abivahendit kasutamata. </para>
+</sect2>
+
+<sect2
+><title
+>Ja veel...</title>
+<itemizedlist>
+   <listitem
+><para
+>Kiire liikumine nuppude abil.</para
+></listitem>
+   <listitem
+><para
+>Hiireklõps kokkuvõttetulbal sünkroniseerib kõik aknad ühele positsioonile.</para
+></listitem>
+   <listitem
+><para
+>Valimine ja kopeerimine mis tahes aknast ning asetamine ühendamisaknasse.</para
+></listitem>
+   <listitem
+><para
+>Ülevaatetulp, mis näitab, kus esineb muudatusi ja konflikte.</para
+></listitem>
+   <listitem
+><para
+>Värve saab kohandada just kasutaja maitsele.</para
+></listitem>
+   <listitem
+><para
+>Kohandatav tabeldusmärgi suurus.</para
+></listitem>
+   <listitem
+><para
+>Võimalus lisada tabeldusmärkide asemel tühikud.</para
+></listitem>
+   <listitem
+><para
+>Failide hõlpus avamine dialoogiga või võimalus määrata faile käsureal.</para
+></listitem>
+   <listitem
+><para
+>Stringide otsimine kõigis tekstiakendes (Otsi ehk CTRL+F ja Otsi järgmine ehk F3).</para
+></listitem>
+   <listitem
+><para
+>Iga rea reanumbri näitamine. </para
+></listitem>
+   <listitem
+><para
+>Lõikepuhvri sisu asetamine või teksti lohistamine võrdlemise sisendaknasse.</para
+></listitem>
+   <listitem
+><para
+>Võrguläbipaistvus KIO-moodulite vahendusel.</para
+></listitem>
+   <listitem
+><para
+>Võimalus kasutada KDevelop3 erinevuste näitajana.</para
+></listitem>
+   <listitem
+><para
+>Pikkade ridade murdmine.</para
+></listitem>
+   <listitem
+><para
+>Unicode'i, UTF-8 ja muude kodeeringute toetus.</para
+></listitem>
+   <listitem
+><para
+>Paremalt vasakule kirjutatavate keelte toetus.</para
+></listitem>
+   <listitem
+><para
+>...</para
+></listitem>
+</itemizedlist>
+</sect2>
+</sect1>
+</chapter>
+
+<chapter id="documentation"
+><title
+>Failide võrdlemine ja ühendamine</title>
+
+<sect1 id="commandline"
+><title
+>Käsurea võimalused</title>
+
+<sect2
+><title
+>Kahe faili võrdlemine: </title>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>fail1 fail2</replaceable
+>
+</screen>
+</sect2>
+
+<sect2
+><title
+>Kahe faili ühendamine: </title>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>fail1 fail2</replaceable
+> -m
+   <command
+>kdiff3</command
+> <replaceable
+>fail1 fail2</replaceable
+> -o <replaceable
+>väljundfail</replaceable
+>
+</screen>
+</sect2>
+
+<sect2
+><title
+>Kolme faili võrdlemine: </title>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>fail1 fail2 fail3</replaceable
+>
+</screen>
+</sect2>
+
+<sect2
+><title
+>Kolme faili ühendamine: </title>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>fail1 fail2 fail3</replaceable
+> -m
+   <command
+>kdiff3</command
+> <replaceable
+>fail1 fail2 fail3</replaceable
+> -o <replaceable
+>väljundfail</replaceable
+>
+</screen>
+<para
+>Pane tähele, et <replaceable
+>fail1</replaceable
+> kujutab endast baasi <replaceable
+>fail2</replaceable
+> ja <replaceable
+>fail3</replaceable
+> jaoks. </para>
+</sect2>
+
+<sect2
+><title
+>Erijuhtum: ühenimelised failid </title>
+<para
+>Kui kõigil failidel on sama nimi, aga nad asuvad erinevates kataloogides, võib kirjutamisvaeva vähendada, andes ainult esimese faili nime. Näiteks: </para>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>kataloog1/failinimi kataloog2 kataloog3</replaceable
+>
+</screen>
+</sect2>
+
+<sect2
+><title
+>Kataloogide võrdlemine või ühendamine käsureal: </title>
+<para
+>See käib samamoodi, ainult et tegu on kataloogidega.</para>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>kataloog1 kataloog2</replaceable>
+   <command
+>kdiff3</command
+> <replaceable
+>kataloog1 kataloog2</replaceable
+> -o <replaceable
+>sihtkataloog</replaceable>
+   <command
+>kdiff3</command
+> <replaceable
+>kataloog1 kataloog2 kataloog3</replaceable>
+   <command
+>kdiff3</command
+> <replaceable
+>kataloog1 kataloog2 kataloog3</replaceable
+> -o <replaceable
+>sihtkataloog</replaceable
+>
+</screen>
+<para
+>Kataloogide võrdlemisest ja ühendamisest saab täpsemalt lugeda <link linkend="dirmerge"
+>siit</link
+>.</para>
+</sect2>
+
+<sect2
+><title
+>Muud käsurea võtmed</title>
+<para
+>Kõiki käsurea võtmeid näitab käsk</para>
+<screen
+><command
+>kdiff3</command
+> --help
+</screen>
+<para
+>Näidisväljund:</para>
+<screen
+>Võtmed:
+  -m, --merge               Sisendi liitmine.
+  -b, --base fail           Baasfail. Ühilduvuseks teatud tööriistadega.
+  -o, --output fail         Väljundfail. Eelduseks -m. Nt.: -o newfile.txt
+  --out fail                Taas väljundfail. (Ühilduvuseks teatud tööriistadega.)
+  --auto                    GUI puudub, kui kõik konfliktid on automaatselt lahenevad. (Vajalik on -o file)
+  --qall                    Konflikte ei lahendata automaatselt. (Ühilduvuseks...)
+  --L1 alias1               Sisendfaili 1 (baas) näidatava nime asendus.
+  --L2 alias2               Sisendfaili 2 näidatava nime asendus.
+  --L3 alias3               Sisendfaili 3 näidatava nime asendus.
+  -L, --fname alias         Alternatiivne näidatava nime asendus. Tuleb anda kord iga sisendi kohta.
+  --cs string               Tühistab seadistuse. Tuleb anda eraldi iga seadistuse kohta. Näide: --cs "AutoAdvance=1"
+  --confighelp              Näitab seadistusi ja nende kehtivaid väärtusi.
+  --config fail             Mõne muu seadistustefaili kasutamine.
+</screen>
+<para
+>Võti <option
+>--cs</option
+> võimaldab muuta seadistuse väärtust, mida muidu saab muuta ainult seadistustedialoogi vahendusel. Kuid arvesta, et kui &kdiff3; töö lõpetab, salvestatakse muudetud väärtus. Võtmega <option
+>--confighelp</option
+> näeb saadaolevate seadistuste nimesid ja nende kehtivaid väärtusi.</para>
+<para
+>Võtmega <option
+>--config</option
+> saab määrata mõne muu seadistustefaili kasutamise. Kui kasutad sageli &kdiff3; mitme täiesti erineva seadistusega, lubab see võti variantide vahel hõlpsasti lülituda.</para>
+</sect2>
+<sect2
+><title
+>Eiratavad käsurea võtmed</title>
+<para
+>Paljud soovivad kasutada &kdiff3; mõne versioonikontrollisüsteemiga. Aga kui versioonikontrollisüsteem kutsub &kdiff3; välja käsureaparameetriga, mida &kdiff3; ei tunne, lõpetab &kdiff3; töö veaga. Lõimimisseadistused lubavad määrata kindlaks käsureaparameetrid, mida &kdiff3; peab eirama. Neid näidatakse abiteates umbes nii:</para>
+<screen
+><replaceable
+>miski</replaceable
+>                     Eiratakse (kasutaja määratud).
+</screen>
+<variablelist>
+  <varlistentry
+><term
+><emphasis
+>Eiratavad käsureavõtmed:</emphasis
+></term
+><listitem
+><para
+>Võtmete nimekiri, eraldajaks semikoolon ';'. Kui käsureal esineb mõni määratud võtmetest, eirab &kdiff3; seda ja töötab edasi veast teatamata. (Vaikimisi "u;query;html;abort").</para
+></listitem
+></varlistentry>
+</variablelist>
+<para
+>Kui sellest ei piisa, on soovitatav kirjutada shelliskript, mis seab võtmed vastavusse.</para>
+</sect2>
+
+</sect1>
+
+<sect1 id="opendialog"
+><title
+>Avamisdialoog</title>
+<para
+>Et mitme sisendfaili korral nad lihtsalt peavad olema valitavad, on rakendusel eriline avamisdialoog: </para>
+<screenshot
+><mediaobject>
+<imageobject
+><imagedata fileref="open_dialog.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+<para
+>Avamisdialoog võimaldab redigeerida failinimesid käsitsi, valida need failidialoogis ("Fail...") või kasutada rippmenüüs olevaid viimati kasutatud faile. Kui avad dialoogi uuesti, on seal kirjas parajasti aktiivsed failinimed. Kolmanda sisendvälja täitmine ei ole kohustuslik. Kui "C" tühjaks jätta, analüüsitakse ainult kahe faili erinevusi. </para
+><para
+>Nupule "Kataloog..." klõpsates saab valida kataloogi. Kui A jaoks on määratud kataloog, saab alustada kataloogide võrdlemist-ühendamist. Kui A on fail, kuid B, C või väljund kataloogid, kasutab &kdiff3; A failinime määratud kataloogides. </para
+><para
+>Kui märkida "Ühenda", saab kasutada ka välja "Väljund". Siiski ei ole nõutav väljundfaili nime kohe määrata, selle võib edasi lükata ka salvestamise ajale. </para
+><para
+>Klõps nupule "Seadista..." avab valikute dialoogi, kus saab enne analüüsi midagi muuta, kui pead seda vajalikuks. </para>
+</sect1>
+
+<sect1 id="pasteinput"
+><title
+>Sisendi asetamine ja lohistamine</title>
+<para
+>Vahel võib tekkida vajadus võrrelda tekstilõke, mis ei kujuta endast omaette faile. &kdiff3; võimaldab väga lihtsalt asetada teksti lõikepuhvrist parajasti fookuses olevasse võrdlemise sisendaknasse. Võrdlusanalüüs algab kohe seejärel. Avamisdialoogis ei ole sellisel juhul vajalik määrata faile, vaid selle võib kohe sulgeda klõpsuga nupule "Loobu". </para
+><para
+>Samuti võib kasutada lohistamist: lohista fail failihalduris või valitud tekst redaktorist ning kukuta see võrdlemise sisendaknasse. </para
+><para
+>Milleks see hea on? Mõnikord võib fail sisaldada kaht sarnast funktsiooni, kuid kontrollimine, kui sarnased nad ikkagi on, võib olla päris tülikas, kui sa pead näiteks kõigepealt looma kaks faili ja siis nad mõlemad avama. Nüüd aga on võimalik vajalikud osad lihtsalt kopeerida, asetada ja võrdlemine võibki alata. </para
+><para
+>Märkus: praegu ei ole võimalik midagi &kdiff3;-st välja lohistada, toetatud on ainult lohistamine võrdlemise sisendaknasse. </para
+><para
+>Hoiatus: mõned redaktorid tõlgendavad lohistamist muusse rakendusse mitte kopeerimise, vaid lõikamisena. See tähendab, et sa võid kaotada oma esialgsed andmed. </para>
+</sect1>
+
+<sect1 id="interpretinginformation"
+><title
+>Failide võrdlemine ja info tõlgendamine sisendaknas</title>
+<screenshot
+><mediaobject>
+<imageobject
+><imagedata fileref="screenshot_diff.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+<sect2
+><title
+>Inforiba</title
+><para
+>Iga tekstiakna ülaservas asub "inforiba". Sisendakende inforibal seisab täht "A", "B" või "C", failinimi, sirvimisnupp ning aknas esimesena näha oleva rea number. (Pane tähele, et akent "C" ei pruugi olemas olla.) Iga inforiba on erinevat värvi. </para
+><para
+>Kui valid sirvides mõne muu faili või lõpetad failinime redigeerimise klahvile Enter vajutades, laaditakse uus fail ja võrreldakse seda juba laaditud faili(de)ga. </para
+></sect2
+><sect2
+><title
+>Värvid</title
+><para
+>Kolmele sisendaknale on omistatud tähed "A", "B" ja "C". "A" värviks on sinine, "B" roheline ja "C" magenta. Need on vaikeväärtused, mida saab muuta seadistustemenüüst. </para
+><para
+>Erinevuse avastamisel näitab värv, milline sisendfail erineb. Kui erinevad mõlemad sisendfailid, siis väljendab seda vaikimisi punane värv (seadistuste kohaselt "konflikti värv"). Värviskeem tuleb eriti kasuks kolme sisendfaili korral, mida võib näha järgmises osas (<link linkend="merging"
+>Ühendamine</link
+>). </para
+></sect2
+><sect2
+><title
+>Kokkuvõttetulp</title
+><para
+>Igast tekstist vasakul asub "kokkuvõttetulp". Kui real on erinevusi, näitab kokkuvõttetulp vastavat värvi. Ainult tühimärkide erinevuse korral on kokkuvõttetulbal näha ruuduline muster. See on abiks programmeerimiskeelte korral, kus tühimärkidel ei ole erilist tähendust, võimaldades ühe hetkega tuvastada, kas on ka mingeid olulisi muudatusi (näiteks C/C++ korral on tühimärkidel mingi roll ainult stringides, kommentaarides, preprotsessoris ja veel mõnel äärmiselt esoteerilisel juhtumil). </para
+><para
+>Kokkuvõttetulpa ja teksti lahutav püstjoon on katkestatud, kui sisendfailis pole selles kohas ühtki rida. Reamurdmise lubamisel on püstjoon murtud ridade juures punkteeritud. </para
+></sect2
+><sect2
+><title
+>Ülevaateriba</title
+><para
+>Paremal on otse kerimisriba kõrval näha "ülevaateriba". See näitab kokkusurutult sisendfaili "A" kokkuvõttetulpa. Nii on kõik erinevused ja konfliktid korraga näha. Kui kasutada ainult kaht sisendakent, on kõik erinevused punased, sest iga erinevus on sellisel juhul ju ka konflikt. Must ristkülik tähistab parajasti aknas näha olevat tekstiosa. Väga pikkade sisendfailide korral, kus sisendi ridade arv on suurem kui ülevaatetulba kõrgus pikslites, mahutatakse ühele ülevaatereale mitu sisendirida. Konflikti näitamist eelistatakse sellisel juhul tavalisele erinevusele ning viimast muutmata olekule, nii ei jää kindlasti nägemata ükski erinevus või konflikt. Ülevaateribale klõpsates näidatakse vastavat kohta tekstis. </para
+></sect2
+><sect2 id="manualdiffhelp"
+><title
+>Ridade joondamine käsitsi</title
+><para
+>Vahel seab algoritm kõrvuti valed read. Võib ka juhtuda, et soovid võrrelda mingit tekstilõiku teises failis täiesti teises kohas asuva lõiguga. Sel juhul saad anda &kdiff3;-le käsitsi korralduse teatud read joondada. Märgi esimeses vaates tekst, mida soovid kasutada (tee seda hiirega, nagu kopeerimise puhul), ning seejärel vali käsk "Lisa käsitsi samasus" menüüst "Võrdlemine" (kiirklahv "Ctrl+Y"). Valitud teksti kõrvale ilmub kokkuvõttetulbas oranž riba. Korda sama tegevust teises ja vajaduse korral kolmandaski vaates. &kdiff3; leiab iga toimingu järel automaatselt erinevused ja joondab valitud read. Loomulikult on sel juhul võimalik, et teatud varasemad sobivused kuskil vahepeal enam ei klapi. </para
+><para
+>Praegu ei ole ühendamisel toetatud käsitsi erinevuste kasutamine. </para
+></sect2
+><sect2 id="joinsplitsections"
+><title
+>Erinevuse osade käsitsi ühendamine ja lahutamine</title
+><para
+>Mõnel juhul võib tekstis olla &kdiff3; jaoks liiga vähe või liiga palju erinevaid osasid, et neid ühendada. Sel juhul võib olemasolevad osad liita või lahutada. </para
+><para
+>Uute lõikude lisamiseks vali kõigepealt mõnes sisendaknas read, mis kuuluvad kokku (tee seda samamoodi nagu lõikepuhvrisse kopeerimisel). Seejärel vali käsk "Jaga erinevused valiku juures" menüüst "Ühendamine". Jagatud osad lisatakse valitud teksti esimese rea ette ja viimase rea järele. Kui soovid lisada ainult ühe lõigu, vali tekst mõne muu lõigujagamise alguses. </para
+><para
+>Lõikude liitmiseks ükspuha kumbas sisendaknas vali read lõikudes, mida soovid liita (ühekorraga võib liita mitu lõiku). Seejärel vali käsk "Ühenda valitud erinevused" menüüst "Ühendamine". </para
+></sect2>
+</sect1>
+
+
+<sect1 id="merging"
+><title
+>Ühendamine ja ühendamisväljundi redigeerimisaken</title>
+<screenshot
+><mediaobject>
+<imageobject
+><imagedata fileref="screenshot_merge.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+<para
+>Ka ühendamisväljundi redigeerimisaknal (allpool võrdlemise sisendaknaid) on ülaservas inforiba, kus seisab "Väljund:", failinimi ja "[Muudetud]", kui oled midagi muutnud. Tavaliselt leidub seal automaatse ühendamise vahendite pakutav tekst, kuid tihtipeale ka konfliktid. </para
+><para
+>!!! Salvestamine on võimalik alles siis, kui kõik konfliktid on lahendatud !!! (allesjäänud konfliktide lahendamiseks kasuta nuppe "Liigu eelmisele/järgmisele lahendamata konfliktile") </para
+><para
+>Kui on ainult kaks sisendfaili, on iga erinevus ühtlasi konflikt, mis tuleb käsitsi lahendada. </para
+><para
+>Kolme sisendfaili korral käsitletakse esimest baasina, teist ja kolmandat aga potentsiaalseid muudatusi sisaldavate failidena. Kui muudetud on rida ainult sisendis B või C, aga mitte mõlemas, valitakse automaatselt muudetud allikas. Kui aga nii B kui C on (erinevalt) muutnud üht ja sama rida, märgitakse see konfliktina, mis tuleb käsitsi lahendada. Kui B ja C on ühesugused, aga erinevad A-st, valitakse C. </para
+><sect2
+><title
+>Kokkuvõttetulp</title
+><para
+>Ka ühendamisväljundi redigeerimisaknal on vasakus servas kokkuvõttetulp. See näitab sisendi tähte, millest rida on valitud, või mitte midagi, kui rida on kõigis kolmes allikas võrdne. Konflikti korral on seal küsimärk "?" ning real endal seisab "&lt;Ühendamise konflikt&gt;, kõik ilusasti puust ja punaseks tehtud. Kuna konfliktide lahendamine rida-realt võib võtta päris palju aega, on read rühmitatud gruppidesse, millel on ühesugused erinevuse ja konflikti omadused. Samas on ainult tühimärkide konfliktid eraldatud muudest konfliktidest, et hõlbustada selliste failide ühendamist, kus taanet on muudetud paljudel ridadel. </para
+></sect2
+><sect2 id="synchronise_views"
+><title
+>Aktiivse grupi määramine ning ühendamise ja võrdlemise vaadete sünkroniseerimine</title
+><para
+>Kui klõpsata hiire vasaku nupuga kokkuvõttetulbal mis tahes aknas, siis valitakse selle rea grupp kõigis akendes ning näidatakse antud grupi algust (see võib kaasa tuua automaatse asukohavahetuse akendes, kui grupi algus ei ole parajasti näha). Valitud grupp muutub sellega "aktiivseks grupiks", see tõstetakse esile "praeguse vahemiku tausta värviga" ning tekstist vasakule ilmub must tulbake. </para
+></sect2
+><sect2
+><title
+>Sisendi A, B või C valimine aktiivse konflikti ja redigeerimise jaoks</title
+><para
+>Nupureal menüüriba all on näha kolm sisendi valimise nuppu tähtedega "A", "B" ja "C". Klõpsa ühele neist vastava allika ridade lisamiseks (või eemaldamiseks, kui need on juba lisatud). Mitme sisendi ridade valimiseks klõpsa vajalikele nuppudele vajalikus järjekorras. Kui näiteks soovid, et "B" read oleks väljundis "A" ridadest eespool, klõpsa kõigepealt "B" ja siis "A". </para
+><para
+>Kui kasutad automaatse edasiliikumise võimalust (<link linkend="autoadvance"
+>"Automaatne liikumine järgmisele lahendamata konfliktile pärast allika valimist"</link
+>), tuleb see välja lülitada, enne kui valid mitme sisendi read või soovid pärast valikut ridu redigeerida. Vastasel juhul hüppab &kdiff3; pärast esimese sisendi valimist järgmise konflikti juurde. </para
+><para
+>Sageli on kasulik ühendamise väljundit otseselt redigeerida. Kokkuvõttetulp näitab iga käsitsi muudetud rea juures tähte "m". Kui erinevused paiknevad viisil, et lihtne sisendi valimine ei anna rahuldavat tulemust, võid märkida vajaliku teksti, selle <link linkend="selections"
+>kopeerida ja asetada</link
+> otse ühendamise väljundisse. </para
+><para
+>Vahel võib juhtuda, et rida eemaldatakse automaatse liitmisega või redigeerides. Kui gruppi ei ole jäänud enam ühtki rida, ilmub sellele reale tekst &lt;Lähterida puudub&gt;. See on kõigest grupi kohatäitja juhuks, kui muudad meelt ja valid taas mõne allika. Seda teksti ei ole näha ei salvestatud failis ega kopeeritavates/asetatavates valikutes. </para
+><para
+>Tekst "&lt;Ühendamise konflikt&gt;" seevastu liigub küll lõikepuhvrisse, kui valida ja kopeerida/asetada sellist rida sisaldav tekst. Seepärast tasuks sellise võimalusega ettevaatlik olla. </para
+></sect2
+><sect2
+><title
+>Sisendi A, B või C valimine kõigile konfliktidele</title
+><para
+>Tavaline ühendamine lahendab lihtsad konfliktid automaatselt. Menüü "Ühendamine" pakub lisaks mõningaid toiminguid muude levinumate vajaduste rahuldamiseks. Kui sul tuleb enamasti konfliktide puhul valida üks ja sama baas, võid valida kõikjal "A", "B" või "C" või ainult veel lahendamata konfliktidele või ainult lahendamata tühimärkide konfliktidele. Kui soovid lahendada iga erinevuse ise käsitsi, võid lülitada sisse võimaluse "Määra erinevused konfliktideks". Kui soovid aga taas panna &kdiff3; automaatselt konflikte lahendama, vali "Lahenda automaatselt lihtsad konfliktid". Seejärel alustab &kdiff3; uuesti ühendamist. Kui selle käigus muudetakse midagi, mida oled varem muutnud, küsib &kdiff3; enne jätkamist, mida soovid teha. </para
+><para
+>Märkus: kui valid lahendamata tühimärkide konfliktide baasi ning võimalus "Numbreid ignoreeritakse" või "C/C++ kommentaare ignoreeritakse" on sisse lülitatud, koheldakse muutusi numbrites või kommentaarides samuti tühimärkidena. </para
+></sect2
+><sect2 id="vcskeywordsmergesupport"
+><title
+>Versioonikontrolli võtmesõnade ja ajaloo (logi) automaatne ühendamine</title
+><para
+>Paljud versioonikontrollisüsteemid toetavad failis spetsiaalsete võtmesõnade kasutamist (nt. "&#36;Date&#36;", "&#36;Header&#36;", "&#36;Author&#36;", "&#36;Log&#36;" jne.). Väljavõtte tegemise ajal muudab versioonikontrollisüsteem neid ridu. Näiteks "&#36;Date&#36;" asemele tuleb "&#36;Date: 2005/03/22 18:45:01 &#36;".  Et selline rida on faili iga versiooni puhul erinev, on ühendamise ajal vajalik käsitsi sekkumine. </para
+><para
+>&kdiff3; võimaldab neid automaatselt ühendada. Lihtsate ridade puhul, mis sobivad valikuga "Automaatse ühendamise regulaaravaldis" kõigis sisendfailides, valib &kdiff3; rea B-st või, kui see on olemas, C-st. (Lisaks on vajalik, et mainitud read oleks võrdluses kõrvuti ja eelmine rida ei sisaldaks konflikti.) Automaatse ühendamise saab sooritada kohe ühendamise alates (selleks peab olema sisse lülitatud "Regulaaravaldisega automaatne ühendamine ühendamise alustamisel") või hiljem menüükäsuga "Käivita regulaaravaldisega automaatne ühendamine". </para
+><para
+>Automaatne ühendamine on toetatud ka versioonikontrolli ajaloo ehk logi puhul. Ajaloo automaatse ühendamise võib käivitada ühendamise alustamisel, kui sisse on lülitatud "Versioonikontrolli ajaloo ühendamine ühendamise alustamisel", või hiljem menüükäsuga "Lahenda automaatselt ajalookonfliktid". </para
+><para
+>Tavaliselt algab versioonikontrolli ajalugu reaga, kus seisab võtmesõna "&#36;Log&#36;". See peab sobima kokku valikuga "Ajaloo alguse regulaaravaldis". &kdiff3; tuvastab seejärel, millised järgnevad read kuuluvad ajalukku, anaküüsides juhtmärke enne võtmesõna "&#36;Log&#36;". Kui samasugused "kommentaari sissejuhatuse" märgid esinevad ka järgnevate ridade alguses, kuuluvad need ajalukku. </para
+><para
+>Iga väljavõtte ajal kirjutab versioonikontrollisüsteem unikaalse rea, mis määrab ära versiooni, kuupäeva ja kellaaja, sellele järgnevad kasutaja kommentaariga read. Need moodustavadki ühe ajalookirje. Ajaloosektsioon kasvab iga versioonikontrolli toiminguga, kusjuures viimane kirje on alati kõige ees (otse ajaloo algusrea järel). </para
+><para
+>Paralleelse arendustegevuse ajal võivad kaks või enam arendajat failiga tegelda, millisel juhul ühendamise ajalugu sisaldab mitut kirjet, mis harude ühendamisel satuvad konflikti. Et nende ühendamine võib olla üsna vaevaline, toetab &kdiff3; kaht strateegiat: mõlema/kõigi arendajate ajaloo lisamine etteotsa või ajaloo sorteerimine kasutaja määratud võtme järgi. </para
+><para
+>Esimene variant on kõige lihtsam. &kdiff3; peab lihtsalt tuvastama, millised read moodustavad ühe ajalookirje. Enamik versioonikontrollisüsteeme lisab iga ajalookirje järele tühja rea. Kui muid tühje ridu pole, piisab sellest &kdiff3;-le. Sel juhul olgu "Ajaloo alguse regulaaravaldis" lihtsalt tühi. Kui tühjast reast ainuüksi ei piisa, võid koostada regulaaravaldise, mis tuvastab ajalookirje alguse. </para
+><para
+>Pane tähele, et &kdiff3; eemaldab topeltajalookirjed. Kui sisendfailis esineb ajalookirje mitmel korral, siis väljundisse jääb alles ainult üks kirje. </para
+><para
+>Kui soovid ajalugu sortida, tuleb määrata sorteerimisvõti. Kasuta väljal "Ajaloo alguse regulaaravaldis" sulge regulaaravaldise nende osade rühmitamiseks, mida hiljem kasutada sorteerimisvõtmena. Seejärel määra "ajaloo sortimisvõtmete järjekord", milles komaga (",") eraldatud arvud viitavad grupi positsioonile regulaaravaldises. </para
+><para
+>See ei pruugi otsekohe õnnestuda, mistõttu tasub regulaaravaldist ja võtme genereerimist testida spetsiaalses dialoogis, mis avaneb klõpsuga nupule "Regulaaravaldiste test". </para
+><para
+>Näide: oletame, et ajalugu näeb välja nii: <screen>
+/**************************************************************************
+** HISTORY:    &#36;Log: \toms_merge_main_view\MyApplication\src\complexalgorithm.cpp &#36;
+**
+**     \main\integration_branch_12   2 Apr 2001 10:45:41   tom
+**  Merged branch simon_branch_15.
+**
+**     \main\henry_bugfix_branch_7\1   30 Mar 2001 19:22:05   henry
+**  Improved the speed for subroutine convertToMesh().
+**  Fixed crash.
+**************************************************************************/
+</screen
+> Ajaloo algusrida vastab regulaaravaldisele ".*\&#36;Log.*\&#36;.*". Sellele järgnevad ajalookirjed. </para
+><para
+>Real võtmesõnaga "&#36;Log&#36;" seisab alguses kaks "*", millele järgneb tühik. &kdiff3; hindab esimese mittetühimärgist stringi "kommentaari alguseks" ning eeldab, et ajalugu lõpeb esimesel real, millel kommentaari algust enam ei seisa. Näites lõpeb viimane rida stringiga, mille alguses on samuti kaks "*", kuid tühimärgi asemel järgneb veel rida märke "*". Seetõttu hinnatakse seda ajaloo lõpuks. </para
+><para
+>Kui ajaloo sortimist pole vaja, siis võib ajalookirje alguse regulaaravaldis näha välja umbes järgmine (rida on jagatud kaheks, sest see ei mahu muidu ära). <screen>
+\s*\\main\\\S+\s+[0-9]+ (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)
+ [0-9][0-9][0-9][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9]\s+.*
+</screen
+> Täpsemalt kõneleb regulaaravaldistest <ulink url="http://doc.trolltech.com/3.3/qregexp.html#details"
+> Trolltechi regulaaravaldiste dokumentatsioon</ulink
+>. Pane tähele, et "\s" (väike "s") on suvaline tühik, "\S" (suur "S") iga mittetühik. Meie näites sisaldab ajalookirje algul versiooniteavet vastavalt regulaaravaldisele "\\main\\\S+", kuupäeva päevaga  "[0-9]+", kuuga "(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)" ja aastaga "[0-9][0-9][0-9][0-9]", kellaaega "[0-9][0-9]:[0-9][0-9]:[0-9][0-9]" ning lõpuks ka arendaja kasutajanime ".*". </para
+><para
+>Pane tähele, et kommentaari alguse märgid (näites  "**") eemaldab &kdiff3; juba enne otsingu alustamist, mistõttu regulaaravaldise alguses seisab nulli või enama tühimärgi vaste "\s*". Et kommentaarimärgid võivad failiti erineda (nt. C/C++ kasutab teistsuguseid kommentaarimärke kui Perli skript), kannab &kdiff3; ise alguses seisvate kommentaarimärkide eest hoolt ja sul pole vaja neid regulaaravaldises määrata. </para
+><para
+>Kui soovid ajalugu sortida, tuleb arvutada sortimisvõti. Selleks tuleb regulaaravaldise vajalikud osad sulgude abil rühmitada (need sulud võivad avaldisse jääda ka siis, kui ajaloo sortimine välja lülitatakse).<screen>
+\s*\\main\\(\S+)\s+([0-9]+) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)
+ ([0-9][0-9][0-9][0-9]) ([0-9][0-9]:[0-9][0-9]:[0-9][0-9])\s+(.*)
+</screen
+> Sulgudes on nüüd 1) versiooniteave, 2) kuupäev, 3) kuu, 4) aasta, 5) kellaaeg, 6) nimi. Aga kui me soovime sortida kuupäeva ja kellaaja järgi, tuleb luua võti, milles elemendid on teises järjekoras: esimesena aasta, siis kuu, päev, kellaaaeg, versiooniteave ja nimi. Sestap tuleb sortimisvõtme järjekorraks määrata "4,3,2,5,1,6". </para
+><para
+>Et kuunimed ei ole sortimiseks kuigi head ("Apr" oleks esimene), tuvastab &kdiff3; kuude järjekorra ja kasutab nende nime asemel hoopis järjekorranumbrit ("Apr"->"04"). Kui leitakse number, teisendatakse see neljakohaliseks, lisades sortimise huvides ette nullid. Lõpuks näeb esimese ajalookirje algusrea sortimisvõti välja järgmine: <screen
+>2001 04 0002 10:45:41 integration_branch_12   tom 
+</screen>
+</para
+><para
+>Täpsemalt räägib sellest ka osa <link linkend="mergeoptions"
+>Ühendamise seadistused</link
+>. </para>
+</sect2>
+</sect1>
+
+<sect1 id="navigation"
+><title
+>Liikumine ja redigeerimine</title>
+<para
+>Enamasti saab liikuda kerimisribade ja hiirega, kuid soovi korral on võimalik liikuda ka klahvidega. Kui klõpsata mis tahes aknasse, saab sarnaselt muude rakendustega kasutada noolenuppe, Page Up ja Page Down, Home, End, Ctrl+Home, Ctrl+End. Liikumiseks saab kasutada ka sisendafailide kerimisribast paremal pool asuvat ülevaateriba, mis võimaldab vajalikule kohale liikuda klõpsuga riba vajalikule kohale. </para
+><para
+>Üles-alla kerimiseks saab kasutada ka hiireratast. </para
+><para
+>Ühendamisväljundi redigeerimisaknas saab samuti kasutada kõiki tavalisi teksti redigeerimisel kasutatavaid klahve. Klahviga Insert saab lülitada lisamis- ja ülekirjutamisrežiimi (vaikimisi kehtib lisamisrežiim). </para
+><para
+>Klõps hiire vasaku nupuga mis tahes kokkuvõttetulbal sünkroniseerib kõik aknad, nii et neid näitavad üht ridadegruppi (seda selgitas lähemalt osa <link linkend="synchronise_views"
+>Grupi määramine ning ühendamis- ja võrdlemisvaate asukoha sünkroniseerimine</link
+>). </para
+><para
+>Nupureal on üheksa liikumisnuppu, millega saab hüpata aktiivsele/esimesele/viimasele erinevusele, eelmisele/järgmisele erinevusele (Ctrl+Nool üles/Ctrl+Nool alla), eelmisele/järgmisele konfliktile (Ctrl+Page Down/Ctrl+Page Up) või eelmisele/järgmisele lahendamata konfliktile. Pane tähele, et &kdiff3; jaoks jääb "konflikt", mida ei lahendata automaatselt ühendamise alguses, "konfliktiks" ka pärast selle käsitsi lahendamist. Seepärast on ka eristatud "lahendamata konfliktid". </para>
+<sect2 id="autoadvance"
+><title
+>Automaatne edasiliikumine</title>
+<para
+>Lisaks neile on nupp "Pärast allikavalikut liigutakse automaatselt järgmisele lahendamata konfliktile". Seda sisse lülitades hüppab &kdiff3; allika valimisel automaatsel selles leiduval lahendamata konfliktile. See on abiks, kui soovid tavaliselt valida ainult ühe allika. Kui sul läheb vaja mõlemat allikat või soovid pärast valimist tegelda redigeerimisega, on tõenäoliselt mõttekas see välja lülitada. Enne järgmisele lahendamata konfliktile liikumist näitab &kdiff3; hetkeks langetatud valiku toimet. Kui kaua see näitamine kestab, saab määrata seadistustes: "automaatse edasiliikumise viivitus" on võimalik määrata millisekundites 0 ja 2000 vahel. Vihje: kas oled tüdinud kogu aeg klõpsamast? Kasuta siis pisikest automaatse edasiliikumise viivitust ning kiirklahve Ctrl+1/2/3 A/B/C valimiseks. </para>
+</sect2>
+</sect1>
+
+<sect1 id="selections"
+><title
+>Valimine, kopeerimine ja asetamine</title>
+<para
+>Sisendaknas kursorit ei näidata, seepärast tuleb valimine teha hiirega, klõpsates vasaku nupuga valiku alguses, hoides nuppu all ja liikudes valiku lõppu, pärast mida võib nupu vabastada. Sõna saab valida ka sellel topeltklõpsu tehes. Ühendamisväljundi redigeerimisaknas saab valida ka klaviatuuri abil, hoides all klahvi Shift ja liikudes noolenuppudega. </para
+><para
+>Kui valik ulatub üle nähtava ala, võib viia hiire üle akna piirde, millisel juhul &kdiff3; kerib hiirekursori suunas. </para
+><para
+>Väga suure valiku korral võib kasutada ka hiirenuppu all hoides navigeerimisklahve. Näiteks konkreetsesse kohta jõudmiseks võib tarvitada klahve Page Up ja Page down. Õigesse kohta jõudes vabasta hiirenupp. </para
+><para
+>Aktiivses aknas kõige valimiseks kasuta menüükäsku "Redigeerimine"->"Vali kõik" (Ctrl+A). </para
+><para
+>Lõikepuhvrisse kopeerimiseks tuleb vajutada nuppu "Kopeeri" (Ctrl+C või Ctrl+Insert). Lisaks sellele on olemas ka võimalus "Valiku automaatne kopeerimine". Selle sisselülitamisel kopeeritakse kõik, mida oled valinud, automaatselt ning sul puudub vajadus anda mis tahes moel kopeerimiskäsku. Kuid ole selle võimalusega ettevaatlik, sest nii võib kogemata üle kirjutada vajaliku lõikepuhvri sisu. </para
+><para
+>"Lõika" (Ctrl+X või Shift+Delete) kopeerib valiku lõikepuhvrisse ja kustutab selle failist. </para
+><para
+>"Aseta" (Ctrl+V või Shift+Insert) lisab lõikepuhvris oleva teksti kursori asukohta või asendab lõikepuhvri sisuga parajasti valitud teksti. Kui asetad lõikepuhvri sisu ükspuha millisesse sisendaknasse, näidatakse seda seal otsekohe ja alustatakse aega viitmata uuesti võrdlemist. See on kasulik siis, kui soovid kiiresti kuskilt teksti võtta ja võrrelda seda millegi muuga, ilma et peaksid eelnevalt faili looma hakkama. </para>
+</sect1>
+
+<sect1 id="saving"
+><title
+>Salvestamine</title>
+<para
+>Salvestamine on võimalik ainult siis, kui kõik konfliktid on lahendatud. Kui fail on juba olemas ning sisse on lülitatud valik "Failidest tehakse varukoopia", antakse olemasolevale failile laiend ".orig". Kui selline peaks juba olemas olema, see kustutatakse. Kui väljud või oled alustanud uud võrdlusanalüüsi ning andmeid ei ole veel salvestatud, pärib &kdiff3; sinu käest, kas soovid salvestada, loobuda või jätkata ilma salvestamata (&kdiff3; ei salvesta andmeid seesmiselt, nii et kui &kdiff3; väljastpoolt "tappa", lähevad andmed kaotsi). </para
+><para
+>Realõpud salvestatakse vastavalt operatsioonisüsteemi tavale. UNIXi korral lõpetab rea reavahetusmärk "\n", Win32 süsteemides kelgu tagastamise sümbol pluss reavahetusmärk "\r\n". &kdiff3; ei säilita sisendfailide realõppe, mis ühtlasi tähendab, et &kdiff3; kasutamisel binaarfailidega peaks olema erakordselt ettevaatlik. </para>
+</sect1>
+
+<sect1 id="find"
+><title
+>Stringide otsimine</title>
+<para
+>Stringe saab otsida &kdiff3; kõigis tekstiakendes. Redigeerimismenüü käsk "Otsi..." (Ctrl+F) avab dialoogi, kus saab määrata, mida otsida. Samuti saab valida, millises aknas otsida. Otsimine algab alati teksti algusest. Käsk "Otsi järgmine" (F3) viib otsitava stringi järgmise esinemise juurde (kui seda muidugi on). Kui valid otsimise mitmes aknas, otsitakse esmalt ülalt alla läbi esimene aken, seejärel taas ülalt alla teine aken jne. </para>
+</sect1>
+
+<sect1 id="printing"
+><title
+>Trükkimine</title>
+<para
+>&kdiff3; toetab tekstifailide erinevuste trükkimist. Menüüs fail leiduv käsk "Trüki..." (Ctrl+P) avab dialoogi, kus saab valida printeri ja muuta teatud valikuid. </para
+><para
+>Mitmel moel saab kindlaks määrata, millist vahemikku trükkida. Et erinevates operatsioonisüsteemides on trükkimisdialoog erinev, siis on ka trükkimisvahemiku määramises teatud erinevusi. </para>
+<variablelist>
+   <varlistentry
+><term
+>Kõik:</term
+><listitem
+><para
+>Trükitakse kõik.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+>Aktiivne:</term
+><listitem
+><para
+>Trükitakse lehekülg alates aknas esimesena näha olevast reast (süsteemides, kus seda valikut pole, saab sama tulemusi, kui määrata trükkimiseks lehkülg 10000).</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+>Valik:</term
+><listitem
+><para
+>Enne trükkimiskäsku tuleb sel juhul valida mõnes sisendaknas hiirega tekst (nagu kopeerimisel), mis paneb paika trükitava valiku algus- ja lõpurea. Kui üheski sisendaknas pole midagi valitud, ei saa seda võimalust kasutada (süsteemides, kus see valik üldse puudub, saab sama tulemuse, kui määrata trükkimiseks lehekülg 9999).</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+>Vahemik:</term
+><listitem
+><para
+>Trükitakse määratud esimesest kuni määratud viimase leheküljeni. </para
+></listitem
+></varlistentry>
+</variablelist>
+<para
+>Ülejäänud trükkimisvalikud on tavapärasemad: </para
+><itemizedlist>
+   <listitem
+><para
+>Font, fondi suurus</para
+></listitem>
+   <listitem
+><para
+>Reanumbrite näitamine</para
+></listitem>
+   <listitem
+><para
+>Reamurdmine</para
+></listitem>
+   <listitem
+><para
+>Värvid</para
+></listitem>
+   <listitem
+><para
+>jne.</para
+></listitem>
+</itemizedlist>
+<para
+>Trükkida on soovitatav rõhtpaigutusega. </para>
+</sect1>
+
+<sect1 id="options"
+><title
+>Valikud</title>
+<para
+>Valikud ja viimati avatud failide nimekiri salvestatakse alati, kui rakendusest väljud, ning laaditakse uuesti rakenduse taaskäivitamisel (menüükäsk Seadistused -> &kdiff3; seadistamine...) </para>
+<sect2
+><title
+>Font</title>
+<para
+>Valib fikseeritud laiusega fondi (mõnes süsteemis pakub dialoog ka muutuva laiusega fonti, kuid seda ei tasuks kasutada). </para>
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Kaldkiri erinevustele:</emphasis
+></term
+><listitem
+><para
+>Selle valimisel näidatakse teksti erinevusi valitud fondi kaldkirjas. Kui valitud font kaldkirja ei toeta, ei tee see midagi.</para>
+   </listitem
+></varlistentry>
+</variablelist>
+</sect2>
+
+<sect2
+><title
+>Värvid</title>
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Esiplaani värv:</emphasis
+></term
+><listitem
+><para
+>Tavaliselt must. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Tausta värv:</emphasis
+></term
+><listitem
+><para
+>Tavaliselt valge. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Erinevuse tausta värv:</emphasis
+></term
+><listitem
+><para
+>Tavaliselt helehall. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Värv A:</emphasis
+></term
+><listitem
+><para
+>Tavaliselt tumesinine. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Värv B:</emphasis
+></term
+><listitem
+><para
+>Tavaliselt tumeroheline. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Värv C:</emphasis
+></term
+><listitem
+><para
+>Tavaliselt tume magenta. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Konflikti värv:</emphasis
+></term
+><listitem
+><para
+>Tavaliselt punane.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Praeguse vahemiku tausta värv:</emphasis
+></term
+><listitem
+><para
+>Tavaliselt helekollane.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Praeguse vahemiku erinevuse tausta värv:</emphasis
+></term
+><listitem
+><para
+>Tavaliselt tumekollane.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Käsitsi määratud samasuse vahemiku värv:</emphasis
+></term
+><listitem
+><para
+>Tavaliselt oranž.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Uusima faili värv kataloogide võrdlemisel:</emphasis
+></term
+><listitem
+><para
+>Tavaliselt roheline.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Vanima faili värv kataloogide võrdlemisel:</emphasis
+></term
+><listitem
+><para
+>Tavaliselt punane.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Keskmise vanusega faili värv kataloogide võrdlemisel:</emphasis
+></term
+><listitem
+><para
+>Tavaliselt tumekollane.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Puuduvate failide värv kataloogide võrdlemisel:</emphasis
+></term
+><listitem
+><para
+>Tavaliselt must.</para
+></listitem
+></varlistentry>
+</variablelist>
+<para
+>Kataloogide võrdlemise värvide muutmine rakendub alles järgmise kataloogide võrdlemise ajal. </para>
+<para
+>Ainult 16 või 256 värviga süsteemides ei pruugi mõned värvid puhtal kujul saadaval olla. Sellistes süsteemides valib puhta värvi nupp "Vaikeväärtused". </para>
+</sect2>
+
+<sect2
+><title
+>Redaktori seadistused</title>
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>TAB lisab tühikud:</emphasis
+></term
+><listitem
+><para
+>Kui see ei ole sees, lisatakse tabeldusklahvile vajutades tabeldusmärk, kui see on sees, vastav kogus tühikuid.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>TABi suurus:</emphasis
+></term
+><listitem
+><para
+>Kohandatav oma maitsele. Vaikimisi 8. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Automaatne taandus:</emphasis
+></term
+><listitem
+><para
+>Vajutades klahvile Enter, kasutatakse uuel real eelmise rea taandust. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Valiku automaatne kopeerimine:</emphasis
+></term
+><listitem
+><para
+>Iga tekstivalik kopeeritakse otsekohe lõikepuhvrisse, ilma et oleks vaja anda spetsiaalset kopeerimiskäsku. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Realõpu stiil:</emphasis
+></term
+><listitem
+><para
+>Salvestamisel saab valida, millist realõpu stiili eelistada. Vaikimisi on see valitud operatsioonisüsteemi põhjal. </para
+></listitem
+></varlistentry>
+</variablelist>
+</sect2>
+
+<sect2 id="diffoptions"
+><title
+>Erinevuse seadistused</title>
+<para
+>Faile võrreldes püüab &kdiff3; kõigepealt seada kokku read, mis on kõigis sisendfailides ühtmoodi. Ainult sel etapil võib ta eirata tühimärke. Teisel etapil võrreldakse iga rida ning nüüd võetakse arvesse ka tühimärgid. Tühimärke ei ignoreerita ka ühendamisel. </para>
+
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Säilitatakse reavahetus:</emphasis
+></term
+><listitem
+><para
+>Mõned redaktorid mõnes süsteemis salvestavad iga rea lõpu kelgu tagastuse märgiga '\r' ning reavahetusmärgiga '\n', teised aga ainult reavahetusmärgiga '\n'. Üldiselt &kdiff3; ignoreerib kelgu tagastuse sümbolit, kuid sellisel juhul võivad tegelikult erineva suurusega failid paista võrdlemisel ühesugustena. Selle valiku sisselülitamisel on kelgutagatusmärgid näha, kuid neid koheldakse tühimärkidena. Ühendamise ajal tuleb see võimalus välja lülitada. Vaikimisi on väljas.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Numbreid ignoreeritakse:</emphasis
+></term
+><listitem
+><para
+>Vaikimisi väljas. Numbrilisi sümboleid ('0'-'9', '.', '-') ignoreeritakse analüüsi esimeses, üldvõrdlevas osas. Lõpptulemuses näidatakse siiski erinevusi, aga neid käsitletakse kui tühimärke. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>C/C++ kommentaare ignoreeritakse:</emphasis
+></term
+><listitem
+><para
+>Vaikimisi väljas. Muudatusi kommentaarides tõlgendatakse tühimärkide muudatustena. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Tõstu ignoreeritakse:</emphasis
+></term
+><listitem
+><para
+>Vaikimisi väljas. Märkide tõstu erinevusi (nt 'A' ja 'a') tõlgendatakse nagu tühimärkide muudatusi. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Eeltöötluse käsk:</emphasis
+></term
+><listitem
+><para
+>Vaata <link linkend="preprocessors"
+>järgmist osa</link
+>. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Ridade sobivuse eeltöötluse käsk:</emphasis
+></term
+><listitem
+><para
+>Vaata <link linkend="preprocessors"
+>järgmist osa</link
+>. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Karm uurimine:</emphasis
+></term
+><listitem
+><para
+>Püüab tuvastada ka kõige pisemad erinevused. Vaikimisi sees. Ilmselt on sellest rohkem kasu keerulisemate ja suurte failide korral. Aga mõistagi on see väga suurte failide puhul ka väga aeglane. </para
+></listitem
+></varlistentry>
+</variablelist>
+</sect2>
+
+<sect2 id="mergeoptions"
+><title
+>Ühendamise seadistused</title>
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Automaatse edasiliikumise viivitus (ms):</emphasis
+></term
+><listitem
+><para
+>Kui automaatne edasiliikumine on sisse lülitatud, määrab see võimalus, kui kaua näidatakse valiku tulemust, enne kui hüpatakse järgmisele lahendamata konfliktile. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Tühimärkide käsitlemine 2/3 faili ühendamisel:</emphasis
+></term
+><listitem
+><para
+>Lahendab automaatselt kõik tühimärkide konfliktid määratud faili valides (vaikimisi käsitsivalik). Kasulik, kui tühimärgid pole olulise tähtsusega. Kui seda läheb ainult mõnikord vaja, kasuta parem ühendamismenüü käske "Vali A/B/C kõigi lahendamata tühimärgikonfliktide korral". Pane tähele, et kui sees on "Numbreid ignoreeritakse" või "C/C++ kommentaare ignoreeritakse", rakendub see automaatne valik ka kõigile numbrite või kommentaaride konfliktidele. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Automaatühendamise regulaaravaldis:</emphasis
+></term
+><listitem
+><para
+>Regulaaravaldis ridadele, mille puhul &kdiff3; peab automaatselt valima allika. Vt. ka <link linkend="vcskeywordsmergesupport"
+>Automaatne ühendamine...</link
+> </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Regulaaravaldisega automaatühendamine ühendamise alustamisel:</emphasis
+></term
+><listitem
+><para
+>Valimise korral käivitab &kdiff3; ühendamise alustamisel automaatse ühendamise, kasutades selleks "automaatühendamise regulaaravaldist". </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Ajaloo alguse regulaaravaldis:</emphasis
+></term
+><listitem
+><para
+>REgulaaravaldis ajalookirje alguse tuvastamiseks. Tavaliselt sisaldab see rida võtmesõna "&#36;Log&#36;". Vaikimisi: ".*\&#36;Log.*\&#36;.*" </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Ajalookirje alguse regulaaravaldis:</emphasis
+></term
+><listitem
+><para
+>Ühendamise ajaloo kirje koosneb mitmest reast. Siin saab koostada regulaaravaldise, mis tuvastab esimese rea (ilma alustavate kommentaarimärkideta). Sulgudega saab rühmitada võtmed, mida soovid kasutada sortimisel. Tühjaksjätmise korral eeldab &kdiff3;, et ajalookirjeid eraldavad tühjad read. Vaata ka <link linkend="vcskeywordsmergesupport"
+>Automaatne ühendamine...</link
+> </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Ajaloo ühendamise sortimine:</emphasis
+></term
+><listitem
+><para
+>Versioonikontrolli ajaloo sortimise lubamine. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Ajalookirje alguse sortimisvõtmete järjekord:</emphasis
+></term
+><listitem
+><para
+>Ajalookirje alguse tuvastamiseks kasutatavas regulaaravaldises võib tarvitada sulge, millega rühmitatakse sortimiseks pruugitavad võtmed. Võtmete järjekorra määramiseks (need kujutavad endast arve alates 1) kirjuta nad komaga eraldatult (nt. "4,5,6,1,2,3,7"). Kui see andmata jätta, ei sordita. Vaata ka <link linkend="vcskeywordsmergesupport"
+>Automaatne ühendamine...</link
+> </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Versioonikontrolli ajaloo ühendamine ühendamise alustamisel:</emphasis
+></term
+><listitem
+><para
+>Sisselülitamisel käivitab &kdiff3; ühendamise alustamisel eelnevalt määratud tingimustel automaatse ajaloo ühendamise. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Ajalookirjete maks. arv:</emphasis
+></term
+><listitem
+><para
+>&kdiff3; kärbib ajaloo, säilitades ainult määratud hulga kirjeid. Kärpimise vältimiseks määra väärtuseks -1. Vaikimisi: -1. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Regulaaravaldiste test</emphasis
+></term
+><listitem
+><para
+>See nupp avab dialoogi, kus saab sisestatud regulaaravaldist testida ja parandada. Kopeeri lihtsalt vajalikud andmed oma failidest siia. "Sobivuse tulemused" näitavad kohe, kas avaldis sobib või mitte. "Sorteerimisvõtme tulemus" näitab ajaloo ühendamise sortimisel kasutatavat võtit. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Ebaolulise ühendamise käsk:</emphasis
+></term
+><listitem
+><para
+>Siin saab määrata käsu, mis antakse siis, kui &kdiff3; avastab kolme faili ühendamisel, et fail B ei sisalda mingeid olulisi andmeid, mida poleks juba failis C. Käsk kutsutakse välja kolmest failinimest parameetriga. Andmeid, mis sobivad "automaatse ühendamise regulaaravaldisega" või ajalooga, ei peeta oluliseks. </para
+></listitem
+></varlistentry>
+</variablelist>
+
+</sect2>
+
+<sect2
+><title
+>Kataloogide ühendamine</title>
+<para
+>Need valikud käivad kataloogide uurimise ja nende ühendamise kohta, millest täpsemalt räägib osa <link linkend="dirmergeoptions"
+>Kataloogide võrdlemise ja ühendamise seletused</link
+>. </para
+><para
+>Siiski on üks valik, mis käib ka üksikfailide salvestamise kohta: </para>
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Failidest tehakse varukoopia:</emphasis
+></term
+><listitem
+><para
+>Kui faili salvestamisel on sellest olemas vanem versioon, antakse viimasele laiend ".orig". Kui peaks olemas olema ka samanimeline varasem fail laiendiga ".orig", siis see kustutatakse. </para
+></listitem
+></varlistentry>
+</variablelist>
+</sect2>
+
+<sect2
+><title
+>Riigi ja keele valikud</title>
+  <variablelist>
+    <varlistentry
+><term
+><emphasis
+>Keel:</emphasis
+></term
+><listitem
+><para
+>Kasutajaliidese keele määramine. Selle muutmine ei mõjuta töötavat rakendust. Keele muutmiseks tuleb &kdiff3; sulgeda ja uuesti käivitada. (See valik ei ole kasutatav &kdiff3; KDE versioonis, sest seal saab keele määrata KDE üldises seadistuses.) </para
+></listitem
+></varlistentry>
+    <varlistentry
+><term
+><emphasis
+>Kõikjal kasutatakse kodeeringut:</emphasis
+></term
+><listitem
+><para
+>Järgnevaid kodeeringuvalikuid saab määrata eraldi, välja arvatud juhul, kui äsjatoodud valik on sisse lülitatud, sest siis võtavad kõik valikud esimese valiku väärtuse. </para
+></listitem
+></varlistentry>
+    <varlistentry
+><term
+><emphasis
+>Kohalik kodeering:</emphasis
+></term
+><listitem
+><para
+>Kodeeringu valimise väljade kohal seisab märge, mis annab teada kohaliku kodeeringu (see ei ole muudetav, vaid lihtsalt teadmiseks, kui sa ei peaks oma kodeeringut teadma). </para
+></listitem
+></varlistentry>
+    <varlistentry
+><term
+><emphasis
+>A/B/C kodeering:</emphasis
+></term
+><listitem
+><para
+>Sisendfailide kodeeringu kohandamine. See mõjutab inglise tähestikku mittekuuluvate sümbolite esitamist. Kohandada saab iga kodeeringut eraldi, nii et sul on isegi võimalus võrrelda ja ühendada faile, mis on salvestatud erinevas kodeeringus. </para
+></listitem
+></varlistentry>
+    <varlistentry
+><term
+><emphasis
+>Kodeering ühendamisväljundil ja salvestamisel:</emphasis
+></term
+><listitem
+><para
+>Kui muudad faili, saad siis määrata, millises kodeeringus salvestatakse see kettale. </para
+></listitem
+></varlistentry>
+    <varlistentry
+><term
+><emphasis
+>Eelprotsessori failide kodeering:</emphasis
+></term
+><listitem
+><para
+>Kui oled määranud eelprotsessorid, võib juhtuda, et nad ei suuda sinu kodeeringut töödelda (kui näiteks sinu failid on 16-bitises Unicode''is, eelprotsessor suudab aga töödelda vaid 8-bitist ASCII-d). Siin saad määrata eelprotsessori väljundi kodeeringu. </para
+></listitem
+></varlistentry>
+    <varlistentry
+><term
+><emphasis
+>Paremalt vasakule keeled:</emphasis
+></term
+><listitem
+><para
+>Mõningaid keeli kirjutatakse paremalt vasakule. Selle valiku sisselülitamisel näitab &kdiff3; võrdluse sisendakendes ja ühendamise väljundaknas teksti paremalt vasakule. Pane tähele, et kui käivitad &kdiff3; käsurealt võtmega "--reverse", kasutab kogu rakendus paremalt vasakule paigutust (seda võimaldab Qt). Käesolev käsiraamat on kirjutatud eeldusel, et "Paremalt vasakule keeled" ega võti "reverse" ei ole kasutusel. Sestap tuleb nende kasutamisel mõningaid "vasakul" või "paremal" antud kirjeldusi lugeda lihtsalt selle teadmise valguses vastupidi. </para
+></listitem
+></varlistentry>
+
+  </variablelist>
+</sect2>
+
+<sect2
+><title
+>Muud</title>
+<para
+>(neid valikuid ja toiminguid saab kasutada menüü või nupuriba vahendusel)</para>
+<variablelist>
+  <varlistentry
+><term
+><emphasis
+>Näita reanumbreid:</emphasis
+></term
+><listitem
+><para
+>Võimalus valida, kas sisendfailidel näidatakse ridade numbreid.</para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Näita erinevusi tühiku- ja tabeldusmärkides:</emphasis
+></term
+><listitem
+><para
+>Vahel võivad nähtavad tühikud ja tabeldusmärgid tõsiselt häirida, millisel juhul on võimalik nende näitamine välja lülitada.</para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Näita tühimärke:</emphasis
+></term
+><listitem
+><para
+>Selle väljalülitamisel ei tõsteta esile tühimärkide erinevusi tekstis ega ülevaatetulbal. Pane tähele, et et kui sees on "Numbreid ignoreeritakse" või "C/C++ kommentaare ignoreeritakse", rakendub see ka kõigile numbrite või kommentaaride konfliktidele.</para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Ülevaate valikud:</emphasis
+></term
+><listitem
+><para
+>Neid valikuid saab kasutada ainult kolme faili võrdlemisel. Tavarežiimis näidatakse erinevusi ühel värvilisel ülevaatetulbal. Kuid vahel võivad huvi pakkuda kolmest faili ainult kahe erinevused. Valides vastavalt ülevaate "A vs. B", "A vs. C" või "B vs. C", näidatakse tavalise ülevaatetulba kõrval teist vajaliku infoga. </para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Reamurdmine võrdlusakendes:</emphasis
+></term
+><listitem
+><para
+>Read murtakse, kui nende pikkus ületab akna laiust. </para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Näita akent A/B/C:</emphasis
+></term
+><listitem
+><para
+>Vahel võib tekkida tahtmine ekraanil ruumi juurde tekitada, et näha paremini näiteks pikki ridu. Sellisel juhul saab peita aknad, mis ei ole hetkel olulised (menüü Aken).</para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Lülita poolitamissuund:</emphasis
+></term
+><listitem
+><para
+>Lülitab võrdlusakende asetsemist üksteise kõrval (A vasakul pool B ja B vasakul pool C) ning üksteise kohal (A B kohal ja B C kohal). Ka see võib olla abiks pikkade ridade korral (menüü Aken). </para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Kiirühendamine:</emphasis
+></term
+><listitem
+><para
+>Mõnikord võib leida erinevuste vaatamisel, et käes on aeg tegelda ühendamisega. <inlinemediaobject
+><imageobject
+><imagedata fileref="merge_current.png" format="PNG"/></imageobject
+></inlinemediaobject
+> "Ühenda praegune fail" menüüs Kataloog toimib ka siis, kui sa võrdled ainult kaht faili. Ühekordne klõps käivitab ühendamise ning kasutab vaikimisi väljundifaili nimena viimase sisendfaili nime (kui seda on kasutatud ühendamise taaskäivitamiseks, väljundfaili nimi säilitatakse).</para
+></listitem
+></varlistentry>
+</variablelist>
+</sect2>
+
+<sect2 id="shortcuts"
+><title
+>Kiirklahvide seadistamine</title>
+<para
+>Praegu toetab ainult KDE versioon kasutaja võimalust määrata kiirklahve (menüükäsk Seadistused -> Kiirklahvide seadistamine...) </para>
+</sect2>
+</sect1>
+
+<sect1 id="preprocessors"
+><title
+>Eeltöötluse käsud:</title>
+<para
+>&kdiff3; toetab kaht eeltöötluse võimalust. </para
+><para>
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Eeltöötluse käsk:</emphasis
+></term
+><listitem
+><para
+>Mis tahes faili lugemisel filtreeritakse see läbi siin määratud käsu. Algse faili asemel näeb siis antud käsu väljundit. Sul on võimalik panna kirja oma eeltöötluse käsk, mis rahuldaks just sinu vajadused. Kasuta seda võimalust näiteks faili ülearuste osade kõrvaldamiseks või taande automaatseks korrigeerimiseks vms. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Ridade sobivuse eeltöötluse käsk:</emphasis
+></term
+><listitem
+><para
+>Mis tahes faili lugemisel filtreeritakse see läbi siin määratud käsu. Kui määratud on ka eeltöötluse käsk (vaata eespool), on eeltöötluse käsu väljund ridade sobivuse eeltöötluse käsu sisendiks. Viimase väljundit kasutatakse ainult analüüsi esimeses, reasobivuse faasis. Sul on võimalik panna kirja oma eeltöötluse käsk, mis rahuldaks just sinu vajadused. Igal sisendi real peab olema talle vastav väljundi rida. </para
+></listitem
+></varlistentry>
+</variablelist>
+</para>
+<para
+>Selle mõte on pakkuda kasutajale suuremat paindlikkust võrdlemistulemuse seadistamisel. Kuid see nõuab välist programmi ja mõistagi ei taha enamik sellist ise kirjutama hakata. Õnneks suudab enamasti selliste asjadega toime tulla <command
+>sed</command
+> või <command
+>perl</command
+>. </para>
+<para
+>Näide: lihtne testnäide: Võtame faili a.txt (6 rida): <screen>
+      aa
+      ba
+      ca
+      da
+      ea
+      fa
+</screen
+> Ja faili b.txt (3 rida): <screen>
+      cg
+      dg
+      eg
+</screen
+> Ilma eeltöötluseta seatakse vastavusse järgmised read: <screen>
+      aa - cg
+      ba - dg
+      ca - eg
+      da
+      ea
+      fa
+</screen
+> Tõenäoliselt ei ole see sugugi see, mida sa soovisid, sest oluliseks infokandjaks on just esimesed tähed. Et sobivusalgoritn jätaks arvesse võtmata teise tähe, kasutame reasobivuse eeltöötluse käsku, mis asendab 'g' 'a'-ga: <screen>
+   <command
+>sed</command
+> 's/g/a/'
+</screen
+> Selle käsu korral on võrdlemise tulemus järgmine: <screen>
+      aa
+      ba
+      ca - cg
+      da - dg
+      ea - eg
+      fa
+</screen
+> Seesmisel näeb sobivusalgoritm faile juba pärast reasobivuse eeltöötluse rakendamist, kuid ekraanil jääb fail muutmata. (Tavaline eeltöötlus muudaks andmeid ka ekraanil.) </para>
+
+<sect2 id="sedbasics"
+><title
+><command
+>sed</command
+>'i põhitõed</title>
+<para
+>Selles osas tutvustame ainult programmi <command
+>sed</command
+> üksikuid põhimõttelisi omadusi. Rohkem infot leiab käsuga <ulink url="info:/sed"
+>info:/sed</ulink
+> või aadressilt <ulink url="http://www.gnu.org/software/sed/manual/html_mono/sed.html"
+> http://www.gnu.org/software/sed/manual/html_mono/sed.html</ulink
+>. Windowsi eelkompileeritud versioon asub aadressil <ulink url="http://unxutils.sourceforge.net"
+> http://unxutils.sourceforge.net</ulink
+>. Pane tähele, et järgmistes näidetes eeldame, et käsk <command
+>sed</command
+> asub mõnes keskkonnamuutujaga PATH määratud kataloogis. Kui see nii ei ole, tuleb sul määrata käsu täielik asukoht. </para>
+<note
+><para
+>Pane tähele ka seda, et järgnevates näidetes on kasutatud ühekordset jutumärki ('), mis Windowsis ei toimi - seal tuleb kasutada topeltjutumärke (").</para
+></note>
+<para
+>Antud kontekstis kasutatakse ainult <command
+>sed</command
+>'i 'asenduskäsku: <screen>
+   <command
+>sed</command
+> 's/<replaceable
+>REGULAARAVALDIS</replaceable
+>/<replaceable
+>ASENDUS</replaceable
+>/<replaceable
+>LIPUD</replaceable
+>'
+</screen
+> Enne uue käsu kasutamist &kdiff3;-ga võiks seda esmalt testida konsoolil. Siin tuleb kasuks käsk <command
+>echo</command
+>. Näide: <screen>
+   <command
+>echo</command
+> abrakadabra | <command
+>sed</command
+> 's/a/o/'
+   -> obrakadabra
+</screen
+> Toodud näites on tegemist äärmiselt lihtsa sed-käsuga, kus asendatakse esimene "a" "o"-ga. Kui soovid asendada kõik esinemiskorrad, tuleb kasutada lippu "g": <screen>
+   <command
+>echo</command
+> abrakadabra | <command
+>sed</command
+> 's/a/o/g'
+   -> obrokodobro
+</screen
+> Sümbol "|" on torukäsk, mis edastab eelmise käsu väljundi järgmise käsu sisendile. Kui soovid testida pikema failiga, võid kasutada käsku <command
+>cat</command
+>, kui tegemist on UNIX-i süsteemiga, või <command
+>type</command
+>, kui tegu on Windowsiga. <command
+>sed</command
+> sooritab asenduse igal real. <screen
+><command
+>cat</command
+> <replaceable
+>failinimi</replaceable
+> | <command
+>sed</command
+> <replaceable
+>võtmed</replaceable
+>
+</screen>
+</para>
+</sect2>
+<sect2 id="sedforkdiff3"
+><title
+>Näited <command
+>sed</command
+>'i kasutamise kohta &kdiff3;-ga</title>
+<sect3
+><title
+>Muud tüüpi kommentaaride ignoreerimine</title>
+<para
+>Praegu mõistab &kdiff3; ainult C/C++ kommentaare. Reasobivuse eeltöötluse käsuga saab aga ignoreerida ka muud tüüpi kommentaare, teisendades need C/C++ kommentaarideks. Näide: kui soovid ignoreerida kommentaare, mille alguses on "#", tuleks need teisendada nii, et alguses oleks "//". Pane tähele, et seejuureks peaks olema võimalus "C/C++ kommentaare ignoreeritakse" sisse lülitatud, muidu pole asjal mõtet. Vastav reasobivuse eeltöötluse käsk näeb välja selline: <screen>
+   <command
+>sed</command
+> 's/#/\/\//'
+</screen
+> Kuna <command
+>sed</command
+> omistab sümbolile "/" eritähenduse, on oluline asetada asendusstringis iga "/" ette sümbol "\". Mõnikord on "\" vajalik teatud ertähendusega sümbolite lisamiseks või eemaldamiseks. Nüüd on olulised üksikjutumärgid (') enne ja pärast asenduskäsku, sest vastasel juhul püüab shell mõningaid erisümboleid, näiteks '#', '$' või '\' tõlgendada juba enne nende edastamist käsule <command
+>sed</command
+>. <emphasis
+>Pane tähele, et Windowsis tuleb anda topeltjutumärgid ("). Windows asendab ka muid sümboleid, näiteks '%', nii et siin võib olla vajalik veidi eksperimenteerida.</emphasis
+> </para>
+</sect3>
+<sect3
+><title
+>Tõstutundetu võrdlus</title>
+<para
+>Järgmise reasobivuse eeltöötluse käsuga saab kogu sisendi muuta suurtäheliseks: <screen>
+   <command
+>sed</command
+> 's/\(.*\)/\U\1/'
+</screen
+> Siin on ".*" regulaaravaldis, mis sobib iga stringiga, antud kontekstis siis iga real asuva sümboliga. "\1" asendusstringis tähistab sobivat teksti esimeses "\(" and "\)" paaris. "\U" teisendab sisestatud teksti suurtäheliseks. </para>
+</sect3>
+
+<sect3
+><title
+>Versioonikontrolli võtmesõnade ignoreerimine</title>
+<para
+>CVS ja muud versioonikontrollisüsteemid kasutavad mitmeid võtmesõnu automaatselt genereeritavate stringide lisamiseks (<ulink url="info:/cvs/Keyword substitution"
+>info:/cvs/Keyword substitution</ulink
+>). Kõik need järgivad mustrit "$VÕTMESÕNA genereeritud tekst$". Nüüd läheb meil vaja reasobivuse eeltöötluse käsku, mis eemaldaks ainult genereeritud teksti: <screen>
+   <command
+>sed</command
+> 's/\$\(Revision\|Author\|Log\|Header\|Date\).*\$/\$\1\$/'
+</screen
+> Võimalikke võtmesõnu eraldab "\|". Seda loendit võid mõistagi vastavalt oma vajadustele muuta. Enne "$" on kindlasti vajalik "\", sest muidu on "$" sobivuseks rea lõpp. </para>
+<para
+>Kui katsetad <command
+>sed</command
+>'iga, hakkad arvatavasti veidi aduma regulaaravaldiste mõtet ja võib-olla isegi neid armastama. Iseenesest on regulaaravaldised väga kasulikud, sest päris paljud programmid toetavad sarnast võimalust. </para>
+</sect3>
+
+<sect3
+><title
+>Numbrite ignoreerimine</title>
+<para
+>Numbrite ignoreerimine on tegelikult juba sisseehitatud võimalus. Kuid näitame siinkohal, kuidas see näeks välja reasobivuse eeltöötluse käsuna: <screen>
+   <command
+>sed</command
+> 's/[0123456789.-]//g'
+</screen
+> Sobivad kõik sümbolid '[' ja ']' vahel ning neid ei asendatagi, vaid lihtsalt kõrvaldatakse. </para>
+</sect3>
+
+<sect3
+><title
+>Teatud veergude ignoreerimine</title>
+<para
+>Tekst võib olla rangelt vormindatud ning sisaldada näiteks veergu, mida soovid alati ignoreerida, samas aga muid veerge analüüsiks kasutada. Järgnevas näites ignoreeritakse viit esimest veergu (sümbolit), järgmised kümme säilitatakse, siis ignoreeritakse taas viit veergu ning ülejäänud rida säilitatakse. <screen>
+   <command
+>sed</command
+> 's/.....\(..........\).....\(.*\)/\1\2/'
+</screen
+> Iga punkt '.' vastab ühele sümbolile. "\1" ja "\2" asendusstringis tähistavad sobivat teksti esimeses ja teises "\(" ja "\)" paaris, märkides säilitatavat teksti. </para>
+</sect3>
+
+<sect3
+><title
+>Mitme asenduse kombineerimine</title>
+<para
+>Vahel võib tekkida tahtmine teha mitu asendust korraga. Selleks tuleb nende eraldamiseks kasutada semikoolonit ';'. Näide: <screen
+><command
+>echo</command
+> abrakadabra | <command
+>sed</command
+> 's/a/o/g;s/\(.*\)/\U\1/'
+   -> OBROKODOBRO
+</screen>
+</para>
+</sect3>
+
+<sect3
+><title
+><command
+>perl</command
+>i kasutamine <command
+>sed</command
+>'i asemel</title>
+<para
+><command
+>sed</command
+>'i asemel võib kasutada ka midagi muud, näiteks <command
+>perl</command
+>. <screen>
+   <command
+>perl</command
+> -p -e 's/<replaceable
+>REGULAARAVALDIS</replaceable
+>/<replaceable
+>ASENDUS</replaceable
+>/<replaceable
+>LIPUD</replaceable
+>'
+</screen
+> Kuid <command
+>perl</command
+> on mõnevõrra erinev. Pane tähele, et kui <command
+>sed</command
+>-ile oli vaja "\(" ja "\)", siis <command
+>perl</command
+>-ile on vaja lihtsalt "(" ja ")" ilma eelneva '\'. Näide: <screen
+><command
+>sed</command
+> 's/\(.*\)/\U\1/'
+   <command
+>perl</command
+> -p -e 's/(.*)/\U\1/'
+</screen>
+</para>
+</sect3>
+</sect2>
+
+<sect2
+><title
+>Eeltöötluse sooritamise järjekord</title>
+<para
+>Andmed suunatakse läbi sisemiste ja väliste eeltöötluse käskude järgmises järjekorras </para>
+<itemizedlist>
+<listitem
+><para
+>Tavaline eeltöötlus,</para
+></listitem>
+<listitem
+><para
+>Reasobivuse eeltöötlus,</para
+></listitem>
+<listitem
+><para
+>Tõstu ignoreerimine (teisendamine suurtäheliseks),</para
+></listitem>
+<listitem
+><para
+>C/C++ kommentaaride tuvastamine,</para
+></listitem>
+<listitem
+><para
+>Numbrite ignoreerimine,</para
+></listitem>
+<listitem
+><para
+>Tühimärkide ignoreerimine</para
+></listitem>
+</itemizedlist>
+<para
+>Tavalise eeltöötluse tulemusandmed säilitatakse näitamiseks ja ühendamiseks. Muud operatsioonid muudavad ainult andmeid, mida näeb reasobivuse võrdlusalgoritm. </para
+><para
+>Neil harvadel juhtudel, kui kasutad tavalist eeltöötluse käsku, arvesta, et reasobivuse eeltöötluse käsk peab tavalise eeltöötluse käsu väljundit oma sisendiks. </para>
+</sect2>
+
+<sect2
+><title
+>Hoiatus</title>
+<para
+>Eeltöötluse käsud on sageli vägagi kasulikud, aga nagu ikka võimalustega, mis muudavad sinu teksti või peidavad automaatselt teatud erinevused, võib sel moel kogemata mõningad erinevused kahe silma vahele jätta või eriti halval juhul isegi olulised andmed hävitada. </para
+><para
+>Seetõttu teatab &kdiff3; ühendamisel sellest, et kasutatakse tavalist eeltöötluse käsku, ning pärib, kas seda lubada või mitte. Kuid sind ei hoiatata, kas reasobivuse eeltöötluse on aktiivne või mitte. Ühendamine on valmis alles siis, kui kõik konfliktid on lahendatud. Kui lülitad välja võimaluse "Tühimärkide näitamine", siis on nähtamatud ka erinevused, mis eemaldati reasobivuse eeltöötluse käsuga. Kui ühendamisel ei saa kasutada nuppu 'Salvesta' (sest failis on veel konflikte), lülita "tühimärkide näitamine" sisse. Kui sa ei soovi neid enamasti vähese tähtsusega erinevusi käsitsi ühendada, vali ühendamismenüüst käsk "Vali [A|B|C] kõigi lahendamata tühimärgikonfliktide korral". </para>
+</sect2>
+</sect1>
+</chapter>
+
+
+<chapter id="dirmerge"
+><title
+>Kataloogide võrdlemine ja ühendamine &kdiff3;-s</title>
+<sect1 id="dirmergeintro"
+><title
+>Kataloogide võrdlemise ja ühendamise sissejuhatus</title>
+<para
+>Programmeerijad peavad sageli oma eesmärgi saavutamiseks muutma kataloogis paljusid faile. Selle ülesande kergendamiseks võimaldab &kdiff3; võrrelda ja ühendada ka terveid katalooge koos nende alamkataloogidega! </para
+><para
+>Kuigi kataloogide võrdlemine ja ühendamine tundub olevat üsna lihtne ja selge, tuleks siin siiski arvestada mitme asjaga. Kõige olulisem on kahtlemata see, et sellisel juhul puudutab iga operatsioon paljusid faile korraga. Kui sa ei ole esialgsetest andmetest varukoopiat teinud, võib algoleku taastamine olla väga raske või isegi võimatu. Seepärast kontrolli enne ühendamise alustamist alati, et andmed on turvaliselt varundatud ja et sul on alati võimalus tagasi minna. Kas kasutada arhiveerimist või mõnda versioonikontrollisüsteemi, on sinu enda otsustada, kuid pea silmas, et ka ülikogenud programmeerijad vajavad aeg-ajalt vanu alliktekste. Ning ühtlasi arvesta sedagi, et kuigi mina (see tähendab, &kdiff3; autor) olen püüdnud anda endast parima, ei saa ma täie kindlusega öelda, et rakendus on ideaalne ja täiesti veatu. Nagu ütleb GNU Üldine Avalik Litsents, ei ole sellel rakendusel MITTE MINGIT garantiid. Seepärast pea alati meeles, et </para>
+<blockquote
+><para>
+   <emphasis
+>Eksimine on inimlik, aga tõelise segaduse korraldamiseks läheb vaja arvutit.</emphasis>
+</para
+></blockquote>
+<para
+>Vaatame siis, mida meie rakendus suudab teha. &kdiff3;... </para>
+<itemizedlist>
+     <listitem
+><para
+>... loeb ja võrdleb kaht või kolme kataloogi koos alamkataloogidega</para
+></listitem>
+     <listitem
+><para
+>... peab spetsiaalselt silmas nimeviitu</para
+></listitem>
+     <listitem
+><para
+>... võimaldab faile vaadelda hiire topeltklõpsuga</para
+></listitem>
+     <listitem
+><para
+>... iga elemendi korral pakub välja ühendamisoperatsiooni, mida sul on voli muuta enne tegeliku kataloogide ühendamise alustamist</para
+></listitem>
+     <listitem
+><para
+>... võimaldab ühendamist simuleerida, näidates ära toimingud, mis ette võetakse, ilma neid tegelikult veel tegemata</para
+></listitem>
+     <listitem
+><para
+>... võimaldab mõistagi ka tegelikku ühendamist ning pakub sulle sekkumise võimalust kõikjal, kus selleks vajadus tekib</para
+></listitem>
+     <listitem
+><para
+>... võimaldab käivitada valitud toimingu kõigi elementidega (klahv F7) või ainult valitud elemendiga (klahv F6)</para
+></listitem>
+     <listitem
+><para
+>... lubab jätkata pärast sekkumist ühendamist klahvile F7 vajutades</para
+></listitem>
+     <listitem
+><para
+>... lisavõimalusena loob varukoopiad laiendiga ".orig"</para
+></listitem>
+     <listitem
+><para
+>...</para
+></listitem>
+</itemizedlist>
+</sect1>
+
+<sect1 id="startingdirmerge"
+><title
+>Kataloogide võrdlemise või ühendamise alustamine</title>
+<para
+>See on väga sarnane failide ühendamisele ja võrdlemisele. Sul tuleb lihtsalt valida kataloogid käsureal või avamisdialoogis. </para>
+<sect2
+><title
+>Kahe kataloogi võrdlemine/ühendamine: </title>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>kataloog1 kataloog2</replaceable>
+   <command
+>kdiff3</command
+> <replaceable
+>kataloog1 kataloog2</replaceable
+> -o <replaceable
+>sihtkataloog</replaceable
+>
+</screen>
+<para
+>Kui sihtkataloogi ei määrata, kasutab &kdiff3; sellena kataloogi <replaceable
+>kataloog2</replaceable
+>. </para>
+</sect2>
+
+<sect2
+><title
+>Kolme kataloogi võrdlemine/ühendamine: </title>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>kataloog1 kataloog2 kataloog3</replaceable>
+   <command
+>kdiff3</command
+> <replaceable
+>kataloog1 kataloog2 kataloog3</replaceable
+> -o <replaceable
+>sihtkataloog</replaceable
+>
+</screen>
+<para
+>Kolme kataloogi ühendamisel võetakse <replaceable
+>kataloog1</replaceable
+> ühendamise baasiks. Kui sihtkataloogi ei ole määratud, on selleks &kdiff3; silmis <replaceable
+>kataloog3</replaceable
+>. </para>
+
+<para
+>Pane tähele, et automaatselt algab ainult võrdlemine, mitte aga ühendamine. Viimase jaoks tuleb kasutada vastavat menüükäsku või klahvi F7 (sellest räägime pikemalt veidi hiljem). </para>
+</sect2>
+</sect1>
+
+<sect1 id="dirmergevisible"
+><title
+>Kataloogide ühendamise nähtav info</title>
+<para
+>Kataloogide lugemisel ilmub teatekast, mis näitab edenemise käiku. Kui katkestad kataloogi läbiuurimise, näidatakse ainult neid faile, mida selle hetkeni jõuti võrrelda. </para
+><para
+>Kui kataloogide skaneerimine on lõpule jõudnud, näitab &kdiff3; nimekirjakasti, kus vasakul on tulemused... </para>
+<screenshot
+><mediaobject>
+<imageobject
+><imagedata fileref="dirbrowser.png" format="PNG"/></imageobject
+> <!--alt="Image of the directory browser."-->
+</mediaobject
+></screenshot>
+<para
+>... ja paremal üksikasjad parajasti valitud elemendi kohta: </para>
+<screenshot
+><mediaobject>
+<imageobject
+><imagedata fileref="iteminfo.png" format="PNG"/></imageobject>
+   <!--alt="Image with information about the selected item."-->
+</mediaobject
+></screenshot>
+
+<sect2 id="name"
+><title
+>Nimeveerg</title>
+<para
+>Kõiki skaneerimisel leitud faile ja katalooge näidatakse puus. Vajaliku elemendi saab valida sellel hiirega klõpsates. </para
+><para
+>Vaikimisi on kataloogid suletud. Neid saab avada või sulgeda klõpsuga nende ees seisvale "+"/"-" või topeltklõpsuga kirjel või klahvidega Nool vasakule/paremale. Menüüs "Kataloog" on käsud "Ava kõik alamkataloogid" ja "Sule kõik alamkataloogid", mis lubavad korraga avada/sulgeda kõik alamkataloogid. </para
+><para
+>Failil topeltklõpsu tehes alustatakse võrdlemist ning ilmub failide võrdlemise aken. </para>
+<para
+>Pilt nimeveerus kajastab faili tüüpi esimeses kataloogis ("A"). See võib olla üks järgmistest: </para>
+<itemizedlist>
+     <listitem
+><para
+>Tavaline fail</para
+></listitem>
+     <listitem
+><para
+>Tavaline kataloog (kaustakujuline pilt)</para
+></listitem>
+     <listitem
+><para
+>Viit failile (failipilt viidanoolega)</para
+></listitem>
+     <listitem
+><para
+>Viit kataloogile (kaustakujuline pilt viidanoolega)</para
+></listitem>
+</itemizedlist>
+<para
+>Kui failitüüp on erinevates kataloogides erinev, on see näha veergudes A/B/C ning aknas, mis näitab valitud elemendi üksikasju. Pane tähele, et sellisel juhul ei ole võimalik automaatselt käivitada ühendamist. Kui seda siiski tehakse, antakse kasutajale teada, miks see ei ole võimalik. </para>
+</sect2>
+
+<sect2 id="coloring"
+><title
+>Veerud A/B/C ja värviskeem</title>
+<para
+>Nagu ülal näha, kasutatakse veergudes A/B/C punast, rohelist, kollast ja musta värvi. </para>
+<itemizedlist>
+     <listitem
+><para
+>Must: selles kataloogis sellist elementi ei ole.</para
+></listitem>
+     <listitem
+><para
+>Roheline: uusim element.</para
+></listitem>
+     <listitem
+><para
+>Kollane: vanem kui roheline, uuem kui punane.</para
+></listitem>
+     <listitem
+><para
+>Punane: vanime element.</para
+></listitem>
+</itemizedlist>
+<para
+>Võrdlemisel ühesuguseks osutunud elementide värv on siiski samuti ühesugune ka siis, kui nad on erineva vanusega. </para
+><para
+>Katalooge peetakse võrdseks, kui kõik nendes olevad elemendid on samasugused. Siis võib neil olla ka ühesugune värv. Ka kataloogide korral ei mõjuta värvi vanus. </para
+><para
+>Selle värviskeemi mõtte andis mulle <ulink url="http://samba.org/cgi-bin/cvsweb/dirdiff"
+>dirdiff</ulink
+>. Need värvid meenutavad mõneti puulehte, mis värskena on roheline, muutub hiljem kollaseks ja lõpuks punaseks. </para>
+
+</sect2
+><sect2 id="operation"
+><title
+>Operatsiooniveerg</title>
+<para
+>Pärast kataloogide võrdlemist hindab &kdiff3; ühendamise võimalusi. Seda näitab veerg "Operatsioon". Operatsiooni on võimalik muuta, kui klõpsata sellel operatsioonil, mida soovid muuta. Ilmub väike hüpikmenüü, mis lubab valida antud elemendile vajaliku operatsiooni. (Kõige vajalikumad operatsioonid saab valida ka klaviatuurilt, näiteks Ctrl+1/2/3/4/Del valib vastavalt võimalusele A/B/C/Ühenda/Kustuta.) Valitud operatsioon tehakse teoks ühendamise käigus. Valikud sõltuvad elemendist ning ühendamisrežiimist. Viimaseks võib olla üks järgmistest: </para>
+<itemizedlist>
+     <listitem
+><para
+>Kolme kataloogi ühendamine ("A" on sellisel juhul teistele baasiks).</para
+></listitem>
+     <listitem
+><para
+>Kahe kataloogi ühendamine.</para
+></listitem>
+     <listitem
+><para
+>Kahe kataloogi sünkroniseerimine (selle saab aktiveerida valikuga "Kataloogide sünkroniseerimine").</para
+></listitem>
+</itemizedlist>
+<para
+>Kolme kataloogi ühendamisel on operatsioonide valikuks juhul, kui... </para>
+<itemizedlist>
+     <listitem
+><para
+>... kõik kolm kataloogi on võrdsed: kopeeri C-st</para
+></listitem>
+     <listitem
+><para
+>... A ja C on võrdsed, aga B mitte: kopeeri B-st (või kui B-d ei ole, siis kustuta sihtmärk, kui see on olemas)</para
+></listitem>
+     <listitem
+><para
+>... A ja B on võrdsed, aga C mitte: kopeeri C-st (või kui C-d ei ole, siis kustuta sihtmärk, kui see on olemas)</para
+></listitem>
+     <listitem
+><para
+>... B ja C on võrdsed, aga A mitte: kopeeri C-st (või kui C-d ei ole, siis kustuta sihtmärk, kui see on olemas)</para
+></listitem>
+     <listitem
+><para
+>... ainult A on olemas: kustuta sihtmärk (kui on olemas)</para
+></listitem>
+     <listitem
+><para
+>... ainult B on olemas: kopeeri B-st</para
+></listitem>
+     <listitem
+><para
+>... ainult C on olemas: kopeeri C-st</para
+></listitem>
+     <listitem
+><para
+>... A, B ja C ei ole võrdsed: ühenda</para
+></listitem>
+     <listitem
+><para
+>... A, B ja C ei ole sama tüüpi (nt. A on kataloog, B fail): "Viga: failitüüpide konflikt". Kui elemendid on sellised, ei saa kataloogide ühendamist alustada.</para
+></listitem>
+</itemizedlist>
+<para
+>Kahe kataloogi ühendamisel on operatsioonide valikuks juhul, kui... </para>
+<itemizedlist>
+     <listitem
+><para
+>... mõlemad kataloogid on võrdsed: kopeeri B-st</para
+></listitem>
+     <listitem
+><para
+>... A on olemas, aga mitte B: kopeeri A-st</para
+></listitem>
+     <listitem
+><para
+>... B on olemas, aga mitte A: kopeeri B-st</para
+></listitem>
+     <listitem
+><para
+>... nii A kui B on olemas, aga mitte võrdsed: ühenda</para
+></listitem>
+     <listitem
+><para
+>... A ja B ei ole sama tüüpi (nt. A on kataloog, B fail): "Viga: failitüüpide konflikt". Kui elemendid on sellised, ei saa kataloogide ühendamist alustada.</para
+></listitem>
+</itemizedlist>
+<para
+>Sünkroniseerimisrežiimi saab kasutada ainult siis, kui tegemist on kahe kataloogiga, märgitud ei ole konkreetset sihtmärki ning sisse on lülitatud valik "Kataloogide sünkroniseerimine". &kdiff3; valib sel juhul vaikeoperatsiooni, et muuta mõlemad kataloogid võrdseks. Juhul kui... </para>
+<itemizedlist>
+     <listitem
+><para
+>... mõlemad kataloogid on võrdsed: midagi ei tehta.</para
+></listitem>
+     <listitem
+><para
+>... A on olemas, aga mitte B: kopeeri A -> B</para
+></listitem>
+     <listitem
+><para
+>... B on olemas, aga mitte A: kopeeri B -> A</para
+></listitem>
+     <listitem
+><para
+>... A ja B on mõlemad olemas, aga mitte võrdsed: ühenda ja salvesta tulemus mõlemas kataloogis (kasutaja näeb B salvestamist, kuid &kdiff3; kopeerib ka B-st A-sse).</para
+></listitem>
+     <listitem
+><para
+>... A ja B ei ole sama tüüpi (nt. A on kataloog, B fail): "Viga: failitüüpide konflikt". Kui elemendid on sellised, ei saa kataloogide ühendamist alustada.</para
+></listitem>
+</itemizedlist>
+<para
+>Kui kahe kataloogi ühendamisel on sisse lülitatud valik "Ühendamise asemel kopeeritakse uuem", uurib &kdiff3; kuupäevi ning pakub välja uuema faili valimise. Kui failid ei ole võrdsed, ent on sama kuupäevaga, näitab operatsiooniveerg teadet "Viga: kuupäevad on samad, aga mitte failid." Kui kataloogis on selliseid elemente, ei ole võimalik ühendamist alustada. </para>
+</sect2>
+
+<sect2 id="status"
+><title
+>Staatuseveerg</title>
+<para
+>Ühendamisel võetakse ette üks fail teise järel. Staatuseveerg näitab kirjet "Tehtud" elementide puhul, mille ühendamist saatis edu, ning midagi muud, kui ühendamise käigus tuli ette midagi ootamatut. Kui ühendamine on lõpule jõudnud, võiksid üle kontrollida ka staatuseveeru, et näha, kas kõik seal ikka rahuldab sind. </para>
+</sect2>
+
+<sect2 id="statisticscolulmns"
+><title
+>Statistikaveerg</title>
+<para
+>Kui seadistustes on sisse lülitatud failide võrdlemise režiim "Täielik analüüs", näitab &kdiff3; lisatulpasid, kus on kirjas lahendamata, lahendatud, tühimärkide ja mitte-tühimärkide konfliktide arv. (Lahendatud konflitkide arvuga tulpa näidatakse ainult kolme kataloogi võrdlemisel või ühendamisel.) </para>
+</sect2>
+
+<sect2 id="selectingvisiblefiles"
+><title
+>Nimekirja failide valimine</title>
+<para
+>Seda, millised failid nimekirjas asuvad, saab mitmeti mõjutada. Mõningad valikud leiab <link linkend="dirmergeoptions"
+>seadistustedialoogist</link
+>. Menüü 'Kataloog' sisaldab järgmisi kirjeid: </para
+><para
+><itemizedlist>
+     <listitem
+><para
+>"Näita identseid faile": failid, mis on võrdsed kõigis sisendkataloogides.</para
+></listitem>
+     <listitem
+><para
+>"Näita erinevaid faile": failid, mis on kahes või enamas kataloogis, aga pole võrdsed.</para
+></listitem>
+     <listitem
+><para
+>"Näita ainult A faile": failid, mis on ainult A-s, aga mitte B-s ega C-s.</para
+></listitem>
+     <listitem
+><para
+>"Näita ainult B faile": failid, mis on ainult B-s, aga mitte A-s ega C-s.</para
+></listitem>
+     <listitem
+><para
+>"Näita ainult C faile": failid, mis on ainult C-s, aga mitte A-s ega B-s.</para
+></listitem>
+</itemizedlist
+></para>
+<para
+>Aktiveeri ainult need näitamiskäsud, milliseid elemente soovid näha. Kui tahad näiteks, et nimekirjas oleks kõik elemendid, mis on kas A-s või B-s, aga mitte mõlemas korraga, vali "Näita ainult A faile" ja "Näita ainult B faile" ning lülita välja kõik ülejäänud ("Näita identseid faile", "Näita erinevaid faile", "Näita ainult C faile"). Nimekiri kajastab otsekohe muudatusi. </para
+><para
+>Need käsud rakenduvad ka kataloogidele, kuid ühe erandiga: "Näita erinevaid faile " ei peida ühtegi faile sisaldavat kataloogi. See käib ainult nende sees paiknevate failide kohta. </para
+><para
+>Pane tähele, et ainult käsk "Näita identseid faile" jätab oma oleku meelde, teised on &kdiff3; käivitumisel sisse lülitatud. </para>
+</sect2>
+
+</sect1>
+
+
+<sect1 id="dothemerge"
+><title
+>Kataloogide ühendamine</title>
+<para
+>Ühendada on võimalik parajasti valitud element (fail või kataloog) või kõik elemendid. Kui oled langetanud kõik operatsioonivalikud (ka alamkataloogides), võid alustada tegelikku ühendamist. </para
+><para
+>Pane tähele, et kui sa ei määranud sihtkataloogi, peetakse kolme kataloogi ühendamisel selleks "C", kahe kataloogi ühendamisel "B" ning sünkroniseerimisel "A" ja/või "B". </para
+><para
+>Kui oled sihtkataloogi määranud, kontrolli, et kõik elemendid, mis peaksid olema väljundis, oleksid olemas ka puus. Kasutada saab mõningaid valikuid, mis jätavad teatud elemendid kataloogide võrdlemisel ja ühendamisel arvesse võtmata. Vaata need valikud üle, et vältida ebameeldivaid üllatusi: </para>
+<itemizedlist>
+     <listitem
+><para
+>"Rekursiivsed kataloogid": kui see on väljas, ei kaasata elemente alamkataloogides.</para
+></listitem>
+     <listitem
+><para
+>"Failimuster"/"Anti-failimuster": kaasatakse/jäetakse välja mustriga sobivad elemendid</para
+></listitem>
+     <listitem
+><para
+>"Peidetud failid jäetakse välja"</para
+></listitem>
+     <listitem
+><para
+><link linkend="selectingvisiblefiles"
+>Näitamisvalikud</link
+> (Näita identseid/erinevaid faile, ainult A/B/C faile)</para
+></listitem>
+</itemizedlist>
+<para
+>Kui muudad seadistusi, et nimekirjas oleks rohkem faile, pead need uuesti läbi uurima menüükäsuga "Kataloog"->"Uuri uuesti" (põhjus seisab selles, et võrdlemiskiiruse tõstmise nimel jätab &kdiff3; vahele nende kriteeriumidega nähtamatuks muudetud failide võrdlemise). Kui muudad faili- ja kataloogimustrit failide väljajätmiseks, uuendatakse failinimekirja otsekohe pärast valikute dialoogi sulgemist. </para
+><para
+>Pane tähele, et kui kirjutad täiesti uude kataloogi, on tavaliselt mõttekas kopeerida ka identsed failid. Selleks tuleb sisse lülitada valik "Näita identseid faile". Kui sihtkataloogiks on mõni sisendkataloogidest, siis ei ole seda vaja, sest fail on ju juba seal olemas. </para
+><para
+>Kui kõik on korras, siis ülejäänud on juba lihtne. </para
+><para
+>Kõigi elementide ühendamine: vali menüüst "Kataloog" käsk "Alusta/jätka kataloogi ühendamist" või kasuta kiirklahvi F7. Ainult aktiivse elemendi ühendamine: vali "Käivita operatsioon käesoleva elemendiga" või vajuta F6. </para
+><para
+>Kui failitüüpide konflikti tõttu esineb veel mõningaid sobimatute operatsioonidega elemente, ilmub teatekast, mis osutab sellistele elementidele, nii et sa saad valida neile vajalikud operatsioonid. </para
+><para
+>Kui ühendad kõik elemendid, ilmub dialoog, kus valikuvõimalusteks on "Tee ära", "Simuleeri" ja "Loobu". </para>
+<itemizedlist>
+     <listitem
+><para
+>Vali "Simuleeri", kui soovid näha, mida ette võetakse, ilma et seda tegelikult ette võetaks. Näidatakse põhjalikku ülevaadet, milliseid aktsioone sinu tegevus endaga kaasa tooks.</para
+></listitem>
+     <listitem
+><para
+>Ühendamise tegelikuks alustamiseks vali "Tee ära".</para
+></listitem>
+</itemizedlist>
+<para
+>Seejärel asub &kdiff3; kõigi elementidega läbi viima neile määratud operatsioone. Kui vaja läheb käsitsi sekkumist (konkreetse faili ühendamisel), ilmub ühendamisaken (<link linkend="dirmergebigscreenshot"
+>vaata suurt pilti</link
+>). </para
+><para
+>Kui oled faili kallal kõik vajaliku ära teinud, vali uuesti menüükäsk "Alusta/jätka kataloogi ühendamist" või vajuta klahvi F7. Kui sa ei ole veel salvestanud, ilmub dialoog, mis teeb sulle vastava ettepaneku. Seejärel võtab &kdiff3; ette järgmise elemendi. </para
+><para
+>Kui &kdiff3; satub silmitsi veaga, annab ta sellest sulle teada ning näitab ka põhjalikku infot vea kohta, mis võib aidata kaasa arusaamisele, mis viga põhjustas. Kui valid ühendamise jätkamise (klahv F7), võimaldab &kdiff3; sul antud elemendi ühendamist uuesti proovida või see vahele jätta. See tähendab, et sa saad enne jätkamist valida mõne muu operatsiooni või jätta hetkel asi nii nagu on, et leida lahendus hiljem. </para
+><para
+>Kui ühendamine on lõpule jõudnud, annab &kdiff3; sellest teatekastiga sulle märku. </para
+><para
+>Kui mõned elemendi on ühendatud individuaalselt, jätab &kdiff3; selle (antud ühendamisseansi ajal) meelde ega hakka neid enam ühendama, kui valid hiljem kõigi elementide ühendamise. Isegi juhul, kui ühendamine jäeti tegelikult vahele või midagi ei salvestatud, peetakse neid elemente ühendatuks, nii et nendega saab hakata uuesti tegelema alles siis, kui oled vahetanud ühendamisoperatsiooni. </para>
+</sect1>
+
+<sect1 id="dirmergeoptions"
+><title
+>Kataloogide võrdlemise ja ühendamise valikud</title>
+<para
+>&kdiff3; seadistustes (menüükäsk "Seadistused"-&gt;"&kdiff3; seadistamine") on sektsioon "Kataloogide ühendamine" järgmiste valikutega: </para>
+
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Rekursiivsed kataloogid:</emphasis
+></term
+><listitem
+><para
+>Võimalus valida, kas kataloogid otsitakse läbi rekursiivselt, see tähendab, koos alamkataloogidega.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Failimustrid:</emphasis
+></term
+><listitem
+><para
+>Puus näidatakse ainult faile, mis vastavad siin määratud mustrile. Rohkem kui ühe mustri saab valida, kui kasutada eraldajana semikoolonit ";". Kasutada tohib metamärke '*' ja '?' (nt. "*.cpp;*.h"). Vaikimisi on muster "*". Kataloogid mustrit ei vaja.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Anti-failimustrid:</emphasis
+></term
+><listitem
+><para
+>Selle mustriga sobivad failid ja kataloogid jäetakse puust välja. Rohkem kui ühe mustri saab valida, kui kasutada eraldajana semikoolonit ";". Kasutada tohib metamärke '*' ja '?'. Vaikimisi on muster "*.orig;*.o;*.obj".</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Kataloogide anti-failimustrid:</emphasis
+></term
+><listitem
+><para
+>Selle mustriga sobivad failid ja kataloogid jäetakse puust välja. Rohkem kui ühe mustri saab valida, kui kasutada eraldajana semikoolonit ";". Kasutada tohib metamärke '*' ja '?'. Vaikimisi on muster "CVS;deps;.svn".</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>.cvsignore kasutamine:</emphasis
+></term
+><listitem
+><para
+>Ignoreeritakse faile ja katalooge, mida ignoreerib ka CVS. CVS eirab paljusid automaatselt genereeritud faile. Selle suureks eeliseks on see, et see võib olla kataloogipõhine kohaliku ".cvsignore" faili vahendusel (vaata <ulink url="info:/cvs/cvsignore"
+>info:/cvs/cvsignore</ulink
+>).</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Peidetud failide ja kataloogide otsimine:</emphasis
+></term
+><listitem
+><para
+>Mõnes failisüsteemis on failidel atribuut "peidetud", teistes süsteemides peidab failid nende nime ees seisev punkt ("."). See valik lubab sul määrata, kas sellised failid kaasatakse puusse või mitte. Vaikimisi sees.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Failiviitade järgimine:</emphasis
+></term
+><listitem
+><para
+>Kui on väljas, võrreldakse nimeviitu, kui sees, siis faile, millele viidatakse. Vaikimisi väljas.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Kataloogiviitade järgimine:</emphasis
+></term
+><listitem
+><para
+>Kui on väljas, võrreldakse nimeviitu, kui sees, peetakse viitu kataloogideks ning neid skaneeritakse rekursiivselt. (Pane tähele, et programm ei kontrolli, kas viit on "rekursiivne", nii et kui viita kataloogile sisaldav kataloog tekitab lõputu silmuse, siis mõne aja pärast, kui pinu on ületäidetud või mälu otsa saab, elab programm üle krahhi.) Vaikimisi väljas.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Tõstutundlik failinimede võrdlemine:</emphasis
+></term
+><listitem
+><para
+>Vaikimisi väär Windowsi ja tõene teiste operatsioonosüsteemide korral.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Failide võrdlemise režiim:</emphasis
+></term
+><listitem
+><para>
+<variablelist
+>            
+   <varlistentry
+><term
+><emphasis
+>Binaarne võrdlemine:</emphasis
+></term
+><listitem
+><para
+>See on vaikimisi failide võrdlemise režiim. </para
+></listitem
+></varlistentry
+>         
+   <varlistentry
+><term
+><emphasis
+>Täielik analüüs:</emphasis
+></term
+><listitem
+><para
+>Sooritab iga faili täieliku analüüsi ja näitab statistikatulpi (lahendatud, lahendamata, tühimärkide ja mitte-tühimärkide konfliktide arv). Täielik analüüs on aeglasem kui tavaline binaarne analüüs ning palju aeglasem, kui tegemist on failidega, mis ei sisalda teksti. (Määra sobivad anti-failimustrid.) </para
+></listitem
+></varlistentry
+>         
+   <varlistentry
+><term
+><emphasis
+>Muutmiskuupäeva usaldamine:</emphasis
+></term
+><listitem
+><para
+>Suurte kataloogide võrdlemisel üle aeglase võrgu on usutavasti kiirem võimalus võrrelda ainult muutmiskuupäevi ja failide suurust. Kuid kui see ka suurendab kiirust, võib see ometi kaasa tuua eksimusi. Seepärast tasuks selle kasutamisse ettevaatlikult suhtuda. Vaikimisi väljas.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Suuruse usaldamine:</emphasis
+></term
+><listitem
+><para
+>Sarnane muutmiskuupäeva usaldamisele. Tegelikku võrdlemist ei teostata. Kaht faili peetakse võrdseks, kui nende failisuurus on võrdne. See on abiks, kui failide kopeerimisel ei säilunud muutmise aeg. Kasuta seda siiski ettevaatlikult. Vaikimisi väljas.</para
+></listitem
+></varlistentry>
+</variablelist
+></para
+></listitem
+></varlistentry>
+         
+   <varlistentry
+><term
+><emphasis
+>Kataloogide sünkroniseerimine:</emphasis
+></term
+><listitem
+><para
+>Aktiveerib "sünkroniseerimisrežiimi", mille puhul võrreldakse kaht kataloogi ilma konkreetset sihtkataloogi määramata. Selles režiimis valitakse operatsioonid nii, et lõpptulemusena oleks kaks kataloogi võrdsed. Ka ühendamise tulemused kirjutatakse mõlemasse kataloogi. Vaikimisi väljas.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Ühendamise asemel kopeeritakse uuem:</emphasis
+></term
+><listitem
+><para
+>Ühendamise asemel pakutakse operatsiooniks uuema allika kopeerimine. Seda võimalust peetakse ebaturvaliseks, sest see eeldab, et teist faili ei ole redigeeritud. Seda aga tasuks igal juhul konkreetselt kontrollida. Vaikimisi väljas.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Failidest tehakse varukoopia:</emphasis
+></term
+><listitem
+><para
+>Kui fail või terve kataloog asendatakse teisega või kustutatakse, säilitatakse algne versioon, andes sellele laiendi ".orig". Kui on juba olemas varasem varukoopia laiendiga ".orig", siis see kustutatakse. See toimib nii kataloogide kui failide liitmisel. Vaikimisi sees.</para
+></listitem
+></varlistentry>
+</variablelist>
+</sect1>
+
+<sect1 id="other"
+><title
+>Muud funktsioonid kataloogide ühendamise aknas</title>
+<sect2
+><title
+>Ekraani poolitamine ja täisekraanirežiim</title>
+<para
+>Tavaliselt jääb faili võrdlemisel või ühendamisel kataloogi ühendamise nimekiri nähtavale. Hiirega võid aga liigutada failide nimekirja võrdlusaknast eraldavat riba. Kui sa seda ei soovi, võid menüüst "Kataloog" võmaluse "Poolitamisvaade" välja lülitada. Seejärel võid kasutada menüüs "Kataloog" olevat võimalust "Lülita vaadet", et vahetada kogu ekraani täitvat failinimekirja või võrdlusakna vaadet. </para>
+</sect2>
+<sect2
+><title
+>Ühe faili võrdlemine või ühendamine</title>
+<para
+>Võib juhtuda, et eelistad võrdlemiseks kasutada lihtsalt klõpsu failil. Samasugune käsk on siiski olemas ka menüüs "Kataloog". Samuti saab vahetult ühendada konkreetse faili ilma kataloogide ühendamist käivitamata, kui valida menüüst "Kataloog" käsk "Ühenda üks fail". Tulemuse salvestamisel märgitakse selles staatuseks "Tehtud" ning kui seejärel käivitada kataloogide ühendamine, seda faili enam ei kaasata. </para
+><para
+>Kuid pane tähele, et see staatus läheb kaduma, kui käivitad uuesti kataloogi skaneerimise (menüü "Kataloog", käsk "Uuri uuesti läbi") </para>
+</sect2>
+<sect2
+><title
+>Erineva nimeta failide võrdlemine või ühendamine</title>
+<para
+>Mõnikord on vaja võrrelda või ühendada erineva nimega faile (nt. aktiivne fail ja sellesama faili varukoopia samas kataloogis). </para
+><para
+>Vali vajalik fail veerus A, B või C ikoonile klõpsates. Esimene nii valitud fail märgitakse A-na, teine ja kolmas B ja C-na sõltumata sellest, millises veerus nad paiknevad. Nii saab valida ainult kuni kolm faili. </para
+><para
+>Jätkamiseks vali menüüst "Kataloog" käsk "Võrdle valitud faile" või "Ühenda valitud failid". Samu käske saab valida ka kontekstimenüüst, kui klõpsata valitud failile hiire parema nupuga. </para
+><para
+>Faili võrdlemine või ühendamine toimub samas aknas. Kataloogide korral avatakse uus aken. </para
+></sect2>
+</sect1>
+</chapter>
+
+<chapter id="misc">
+<title
+>Mitmesugused teemad</title>
+<sect1 id="networktransparency">
+<title
+>Võrguläbipaistvus KIO-moodulite vahendusel</title>
+<sect2
+><title
+>KIO moodulid</title>
+<para
+>KDE toetab võrguläbipaistvust oma KIO-moodulite abil. &kdiff3; kasutab neid sisendfailide lugemiseks ja kataloogide läbiuurimiseks. See tähendab, et võid faile ja katalooge määrata URL-e kasutades nii kohalikul kui võrgumasinal. </para
+><para
+>Näide: </para
+><para>
+<screen
+><command
+>kdiff3</command
+> test.cpp  ftp://ftp.faraway.org/test.cpp
+   <command
+>kdiff3</command
+> tar:/home/hacker/archive.tar.gz/dir ./dir
+</screen>
+</para>
+<para
+>Esimene rida võrdleb kohalikku faili failiga FTP-serveris. Teine rida võrdleb kataloogi arhiivifailis kohaliku kataloogiga. </para
+><para
+>Muud huvipakkuvad KIO-moodulid: </para>
+<itemizedlist>
+<listitem
+><para
+>WWW-failid (http:)</para
+></listitem>
+<listitem
+><para
+>FTP-failid (ftp:)</para
+></listitem>
+<listitem
+><para
+>Krüptitud failiedastused (fish:, sftp:)</para
+></listitem>
+<listitem
+><para
+>Windowsi ressursid (smb:)</para
+></listitem>
+<listitem
+><para
+>Kohalikud failid (file:)</para
+></listitem>
+</itemizedlist>
+<para
+>Muud asjad, mis on võimalikud, aga arvatavasti vähekasutatavad: </para>
+<itemizedlist>
+<listitem
+><para
+>Man-leheküljed (man:)</para
+></listitem>
+<listitem
+><para
+>Info-leheküljed (info:)</para
+></listitem>
+</itemizedlist>
+</sect2>
+
+<sect2
+><title
+>Kuidas kirjutada URL-e</title>
+<para
+>Võrreldes kohalike failide ja kataloogide asukohaga on URL-il teistsugune süntaks. Silmas tuleks pidada järgmisi asju: </para>
+<itemizedlist>
+<listitem
+><para
+>Asukoht võib olla suhteline ja sisaldada märke "." või "..". See ei ole võimalik URL-ide puhul, mis on alati absoluutsed. </para
+></listitem
+><listitem
+><para
+>Erisümbolid tuleb alati "päästa" ehk varjestada ("#" -> "%23", tühik -> "%20" jne.). Näiteks failil nimega "/#foo#" on URL "file:/%23foo%23". </para
+></listitem
+><listitem
+><para
+>Kui URL ei toimi oodatult, proovi see avada Konqueroris. </para
+></listitem>
+</itemizedlist>
+
+</sect2>
+
+<sect2
+><title
+>KIO-moodulite võimalused</title>
+<para
+>Võrguläbipaistvusel on üks puudus: mitte kõik ressursid ei paku ühesuguseid võimalusi. </para
+><para
+>Vahel sõltub see serveri failisüsteemist, vahel protokollist. Toome siin ära lühikese piirangute loetelu: </para>
+<itemizedlist>
+<listitem
+><para
+>Vahel ei ole viidad toetatud. </para
+></listitem
+><listitem
+><para
+>Vahel aga ei ole võimalik eristada, kas viit osutab failile või kataloogile: Sellisel juhul eeldatakse alati faili (ftp:, sftp:). </para
+></listitem
+><listitem
+><para
+>Alati pole võimalik määrata failisuurust. </para
+></listitem
+><listitem
+><para
+>Piiratud õiguste toetus. </para
+></listitem
+><listitem
+><para
+>Puudub võimalus muuta õigusi või muutmisaega, mistõttu koopia õigused või aeg erinevad originaalist - vaata ka võimalust "Suuruse usaldamine". (See on võimalik ainult kohalike failidega.) </para
+></listitem>
+</itemizedlist>
+</sect2>
+</sect1>
+
+<sect1 id="kpart">
+<title
+>&kdiff3; kui KPart</title>
+<para
+>&kdiff3; on KPart. Hetkel on teostatud liides KParts::ReadOnlyPart. </para
+><para
+>Selle peamine kasutusala on erinevuste vaatamine KDevelopis. KDevelop käivitab alati esmalt oma seesmise erinevuste näitaja. &kdiff3; väljakutsumiseks klõpsa hiire parema nupuga erinevuste näitaja aknal ja vali kontekstimenüüst "Näita KDiff3-s". </para
+><para
+>&kdiff3; vajab tavaliselt sisendiks kaht faili. Komponendina kasutades eeldab &kdiff3;, et sisendfail on paigafail unifitseeritud vormingus. Seejärel hangib &kdiff3; paigafailist algupärased failinimed. Vähemalt üks kahest failist peab olema kättesaadav. Seejärel kutsub &kdiff3; välja käsu <command
+>patch</command
+> teise faili taasloomiseks. </para
+><para
+>Konqueroris võib valida paigafaili ning seejärel kontekstimenüüst "Eelvaatlus KDiff3-s". Arvesta, et see ei toimi, kui ühtegi algupärast faili ei ole saadaval, ning see ei ole eriti usaldusväärne, kui algfaili või ka mõlemat algfaili on muudetud pärast paigafaili loomist. </para
+><para
+>Komponendina käivitades pakub &kdiff3; ainult kahe faili võrdlemist, väga pisikest tööriistariba ja menüüd. Ühendamine ega kataloogide võrdlemine ei ole praegu toetatud. </para>
+</sect1>
+</chapter>
+
+<chapter id="faq">
+<title
+>Küsimused ja vastused</title>
+&reporting.bugs; &updating.documentation; <qandaset id="faqlist">
+
+<qandaentry
+><question
+><para
+>Miks on selle nimi "&kdiff3;"? </para
+></question
+><answer
+><para
+>Sellised vahendid, nagu "KDiff" ja "KDiff2" (nüüd nimega "Kompare") olid juba olemas. Samuti laseb "KDiff3" oletada, et see tuleb toime ühendamisega samamoodi nagu "diff3" vahend Diff-Tool paketis. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Miks on selle litsents GPL? </para
+></question
+><answer
+><para
+>Ma olen GPL programme kasutanud juba väga pikka aega ning väga palju õppinud arvukaid lähtekoode uurides. Seepärast kuulub ka minu siiras tänu kõigile, kes on nii talitanud, talitavad või alles kavatsevad talitada. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Mõned nupud ja funktsioonid on puudu. Mis lahti? </para
+></question
+><answer
+><para
+>Kompileerisid ilmselt rakenduse lähtekoodist, kuid jätsid konfigureerimisel korrektse KDE prefiksi määramata. Vaikimisi igatseb .configure paigalduse ette võtta kataloogis /usr/local, kuid sellisel juhul ei leia KDE kasutajaliides ressursifaili (s.t kdiff3ui.rc). Korrektsest prefiksist räägib pikemalt fail README. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Enamasti on sarnased, aga mitte samased read teineteise kõrval, aga mitte alati. Miks? </para
+></question
+><answer
+><para
+>Ridu, mis erinevad ainult tühimärkide arvu poolest, peetakse algul "võrdseks", samas muudab ka üksainus teistsugune tühimärk failid "erinevaks". Kui sarnased read satuvad teineteise kõrvale, on see tegelikult kokkusattumus, aga õnneks esineb seda päris sageli. Vaata ka <link linkend="manualdiffhelp"
+>Käsitsi erinevused</link
+>. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Miks peavad enne salvestamist olema lahendatud kõik konfliktid? </para
+></question
+><answer
+><para
+>Iga võrdse või erineva sektsiooni korral jätab redaktor ühendamise tulemuse aknas meelde, kus see algab või lõpeb. Seda on vaja selleks, et konflikte oleks võimalik käsitsi lahendada lihtsalt allikanuppu (A, B või C) valides. See info läheb kaotsi, kui tekst salvestada ning sellise spetsiaalse failivormingu loomine, mis toetaks kogu vajaliku info salvestamist ja taastamist, oleks liiga keeruline ning raske. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Kuidas sünkroniseerida erinevuse ja ühendamise vaated, et kõik vaated näitaksid teksti sama asukohta? </para
+></question
+><answer
+><para
+>Klõpsa kokkuvõtetulbal tekstist vasakul (<link linkend="synchronise_views"
+>vaata ka siit</link
+>). </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Miks puudub redaktoril ühendamise tulemuste aknas "tagasivõtmise" funktsioon? </para
+></question
+><answer
+><para
+>Ka see nõuaks asjade praeguse seisu juures liiga palju tööd ja vaeva. Vajalik versioon on võimalik alati taastada konkreetse allika (A, B või C) põhjal lihtsalt vastavat nuppu klõpsates. Suurema redigeerimise korral on nagunii soovitatav kasutada mõnda muud redaktorit. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Eemaldasin veidi teksti ja järsku ilmus "&lt;Lähterida puudub&gt;", mida ei saa kuidagi kõrvaldada. Mida see tähendab ja kuidas sellest lahti saada? </para
+></question
+><answer
+><para
+>Iga võrdse või erineva sektsiooni korral jätab redaktor ühendamise tulemuse aknas meelde, kus see algab või lõpeb. "&lt;Lähterida puudub&gt;" tähendab, et sektsiooni ei ole enam midagi jäänud, isegi mitte reavahetusmärki. See võib juhtuda automaatsel ühendamisel või redigeerimise ajal. Tegelikult ei ole see üldse mingi probleem, sest salvestatud failis seda viidet enam ei ole. Kui soovid algvarianti tagasi, vali lihtsalt sektsioon (klõpsuga vasakul asuval kokkuvõttetulbal) ning seejärel klõpsa vajaliku sisuga allkfaili nuppu (A/B või C). </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Miks &kdiff3; ei toeta süntaksi esiletõstu? </para
+></question
+><answer
+><para
+>&kdiff3; kasutab niigi palju värve erinevuste esiletõstmiseks. Veelgi rohkem värve ajaks asja ainult arusaamatult kirjuks. Kui sa siiski soovid süntaksi esiletõstu, tuleb sul leppida mõne muu redaktoriga. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Kas &kdiff3; võib võrrelda OpenOffice.Org-i, Wordi, Exceli, PDF-faile &etc;? </para
+></question
+><answer
+><para
+>Kuigi &kdiff3; võib analüüsida mis tahes faile, ei ole selle tulemus arvatavasti päris rahuldav. </para
+><para
+>&kdiff3; on mõeldud puhaste tekstifailide võrdlemiseks. OpenOffice, Word, Excel jne. salvestavad oma failidesse märksa rohkem teavet (fontide, piltide, lehekülgede, värvide jms. kohta), millest &kdiff3; ei tea midagi. Seepärast näitab &kdiff3; nende failide sisu puhtalt tekstina tõlgendades, aga see võib osutuda loetamatuks või vähemalt paista üsna veidrana. </para
+><para
+>Et enamik rakendusi salvestab tänapäeval oma failid XML-vormingus, võib seda lugeda ka klaartekstina. Sel juhul võib &kdiff3;-st väikeste erinevuste korral ka abi olla. </para
+><para
+>Kui soovid võrrelda ainult teksti (ilma põimitud objektide, näiteks piltideta), on kõige mõistlikum valida oma rakenduses "Vali kõik" ja "Kopeeri", et kopeerida huvipakkuv tekst lõikepuhvrisse, kust &kdiff3; saab selle asetada mõnda sisendaknasse (vaata ka <link linkend="selections"
+>Valimine, kopeerimine ja asetamine</link
+>). </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Kuhu on kadunud kataloogide valik "Näita ainult erinevusi"? </para
+></question
+><answer
+><para
+>Kataloogimenüüs on nüüd mitu <link linkend="selectingvisiblefiles"
+>näitamiskäsku</link
+>. Kui eemaldada märge käsu "Näita identseid faile", on tulemus samasugune nagu varem "Näita ainult erinevusi" korral. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Kuidas valida erinevuse sisendaknas suur hulk teksti - kerimine on nii aeglane? </para
+></question
+><answer
+><para
+>Alusta valimist tavapäraselt (klõpsa ja hoia hiire vasakut nuppu all). Seejärel kasutada vasakut nuppu jätkuvalt all hoides liikumisklahve (nt. Page Up, Page Down). (Vaata ka <link linkend="selections"
+>Valimine, kopeerimine ja asetamine</link
+>.) </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Siin on küll palju infot, aga mitte vastust minu küsimusele! </para
+></question
+><answer
+><para
+>Palun saada oma küsimus mulle. Ma olen väga rõõmus igasuguse tagasiside üle. </para
+></answer
+></qandaentry>
+
+</qandaset>
+</chapter>
+
+<chapter id="credits">
+
+<title
+>Autorid ja litsents</title>
+
+<para
+>&kdiff3; - failide ja kataloogide võrdlemise ja ühendamise vahend </para>
+<para
+>Rakenduse autoriõigus 2002-2007: Joachim Eibl <email
+>joachim.eibl at gmx.de</email
+> </para>
+<para
+>Mitmed lahedad ideed ja vearaportid on pärit minu kolleegidelt ning paljudelt metsiku veebi asukatelt. Tänud teile kõigile! </para>
+
+<para
+>Dokumentatsiooni autoriõigus &copy; 2002-2007: Joachim Eibl <email
+>joachim.eibl at gmx.de</email
+> </para>
+
+<para
+>Tõlge eesti keelde: Marek Laane <email
+>bald@starman.ee</email
+></para
+> 
+&underFDL; &underGPL; </chapter>
+
+<appendix id="installation">
+<title
+>Paigaldamine</title>
+
+<sect1 id="getting-kdiff3">
+<title
+>&kdiff3; hankimine</title>
+
+<para
+>&kdiff3; uusima versiooni saab alla laadida selle koduleheküljelt <ulink url="http://kdiff3.sourceforge.net"
+>http://kdiff3.sourceforge.net</ulink
+>. </para
+><para
+>&kdiff3; on saadaval ka muudele platvormidele. Vaata lähemalt koduleheküljelt. </para>
+
+
+</sect1>
+
+<sect1 id="requirements">
+<title
+>Nõuded</title>
+
+<para
+>&kdiff3; kõigi omaduste edukaks kasutamiseks on vajalik &kde; 
+>3.1. </para
+><para
+>Infot selle kohta, kuidas panna &kdiff3; tööle muudel platvormidel ilma KDE-ta, vaata palun <ulink url="http://kdiff3.sourceforge.net"
+>koduleheküljelt</ulink
+>. </para
+><para
+>Muudatuste nimekirka leiab internetist <ulink url="http://kdiff3.sourceforge.net/ChangeLog"
+>http://kdiff3.sourceforge.net/ChangeLog</ulink
+> või lähtepaketist failis "ChangeLog". </para>
+</sect1>
+
+<sect1 id="compilation">
+<title
+>Kompileerimine ja paigaldamine</title>
+
+<para
+>&kdiff3; kompileerimiseks ja paigaldamiseks KDE-d kasutavas süsteemis anna &kdiff3; paketi baaskataloogis viibides käsureal korraldused:</para>
+
+<screen
+><prompt
+>%</prompt
+> <userinput
+><command
+>./configure --prefix=<replaceable
+>kde-kataloog</replaceable
+></command
+></userinput>
+<prompt
+>%</prompt
+> <userinput
+><command
+>make</command
+></userinput>
+<prompt
+>%</prompt
+> <userinput
+><command
+>make</command
+> install</userinput
+>
+</screen>
+<para
+><replaceable
+>kde-kataloog</replaceable
+> määrab kataloogi süsteemis, kuhu on paigaldatud KDE. Kui sa ei ole selles kindel, loe faili README. </para>
+<para
+>Kui sa ei kasuta KDE-d, ära kasuta ka skripti <command
+>configure</command
+>, vaid järgi failis README toodud juhiseid ainult Qt-ga süsteemidele.</para>
+<para
+>Kuna &kdiff3; kasutab programme <command
+>autoconf</command
+> ja <command
+>automake</command
+>, ei tohiks kompileerimisel probleeme esineda. Kui neid siiski tekib, anna neist palun teada &kde; meililistides.</para>
+
+</sect1>
+
+</appendix>
+
+&documentation.index;
+</book>
+
+<!--
+Local Variables:
+mode: sgml
+sgml-minimize-attributes:nil
+sgml-general-insert-case:lower
+sgml-indent-step:0
+sgml-indent-data:nil
+End:
+
+vim:tabstop=2:shiftwidth=2:expandtab
+-->
diff --git a/doc/fr/CMakeLists.txt b/doc/fr/CMakeLists.txt
new file mode 100644 (file)
index 0000000..e4b842f
--- /dev/null
@@ -0,0 +1 @@
+kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/fr SUBDIR kdiff3)
diff --git a/doc/fr/index.docbook b/doc/fr/index.docbook
new file mode 100644 (file)
index 0000000..5752637
--- /dev/null
@@ -0,0 +1,2320 @@
+<?xml version="1.0" ?>
+<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
+  <!ENTITY kdiff3 "<application
+>KDiff3</application
+>">
+  <!ENTITY kappname "&kdiff3;">
+  <!ENTITY package "kdeextragear-1">
+  <!ENTITY % addindex "IGNORE">
+  <!ENTITY % French "INCLUDE">
+]>
+
+<book lang="&language;">
+
+<!-- This header contains all of the meta-information for the document such
+as Authors, publish date, the abstract, and Keywords -->
+
+<bookinfo>
+<title
+>Le guide de &kdiff3;</title>
+
+<authorgroup>
+<author
+><firstname
+>Joachim</firstname
+> <surname
+>Eibl</surname
+> <affiliation
+><address
+> <email
+>joachim.eibl at gmx.de</email>
+</address
+></affiliation>
+</author>
+</authorgroup>
+
+&traducteurSimonDepiets; 
+
+<copyright>
+<year
+>2002-2004</year>
+<holder
+>Joachim Eibl</holder>
+</copyright>
+<!-- Translators: put here the copyright notice of the translation -->
+<!-- Put here the FDL notice.  Read the explanation in fdl-notice.docbook
+     and in the FDL itself on how to use it. -->
+<legalnotice
+>&FDLNotice;</legalnotice>
+
+<!-- Date and version information of the documentation
+Don't forget to include this last date and this last revision number, we
+need them for translation coordination !
+Please respect the format of the date (YYYY-MM-DD) and of the version
+(V.MM.LL), it could be used by automation scripts.
+Do NOT change these in the translation. -->
+
+<date
+>2004-05-29</date>
+<releaseinfo
+>0.9.84</releaseinfo>
+
+
+<abstract>
+<para
+></para>
+<para
+>&kdiff3; est un comparateur fusionneur de fichiers et dossiers <itemizedlist>
+<listitem
+><para
+>qui compare et fusionne deux ou trois fichiers textes ou dossiers</para
+></listitem>
+<listitem
+><para
+>montre les différences ligne par ligne et caractère par caractère,</para
+></listitem>
+<listitem
+><para
+>proposant une fusion automatique facilitée,</para
+></listitem>
+<listitem
+><para
+>ayant un éditeur pour résoudre facilement les conflits de fusion</para
+></listitem>
+<listitem
+><para
+>proposant une transparence réseau via KIO</para
+></listitem>
+<listitem
+><para
+>ayant des options pour surligner ou cacher les changements dans les espaces ou commentaires.</para
+></listitem>
+</itemizedlist>
+</para
+><para
+>Ce document décrit kdiff3 version 0.9.84. </para>
+</abstract>
+
+<!-- This is a set of Keywords for indexing by search engines.
+Please at least include KDE, the KDE package it is in, the name
+ of your application, and a few relevant keywords. -->
+
+<keywordset>
+<keyword
+>KDE</keyword>
+<keyword
+>kdeextragear</keyword>
+<keyword
+>kdiff3</keyword>
+<keyword
+>diff</keyword>
+<keyword
+>fusion</keyword>
+<keyword
+>CVS</keyword>
+<keyword
+>triple comparaison</keyword>
+<keyword
+>comparer</keyword>
+<keyword
+>fichiers</keyword>
+<keyword
+>dossiers</keyword>
+<keyword
+>CVS</keyword>
+<keyword
+>fusion à trois voies</keyword>
+<keyword
+>différences à la ligne</keyword>
+<keyword
+>synchronise</keyword>
+<keyword
+>kpart</keyword>
+<keyword
+>kio</keyword>
+<keyword
+>transparence réseau</keyword>
+<keyword
+>éditeur</keyword>
+<keyword
+>espace</keyword>
+<keyword
+>commentaires</keyword>
+</keywordset>
+
+</bookinfo>
+
+<chapter id="introduction"
+><title
+>Introduction</title>
+<sect1 id="why"
+><title
+>Encore une autre interface Diff ?</title>
+<para
+>Beaucoup d'outils graphiques pour diff existent. Pourquoi choisir KDiff3  Laissez moi vous expliquer pourquoi je l'ai écrit. </para
+><para
+>Kdiff3 a été créé car j'ai eu a faire une fusion difficile. Fusionner est nécessaire quand beaucoup de gens travaillent sur les mêmes fichiers dans un projet. Une fusion peut parfois être automatisée, quand l'outil de fusion n'a pas seulement les fichiers modifiés (appelés "branches"), mais aussi le fichier original (appelé "base"). L'outil de fusion choisira automatiquement la modification faite uniquement dans une seule branche. Quand beaucoup de contributeurs auront changé les mêmes lignes, alors l'outil de fusion détectera un conflit et vous devrez le résoudre manuellement. </para
+><para
+>La fusion fut donc difficile car un contributeur a changé beaucoup de choses. Un autre a aussi changé beaucoup de texte dans le même fichier, ce qui résulte en beaucoup de conflits lors de la fusion. </para
+><para
+>L'outil que j'ai utilisé ne m'a donc montré que les lignes modifiées mais pas ce qui avait changé dans ces lignes. La fusion fut un vrai cauchemar. </para
+><para
+>Voila donc le début. La première version a montré les différences dans une ligne et les différences d'espaces. Plus tard beaucoup d'autres options furent ajoutées pour augmenter l'utilité. </para
+><para
+>Par exemple si vous voulez comparer du texte rapidement, alors vous pouvez le copier dans le presse-papiers et le coller dans une autre fenêtre diff. </para
+><para
+>Une option qui me demanda beaucoup d'efforts fut la comparaison de dossiers et la facilitation de la fusion, qui a transformé le navigateur en navigateur complet. </para
+><para
+>J'espère que KDiff3 marche chez vous aussi. Amusez vous ! </para
+><para
+>Joachim Eibl (2003) </para>
+</sect1>
+
+<sect1 id="screenshots"
+><title
+>Captures d'écrans et caractéristiques</title>
+<para
+>Cette capture d'écran montre la différence entre deux fichiers texte.</para>
+<para
+>(Utilisant une ancienne version de KDiff3) :</para>
+<screenshot
+><mediaobject>
+   <imageobject
+><imagedata fileref="screenshot_diff.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+
+<para
+>La fusion à trois voies est pleinement supportée. Ceci est utile si deux personnes ont changé le code indépendamment. Le fichier original (la base) est utilisé pour aider KDiff3 a sélectionner les bons changements. L'éditeur de fusion situé sous la fenêtre diff vous autorise à résoudre les conflits, en vous montrant le résultat que vous obtiendrez. Vous pouvez aussi éditer le résultat. Cette capture d'écran montre trois fichiers en train d'être fusionnés. </para
+><para>
+<screenshot
+><mediaobject>
+   <imageobject
+><imagedata fileref="screenshot_merge.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+</para>
+
+<para id="dirmergebigscreenshot"
+>KDiff3 vous aide aussi à comparer et fusionner des dossiers complets. Cette capture d'écran montre KDiff3 pendant une fusion de dossiers : </para
+><para>
+<screenshot
+><mediaobject>
+   <imageobject
+><imagedata fileref="dirmergebig.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+</para>
+</sect1>
+
+<sect1 id="features"
+><title
+>Plus d'options</title>
+<sect2
+><title
+>Visionneuse de différences ligne par ligne et caractère par caractère</title>
+<para
+>En utilisant les possibilités d'affichages colorés d'une interface graphique, KDiff3 montre exactement quelle est la différence. Quand vous aurez a traiter beaucoup de texte, cela vous aidera beaucoup. </para>
+<screenshot
+><mediaobject>
+   <imageobject
+><imagedata fileref="letter_by_letter.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+</sect2>
+
+<sect2
+><title
+>Voir les différences d'espaces en un coup d'oeil.</title>
+<para
+>Les espaces et alinéas apparaissent visiblement. Quand des lignes diffèrent seulement d'un espace, cela peut être vu en un coup d'oeil dans la colonne sur le côté gauche. Plus de problèmes quand les gens changent les espaces. </para>
+<screenshot
+><mediaobject>
+   <imageobject
+><imagedata fileref="white_space.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+</sect2>
+
+<sect2
+><title
+>Triple comparaison</title>
+<para
+>Analyser trois fichiers et voir en quoi ils diffèrent. </para
+><para
+>Les fenêtres de gauche/millieu/droite sont appelées A/B/C et on respectivement les couleurs bleu/vert/mauve. </para
+><para
+>Si un des fichiers et le même et un des fichiers est différent sur une ligne alors la couleur montre quel fichier est différent. La couleur rouge montre que les deux sont différents. </para>
+<screenshot
+><mediaobject>
+   <imageobject
+><imagedata fileref="triple_diff.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+</sect2>
+
+<sect2
+><title
+>Fusion confortable de deux ou trois fichiers.</title>
+<para
+>KDiff3 peut être utilisé pour fusionner deux ou trois fichiers et faire autant de fusions automatiques que possible. Le résultat est représenté dans une fenêtre modifiable ou la plupart des conflits peuvent être résolus avec un simple clic de souris. Sélectionnez les boutons A/B/C depuis la barre des boutons pour sélectionner la source qui doit être utilisée. Vous pouvez aussi utiliser plus d'une source. Cette fenêtre est aussi un éditeur pour les conflits nécessitant des corrections plus poussées pouvant être corrigées sans autre outil. </para>
+</sect2>
+
+<sect2
+><title
+>Et ...</title>
+<itemizedlist>
+   <listitem
+><para
+>Une navigation rapide via les bouttons.</para
+></listitem>
+   <listitem
+><para
+>Un clic de souris dans la colonne du sommaire synchronise toutes les fenêtres pour indiquer la même position.</para
+></listitem>
+   <listitem
+><para
+>Sélectionnez et copiez depuis n'importe qu'elle fenêtre et collez dans la fenêtre de résultat de la fusion.</para
+></listitem>
+   <listitem
+><para
+>La colonne d'aperçu qui montre où les changements et conflits sont situés.</para
+></listitem>
+   <listitem
+><para
+>Les couleurs sont ajustables a vos préférences.</para
+></listitem>
+   <listitem
+><para
+>Taille des alinéas ajustable.</para
+></listitem>
+   <listitem
+><para
+>Option pour insérer des espaces à la place des alinéas.</para
+></listitem>
+   <listitem
+><para
+>Ouvrir les fichiers confortablement via une boîte de dialogue ou spécifier les fichiers via la ligne de commande.</para
+></listitem>
+   <listitem
+><para
+>Chercher une partie d'un texte dans toutes les fenêtres. Trouver (Ctrl+F) et trouver le suivant (F3).</para
+></listitem>
+   <listitem
+><para
+>Indiquer le numéro de ligne pour chaque ligne. </para
+></listitem>
+   <listitem
+><para
+>Coller le presse-papiers ou tirer un texte dans une fenêtre diff.</para
+></listitem>
+   <listitem
+><para
+>Transparence réseau via KIO.</para
+></listitem>
+   <listitem
+><para
+>Peut être utilisé pour voir les diff dans KDevelop 3.</para
+></listitem>
+   <listitem
+><para
+>Coupage des mots dans les lignes longues.</para
+></listitem>
+   <listitem
+><para
+>...</para
+></listitem>
+</itemizedlist>
+</sect2>
+</sect1>
+</chapter>
+
+<chapter id="documentation"
+><title
+>Documentation de la comparaison et fusion de fichiers</title>
+
+<sect1 id="commandline"
+><title
+>Options en ligne de commande</title>
+
+<sect2
+><title
+>Comparer 2 fichiers : </title>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>fichier1 fichier2</replaceable
+>
+</screen>
+</sect2>
+
+<sect2
+><title
+>Fusionner 2 fichiers : </title>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>fichier1 fichier2</replaceable
+> -m
+   <command
+>kdiff3</command
+> <replaceable
+>fichier1 fichier2</replaceable
+> -o <replaceable
+>fichier-résultat</replaceable
+>
+</screen>
+</sect2>
+
+<sect2
+><title
+>Comparer 3 fichiers : </title>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>fichier1 fichier2 fichier3</replaceable
+>
+</screen>
+</sect2>
+
+<sect2
+><title
+>Fusionner 3 fichiers : </title>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>fichier1 fichier2 fichier3</replaceable
+> -m
+   <command
+>kdiff3</command
+> <replaceable
+>fichier1 fichier2 fichier3</replaceable
+> -o <replaceable
+>fichier-résultat</replaceable
+>
+</screen>
+<para
+>Notez que <replaceable
+>fichier1</replaceable
+> sera traité comme étant la base de <replaceable
+>fichier2</replaceable
+> et <replaceable
+>fichier3</replaceable
+>. </para>
+</sect2>
+
+<sect2
+><title
+>Cas spécial : fichiers du même nom </title>
+<para
+>Si tous les fichiers ont le même nom mais sont situés dans des dossiers différents, vous pouvez réduire la saisie en ne spécifiant que le nom d'un fichier, pour le premier fichier. Ex : </para>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>dos1/fichier dos2 dos3</replaceable
+>
+</screen>
+</sect2>
+
+<sect2
+><title
+>Ligne de commande pour lancer une comparaison ou fusion de dossiers : </title>
+<para
+>C'est assez similaire, mais cela concerne désormais des dossiers.</para>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>dos1 dos2</replaceable>
+   <command
+>kdiff3</command
+> <replaceable
+>dos1 dos2</replaceable
+> -o <replaceable
+>dossier-de-destination</replaceable>
+   <command
+>kdiff3</command
+> <replaceable
+>dos1 dos2 dos3</replaceable>
+   <command
+>kdiff3</command
+> <replaceable
+>dos1 dos2 dos3</replaceable
+> -o <replaceable
+>dossier-de-destination</replaceable
+>
+</screen>
+<para
+>Pour la comparaison et fusion de dossiers vous pouvez continuer à lire <link linkend="dirmerge"
+>ici</link
+>.</para>
+</sect2>
+
+<sect2
+><title
+>Pour plus d'informations sur les options en ligne de commande, utilisez : </title>
+<screen
+><command
+>kdiff3</command
+> --help
+Options :
+  -m, --merge               Fusionner.
+  -b, --base file           Fichier de base explicite. Par compatibilité avec certains outils.
+  -o, --output file         Fichier de résultat. Implique -m. Ex. : -o newfile.txt
+  --out file                Fichier de résultat, encore. (Par compatibilité avec certains outils).
+  --auto                    Pas d'interface graphique si tous les conflits se résolvent tout seuls. (Nécessite -o fichier)
+  --qall                    Ne pas résoudre les conflits automatiquement. (Par compatibilité)...
+  --L1 alias1               Alias pour le fichier 1 (base).
+  --L2 alias2               Alias pour le fichier 2.
+  --L3 alias3               Alias pour le fichier 3.
+  -L, --fname alias         Alias alternatif. Mettez cela une fois pour chaque entrée.
+  -u                        N'a pas d'effet. Pour la compatibilité avec certains outils.
+</screen>
+</sect2>
+
+</sect1>
+
+<sect1 id="opendialog"
+><title
+>Fenêtre d'ouverture</title>
+<para
+>Étant donné que plusieurs fichiers doivent être sélectionnes en entrée, le programme a une fenêtre d'ouverture spéciale : </para>
+<screenshot
+><mediaobject>
+<imageobject
+><imagedata fileref="open_dialog.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+<para
+>La fenêtre d'ouverture vous permet d'éditer les noms des fichier à la main, en sélectionnant un fichier via le navigateur ("Fichier...") ou vous permet de choisir des fichiers récemment utilisés via la liste défilante. Si vous rouvrez la fenêtre, alors les noms actuels seront toujours ici. Le troisième fichier d'entrée n'est pas nécessaire. SI l'entrée pour "C" reste vide, alors une analyse diff de deux fichiers seulement sera effectuée. </para
+><para
+>Vous pouvez aussi sélectionner un dossier via "Dossier...". Si pour A un dossier est spécifié alors une comparaison/fusion de dossiers débutera. </para
+><para
+>Si "Fusionner" est sélectionné, alors la ligne "Sortie" devient éditable. Mais il n'est pas nécessaire de spécifier le fichier du résultat de la fusion immédiatement. Vous pouvez aussi le faire au moment de l'enregistrement. </para
+><para
+>Le bouton "Configurer..." ouvre la fenêtre des options pour que vous puissiez mettre en place les options avant de débuter l'analyse. </para>
+</sect1>
+
+<sect1 id="pasteinput"
+><title
+>La saisie en Coller et Lâcher</title>
+<para
+>Parfois vous voulez comparer les parties d'un texte qui n'est pas un fichier. KDiff3 vous permet aussi de coller le texte du presse-papiers dans une fenêtre de diff sélectionnée. L'analyse diff est alors immédiate. Dans la fenêtre ouverte vous n'aurez pas besoin de spécifier des fichiers, mais simplement de la fermer via "Annuler". </para
+><para
+>Vous pouvez aussi utiliser la méthode du tirer/lâcher : Tirez un fichier depuis le navigateur ou sélectionnez du texte depuis un éditeur et lâchez le dans la fenêtre de diff. </para
+><para
+>Quelle est l'idée ? Parfois un fichier contient deux fonctions similaires, mais vérifier à quel niveau elles sont similaires est compliqué si vous devez d'abord créer deux fichiers puis les charger. Maintenant vous pouvez simplement copier, coller et comparer les sections en question. </para
+><para
+>Note : Actuellement vous ne pouvez rien tirer depuis KDiff3. Seulement le lâchage dans l'entrée de diff est géré. </para
+><para
+>Attention : Certains éditeurs interprètent toujours la méthode du tirer/lâcher vers un autre programme comme un couper (à la place de copier) et coller. Vos données originales pourraient alors être perdues. </para>
+</sect1>
+
+<sect1 id="interpretinginformation"
+><title
+>Interpréter l'information dans les fenêtres de saisie</title>
+<screenshot
+><mediaobject>
+<imageobject
+><imagedata fileref="screenshot_diff.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+<para
+>En haut de chaque fenêtre il y a sa "ligne d'informations". Les lignes d'informations des fenêtres de saisie contiennent une lettre "A", "B" ou "C", le nom de fichier et le numéro de ligne de la première ligne visible dans la fenêtre. (Notez que la fenêtre "C" est optionnelle). Chaque ligne d'information apparaît dans une couleur différente. (Si les chemins sont trop longs, alors vous pouvez déplacer la souris sur la ligne d'information et une bulle apparaîtra, vous montrant le nom complet). </para
+><para
+>Les trois fenêtres de saisies sont assignées aux lettres "A", "B" et "C". "A" a la couleur bleue, "B" le vert et "C" le mauve. (Ce sont les options par défaut, mais elles peuvent être changées via le Menu Options). </para
+><para
+>Quand une différence est détectée les couleurs montrent quel fichier diffère. Quand les deux fichiers en entrée diffèrent, alors la couleur utilisée est le rouge par défaut ("Couleur de conflit" dans les Options). Ce schéma de couleur est particulièrement utile si vous avez trois fichiers en entrée, ce qui sera vu dans la prochaine section (<link linkend="merging"
+>Fusion</link
+>). </para
+><para
+>A la gauche de chaque texte se trouve la "colonne de résumé". Si des différences sont trouvées sur une ligne alors la colonne de résumé affiché la couleur respective. Pour une différence d'espace seulement la colonne est changée. Pour les langages de programmation où les espaces ne sont pas si importants, il est pratique de voir d'un coup d'oeil si quelque chose d'important a été modifié. (En C/C++ les espaces ne sont intéressants que dans les chaînes, commentaires, pour le préprocesseur et dans quelques situations très ésotériques). </para
+><para
+>La ligne verticale séparant la colonne de résumé et le texte est interrompue si le fichier en entrée n'a pas de lignes. Quand la coupe des mots est activée, alors cette ligne verticale apparaît en pointillé. </para
+><para
+>Sur le côté droit une colonne d'"aperçu" est visible à gauche de la barre de défilement verticale. Cela montre la colonne de résumé compressée de l'entrée "A". Toutes les différences et conflits sont visibles d'un coup d'oeil. Quand seulement deux fenêtre de saisie sont utilisées, alors toutes les différences apparaîtront en rouge ici car chaque différence est aussi un conflit. Un rectangle noir encadre les parties visibles des entrées. Pour les fichiers très longs, quand le nombre de lignes est plus grand que la hauteur de la colonne d'aperçu en pixels, alors plusieurs lignes partagent la seule ligne d'aperçu. Un conflit a alors la priorité maximale sur les autres simples différences, qui ont la priorité sur les lignes ou rien ne change, pour qu'aucune différence ou conflit ne soit perdu ici. En cliquant sur cette colonne d'aperçu le texte correspondant sera affiché. </para>
+</sect1>
+
+
+<sect1 id="merging"
+><title
+>Fusionner et la Fenêtre d'édition du Résultat de la Fusion</title>
+<screenshot
+><mediaobject>
+<imageobject
+><imagedata fileref="screenshot_merge.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+<para
+>La fenêtre d'édition du résultat de la fusion (située sous la fenêtre de saisie de diff) a aussi une ligne d'information en haut affichant "Résultat :", le nom du fichier et "[Modifié]" si vous avez édité quelque chose. Habituellement elle contiendra du texte à travers les facilités de fusion automatique, mais conserve souvent quelques conflits. </para
+><para
+>!!! L'enregistrement est désactivé avant que tous les conflits ne soient résolus !!! (Utilisez les boutons "Aller au conflit suivant/précédent" pour trouver les conflits restants). </para
+><para
+>Avec seulement deux fichiers en entrée, chaque différence est aussi un conflit devant être résolu manuellement. </para
+><para
+>Avec trois fichiers en entrée, le premier fichier est traité comme la base, alors que les second et troisième fichiers en entrée contiennent des modifications. Quand dans une ligne seulement soit B ou C a changé mais pas les deux, la source changée sera sélectionnée. Seulement si B et C ont changé sur les mêmes lignes, alors l'outil détectera un conflit devant être résolu manuellement. Quand B et C sont les mêmes, mais différents de A, alors C est sélectionné. </para
+><para
+>La fenêtre d'édition du résultat de la fusion a aussi une colonne de résumé sur la gauche. Elle affiche la lettre de l'entrée sélectionnée pour une ligne ou rien si les trois sources étaient égales sur une ligne. Pour les conflits, elle affiche un point d'interrogation "?" et la ligne affiche "&lt;Conflit de Fusion&gt;" tout en rouge. Étant donné que la résolution des conflits ligne par ligne prendrait beaucoup de temps, les lignes sont groupées en groupes ayant les mêmes caractéristiques de différences et conflits. Seuls les conflits d'espaces sont séparés des autres conflits pour faciliter la fusion de fichiers où l'indentation a changé pour beaucoup de lignes. </para
+><para
+>Quand vous cliquez dans la colonne de résumé avec le bouton gauche de la souris dans une fenêtre alors le groupe correspondant à cette ligne sera sélectionné dans toutes les fenêtres et le début de ce groupe sera affiché. (Cela peut invoquer un saut de repositionnement automatique dans la fenêtre si le début d'un groupe n'est pas visible). Ce groupe devient alors le "groupe actuel". Il est surligné et une barre noire apparaît sur le côté gauche du texte. </para
+><para
+>Regardez les bouttons de sélection de l'entrée contenant les lettres "A", "B" et "C" dans la barre des bouttons sous la barre de menu. Quand vous cliquez sur un bouton de sélection d'entrée, les lignes de cette entrée seront ajoutées à la fin du groupe sélectionné si ce groupe ne contenait pas déjà cette source auparavant. Sinon les lignes de cette entrée seront supprimées. </para
+><para
+>En outre, vous pouvez éditer directement n'importe quelle ligne ici. La colonne de résumé affichera "m" pour chaque ligne ayant été modifiée. </para
+><para
+>Parfois, quand une ligne est supprimée soit par fusion automatique ou édition et qu'aucune autre ligne ne reste dans ce groupe, alors le texte &lt;Pas de ligne à la source&gt; apparaîtra sur cette ligne. C'est juste pour vous souvenir qu'il y avait une source ici si vous changez d'idée et sélectionnez une ligne de nouveau. Ce texte n'apparaîtra pas dans le fichier enregistré ou dans n'importe quelle sélection que vous copierez et collerez. </para
+><para
+>Le texte "&lt;Conflit de Fusion&gt;" apparaîtra dans le presse-papiers si vous copiez et collez du texte contenant une ligne au maximum. Mais faites toujours attention à cela. </para
+><para
+>La fusion normale démarrera par la résolution automatique de conflits simples. Mais le menu "Fusion" propose quelques actions pour d'autres besoins communs. Si vous avez à sélectionner la même source pour la plupart des conflits, alors vous pouvez choisir "A",  "B" ou "C" partout, ou seulement pour les conflits restant non résolus, ou pour les conflits d'espacement non résolus. Si vous voulez décider chaque différence vous même, vous pouvez "Mettre des deltas aux conflits". Ou si vous voulez retourner aux choix automatiques de KDiff3 alors sélectionnez "Résoudre automatiquement les conflits simples". KDiff3 redémarre alors la fusion. Pour les actions changeant vos précédentes modifications KDiff3 vous demandera votre confirmation avant de continuer. </para
+><para
+>Note : Quand vous choisissez une des sources pour les conflits d'espacement non résolus et que les options "Ignorer les nombres" ou "Ignorer les commentaires C/C++" sont utilisées alors les changements dans les nombres ou commentaires seront aussi traités comme des espaces. </para>
+</sect1>
+
+<sect1 id="navigation"
+><title
+>Navigation et Édition</title>
+<para
+>La majorité de la navigation sera effectuée avec les barres de défilement et la souris mais vous pouvez aussi naviguer avec les touches. Si vous cliquez dans une des fenêtres alors vous pouvez utilisez les touches page précédente, page suivante, home, fin, ctrl-home, ctrl-fin et les flèches comme vous le feriez dans les autres programmes. La colonne de résumé située à côté de la barre de défilement verticale des fichiers en entrée peut aussi être utilisée pour naviguer en cliquant dessus. </para
+><para
+>Vous pouvez aussi utiliser la molette de la souris pour monter et descendre. </para
+><para
+>Dans l'éditeur de résultat de la fusion vous pouvez aussi utiliser les autres touches pour l'édition. Vous pouvez basculer entre les modes insérer et remplacer avec la touche Insertion. (Le mode par défaut est le mode d'insertion). </para
+><para
+>Un clic gauche dans une colonne de résumé synchronisera toutes les fenêtres pour qu'elles affichent le début du même groupe de lignes (comme expliqué dans la section <link linkend="merging"
+>"Fusion"</link
+>). </para
+><para
+>La barre de boutons contient aussi sept bouttons de navigation avec lesquels vous pouvez naviguer vers la première/actuelle/dernière différence, vers la différence précédente/suivante (ctrl-haut/ctrl-bas), vers le conflit précédent/suivant (ctrl-pgpréc/ctrl-pgsuiv), ou vers le conflit non résolu précédent/suivant. Notez que pour KDiff3 un "conflit" qui n'a pas été résolu automatiquement au début de la fusion reste un "conflit" même s'il est résolu. Voila la nécessité de distinguer les "conflits non résolus". </para
+><para
+>Il y a aussi un bouton "Aller automatiquement au conflit non résolu suivant après la sélection de la source" (Avancée automatique). Si vous activez cette option, alors, quand une source est sélectionnée, KDiff3 avancera automatiquement en sélectionnant le prochain conflit non résolu. Cela vous aidera si vous voulez toujours ne choisir qu'une source. Si vous avez besoin de deux sources, ou si vous voulez éditer après la sélection, alors vous voudrez probablement désactiver cette fonctionnalité. Avant d'avancer au conflit suivant KDiff3 vous montre les modifications de ce choix pour un court laps de temps. Ce délai est ajustable dans les Options de Fusion et de Diff : Vous pouvez spécifier le "Délai d'avancée automatique" en millisecondes entre 0 et 2000. Astuce : Vous êtes fatigué d'effectuer trop de clics ? - Utilisez un court délai d'avancée automatique et les raccourcis Ctrl-1/2/3 pour sélectionner A/B/C pour les conflits. </para>
+</sect1>
+
+<sect1 id="selections"
+><title
+>Sélectionner, Copier et Coller</title>
+<para
+>La fenêtre d'entrée n'affiche pas de curseur, les sélections peuvent donc être effectuées via la souris en cliquant avec le bouton gauche au début, en gardant le bouton pressé et en se déplaçant à la fin de la sélection souhaitée, où vous relâchez le bouton. Vous pouvez aussi sélectionner un mot en double cliquant dessus. Dans l'éditeur de résultat de la fusion vous pouvez aussi sélectionner via le clavier en gardant le bouton "Maj" pressé et en naviguant via les flèches. </para
+><para
+>Pour copier vers le presse-papiers vous devez cliquez sur le boutton "Copier" (Ctrl-C ou Ctrl-Inser). Mais il existe une fonctionnalité "Copier automatiquement la sélection". Si elle est activée, alors tout ce que vous sélectionnerez sera copié automatiquement vers le presse papier et vous n'aurez pas besoin de copier. Mais faites attention lorsque vous utilisez cela car le contenu du presse-papiers peut être effacé accidentellement. </para
+><para
+>"Couper" (Ctrl-X ou Maj-Suppr) copie le texte vers le presse-papiers et supprime celui-ci et "Coller" (Ctrl-V ou Maj-Inser) insère le texte du presse-papiers à la position du curseur à la place de la sélection actuelle. </para>
+</sect1>
+
+<sect1 id="saving"
+><title
+>Enregistrer</title>
+<para
+>L'enregistrement ne sera autorisé que quand tous les conflits seront résolus. Si le fichier existe déjà et que la fonctionnalité "Effectuer une copie de sauvegarde des fichiers" est activée alors le fichier existant sera renommé avec une extension en ".orig", mais si un fichier .orig existe déjà il sera supprimé. Quand vous quittez ou lancez une autre analyse diff et que les données n'ont pas encore été enregistrées, alors KDiff3 vous demandera si vous voulez enregistrer, annuler ou continuer sans enregistrer. (KDiff3 ne saisit aucun signal. Donc si vous "tuez" KDiff3 vos données seront perdues). </para
+><para
+>Les fins de ligne sont enregistrées selon la méthode normale de l'OS. Pour les Unix chaque fin de ligne se termine avec un caractère "\n", tandis que pour les systèmes basés sur Win32 chaque ligne se termine avec un retour chariot et "\r\n". KDiff3 ne préserve pas les fins de ligne des fichiers en entrée, ce qui signifie aussi que vous ne devriez pas utiliser KDiff3 pour les fichiers binaires. </para>
+</sect1>
+
+<sect1 id="find"
+><title
+>Trouver des chaînes</title>
+<para
+>Vous pouvez chercher une chaîne dans n'importe quelle fenêtre de KDiff3. La commande "Chercher..." (Ctrl-F) dans le menu Édition ouvre une fenêtre vous permettant de spécifier la chaîne à rechercher. Vous pouvez aussi sélectionner la fenêtre dans laquelle la chaîne doit être cherchée. La recherche reste toujours au premier plan. En utilisant "Chercher le suivant" (F3), vous chercherez l'occurrence suivante. Si vous sélectionner plusieurs fenêtres, alors la première fenêtre sera scannée du début jusqu'à la fin avant que la recherche ne démarre dans la fenêtre suivante au premier plan, etc. </para>
+</sect1>
+
+
+<sect1 id="options"
+><title
+>Options</title>
+<para
+>Les options et la liste des fichiers récemment ouverts seront enregistrées lorsque vous quitterez le programme, et rechargées lorsque vous le démarrerez. (Menu Options / Configurer KDiff3)... </para>
+<sect2
+><title
+>Police</title>
+<para
+>Sélectionnez un taille de police fixe. (Sur certains systèmes cette fenêtre présentera aussi des tailles de police variable, mais vous ne devriez pas les utiliser). </para>
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Police italique pour les différences :</emphasis
+></term
+><listitem
+><para
+>Si vous sélectionnez cela, alors les différences de texte seront affichées dans la version italique de la police. Si la police ne supporte pas l'italique, cela ne fera rien.</para>
+   </listitem
+></varlistentry>
+</variablelist>
+</sect2>
+
+<sect2
+><title
+>Couleurs</title>
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Couleur du premier plan :</emphasis
+></term
+><listitem
+><para
+>Habituellement le noir. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Couleur de l'arrière plan :</emphasis
+></term
+><listitem
+><para
+>Habituellement le blanc. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Couleur de l'arrière plan de Diff :</emphasis
+></term
+><listitem
+><para
+>Habituellement le gris clair. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Couleur A :</emphasis
+></term
+><listitem
+><para
+>Habituellement le bleu foncé. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Couleur B :</emphasis
+></term
+><listitem
+><para
+>Habituellement le vert foncé. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Couleur C :</emphasis
+></term
+><listitem
+><para
+>Habituellement le mauve foncé. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Couleur de conflit :</emphasis
+></term
+><listitem
+><para
+>Habituellement le rouge.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Couleur de l'arrière plan de la sélection actuelle :</emphasis
+></term
+><listitem
+><para
+>Habituellement le jaune clair.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Couleur de l'arrière plan de la sélection différant actuelle :</emphasis
+></term
+><listitem
+><para
+>Habituellement le jaune foncé</para
+></listitem
+></varlistentry>
+</variablelist>
+<para
+>Pour les systèmes ne comprenant que 16 ou 256 couleurs certaines couleurs ne sont pas disponibles en forme pure. Sur ces systèmes le boutton "Par défaut" choisira une couleur pure. </para>
+</sect2>
+
+<sect2
+><title
+>Options de l'éditeur</title>
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Tabulation insère des espaces :</emphasis
+></term
+><listitem
+><para
+>Si ceci est désactivé et que vous pressez la touche de tabulation, un caractère de tabulation est inséré, sinon la quantité appropriée de caractères est insérée.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Taille de la tabulation :</emphasis
+></term
+><listitem
+><para
+>Peut être ajustée pour vos besoins spécifique. Par défaut, 8. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Indentation automatique :</emphasis
+></term
+><listitem
+><para
+>Quand vous pressez le bouton Entrée ou Retour l'indentation de la ligne précédente est utilisée pour la nouvelle ligne. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Copier automatiquement la sélection :</emphasis
+></term
+><listitem
+><para
+>Chaque sélection est copiée automatiquement vers le presse-papiers quand cette option est activée. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Style de fin de ligne :</emphasis
+></term
+><listitem
+><para
+>Quand vous enregistrez vous pouvez sélectionner quel style de fin de ligne vous préférez. La configuration par défaut est le choix commun pour le système d'exploitation utilisé. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Utiliser un encodage local :</emphasis
+></term
+><listitem
+><para
+>Pour afficher des caractères étrangers. Essayez de changer cela si certains caractères de votre langue ne sont pas affichés correctement. </para
+></listitem
+></varlistentry>
+</variablelist>
+</sect2>
+
+<sect2
+><title
+>Options de Comparaison et de Fusion</title>
+<para
+>Quand vous comparez des fichiers, KDiff3 essaie d'abord de comparer les lignes qui sont égales dans les trois fichiers. Il ne peut ignorer les espaces que dans cette étape. La seconde étape compare chaque ligne. Dans cette étape les espaces ne seront pas ignorés. Durant la fusion les espaces ne seront pas ignorés non plus. </para>
+
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Se préserver contre le Retour Chariot :</emphasis
+></term
+><listitem
+><para
+>Certains éditeurs (sur certains systèmes) enregistrent les caractères de retour chariot '\r' et saut de ligne '\n', tandis que les autres n'enregistrent que le saut de ligne '\n'. Habituellement KDiff3 ignore le retour chariot, mais alors les fichiers n'auront pas la même taille, mais seront les mêmes en comparaison terme à terme. Quand cette option est activée, alors les caractères de retour chariot seront visibles mais traités comme des espaces. Cette option doit être désactivée lors d'une fusion. Elle est désactivée par défaut.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Ignorer les nombres :</emphasis
+></term
+><listitem
+><para
+>Désactivé par défaut. Les chiffres ('0'-'9', '.', '-') seront ignorés dans la première partie de l'analyse durant laquelle la comparaison des lignes est effectuée. Dans le résultat les différences seront affichées dans tous les cas, mais elles sont traitées comme des espaces. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Ignorer les commentaires C/C++ :</emphasis
+></term
+><listitem
+><para
+>Désactivé par défaut. Les changements dans les commentaires seront traités comme les changements dans les espaces. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Ignorer la casse :</emphasis
+></term
+><listitem
+><para
+>Désactivé par défaut. Les différences de casse de caractères (comme 'A' et 'a') seront traitées comme des changements dans les espaces. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Commande Préprocesseur :</emphasis
+></term
+><listitem
+><para
+>Se reporter à la <link linkend="preprocessors"
+>section suivante</link
+>. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Commande préprocesseur de comparaison de ligne :</emphasis
+></term
+><listitem
+><para
+>Se reporter à la <link linkend="preprocessors"
+>section suivante</link
+>. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>S'efforcer :</emphasis
+></term
+><listitem
+><para
+>S'efforcer de trouver des différences encore plus petites. (Activé par défaut). Ceci sera probablement efficace pour les fichiers lourds et compliqués, lent pour les fichiers très lourds. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Délai d'avancée automatique (en ms) :</emphasis
+></term
+><listitem
+><para
+>Quand le mode d'avancée automatique est activé, cette option spécifie la durée d'affichage du résultat de la sélection avant de sauter au conflit non résolu suivant. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Choix par défaut pour les espaces lors d'une fusion à 2/3 fichiers :</emphasis
+></term
+><listitem
+><para
+>Résoudre automatiquement tous les conflits d'espaces en choisissant le fichier spécifié. (Le choix par défaut est le choix manuel). Utile si tous les espaces ne sont pas vraiment importants dans les fichiers. Si vous avez besoin de cela occasionellement, il est mieux d'utiliser "Choisir A/B/C pour tous les conflits d'espaces non résolus" dans le menu de fusion. Notez que si vous activésoit "Ignorer les nombres" ou "Ignorer les commentaires C/C++" alors ce choix automatique est aussi appliqué pour les conflits dans les nombres ou les commentaires. </para
+></listitem
+></varlistentry>
+</variablelist>
+
+</sect2>
+
+<sect2
+><title
+>Fusion de dossiers</title>
+<para
+>Ces options sont en relation avec le scan de dossiers et le déroulement de la fusion : Reportez-vous à la <link linkend="dirmergeoptions"
+>Documentation sur la Comparaison/Fusion de dossiers</link
+> pour plus de détails. </para
+><para
+>Il y a déjà une option ici qui est aussi pertinente pour l'enregistrement de fichiers seuls : </para>
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Fichiers de sauvegarde :</emphasis
+></term
+><listitem
+><para
+>Quand un fichier est enregistré et qu'une ancienne version existe déjà, alors la version originale sera renommée avec une extension ".orig". Si un ancien fichier de sauvegarde portant l'extension ".orig" existe déjà, alors il sera supprimé sans sauvegarde. </para
+></listitem
+></varlistentry>
+</variablelist>
+</sect2>
+
+<sect2
+><title
+>Divers</title>
+<para
+>(Ces options et actions sont disponibles dans les menus ou la barre des boutons).</para>
+<variablelist>
+  <varlistentry
+><term
+><emphasis
+>Afficher les numéros de ligne :</emphasis
+></term
+><listitem
+><para
+>Vous pouvez sélectionner si les numéros de ligne doivent être affichés pour les fichiers en entrée.</para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Afficher les espaces et les alinéas pour les différences :</emphasis
+></term
+><listitem
+><para
+>Parfois les espaces et alinéas visibles peuvent vous déranger. Vous pouvez désactiver cette option.</para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Afficher les espaces :</emphasis
+></term
+><listitem
+><para
+>Désactivez cette option pour supprimer tous les surlignements ou les changements d'espaces dans le texte ou dans les colonnes d'aperçu. (Notez que cela s'applique aussi aux changements dans les nombres ou commentaires quand les options "Ignorer les nombres" ou "Ignorer les commentaires" sont actives).</para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Options de l'aperçu :</emphasis
+></term
+><listitem
+><para
+>Ces choix ne sont disponibles que si vous comparez trois fichiers. Dans le mode normal toutes les différences sont affichées dans une colonne d'aperçu codée en une seule colonne. Mais parfois vous pouvez être particulièrement intéressés par les différences entre seulement deux de ces trois fichiers. En sélectionnant l'aperçu "A et B", "A et C" ou "B et C", une seconde colonne d'aperçu sera affichée avec les informations nécessaires à côté de l'aperçu normal. </para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Fenêtre de coupe des mots :</emphasis
+></term
+><listitem
+><para
+>Coupe des mots lorsque leur longueur dépasse la largeur de la fenêtre. </para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Afficher la fenêtre A/B/C :</emphasis
+></term
+><listitem
+><para
+>Parfois vous voudrez mieux utiliser l'espace sur l'écran pour les longues lignes. Cachez les fenêtres qui ne sont pas importantes. (Dans le menu Fenêtre).</para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Sens de la séparation des fenêtres :</emphasis
+></term
+><listitem
+><para
+>Choisir entre les fenêtres de comparaison affichées côte à côte (A à côté de B à côté de C) ou l'une au-dessus de l'autre (A sur B sur C). Cela devrait aussi vous aider si les lignes sont longues. (Dans le menu Fenêtre). </para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Démarrer une fusion rapide :</emphasis
+></term
+><listitem
+><para
+>Parfois vous voyez des différences et vous décidez de fusionner. <inlinemediaobject
+><imageobject
+><imagedata fileref="merge_current.png" format="PNG"/></imageobject
+></inlinemediaobject
+> "Fusionner le fichier actuel" dans le menu Dossiers fonctionne aussi si vous voulez comparer deux fichiers. Un simple clic démarre la fusion et utilise le nom de fichier du dernier fichier en entrée comme étant le nom du fichier résultat de la fusion par défaut. (Quand ceci est utilisé pour redémarrer une fusion, alors le nom de fichier résultat sera conservé).</para
+></listitem
+></varlistentry>
+</variablelist>
+</sect2>
+
+<sect2 id="shortcuts"
+><title
+>Configurer les raccourcis clavier</title>
+<para
+>Actuellement seule la version KDE supporte la configuration des raccourcis clavier par l'utilisateur. (Menu Configuration / Configurer les raccourcis clavier)... </para>
+</sect2>
+</sect1>
+
+<sect1 id="preprocessors"
+><title
+>Commandes préprocesseur</title>
+<para
+>KDiff3 supporte deux options préprocesseur. </para
+><para>
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Commande Préprocesseur :</emphasis
+></term
+><listitem
+><para
+>Quand un fichier est lu, il sera traité à travers cette commande externe. Le résultat de cette commande sera visible à la place du fichier original. Vous pouvez écrire votre propre commande préprocesseur qui remplit des besoins spécifiques. Utilisez cela pour exclure les parties du fichier qui vous gênent, ou corriger automatiquement l'indentation, etc. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Commande préprocesseur de comparaison de ligne :</emphasis
+></term
+><listitem
+><para
+>Quand un fichier est lu, il sera traité à travers cette commande externe. Si une commande préprocessus (voir ci-dessus) est aussi spécifiée, alors le fichier résultat de la commande préprocesseur est utilisé pour le préprocessus de traitement de lignes. Le résultat de cette dernière ne sera utilisé que durant la phase de comparaison de lignes de l'analyse. Vous pouvez écrire votre propre commande préprocesseur qui remplit des besoins spécifiques. Chaque ligne en entrée a une ligne en sortie correspondante. </para
+></listitem
+></varlistentry>
+</variablelist>
+</para>
+<para
+>L'idée est de permettre à l'utilisateur d'avoir une plus grande flexibilité de configuration du résultat de la comparaison. Mais cela nécessite un programme externe, et beaucoup d'utilisateurs ne veulent pas en écrire un eux-mêmes. La bonne nouvelle est que très souvent <command
+>sed</command
+> ou <command
+>perl</command
+> feront l'affaire. </para>
+<para
+>Exemple : Cas simple : Considérons le fichier a.txt (6 lignes) : <screen>
+      aa
+      ba
+      ca
+      da
+      ea
+      fa
+</screen
+> Et le fichier b.txt (3 lignes) : <screen>
+      cg
+      dg
+      eg
+</screen
+> Sans commande préprocesseur les lignes suivantes seront placées les unes à côté des autres  <screen>
+      aa - cg
+      ba - dg
+      ca - eg
+      da
+      ea
+      fa
+</screen
+> Ceci n'est probablement pas voulu étant donné que la première lettre contient l'information intéressante actuelle. Pour aider l'algorithme à ignorer la seconde lettre nous pouvons utiliser un préprocesseur qui remplacera 'g' par 'a' : <screen>
+   <command
+>sed</command
+> 's/g/a/'
+</screen
+> Avec cette commande le résultat de la comparaison devrait être : <screen>
+      aa
+      ba
+      ca - cg
+      da - dg
+      ea - eg
+      fa
+</screen
+> L'algorithme de comparaison regarde les fichiers après avoir lancé le préprocesseur, mais à l'écran le fichier est inchangé. (Le préprocesseur normal aurait changé aussi les données affichées à l'écran). </para>
+
+<sect2 id="sedbasics"
+><title
+>Bases de <command
+>sed</command
+></title>
+<para
+>Cette section n'introduit qu'aux fonctions les plus basiques de <command
+>sed</command
+>. Pour plus d'informations reportez vous à <ulink url="info:/sed"
+>la page info de sed</ulink
+> ou <ulink url="http://www.gnu.org/software/sed/manual/html_mono/sed.html"
+>http://www.gnu.org/software/sed/manual/html_mono/sed.html</ulink
+>. Une version précompilée pour Windows peut être trouvée à <ulink url="http://unxutils.sourceforge.net"
+>http://unxutils.sourceforge.net</ulink
+>. Notez que les exemples qui suivent partent du principe que la commande <command
+>sed</command
+> est dans un dossier de la variable d'environnement PATH. Si ce n'est pas le cas, vous devrez spécifier le chemin complet absolu pour la commande. Notez aussi que les exemples qui suivent utilisent les guillemets simples (') qui ne fonctionnent pas sous windows. Sur windows vous devez utilisez les doubles guillemets (") à la place. </para>
+<para
+>Dans ce contexte seule la commande de substitution <command
+>sed</command
+> est utilisée : <screen>
+   <command
+>sed</command
+> 's/<replaceable
+>REGEXP</replaceable
+>/<replaceable
+>REPLACEMENT</replaceable
+>/<replaceable
+>FLAGS</replaceable
+>'
+</screen
+> Avant d'utiliser une nouvelle commande dans KDIff3, vous devriez d'abord la tester dans la console. Ici la commande <command
+>echo</command
+> est utile. Exemple : <screen>
+   <command
+>echo</command
+> abrakadabra | <command
+>sed</command
+> 's/a/o/'
+   -> obrakadabra
+</screen
+> Cet exemple affiche une commande sed très simple qui remplace la première occurrence de "a" par un "o". Si vous voulez remplacer toutes les occurrences vous aurez besoin du flag "g" : <screen>
+   <command
+>echo</command
+> abrakadabra | <command
+>sed</command
+> 's/a/o/g'
+   -> obrokodobro
+</screen
+> Le symbole "|" est la commande tuyau qui transfère la sortie de la commande précédente vers l'entrée de la commande suivante. Si vous voulez tester avec un fichier plus long vous pouvez utiliser <command
+>cat</command
+> sur les systèmes basés sur Unix ou <command
+>type</command
+> sur les systèmes Windows. <command
+>sed</command
+> fera la substitution pour chaque ligne. <screen
+><command
+>cat</command
+> <replaceable
+>nom-du-fichier</replaceable
+> | <command
+>sed</command
+> <replaceable
+>options</replaceable
+>
+</screen>
+</para>
+</sect2>
+<sect2 id="sedforkdiff3"
+><title
+>Exemples d'utilisations de <command
+>sed</command
+> dans KDiff3</title>
+<sect3
+><title
+>Ignorer les autres types de commentaires</title>
+<para
+>Actuellement KDiff3 ne comprend que les commentaires C/C++. En utilisant la commande préprocesseur de traitement de ligne vous pouvez aussi ignorer d'autres types de commentaires, en les convertissant en commentaires C/C++. Exemple : Pour ignorer les commentaires commençant par "#", vous devriez les convertir en "//". Notez que vous devrez aussi activer l'option "Ignorer les commentaires C/C++" pour que cela ait un effet. La commande préprocesseur de traitement de ligne appropriée serait <screen>
+   <command
+>sed</command
+> 's/#/\/\//'
+</screen
+> Étant donné que pour <command
+>sed</command
+> le caractère "/" a un sens particulier, il est nécessaire de placer le caractère "\" devant chaque "/" dans une chaîne de remplacement. Parfois le "\" est nécessaire pour ajouter ou supprimer un sens particulier de certains caractères. Le guillemet simple (') avant et après la commande de substitution est désormais important, car sinon le shell essaierait d'interpréter certains caractères spéciaux comme'#', '$' ou '\' avant de les passer à <command
+>sed</command
+>. Notez que sur Windows vous aurez besoin des doubles marques de citation ici ("). Windows substitue les autres caractères comme '%', alors vous pourriez avoir quelques essais à faire. </para>
+</sect3>
+<sect3
+><title
+>Comparaison non sensible à la casse</title>
+<para
+>Utilisez la commande préprocesseur de traitement de ligne suivante pour convertir toutes ce qui est situé en entrée en majuscules : <screen>
+   <command
+>sed</command
+> 's/\(.*\)/\U\1/'
+</screen
+> Ici ".*" est une expression rationnelle qui trouve, dans ce contexte, tous les caractères de la ligne. Le "\1" est la chaîne de remplacement en référence au texte trouvé dans la première paire de "\(" et "\)". Le "\U" convertit le texte inséré en majuscules. </para>
+</sect3>
+
+<sect3
+><title
+>Ignorer les mots clés CVS</title>
+<para
+>CVS et d'autres systèmes de contrôle de version utilisent des mots clés pour insérer les chaînes générées automatiquement (<ulink url="info:/cvs/Keyword substitution"
+>info:/cvs/Keyword substitution</ulink
+>). Tous suivent le modèle "$KEYWORD generated text$". Nous avons maintenant besoin d'une commande préprocesseur de traitement de ligne qui ne supprime que le texte généré : <screen>
+   <command
+>sed</command
+> 's/\$\(Revision\|Author\|Log\|Header\|Date\).*\$/\$\1\$/'
+</screen
+> Le "\|" sépare les mots clés possibles. Vous pouvez vouloir modifier cette liste selon vos besoins. Le "\" avant le "$" est nécessaire car sinon le "$" signifie fin de la ligne. </para>
+<para
+>Quand vous ferez des expérimentations avec <command
+>sed</command
+> vous pourrez arriver à comprendre toutes ces expressions rationnelles. Elles sont utiles car beaucoup d'autres programmes supportent ces mêmes fonctionnalités. </para>
+</sect3>
+
+<sect3
+><title
+>Ignorer les nombres</title>
+<para
+>Ignorer les nombres est actuellement une option intégrée. Mais en tant qu'autre exemple, c'est ce qui se passerait si vous aviez mis comme commande préprocesseur de traitement de ligne. <screen>
+   <command
+>sed</command
+> 's/[0123456789.-]//g'
+</screen
+> Chaque caractère dans '[' ']' est remplacé par rien. </para>
+</sect3>
+
+<sect3
+><title
+>Ignorer certaines colonnes</title>
+<para
+>Parfois un texte est très strictement formaté, et il y a certaines colonnes que vous voudrez toujours ignorer, tandis que vous voudrez en gardez d'autres pour l'analyse. Dans l'exemple qui suit les cinq premières colonnes (caractères de chaque ligne) sont ignorés, les dix colonnes suivantes sont conservées, puis de nouveaux cinq colonnes sont ignorées et le reste de la ligne est conservé. <screen>
+   <command
+>sed</command
+> 's/.....\(..........\).....\(.*\)/\1\2/'
+</screen
+> Chaque point '.' correspond à un caractère. Le "\1" et "\2" dans la chaîne de remplacement réfère au texte correspondant situé entre la première paire de "\(" et"\)" dénotant que le texte doit être conservé. </para>
+</sect3>
+
+<sect3
+><title
+>Combiner plusieurs substitutions</title>
+<para
+>Parfois vous voudrez appliquer plusieurs substitutions à la fois. Vous pouvez alors utilisez le point-virgule ';' pour les séparer les unes des autres. Exemple : <screen
+><command
+>echo</command
+> abrakadabra | <command
+>sed</command
+> 's/a/o/g;s/\(.*\)/\U\1/'
+   -> OBROKODOBRO
+</screen>
+</para>
+</sect3>
+
+<sect3
+><title
+>Utiliser <command
+>perl</command
+> à la place de <command
+>sed</command
+></title>
+<para
+>A la place de <command
+>sed</command
+> vous pouvez vouloir utiliser quelque chose d'autre comme <command
+>perl</command
+>. <screen>
+   <command
+>perl</command
+> -p -e 's/<replaceable
+>REGEXP</replaceable
+>/<replaceable
+>REPLACEMENT</replaceable
+>/<replaceable
+>FLAGS</replaceable
+>'
+</screen
+> Mais certains détails sont différents avec <command
+>perl</command
+>. Notez que la où <command
+>sed</command
+> à besoin de "\(" and "\)" <command
+>perl</command
+> n'a besoin que de "(" and ")" sans les '\' qui le précède. Exemple : <screen
+><command
+>sed</command
+> 's/\(.*\)/\U\1/'
+   <command
+>perl</command
+> -p -e 's/(.*)/\U\1/'
+</screen>
+</para>
+</sect3>
+</sect2>
+
+<sect2
+><title
+>Ordre d'exécution des commandes préprocesseur</title>
+<para
+>Les données traversent tous les préprocesseurs internes et externes dans l'ordre suivant : </para>
+<itemizedlist>
+<listitem
+><para
+>Préprocesseur normal,</para
+></listitem>
+<listitem
+><para
+>Préprocesseur de traitement de ligne,</para
+></listitem>
+<listitem
+><para
+>Ignorer la casse (conversion en majuscule),</para
+></listitem>
+<listitem
+><para
+>Détection des commentaires C/C++,</para
+></listitem>
+<listitem
+><para
+>Ignorer les nombres,</para
+></listitem>
+<listitem
+><para
+>Ignorer les espaces</para
+></listitem>
+</itemizedlist>
+<para
+>Les données après le préprocesseur normal seront conservées pour l'affichage et la fusion. Les autres opérations ne modifient que les données que l'algorithme de comparaison de lignes peut voir. </para
+><para
+>Dans les rares cas ou vous utiliserez un préprocesseur normal, notez que le préprocesseur de traitement de ligne prend la sortie du préprocesseur normal en tant qu'entrée. </para>
+</sect2>
+
+<sect2
+><title
+>Attention</title>
+<para
+>Les commandes préprocesseur sont très souvent utiles, mais comme avec toutes les options modifiant vos textes ou cachant certaines différences automatiquement, vous pouvez accidentellement sauter certaines différences et dans le pire des cas supprimer des données importantes. </para
+><para
+>C'est pour cette raison que durant une fusion, si une commande préprocesseur normale est utilisée, KDiff3 vous en informera et vous demandera si elle doit être ou non désactivée. Mais ne vous inquiétez pas si une commande préprocesseur de traitement de ligne est active. La fusion ne sera pas terminée tant que tous les conflits ne seront pas résolus. SI vous avez désactivé "Afficher les espaces", alors les différences qui seront supprimées avec la commande préprocesseur de traitement de ligne seront aussi invisibles. Si le boutton d'enregistrement reste désactivé durant une fusion (à cause de conflits restants), assurez vous d'avoir activé "Montrer les espaces". Si vous ne voulez pas fusionner ces différences moins importantes manuellement, vous pouvez sélectionner "Choisir [A|B|C] pour tous les conflits d'espaces non résolus" dans le menu Fusion. </para>
+</sect2>
+</sect1>
+</chapter>
+
+
+<chapter id="dirmerge"
+><title
+>Comparaison et Fusion de dossiers avec KDiff3</title>
+<sect1 id="dirmergeintro"
+><title
+>Introduction</title>
+<para
+>Souvent les programmeurs doivent modifier beaucoup de fichiers dans un dossiers pour parvenir à leur but. Pour cela KDiff3 vous permet aussi de comparer et de fusionner des dossiers complets récursivement ! </para
+><para
+>Bien souvent la comparaison et la fusion de dossiers semble bien compliquée, il y a beaucoup de détails dont que vous devriez savoir. Le plus important est bien sur le fait que maintenant beaucoup de fichiers peuvent  être affectés par chaque opération. Si vous n'avez pas de sauvegardes de vos données originales, alors il  peut être très difficile voire impossible de revenir à l'état original. Donc, avant de démarrer une fusion, assurez-vous que vos données sont en sécurité, et qu'un retour à l'état initial est possible. Vous pouvez faire une archive ou utiliser un système de contrôle de version (CVS), mais même les programmeurs expérimentés et les intégrateurs ont besoin des anciennes sources. Et notez que même si moi (auteur de KDiff3) ait essayé de faire de mon mieux, je ne peux pas garantir qu'il n'y ait pas de bogues. Et selon la GNU-GPL il n'y a AUCUNE GARANTIE sur quoi que ce soit pour ce programme. Alors soyez humble et gardez toujours à l'esprit : </para>
+<blockquote
+><para>
+   <emphasis
+>L'erreur est humaine, mais pour vraiment faire n'importe quoi vous avez besoin d'un ordinateur.</emphasis>
+</para
+></blockquote>
+<para
+>Voila ce que ce programme peut faire pour vous : KDiff3... </para>
+<itemizedlist>
+     <listitem
+><para
+>...lit et compare deux ou trois dossiers récursivement,</para
+></listitem>
+     <listitem
+><para
+>... fait spécialement attention aux liens symboliques,</para
+></listitem>
+     <listitem
+><para
+>... vous permet de naviguer dans vos fichiers avec des double-clics,</para
+></listitem>
+     <listitem
+><para
+>... pour chacun d'eux propose une opération de fusion, que vous pouvez changer avant de démarrer une fusion de dossiers,</para
+></listitem>
+     <listitem
+><para
+>... vous permet de simuler la fusion et de lister les actions qui auraient eu lieu, sans les faire,</para
+></listitem>
+     <listitem
+><para
+>... vous permet de faire réellement la fusion, et vous permet d'interagir lorsqu'une action manuelle est nécessaire,</para
+></listitem>
+     <listitem
+><para
+>... vous permet de lancer l'opération pour tous les éléments (touche F7) ou pour l'élément sélectionné (touche F6),</para
+></listitem>
+     <listitem
+><para
+>... vous permet de continuer la fusion après une interaction manuelle avec la touche F7,</para
+></listitem>
+     <listitem
+><para
+>... crée des copies de sauvegarde en option, portant l'extension ".orig",</para
+></listitem>
+     <listitem
+><para
+>...</para
+></listitem>
+</itemizedlist>
+</sect1>
+
+<sect1 id="startingdirmerge"
+><title
+>Démarrer une comparaison ou une fusion de dossiers</title>
+<para
+>C'est très similaire à la fusion et à la comparaison d'un seul fichier. Vous devrez juste spécifier les dossiers depuis la ligne de commande ou la fenêtre d'ouverture de fichiers. </para>
+<sect2
+><title
+>Comparer/Fusionner deux dossiers : </title>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>dos1 dos2</replaceable>
+   <command
+>kdiff3</command
+> <replaceable
+>dos1 dos2</replaceable
+> -o <replaceable
+>dosdedest</replaceable
+>
+</screen>
+<para
+>Si aucun dossier de destination n'est spécifié, alors KDiff3 utilisera <replaceable
+>dos2</replaceable
+>. </para>
+</sect2>
+
+<sect2
+><title
+>Comparer/Fusionner trois dossiers : </title>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>dos1 dos2 dos3</replaceable>
+   <command
+>kdiff3</command
+> <replaceable
+>dos1 dos2 dos3</replaceable
+> -o <replaceable
+>dossier de destination</replaceable
+>
+</screen>
+<para
+>Quand trois dossiers sont fusionnés alors <replaceable
+>dos1</replaceable
+> est utilisé comme la base de la fusion. Si aucun dossier de destination n'est spécifié, alors KDiff3 utilisera <replaceable
+>dos3</replaceable
+> comme dossier de destination de la fusion. </para>
+
+<para
+>Notez que seule la comparaison démarre automatiquement, pas la fusion. Pour cela vous devrez sélectionner le choix du menu ou appuyez sur la touche F7. (Plus de détails à la suite). </para>
+</sect2>
+</sect1>
+
+<sect1 id="dirmergevisible"
+><title
+>Information visible</title>
+<para
+>Lors de la lecture des dossiers, une boîte de dialogue apparat vous informant de la progression. Si vous annulez le scan de dossier, alors seuls les fichiers déjà comparés seront listés. </para
+><para
+>Quand le scan de dossiers est terminé KDiff3 affiche une liste avec les résultats à gauche, ... </para>
+<screenshot
+><mediaobject>
+<imageobject
+><imagedata fileref="dirbrowser.png" format="PNG"/></imageobject
+> <!--alt="Image of the directory browser."-->
+</mediaobject
+></screenshot>
+<para
+>... et les détails concernant l'élément actuellement sélectionné à droite : </para>
+<screenshot
+><mediaobject>
+<imageobject
+><imagedata fileref="iteminfo.png" format="PNG"/></imageobject>
+   <!--alt="Image with information about the selected item."-->
+</mediaobject
+></screenshot>
+
+<sect2 id="name"
+><title
+>La colonne de nom</title>
+<para
+>Chaque fichier et dossier ayant été trouvé durant le scan et affiché ici dans une arborescence. Vous pouvez sélectionner un élément en cliquant dessus avec la souris. </para
+><para
+>Les dossiers sont fermés par défaut. Vous pouvez les développer ou les fermer on cliquant sur "+"/"-", en double cliquant sur l'élément ou simplement en utilisant les flèches gauche/droite du clavier. Le menu "Dossier" contient aussi deux actions "Naviguer dans tous les sous-dossiers" et "Refermer tous les sous-dossiers" avec lesquelles vous pouvez fermer ou développer tous les dossiers d'un seul coup. </para
+><para
+>Si vous double-cliquez sur un fichier, alors la comparaison démarre et la fenêtre de comparaison apparaîtra. </para>
+<para
+>L'image de la colonne de nom reflète du type de fichier dans le premier dossier ("A"). Cela peut être : </para>
+<itemizedlist>
+     <listitem
+><para
+>Fichier normal</para
+></listitem>
+     <listitem
+><para
+>Dossier normal (image de dossier)</para
+></listitem>
+     <listitem
+><para
+>Lien vers un fichier (image de fichier avec une flèche)</para
+></listitem>
+     <listitem
+><para
+>Lien vers un dossier (image de dossier avec une flèche)</para
+></listitem>
+</itemizedlist>
+<para
+>SI le type de fichier est différent dans les autres dossiers, alors cela est visible dans les colonnes A/B/C et dans la fenêtre affichant les détails concernant les éléments sélectionnés. Notez que dans un cas comme cela aucune opération de fusion ne peut être sélectionnée automatiquement. Quand une fusion est démarrée, alors l'utilisateur sera informé de problèmes de ce type. </para>
+</sect2>
+
+<sect2 id="coloring"
+><title
+>Les colonnes A/B/C et le système de coloration</title>
+<para
+>Comme cela peut être vu dans l'image ci-dessous les couleurs rouge, vert, jaune et noir sont utilisées dans les colonnes A/B/C. </para>
+<itemizedlist>
+     <listitem
+><para
+>Noir : Cela ne semble pas exister dans ce dossier.</para
+></listitem>
+     <listitem
+><para
+>Vert : Élément le plus récent.</para
+></listitem>
+     <listitem
+><para
+>Jaune : Plus vieux que le vert, plus récent que le rouge.</para
+></listitem>
+     <listitem
+><para
+>Rouge : Élément le plus ancien.</para
+></listitem>
+</itemizedlist>
+<para
+>Mais pour les éléments qui sont identiques dans la comparaison leur couleur est aussi identique même si leur âge ne l'est pas. </para
+><para
+>Les dossiers sont considérés comme égaux si tous les éléments qu'ils contiennent sont égaux. Alors ils auront aussi la même couleur. Mais l'âge d'un dossier n'est pas considéré pour sa couleur. </para
+><para
+>L'idée pour le schéma de coloration vient de <ulink url="http://samba.org/cgi-bin/cvsweb/dirdiff"
+>dirdiff</ulink
+>. Les couleurs ressemblent aux couleurs d'une feuille d'un arbre qui est verte au printemps, puis devient jaune à l'automne pour devenir rouge à l'hiver. </para>
+
+</sect2
+><sect2 id="operation"
+><title
+>La colonne d'opération</title>
+<para
+>Après avoir comparé les dossiers, KDiff3 évalue aussi une proposition pour l'opération de fusion. Cela est affiché dans la colonne "Opération". Vous pouvez modifier l'opération en cliquant sur l'opération que vous voulez changer. Un petit menu se déroulera vous permettant de sélectionner une opération pour cet élément. (Vous pouvez aussi sélectionner les opérations les plus importantes via le clavier. Ctrl+1/2/3/4/Del sélectionnera ainsi respectivement A/B/C/Fusion/Suppression (si disponibles). Cette opération sera exécutée durant la fusion. Cela dépend de l'élément et du mode de fusion dans lequel vous êtes. Le mode de fusion est un des modes qui suit  </para>
+<itemizedlist>
+     <listitem
+><para
+>Fusion à trois dossiers ("A" est considéré comme la base des deux autres).</para
+></listitem>
+     <listitem
+><para
+>Fusion de deux dossiers.</para
+></listitem>
+     <listitem
+><para
+>Deux dossiers en mode synchronisé (activé via l'option "Synchroniser les dossiers").</para
+></listitem>
+</itemizedlist>
+<para
+>Dans le cas d'une fusion à trois dossiers l'opération proposée sera : Si pour un élément ... </para>
+<itemizedlist>
+     <listitem
+><para
+>... les trois dossiers sont égaux : Copie depuis C</para
+></listitem>
+     <listitem
+><para
+>... A et C sont égaux mais B ne l'est pas : Copier depuis B (ou si B n'existe pas, supprimer la destination si elle existe)</para
+></listitem>
+     <listitem
+><para
+>... A et B sont égaux mais C ne l'est pas : Copier depuis C (ou si C n'existe pas, supprimer la destination si elle existe)</para
+></listitem>
+     <listitem
+><para
+>... B et C sont égaux mais A ne l'est pas : Copier depuis C (ou si C n'existe pas, supprimer la destination si elle existe)</para
+></listitem>
+     <listitem
+><para
+>... seul A existe : Supprimer la destination (si elle existe)</para
+></listitem>
+     <listitem
+><para
+>... seul B existe : Copier depuis B</para
+></listitem>
+     <listitem
+><para
+>... seul C existe : Copier depuis C</para
+></listitem>
+     <listitem
+><para
+>... A, B et C ne sont pas égaux : Fusion</para
+></listitem>
+     <listitem
+><para
+>... A, B et C n'ont pas le m me type de fichier (par exemple A est un dossier, B un fichier : "Erreur : Conflit de types de fichiers". Tant que des éléments comme ceux-ci existent la fusion de dossiers ne peut pas commencer.</para
+></listitem>
+</itemizedlist>
+<para
+>Dans la fusion à deux dossiers, l'opération proposée sera : Si pour un élément ... </para>
+<itemizedlist>
+     <listitem
+><para
+>les deux dossiers sont égaux : Copier depuis B</para
+></listitem>
+     <listitem
+><para
+>... A existe, mais pas B : Copier depuis A</para
+></listitem>
+     <listitem
+><para
+>... B existe, mais pas A : Copier depuis B</para
+></listitem>
+     <listitem
+><para
+>... A et B existent mais ne sont pas égaux : Fusion</para
+></listitem>
+     <listitem
+><para
+>... A, et B n'ont pas le même type de fichier (par exemple A est un dossier, B un fichier : "Erreur : Conflit de types de fichiers". Tant que des éléments comme ceux-ci existent la fusion de dossiers ne peut pas commencer.</para
+></listitem>
+</itemizedlist>
+<para
+>Le mode de synchronisation est actif si il n'y a que deux dossiers, qu'aucune destination explicite n'a été spécifiée et que l'option "Synchroniser les dossiers" est active. KDiff3 sélectionne alors une opération par défaut pour que les deux dossiers soient les m mes après-coup. Si pour un élément ... </para>
+<itemizedlist>
+     <listitem
+><para
+>... les deux dossiers sont égaux : Rien ne sera fait.</para
+></listitem>
+     <listitem
+><para
+>... A existe, mais pas B : Copier A vers B</para
+></listitem>
+     <listitem
+><para
+>... B existe, mais pas A : Copier B vers A</para
+></listitem>
+     <listitem
+><para
+>... A et B existent, mais sont différents : Fusion et stockage du résultat dans les deux dossiers. Pour l'utilisateur le nom de fichier visible est B, mais alors KDiff3 copie aussi B vers A).</para
+></listitem>
+     <listitem
+><para
+>... A, et B n'ont pas le même type de fichier (par exemple A est un dossier, B un fichier : "Erreur : Conflit de types de fichiers". Tant que des éléments comme ceux-ci existent la fusion de dossiers ne peut pas commencer.</para
+></listitem>
+</itemizedlist>
+<para
+>Quand deux dossiers sont fusionnés et que l'option "Copier le plus récent à la place de fusionner" est sélectionnée, alors KDiff3 regardera les dates et proposera de choisir le fichier le plus récent. Si les fichiers ne sont pas égaux mais ont les mêmes dates alors l'opération contiendra "Erreur : Les dates sont les mêmes mais les fichiers ne le sont pas". Tant que des éléments comme ceux-ci existent la fusion ne pourra pas commencer. </para>
+</sect2>
+
+<sect2 id="status"
+><title
+>La colonne d'état</title>
+<para
+>Durant la fusion, les fichiers seront traités les uns après les autres. La colonne d'état affichera "Terminé" pour les éléments où l'opération de fusion s'est bien déroulée, et d'autres textes si une chose non attendue est arrivée. Quand une fusion est terminée, vous devriez faire une dernière vérification pour voir si l'état de tous les éléments est correct. </para>
+</sect2>
+
+<sect2 id="statisticscolulmns"
+><title
+>Colonne de statistiques</title>
+<para
+>Quand le mode de comparaison de fichiers "Analyse complète" est activé dans les options, alors KDiff3 affichera des colonnes contenant le nombres de conflits non résolus, résolus et conflits d'espacement ou non. (La colonne résolu s'affichera seulement lors de la comparaison ou fusion de trois dossiers). </para>
+</sect2>
+
+</sect1>
+
+
+<sect1 id="dothemerge"
+><title
+>Faire une fusion</title>
+<para
+>Vous pouvez soit fusionner l'élément sélectionné actuellement (fichier ou dossier), out tous les éléments. Quand vous aurez fait tous les choix (aussi dans les sous-dossiers) alors vous pourrez démarrer la fusion. </para
+><para
+>Soyez conscient que si vous ne spécifiez pas de dossier de destination explicitement, alors la destination sera "C" dans le mode de fusion a trois dossiers, "B" dans le mode de fusion à deux dossiers, et dans le mode synchronisé, ce sera "A" ou/et "B" </para
+><para
+>Si vous avez spécifié un dossier de destination vérifiez aussi que tous éléments devant être à la sortie, sont dans l'arborescence. Il y a quelques options qui font que certains éléments sont oubliés de la comparaison et la fusion de dossiers. Vérifiez ces options pour éviter des mauvaises surprises : </para>
+<itemizedlist>
+     <listitem
+><para
+>"Dossiers récursifs" : Si cette option est désactivée, alors les éléments contenus dans les sous-dossiers ne seront pas trouvés.</para
+></listitem>
+     <listitem
+><para
+>"Modèle"/"Anti-modèle" : Inclure/exclure les éléments qui correspondent</para
+></listitem>
+     <listitem
+><para
+>"Exclure les fichiers cachés"</para
+></listitem>
+     <listitem
+><para
+>"Ne lister que les différences" : Les fichiers qui sont identiques dans tous les dossiers n'apparaîtront pas dans l'arborescence, ni dans le dossier de destination.</para
+></listitem>
+</itemizedlist>
+<para
+>(Dans la version actuelle, vous devez rescanner via "Dossier"/"Rescan" vous même après avoir changé les options affectant le scan de dossiers). </para
+><para
+>Si vous êtes satisfaits ici, le reste et simple. </para
+><para
+>Pour fusionner tous les éléments : Sélectionnez "Démarrer/Continuer la fusion de dossiers" dans le menu "Dossier" ou appuyez sur la touche F7 (qui est le raccourci). Pour fusionner seulement l'élément actuel : Sélectionnez "Lancer l'opération pour l'élément actuel" ou appuyez sur F6. </para
+><para
+>Si à cause de conflits de type de fichiers certains éléments portant des opérations non valables existent, alors un boîte de dialogue apparaîtra et certains de ces éléments seront pointés, pour que vous puissiez sélectionner une opération valable </para
+><para
+>Si vous fusionnez tous les éléments, une fenêtre apparaîtra vous proposant de "Le faire", "Le simuler" ou "Annuler". </para>
+<itemizedlist>
+     <listitem
+><para
+>Sélectionnez "Le simuler" si vous voulez voir comment cela serait sans le faire réellement. Une liste de toutes les opérations sera affichée.</para
+></listitem>
+     <listitem
+><para
+>Sinon sélectionnez "Le faire" pour démarrer réellement la fusion.</para
+></listitem>
+</itemizedlist>
+<para
+>Alors KDiff3 lancera l'opération spécifiée pour tous les éléments. Si une interaction manuelle est nécessaire (fusion d'un seul fichier), alors une fenêtre de fusion s'ouvrira (<link linkend="dirmergebigscreenshot"
+>voir la grosse capture d'écran</link
+>). </para
+><para
+>Quand vous en aurez terminé avec un fichier, sélectionnez de nouveau "Démarrer/Continuer la fusion de dossiers" ou utilisez la touche F7. SI vous n'avez pas encore enregistré les résultats, une fenêtre vous le proposera. Alors KDiff3 continuera avec l'élément suivant. </para
+><para
+>Quand KDIff3 rencontre une erreur, il vous en informe et affiche l'information détaillée de l'état. Au bas de cette liste, il y aura quelques messages d'erreur qui vous aideront à comprendre la cause du problème. Quand vous continuerez la fusion, KDiff3 vous proposera de réessayer ou de sauter l'élément qui à causé le problème. Cela signifie qu'avant de continuer vous pouvez choisir une autre opération ou résoudre le problèmes par d'autres moyens. </para
+><para
+>Quand la fusion est complète, alors KDiff3 vous informera via une boîte de dialogue. </para
+><para
+>Si certains éléments ont été fusionnés individuellement, KDiff3 s'en rappellera (tant que la session de fusion continue), et ne fusionne pas ces éléments de nouveau plus tard quand la fusion de tous les éléments est lancée. Même si la fusion a été sautée ou si rien n'a été enregistré ces éléments sont comptés comme complétés. La fusion ne sera refaite que si vous changez l'opération de fusion de l'élément. </para>
+</sect1>
+
+<sect1 id="dirmergeoptions"
+><title
+>Options pour la comparaison et la fusion de dossiers</title>
+<para
+>Les options de Kdiff3 (menu "Configuration"/"Configurer KDiff3...") ont maintenant une section appelée "Fusion de dossiers" contenant ces options : </para>
+
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Dossiers récursifs :</emphasis
+></term
+><listitem
+><para
+>Sélectionner si il faut rechercher les dossiers récursivement.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Modèle(s) de fichier :</emphasis
+></term
+><listitem
+><para
+>Seuls les fichiers qui correspondent à un modèle ici seront mis dans l'arborescence. Plus d'un modèle peut être spécifié en utilisant le point-virgule ";" comme séparateur. Les jokers valables sont '*' et '?' (par exemple pour "*.cpp;*.h". L'option par défaut est "*". Les dossiers ne seront pas reconnus par ce modèle.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Anti-modèle(s) :</emphasis
+></term
+><listitem
+><para
+>Les fichiers et dossiers correspondants à cette règle seront exclus de l'arborescence. Plus d'un modèle peut être spécifié ici en utilisant le point-virgule ";" comme séparateur. Les jokers valides sont : '*' et '?'. Le modèle par défaut est "*.orig;*.o".</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Ignorer comme CVS :</emphasis
+></term
+><listitem
+><para
+>Ignorer les fichiers et dossiers qui seraient aussi ignorés par CVS. Beaucoup de fichiers générés automatiquement sont ignorés par CVS. Le gros avantage est que cela peut être spécifique à un dossier via un fichier local ".cvsignore". (Reportez-vous à <ulink url="info:/cvs/cvsignore"
+>info:/cvs/cvsignore</ulink
+>).</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Trouver les fichiers et dossiers cachés :</emphasis
+></term
+><listitem
+><para
+>Sur certains systèmes de fichiers les fichiers ont un attribut "Caché". Sur d'autres un nom de fichier commençant par un point "." le cache. Cette option vous permet de décider si il faut inclure ces fichiers dans l'arborescence ou non. Option activée par défaut.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Suivre les liens vers les fichiers :</emphasis
+></term
+><listitem
+><para
+>Pour les liens vers les fichiers : Quand cette option est désactivée, alors les liens symboliques sont comparés. Quand elle est activée, alors ce sont les fichiers situé derrière les liens qui sont comparés. Désactivée par défaut.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Suivre les liens vers les dossiers :</emphasis
+></term
+><listitem
+><para
+>Pour les liens vers les dossiers : Quand désactivé, alors les liens symboliques seront comparés. Quand activée alors le lien sera traité comme un dossier et sera scanné récursivement. (Notez que le programme ne vérifie pas si le lien est "récursif". Si par exemple un dossier contenait un lien vers lui-même, cela causerait une boucle infinie, et après quelque temps il y aurait dépassement de tampon ou toute la mémoire serait utilisée, crashant le programme.</para
+></listitem
+></varlistentry
+>   
+   <varlistentry
+><term
+><emphasis
+>Ne lister que les différences :</emphasis
+></term
+><listitem
+><para
+>Seuls les éléments qui ne sont pas égaux dans tous les dossiers seront listés et seuls les fichiers changés seront visibles. Ici les fichiers étant égaux dans tous les dossiers ne seront pas copiés durant une fusion, vous pouvez oublier quelques fichiers après. (Cette option a de fortes chances d'être changée dans une prochaine version). Désactivée par défaut.</para
+></listitem
+></varlistentry>
+
+   <varlistentry
+><term
+><emphasis
+>Mode de comparaison des fichiers :</emphasis
+></term
+><listitem
+><para>
+<variablelist
+>            
+   <varlistentry
+><term
+><emphasis
+>Comparaison binaire</emphasis
+></term
+><listitem
+><para
+>C'est le mode de comparaison de fichiers par défaut. </para
+></listitem
+></varlistentry
+>         
+   <varlistentry
+><term
+><emphasis
+>Analyse complète</emphasis
+></term
+><listitem
+><para
+>Faire une analyse complète de chaque fichier et afficher la colonne d'informations statistiques. (Nombre de conflits résolus, non résolus, d'espacement ou non). L'analyse complète est plus lente qu'une simple analyse binaire, et plus lente quand utilisée sur des fichiers ne contenant pas du texte. (Spécifiez les anti-modèles de fichiers appropriés). </para
+></listitem
+></varlistentry
+>         
+   <varlistentry
+><term
+><emphasis
+>Croire la date de modification :</emphasis
+></term
+><listitem
+><para
+>Si vous comparez des gros dossiers sur un réseau lent, cela peut être plus rapide de ne comparer que les dates de modification et les longueurs des fichiers. Mais cette augmentation de vitesse comporte néanmoins un petit doute. Utilisez cette option avec précaution. Désactivée par défaut.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Croire la taille :</emphasis
+></term
+><listitem
+><para
+>Identique à croire la date de modification. Pas de réelle comparaison, les deux fichiers sont considérés comme égaux si leur tailles sont égales. C'est utile lorsqu'une opération de copie ne conserve pas la date de modification. Utilisez cette option avec précaution. Désactivé par défaut.</para
+></listitem
+></varlistentry>
+</variablelist
+></para
+></listitem
+></varlistentry>
+         
+   <varlistentry
+><term
+><emphasis
+>Synchroniser des dossiers :</emphasis
+></term
+><listitem
+><para
+>Active le "Mode synchroniser" quand deux dossiers sont comparés et qu'il n'y a pas de dossier de destination explicitement spécifié. Dans ce mode les opérations proposées seront choisies pour que les deux dossier sources soient égaux après coup. Aussi le résultat de la fusion sera écrit dans les deux dossiers. Désactivé par défaut.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Copier le plus récent au lieu de fusionner :</emphasis
+></term
+><listitem
+><para
+>Au lieu de fusionner l'opération proposée sera copier la source la plus récente si des changements ont eu lieu. (Considéré comme peu sur, car cela implique la connaissance que l'autre fichier n'a pas été édité. Vérifiez le pour vous assurez dans tous les cas). Désactivé par défaut.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Fichiers de sauvegarde :</emphasis
+></term
+><listitem
+><para
+>Si un fichier ou un dossier complet est remplacé par un autre ou est supprimé alors la version originale sera renommée avec une extension ".orig". Si un ancien fichier de sauvegarde portant l'extension ".orig" existe toujours alors il sera supprimé sans sauvegarde. Cela affecte aussi la fusion de simples fichiers, pas seulement le mode de fusion de dossiers. Activé par défaut.</para
+></listitem
+></varlistentry>
+</variablelist>
+</sect1>
+
+<sect1 id="other"
+><title
+>Autres fonctions</title>
+<sect2
+><title
+>Mode plein écran/écran partagé</title>
+<para
+>Habituellement la vue de la liste de fusion de dossiers reste visible quand un fichier simple est comparé ou fusionné. Avec la souris vous pouvez déplacer la barre de séparation qui sépare la liste de fichiers de la fenêtre de comparaison. Si vous ne voulez pas faire cela, vous pouvez désactiver "Scinder la fenêtre" Dans le menu "Dossier". vous pouvez aussi utiliser "Basculer la vue" dans le menu "Dossier" pour basculer entre la liste de fichiers et la fenêtre de comparaison qui occupait tout l'écran. </para>
+</sect2>
+<sect2
+><title
+>Comparer ou Fusionner un simple fichier</title>
+<para
+>Probablement vous préférerez un simple double clic sur un fichier pour le comparer. Néanmoins il existe aussi une entrée dans le menu "Dossier". vous pouvez aussi fusionner directement un simple fichier, sans lancer la fusion de dossiers via "Fusionner un simple fichier" dans le menu "Dossier". A l'enregistrement des résultats l'état sera validé, et le fichier ne sera plus fusionné si une fusion de dossiers est démarrée. </para
+><para
+>Mais notez que l'information de l'état sera perdue lorsque vous relancerez un scan de dossier via : "Dossier"/"Rescanner" </para>
+</sect2>
+</sect1>
+</chapter>
+
+<chapter id="misc">
+<title
+>Sujets divers</title>
+<sect1 id="networktransparency">
+<title
+>Transparence réseau via KIO</title>
+<sect2
+><title
+>KIO-Slaves</title>
+<para
+>KDE supporte la transparence réseau via KIO. KDiff3 utilise cela pour lire les fichiers en entrée ou scanner les dossiers. Cela signifie que vous pouvez spécifier des fichiers et des dossiers locaux ou distants via des URL. </para
+><para
+>Exemple : </para
+><para>
+<screen
+><command
+>kdiff3</command
+> test.cpp  ftp://ftp.faraway.org/test.cpp
+   <command
+>kdiff3</command
+> tar:/home/hacker/archive.tar.gz/dos /dos
+</screen>
+</para>
+<para
+>La première ligne compare un fichier local avec un fichier sur un serveur FTP. La seconde compare un dossier contenu dans une archive compressée a un dossier local. </para
+><para
+>Les autres KIOslaves intéressants sont : </para>
+<itemizedlist>
+<listitem
+><para
+>Fichiers depuis le WWW (http:),</para
+></listitem>
+<listitem
+><para
+>Fichiers depuis un FTP (ftp:),</para
+></listitem>
+<listitem
+><para
+>Transfert de fichier crypté (fish;, sftp;),</para
+></listitem>
+<listitem
+><para
+>Ressources Windows (smb:),</para
+></listitem>
+<listitem
+><para
+>Fichiers locaux (file:),</para
+></listitem>
+</itemizedlist>
+<para
+>D'autres choses sont possibles, mais probablement moins utiles sont : </para>
+<itemizedlist>
+<listitem
+><para
+>Pages man (man:),</para
+></listitem>
+<listitem
+><para
+>Pages info (info:),</para
+></listitem>
+</itemizedlist>
+</sect2>
+
+<sect2
+><title
+>Comment écrire des URLs</title>
+<para
+>Une URL a une syntaxe différence par rapport aux chemins pour les fichiers et dossiers locaux. Certains éléments doivent être considérés : </para>
+<itemizedlist>
+<listitem
+><para
+>Un chemin peut être relatif et contenir "." ou "..". Ce n'est pas possible pour les URL qui sont toujours absolues. </para
+></listitem
+><listitem
+><para
+>Les caractères spéciaux doivent être écrits avec des espaces ("#"->"%23", espace
+>"%20", etc). Par exemple un fichier nommé "#foo#" aura l'URL "file:/%23foo%23". </para
+></listitem
+><listitem
+><para
+>Quand les URLs ne fonctionnent pas comme attendu, essayez de les ouvrir tout d'abord avec Konqueror. </para
+></listitem>
+</itemizedlist>
+
+</sect2>
+
+<sect2
+><title
+>Possibilités des KIO-Slaves</title>
+<para
+>La transparence réseau à un inconvénient : Toutes les ressources n'ont les mêmes possibilités. </para
+><para
+>Parfois ceci est dû au système de fichiers du serveur, parfois au protocole. Voici une liste de restrictions : </para>
+<itemizedlist>
+<listitem
+><para
+>Parfois il n'y a pas de support des liens. </para
+></listitem
+><listitem
+><para
+>Ou il n'y a pas moyen de distinguer si un lien pointe vers un fichier ou un dossier ; on estime que c'est toujours un fichier.(ftp :, sftp :). </para
+></listitem
+><listitem
+><para
+>Ne peut pas toujours déterminer la taille des fichiers. </para
+></listitem
+><listitem
+><para
+>Support limité des permissions. </para
+></listitem
+><listitem
+><para
+>Il est impossible de modifier les permissions ou la date de dernière modification, les permissions ou la date de dernière modification d'une copie diffèrent donc de l'original. (Voir l'option "Croire la taille"). (Modifier les permissions ou la date de dernière modification n'est possible que pour les fichiers locaux). </para
+></listitem>
+</itemizedlist>
+</sect2>
+</sect1>
+
+<sect1 id="kpart">
+<title
+>Utiliser &kdiff3; en tant que KPart</title>
+<para
+>&kdiff3; fait partie de KPart. Actuellement il implémente l'interface KParts::ReadOnlyPart. </para
+><para
+>Son utilisation principale est en tant que visionneur de différences pour KDevelop. KDevelop démarre tout le temps par le visionneur de différences interne. Pour invoquer KDiff3, faites un clic droit sur le visionneur de différences et sélectionnez "Afficher dans KDiff3Part" depuis le menu contextuel. </para
+><para
+>KDiff3 a normalement besoin de deux fichiers complets en entrée. Quand utilisé dans KPart, KDiff3 estimera que le fichier en entrée est un fichier patch dans le format unifié. KDiff3 retrouvera alors les noms de fichiers originaux depuis le patch. Au moins un des deux fichiers doit être disponible. Kdiff3 invoquera alors <command
+>patch</command
+> pour recréer le second fichier. </para
+><para
+>Dans Konqueror, vous pouvez sélectionner un fichier patch et sélectionner "Aperçu dans"-"KDiff3Part" depuis le menu contextuel. Soyez conscient que cela ne fonctionnera pas si aucun des fichiers originaux n'est disponible, et que ce n'est pas fiable si les fichiers originaux ont changé depuis que le patch a été généré. </para
+><para
+>Quand lancé à l'intérieur de KPart, KDiff3 ne propose qu'une comparaison à deux fichiers, une barre d'outils et un menu très petits. La fusion et la comparaison de dossiers n'est donc pas gérée. </para>
+</sect1>
+</chapter>
+
+<chapter id="faq">
+<title
+>Foire Aux Questions</title>
+&reporting.bugs; &updating.documentation; <qandaset id="faqlist">
+
+<qandaentry
+><question
+><para
+>Pourquoi l'appeler "KDiff3" ? </para
+></question
+><answer
+><para
+>Des outils nommés "KDiff" et "KDiff2" (désormais appelé "Kompare") existent déjà. "KDiff3" suggère aussi qu'il peut fusionner comme l'outil "diff3" dans la collection des Outils Diff. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Pourquoi le logiciel est-il sous licence GPL ? </para
+></question
+><answer
+><para
+>J'utilise les programmes GPL depuis très longtemps désormais et j'ai appris beaucoup de choses en jetant un oeil aux sources. Voici mon "Merci" à tous les programmeurs qui ont aussi ou qui feront aussi de même. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Certains boutons ou fonctions sont manquantes. Quel est le problème ? </para
+></question
+><answer
+><para
+>Vous avez compilé depuis la source mais vous n'avez probablement pas spécifier le bon préfixe de KDE lors de la configuration. Par défaut configure veut installer dans /usr/local mais dans ce cas KDE ne peut trouver le fichier de ressource de l'interface utilisateur (c.é.d. kdiff3ui.rc). Le fichier README contient plus d'informations à propos du préfixe correct. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Souvent les lignes similaires mais non identiques apparaissent côte à côte mais parfois pas. Pourquoi ? </para
+></question
+><answer
+><para
+>Les lignes ou seules les quantités d'espaces sont différentes sont traitées comme "égales", tandis qu'une différence d'un caractère seulement peut changer l'état des lignes en "différentes". Si des lignes similaires apparaissent côte à côte, c'est actuellement une coïncidence mais heureusement c'est souvent le cas. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Pourquoi tous les conflits doivent-ils être résolus avant que le résultat de la fusion puisse être enregistré ? </para
+></question
+><answer
+><para
+>Pour chaque section égale ou différente, l'éditeur dans la fenêtre de résultat de la fusion se souvient ou elle commence ou se termine. Cela est nécessaire pour que les conflits puissent être résolus manuellement en sélectionnant simplement le bouton de source (A, B ou C). Cette information sera perdue quand vous enregistrerez un texte et c'est trop compliqué de créer un format de fichier spécial supportant l'enregistrement et la restauration de toutes les informations nécessaires. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Pourquoi l'éditeur dans la fenêtre de résultat n'a pas de fonction "annuler" ? </para
+></question
+><answer
+><para
+>C'était très compliqué jusqu'à présent. Vous pouvez toujours restaurer une version depuis une source (A, B ou C) en cliquant sur le bouton respectif. Pour une édition importante, l'utilisation d'un autre éditeur comme Kwrite est recommandée. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Quand j'ai supprimé du texte, soudainement, "&lt;Pas de ligne de la source&gt;" est apparu et ne peut être supprimé. Qu'est-ce que cela signifie et comment supprimer cela ? </para
+></question
+><answer
+><para
+>Pour chaque section égale ou différente, l'éditeur dans la fenêtre de résultat de fusion se souvient, de son début et de sa fin. "&lt;Pas de ligne de la source&gt;" signifie qu'il n'y a plus rien dans une section, même plus de caractère de nouvelle ligne. Cela peut apparaître soit lors de la fusion automatique ou lors de l'édition. Ce n'est pas un problème, étant donné que cela n'apparaîtra pas dans le fichier enregistré. Si vous voulez que la source originale réapparaisse, sélectionnez juste la section (un clic sur la colonne de résumé de gauche) et cliquez alors le bouton de source avec le contenu nécessaire (A/B ou C). </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Pourquoi KDiff3 ne supporte-t-il pas le surlignement des syntaxes ? </para
+></question
+><answer
+><para
+>KDiff3 utilise déjà beaucoup de couleurs pour le surlignement des différences. Plus de surlignement amènerait de la confusion. Utilisez un autre éditeur pour cela. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Il y a beaucoup d'informations ici, mais votre question ne trouve toujours pas de réponse ? </para
+></question
+><answer
+><para
+>Veuillez m'envoyer vos questions. J'apprécie chaque commentaire. </para
+></answer
+></qandaentry>
+
+</qandaset>
+</chapter>
+
+<chapter id="credits">
+
+<title
+>Remerciements et licence</title>
+
+<para
+>&kdiff3; - Outil de Comparaison et de Fusion de Fichiers et Dossier </para>
+<para
+>Programme protégé par copyright 2002-2004 Joachim Eibl <email
+>joachim.eibl at gmx.de</email
+> </para>
+<para
+>Beaucoup de bonnes idées et de rapports de bogue viennent de collègues et de beaucoup d'inconnus du Web. Merci ! </para>
+
+<para
+>Documentation Copyright &copy; 2002-2004 Joachim Eibl <email
+>joachim.eibl at gmx.de</email
+> </para>
+
+<para
+>&traducteurSimonDepiets;</para
+> 
+&underFDL; &underGPL; </chapter>
+
+<appendix id="installation">
+<title
+>Installation</title>
+
+<sect1 id="getting-kdiff3">
+<title
+>Comment obtenir &kdiff3;</title>
+
+<para
+>Vous pouvez télécharger la dernière version de KDiff3 depuis sa page web <ulink url="http://kdiff3.sourceforge.net"
+>http://kdiff3.sourceforge.net</ulink
+>. </para
+><para
+>KDiff3 est aussi disponibles sur d'autres plates-formes. Veuillez vous reporter à la page web pour plus de détails. </para>
+
+
+</sect1>
+
+<sect1 id="requirements">
+<title
+>Configuration minimale</title>
+
+<para
+>Pour utiliser avec succès toutes les fonctionnalités de &kdiff3;, vous aurez besoin de &kde; 
+>3.1. </para
+><para
+>Pour plus d'informations sur le lancement de KDiff3 sur d'autres plates-formes sans KDE, veuillez vous reportez à la <ulink url="http://kdiff3.sourceforge.net"
+>page web</ulink
+>. </para
+><para
+>Vous pouvez trouver une liste des changements sur<ulink url="http://kdiff3.sourceforge.net/ChangeLog"
+>http://kdiff3.sourceforge.net/ChangeLog</ulink
+> ou dans le fichier "ChangeLog" de la source. </para>
+</sect1>
+
+<sect1 id="compilation">
+<title
+>Compilation et Installation</title>
+
+<para
+>Pour compiler et installer &kdiff3; sur un système avec KDE, saisissez ce qui suit dans le dossier de base de votre dossier de &kdiff3; :</para>
+
+<screen
+><prompt
+>%</prompt
+> <userinput
+><command
+>./configure --prefix=<replaceable
+>dos-kde</replaceable
+></command
+></userinput>
+<prompt
+>%</prompt
+> <userinput
+><command
+>make</command
+></userinput>
+<prompt
+>%</prompt
+> <userinput
+><command
+>make</command
+> install</userinput
+>
+</screen>
+<para
+><replaceable
+>dos-kde</replaceable
+> spécifie le dossier contenant KDE sur votre système. Si vous ne connaissez pas celui-ci, lisez le fichier README pour les détails. </para>
+<para
+>Étant donné que &kdiff3; utilise <command
+>autoconf</command
+> et <command
+>automake</command
+> vous ne devriez pas avoir de problèmes à les compiler. Si vous rencontriez des problèmes, veuillez les reporter aux listes de diffusion &kde;.</para>
+
+</sect1>
+
+</appendix>
+
+&documentation.index;
+</book>
+
+<!--
+Local Variables:
+mode: sgml
+sgml-minimize-attributes:nil
+sgml-general-insert-case:lower
+sgml-indent-step:0
+sgml-indent-data:nil
+End:
+
+vim:tabstop=2:shiftwidth=2:expandtab
+-->
diff --git a/doc/it/CMakeLists.txt b/doc/it/CMakeLists.txt
new file mode 100644 (file)
index 0000000..0bdeff1
--- /dev/null
@@ -0,0 +1 @@
+kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/it SUBDIR kdiff3)
diff --git a/doc/it/index.docbook b/doc/it/index.docbook
new file mode 100644 (file)
index 0000000..0e402e0
--- /dev/null
@@ -0,0 +1,3950 @@
+<?xml version="1.0" ?>
+<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
+  <!ENTITY kdiff3 "<application
+>KDiff3</application
+>">
+  <!ENTITY kappname "&kdiff3;">
+  <!ENTITY package "extragear-utils">
+  <!ENTITY % addindex "IGNORE">
+  <!ENTITY % Italian "INCLUDE">
+]>
+
+<book lang="&language;">
+
+<!-- This header contains all of the meta-information for the document such
+as Authors, publish date, the abstract, and Keywords -->
+
+<bookinfo>
+<title
+>Manuale di &kdiff3;</title>
+
+<authorgroup>
+<author
+><firstname
+>Joachim</firstname
+> <surname
+>Eibl</surname
+> <affiliation
+><address
+> <email
+>joachim.eibl@gmx.de</email>
+</address
+></affiliation>
+</author>
+<othercredit role="translator"
+><firstname
+>Stelvio</firstname
+><surname
+>Rosset</surname
+><affiliation
+></affiliation
+><contrib
+>Traduzione della documentazione, 2004</contrib
+></othercredit
+><othercredit role="translator"
+><firstname
+>Marcello</firstname
+><surname
+>Anni</surname
+><affiliation
+></affiliation
+><contrib
+>Aggiornamento e revisione della traduzione, 2007</contrib
+></othercredit
+><othercredit role="translator"
+><firstname
+>Federico</firstname
+><surname
+>Zenith</surname
+><affiliation
+><address
+><email
+>federico.zenith@member.fsf.org</email
+></address
+></affiliation
+><contrib
+>Aggiornamento della traduzione, 2009</contrib
+></othercredit
+>  
+</authorgroup>
+
+<copyright>
+<year
+>2002-2007</year>
+<holder
+>Joachim Eibl</holder>
+</copyright>
+<!-- Translators: put here the copyright notice of the translation -->
+<!-- Put here the FDL notice.  Read the explanation in fdl-notice.docbook
+     and in the FDL itself on how to use it. -->
+<legalnotice
+>&FDLNotice;</legalnotice>
+
+<!-- Date and version information of the documentation
+Don't forget to include this last date and this last revision number, we
+need them for translation coordination !
+Please respect the format of the date (YYYY-MM-DD) and of the version
+(V.MM.LL), it could be used by automation scripts.
+Do NOT change these in the translation. -->
+
+<date
+>2007-31-03</date>
+<releaseinfo
+>0.9.92</releaseinfo>
+
+
+<abstract>
+<para
+>&kdiff3; è uno strumento per verificare le differenze ed eseguire fusioni tra file e cartelle, che: <itemizedlist>
+<listitem
+><para
+>confronta e fonde due o tre file di testo o cartelle in ingresso,</para
+></listitem>
+<listitem
+><para
+>ne mostra le differenze riga per riga o carattere per carattere,</para
+></listitem>
+<listitem
+><para
+>dà un modo semplice per fonderli,</para
+></listitem>
+<listitem
+><para
+>ha un editor per risolvere comodamente i conflitti di fusione,</para
+></listitem>
+<listitem
+><para
+>supporta la trasparenza di rete tramite KIO,</para
+></listitem>
+<listitem
+><para
+>ha delle opzioni per evidenziare o nascondere le differenze costituite da spazi o commenti nel codice,</para
+></listitem>
+<listitem
+><para
+>supporta Unicode, UTF-8 e altre codifiche,</para
+></listitem>
+<listitem
+><para
+>stampa le differenze,</para
+></listitem>
+<listitem
+><para
+>supporta la fusione delle parole chiave del controllo di versione e della cronologia.</para
+></listitem>
+</itemizedlist>
+</para
+><para
+>Questo documento descrive la versione 0.9.92 di &kdiff3;. </para>
+</abstract>
+
+<!-- This is a set of Keywords for indexing by search engines.
+Please at least include KDE, the KDE package it is in, the name
+ of your application, and a few relevant keywords. -->
+
+<keywordset>
+<keyword
+>KDE</keyword>
+<keyword
+>kdeextragear</keyword>
+<keyword
+>kdiff3</keyword>
+<keyword
+>differenze</keyword>
+<keyword
+>fusione</keyword>
+<keyword
+>CVS</keyword>
+<keyword
+>confronto tra tre file</keyword>
+<keyword
+>confronta</keyword>
+<keyword
+>file</keyword>
+<keyword
+>cartelle</keyword>
+<keyword
+>controllo di versione</keyword>
+<keyword
+>fusione di tre file</keyword>
+<keyword
+>differenze in riga</keyword>
+<keyword
+>sincronizza</keyword>
+<keyword
+>kpart</keyword>
+<keyword
+>kio</keyword>
+<keyword
+>trasparenza di rete</keyword>
+<keyword
+>editor</keyword>
+<keyword
+>spazio</keyword>
+<keyword
+>commenti</keyword>
+</keywordset>
+
+</bookinfo>
+
+<chapter id="introduction"
+><title
+>Introduzione</title>
+<sect1 id="why"
+><title
+>Un'altra interfaccia per confrontare file?</title>
+<para
+>Per il confronto dei file esistono numerosi strumenti grafici. Perché dovresti scegliere &kdiff3;? Lascia che ti spieghi perché l'ho scritto. </para
+><para
+>&kdiff3; è nato perché dovevo eseguire una difficile fusione tra file. La fusione è necessaria quando più persone lavorano sugli stessi file in un progetto. La fusione può essere per lo più automatica, quando gli strumenti di fusione non solo permettono la modifica dei nuovi file («rami») ma anche del file originale («base»). Lo strumento per la fusione sceglierà automaticamente solo le modifiche eseguite all'interno di un ramo. Quando più persone cambiano le stesse righe, allora lo strumento di fusione trova un conflitto che dovrà essere risolto manualmente. </para
+><para
+>In quel caso la fusione era difficile in quanto un collaboratore aveva cambiato molte cose e corretto l'indentazione in molti punti. Inoltre, un altro aveva cambiato molto testo nello stesso file, dando luogo a molti conflitti durante l'operazione di fusione. </para
+><para
+>Lo strumento che usavo a quel tempo mostrava solamente le righe modificate, ma non cosa era cambiato dentro di loro. Inoltre non c'erano informazioni su dove fosse cambiata solo l'indentazione. La fusione fu un piccolo incubo. </para
+><para
+>Così fu l'inizio. La prima versione poteva mostrare le differenze all'interno di una riga e tra gli spazi. Successivamente molte altre funzionalità sono state introdotte per aumentarne l'utilità. </para
+><para
+>Per esempio, se vuoi confrontare velocemente alcuni testi, è possibile copiarne il contenuto negli appunti e quindi incollarlo in una delle finestre delle differenze. </para
+><para
+>Una funzionalità che ha richiesto molto lavoro è stato il confronto tra cartelle e la funzione di fusione, che hanno trasformato il programma quasi in navigatore di file completo. </para
+><para
+>Spero che &kdiff3; sia utile anche a te. Divertiti! </para
+><para
+>Joachim Eibl (2003) </para>
+</sect1>
+
+<sect1 id="screenshots"
+><title
+>Schermate e funzionalità</title>
+<para
+>Questa schermata mostra la differenza tra due file di testo</para>
+<para
+>(Usando una vecchia versione di &kdiff3;):</para>
+<screenshot
+><mediaobject>
+   <imageobject
+><imagedata fileref="screenshot_diff.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+
+<para
+>La fusione di tre file è completamente supportata. Questa è particolarmente utile se due persone cambiano indipendentemente il codice. Si usa il file originale (la base) per aiutare &kdiff3; a selezionare automaticamente le modifiche giuste. Sotto le finestre che evidenziano le differenze, una finestra di modifica ti permetterà di risolvere i conflitti, mostrandone il risultato ottenuto. Puoi anche modificare il risultato delle operazioni. Questa schermata mostra il risultato della fusione di tre file in ingresso: </para
+><para>
+<screenshot
+><mediaobject>
+   <imageobject
+><imagedata fileref="screenshot_merge.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+</para>
+
+<para id="dirmergebigscreenshot"
+>&kdiff3; ti aiuta anche a confrontare e fondere intere cartelle. Questa schermata mostra &kdiff3; durante una fusione tra cartelle: </para
+><para>
+<screenshot
+><mediaobject>
+   <imageobject
+><imagedata fileref="dirmergebig.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+</para>
+</sect1>
+
+<sect1 id="features"
+><title
+>Altre funzionalità</title>
+<sect2
+><title
+>Visore delle differenze per riga e per carattere</title>
+<para
+>Sfruttando le potenzialità dei monitor a colori, &kdiff3; evidenzia accuratamente le differenze. Quando dovrai fare molte revisioni di codice, apprezzerai questo aiuto. </para>
+<screenshot
+><mediaobject>
+   <imageobject
+><imagedata fileref="letter_by_letter.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+</sect2>
+
+<sect2
+><title
+>Vedere le differenze tra spazi a colpo d'occhio</title>
+<para
+>Saranno ben visibili spazi e tabulatori che risultano diversi. Quando le righe differiscono soltanto per uno spazio, lo si potrà subito vedere nella colonna di sommario sul lato sinistro (non dovrai più preoccuparti quando qualcuno cambia l'indentazione). </para>
+<screenshot
+><mediaobject>
+   <imageobject
+><imagedata fileref="white_space.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+</sect2>
+
+<sect2
+><title
+>Confronto tra tre file</title>
+<para
+>Analizza tre file e verifica dove differiscono. </para
+><para
+>Le finestre sinistra, centrale e destra si chiamano A, B e C ed hanno rispettivamente i colori blu, verde e magenta. </para
+><para
+>Se per una riga due file sono uguali ed un altro è diverso, il colore indica quello diverso. Il colore rosso significa che tutti i file sono diversi. </para>
+<screenshot
+><mediaobject>
+   <imageobject
+><imagedata fileref="triple_diff.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+</sect2>
+
+<sect2
+><title
+>Comoda fusione di due o tre file in ingresso</title>
+<para
+>&kdiff3; può essere usato per fondere due o tre file di ingresso e fonderli automaticamente il più possibile. Il risultato è presentato in una finestra di modifica dove la maggior parte dei conflitti possono essere risolti con un semplice clic del mouse: seleziona i pulsanti A, B e C dalla barra dei pulsanti per selezionare la sorgente da usare. È possibile anche selezionare più di una sorgente. Dato che questa finestra è un editor, qui si possono risolvere anche i conflitti che hanno bisogno di ulteriori correzioni, senza bisogno di altri strumenti. </para>
+</sect2>
+
+<sect2
+><title
+>Inoltre...</title>
+<itemizedlist>
+   <listitem
+><para
+>Pulsanti per la navigazione veloce.</para
+></listitem>
+   <listitem
+><para
+>Un clic del mouse nella colonna di sommario sincronizza tutte le finestre, facendo loro mostrare la stessa posizione.</para
+></listitem>
+   <listitem
+><para
+>Seleziona e copia da una qualsiasi finestra ed incolla nella finestra del risultato della fusione.</para
+></listitem>
+   <listitem
+><para
+>Colonna riassuntiva che mostra dove sono cambiamenti e conflitti.</para
+></listitem>
+   <listitem
+><para
+>È possibile regolare i colori come vuoi.</para
+></listitem>
+   <listitem
+><para
+>Dimensione regolabile delle tabulazioni.</para
+></listitem>
+   <listitem
+><para
+>Opzione per inserire spazi invece che tabulatori.</para
+></listitem>
+   <listitem
+><para
+>Apri i file comodamente da una finestra, oppure specificandoli dalla riga di comando.</para
+></listitem>
+   <listitem
+><para
+>Ricerca di stringhe in tutto il testo della finestra. <guilabel
+>Trova</guilabel
+> (<keycombo action="simul"
+>&Ctrl;<keycap
+>F</keycap
+></keycombo
+>) e <guilabel
+>Trova Successivo</guilabel
+> (<keycap
+>F3</keycap
+>).</para
+></listitem>
+   <listitem
+><para
+>Mostra il numero di ogni riga. </para
+></listitem>
+   <listitem
+><para
+>Incolla dagli appunti o trascina il testo in una finestra di confronto.</para
+></listitem>
+   <listitem
+><para
+>Trasparenza di rete tramite KIO.</para
+></listitem>
+   <listitem
+><para
+>Può essere usato come visore delle differenze in KDevelop 3.</para
+></listitem>
+   <listitem
+><para
+>A capo per righe lunghe.</para
+></listitem>
+   <listitem
+><para
+>Supporto per Unicode, UTF-8 e altre codifiche.</para
+></listitem>
+   <listitem
+><para
+>Supporto per le lingue scritte da destra a sinistra.</para
+></listitem>
+   <listitem
+><para
+>...</para
+></listitem>
+</itemizedlist>
+</sect2>
+</sect1>
+</chapter>
+
+<chapter id="documentation"
+><title
+>Confronto e fusione file</title>
+
+<sect1 id="commandline"
+><title
+>Opzioni da riga di comando</title>
+
+<sect2
+><title
+>Confrontare due file: </title>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>file1 file2</replaceable
+>
+</screen>
+</sect2>
+
+<sect2
+><title
+>Fondere due file: </title>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>file1 file2</replaceable
+> -m
+   <command
+>kdiff3</command
+> <replaceable
+>file1 file2</replaceable
+> -o <replaceable
+>file_di_uscita</replaceable
+>
+</screen>
+</sect2>
+
+<sect2
+><title
+>Confrontare tre file: </title>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>file1 file2 file3</replaceable
+>
+</screen>
+</sect2>
+
+<sect2
+><title
+>Fondere tre file: </title>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>file1 file2 file3</replaceable
+> -m
+   <command
+>kdiff3</command
+> <replaceable
+>file1 file2 file3</replaceable
+> -o <replaceable
+>file_di_uscita</replaceable
+>
+</screen>
+<para
+>Nota che <replaceable
+>file1</replaceable
+> sarà trattato come la base di <replaceable
+>file2</replaceable
+> e il <replaceable
+>file3</replaceable
+>. </para>
+</sect2>
+
+<sect2
+><title
+>Caso particolare: file con lo stesso nome </title>
+<para
+>Se tutti i file hanno lo stesso nome, ma si trovano in cartelle diverse, è possibile specificare solamente il nome del primo file. Per esempio: </para>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>cartella1/file cartella2 cartella3</replaceable
+>
+</screen>
+</sect2>
+
+<sect2
+><title
+>Riga di comando per avviare un confronto o una fusione tra cartelle: </title>
+<para
+>È molto simile, ma ora lavoriamo sulle cartelle.</para>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>cartella1 cartella2</replaceable>
+   <command
+>kdiff3</command
+> <replaceable
+>cartella1 cartella2</replaceable
+> -o <replaceable
+>cartella_destinazione</replaceable>
+   <command
+>kdiff3</command
+> <replaceable
+>cartella1 cartella2 cartella3</replaceable>
+   <command
+>kdiff3</command
+> <replaceable
+>cartella1 cartella2 cartella3</replaceable
+> -o <replaceable
+>cartella_destinazione</replaceable
+>
+</screen>
+<para
+>Per maggiori informazioni sul confronto e fusione tra cartelle leggi <link linkend="dirmerge"
+>qua</link
+>.</para>
+</sect2>
+
+<sect2
+><title
+>Altre opzioni da riga di comando</title>
+<para
+>Per vedere tutte le opzioni disponibili per la riga di comando scrivi:</para>
+<screen
+><command
+>kdiff3</command
+> --help
+</screen>
+<para
+>Esempio di risultato:</para>
+<screen
+>Opzioni:
+  -m, --merge               Fondi l'input.
+  -b, --base file           Fissa il file di base. Per compatibilità con alcuni programmi.
+  -o, --output file         File di uscita. Implica -m. Es.: -o nuovofile.txt
+  --out file                File di uscita (per compatibilità con alcuni programmi).
+  --auto                    Senza interfaccia grafica se tutti i conflitti possono essere risolti automaticamente (richiede -o file).
+  --qall                    Non risolve i conflitti automaticamente (per compatibilità).
+  --L1 alias1               Sostituzione del nome visibile per file di ingresso 1 (base).
+  --L2 alias2               Sostituzione del nome visibile per file di ingresso 2.
+  --L3 alias3               Sostituzione del nome visibile per file di ingresso 3.
+  -L, --fname alias         Sostituzione del nome visibile alternativo. Da specificare per ogni ingresso.
+  --cs string               Sovrascrive le impostazioni della configurazione. Usalo una volta per ogni impostazione. Per esempio: --cs "AutoAdvance=1"
+  --confighelp              Mostra una lista di impostazioni di configurazione e i loro valori attuali.
+  --config file             Usa un altro file di configurazione.
+</screen>
+<para
+>L'opzione <option
+>--cs</option
+> ti permette di regolare un valore di configurazione che altrimenti sarebbe modificabile solo tramite le finestre di configurazione. Stai però attento, perché quando &kdiff3; viene chiuso con il valore modificato, questa modifica verrà memorizzata con le altre impostazioni. Con <option
+>--confighelp</option
+> puoi trovare i nomi degli elementi disponibili e i loro valori attuali.</para>
+<para
+>Con <option
+>--config</option
+> puoi specificare un altro file di configurazione. Quando usi spesso &kdiff3; con configurazioni completamente diverse, questo ti permette di passare facilmente da una all'altra.</para>
+</sect2>
+<sect2
+><title
+>Opzioni da riga di comando ignorabili</title>
+<para
+>Molte persone vogliono usare &kdiff3; con qualche sistema di controllo di versione. Ma quando quel sistema di controllo di versione chiama &kdiff3; usando parametri della riga di comando che &kdiff3; non riconosce, allora &kdiff3; termina con un errore. Le impostazioni di integrazione permettono di specificare parametri della riga di comando che dovrebbero essere ignorati da &kdiff3;. Essi appariranno nell'aiuto all'uso come in questo esempio:</para>
+<screen
+>--<replaceable
+>pippo</replaceable
+>                     Ignorato (definito dall'utente).
+</screen>
+<variablelist>
+  <varlistentry
+><term
+><emphasis
+>Opzioni da riga di comando da ignorare:</emphasis
+></term
+><listitem
+><para
+>Una lista di opzioni, separate da un punto e virgola, «;». Quando una di queste opzioni appare nella riga di comando, &kdiff3; la ignorerà e verrà eseguito senza riportare errori (le opzioni predefinite sono «u;query;html;abort»).</para
+></listitem
+></varlistentry>
+</variablelist>
+<para
+>Se questo non bastasse, si raccomanda di scrivere uno script per la shell per tradurre l'opzione.</para>
+</sect2>
+
+</sect1>
+
+<sect1 id="opendialog"
+><title
+>Finestra di apertura dei file</title>
+<para
+>Poiché devono essere selezionabili molti file, il programma ha una particolare finestra per aprirli: </para>
+<screenshot
+><mediaobject>
+<imageobject
+><imagedata fileref="open_dialog.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+<para
+>La finestra di apertura permette di scrivere il nome del file a mano, di selezionare un file con il navigatore (<guilabel
+>File...</guilabel
+>) o di scegliere i file più recenti da una lista a comparsa. Se riapri la finestra, i nomi attuali rimarranno lì. Il nome del terzo file di input non è necessario. Se il campo di «C» rimane vuoto, verrà fatta soltanto un'operazione di confronto tra due file. </para
+><para
+>Puoi anche selezionare una cartella con <guilabel
+>Cartella...</guilabel
+>. Se per A è specificata una cartella sarà automaticamente attivato il confronto o la fusione di cartelle. Se A specifica un file ma B, C o l'uscita specificano una cartella, &kdiff3; usa il nome del file di A nella cartelle specificate. </para
+><para
+>Se viene selezionato <guilabel
+>Fondi</guilabel
+>, allora la riga <guilabel
+>Uscita</guilabel
+> diverrà modificabile. Però non è necessario specificare subito il nome del file in uscita: lo potrai specificare in seguito, fino al momento del salvataggio. </para
+><para
+>Il pulsante <guilabel
+>Configura...</guilabel
+> apre una finestra di opzioni, per poterle impostare prima di avviare l'analisi. </para>
+</sect1>
+
+<sect1 id="pasteinput"
+><title
+>Incolla e trascina l'ingresso</title>
+<para
+>A volte vorresti confrontare parti di testo che non sono un file. &kdiff3; permette anche di incollare del testo dagli appunti nella finestra di confronto selezionata. L'analisi delle differenze apparirà immediatamente. Nella finestra di apertura dei file non dovrai specificare i file, basterà chiuderla con <guilabel
+>Annulla</guilabel
+>. </para
+><para
+>È anche possibile usare il trascinamento: prendi un file dal gestore dei file o seleziona del testo da un editor, e trascinalo dentro una finestra di confronto. </para
+><para
+>Qual è l'idea? A volte un file contiene due funzioni simili, ma controllare quanto lo sono effettivamente è una seccatura se si devono prima creare due file e quindi caricarli. Ora puoi semplicemente copiare, incollare e confrontare le sezioni rilevanti. </para
+><para
+>Nota: al momento non puoi trascinare niente da &kdiff3;. Solo l'inserimento nella finestra di confronto delle differenze è supportato. </para
+><para
+>Attenzione: alcuni editor interpretano il trascinamento in altri programmi come operazioni di taglia (invece che copia) e incolla. In tal caso i dati originali andrebbero quindi persi. </para>
+</sect1>
+
+<sect1 id="interpretinginformation"
+><title
+>Confrontare i file e interpretare le informazioni nelle finestre di ingresso</title>
+<screenshot
+><mediaobject>
+<imageobject
+><imagedata fileref="screenshot_diff.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+<sect2
+><title
+>Riga informativa</title
+><para
+>Sopra ad ogni finestra di testo c'è una «riga informativa». Queste  contengono una lettera «A», «B» o «C», il nome del file modificabile, un pulsante per la navigazione e il numero della prima riga visibile nella finestra (nota che «C» è opzionale). Ogni riga informativa appare con un colore diverso. </para
+><para
+>Quando hai selezionato un altro file con la navigazione, o hai finito di modificare il nome di un file premendo <keycap
+>Invio</keycap
+>, il nuovo file verrà caricato e confrontato con i file già caricati. </para
+></sect2
+><sect2
+><title
+>Colorazione</title
+><para
+>Alle tre finestre di ingresso sono assegnate le lettere «A», «B» e «C». «A» è colorata di blu, «B» di verde e «C» di magenta; questi sono i colori predefiniti, ma puoi cambiarli dal menu delle impostazioni. </para
+><para
+>Quando si trova una differenza, il colore mostra quale file di ingresso differisce. Quando entrambi gli altri file di ingresso differiscono, il colore usato per evidenziare la situazione sarà il rosso (<guilabel
+>Colore per i conflitti</guilabel
+> nelle impostazioni). Questo schema di colori è molto utile nel caso di tre file di ingresso, che discuteremo nella prossima sezione (<link linkend="merging"
+>Fusione</link
+>). </para
+></sect2
+><sect2
+><title
+>Colonna di sommario</title
+><para
+>A sinistra di ogni testo c'è la «colonna di sommario». Se ci sono differenze su una riga, la colonna di sommario ne mostrerà il colore corrispondente. Nel sommario le differenze di soli spazi saranno evidenziate con una griglia. Per i linguaggi di programmazione in cui gli spazi non sono importanti è molto utile notare a colpo d'occhio se è stato cambiato qualcosa di importante (in C e C++ gli spazi sono importanti solamente dentro a stringhe, commenti, istruzioni di preprocesso e solo in altre situazioni molto particolari). </para
+><para
+>La linea verticale che separa la colonna di sommario e il testo è interrotta se il file di ingresso non presenta righe in questo punto. Quando è attivato il ritorno a capo, questa linea verticale sarà punteggiata in corrispondenza delle righe mandate a capo. </para
+></sect2
+><sect2
+><title
+>Colonna riassuntiva</title
+><para
+>Sul lato destro, a sinistra della barra di scorrimento, si può vedere una colonna «riassuntiva». Essa mostra sinteticamente la colonna di sommario dell'ingresso «A». Tutte le differenze e i conflitti sono visibili a colpo d'occhio. Quando si usano solo due finestre di ingresso, tutte le differenze appaiono in rosso, perché ogni differenza è un conflitto. Un rettangolo nero incornicia la parte visibile dell'ingresso. Per file di ingresso molto lunghi, quando il numero delle righe è maggiore dell'altezza in pixel della colonna riassuntiva, più righe di ingresso condividono una riga di riassunto. Qui un conflitto ha maggiore priorità rispetto alle semplici differenze, che hanno priorità sul caso di nessuna modifica, così che nessuna differenza o conflitto viene perso. Facendo clic su questa colonna riassuntiva ne verrà visualizzato il testo corrispondente. </para
+></sect2
+><sect2 id="manualdiffhelp"
+><title
+>Allineare le righe manualmente</title
+><para
+>A volte l'algoritmo affianca le linee sbagliate. Oppure vuoi confrontare un estratto di testo con del testo in una posizione completamente diversa nell'altro file. Per queste situazioni puoi ordinare manualmente a &kdiff3; di allineare certe righe. Seleziona il testo per il quale vuoi migliorare l'allineamento con il mouse, come se volessi copiare e incollare nella prima vista delle differenze, e quindi scegli <guimenuitem
+>Aggiungi allineamento manuale delle differenze</guimenuitem
+> nel menu <guimenu
+>Vista di confronto</guimenu
+> (scorciatoia da tastiera <keycombo action="simul"
+>&Ctrl;<keycap
+>Y</keycap
+></keycombo
+>). Apparirà una barra arancione nella colonna panoramica di fianco al testo scelto. Ripeti l'operazione per la seconda e (se disponibile) terza vista delle differenze. &kdiff3; ricalcolerà immediatamente le differenze ogni volta che lo farai, e allineerà automaticamente le righe scelte. Naturalmente qualcuna delle righe selezionate in precedenza potrebbe non corrispondere più. </para
+><para
+>Attualmente la fusione non supporta l'uso dell'aiuto per le differenze manuali. </para
+></sect2
+><sect2 id="joinsplitsections"
+><title
+>Unire e dividere manualmente sezioni di differenze</title
+><para
+>In alcuni casi &kdiff3; vedrà troppe o troppo poche sezioni di differenze per la fusione. In questo caso puoi unire o dividere le sezioni esistenti. </para
+><para
+>Aggiungi le nuove sezioni selezionando per prima cosa del testo nelle righe corrispondenti in una delle finestre di ingresso (come quando si copia negli appunti). Scegli quindi <guimenuitem
+>Dividi differenze alla selezione</guimenuitem
+> nel menu <guimenu
+>Fondi</guimenu
+>. Le divisioni saranno aggiunte sopra la prima riga e sotto l'ultima del testo selezionato. Se vuoi aggiungere solo una sezione, seleziona il testo partendo da un'altra divisione di sezioni. </para
+><para
+>Per unire le sezioni in una delle finestre di ingresso, seleziona qualcosa nelle righe che vuoi unire. Puoi anche unire diverse sezioni in un colpo solo. Seleziona quindi <guimenuitem
+>Unisci le differenze selezionate</guimenuitem
+> nel menu <guimenu
+>Fondi</guimenu
+>. </para
+></sect2>
+</sect1>
+
+
+<sect1 id="merging"
+><title
+>Operazione di fusione e la finestra di modifica del risultato</title>
+<screenshot
+><mediaobject>
+<imageobject
+><imagedata fileref="screenshot_merge.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+<para
+>Anche la finestra di modifica del risultato della fusione (sotto la finestra di ingresso) ha una riga informativa sovrastante che mostra l'"Output:", il nome del file e "[Modificato]" se qualcosa è stato variato. Normalmente essa contiene del testo creato dagli automatismi della fusione, ma spesso conterrà anche dei conflitti. </para
+><para
+>!!! Il salvataggio è disabilitato fino a quando tutti i conflitti non sono risolti !!! (Usa il pulsante "Vai al precedente/prossimo conflitto non risolto" per ricercare i conflitti rimanenti) </para
+><para
+>Se i file di ingresso sono solo due, ogni differenza è un conflitto che deve essere risolto manualmente. </para
+><para
+>Con tre file di input il primo è considerato come base, mentre il secondo ed il terzo contengono le modifiche. Quando in qualche riga solo il file B o il file C presenta una differenza, ma non entrambi, allora il file modificato sarà automaticamente selezionato. Solo quando B e C hanno delle differenze sulle stesse righe il programma si accorgerà del conflitto il quale dovrà essere risolto manualmente. Quando B e C coincidono, ma differiscono con A, allora sarà selezionato C. </para
+><sect2
+><title
+>La colonna di sommario</title
+><para
+>La finestra di modifica del risultato di fusione ha anche una colonna di sommario sulla sinistra. Essa mostra la lettera dell'input da dove la riga è stata selezionata o nulla se tutte le tre sorgenti hanno la stessa riga. Per i conflitti essa mostra un punto interrogativo "?" e la riga mostra "&lt;Conflitto nel fondere&gt;", tutto in rosso. Dato che risolvere conflitti riga per riga richiede molto tempo, le righe sono raggruppate per gruppi con le stesse caratteristiche di differenza e conflitto. Saranno separati solo i conflitti di spazi bianchi dai conflitti di spazi non bianchi in modo da facilitare la fusione dei file in cui l'indentazione, su molte righe, cambia. </para
+></sect2
+><sect2 id="synchronise_views"
+><title
+>Impostare il gruppo attuale e sincronizzare la posizione delle viste di fusione e differenze</title
+><para
+>Quando si fa clic sulla colonna di sommario con il tasto sinistro del mouse in una finestra, l'inizio del gruppo appartenente a quella riga sarà selezionato in tutte le finestre. Questo gruppo diverrà il "gruppo attuale". Esso è evidenziato con il "Colore di fondo per questo intervallo attuale" e una barra nera apparirà sul lato sinistro del testo. </para
+></sect2
+><sect2
+><title
+>Scegliere gli input A, B o C per il conflitto attuale e per modificarlo</title
+><para
+>La barra dei pulsanti sotto la barra dei menu contiene tre pulsanti di selezione degli input contenenti le lettere «A», «B» e «C». Fai clic nel pulsante di selezione input per inserire (o rimuovere se già inserite) le righe dalle rispettive sorgenti. Per scegliere le righe da più input fai clic nei rispettivi pulsanti nell'ordine necessario. Per esempio se vuoi che nell'output le righe della «B» appaiano prima delle righe della «A», fai prima clic su «B», poi su «A». </para
+><para
+>Se usi l'opzione avanzamento automatico (<link linkend="autoadvance"
+>"Vai automaticamente al prossimo conflitto non risolto dopo la selezione del sorgente"</link
+>), dovresti disabilitarla prima di scegliere le righe da diversi input o se vuoi modificare le righe dopo aver scelto. Altrimenti &kdiff3; salterà al prossimo conflitto dopo aver scelto il primo input. </para
+><para
+>È spesso molto utile modificare direttamente l'output della fusione. La colonna di sommario mostrerà "m" per ogni riga che viene modificata manualmente. Quando per esempio le differenze sono allineate in modo che scegliere semplicemente gli input non sia soddisfacente, allora puoi marcare il testo necessario e usare il normale  <link linkend="selections"
+>copia e incolla</link
+> per inserirlo nell'output di fusione. </para
+><para
+>Alcune volte, quando una riga viene rimossa dalla fusione automatica o da una modifica manuale e non rimangono altre righe nel gruppo, allora apparirà in questa riga il messaggio <guilabel
+>&lt;Riga sorgente mancante&gt;</guilabel
+>. Questa posizione verrà mantenuta dal gruppo nel caso tu cambiassi idea e volessi sezionare qualche altro sorgente. Questo testo non verrà reimmesso nel file salvato o in altre selezioni che desideri copiare ed incollare. </para
+><para
+>Il testo "&lt;Fondi conflitti&gt;" apparirà negli appunti se copi ed incolli del testo contenente questa riga. Fai comunque attenzione nell'eseguire tale operazione. </para
+></sect2
+><sect2
+><title
+>Scegliere l'input A, B o C per tutti i conflitti</title
+><para
+>La normale fusione inizierà risolvendo semplici conflitti automaticamente. Ma il menu <guimenu
+>Fondi</guimenu
+> permette altre azioni per altre necessità comuni. Se devi selezionare lo stesso sorgente per molti conflitti, potrai selezionare sempre «A», «B» o «C», o solamente per i conflitti non risolti restanti, o per i conflitti di spazi bianchi non risolti. Se vuoi decidere tu stesso ogni singola differenza, puoi «Impostare le differenze come conflitti», o se vuoi ritornare all'opzione automatica di &kdiff3; seleziona «Risolvi automaticamente i conflitti semplici». &kdiff3; riavvierà quindi la fusione. Per azioni che cambiano le tue precedenti modifiche &kdiff3; ti chiederà conferma prima di procedere. </para
+><para
+>Nota: Quando si sceglie un sorgente per conflitti non risolti di spazi bianchi e quando vengono utilizzate le opzioni "Ignora numeri" o "Ignora commenti C/C++",le variazioni nei numeri o nei commenti saranno trattati anch'essi come spazi bianchi. </para
+></sect2
+><sect2 id="vcskeywordsmergesupport"
+><title
+>Fusione automatica della cronologia (log) e delle parole chiave del controllo di versione</title
+><para
+>Molti sistemi di controllo di versione supportano parole chiave speciali nel file. (es. "&#36;Date&#36;", "&#36;Header&#36;", "&#36;Author&#36;", "&#36;Log&#36;" etc.) Durante il controllo il sistema di controllo di versione (VCS) cambia queste righe. Per esempio "&#36;Date&#36;" cambierà in "&#36;Date: 2005/03/22 18:45:01 &#36;". Dato che questa riga sarà diversa in ogni versione del file, richiederà l'interazione manuale durante la fusione. </para
+><para
+>&kdiff3;offre la fusione automatica per questi elementi. Per righe semplici che corrispondono all'opzione "Fondi automaticamente le espressioni regolari" in tutti i file di input &kdiff3; sceglierà la riga dalla B o - se disponibile - dalla C. (Inoltre è necessario che le righe in questione corrispondano nel confronto e la riga precedente non contenga alcun conflitto). Questa fusione automatica può essere avviata sia immediatamente dopo l'avvio della fusione (attiva l'opzione "Avvia la fusione automatica delle espressioni regolari all'avvio di fusione") o in un secondo momento attraverso il menu di fusione "Avvia la fusione automatica delle espressioni regolari". </para
+><para
+>È supportata anche la fusione automatica per la cronologia del controllo di versione (nota anche come <quote
+>registro</quote
+>). La fusione automatica della cronologia può essere eseguita immediatamente all'avvio della fusione attivando l'opzione <guilabel
+>Fondi la cronologia del controllo di versione all'inizio della fusione</guilabel
+> o più tardi con il menu di fusione <guimenuitem
+>Risolvi automaticamente i conflitti di cronologia</guimenuitem
+>. </para
+><para
+>Normalmente la cronologia del controllo di versione comincia con una riga contenente la parola chiave <quote
+>&#36;Log&#36;</quote
+>. Questa deve essere corrisposta dall'opzione <guilabel
+>Espressione regolare dell'inizio di cronologia</guilabel
+>. &kdiff3; rileva quali righe successiva sono nella cronologia analizzando i caratteri iniziali che precedono la parola chiave <quote
+>&#36;Log&#36;</quote
+>. Se gli stessi caratteri di <quote
+>commento iniziale</quote
+> appaiono anche nelle righe seguenti, anche queste verranno incluse nella cronologia. </para
+><para
+>Durante il deposito, il VCS scrive una riga univoca che specifica informazioni di versione, data e ora, seguite da righe con commenti dell'utente. Queste righe costituiscono un elemento della cronologia. Questa sezione di cronologia cresce a ogni deposito, e le voci più recenti sono in cima (dopo la riga di inizio della cronologia). </para
+><para
+>Quando, in sviluppo parallelo, due o più sviluppatori depositano un ramo del file, la cronologia di fusione conterrà diversi elementi che risultano come conflitti durante la fusione dei rami. Siccome fonderli può essere molto noioso, &kdiff3; offre aiuto con due possibili strategie: basta che inserisci le informazioni sulla cronologia da entrambi gli sviluppatori in cima o ordini le informazioni della cronologia secondo una chiave definita dall'utente. </para
+><para
+>Il metodo <quote
+>inserisci tutti gli elementi e basta</quote
+> è più facile da configurare. &kdiff3; ha bisogno solo di un metodo per rilevare quali righe appartengano a un elemento di cronologia. La maggior parte dei VCS inserisce una riga vuota dopo ogni elemento di cronologia. Se non ci sono altre righe vuote, questo è un criterio sufficiente per &kdiff3;. Basta che imposti una <guilabel
+>Espressione regolare di inizio dell'elemento di cronologia</guilabel
+> vuota. Se il criterio della riga vuota non è sufficiente, puoi specificare un'espressione regolare per rilevare l'inizio degli elementi di cronologia. </para
+><para
+>Nota che &kdiff3; rimuoverà gli elementi di cronologia duplicati. Se un elemento di cronologia compare diverse volte nella cronologia di un file di ingresso, ne rimarrà solo uno nell'uscita. </para
+><para
+>Se vuoi ordinare la cronologia, devi specificare come costruire la chiave di ordinamento. Usa le parentesi nella <guilabel
+>Espressione regolare di inizio dell'elemento di cronologia</guilabel
+> per raggruppare parti dell'espressione regolare che dovrebbero essere usate in seguito per la chiave di ordinamento. Specifica quindi la <guilabel
+>Ordine della chiave d'ordinamento d'inizio degli elementi della cronologia</guilabel
+>, specificando un elenco separato da virgole di numeri che si riferiscono alla posizione del gruppo nell'espressione regolare. </para
+><para
+>Siccome questo non è così facile da azzeccare al primo colpo, devi poter provare e migliorare le espressioni regolari e la generazione delle chiavi in una finestra apposita premendo il pulsante <guibutton
+>Prova le espressioni regolari</guibutton
+>. </para
+><para
+>Esempio: consideriamo una cronologia simile a questa: <screen>
+/**************************************************************************
+** HISTORY:    &#36;Log: \toms_merge_main_view\MyApplication\src\complexalgorithm.cpp &#36;
+**
+**     \main\integration_branch_12   2 Apr 2001 10:45:41   tom
+**  Fuso il ramo simon_branch_15.
+**
+**     \main\henry_bugfix_branch_7\1   30 Mar 2001 19:22:05   henry
+**  Migliorata la velocità della funzione convertToMesh().
+**  Crash corretto.
+**************************************************************************/
+</screen
+>La riga di inizio della cronologia corrisponde all'espressione regolare <quote
+>.*\&#36;Log.*\&#36;.*</quote
+>. Seguono quindi i singoli elementi. </para
+><para
+>La riga con la parola chiave <quote
+>&#36;Log&#36;</quote
+> comincia con due <quote
+>*</quote
+> dopo i quali segue uno spazio. &kdiff3; usa la prima stringa non di spazi come <quote
+>commento iniziale</quote
+> e assume che la cronologia si concluda nella prima riga senza questo commento iniziale. In questo esempio l'ultima riga finisce con una stringa che comincia anch'essa con due <quote
+>*</quote
+>, ma invece di un carattere di spaziatura seguono degli altri <quote
+>*</quote
+>. Perciò questa riga conclude la cronologia. </para
+><para
+>Se l'ordinamento della cronologia non è necessario, l'espressione regolare dell'inizio degli elementi di cronologia potrebbe avere questo aspetto (questa riga è divisa in due parti per ragioni di spazio):<screen>
+\s*\\main\\\S+\s+[0-9]+ (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)
+ [0-9][0-9][0-9][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9]\s+.*
+</screen
+>Per dettagli sulle espressioni regolari, vedi <ulink url="http://doc.trolltech.com/3.3/qregexp.html#details"
+>la documentazione sulle espressioni regolari della Trolltech</ulink
+>. Nota che <quote
+>\s</quote
+> (con la minuscola) corrisponde ai caratteri di spaziatura e <quote
+>\S</quote
+> (con la maiuscola) corrisponde a ogni carattere non di spaziatura. Nell'esempio l'inizio degli elementi di cronologia contiene prima le informazioni di versione, con espressione regolare <userinput
+>\\main\\\S+</userinput
+>, la data in forma di giorno <userinput
+>[0-9]+</userinput
+>, mese <userinput
+>(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)</userinput
+> e anno <userinput
+>[0-9][0-9][0-9][0-9]</userinput
+>, l'ora <userinput
+>[0-9][0-9]:[0-9][0-9]:[0-9][0-9]</userinput
+> e infine il nome dello sviluppatore <userinput
+>.*</userinput
+>. </para
+><para
+>Nota che i caratteri di <quote
+>commento iniziale</quote
+> (nell'esempio <userinput
+>**</userinput
+>) saranno già rimossi da &kdiff3; prima del confronto, quindi l'espressione regolare comincia con una corrispondenza per zero o più caratteri di spaziatura, <userinput
+>\s*</userinput
+>. Siccome i caratteri dei commenti possono essere diversi in ogni file (per esempio C e C++ usano dei caratteri diversi rispetto a Perl), &kdiff3; si prende cura dei caratteri iniziali dei commenti, e tu non devi specificarli nell'espressione regolare. </para
+><para
+>Se hai bisogno di una cronologia ordinata, deve essere calcolata la chiave di ordinamento. Per farlo, le parti rilevanti dell'espressione regolare devono essere raggruppate in parentesi (le parentesi aggiuntive possono essere lasciate se l'ordinamento della cronologia viene disabilitato).<screen>
+\s*\\main\\(\S+)\s+([0-9]+) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)
+ ([0-9][0-9][0-9][0-9]) ([0-9][0-9]:[0-9][0-9]:[0-9][0-9])\s+(.*)
+</screen
+>Le parentesi contengono ora:<orderedlist
+><listitem
+><para
+>informazioni di versione,</para
+></listitem
+><listitem
+><para
+>giorno,</para
+></listitem
+><listitem
+><para
+>mese,</para
+></listitem
+><listitem
+><para
+>anno,</para
+></listitem
+><listitem
+><para
+>ora,</para
+></listitem
+><listitem
+><para
+>nome.</para
+></listitem
+></orderedlist
+>Se vogliamo ordinare per data e ora, dobbiamo costruire una chiave con gli elementi in un altro ordine di apparizione: prima l'anno, poi il mese, il giorno, l'ora, le informazioni di versione e il nome. Quindi, la chiave di ordinamento da specificare è <userinput
+>4,3,2,5,1,6</userinput
+>. </para
+><para
+>Siccome i nomi dei mesi non sono facili da ordinare (<userinput
+>Apr</userinput
+> sarebbe il primo), &kdiff3; rileva l'ordine in cui i nomi dei mesi sono stati dati e usa quell'ordine (<userinput
+>Apr</userinput
+>-><userinput
+>04</userinput
+>). Se viene trovato un numero, verrà trasformato in un valore a quattro cifre con zeri iniziali per l'ordinamento. Infine, la chiave di ordinamento risultante per la prima riga di inizio degli elementi di cronologia sarà: <screen
+>2001 04 0002 10:45:41 integration_branch_12   tom 
+</screen>
+</para
+><para
+>Per ulteriori informazioni vedi anche <link linkend="mergeoptions"
+>Impostazioni di fusione</link
+>. </para>
+</sect2>
+</sect1>
+
+<sect1 id="navigation"
+><title
+>Navigazione e modifica</title>
+<para
+>È possibile navigare con le barre di scorrimento e con il mouse, ma puoi anche usare i tasti. Se fai clic dentro una delle finestre, potrai usare i pulsanti sinistra, destra, alto, basso, pagina successiva, pagina precedente, inizio, fine, ctrl-inizio, ctrl-fine come faresti in altri programmi. La colonna riassuntiva di fianco alla barra di scorrimento verticale dei file di ingresso può anche essere usata per la navigazione facendoci clic. </para
+><para
+>È anche possibile usare la rotellina del mouse per scorrere in alto e in basso. </para
+><para
+>Nella finestra di modifica del risultato puoi anche usare gli altri tasti. Puoi passare tra le modalità di inserimento e di sovrascrittura con il tasto <keycap
+>Ins</keycap
+>; la predefinita è quella di inserimento. </para
+><para
+>Fare clic con il &LMB; in una qualsiasi colonna di sommario sincronizzerà tutte le finestre in modo da mostrare l'inizio dello stesso gruppo di righe (come spiegato nella sezione <link linkend="synchronise_views"
+>Impostare il gruppo attuale e sincronizzare la posizione delle viste di fusione e differenze</link
+>. </para
+><para
+>La barra dei pulsanti contiene inoltre nove pulsanti di navigazione con cui puoi passare alla differenza attuale, alla prima o all'ultima, a quella successiva o precedente (<keycombo action="simul"
+>&Ctrl;<keycap
+>↓</keycap
+></keycombo
+> e <keycombo action="simul"
+>&Ctrl;<keycap
+>↑</keycap
+></keycombo
+>), al conflitto successivo o precedente (<keycombo action="simul"
+>&Ctrl;<keycap
+>Pag↓</keycap
+></keycombo
+> e <keycombo action="simul"
+>&Ctrl;<keycap
+>Pag↑</keycap
+></keycombo
+>), o al conflitto non risolto successivo o precedente. Nota che per &kdiff3; un <quote
+>conflitto</quote
+> che non è stato risolto automaticamente all'inizio della fusione rimane un <quote
+>conflitto</quote
+> anche se è stato risolto; da qui la necessità di distinguere i <quote
+>conflitti non risolti</quote
+>. </para>
+<sect2 id="autoadvance"
+><title
+>Avanzamento automatico</title>
+<para
+>C'è anche un pulsante <guilabel
+>Vai automaticamente al prossimo conflitto non risolto dopo aver selezionato la fonte</guilabel
+> (avanzamento automatico). Se lo usi, quando una fonte è selezionata, &kdiff3; passerà e selezionerà il prossimo conflitto non risolto automaticamente. Ciò è d'aiuto quando vuoi sempre scegliere un solo file di ingresso. Quando hai bisogno di entrambe le fonti, o vuoi cambiare qualcosa dopo aver selezionato, probabilmente lo vorrai disattivare. Prima di procedere al prossimo conflitto non risolto, &kdiff3; mostrerà l'effetto della tua scelta per un breve periodo. Questo tempo è regolabile nelle impostazioni delle differenze e di fusione: puoi specificare il <guilabel
+>Ritardo nell'avanzamento automatico</guilabel
+> in millisecondi tra i valori 0 e 2000. Se vuoi ridurre il numero di volte che fai clic, usa un ritardo di avanzamento breve e le scorciatoie <keycombo action="simul"
+>&Ctrl;<keycap
+>1</keycap
+></keycombo
+>, <keycombo action="simul"
+>&Ctrl;<keycap
+>2</keycap
+></keycombo
+> e <keycombo action="simul"
+>&Ctrl;<keycap
+>1</keycap
+></keycombo
+> per selezionare A, B e C nel caso di molti conflitti. </para>
+</sect2>
+</sect1>
+
+<sect1 id="selections"
+><title
+>Selezione, Copia ed Incolla</title>
+<para
+>La finestre dell'ingresso non hanno un cursore, quindi le selezioni vanno fatte con il &LMB; partendo dall'inizio, tenendolo premuto e spostandolo fino alla fine della selezione, dove lo rilasci. È possibile selezionare una singola parola facendo doppio clic. Nella finestra del risultato di fusione puoi anche selezionare con la tastiera, tenendo premuto il tasto &Shift; e navigando con i tasti a freccia. </para
+><para
+>Se la selezione deve andare oltre la parte visibile sullo schermo, puoi spostare il mouse ai bordi della finestra, il che fa scorrere &kdiff3; in quella direzione. </para
+><para
+>Per selezioni molto grandi, puoi anche usare i tasti di navigazione tenendo premuto il &LMB;. Per esempio, usa <keycap
+>Pag↑</keycap
+> e <keycap
+>Pag↓</keycap
+> per andare velocemente a un certo punto; a quel punto rilascia il mouse. </para
+><para
+>Per selezionare tutto nella finestra attuale, usa il menu <menuchoice
+><guimenu
+>Modifica</guimenu
+><guimenuitem
+>Seleziona tutto</guimenuitem
+></menuchoice
+> (<keycombo action="simul"
+>&Ctrl;<keycap
+>A</keycap
+></keycombo
+>). </para
+><para
+>Per copiare negli appunti devi premere il pulsante <guilabel
+>Copia</guilabel
+> (<keycombo action="simul"
+>&Ctrl;<keycap
+>C</keycap
+></keycombo
+> o <keycombo action="simul"
+>&Ctrl;<keycap
+>Ins</keycap
+></keycombo
+>). Esiste anche l'opzione <guilabel
+>Copia automatica</guilabel
+>: se è attiva, tutto quello che selezioni verrà copiato immediatamente, senza farlo esplicitamente. Fai però attenzione, perché i contenuti degli appunti potrebbero andare accidentalmente persi. </para
+><para
+><guilabel
+>Taglia</guilabel
+> (<keycombo action="simul"
+>&Ctrl;<keycap
+>X</keycap
+></keycombo
+> o <keycombo action="simul"
+>&Shift;<keycap
+>Canc</keycap
+></keycombo
+> copia negli appunti il testo selezionato e lo cancella. </para
+><para
+><guilabel
+>Incolla</guilabel
+> (<keycombo action="simul"
+>&Ctrl;<keycap
+>V</keycap
+></keycombo
+> o <keycombo action="simul"
+>&Shift;<keycap
+>Ins</keycap
+></keycombo
+> inserisce il testo dagli appunti alla posizione del cursore o al posto della selezione attuale. Se incolli in una delle finestre di ingresso delle differenze, i contenuti degli appunti saranno mostrati in quella finestra, e il confronto verrà immediatamente riavviato. Ciò è utile se vuoi prendere del testo da qualche parte e confrontarlo con qualcos'altro senza prima dover creare dei file. </para>
+</sect1>
+
+<sect1 id="saving"
+><title
+>Salvataggio</title>
+<para
+>Il salvataggio sarà permesso solo quando tutti i conflitti saranno stati risolti. Se il file esiste già, e l'opzione <guilabel
+>Copie di sicurezza</guilabel
+> è abilitata, il file esistente sarà rinominato con l'estensione <literal role="extension"
+>.orig</literal
+>, ma se quest'ultimo file esiste sarà rimosso. Se concludi o avvii una nuova analisi delle differenze, e i dati non sono stati ancora salvati, &kdiff3; ti chiederà se vuoi salvare, annullare o procedere senza salvare. &kdiff3; non intercetta nessun segnale, quindi se si uccide il processo di &kdiff3; tutti i dati andranno persi. </para
+><para
+>I caratteri di fine riga sono salvati secondo il metodo appropriato per il sistema operativo in uso. Sui sistemi Unix ogni riga termina con il carattere <quote
+>\n</quote
+>, mentre sui sistemi Windows ogni riga termina con i caratteri di ritorno a capo e di nuova riga, <quote
+>\r\n</quote
+>. &kdiff3; non mantiene i caratteri di fine riga originali del file, il che vuol dire che non dovresti usare &kdiff3; con i file binari. </para>
+</sect1>
+
+<sect1 id="find"
+><title
+>Trovare le stringhe</title>
+<para
+>Puoi cercare una stringa in ogni finestra di testo di &kdiff3;. Il comando <guilabel
+>Trova</guilabel
+> (<keycombo action="simul"
+>&Ctrl;<keycap
+>F</keycap
+></keycombo
+>) nel menu <guimenu
+>Modifica</guimenu
+> apre una finestra che ti permette di specificare la stringa da cercare. Puoi anche selezionare le finestre nella quali cercare. La ricerca partirà sempre dall'inizio. Usa il comando <guilabel
+>Trova successivo</guilabel
+> (<keycap
+>F3</keycap
+>) per passare alla prossima occorrenza. Se decidi di cercare su più finestre, la ricerca comincerà dalla prima finestra, poi passerà alla seconda, e così via. </para>
+</sect1>
+
+<sect1 id="printing"
+><title
+>Stampare</title>
+<para
+>&kdiff3; supporta la stampa delle differenze dei file di testo. Il comando <guilabel
+>Stampa</guilabel
+> (<keycombo action="simul"
+>&Ctrl;<keycap
+>P</keycap
+></keycombo
+>) nel menu <guimenu
+>File</guimenu
+> apre una finestra che ti permette di selezionare la stampante e regolare altre opzioni. </para
+><para
+>Ci sono diverse possibilità per regolare l'intervallo di stampa. Siccome le finestre di stampa sono diverse a seconda del sistema operativo, il modo esatto in cui regolarlo varia. </para>
+<variablelist>
+   <varlistentry
+><term
+>Tutto:</term
+><listitem
+><para
+>Stampa tutto.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+>Attuale:</term
+><listitem
+><para
+>Stampa una pagina partendo dalla prima riga visibile nella finestra. Sui sistemi senza questa opzione, essa è ottenibile chiedendo di stampare il numero di pagina <userinput
+>10000</userinput
+>.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+>Selezione:</term
+><listitem
+><para
+>Prima di stampare, seleziona il testo con il mouse (come quando fai copia e incolla) in una delle finestre d'ingresso delle differenze per definire le righe di inizio e fine. Se non è stato selezionato del testo nelle finestre di ingresso delle differenze, questa scelta non sarà disponibile. Sui sistemi senza questa opzione, essa è ottenibile chiedendo di stampare il numero di pagina <userinput
+>9999</userinput
+>.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+>Intervallo:</term
+><listitem
+><para
+>Specifica la prima e l'ultima pagina. </para
+></listitem
+></varlistentry>
+</variablelist>
+<para
+>Altre opzioni di stampa importanti saranno dedotte dalle opzioni normali: </para
+><itemizedlist>
+   <listitem
+><para
+>Carattere e sue dimensioni</para
+></listitem>
+   <listitem
+><para
+>Mostra i numeri di riga</para
+></listitem>
+   <listitem
+><para
+>A capo automatico</para
+></listitem>
+   <listitem
+><para
+>Colori</para
+></listitem>
+   <listitem
+><para
+>eccetera</para
+></listitem>
+</itemizedlist>
+<para
+>Si raccomanda inoltre di usare il formato orizzontale quando si stampa. </para>
+</sect1>
+
+<sect1 id="options"
+><title
+>Opzioni</title>
+<para
+>Le opzioni e l'elenco dei file recenti saranno salvate all'uscita del programma, e ricaricate quando verrà riavviato (<menuchoice
+><guimenu
+>Impostazioni</guimenu
+><guimenuitem
+>Configura &kdiff3;</guimenuitem
+> </menuchoice
+>). </para>
+<sect2
+><title
+>Carattere</title>
+<para
+>Seleziona un carattere a larghezza fissa. Su alcuni sistemi questa finestra potrebbe presentare anche caratteri a larghezza variabile, ma non dovresti usarli. </para>
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Corsivo per le differenze:</emphasis
+></term
+><listitem
+><para
+>Selezionando questo, le differenze di testo saranno rappresentate con il carattere scelto in stile corsivo. Se il carattere non supporta il corsivo, l'opzione non avrà effetto.</para>
+   </listitem
+></varlistentry>
+</variablelist>
+</sect2>
+
+<sect2
+><title
+>Colori</title>
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Colore di primo piano:</emphasis
+></term
+><listitem
+><para
+>Normalmente nero. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Colore di sfondo:</emphasis
+></term
+><listitem
+><para
+>Normalmente bianco. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Colore di sfondo per le differenze:</emphasis
+></term
+><listitem
+><para
+>Normalmente grigio chiaro. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Colore per A:</emphasis
+></term
+><listitem
+><para
+>Normalmente blu scuro. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Colore per B:</emphasis
+></term
+><listitem
+><para
+>Normalmente verde scuro. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Colore per C:</emphasis
+></term
+><listitem
+><para
+>Normalmente magenta scuro. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Colore per i conflitti:</emphasis
+></term
+><listitem
+><para
+>Normalmente rosso.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Colore di sfondo per l'intervallo attuale:</emphasis
+></term
+><listitem
+><para
+>Normalmente giallo chiaro.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Colore di sfondo per le differenze dell'intervallo attuale:</emphasis
+></term
+><listitem
+><para
+>Normalmente giallo scuro.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Colore per gli intervalli delle differenze selezionati manualmente:</emphasis
+></term
+><listitem
+><para
+>Normalmente arancione.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Colore del file più recente nel confronto tra cartelle:</emphasis
+></term
+><listitem
+><para
+>Normalmente verde.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Colore del file più vecchio nel confronto tra cartelle:</emphasis
+></term
+><listitem
+><para
+>Normalmente rosso.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Colore del file di età media nel confronto tra cartelle:</emphasis
+></term
+><listitem
+><para
+>Normalmente giallo scuro.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Colore per file mancanti nel confronto tra cartelle:</emphasis
+></term
+><listitem
+><para
+>Normalmente nero.</para
+></listitem
+></varlistentry>
+</variablelist>
+<para
+>Il cambio dei colori per il confronto tra cartelle avrà effetto solo all'avvio del prossimo confronto tra cartelle. </para>
+<para
+>Su sistemi con soli 16 o 256 colori, alcuni colori non sono disponibili nella forma esatta. In questi sistemi il pulsante <guibutton
+>Valori predefiniti</guibutton
+> selezionerà un colore puro. </para>
+</sect2>
+
+<sect2
+><title
+>Impostazioni dell'editor</title>
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Il tabulatore inserisce spazi:</emphasis
+></term
+><listitem
+><para
+>Se questo è disabilitato e premi il tasto di tabulazione, verrà inserito un carattere di tabulazione, altrimenti verranno inseriti il numero appropriato di spazi.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Dimensione della tabulazione:</emphasis
+></term
+><listitem
+><para
+>Può essere regolata a seconda delle necessità. Il valore predefinito è 8. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Rientro automatico:</emphasis
+></term
+><listitem
+><para
+>Quando premi &Enter;, il rientro della riga precedente sarà usato per la nuova. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Copia automaticamente la selezione:</emphasis
+></term
+><listitem
+><para
+>Ogni selezione è immediatamente copiata negli appunti quando attiva, e non sarà necessario copiarla esplicitamente. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Tipo di fine riga:</emphasis
+></term
+><listitem
+><para
+>Quando salvi un file puoi decidere quali caratteri di fine riga usare.L'impostazione predefinita è quella abituale del sistema operativo in uso. </para
+></listitem
+></varlistentry>
+</variablelist>
+</sect2>
+
+<sect2 id="diffoptions"
+><title
+>Impostazioni delle differenze</title>
+<para
+>Nel confronto dei file, &kdiff3; prova prima a confrontare le righe uguali in tutti i file di ingresso. Solo durante questa fase potrebbe ignorare gli spazi. La seconda fase confronta ogni riga. In questa fase gli spazi non saranno ignorati. Anche durante la fusione gli spazi non saranno ignorati. </para>
+
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Mantieni il ritorno a capo:</emphasis
+></term
+><listitem
+><para
+>Alcuni editor (in alcuni sistemi) salvano il ritorno a capo <quote
+>\r</quote
+> e l'avanzamento di riga <quote
+>\n</quote
+> alla fine delle righe, mentre altri salvano solamente il ritorno a capo <quote
+>\n</quote
+>. Normalmente &kdiff3; ignora il ritorno a capo, ma alcuni file di diverse dimensioni potrebbero comunque risultare uguali in una verifica fianco a fianco. Quando questa opzione è abilitata, i caratteri di ritorno a capo sono resi visibili ma sono trattati come spazi. Questa opzione deve essere disattivata durante una fusione. Come impostazione predefinita è disattivata.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Ignora i numeri:</emphasis
+></term
+><listitem
+><para
+>Come impostazione predefinita questa opzione è disattivata. I caratteri numerici (da <quote
+>0</quote
+> a <quote
+>9</quote
+>, <quote
+>.</quote
+>, <quote
+>-</quote
+>) saranno ignorati nella prima parte dell'analisi nella quale si fanno corrispondere le righe. Nel risultato le differenze saranno comunque mostrate, ma i caratteri numerici saranno trattati come spazi. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Ignora i commenti C e C++:</emphasis
+></term
+><listitem
+><para
+>Come impostazione predefinita questa opzione è disattivata. Le variazioni dei commenti saranno trattate come variazioni di spazi. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Ignora le maiuscole:</emphasis
+></term
+><listitem
+><para
+>Come impostazione predefinita questa opzione è disattivata. Le differenze tra maiuscole e minuscole (come tra <quote
+>A</quote
+> e <quote
+>a</quote
+>) saranno trattate come differenze tra spazi. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Comando per il preprocessore</emphasis
+></term
+><listitem
+><para
+>Vedi la <link linkend="preprocessors"
+>prossima sezione</link
+>. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Comando del preprocessore per confrontare righe:</emphasis
+></term
+><listitem
+><para
+>Vedi la <link linkend="preprocessors"
+>prossima sezione</link
+>. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Ricerca approfondita:</emphasis
+></term
+><listitem
+><para
+>Ricerca approfondita per ricercare la più piccola differenza (Normalmente attiva). Questo sarà probabilmente utile per file complicati e lunghi. E lento per file molto lunghi. </para
+></listitem
+></varlistentry>
+</variablelist>
+</sect2>
+
+<sect2 id="mergeoptions"
+><title
+>Impostazioni di fusione</title>
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Pausa nell'avanzamento automatico (ms):</emphasis
+></term
+><listitem
+><para
+>Quando l'opzione di auto avanzamento automatico è attiva si specifica quando lungo mostrare il risultato delle selezione prima di saltare al prossimo conflitto non risolto. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Trattamento predefinito degli spazi bianchi nel fondere 2 file:</emphasis
+></term
+><listitem
+><para
+>Risolvi automaticamente tutti i conflitti di spazi scegliendo il file specifico (l'impostazione predefinita è la scelta manuale). Utile se gli spazi non sono importanti in molti file. Se ti serve solo di rado, è meglio usare <guimenuitem
+>Scegli A/B/C per tutti i conflitti di spazi non risolti</guimenuitem
+> nel menu di fusione. Nota che, se abiliti <guilabel
+>Ignora i numeri</guilabel
+> o <guilabel
+>Ignora i commenti C e C++</guilabel
+>, questa scelta automatica verrà applicata anche per i conflitti tra numeri o commenti. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Espressione regolare di fusione automatica:</emphasis
+></term
+><listitem
+><para
+>Espressione regolare per le righe dove &kdiff3; dovrebbe scegliere automaticamente una sorgente. Vedi anche <link linkend="vcskeywordsmergesupport"
+>Fusione automatica</link
+>. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Esegui la fusione automatica con espressioni regolari all'avvio della fusione:</emphasis
+></term
+><listitem
+><para
+>Se attivo, &kdiff3; esegue la fusione automatica usando l'<guilabel
+>Espressione regolare di fusione automatica</guilabel
+> all'avvio di una fusione. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Espressione regolare dell'inizio di cronologia:</emphasis
+></term
+><listitem
+><para
+>Espressione regolare per l'inizio di un elemento di cronologia di fusione. Normalmente questa riga contiene la parola chiave <userinput
+>&#36;Log&#36;</userinput
+>. Il valore predefinito è <userinput
+>.*\&#36;Log.*\&#36;.*</userinput
+>. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Espressione regolare di inizio dell'elemento di cronologia:</emphasis
+></term
+><listitem
+><para
+>Un elemento di cronologia di fusione consiste di diverse righe. Specifica l'espressione regolare per rilevarne la prima (senza il commento iniziale). Usa le parentesi per raggruppare le chiavi che vuoi usare per l'ordinamento. Se lasciato vuoto, &kdiff3; suppone che le righe vuote separino gli elementi di cronologia. Vedi anche <link linkend="vcskeywordsmergesupport"
+>Fusione automatica</link
+>. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Ordinamento della fusione della cronologia:</emphasis
+></term
+><listitem
+><para
+>Abilita l'ordinamento della cronologia del controllo di versione. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Ordine della chiave d'ordinamento d'inizio degli elementi della cronologia:</emphasis
+></term
+><listitem
+><para
+>Ogni parentesi usata nell'espressione regolare per l'elemento iniziale della cronologia raccoglie una chiave disponibile per l'ordinamento. Specifica l'elenco di chiavi (numerate in ordine di apparizione partendo da 1) separandole con una virgola (<userinput
+>,</userinput
+>), per esempio <userinput
+>4,5,6,1,2,3,7</userinput
+>. Se lasciato vuoto, non verrà effettuato un riordinamento. Vedi anche <link linkend="vcskeywordsmergesupport"
+>Fusione automatica</link
+>. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Fondi la cronologia del controllo di versione all'inizio della fusione</emphasis
+></term
+><listitem
+><para
+>Se attivato, &kdiff3; esegue la fusione automatica della cronologia usando le opzioni sunnominate all'avvio di una fusione. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Numero massimo di elementi nella cronologia:</emphasis
+></term
+><listitem
+><para
+>&kdiff3; tronca l'elenco della cronologia dopo il numero di elementi specificato. Usa <userinput
+>-1</userinput
+> per evitare il troncamento, il che è anche il valore predefinito. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Prova le espressioni regolari</emphasis
+></term
+><listitem
+><para
+>Questo pulsante mostra una finestra che permette di migliorare e provare le espressioni regolari indicate sopra. Basta copiare i dati dai file nelle righe d'esempio, e il <guilabel
+>Risultato di corrispondenza</guilabel
+> mostrerà subito se la corrispondenza avviene o meno. Il <guilabel
+>Risultato della chiave di ordinamento</guilabel
+> mostrerà la chiave usata per il riordinamento della fusione della cronologia. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Comando di fusione irrilevante:</emphasis
+></term
+><listitem
+><para
+>Specifica un comando da chiamare quando &kdiff3; rileva che, per una fusione a tre file, il file B non contribuisce alcun dato di rilievo che non sia già contenuto nel file C. Il comando viene chiamato con tre nomi di file come parametri. I dati corrispondenti alla <guilabel
+>Espressione regolare di fusione automatica</guilabel
+> o nella cronologia non sono considerati di rilievo. </para
+></listitem
+></varlistentry>
+</variablelist>
+
+</sect2>
+
+<sect2
+><title
+>Fusione di cartelle</title>
+<para
+>Queste opzioni riguardano la scansione delle cartelle e la gestione della fusione: vedi <link linkend="dirmergeoptions"
+>la documentazione sul confronto e la fusione tra cartelle</link
+> per maggiori dettagli. </para
+><para
+>Tuttavia, qui c'è un'opzione di rilievo anche per il salvataggio di file singoli: </para>
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Copie di sicurezza:</emphasis
+></term
+><listitem
+><para
+>Quando viene salvato un file e ne esiste una versione precedente, la versione originale sarà rinominata con un'estensione <literal role="extension"
+>.orig</literal
+>. Se esiste già una vecchia copia di sicurezza con estensione <literal role="extension"
+>.orig</literal
+>, questa verrà eliminata senza farne un'altra copia. </para
+></listitem
+></varlistentry>
+</variablelist>
+</sect2>
+
+<sect2
+><title
+>Lingua e paese</title>
+  <variablelist>
+    <varlistentry
+><term
+><emphasis
+>Lingua:</emphasis
+></term
+><listitem
+><para
+>Imposta la lingua usata per l'interfaccia utente. Le modifiche a questa opzione non hanno effetto immediato sul programma. Devi chiudere &kdiff3; e riavviarlo per far cambiare la lingua. Questa opzione non è disponibile nella versione &kde; di &kdiff3; perché la lingua viene cambiata nelle impostazioni globali di &kde;. </para
+></listitem
+></varlistentry>
+    <varlistentry
+><term
+><emphasis
+>Usa la stessa codifica per tutto:</emphasis
+></term
+><listitem
+><para
+>Le opzioni di codifica che seguono possono essere fissate separatamente per ogni voce o, se questa opzione è attivata, il primo valore vale per tutti. </para
+></listitem
+></varlistentry>
+    <varlistentry
+><term
+><emphasis
+>Codifica locale:</emphasis
+></term
+><listitem
+><para
+>Davanti al selettore di codec appare una nota che ti dice quale è la codifica locale. Non è modificabile, serve solo a ricordarti quale è la codifica locale nel caso che tu non lo sapessi già. Tuttavia devi selezionarla. </para
+></listitem
+></varlistentry>
+    <varlistentry
+><term
+><emphasis
+>Codifica per i file A/B/C:</emphasis
+></term
+><listitem
+><para
+>Cambia la codifica dei file in ingresso. Ha effetto sulla visualizzazione dei caratteri speciali. Poiché puoi aggiustare separatamente le codifiche, potrai confrontare e fondere file prodotti con codifiche diverse. </para
+></listitem
+></varlistentry>
+    <varlistentry
+><term
+><emphasis
+>Codifica per i file fusione e salvataggio:</emphasis
+></term
+><listitem
+><para
+>Quando avrai modificato un file, potrai scegliere con quale codifica salvarlo sul disco fisso. </para
+></listitem
+></varlistentry>
+    <varlistentry
+><term
+><emphasis
+>Codifica per i file sottoposti al preprocessore:</emphasis
+></term
+><listitem
+><para
+>Quando definisci un preprocessore questo deve essere in grado di operare sulla codifica in uso. Ad esempio i tuoi file sono 16-bit-unicode e il tuo preprocessore può operare solo su file 8-bit-ascii. Con questa opzione puoi definire la codifica del risultato del preprocessore. </para
+></listitem
+></varlistentry>
+    <varlistentry
+><term
+><emphasis
+>Lingue scritte da destra a sinistra:</emphasis
+></term
+><listitem
+><para
+>Alcune lingue sono scritte sa destra a sinistra. Quando questa opzione è attivata, &kdiff3; scrive il testo da destra a sinistra nelle finestre di ingresso delle differenze e nella finestra di uscita della fusione. Nota che se avvii &kdiff3; dalla riga di comando con l'opzione <option
+>--reverse</option
+>, anche tutta l'interfaccia grafica sarà impostata da destra a sinistra (è una funzionalità fornita da &Qt;). Questa documentazione è stata scritta assumendo che l'opzione <guilabel
+>Lingue scritte da destra a sinistra</guilabel
+> e l'impostazione grafica inversa non siano state attivate. Quindi alcune occorrenze di <quote
+>destra</quote
+> e <quote
+>sinistra</quote
+> dovranno essere scambiate nel caso si usi questa possibilità. </para
+></listitem
+></varlistentry>
+
+  </variablelist>
+</sect2>
+
+<sect2
+><title
+>Varie</title>
+<para
+>Queste opzioni ed azioni sono disponibili nei menu o nelle barre dei pulsanti.</para>
+<variablelist>
+  <varlistentry
+><term
+><emphasis
+>Mostra i numeri di riga:</emphasis
+></term
+><listitem
+><para
+>Puoi selezionare se, per il file di ingresso, il numero di riga deve essere visualizzato.</para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Mostra anche le differenze date da spazi e tabulatori:</emphasis
+></term
+><listitem
+><para
+>Alcune volte la visualizzazione degli spazi e dei tabulatori disturba. È possibile eliminarla.</para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Mostra spazio bianco:</emphasis
+></term
+><listitem
+><para
+>Disabilitalo per sopprimere l'evidenziazione delle modifiche di soli spazi nel testo o nelle colonne riassuntive. Nota che vale anche per le modifiche dei numeri o dei commenti se sono attive le opzioni <guilabel
+>Ignora i numeri</guilabel
+> o <guilabel
+>Ignora i commenti C e C++</guilabel
+>.</para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Opzioni delle colonne riassuntive:</emphasis
+></term
+><listitem
+><para
+>Queste opzioni sono disponibili solo quando si confrontano tre file. Nella modalità normale tutte le differenze vengono mostrate in una sola colonna riassuntiva codificata con dei colori. Però, a volte, potrebbe interessarti evidenziare solo le differenze tra due dei tre file. Selezionare <guilabel
+>Riassunto tra A e B</guilabel
+>, <guilabel
+>Riassunto tra A e C</guilabel
+>, o <guilabel
+>Riassunto tra B e C</guilabel
+> aprirà una seconda colonna riassuntiva di fianco a quella normale con le informazioni richieste. </para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>A capo nelle finestre delle differenze:</emphasis
+></term
+><listitem
+><para
+>Le righe più lunghe della larghezza della finestra vengono mostrate su più righe. </para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Mostra finestra A, B o C:</emphasis
+></term
+><listitem
+><para
+>Alle volte vuoi usare meglio lo spazio sullo schermo per le righe lunghe. Nascondi le finestre non importanti (nel menu <guimenu
+>Finestra</guimenu
+>).</para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Inverti orientamento divisione:</emphasis
+></term
+><listitem
+><para
+>Passa tra mostrare le finestre delle differenze una di fianco all'altra (A a sinistra di B, che a sua volta è a sinistra di C) o una sopra l'altra (A sopra B, a sua volta sopra C). Questo potrebbe essere utile nel caso di righe lunghe (nel menu <guimenu
+>Finestra</guimenu
+>). </para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Avviare velocemente una fusione:</emphasis
+></term
+><listitem
+><para
+>A volte guardi le differenze e decidi di fondere. <inlinemediaobject
+><imageobject
+><imagedata fileref="merge_current.png" format="PNG"/></imageobject
+></inlinemediaobject
+> <guimenuitem
+>Fondi il file attuale</guimenuitem
+> nel menu <guimenu
+>Cartella</guimenu
+> funziona anche confrontando solo due file. Basta un clic per avviare la fusione, che usa il il nome dell'ultimo file di ingresso come predefinito. Quando si usa per riavviare una fusione, il nome del file di uscita sarà mantenuto.</para
+></listitem
+></varlistentry>
+</variablelist>
+</sect2>
+
+<sect2 id="shortcuts"
+><title
+>Configurazione delle scorciatoie da tastiera</title>
+<para
+>Attualmente solo la versione per &kde; supporta la configurazione personalizzata delle scorciatoie da tastiera (menu <menuchoice
+><guimenu
+>Impostazioni</guimenu
+><guimenuitem
+>Configura le scorciatoie</guimenuitem
+></menuchoice
+>). </para>
+</sect2>
+</sect1>
+
+<sect1 id="preprocessors"
+><title
+>Comandi per il preprocessore</title>
+<para
+>&kdiff3; supporta due opzioni del preprocessore. </para
+><para>
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Comando per il preprocessore</emphasis
+></term
+><listitem
+><para
+>Quando un file viene letto viene incanalato come ingresso a questo comando esterno. Verrà visualizzato il risultato del comando invece del file iniziale. Puoi scrivere il tuo preprocessore secondo le tue esigenze specifiche. Usalo per esempio per tagliare parti di file che danno fastidio, per correggere automaticamente il rientro, eccetera. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Comando del preprocessore per confrontare righe:</emphasis
+></term
+><listitem
+><para
+>Quando un file viene letto, esso viene trattato da questo comando esterno. Se viene specificato un comando come preprocessore (vedi sopra), allora l'uscita dal preprocessore è anche l'ingresso del preprocessore che confronta le righe. Il risultato sarà usato durante la fase di analisi delle righe coincidenti. Puoi scrivere un tuo preprocessore personalizzato che risolva le tue esigenze. Ogni riga in ingresso deve avere una riga corrispondente in uscita. </para
+></listitem
+></varlistentry>
+</variablelist>
+</para>
+<para
+>L'idea è quella di permettere la maggior flessibilità possibile nell'impostare il risultato del confronto. Purtroppo ciò richiede l'uso di un programma esterno, e molti utenti non hanno voglia di scriversene uno. La buona notizia è che molto spesso <command
+>sed</command
+> o <command
+>perl</command
+> sono perfettamente in grado di svolgere il lavoro richiesto. </para>
+<para
+>Un semplice esempio con un file di testo: prendi il  file a.txt (6 righe): <screen>
+      aa
+      ba
+      ca
+      da
+      ea
+      fa
+</screen
+> e il file b.txt (3 righe): <screen>
+      cg
+      dg
+      eg
+</screen
+> Senza un preprocessore appariranno le seguenti righe affiancate: <screen>
+      aa - cg
+      ba - dg
+      ca - eg
+      da
+      ea
+      fa
+</screen
+> Probabilmente non era quello che desideravi, poiché la prima lettera contiene l'informazione realmente interessante. Per aiutare l'algoritmo di confronto ad ignorare la seconda lettera potremmo usare come preprocessore un comando che rimpiazzi riga per riga "g" con "a": <screen>
+   <command
+>sed</command
+> 's/g/a/'
+</screen
+> Con questo comando il risultato del confronto sarà: <screen>
+      aa
+      ba
+      ca - cg
+      da - dg
+      ea - eg
+      fa
+</screen
+> Internamente l'algoritmo di confronto usa i file elaborati riga per riga dal preprocessore, ma sullo schermo il file non appare modificato. Un preprocessore normale avrebbe cambiato anche i dati visualizzati. </para>
+
+<sect2 id="sedbasics"
+><title
+>Basi del <command
+>sed</command
+></title>
+<para
+>Questa sezione spiega sommariamente alcune funzionalità elementari di <command
+>sed</command
+>. Per maggiori informazioni vedi <ulink url="info:/sed"
+>info:/sed</ulink
+> o <ulink url="http://www.gnu.org/software/sed/manual/html_mono/sed.html"
+>http://www.gnu.org/software/sed/manual/html_mono/sed.html</ulink
+>. Puoi trovare una versione di <command
+>sed</command
+> precompilata per Windows a <ulink url="http://unxutils.sourceforge.net"
+>http://unxutils.sourceforge.net</ulink
+>. Nota che gli esempi seguenti danno per scontato che <command
+>sed</command
+> sia in una cartella compresa nella variabile d'ambiente <envar
+>PATH</envar
+>. Se ciò non fosse, dovrai specificare il percorso completo del comando. </para>
+<note
+><para
+>Nota anche che gli esempi seguenti usano le virgolette singole ('), che non funzionano su Windows: lì dovresti invece usare le doppie (").</para
+></note>
+<para
+>In questo paragrafo userò solo il comando di sostituzione <command
+>sed</command
+>: <screen>
+   <command
+>sed</command
+> 's/<replaceable
+>ESPREG</replaceable
+>/<replaceable
+>NUOVO_TESTO</replaceable
+>/<replaceable
+>CODICE</replaceable
+>'
+</screen
+> Prima di usare un nuovo comando in &kdiff3; sarebbe meglio provarlo in una console. Per farlo è utile il comando <command
+>echo</command
+>. Ad esempio: <screen>
+   <command
+>echo</command
+> abracadabra | <command
+>sed</command
+> 's/a/o/'
+   <computeroutput
+>obracadabra</computeroutput>
+</screen
+> Questo esempio mostra un semplicissimo comando sed che sostituisce la prima occorrenza di <userinput
+>a</userinput
+> con <computeroutput
+>o</computeroutput
+>. Volendo sostituire tutte le occorrenze, basta aggiungere il codice <userinput
+>g</userinput
+>: <screen>
+   <command
+>echo</command
+> abracadabra | <command
+>sed</command
+> 's/a/o/g'
+   <computeroutput
+>obrocodobro</computeroutput>
+</screen
+> Il simbolo <userinput
+>|</userinput
+> è il comando di incanalamento, che invia il risultato del comando precedente all'ingresso del comando successivo. Se vuoi fare una prova su un file abbastanza lungo, puoi usare <command
+>cat</command
+> sui sistemi simili a Unix, o <command
+>type</command
+> sui sistemi di tipo Windows. <command
+>sed</command
+> farà una sostituzione riga per riga. <screen
+><command
+>cat</command
+> <replaceable
+>nome_file</replaceable
+> | <command
+>sed</command
+> <replaceable
+>opzioni</replaceable
+>
+</screen>
+</para>
+</sect2>
+<sect2 id="sedforkdiff3"
+><title
+>Esempi per l'uso di <command
+>sed</command
+> in &kdiff3;</title>
+<sect3
+><title
+>Ignorare altri tipi commenti</title>
+<para
+>Attualmente &kdiff3; riconosce solo i commenti C e C++. Usando il comando di preprocesso per il confronto delle righe puoi ignorare altri tipi di commenti, convertendoli in commenti di tipo C o C++. Per esempio, per ignorare i commenti che iniziano per <computeroutput
+>#</computeroutput
+>, potresti convertirli in <userinput
+>//</userinput
+>. Tieni presente che devi anche attivare l'opzione <guilabel
+>Ignora i commenti C e C++</guilabel
+> per far funzionare il trucco. Un comando di preprocesso delle righe appropriato potrebbe essere: <screen>
+   <command
+>sed</command
+> 's/#/\/\//'
+</screen
+> Poiché per <command
+>sed</command
+> il carattere <userinput
+>/</userinput
+> ha un significato speciale, è necessario porre un carattere <userinput
+>\</userinput
+> prima di ogni <userinput
+>/</userinput
+> nella stringa del nuovo testo. Spesso il carattere <userinput
+>\</userinput
+> è richiesto per aggiungere o togliere un significato speciale a certi caratteri. La virgoletta semplice (') all'inizio e alla fine del comando di sostituzione è molto importante qui: altrimenti, la shell cercherebbe di interpretare certi caratteri speciali (per esempio <userinput
+>#</userinput
+>, <userinput
+>$</userinput
+> o <userinput
+>\</userinput
+>) prima di passarli a <command
+>sed</command
+>. <emphasis
+>Nota che su Windows dovrai usare le virgolette doppie (<userinput
+>"</userinput
+>). Windows sostituisce altri caratteri, come <userinput
+>%</userinput
+>, quindi è meglio fare qualche prova</emphasis
+>. </para>
+</sect3>
+<sect3
+><title
+>Differenze senza distinzione delle maiuscole</title>
+<para
+>Usa questo comando di preprocesso delle righe per convertire tutto in maiuscolo: <screen>
+   <command
+>sed</command
+> 's/\(.*\)/\U\1/'
+</screen
+> <userinput
+>.*</userinput
+> è un'espressione regolare corrispondente a qualsiasi stringa, e, in questo caso, a tutti i caratteri della riga. Il <userinput
+>\1</userinput
+> nella stringa di sostituzione rappresenta il testo trovato nel contenuto della prima coppia di parentesi tonde. La <userinput
+>\U</userinput
+> converte in maiuscolo il testo inserito. </para>
+</sect3>
+
+<sect3
+><title
+>Ignorare le parole chiave del controllo di versione</title>
+<para
+>CVS ed altri sistemi per il controllo di versione usano molte parole chiave per inserire stringhe generate automaticamente (vedi la <ulink url="info:/cvs/Keyword substitution"
+>pagina Info di CVS</ulink
+>). Tutte queste seguono lo schema <userinput
+>$KEYWORD testo generato$</userinput
+>. A questo punto serve un comando di preprocesso che rimuova solo il testo generato: <screen>
+   <command
+>sed</command
+> 's/\$\(Revision\|Author\|Log\|Header\|Date\).*\$/\$\1\$/'
+</screen
+>I <userinput
+>\|</userinput
+> separano le possibili parole chiave. Puoi modificare questa lista secondo le tue esigenze. Il <userinput
+>\</userinput
+> prima di <userinput
+>$</userinput
+> è necessario, altrimenti <userinput
+>$</userinput
+> corrisponderebbe alla fine della riga. </para>
+<para
+>Nel provare <command
+>sed</command
+> potrai incominciare a capire ed apprezzare queste strane espressioni regolari. Sono molto utili perché ci sono molti altri programmi che supportano cose molto simili. </para>
+</sect3>
+
+<sect3
+><title
+>Ignorare i numeri</title>
+<para
+>Per ignorare i numeri, in realtà, c'è un'opzione interna. Però, come ulteriore esempio, ecco come funzionerebbe con un comando preprocesso.<screen>
+   <command
+>sed</command
+> 's/[0123456789.-]//g'
+</screen
+> Ogni carattere compreso tra le parentesi quadre verrà riconosciuto e rimosso (<quote
+>sostituito con nulla</quote
+>). </para>
+</sect3>
+
+<sect3
+><title
+>Ignorare alcune colonne</title>
+<para
+>A volte un testo è formattato molto rigorosamente, e contiene delle colonne da ignorare sempre, mentre ci sono altre colonne da tenere e analizzare. Nell'esempio seguente, le prime cinque colonne (cioè caratteri) verranno ignorate, le prossime dieci vengono salvate, ne vengono ignorate altre cinque, il resto della riga viene tenuto.<screen>
+   <command
+>sed</command
+> 's/.....\(..........\).....\(.*\)/\1\2/'
+</screen
+> Ogni punto <userinput
+>.</userinput
+> corrisponde a un qualsiasi carattere singolo. <userinput
+>\1</userinput
+> e <userinput
+>\2</userinput
+> nella stringa di sostituzione si riferiscono al contenuto della prima e seconda coppia di parentesi tonde, indicanti il testo da tenere. </para>
+</sect3>
+
+<sect3
+><title
+>Combinare più sostituzioni</title>
+<para
+>A volte, potresti voler applicare più sostituzioni in una volta. In tal caso si può usare un punto e virgola <userinput
+>;</userinput
+> per separarle l'una dall'altra. Ad esempio: <screen
+><command
+>echo</command
+> abracadabra | <command
+>sed</command
+> 's/a/o/g;s/\(.*\)/\U\1/'
+   <computeroutput
+>OBROCODOBRO</computeroutput
+>
+</screen>
+</para>
+</sect3>
+
+<sect3
+><title
+>Usare <command
+>perl</command
+> invece di <command
+>sed</command
+></title>
+<para
+>Invece di <command
+>sed</command
+> potresti voler utilizzare un altro comando, ad esempio <command
+>perl</command
+>.<screen>
+   <command
+>perl</command
+> -p -e 's/<replaceable
+>ESPREG</replaceable
+>/<replaceable
+>NUOVO_TESTO</replaceable
+>/<replaceable
+>CODICE</replaceable
+>'
+</screen
+> Alcuni dettagli sono però diversi in <command
+>perl</command
+>. Nota che mentre <command
+>sed</command
+> vuole le parentesi tonde come <userinput
+>\(</userinput
+> e <userinput
+>\)</userinput
+>, in <command
+>perl</command
+> servono le più semplici <userinput
+>(</userinput
+> e <userinput
+>)</userinput
+>, senza farle precedere da <userinput
+>\</userinput
+>. Per esempio: <screen
+>   <command
+>sed</command
+> 's/\(.*\)/\U\1/'
+   <command
+>perl</command
+> -p -e 's/(.*)/\U\1/'
+</screen>
+</para>
+</sect3>
+</sect2>
+
+<sect2
+><title
+>Ordine di esecuzione del preprocessore</title>
+<para
+>I dati sono incanalati attraverso tutti i preprocessori interni ed esterni nel seguente ordine: </para>
+<itemizedlist>
+<listitem
+><para
+>Preprocessore normale,</para
+></listitem>
+<listitem
+><para
+>Preprocessore di confronto delle righe,</para
+></listitem>
+<listitem
+><para
+>Ignorare le lettere maiuscole (conversione in maiuscolo),</para
+></listitem>
+<listitem
+><para
+>Rilevamento dei commenti C e C++:</para
+></listitem>
+<listitem
+><para
+>Ignorare i numeri,</para
+></listitem>
+<listitem
+><para
+>Ignorare gli spazi</para
+></listitem>
+</itemizedlist>
+<para
+>I dati, dopo essere passati dal preprocessore normale, saranno tenuti per la visualizzazione e la fusione. Le altre operazioni modificano solo i dati visti dall'algoritmo che rileva le differenze tra le righe corrispondenti. </para
+><para
+>Nei rari casi in cui si usa il preprocessore normale, bisogna tener presente che il preprocessore di corrispondenza delle righe vede l'uscita del preprocessore normale come proprio ingresso. </para>
+</sect2>
+
+<sect2
+><title
+>Attenzione</title>
+<para
+>I comandi di preprocesso sono spesso utilissimi, ma, come per ogni opzione che modifichi il testo o che nasconda automaticamente certe differenze, possono far sfuggire certe differenze, o nel peggiore dei casi distruggere dati importanti. </para
+><para
+>Per questa ragione, se durante una fusione è in funzione un comando del preprocessore normale, &kdiff3; te lo dirà e ti chiederà se vuoi disattivarlo. Però non ti avviserà se è attivo un comando del preprocessore sul contenuto delle righe. La fusione non sarà completata finché non saranno risolti tutti i conflitti. Se hai disabilitato <guilabel
+>Mostra spazi</guilabel
+>, anche le differenze che rimosse con il preprocessore sul contenuto delle righe saranno invisibili. Se il pulsante di salvataggio rimane disattivato durante una fusione (perché sussistono dei conflitti), assicurati di attivare <guilabel
+>Mostra spazi</guilabel
+>. Se non vuoi fondere manualmente queste differenze meno importanti, puoi selezionare <guilabel
+>Scegli [A|B|C] per tutti i conflitti di spazi non risolti</guilabel
+> nel menu di fusione. </para>
+</sect2>
+</sect1>
+</chapter>
+
+
+<chapter id="dirmerge"
+><title
+>Confronto e fusione di cartelle con &kdiff3;</title>
+<sect1 id="dirmergeintro"
+><title
+>Introduzione al confronto e alla fusione tra cartelle</title>
+<para
+>Spesso i programmatori devono modificare molti file in una cartella per realizzare i loro scopi. Per questo &kdiff3; permette anche di confrontare e fondere ricorsivamente intere cartelle. </para
+><para
+>Anche se confrontare e fondere delle cartelle sembra abbastanza semplice, ci sono diversi dettagli da considerare. Il più importante è ovviamente che ora molti file potrebbero essere coinvolti in ogni operazione. Se non hai copie di sicurezza dei dati originali, può essere molto difficile se non impossibile tornare allo stato originale. Quindi, prima di avviare una fusione, assicurati che i tuoi dati siano al sicuro e che sia possibile tornare indietro. È una tua decisione se archiviarli o se usare un sistema di controllo delle versioni, ma anche i programmatori esperti hanno bisogno dei vecchi sorgenti ogni tanto. Nota che anche se io (l'autore di &kdiff3;) cerco di fare del mio meglio, non posso garantire che non ci siano errori. In accordo con la licenza GNU GPL, <emphasis
+>non c'è alcuna garanzia</emphasis
+> per questo programma. Quindi attenzione e ricordate: </para>
+<blockquote
+><para>
+   <emphasis
+>Errare è umano, ma per fare un gran casino è necessario un computer.</emphasis>
+</para
+></blockquote>
+<para
+>Ecco quindi quello che questo programma può fare per te: &kdiff3;... </para>
+<itemizedlist>
+     <listitem
+><para
+>... legge e confronta due o tre cartelle ricorsivamente,</para
+></listitem>
+     <listitem
+><para
+>... fa particolare attenzione ai collegamenti simbolici,</para
+></listitem>
+     <listitem
+><para
+>... permette di sfogliare i file con un doppio clic del mouse,</para
+></listitem>
+     <listitem
+><para
+>... per ogni elemento propone un'operazione di fusione, che puoi cambiare prima di avviare la fusione delle cartelle,</para
+></listitem>
+     <listitem
+><para
+>... permette di simulare la fusione ed elenca le azioni che verrebbero fatte, senza eseguirle per davvero,</para
+></listitem>
+     <listitem
+><para
+>... permette di fondere, e permette l'intervento manuale quando questo è necessario,</para
+></listitem>
+     <listitem
+><para
+>... ti permette di avviare l'operazione selezionata per tutti gli elementi (tasto <keycap
+>F7</keycap
+>) o per l'elemento selezionato (tasto <keycap
+>F6</keycap
+>),</para
+></listitem>
+     <listitem
+><para
+>... permette di continuare la fusione dopo l'interazione manuale con il tasto <keycap
+>F7</keycap
+>,</para
+></listitem>
+     <listitem
+><para
+>... a scelta, crea delle copie di sicurezza, con l'estensione <literal role="extension"
+>.orig</literal
+>,</para
+></listitem>
+     <listitem
+><para
+>...</para
+></listitem>
+</itemizedlist>
+</sect1>
+
+<sect1 id="startingdirmerge"
+><title
+>Avviare il confronto o la fusione di cartelle</title>
+<para
+>Questa operazione è molto simile al confronto e alla fusione di un file. È necessario specificare le cartelle nella riga di comando o nel dialogo di selezione dei file. </para>
+<sect2
+><title
+>Confronta o fondi due cartelle: </title>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>cartella1</replaceable
+> <replaceable
+>cartella2</replaceable>
+<command
+>kdiff3</command
+> <replaceable
+>cartella1</replaceable
+> <replaceable
+>cartella2</replaceable
+> -o <replaceable
+>cartella_destinazione</replaceable
+>
+</screen>
+<para
+>Se non viene specificata una cartella di destinazione, &kdiff3; userà <replaceable
+>cartella2</replaceable
+>. </para>
+</sect2>
+
+<sect2
+><title
+>Confronta o fondi tre cartelle: </title>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>cartella1</replaceable
+> <replaceable
+>cartella2</replaceable
+> <replaceable
+>cartella3</replaceable>
+<command
+>kdiff3</command
+> <replaceable
+>cartella1</replaceable
+> <replaceable
+>cartella2</replaceable
+> <replaceable
+>cartella3</replaceable
+> -o <replaceable
+>cartella_destinazione</replaceable
+>
+</screen>
+<para
+>Quando si fondono tre cartelle, <replaceable
+>cartella1</replaceable
+> viene usata come base della fusione. Se non è stata specificata nessuna cartella di destinazione per la fusione, &kdiff3; userà <replaceable
+>cartella3</replaceable
+>. </para>
+
+<para
+>Nota che solo il confronto inizia automaticamente, non la fusione. Per farla devi prima selezionare un elemento del menu o il tasto <keycap
+>F7</keycap
+> (maggiori dettagli di seguito). </para>
+</sect2>
+</sect1>
+
+<sect1 id="dirmergevisible"
+><title
+>Informazioni visibili sulla fusione delle cartelle</title>
+<para
+>Durante la lettura delle cartelle appare un messaggio per notificare lo stato di avanzamento. Se annulli la scansione delle cartelle, saranno elencati solo i file che sono stati confrontati fino a quel momento. </para
+><para
+>Quando la scansione delle cartelle è completata, &kdiff3; mostra un elenco dei risultati a sinistra, ... </para>
+<screenshot
+><mediaobject>
+<imageobject
+><imagedata fileref="dirbrowser.png" format="PNG"/></imageobject
+> <!--alt="Image of the directory browser."-->
+</mediaobject
+></screenshot>
+<para
+>... e i dettagli dell'elemento attualmente selezionato a destra: </para>
+<screenshot
+><mediaobject>
+<imageobject
+><imagedata fileref="iteminfo.png" format="PNG"/></imageobject>
+   <!--alt="Image with information about the selected item."-->
+</mediaobject
+></screenshot>
+
+<sect2 id="name"
+><title
+>La colonna del nome</title>
+<para
+>Ogni file e cartella trovato durante la scansione è mostrato qui in un albero. Puoi selezionare un elemento facendoci clic con il mouse. </para
+><para
+>Normalmente le cartelle sono chiuse. È possibile espanderle e richiuderle con un clic su <keycap
+>+</keycap
+> o <keycap
+>-</keycap
+> rispettivamente, facendo doppio clic sull'elemento, o usando i tasti freccia sinistra o destra. Il menu <guimenu
+>Cartella</guimenu
+> contiene inoltre due azioni, <guimenuitem
+>Chiudi sottocartelle</guimenuitem
+> e <guimenuitem
+>Apri sottocartelle</guimenuitem
+> con le quali puoi richiudere o espandere tutte le cartelle in una sola volta. </para
+><para
+>Se fai doppio clic su un file, il confronto verrà avviato e apparirà la finestra delle differenze dei file. </para>
+<para
+>L'immagine nella colonna del nome corrisponde al tipo di file nella prima cartella (<quote
+>A</quote
+>). Può essere una di queste: </para>
+<itemizedlist>
+     <listitem
+><para
+>File normale</para
+></listitem>
+     <listitem
+><para
+>Cartella normale (immagine di una cartella)</para
+></listitem>
+     <listitem
+><para
+>Collegamento a un file (immagine di un file con una freccia)</para
+></listitem>
+     <listitem
+><para
+>Collegamento a una cartella (immagine di una cartella con una freccia)</para
+></listitem>
+</itemizedlist>
+<para
+>Se il tipo di file è diverso nelle altre cartelle, questo è visibile nelle colonne <guilabel
+>A</guilabel
+>, <guilabel
+>B</guilabel
+> e <guilabel
+>C</guilabel
+> e nella finestra che mostra i dettagli dell'elemento selezionato. Nota che in questo caso nessuna operazione di fusione potrà essere selezionata automaticamente. Quando la fusione sarà avviata, l'utente sarà informato dei problemi di questo tipo. </para>
+</sect2>
+
+<sect2 id="coloring"
+><title
+>Le colonne <guilabel
+>A</guilabel
+>, <guilabel
+>B</guilabel
+> e <guilabel
+>C</guilabel
+> e lo schema di colorazione</title>
+<para
+>Come si può vedere nell'immagine sopra, i colori rosso, verde, giallo e nero sono utilizzati nelle colonne <guilabel
+>A</guilabel
+>, <guilabel
+>B</guilabel
+> e <guilabel
+>C</guilabel
+>. </para>
+<itemizedlist>
+     <listitem
+><para
+>Nero: questo elemento non esiste in questa cartella.</para
+></listitem>
+     <listitem
+><para
+>Verde: elemento più recente.</para
+></listitem>
+     <listitem
+><para
+>Giallo: più vecchio del verde, più recente del rosso.</para
+></listitem>
+     <listitem
+><para
+>Rosso: elemento più vecchio.</para
+></listitem>
+</itemizedlist>
+<para
+>Per gli elementi risultati identici dal confronto, il colore è identico anche se l'età non lo è. </para
+><para
+>Le cartelle sono considerate uguali se tutti gli elementi in esse contenuti sono identici. In tal caso avranno anche lo stesso colore. L'età di una cartella, però, non è considerata per il suo colore. </para
+><para
+>L'idea di questo schema di colorazione l'ho avuta da <ulink url="http://samba.org/cgi-bin/cvsweb/dirdiff"
+>dirdiff</ulink
+>. I colori sembrano i colori di una foglia, che è verde quando è nuova, successivamente ingiallisce diventa rossa quando è vecchia. </para>
+
+</sect2
+><sect2 id="operation"
+><title
+>La colonna <guilabel
+>Operazione</guilabel
+></title>
+<para
+>Dopo aver confrontato le cartelle, &kdiff3; valuta anche una proposta di fusione. Questa è visibile nella colonna <guilabel
+>Operazione</guilabel
+>. Puoi modificare l'operazione facendo clic su quella che desideri cambiare. Apparirà un piccolo menu che permetterà di selezionare un'operazione per quell'elemento. Puoi anche selezionare le operazioni necessarie con la tastiera: <keycombo action="simul"
+>&Ctrl;<keycap
+>1</keycap
+></keycombo
+>, <keycombo action="simul"
+>&Ctrl;<keycap
+>2</keycap
+></keycombo
+>, <keycombo action="simul"
+>&Ctrl;<keycap
+>3</keycap
+></keycombo
+>, <keycombo action="simul"
+>&Ctrl;<keycap
+>4</keycap
+></keycombo
+>, e <keycombo action="simul"
+>&Ctrl;<keycap
+>Canc</keycap
+></keycombo
+> selezionano rispettivamente, <guilabel
+>A</guilabel
+>, <guilabel
+>B</guilabel
+>, <guilabel
+>C</guilabel
+>, <guilabel
+>Fondi</guilabel
+> e <guilabel
+>Cancella</guilabel
+>, se disponibili. Questa operazione verrà eseguita durante la fusione. Quali operazioni sono disponibili dipende dall'elemento e dalla modalità di fusione attuale. La modalità di fusione è una tra le seguenti: </para>
+<itemizedlist>
+     <listitem
+><para
+>Fusione di tre cartelle (<guilabel
+>A</guilabel
+> è considerato la base più vecchia di entrambe).</para
+></listitem>
+     <listitem
+><para
+>Fusione di due cartelle.</para
+></listitem>
+     <listitem
+><para
+>Modalità di sincronizzazione di due cartelle (attivabile con l'opzione <guilabel
+>Sincronizza cartelle</guilabel
+>).</para
+></listitem>
+</itemizedlist>
+<para
+>Nella fusione di tre cartelle l'operazione proposta sarà: Se per un elemento… </para>
+<itemizedlist>
+     <listitem
+><para
+>… le tre cartelle sono uguali: <action
+>copia da <guilabel
+>C</guilabel
+></action
+></para
+></listitem>
+     <listitem
+><para
+>… <guilabel
+>A</guilabel
+> e <guilabel
+>C</guilabel
+> sono uguali ma <guilabel
+>B</guilabel
+> no: <action
+>copia da <guilabel
+>B</guilabel
+>, o elimina la destinazione se <guilabel
+>B</guilabel
+> non esiste</action
+></para
+></listitem>
+     <listitem
+><para
+>… <guilabel
+>A</guilabel
+> e <guilabel
+>B</guilabel
+> sono uguali ma <guilabel
+>C</guilabel
+> no: <action
+>copia da <guilabel
+>C</guilabel
+>, o elimina la destinazione se <guilabel
+>C</guilabel
+> non esiste</action
+></para
+></listitem>
+     <listitem
+><para
+>… <guilabel
+>B</guilabel
+> e <guilabel
+>C</guilabel
+> sono uguali ma <guilabel
+>A</guilabel
+> no: <action
+>copia da <guilabel
+>C</guilabel
+>, o elimina la destinazione se <guilabel
+>C</guilabel
+> non esiste</action
+></para
+></listitem>
+     <listitem
+><para
+>… esiste solo <guilabel
+>A</guilabel
+>: <action
+>elimina la destinazione, se esiste</action
+></para
+></listitem>
+     <listitem
+><para
+>… esiste solo <guilabel
+>B</guilabel
+>: <action
+>copia da <guilabel
+>B</guilabel
+></action
+></para
+></listitem>
+     <listitem
+><para
+>… esiste solo <guilabel
+>C</guilabel
+>: <action
+>copia da <guilabel
+>C</guilabel
+></action
+></para
+></listitem>
+     <listitem
+><para
+>… <guilabel
+>A</guilabel
+>, <guilabel
+>B</guilabel
+> e <guilabel
+>C</guilabel
+> non sono uguali: <action
+>fondi</action
+></para
+></listitem>
+     <listitem
+><para
+>… <guilabel
+>A</guilabel
+>, <guilabel
+>B</guilabel
+> e <guilabel
+>C</guilabel
+> non sono dello stesso tipo (per esempio <guilabel
+>A</guilabel
+> è una cartella e <guilabel
+>B</guilabel
+> è un file): <guilabel
+>Errore: tipi di file in conflitto</guilabel
+>. La fusione non può essere avviata finché esistono questi elementi.</para
+></listitem>
+</itemizedlist>
+<para
+>Nella fusione di due cartelle l'operazione proposta sarà: se per un elemento… </para>
+<itemizedlist>
+     <listitem
+><para
+>… entrambe le cartelle sono uguali: <action
+>copia da <guilabel
+>B</guilabel
+></action
+></para
+></listitem>
+     <listitem
+><para
+>… <guilabel
+>A</guilabel
+> esiste, ma <guilabel
+>B</guilabel
+> no: <action
+>copia da <guilabel
+>A</guilabel
+></action
+></para
+></listitem>
+     <listitem
+><para
+>… <guilabel
+>B</guilabel
+> esiste, ma <guilabel
+>A</guilabel
+> no: <action
+>copia da <guilabel
+>B</guilabel
+></action
+></para
+></listitem>
+     <listitem
+><para
+>… <guilabel
+>A</guilabel
+> e <guilabel
+>B</guilabel
+> esistono ma non sono uguali: <action
+>fondi</action
+></para
+></listitem>
+     <listitem
+><para
+>… <guilabel
+>A</guilabel
+> e <guilabel
+>B</guilabel
+> non sono dello stesso tipo (per esempio <guilabel
+>A</guilabel
+> è una cartella, <guilabel
+>B</guilabel
+> è un file): <guilabel
+>Errore: tipi di file in conflitto</guilabel
+>. La fusione non può essere avviata finché esistono questi elementi.</para
+></listitem>
+</itemizedlist>
+<para
+>La modalità di sincronizzazione è attiva se solo sono state specificate due cartelle e nessuna destinazione, e se è attiva l'opzione <guilabel
+>Sincronizza cartelle</guilabel
+>. &kdiff3; selezionerà quindi un'operazione predefinita in modo che entrambe le cartelle divengano successivamente uguali. Se per un elemento… </para>
+<itemizedlist>
+     <listitem
+><para
+>… entrambe le cartelle sono uguali: non sarà fatto nulla</para
+></listitem>
+     <listitem
+><para
+>… <guilabel
+>A</guilabel
+> esiste, ma <guilabel
+>B</guilabel
+> no: copia <guilabel
+>A</guilabel
+> su <guilabel
+>B</guilabel
+></para
+></listitem>
+     <listitem
+><para
+>… <guilabel
+>B</guilabel
+> esiste, ma <guilabel
+>A</guilabel
+>: copia <guilabel
+>B</guilabel
+> su <guilabel
+>A</guilabel
+></para
+></listitem>
+     <listitem
+><para
+>… <guilabel
+>A</guilabel
+> e <guilabel
+>B</guilabel
+> esistono, ma non sono uguali: fondi e memorizza il risultato in entrambe le cartelle. Il nome del file di salvataggio visibile all'utente è quello di <guilabel
+>B</guilabel
+>, ma &kdiff3; copia <guilabel
+>B</guilabel
+> anche su <guilabel
+>A</guilabel
+>.</para
+></listitem>
+     <listitem
+><para
+>… <guilabel
+>A</guilabel
+> e <guilabel
+>B</guilabel
+> non sono dello stesso tipo (per esempio <guilabel
+>A</guilabel
+> è una cartella, <guilabel
+>B</guilabel
+> è un file): <guilabel
+>Errore: tipi di file in conflitto</guilabel
+>. La fusione non può essere avviata finché esistono questi elementi.</para
+></listitem>
+</itemizedlist>
+<para
+>Quando due cartelle vengono fuse ed è selezionata l'opzione <guilabel
+>Copia il più recente invece di fondere</guilabel
+>, &kdiff3; verificherà le date e proporrà di scegliere il file più recente. Se i file non sono uguali ma hanno la stessa data, il risultato dell'operazione sarà <guilabel
+>Errore: le date coincidono ma i file sono diversi</guilabel
+>. La fusione delle cartelle non può essere avviata finché esistono questi elementi. </para>
+</sect2>
+
+<sect2 id="status"
+><title
+>La colonna <guilabel
+>stato</guilabel
+></title>
+<para
+>Durante la fusione i file saranno elaborati uno per volta. La colonna di stato indicherà <guilabel
+>Fatto</guilabel
+> per gli elementi correttamente fusi, e altri messaggi se si è verificato qualche imprevisto. Quando una fusione è completa, si dovrebbe fare un'ultima verifica per vedere se gli stati di tutti gli elementi sono corretti. </para>
+</sect2>
+
+<sect2 id="statisticscolulmns"
+><title
+>Le colonne delle statistiche</title>
+<para
+>Quando la modalità di confronto dei file <guilabel
+>Analisi completa</guilabel
+> è stata abilitata nelle opzioni, &kdiff3; mostrerà delle colonne supplementari con il numero di conflitti non risolti, risolti, di spazi vuoti e non. La colonna dei risolti verrà mostrata solo quando si confrontano o fondono tre cartelle. </para>
+</sect2>
+
+<sect2 id="selectingvisiblefiles"
+><title
+>Selezionare i file elencati</title>
+<para
+>Diverse opzioni influenzano quali file vengono qui elencati. Ad alcune si può accedere nella <link linkend="dirmergeoptions"
+>finestra delle impostazioni</link
+>. Il menu delle cartelle contiene le voci: </para
+><para
+><itemizedlist>
+     <listitem
+><para
+><guimenuitem
+>Mostra file identici</guimenuitem
+>: i file che sono stati verificati essere identici in tutte le cartelle di ingresso.</para
+></listitem>
+     <listitem
+><para
+><guimenuitem
+>Mostra file diversi</guimenuitem
+>: file che esistono in due o più cartelle e che non sono uguali.</para
+></listitem>
+     <listitem
+><para
+><guimenuitem
+>Mostra file solo in A</guimenuitem
+>: file che esistono in A, ma non in B o C.</para
+></listitem>
+     <listitem
+><para
+><guimenuitem
+>Mostra file solo in B</guimenuitem
+>: file che esistono in B, ma non in A o C.</para
+></listitem>
+     <listitem
+><para
+><guimenuitem
+>Mostra file solo in C</guimenuitem
+>: file che esistono in C, ma non in A o B.</para
+></listitem>
+</itemizedlist
+></para>
+<para
+>Attiva le opzioni di visualizzazione solo per gli elementi che vuoi elencare. Se per esempio vuoi solo elencare tutti gli elementi che esistono in A o B, ma non in entrambi, dovrai attivare <guimenuitem
+>Mostra file solo in A</guimenuitem
+> e <guimenuitem
+>Mostra file solo in B</guimenuitem
+>, e disattivare tutti gli altri (<guimenuitem
+>Mostra file identici</guimenuitem
+>, <guimenuitem
+>Mostra file diversi</guimenuitem
+>, <guimenuitem
+>Mostra file solo in C</guimenuitem
+>). L'elenco sarà immediatamente aggiornato secondo le modifiche. </para
+><para
+>Queste opzioni valgono anche per le cartelle, con un'eccezione: disabilitare <guimenuitem
+>Mostra file diversi</guimenuitem
+> non nasconderà le cartelle complete, ma funzionerà solo per i loro file. </para
+><para
+>Nota che tra queste opzioni solo <guimenuitem
+>Mostra file identici</guimenuitem
+> è persistente; le altre sono abilitate quando si avvia &kdiff3;. </para>
+</sect2>
+
+</sect1>
+
+
+<sect1 id="dothemerge"
+><title
+>Fondere le cartelle</title>
+<para
+>Puoi o fondere l'elemento attualmente selezionato (file o cartella), o tutti gli elementi. Quando hai scelto tutte le tue operazioni (anche in tutte le sottocartelle) puoi avviare la fusione. </para
+><para
+>Attenzione che se non specifichi esplicitamente una cartella di destinazione, questa sarà <symbol
+>C</symbol
+> nella modalità con tre cartelle, <symbol
+>B</symbol
+> nella modalità con due, e nella modalità di sincronizzazione sarà <symbol
+>A</symbol
+> o <symbol
+>B</symbol
+>. </para
+><para
+>Se è stata specificata la cartella di destinazione, va verificato anche che tutti gli elementi di uscita siano nell'albero. Ci sono alcune opzioni che fanno omettere certi elementi dal confronto e dalla fusione delle cartelle. Verifica queste opzioni per non avere delle brutte sorprese: </para>
+<itemizedlist>
+     <listitem
+><para
+><guimenuitem
+>Cartelle ricorsive</guimenuitem
+>: se disabilitato, gli elementi nelle sottocartelle non saranno trovati.</para
+></listitem>
+     <listitem
+><para
+><guimenuitem
+>Schemi di file</guimenuitem
+> e <guimenuitem
+>Schemi di file da escludere</guimenuitem
+>: include o esclude gli elementi corrispondenti</para
+></listitem>
+     <listitem
+><para
+><guimenuitem
+>Escludi file nascosti</guimenuitem
+></para
+></listitem>
+     <listitem
+><para
+><link linkend="selectingvisiblefiles"
+>Opzioni di visualizzazione</link
+></para
+></listitem>
+</itemizedlist>
+<para
+>Se cambi le impostazioni per elencare più file, devi riesaminare la cartella con <menuchoice
+><guimenu
+>Cartella</guimenu
+><guimenuitem
+>Riesamina</guimenuitem
+></menuchoice
+>; questo perché &kdiff3; non confronta i file esclusi con questi criteri per accelerare il confronto. Se hai cambiato gli schemi per file o cartelle per escludere dei file, la lista dei file sarà aggiornata subito dopo la chiusura della finestra delle opzioni. </para
+><para
+>Nota che, quando scrivi in una cartella completamente nuova, di solito vuoi copiare anche i file identici. In tal caso abilita l'opzione <guimenuitem
+>Mostra file identici</guimenuitem
+>. Se la cartella di destinazione è uno degli ingressi, questo non è necessario perché il file è già lì. </para
+><para
+>Se fin qui sei soddisfatto, il resto è facile. </para
+><para
+>Per fondere tutti gli elementi: seleziona <menuchoice
+><guimenu
+>Cartella</guimenu
+><guimenuitem
+>Avvia o continua fusione tra cartelle</guimenuitem
+></menuchoice
+> o premi il tasto <keycap
+>F7</keycap
+>, che ne è la scorciatoia predefinita. Per fondere solo l'elemento attuale, seleziona <guimenuitem
+>Esegui operazione sull'elemento attuale</guimenuitem
+> o premi <keycap
+>F6</keycap
+>. </para
+><para
+>Se esistono ancora elementi con operazioni non valide a causa di tipi di file in conflitto, apparirà una finestrella per indicarli e poter selezionare un'operazione valida. </para
+><para
+>Se fondi tutti gli elementi, apparirà una finestra con le opzioni <guilabel
+>Procedi</guilabel
+>, <guilabel
+>Simula</guilabel
+> e <guilabel
+>Annulla</guilabel
+>. </para>
+<itemizedlist>
+     <listitem
+><para
+>Seleziona <guilabel
+>Simula</guilabel
+> se vuoi vedere cosa verrebbe fatto senza farlo per davvero. Verrà mostrato un elenco dettagliato di tutte le operazioni.</para
+></listitem>
+     <listitem
+><para
+>Altrimenti, seleziona <guilabel
+>Procedi</guilabel
+> per avviare la fusione vera e propria.</para
+></listitem>
+</itemizedlist>
+<para
+>&kdiff3; avvierà quindi l'operazione specifica per tutti gli elementi. Se si richiede un'interazione manuale (fusione di un singolo file), sarà aperta la finestra di fusione (<link linkend="dirmergebigscreenshot"
+>vedi la schermata grande</link
+>). </para
+><para
+>Quando hai finito con la fusione manuale di un file, riseleziona <guimenuitem
+>Avvia o continua fusione tra cartelle</guimenuitem
+> o il tasto <keycap
+>F7</keycap
+>. Se non hai ancora salvato, una finestra te lo chiederà. &kdiff3; procederà quindi al prossimo elemento. </para
+><para
+>Quando &kdiff3; incontra un errore, lo segnalerà e mostrerà le informazioni di stato in dettaglio. In fondo a questo elenco ci saranno alcuni messaggi d'errore che dovrebbero aiutare a capire la causa del problema. Quando si fa riprendere la fusione (tasto <keycap
+>F7</keycap
+>), &kdiff3; darà la scelta tra riprovare o saltare l'elemento che ha causato il problema. Ciò significa che prima di continuare puoi scegliere un'altra operazione, o risolvere il problema in altro modo. </para
+><para
+>&kdiff3; mostrerà infine una finestrella al completamento della fusione. </para
+><para
+>Se alcuni elementi sono stati fusi individualmente prima di eseguire la fusione tra cartelle, &kdiff3; lo ricorderà per tutta la sessione di fusione, e non li fonderà di nuovo quando la fusione di tutti gli altri elementi verrà eseguita più tardi. Questi elementi sono considerati completati anche quando la fusione viene saltata o non viene salvato nulla. Solo quando cambi l'operazione di fusione lo stato di completamento dell'elemento sarà rimosso, e l'elemento sarà fuso di nuovo. </para>
+</sect1>
+
+<sect1 id="dirmergeoptions"
+><title
+>Opzioni per il confronto e la fusione tra cartelle</title>
+<para
+>Le preferenze di &kdiff3; (<menuchoice
+><guimenu
+>Impostazioni</guimenu
+><guimenuitem
+>Configura &kdiff3;</guimenuitem
+></menuchoice
+>) ha una sezione chiamata <guilabel
+>Fusione tra cartelle</guilabel
+> con queste opzioni: </para>
+
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Cartelle ricorsive:</emphasis
+></term
+><listitem
+><para
+>Seleziona se cercare ricorsivamente nelle cartelle.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Schemi di file:</emphasis
+></term
+><listitem
+><para
+>Solo i file che corrispondono ad uno schema saranno inseriti nell'albero. È possibile specificare più di uno schema usando il punto e virgola (<symbol
+>;</symbol
+>) come separatore. I caratteri jolly possibili sono <symbol
+>*</symbol
+> e <symbol
+>?</symbol
+>; per esempio <userinput
+>*.cpp;*.h</userinput
+>. Il valore predefinito è <userinput
+>*</userinput
+>. Questi schemi non vengono usati per le cartelle.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Schemi di file da escludere:</emphasis
+></term
+><listitem
+><para
+>I file che corrispondono a questi schemi saranno esclusi dall'albero. È possibile specificare più di uno schema usando il punto e virgola (<symbol
+>;</symbol
+>) come separatore. I caratteri jolly possibili sono <symbol
+>*</symbol
+> e <symbol
+>?</symbol
+>. Il valore predefinito è <userinput
+>*.orig;*.o;*.obj</userinput
+>.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Schemi di cartelle da escludere:</emphasis
+></term
+><listitem
+><para
+>Le cartelle che corrispondono a questi schemi saranno escluse dall'albero. È possibile specificare più di uno schema usando il punto e virgola (<symbol
+>;</symbol
+>) come separatore. I caratteri jolly possibili sono <symbol
+>*</symbol
+> e <symbol
+>?</symbol
+>. Il valore predefinito è <userinput
+>CVS;deps;.svn</userinput
+>.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Usa .cvsignore:</emphasis
+></term
+><listitem
+><para
+>Ignora i file e le cartelle che verrebbero ignorati anche da CVS. Molti file generati automaticamente vengono ignorati da CVS. Il vantaggio principale è che questo può cambiare per ogni cartella, secondo il file locale <filename
+>.cvsignore</filename
+>. Vedi <ulink url="info:/cvs/cvsignore"
+>la pagina Info di .cvsignore</ulink
+>.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Trova file e cartelle nascosti:</emphasis
+></term
+><listitem
+><para
+>Su alcuni filesystem esiste l'attributo <quote
+>nascosto</quote
+> per i file. Su altri un nome del file che comincia con un punto (<filename
+>.</filename
+>) lo rende nascosto. Questa opzione permette di decidere se includere questi file nell'albero oppure no. Come impostazione predefinita è attivato.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Segui i collegamenti dei file:</emphasis
+></term
+><listitem
+><para
+>Per i collegamenti a file: quando disabilitato, vengono confrontati i collegamenti simbolici. Quando abilitato, vengono confrontati i file collegati. Come impostazione predefinita è disattivato.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Segui i collegamenti delle cartelle:</emphasis
+></term
+><listitem
+><para
+>Per collegamenti a cartelle: quando disabilitato, vengono confrontati i collegamenti simbolici. Quando attivato, i collegamenti saranno trattati come una cartella e saranno scansionati ricorsivamente. Nota che il programma non verifica se il collegamento è ricorsivo. Quindi, per esempio, se una cartella contenente un collegamento ad un'altra causa un ciclo infinito, dopo un po' ciò causerà un esaurimento della memoria e manderà il programma in crash. Come impostazione predefinita è disattivato.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Confronto di nomi di file con distinzione delle maiuscole:</emphasis
+></term
+><listitem
+><para
+>Il valore predefinito è falso su Windows, vero per gli altri sistemi operativi.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Modalità di confronto dei file:</emphasis
+></term
+><listitem
+><para>
+<variablelist
+>            
+   <varlistentry
+><term
+><emphasis
+>Confronto binario:</emphasis
+></term
+><listitem
+><para
+>Questa è la modalità di confronto predefinita. </para
+></listitem
+></varlistentry
+>         
+   <varlistentry
+><term
+><emphasis
+>Analisi completa:</emphasis
+></term
+><listitem
+><para
+>Opera un analisi approfondita di ogni file e mostra le colonne con le informazioni statistiche (numero di conflitti non risolti, risolti, relativi a spazi non bianchi e relativi a spazi bianchi). L'analisi completa è più lenta di una semplice analisi binaria, e ancora più lenta se applicata a file non di testo (indica gli schemi di file da escludere appropriati). </para
+></listitem
+></varlistentry
+>         
+   <varlistentry
+><term
+><emphasis
+>Fidati della data di modifica:</emphasis
+></term
+><listitem
+><para
+>Se si confrontano cartelle grandi in una rete lenta, potrebbe essere più veloce confrontare solamente le date di modifica e la dimensione dei file. Ma questo aumento di velocità ha il prezzo di una piccola incertezza. Usa questa opzione con cautela. Come impostazione predefinita è disattivata.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Fidati della dimensione:</emphasis
+></term
+><listitem
+><para
+>Simile a fidarsi delle date di modifica. Non c'è un vero confronto. Due file sono considerati uguali se la loro dimensione risulta uguale. Questo è utile quando l'operazione di copia file non ha mantenuto la data di modifica. Usa questa opzione con cautela. Come impostazione predefinita è disattivata.</para
+></listitem
+></varlistentry>
+</variablelist
+></para
+></listitem
+></varlistentry>
+         
+   <varlistentry
+><term
+><emphasis
+>Sincronizza le cartelle:</emphasis
+></term
+><listitem
+><para
+>Attiva la modalità di sincronizzazione quando vengono confrontate due cartelle e non è stata indicata una cartella di destinazione. In questa modalità le operazioni proposte saranno scelte in modo che entrambe le cartelle sorgenti siano in seguito uguali. Anche il risultato di fusione sarà scritto in entrambe le cartelle. Come impostazione predefinita è disattivato.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Copia il più recente invece di fondere:</emphasis
+></term
+><listitem
+><para
+>Invece di fondere, l'operazione proposta copierà il sorgente più recente se ci sono state modifiche; è potenzialmente pericoloso, perché si assume che l'altro file non sia stato modificato: controlla per assicurartene ogni volta. Come impostazione predefinita è disattivato.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Copie di sicurezza:</emphasis
+></term
+><listitem
+><para
+>Se un file o un'intera cartella è sostituito con un altro o viene eliminato, la versione originale sarà rinominata con l'estensione <literal role="extension"
+>.orig</literal
+>. Se esiste già una copia precedente con estensione <literal role="extension"
+>.orig</literal
+>, sarà eliminata senza farne una copia. Inoltre, ciò ha effetto sulla comune fusione tra singoli file, non solo sulla fusione tra cartelle. Come impostazione predefinita è attivato.</para
+></listitem
+></varlistentry>
+</variablelist>
+</sect1>
+
+<sect1 id="other"
+><title
+>Altre funzioni nella finestra di fusione tra cartelle</title>
+<sect2
+><title
+>Modalità a schermo intero o diviso</title>
+<para
+>Normalmente l'elenco di visualizzazione della fusione delle cartelle rimane visibile mentre un file viene confrontato o fuso. Con il mouse puoi muovere la barra di separazione tra l'elenco dei file e le finestre delle differenze testuali. Se non lo vuoi, puoi disabilitare l'opzione <guimenuitem
+>Vista separata</guimenuitem
+> nel menu <guimenu
+>Cartella</guimenu
+>. Potrai quindi usare <guimenuitem
+>Inverti vista</guimenuitem
+> nel menu <guimenu
+>Cartella</guimenu
+> per passare tra l'elenco di file e la vista delle differenze, che quindi occuperà tutto lo schermo. </para>
+</sect2>
+<sect2
+><title
+>Confrontare o fondere un file singolo</title>
+<para
+>Probabilmente è più semplice fare doppio clic col mouse su un file per confrontarlo; esiste però anche una voce nel menu <guimenu
+>Cartella</guimenu
+>. Puoi anche fondere direttamente un file singolo selezionandolo e scegliendo <menuchoice
+><guimenu
+>Fondi</guimenu
+><guimenuitem
+>Fondi il file attuale</guimenuitem
+></menuchoice
+>. Al salvataggio del risultato, lo stato del file verrà segnato come completato, e il file non verrà fuso di nuovo se viene avviata una fusione tra cartelle. </para
+><para
+>Nota però che queste informazioni di stato andranno perse al se viene effettuata una nuova scansione delle cartelle con <menuchoice
+><guimenu
+>Cartella</guimenu
+><guimenuitem
+>Riesamina</guimenuitem
+></menuchoice
+>. </para>
+</sect2>
+<sect2
+><title
+>Confrontare o fondere file con nomi diversi</title>
+<para
+>A volte devi confrontare o fondere file con nomi diversi, per esempio un file e la sua copia di sicurezza nella stessa cartella. </para
+><para
+>Seleziona il file facendo clic sull'icona nella colonna A, B o C. Il primo file selezionato sarà segnato con <guilabel
+>A</guilabel
+>, il secondo e il terzo con <guilabel
+>B</guilabel
+> e <guilabel
+>C</guilabel
+> indipendentemente dalla colonna in cui si trovano. Si possono scegliere tre file al massimo in questo modo. </para
+><para
+>Procedi scegliendo <guimenuitem
+>Confronta file selezionati esplicitamente</guimenuitem
+> o <guimenuitem
+>Fondi file selezionati esplicitamente</guimenuitem
+> dal menu <guimenu
+>Cartella</guimenu
+>. Per comodità, queste voci appaiono anche nel menu contestuale quando fai clic destro sull'ultimo file selezionato. </para
+><para
+>Il confronto o la fusione di un file avverrà nella stessa finestra. Se questo metodo viene usato per le cartelle, sarà aperta una nuova finestra. </para
+></sect2>
+</sect1>
+</chapter>
+
+<chapter id="misc">
+<title
+>Argomenti vari</title>
+<sect1 id="networktransparency">
+<title
+>Trasparenza di rete con KIO</title>
+<sect2
+><title
+>Gli slave KIO</title>
+<para
+>&kde; supporta la trasparenza di rete tramite gli slave KIO. &kdiff3; li usa per leggere i file in ingresso e per esaminare le cartelle. Ciò significa che è possibile specificare file e cartelle locali o remoti con un <acronym
+>URL</acronym
+>. </para
+><para
+>Esempio: </para
+><para>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>prova.cpp</replaceable
+> <replaceable
+>ftp://ftp.tantolontano.it/prova.cpp</replaceable>
+<command
+>kdiff3</command
+> <replaceable
+>tar:/home/pincopallino/archivio.tar.gz/cartella</replaceable
+> <replaceable
+>./dir</replaceable
+>
+</screen>
+</para>
+<para
+>La prima riga confronta un file locale con un file su un server <acronym
+>FTP</acronym
+>. La seconda riga confronta una cartella contenuta in un archivio compresso con una locale. </para
+><para
+>Altri slave KIO interessanti sono: </para>
+<itemizedlist>
+<listitem
+><para
+>File dal Web (<userinput
+>http:</userinput
+>),</para
+></listitem>
+<listitem
+><para
+>File da FTP (<userinput
+>ftp:</userinput
+>),</para
+></listitem>
+<listitem
+><para
+>Trasferimento di file cifrato (<userinput
+>fish:</userinput
+>, <userinput
+>sftp:</userinput
+>),</para
+></listitem>
+<listitem
+><para
+>Partizioni condivise di Windows (<userinput
+>smb:</userinput
+>),</para
+></listitem>
+<listitem
+><para
+>File locali (<userinput
+>file:</userinput
+>),</para
+></listitem>
+</itemizedlist>
+<para
+>Altre cose possibili, ma probabilmente meno utili sono: </para>
+<itemizedlist>
+<listitem
+><para
+>Pagine Man (<userinput
+>man:</userinput
+>),</para
+></listitem>
+<listitem
+><para
+>Pagine Info (<userinput
+>info:</userinput
+>),</para
+></listitem>
+</itemizedlist>
+</sect2>
+
+<sect2
+><title
+>Come scrivere gli <acronym
+>URL</acronym
+></title>
+<para
+>Un <acronym
+>URL</acronym
+> ha una sintassi diversa rispetto ai percorsi dei file delle cartelle locali. Si dovrebbero considerare alcune cose: </para>
+<itemizedlist>
+<listitem
+><para
+>Un percorso può essere relativo e può contenere <userinput
+>.</userinput
+> o <userinput
+>..</userinput
+>. Quando non è possibile per gli <acronym
+>URL</acronym
+>, che sono sempre assoluti. </para
+></listitem
+><listitem
+><para
+>I caratteri speciali devono essere scritti con i caratteri di escape (<userinput
+>#</userinput
+> diventa <userinput
+>%23</userinput
+>, gli spazi diventano <userinput
+>%20</userinput
+>, eccetera). Per esempio un file chiamato <filename
+>#pippo#</filename
+> dovrebbe avere l'<acronym
+>URL</acronym
+> <userinput
+>file:/%23pippo%23</userinput
+>. </para
+></listitem
+><listitem
+><para
+>Quando gli <acronym
+>URL</acronym
+> non funzionano come ci si aspetta, prova ad aprirli con Konqueror e vedere cosa succede. </para
+></listitem>
+</itemizedlist>
+
+</sect2>
+
+<sect2
+><title
+>Funzionalità degli slave KIO</title>
+<para
+>La trasparenza di rete ha uno svantaggio: non tutte le risorse hanno le stesse funzionalità. </para
+><para
+>A volte ciò è dovuto al filesystem del server, altre volte al protocollo. Ecco un breve elenco di limitazioni: </para>
+<itemizedlist>
+<listitem
+><para
+>A volte manca il supporto per i collegamenti. </para
+></listitem
+><listitem
+><para
+>O non c'è modo di distinguere se il collegamento punti ad un file o ad una cartella; si assume sempre un file (<userinput
+>ftp:</userinput
+>, <userinput
+>sftp:</userinput
+>). </para
+></listitem
+><listitem
+><para
+>Non si può sempre sapere la dimensione del file. </para
+></listitem
+><listitem
+><para
+>Supporto limitato per i permessi. </para
+></listitem
+><listitem
+><para
+>Manca la possibilità di cambiare i permessi o la data di modifica, quindi i permessi e la data di modifica di una copia saranno diversi dall'originale (vedi l'opzione <guilabel
+>Fidati della dimensione</guilabel
+>). Queste operazioni sono permesse solo per i file locali. </para
+></listitem>
+</itemizedlist>
+</sect2>
+</sect1>
+
+<sect1 id="kpart">
+<title
+>Usare &kdiff3; come un componente KPart</title>
+<para
+>&kdiff3; è un componente KPart. Attualmente implementa l'interfaccia <classname
+>KParts::ReadOnlyPart</classname
+>. </para
+><para
+>Il su impiego uso principale è come visore di differenze in <application
+>KDevelop</application
+>. <application
+>KDevelop</application
+> fa sempre partire prima il visore delle differenze interno. Per richiamare &kdiff3; premi il &RMB; nella finestra del visore e seleziona <guimenuitem
+>Mostra in KDiff3Part</guimenuitem
+> dal menu contestuale. </para
+><para
+>&kdiff3; richiede normalmente due file completi in ingresso. Quando viene usato come componente, &kdiff3; assumerà che il file di ingresso sia una patch nel formato unificato. &kdiff3; recupererà i nome originali dei file dalla patch. Deve essere disponibile almeno uno dei due file. &kdiff3; chiamerà quindi <command
+>patch</command
+> per ricreare il secondo file. </para
+><para
+>In Konqueror puoi selezionare una patch e selezionare dal menu contestuale <menuchoice
+><guisubmenu
+>Anteprima in</guisubmenu
+><guimenuitem
+>KDiff3Part</guimenuitem
+></menuchoice
+>. Nota che ciò non funzionerà se nessuno dei file originali è disponibile, e non è affidabile se i file originali sono stati modificati prima della generazione della patch. </para
+><para
+>Quando avviato come componente, &kdiff3; include solo la differenza tra due file, e una barra degli strumenti e un menu ridotti. La fusione o il confronto tra cartelle non sono supportati. </para>
+</sect1>
+</chapter>
+
+<chapter id="faq">
+<title
+>Domande e risposte</title>
+&reporting.bugs; &updating.documentation; <qandaset id="faqlist">
+
+<qandaentry
+><question
+><para
+>Perché si chiama &kdiff3;? </para
+></question
+><answer
+><para
+>Gli strumenti <application
+>KDiff</application
+> e <application
+>KDiff2</application
+> (ora &kompare;) esistono già. Inoltre <application
+>KDiff3</application
+> dovrebbe suggerire che può fondere come il programma <application
+>diff3</application
+> presente nella raccolta degli strumenti <application
+>diff</application
+>. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Perché l'ho rilasciato con la GPL? </para
+></question
+><answer
+><para
+>Ho usato a lungo programmi GPL e ho imparato molto guardando il codice sorgente. Così questo è il mio <quote
+>Grazie</quote
+> a tutti i programmatori che a loro volta hanno fatto o faranno lo stesso. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Mancano alcuni pulsanti e funzioni. Cosa c'è che non va? </para
+></question
+><answer
+><para
+>Hai compilato da sorgente, ma probabilmente non hai specificato correttamente il prefisso di &kde; durante la configurazione. Come impostazione predefinita <command
+>configure</command
+> cerca di installare in <filename class="directory"
+>/usr/local</filename
+>, ma in questo modo &kde; non può trovare il file delle risorse dell'interfaccia utente (per esempio <filename
+>kdiff3ui.rc</filename
+>). Il file <filename
+>README</filename
+> contiene maggiori informazioni su qual è il prefisso giusto. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Spesso le righe simili ma non uguali appaiono fianco a fianco, ma a volte no. Perché? </para
+></question
+><answer
+><para
+>Le righe che presentano differenze di soli spazi sono inizialmente trattate come <quote
+>uguali</quote
+>, mentre una sola differenza non di spazi le rendono <quote
+>diverse</quote
+>. Che righe simili appaiano fianco a fianco è una coincidenza, ma questo fortunatamente è spesso il caso. Vedi anche <link linkend="manualdiffhelp"
+>l'aiuto per le differenze manuali</link
+>. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Perché tutti i conflitti devono essere risolti prima di poter salvare il risultato della fusione? </para
+></question
+><answer
+><para
+>Per ogni sezione uguale o diversa, l'editor nella finestra del risultato di fusione ricorda l'inizio e la fine. Questo è necessario per poter risolvere i conflitti manualmente semplicemente selezionando il pulsante del sorgente (<guibutton
+>A</guibutton
+>, <guibutton
+>B</guibutton
+> o <guibutton
+>C</guibutton
+>). Queste informazioni andranno perse in seguito al salvataggio del testo, perché è troppo oneroso creare un formato di file che supporti il salvataggio e il ripristino di tutte le informazioni necessarie. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Come posso sincronizzare le viste di differenze e fusioni, in modo che tutte le viste mostrino la stessa posizione del testo? </para
+></question
+><answer
+><para
+>Fai clic nella colonna di sommario a sinistra del testo (<link linkend="synchronise_views"
+>vedi anche qui</link
+>). </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Perché l'editor nella finestra del risultato di fusione non ha una funzione di annullamento? </para
+></question
+><answer
+><para
+>Questa funzione richiedeva troppo sforzo. È sempre possibile ripristinare una versione da una sorgente (A, B o C) facendo clic il rispettivo pulsante. Per modifiche maggiori si raccomanda comunque l'uso di un altro editor. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Quando ho rimosso del testo mi è apparso improvvisamente <guilabel
+>&lt;Riga sorgente mancante&gt;</guilabel
+>, e non può essere eliminato. Cosa significa e come si può rimuovere? </para
+></question
+><answer
+><para
+>L'editor nella finestra del risultato della fusione ricorda dove inizia e dove finisce ogni sezione diversa o uguale. <guilabel
+>&lt;Riga sorgente mancante&gt;</guilabel
+> significa che non è in una sezione non c'è più nulla, nemmeno un carattere di ritorno a capo. Questo può capitare sia nella fusione automatica che modificando il file a mano. Questo non è un problema, perché questa indicazione non apparirà nel file salvato. Se rivuoi il file originale basta selezionare la sezione (fai clic sulla colonna di sommario a sinistra) e fai quindi clic sul pulsante del sorgente con il contenuto voluto (<guilabel
+>A</guilabel
+>, <guilabel
+>B</guilabel
+> o <guilabel
+>C</guilabel
+>). </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Perché &kdiff3; non supporta l'evidenziazione della sintassi? </para
+></question
+><answer
+><para
+>&kdiff3; già usa molti colori per l'evidenziazione delle differenze. Altre evidenziazioni farebbero confusione. Per questi scopi usa un altro editor. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Posso usare &kdiff3; per confrontare file di OpenOffice.Org, Word, Excel, PDF, eccetera? </para
+></question
+><answer
+><para
+>Nonostante &kdiff3; possa analizzare ogni tipo di file, probabilmente il risultato non sarà molto soddisfacente. </para
+><para
+>&kdiff3; è stato fatto per confrontare file di testo semplice. OpenOffice, Word, Excel eccetera memorizzano molte più informazioni nei file (sul tipo di carattere, le immagini, le pagine, i colori eccetera) di cui &kdiff3; non sa nulla. Quindi &kdiff3; ti mostrerà i contenuti del file interpretato come testo semplice, ma ciò potrebbe essere illeggibile, o almeno sembrerà molto strano. </para
+><para
+>Siccome la maggior parte dei programmi oggigiorno memorizza i contenuti in formato <acronym
+>XML</acronym
+>, dovresti poterli leggere come testo semplice. Quindi se c'è stato solo un piccolo cambiamento, &kdiff3; potrebbe ancora essere d'aiuto. </para
+><para
+>La migliore soluzione se vuoi solo confrontare il testo (senza oggetti integrati, come le immagini) è usare <guilabel
+>Seleziona tutto</guilabel
+> e <guilabel
+>Copia</guilabel
+> nel programma per copiare il testo rilevante negli appunti, e in seguito incollare il testo in &kdiff3; in una finestra di confronto. Vedi anche la sezione <link linkend="selections"
+>seleziona, copia e incolla</link
+>. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Dov'è andata l'opzione delle cartelle <guilabel
+>Elenca solo le differenze</guilabel
+>? </para
+></question
+><answer
+><para
+>Ora ci sono varie <link linkend="selectingvisiblefiles"
+>opzioni di visualizzazione</link
+> nel menu delle cartelle. Disabilitare <guilabel
+>Mostra file identici</guilabel
+> produce la stessa cosa che faceva l'abilitazione di <guilabel
+>Elenca solo le differenze</guilabel
+>. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Come faccio a fare una grande selezione nella finestra di ingresso delle differenze, visto che ci vuole così tanto tempo per lo scorrimento? </para
+></question
+><answer
+><para
+>Comincia la selezione come al solito (fai clic e tieni premuto il &RMB;). Quindi usa i tasti di navigazione (Per esempio <keycap
+>Pag↑</keycap
+> e <keycap
+>Pag↓</keycap
+>) tenendo premuto il &RMB;. Vedi anche la sezione <link linkend="selections"
+>seleziona, copia e incolla</link
+>. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Qui ci sono molte informazioni, ma non hai trovato una risposta alla tua domanda? </para
+></question
+><answer
+><para
+>Sei pregato di inviarmi la tua domanda. Ogni commento sarà apprezzato. </para
+></answer
+></qandaentry>
+
+</qandaset>
+</chapter>
+
+<chapter id="credits">
+
+<title
+>Riconoscimenti e Licenza</title>
+
+<para
+>&kdiff3; - Strumento per confrontare e fondere file e cartelle </para>
+<para
+>Copyright del programma 2002-2007 di Joachim Eibl <email
+>joachim.eibl@gmx.de</email
+> </para>
+<para
+>Sono ben accette nuove idee e segnalazioni di errori da colleghi e da tutte le persone su Internet. Grazie! </para>
+
+<para
+>Copyright della documentazione &copy; 2002-2007 di Joachim Eibl <email
+>joachim.eibl@gmx.de</email
+> </para>
+
+<para
+>Aggiornamento e revisione della traduzione (2009), attuale responsabile: Federico Zenith <email
+>federico.zenith@member.fsf.org</email
+></para
+> <para
+>Aggiornamento e revisione della traduzione (2005): Andrea Celli</para
+> <para
+>Traduzione 2004: Stelvio Rosset</para
+>  
+&underFDL; &underGPL; </chapter>
+
+<appendix id="installation">
+<title
+>Installazione</title>
+
+<sect1 id="getting-kdiff3">
+<title
+>Come procurarsi &kdiff3;</title>
+
+<para
+>È possibile scaricare la versione più recente di &kdiff3; da <ulink url="http://kdiff3.sourceforge.net"
+>SourceForge</ulink
+>. </para
+><para
+>&kdiff3; è disponibile anche per altre piattaforme. Per maggiori dettagli consultare la pagina Web. </para>
+
+
+</sect1>
+
+<sect1 id="requirements">
+<title
+>Requisiti</title>
+
+<para
+>Per sfruttare appieno tutte le potenzialità di &kdiff3; serve &kde; 3.1 o successivo. </para
+><para
+>Per informazioni su come usare &kdiff3; su altre piattaforme sprovviste di &kde; si rimanda alla <ulink url="http://kdiff3.sourceforge.net"
+>pagina Web</ulink
+>. </para
+><para
+>La lista dei cambiamenti si trova all'indirizzo <ulink url="http://kdiff3.sourceforge.net/ChangeLog"
+>http://kdiff3.sourceforge.net/ChangeLog</ulink
+>, oppure nel file <filename
+>ChangeLog</filename
+> del pacchetto dei sorgenti. </para>
+</sect1>
+
+<sect1 id="compilation">
+<title
+>Compilazione ed installazione</title>
+
+<para
+>Per compilare ed installare &kdiff3; su un sistema con &kde;, posizionati sulla cartella di base della distribuzione di &kdiff3; e digita:</para>
+
+<screen
+><prompt
+>%</prompt
+> <userinput
+><command
+>./configure --prefix=<replaceable
+>cartella-kde</replaceable
+></command
+></userinput>
+<prompt
+>%</prompt
+> <userinput
+><command
+>make</command
+></userinput>
+<prompt
+>%</prompt
+> <userinput
+><command
+>make</command
+> install</userinput
+>
+</screen>
+<para
+><replaceable
+>cartella-kde</replaceable
+> specifica la cartella contenente &kde; sul sistema. Se non sei sicuro, leggi il file <filename
+>README</filename
+> per maggiori dettagli. </para>
+<para
+>Se non usi &kde;, non usare <command
+>configure</command
+>, ma segui invece le istruzioni per i sistemi con solo &Qt; nel file <filename
+>README</filename
+>.</para>
+<para
+>Dato che &kdiff3; utilizza <application
+>autoconf</application
+> e <application
+>automake</application
+>, non dovresti avere problemi a compilarlo. Se invece pensi di aver trovato un problema sei pregato di segnalarlo alla lista di distribuzione di &kde;.</para>
+
+</sect1>
+
+</appendix>
+
+&documentation.index;
+</book>
+
+<!--
+Local Variables:
+mode: sgml
+sgml-minimize-attributes:nil
+sgml-general-insert-case:lower
+sgml-indent-step:0
+sgml-indent-data:nil
+End:
+
+vim:tabstop=2:shiftwidth=2:expandtab
+-->
diff --git a/doc/nl/CMakeLists.txt b/doc/nl/CMakeLists.txt
new file mode 100644 (file)
index 0000000..b212e56
--- /dev/null
@@ -0,0 +1 @@
+kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/nl SUBDIR kdiff3)
diff --git a/doc/nl/index.docbook b/doc/nl/index.docbook
new file mode 100644 (file)
index 0000000..d3ec93e
--- /dev/null
@@ -0,0 +1,2407 @@
+<?xml version="1.0" ?>
+<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
+  <!ENTITY kdiff3 "<application
+>KDiff3</application
+>">
+  <!ENTITY kappname "&kdiff3;">
+  <!ENTITY package "kdeextragear-1">
+  <!ENTITY % addindex "IGNORE">
+  <!ENTITY % Dutch "INCLUDE">
+]>
+
+<book lang="&language;">
+
+<!-- This header contains all of the meta-information for the document such
+as Authors, publish date, the abstract, and Keywords -->
+
+<bookinfo>
+<title
+>Het handboek van &kdiff3;</title>
+
+<authorgroup>
+<author
+><firstname
+>Joachim</firstname
+> <surname
+>Eibl</surname
+> <affiliation
+><address
+> <email
+>joachim.eibl at gmx.de</email>
+</address
+></affiliation>
+</author>
+</authorgroup>
+
+&Sander.Koning; 
+
+<copyright>
+<year
+>2002-2005</year>
+<holder
+>Joachim Eibl</holder>
+</copyright>
+<!-- Translators: put here the copyright notice of the translation -->
+<!-- Put here the FDL notice.  Read the explanation in fdl-notice.docbook
+     and in the FDL itself on how to use it. -->
+<legalnotice
+>&FDLNotice;</legalnotice>
+
+<!-- Date and version information of the documentation
+Don't forget to include this last date and this last revision number, we
+need them for translation coordination !
+Please respect the format of the date (YYYY-MM-DD) and of the version
+(V.MM.LL), it could be used by automation scripts.
+Do NOT change these in the translation. -->
+
+<date
+>2005-01-30</date>
+<releaseinfo
+>0.9.87</releaseinfo>
+
+
+<abstract>
+<para
+></para>
+<para
+>&kdiff3; is een hulpmiddel om bestanden en mappen te vergelijken en samen te voegen dat <itemizedlist>
+<listitem
+><para
+>twee of drie tekstbestanden of mappen vergelijkt en samenvoegt,</para
+></listitem>
+<listitem
+><para
+>de verschillen regel-voor-regel en teken-voor-teken(!) aangeeft,</para
+></listitem>
+<listitem
+><para
+>een automatische samenvoegfunctie biedt,</para
+></listitem>
+<listitem
+><para
+>een editor heeft voor het comfortabel oplossen van samenvoegconflicten,</para
+></listitem>
+<listitem
+><para
+>netwerktransparantie via KIO biedt,</para
+></listitem>
+<listitem
+><para
+>opties heeft voor het accentueren of verbergen van wijzigingen in witruimte of commentaar,</para
+></listitem>
+<listitem
+><para
+>Unicode, UTF-8 en andere bestandscoderingen ondersteunt.</para
+></listitem>
+</itemizedlist>
+</para
+><para
+>Dit document beschrijft KDiff3 versie 0.9.87. </para>
+</abstract>
+
+<!-- This is a set of Keywords for indexing by search engines.
+Please at least include KDE, the KDE package it is in, the name
+ of your application, and a few relevant keywords. -->
+
+<keywordset>
+<keyword
+>KDE</keyword>
+<keyword
+>kdeextragear</keyword>
+<keyword
+>kdiff3</keyword>
+<keyword
+>verschil</keyword>
+<keyword
+>samenvoegen</keyword>
+<keyword
+>CVS</keyword>
+<keyword
+>drievoudig verschil</keyword>
+<keyword
+>vergelijken</keyword>
+<keyword
+>bestanden</keyword>
+<keyword
+>mappen</keyword>
+<keyword
+>versiebeheer</keyword>
+<keyword
+>drievoudig samenvoegen</keyword>
+<keyword
+>verschillen in regels</keyword>
+<keyword
+>synchroniseren</keyword>
+<keyword
+>kpart</keyword>
+<keyword
+>kio</keyword>
+<keyword
+>netwerktransparant</keyword>
+<keyword
+>editor</keyword>
+<keyword
+>witruimte</keyword>
+<keyword
+>commentaar</keyword>
+</keywordset>
+
+</bookinfo>
+
+<chapter id="introduction"
+><title
+>Inleiding</title>
+<sect1 id="why"
+><title
+>Alweer een front-end voor diff?</title>
+<para
+>Er bestaan diverse grafische hulpmiddelen voor diff. Waarom KDiff3 gebruiken? Laat me uitleggen waarom ik het geschreven heb. </para
+><para
+>KDiff3 begon omdat ik een moeilijke samenvoegoperatie moest doen. Samenvoegen is nodig als diverse mensen aan dezelfde bestanden in een project werken. Een samenvoeging kan enigszins geautomatiseerd worden, als het samenvoeghulpmiddel daartoe niet alleen de nieuwe, gewijzigde bestanden heeft ("takken") maar ook het originele bestand ("basis"). Het samenvoeghulpmiddel kiest automatisch een verandering die alleen in één tak is gedaan. Als diverse mensen dezelfde regels veranderen, detecteert het samenvoeghulpmiddel een conflict dat handmatig opgelost moet worden. </para
+><para
+>De samenvoeging was moeilijk omdat één van de helpers veel dingen had gewijzigd en de insprong op veel plaatsen had verbeterd. Een andere helper had ook veel tekst in hetzelfde bestand veranderd, hetgeen in diverse samenvoegconflicten resulteerde. </para
+><para
+>Het hulpmiddel dat ik toen gebruikte toonde alleen de gewijzigde regels, maar niet wat er in die regels was gewijzigd. En er was geen informatie over of alleen de insprong gewijzigd was. Het samenvoegen was een kleine ramp. </para
+><para
+>Dus dat was het begin. De eerste versie kon verschillen binnen een regel en verschillen in witruimte tonen. Later werden veel andere mogelijkheden toegevoegd om het nut te vergroten. </para
+><para
+>Als u bijvoorbeeld snel wat tekst wilt vergelijken, kunt u het naar het klembord kopiëren en in een van de vergelijkingsvensters plakken. </para
+><para
+>Een optie die veel werk vereiste was het vergelijken en samenvoegen van mappen, dat het programma bijna in een bestandsverkenner veranderde. </para
+><para
+>Ik hoop dat KDiff3 ook voor u werkt. Veel plezier! </para
+><para
+>Joachim Eibl (2003) </para>
+</sect1>
+
+<sect1 id="screenshots"
+><title
+>Schermafdrukken en mogelijkheden</title>
+<para
+>Deze schermafdruk toont het verschil tussen twee tekstbestanden</para>
+<para
+>(met een vroege versie van KDiff3):</para>
+<screenshot
+><mediaobject>
+   <imageobject
+><imagedata fileref="screenshot_diff.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+
+<para
+>3-voudig samenvoegen wordt volledig ondersteunt. Dit is nuttig als twee mensen code onafhankelijk wijzigen. Het originele bestand (de basis) wordt gebruikt om KDiff3 te helpen bij het automatisch selecteren van de goede wijzigingen. In de samenvoeg-editor onder de verschillenvensters kunt u conflicten oplossen, terwijl u de uitvoer ziet die dat oplevert. U kunt zelfs de uitvoer wijzigen. Deze schermafdruk toont het samenvoegen van drie invoerbestanden: </para
+><para>
+<screenshot
+><mediaobject>
+   <imageobject
+><imagedata fileref="screenshot_merge.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+</para>
+
+<para id="dirmergebigscreenshot"
+>KDiff3 helpt u ook bij het vergelijken en samenvoegen van complete mappen. Deze schermafdruk toont KDiff3 gedurende het samenvoegen van een map. </para
+><para>
+<screenshot
+><mediaobject>
+   <imageobject
+><imagedata fileref="dirmergebig.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+</para>
+</sect1>
+
+<sect1 id="features"
+><title
+>Meer mogelijkheden</title>
+<sect2
+><title
+>Verschillen regel-voor-regel en teken-voor-teken tonen</title>
+<para
+>Door de mogelijkheden van een grafisch kleurenbeeldscherm te gebruiken toont KDiff3 u precies wat het verschil is. U zult dit prettig vinden als u veel code moet doornemen. </para>
+<screenshot
+><mediaobject>
+   <imageobject
+><imagedata fileref="letter_by_letter.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+</sect2>
+
+<sect2
+><title
+>Verschillen in witruimte in één oogopslag zien</title>
+<para
+>Spaties en tabs die verschillen worden getoond. Als regels alleen in de hoeveelheid witruimte verschillen kunt u dit in één oogopslag zien in de overzichtskolom aan de linkerkant. (Geen zorgen meer als mensen de insprong veranderen.) </para>
+<screenshot
+><mediaobject>
+   <imageobject
+><imagedata fileref="white_space.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+</sect2>
+
+<sect2
+><title
+>Drievoudig verschil</title>
+<para
+>Drie bestanden analyseren en zien waar ze verschillen. </para
+><para
+>De vensters links, midden en rechts heten A, B en C en zijn respectievelijk blauw, groen en magenta gekleurd. </para
+><para
+>Als één bestand hetzelfde is en één bestand verschilt op een regel geeft de kleur aan welk bestand verschilt. De rode kleur geeft aan dat beide andere bestanden verschillen. </para>
+<screenshot
+><mediaobject>
+   <imageobject
+><imagedata fileref="triple_diff.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+</sect2>
+
+<sect2
+><title
+>Comfortabel samenvoegen van twee of meer invoerbestanden</title>
+<para
+>U kunt KDiff3 gebruiken om twee of drie invoerbestanden samen te voegen en het samenvoegen zo veel mogelijk automatisch te laten verlopen. Het resultaat wordt getoond in een bewerkbaar venster waarin de meeste conflicten met een enkele muisklik opgelost kunnen worden: kies de knoppen A/B/C uit de knoppenbalk om de bron te kiezen die gebruikt moet worden. U kunt hier ook meer dan één bron kiezen. Aangezien dit uitvoervenster een editor is, kunnen ook conflicten die verdere correctie vereisen hier uitgevoerd worden zonder een extra hulpmiddel. </para>
+</sect2>
+
+<sect2
+><title
+>En...</title>
+<itemizedlist>
+   <listitem
+><para
+>Snelle navigatie via knoppen.</para
+></listitem>
+   <listitem
+><para
+>Een muisklik in een samenvattingskolom synchroniseert alle vensters om dezelfde positie te laten zien.</para
+></listitem>
+   <listitem
+><para
+>Selecteer en kopieer vanuit elk venster en plak het in het samengevoegde resultaatvenster.</para
+></listitem>
+   <listitem
+><para
+>Een overzichtskolom die toont waar de wijzigingen en conflicten zijn.</para
+></listitem>
+   <listitem
+><para
+>De kleuren zijn aan te passen aan uw specifieke voorkeuren.</para
+></listitem>
+   <listitem
+><para
+>Aanpasbare tabgrootte.</para
+></listitem>
+   <listitem
+><para
+>Een optie om spaties in plaats van tabs in te voegen.</para
+></listitem>
+   <listitem
+><para
+>Bestanden comfortabel openen via een dialoogvenster of bestanden opgeven op de opdrachtregel.</para
+></listitem>
+   <listitem
+><para
+>Zoeken naar tekenreeksen in alle tekstvensters. Zoek (Ctrl-F) en Volgende zoeken (F3).</para
+></listitem>
+   <listitem
+><para
+>De regelnummers voor elke regel tonen. </para
+></listitem>
+   <listitem
+><para
+>Het klembord plakken of tekst in een verschil-invoervenster slepen.</para
+></listitem>
+   <listitem
+><para
+>Netwerktransparantie via KIO.</para
+></listitem>
+   <listitem
+><para
+>Kan gebruikt worden als verschillentoner in KDevelop 3.</para
+></listitem>
+   <listitem
+><para
+>Regelafbreking voor lange regels.</para
+></listitem>
+   <listitem
+><para
+>Ondersteuning voor Unicode, UTF-8 en andere coderingen.</para
+></listitem>
+   <listitem
+><para
+>Ondersteuning voor talen die rechts-naar-links schrijven.</para
+></listitem>
+   <listitem
+><para
+>...</para
+></listitem>
+</itemizedlist>
+</sect2>
+</sect1>
+</chapter>
+
+<chapter id="documentation"
+><title
+>Documentatie voor bestandsvergelijking en -samenvoeging</title>
+
+<sect1 id="commandline"
+><title
+>Opdrachtregel-opties</title>
+
+<sect2
+><title
+>2 bestanden vergelijken: </title>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>bestand1 bestand2</replaceable
+>
+</screen>
+</sect2>
+
+<sect2
+><title
+>2 bestanden samenvoegen: </title>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>bestand1 bestand2</replaceable
+> -m
+   <command
+>kdiff3</command
+> <replaceable
+>bestand1 bestand2</replaceable
+> -o <replaceable
+>uitvoerbestand</replaceable
+>
+</screen>
+</sect2>
+
+<sect2
+><title
+>3 bestanden vergelijken: </title>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>bestand1 bestand2 bestand3</replaceable
+>
+</screen>
+</sect2>
+
+<sect2
+><title
+>3 bestanden samenvoegen: </title>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>bestand1 bestand2 bestand3</replaceable
+> -m
+   <command
+>kdiff3</command
+> <replaceable
+>bestand1 bestand2 bestand3</replaceable
+> -o <replaceable
+>uitvoerbestand</replaceable
+>
+</screen>
+<para
+>Merk op dat <replaceable
+>bestand1</replaceable
+> als basisbestand voor <replaceable
+>bestand2</replaceable
+> en <replaceable
+>bestand3</replaceable
+> gebruikt zal worden. </para>
+</sect2>
+
+<sect2
+><title
+>Speciaal geval: bestanden met dezelfde naam </title>
+<para
+>Als alle bestanden dezelfde naam hebben maar zich in verschillende mappen bevinden, kunt u typewerk besparen door de bestandsnaam alleen voor het eerste bestand op te geven. Bijvoorbeeld: </para>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>map1/bestandsnaam map2 map3</replaceable
+>
+</screen>
+</sect2>
+
+<sect2
+><title
+>Opdrachtregel voor het vergelijken of samenvoegen van mappen: </title>
+<para
+>Dit lijkt er erg op, maar gaat nu over mappen.</para>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>map1 map2</replaceable>
+   <command
+>kdiff3</command
+> <replaceable
+>map1 map2</replaceable
+> -o <replaceable
+>doelmap</replaceable>
+   <command
+>kdiff3</command
+> <replaceable
+>map1 map2 map3</replaceable>
+   <command
+>kdiff3</command
+> <replaceable
+>map1 map2 map3</replaceable
+> -o <replaceable
+>doelmap</replaceable
+>
+</screen>
+<para
+>Voor het vergelijken en samenvoegen van mappen kunt u <link linkend="dirmerge"
+>hier</link
+> verder lezen.</para>
+</sect2>
+
+<sect2
+><title
+>Voor meer informatie over opdrachtregel-opties gebruikt u: </title>
+<screen
+><command
+>kdiff3</command
+> --help
+Opties:
+  -m, --merge               De invoer samenvoegen.
+  -b, --base bestand        Expliciet basisbestand (voor compatibiliteit).
+  -o, --output bestand      Uitvoerbestand. Impliceert -m. Bijv: -o nieuw.txt
+  --out bestand             Uitvoerbestand. Voor compatibiliteit met bepaalde programma's.)
+  --auto                    Geen GUI als alle conflicten automatisch te doen zijn. (Vereist -o)
+  --qall                    Los conflicten niet automatisch op. (Voor compatibiliteit...)
+  --L1 alias1               Zichtbare naamvervanging voor invoerbestand1 (basis).
+  --L2 alias2               Zichtbare naamvervanging voor invoerbestand 2.
+  --L3 alias3               Zichtbare naamvervanging voor invoerbestand 3.
+  -L, --fname alias         Alternatieve zichtbare naamvervanging. Eenmaal voor elke invoer opgeven..
+  -u                        Geen effect. Voor compatibiliteit met bepaalde programma's.
+</screen>
+</sect2>
+
+</sect1>
+
+<sect1 id="opendialog"
+><title
+>Het venster "Openen"</title>
+<para
+>Aangezien veel bestanden geselecteerd moeten kunnen worden, heeft het programma een speciaal dialoogvenster hiervoor: </para>
+<screenshot
+><mediaobject>
+<imageobject
+><imagedata fileref="open_dialog.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+<para
+>In dit dialoogvenster kunt u de bestandsnamen met de hand wijzigen, een bestand via de bladeraar kiezen ("Bestand...") of recente bestanden via de afrolmenu's kiezen. Als u het dialoogvenster opnieuw opent, blijven de huidige bestandsnamen staan. Het derde invoerbestand is niet verplicht. Als het item bij "C" leeg blijft, wordt slechts een verschillenanalyse op twee bestanden uitgevoerd. </para
+><para
+>U kunt ook een map kiezen met "Map...". Als voor A een map opgegeven is wordt een vergelijking/samenvoeging op mappen gestart. Als A een bestand opgeeft maar B, C of de uitvoer een map opgeeft, gebruikt KDiff3 de bestandsnaam van A in de opgegeven mappen. </para
+><para
+>Als "Samenvoegen" geselecteerd is, kunt u de regel "Uitvoer" bewerken. Maar het is niet nodig om direct de uitvoerbestandsnaam op te geven. U kunt hiermee ook wachten tot bij het opslaan. </para
+><para
+>De knop "Instellen..." opent het optievenster, waarmee u de opties kunt instellen voordat de analyse gestart wordt. </para>
+</sect1>
+
+<sect1 id="pasteinput"
+><title
+>Invoer plakken en slepen</title>
+<para
+>Soms wilt u tekstdelen die niet in een eigen bestand staan vergelijken. KDiff3 biedt u ook de mogelijkheid tekst vanaf het klembord in een vergelijkingsvenster te plakken. De vergelijkingsanalyse begint dan direct. In het venster "Openen" hoeft u dan geen bestanden op te geven, sluit dit gewoon met "Annuleren". </para
+><para
+>U kunt ook slepen en neerzetten: Sleep een bestand uit een bestandsbeheerder of geselecteerde tekst uit een editor en zet deze neer in een verschillenvenster. </para
+><para
+>Wat is het idee? Soms bevat een bestand twee gelijksoortige functies, maar bekijken hoe gelijk ze werkelijk zijn is een grote moeite als u eerst twee bestanden moet maken en deze dan moet laden. Nu kunt u eenvoudigweg de relevante secties kopiëren, plakken, en vergelijken. </para
+><para
+>Merk op: Momenteel kunt u niets uit KDiff3 slepen. Alleen slepen naar de vergelijkingsinvoer wordt ondersteund. </para
+><para
+>Waarschuwing: Sommige editors interpreteren slepen en neerzetten in een ander programma nog steeds als knippen (in plaats van kopiëren) en plakken. Uw originele gegevens kunnen daardoor verloren gaan. </para>
+</sect1>
+
+<sect1 id="interpretinginformation"
+><title
+>De informatie in de invoervensters interpreteren</title>
+<screenshot
+><mediaobject>
+<imageobject
+><imagedata fileref="screenshot_diff.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+<para
+>Bovenaan elk tekstvenster staat de "inforegel". De inforegels van de invoervensters bevatten een letter "A", "B" of "C", de bestandsnaam en het regelnummer van de eerste zichtbare regel in het venster. (Merk op dat venster "C" optioneel is.) Elke inforegel verschijnt in een aparte kleur. (Als de paden te lang zijn om te passen, kunt u de muis op de inforegel plaatsen voor een hulpballon die de complete naam toont.) </para
+><para
+>De drie invoervensters krijgen de letters "A", "B" en "C". "A" heeft de kleur blauw, "B" is groen en "C" is magenta. (Dit zijn de standaardkleuren, u kunt ze wijzigen via het menu Instellingen.) </para
+><para
+>Als er een verschil opgemerkt wordt, toont de kleur welk invoerbestand er verschilt. Als beide andere invoerbestanden verschillen is de kleur die dit aangeeft standaard rood ("Conflictkleur" in Instellingen). Dit kleurenschema is vooral handig in het geval van drie invoerbestanden, hetgeen u zult zien in de volgende sectie (<link linkend="merging"
+>Samenvoegen</link
+>). </para
+><para
+>Links van elke tekst staat een "samenvattingskolom". Als er verschillen op een regel opgetreden zijn geeft deze kolom de respectievelijke kleur aan. Voor een verschil alleen in witruimte is de samenvatting geblokt. Voor programmeertalen waar witruimte niet zo belangrijk is, is dit nuttig om te zien of er iets belangrijks veranderd is. (In C/C++ is witruimte alleen interessant binnen tekenreeksen, commentaar, voor de preprocessor, en sommige zeer uitzonderlijke situaties.) </para
+><para
+>De verticale lijn die de overzichtskolom en de tekst scheidt wordt onderbroken als het invoerbestand daar geen regels heeft. Als regelafbreking ingeschakeld is, wordt deze lijn gestippeld voor afgebroken regels. </para
+><para
+>Aan de rechterkant is een "overzichts"-kolom zichtbaar links van de verticale schuifbalk. Deze toont gecomprimeerd de samenvattingskolom van invoer "A". Alle verschillen en conflicten zijn in één oogopslag zichtbaar. Als er slechts twee invoervensters gebruikt worden, verschijnen alle verschillen in rood omdat elk verschil dan een conflict is. Een zwarte rechtoek omrandt het zichbare deel van de invoer. Voor zeer lange invoerbestanden, waarbij het aantal regels groter is dan de hoogte van de overzichtskolom in pixesl, delen diverse invoerregels één overzichtsregel. Een conflict heeft dan topprioriteit boven eenvoudige verschillen, die prioriteit hebben boven geen wijziging, zodat geen verschil of conflict verloren gaat. Door in deze overzichtskolom te klikken wordt de bijbehorende tekst getoond. </para>
+</sect1>
+
+
+<sect1 id="merging"
+><title
+>Samenvoegen en het editorvenster voor samenvoegingsuitvoer</title>
+<screenshot
+><mediaobject>
+<imageobject
+><imagedata fileref="screenshot_merge.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+<para
+>Het editorvenster voor de samenvoegingsuitvoer (onder de verschil-invoervensters) heeft ook een inforegel bovenaan met "Uitvoer:", de bestandsnaam en "[gewijzigd]" als u iets bewerkt hebt. Meestal bevat dit wat tekst door de automatische samenvoegingsfunctie, maar vaak ook conflicten. </para
+><para
+>!!! Opslaan is niet mogelijk todat alle conflicten opgelost zijn !!! (Gebruik de knoppen "Ga naar vorig/volgend onopgelost conflict" om de overgebleven conflicten te vinden.) </para
+><para
+>Met maar twee invoerbestanden is elk verschil ook een conflict dat handmatig opgelost moet worden. </para
+><para
+>Met drie invoerbestanden wordt het eerste bestand als basis gebruikt, en het tweede en derde bestand bevatten wijzigingen. Als op een bepaalde regel alleen invoer B of C gewijzigd is, maar niet beide, wordt de veranderde bron gekozen. Alleen als B en C op dezelfde regel veranderd zijn, detecteert het hulpmiddel een conflict dat handmatig opgelost moet worden. Als B en C hetzelfde zijn, maar niet hetzelfde als A, wordt C gekozen. </para
+><para
+>Het editorvenster voor samenvoegingsuitvoer heeft ook links een samenvattingskolom. Deze toont de letter van de invoer waaruit een regel geselecteerd is of niets als alledrie de bronnen gelijk waren op die regel. Bij conflicten wordt een vraagteken "?" getoond en de regel toont dan "&lt;Samenvoegconflict&gt;", het geheel in rood. Omdat conflicten regel voor regel oplossen erg lang duurt, worden de regels gegroepeerd in groepen die dezelfde verschil- en conflictkenmerken hebben, Alleen-witruimte-conflicten worden gescheiden van niet-witruimte-conflicten om het samenvoegen van bestanden waarin de insprong gewijzigd is, gemakkelijker te maken. </para
+><para
+>Als u met de linkermuisknop in een samenvattingskolom klikt, wordt de groep die bij die regel hoort geselelecteerd in alle vensters en wordt het begin van de groep getoond. (Dit kan een plaatsveranderind in de vensters veroorzaken als het begin van de groep niet zichtbaar is.) Deze groep wordt dan de "huidige groep", en wordt geaccentueerd met de achtergrond voor "Huidig bereik". Verder verschijnt een zwarte balk links van de tekst. </para
+><para
+>Merk op dat de invoerselector de letters "A", "B" en "C" in de knoppenbalk bevat. Als u op een knop in de invoerselector klikt, worden de regels van die invoer toegevoegd aan het eind van de geselecteerde groep als de groep die bron nog niet bevatte. Anders worden de regels uit die invoer verwijderd. </para
+><para
+>Daarnaast kunt u direct elke regel bewerken. De samenvattingskolom toont een "m" voor elke regel die gewijzigd is. </para
+><para
+>Soms verschijnt de tekst "&lt;Geen regel in de bron&gt;" in een regel als die ofwel door automatisch samenvoegen ofwel door bewerken verwijderd is, en er geen andere regels in die groep overblijven. Dit is een plaatshouder voor de groep voor als u zich bedenkt en weer een bron aangeeft. De tekst verschijnt niet in het opgeslagen bestand of in gekopieerde of geplakte selecties. </para
+><para
+>De tekst "    Samenvoegconflict&lt;" verschijnt in het klembord als u tekst met zo'n regel kopieert en plakt. Maar wees alsnog voorzichtig.            &lt; </para
+><para
+>Het normale samenvoegen begint door het automatisch oplossen van eenvoudige conflicten. Maar het menu "Samenvoegen" biedt wat acties voor andere veelvoorkomende zaken. Als u dezelfde bron voor de meeste conflicten wilt gebruiken, kunt u "A", "B" of "C" overal kiezen, of alleen voor de overgebleven niet-opgeloste conflicten, of voor de niet-opgeloste witruimteconflicten. Als u elk apart onderscheid zelf wilt bepalen, kunt u "Elk onderscheid maken bij conflicten" instellen. Of als u terug wilt gaan naar de automatische keuzes van KDiff3 kiest u "Eenvoudige conflicten automatisch oplossen". KDiff3 herstart het samenvoegen dan. Voor acties die uw vorige wijzigingen aanpassen vraagt KDiff3 om uw instemming alvorens door te gaan. </para
+><para
+>Merk op: als u één van de bronnen voor onopgeloste witruimte-conflicten kiest, en de optie "Getallen negeren" of "C/C++ commentaar negeren" is gekozen, dan worden wijzigingen in getallen respectievelijk commentaar ook als witruimte behandeld. </para>
+</sect1>
+
+<sect1 id="navigation"
+><title
+>Navigatie en bewerken</title>
+<para
+>Veel navigatie doet u met de schuifbalken en de muis maar u kunt ook met de toetsen navigeren. Als u in een venster klikt, kunt u de pijltoesen links, rechts, omhoog en omlaag en Page Up, Page Down, Home, End, Ctrl-Home en Ctrl-End gebruiken als in andere programma's. De overzichtskolom naast de verticale schuifbalk van de invoerbestanden kan ook voor navigatie gebruikt worden door erin te klikken. </para
+><para
+>U kunt ook een wielmuis gebruiken om omhoog en omlaag te bladeren. </para
+><para
+>In de uitvoereditor kunt u ook de andere toetsen gebruiken om de tekst te bewerken. U kunt tussen invoeg- en overschrijfmodus wisselen met de toets Insert. (Standaard is invoegmodus.) </para
+><para
+>Een klik met de linker muisknop in een samenvattingskolom synchroniseert alle vensters zodat ze het begin van dezelfde groep regels tonen (zoals uitgelegd in de sectie <link linkend="merging"
+>Samenvoegen</link
+>). </para
+><para
+>De knoppenbalk heeft ook zeven navigatieknoppen waarmee u naar het huidige/eerste/laatste verschil kunt springen, naar het volgende/vorige verschil (Ctrl-omlaag/Ctrl-omhoog), naar het volgende/vorige conflict (Ctrl-PageDown/Ctrl-PageUp), of naar het volgende/vorige onopgeloste conflict. Merk op dat voor KDiff3 een "conflict" dat niet automatisch werd opgelost bij het begin van het samenvoegen een "conflict" blijft, zelfs als het wordt opgelost. Vandaar de noodzaak om "onopgeloste conflicten" te onderscheiden. </para
+><para
+>Er is ook een knop "Automatisch naar het volgende onopgeloste conflict gaan" (Automatisch doorgaan). Als u dit inschakelt, springt KDiff3 automatisch naar het volgende onopgeloste conflict, zodra u een bron hebt geselecteerd. Dit kan helpen als u altijd slechts één bron wilt kiezen. Als u beide bronnen nodig hebt, of als u na het kiezen nog wilt wijzigen, wilt u deze optie waarschijnlijk uitschakelen. Voordat u naar het volgende onopgeloste conflict gaat, toont KDiff3 u korte tijd het effect van uw keuze. Deze tijd is instelbaar in de Verschil- en samenvoeginstellingen: de tijd voor "Automatisch doorgaan" is instelbaar in milliseconden tussen 0 en 2000. Tip: Niet te veel klikken? Kies een korte tijdsduur voor Automatisch doorgaan en de sneltoetsen Ctrl-1/2/3 om A/B/C voor conflicten te selecteren. </para>
+</sect1>
+
+<sect1 id="selections"
+><title
+>Selecteren, kopiëren en plakken</title>
+<para
+>De invoervensters tonen geen cursor, dus selecteren moet gedaan worden met de muis door met de linkermuisknop aan het begin te klikken, de muisknop ingedrukt te houden en naar het eind te bewegen, waar u de muisknop weer loslaat. U kunt ook een woord selecteren door erop te dubbelklikken. In de samenvoegeditor kunt u ook met het toetsenbord selecteren met Shift en de pijltoetsen. </para
+><para
+>Om naar het klembord te kopiëren moet u de knop "Kopiëren" kiezen (Ctrl-C of Ctrl-Insert). Maar er bestaat een optie "Selectie automatisch kopiëren". Als deze is ingeschakeld, wordt geselecteerde tekst direct naar het klembord gekopieerd. Let er hierbij wel op dat bestaande inhoud van uw klembord niet per ongeluk ongewenst verwijderd wordt. </para
+><para
+>"Knippen" (Ctrl-X of Shift-Delete) kopieert de geselecteerde tekst naar het klembord en verwijdert deze; "Plakken" (Ctrl-V of Shift-Insert) voegt de tekst op het klembord in op de cursorpositie of over de huidige selectie. </para>
+</sect1>
+
+<sect1 id="saving"
+><title
+>Opslaan</title>
+<para
+>Opslaan is alleen toegestaan als alle conflicten opgelost zijn. Als het bestand al bestaat en de optie "Reservekopie" ingeschakeld is, wordt het bestaande bestand hernoemd met een extensie ".orig", een bestaande reservekopie wordt hierbij overschreven. Als u afsluit of een andere verschillenanalyse start en de gegevens nog niet zijn opgeslagen, vraagt KDiff3 u of u wilt opslaan, annuleren of doorgaan zonder opslaan. (KDiff3 vangt geen signalen. Dus als u KDiff3 "kill"t gaan uw gegevens verloren.) </para
+><para
+>Regeleindes worden opgeslagen volgens de normale methode op het onderliggende besturingssysteem. Voor Unix-systemen eindigt elke regel met een 'linefeed' "\n", terwijl op Win32-systemen elke regel met een 'carriage return' en een 'linefeed' eindigt "\r\n". KDiff3 bewaart de regeleindes van de invoerbestanden niet, hetgeen ook betekent dat u KDiff3 niet met binaire bestanden moet gebruiken. </para>
+</sect1>
+
+<sect1 id="find"
+><title
+>Tekenreeksen zoeken</title>
+<para
+>U kunt naar tekenreeksen zoeken in elk tekstvenster van KDiff3. De opdracht "Zoeken..." (Ctrl-F) in het menu Bewerken opent een venster waarin u de te zoeken tekenreeks kunt opgeven. U kunt ook de vensters opgeven waarin gezocht moet worden. Zoeken begint altijd bovenaan. Gebruik de opdracht "Volgende zoeken" (F3) om naar het volgende voorkomen door te gaan. Als u meerdere vensters opgeeft om in te zoeken wordt het eerste venster van boven naar beneden doorzocht, voordat het volgende venster weer van bovenaf wordt doorzocht, enzovoort. </para>
+</sect1>
+
+
+<sect1 id="options"
+><title
+>Opties</title>
+<para
+>Opties en de recente-bestandenlijst worden opgeslagen als u het programma afsluit, en opnieuw ingelezen als u het start. (Instellingen -> KDiff3 instellen...) </para>
+<sect2
+><title
+>Lettertype</title>
+<para
+>Kies een lettertype met vaste breedte. (Op sommige systemen toont dit dialoogvenster ook lettertypes met variabele breedte, maar die dient u liever niet te gebruiken.) </para>
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Cursief lettertype voor onderscheiden:</emphasis
+></term
+><listitem
+><para
+>Als u dit kiest, worden tekstverschillen getoond met de cursieve versie van het geselecteerde lettertype. Als het lettertype geen cursief ondersteunt, doet dit niets.</para>
+   </listitem
+></varlistentry>
+</variablelist>
+</sect2>
+
+<sect2
+><title
+>Kleuren</title>
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Voorgrondkleur:</emphasis
+></term
+><listitem
+><para
+>Gewoonlijk zwart. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Achtergrondkleur:</emphasis
+></term
+><listitem
+><para
+>Gewoonlijk wit. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Achtergrondkleur bij verschillen:</emphasis
+></term
+><listitem
+><para
+>Gewoonlijk lichtgrijs. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Kleur voor A:</emphasis
+></term
+><listitem
+><para
+>Gewoonlijk donkerblauw. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Kleur voor B:</emphasis
+></term
+><listitem
+><para
+>Gewoonlijk donkergroen. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Kleur voor C:</emphasis
+></term
+><listitem
+><para
+>Gewoonlijk donkermagenta. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Kleur voor conflicten:</emphasis
+></term
+><listitem
+><para
+>Gewoonlijk rood.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Achtergrondkleur voor huidig bereik:</emphasis
+></term
+><listitem
+><para
+>Gewoonlijk lichtgeel.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Achtergrondkleur voor verschillen in huidig bereik:</emphasis
+></term
+><listitem
+><para
+>Gewoonlijk donkergeel.</para
+></listitem
+></varlistentry>
+</variablelist>
+<para
+>Op systemen met slechts 16 of 256 kleuren zijn sommige kleuren niet beschikbaar in pure vorm. Op zulke systemen zorgt de knop "Standaard" voor een pure kleur. </para>
+</sect2>
+
+<sect2
+><title
+>Editor-instellingen</title>
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Tab voegt spaties in:</emphasis
+></term
+><listitem
+><para
+>Als dit uitgeschakeld is en u de toets Tab indrukt, wordt een tab-teken ingevoegd, anders het aangegeven aantal spaties.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Tabgrootte:</emphasis
+></term
+><listitem
+><para
+>Kan ingesteld worden voor uw specifieke wensen. Standaard is 8. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Automatisch inspringen:</emphasis
+></term
+><listitem
+><para
+>Als u Enter drukt wordt de insprong van de vorige regel gebruikt voor de nieuwe. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Automatische kopieerselectie:</emphasis
+></term
+><listitem
+><para
+>Elke selectie wordt automatisch naar het klembord gekopieerd, u hoeft niet expliciet te kopiëren. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Regeleinde:</emphasis
+></term
+><listitem
+><para
+>Bij het opslaan kunt u opgeven welk regeleinde u verkiest. De standaardinstelling is de gebruikelijke keuze voor het gebruikte besturingssysteem. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Locale-codering gebruiken:</emphasis
+></term
+><listitem
+><para
+>Voor het weergeven van buitenlandse lettertekens. Probeer dit te wijzigen als sommige lettertekens in uw taal niet goed getoond worden. </para
+></listitem
+></varlistentry>
+</variablelist>
+</sect2>
+
+<sect2
+><title
+>Instellingen voor vergelijking &amp; samenvoeging</title>
+<para
+>Bij het vergelijken van bestanden, probeert KDiff3 eerst regels te vinden die gelijk zijn in alle invoerbestanden. Alleen gedurende deze stap wordt witruimte mogelijk genegeerd. De tweede stap vergelijkt elke regel. In deze stap wordt witruimte niet genegeerd. Ook gedurende het samenvoegen wordt witruimte niet genegeerd. </para>
+
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>'Carriage return' behouden:</emphasis
+></term
+><listitem
+><para
+>Sommige editors (op sommige systemen) slaan 'carriage returns' ('\r') en 'linefeeds' ('\n') op aan het einde van een regel, terwijl andere alleen de 'linefeed' ('\n') opslaan. Normaal gesproken negeert KDiff3 de 'carriage return', maar dan kunnen bestanden niet dezelfde grootte hebben maar wel gelijk lijken. Als deze optie ingeschakeld is, worden de 'carriage returns' zichtbaar gemaakt en behandeld als witruimte. Bij samenvoegen moet deze optie uit staan. Standaard staat deze optie uit.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Getallen negeren:</emphasis
+></term
+><listitem
+><para
+>Standaard uit. Getaltekens ('0'-'9', '.', '-') worden genegeerd in het eerste deel van de analyse waarin regels worden vergeleken. In het resultaat worden de verschillen wel getoond, maar behandeld als witruimte. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>C/C++ commentaar negeren:</emphasis
+></term
+><listitem
+><para
+>Standaard uit. Wijzigingen in commentaar worden behandeld als wijzigingen in witruimte. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Geen onderscheid hoofd-/kleine letters:</emphasis
+></term
+><listitem
+><para
+>Standaard uit. Verschillen in hoofd-/kleine letters ('A' en 'a') worden behandeld als verschillen in witruimte. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Preprocessorcommando:</emphasis
+></term
+><listitem
+><para
+>Zie <link linkend="preprocessors"
+>de volgende sectie</link
+>. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Preprocessor-commando alleen voor regelcontroles:</emphasis
+></term
+><listitem
+><para
+>Zie <link linkend="preprocessors"
+>de volgende sectie</link
+>. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Grondig zoeken:</emphasis
+></term
+><listitem
+><para
+>Doe veel moeite om kleinere onderscheiden te vinden (standaard aan). Dit is waarschijnlijk effectief voor gecompliceerde, grote bestanden. En langzaam voor erg grote bestanden. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Vertraging voor automatisch doorgaan (ms):</emphasis
+></term
+><listitem
+><para
+>Bij het automatisch doorgaan bepaalt deze instelling hoe lang het resultaat van de selectie getoond wordt voordat er naar het volgende onopgeloste conflict gesprongen wordt. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Standaardsamenvoeging van witruimtes bij 2/3 bestanden:</emphasis
+></term
+><listitem
+><para
+>Automatisch alle witruimteconflicten oplossen door een gespecificeerd bestand te kiezen. (Standaard is handmatige keuze.) Nuttig als witruimte in veel bestanden niet belangrijk is. Als u dit alleen af en toe nodig hebt kunt u beter "A/B/C voor alle onopgeloste conflicten kiezen" in het menu Samenvoegen kiezen. Merk op dat als u "Getallen negeren" of "C/C++ commentaar negeren" hebt ingeschakeld, deze automatische keuze ook voor conflicten in getallen of commentaar geldt. </para
+></listitem
+></varlistentry>
+</variablelist>
+
+</sect2>
+
+<sect2
+><title
+>Mapsamenvoeging</title>
+<para
+>Deze opties gaan over het doorzoeken van de map en de afhandeling van het samenvoegen: zie <link linkend="dirmergeoptions"
+>Mapvergelijking/samenvoeging</link
+> voor details. </para
+><para
+>Er is hier echter één optie die ook relevant is voor het opslaan van enkele bestanden: </para>
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Reservekopiebestanden:</emphasis
+></term
+><listitem
+><para
+>Als een bestand wordt opgeslagen en er al een oudere versie bestaat, wordt het oude bestand hernoemd met een extensie ".orig". Als een oud reservekopiebestand met de extensie ".orig" al bestaat, wordt deze zonder reservekopie verwijderd. </para
+></listitem
+></varlistentry>
+</variablelist>
+</sect2>
+
+<sect2
+><title
+>Regio- en taalinstellingen</title>
+  <variablelist>
+    <varlistentry
+><term
+><emphasis
+>Taal:</emphasis
+></term
+><listitem
+><para
+>Past de taal van de gebruikersinterface aan. Het wijzigen van deze optie heeft geen invloed op het huidige programma. U dient KDiff3 af te sluiten en te herstarten om de taal te veranderen. (Deze optie is niet beschikbaar in de KDE-versie van KDiff3 omdat de taal in te stellen is in de globale instellingen van KDE.) </para
+></listitem
+></varlistentry>
+    <varlistentry
+><term
+><emphasis
+>Dezelfde codering gebruiken voor alles:</emphasis
+></term
+><listitem
+><para
+>De volgende coderingsopties kunnen apart aangepast worden voor elk item. Als deze optie is ingeschakeld nemen alle waarden deze over. </para
+></listitem
+></varlistentry>
+    <varlistentry
+><term
+><emphasis
+>Lokale codering:</emphasis
+></term
+><listitem
+><para
+>Boven de coderings-selectors komt een opmerking die u vertelt wat de lokale codering is. (Dit is niet aan te passen, maar wordt aangegeven als u uw lokale codering niet weet, maar wel wilt kiezen.) </para
+></listitem
+></varlistentry>
+    <varlistentry
+><term
+><emphasis
+>Bestandscodering voor A/B/C:</emphasis
+></term
+><listitem
+><para
+>Pas de bestandscodering voor invoerbestanden aan. Dit heeft effect op hoe speciale tekens geïnterpreteerd worden. Aangezien u elke codering apart kunt instellen, kunt u zelfs bestanden vergelijken en samenvoegen die met verschillende coderingen zijn opgeslagen. </para
+></listitem
+></varlistentry>
+    <varlistentry
+><term
+><emphasis
+>Bestandscodering voor samenvoeguitvoer en opslag:</emphasis
+></term
+><listitem
+><para
+>Als u een bestand hebt bewerkt, kunt op aanpassen met welke codering het weer op schijf wordt opgeslagen. </para
+></listitem
+></varlistentry>
+    <varlistentry
+><term
+><emphasis
+>Bestandscodering voor preprocessorbestanden:</emphasis
+></term
+><listitem
+><para
+>Als u preprocessors opgeeft kunnen deze misschien niet met uw codering werken (bijvoorbeeld: uw bestanden zijn 16-bits unicode en uw preprocessor kan alleen met 8-bits ascii overweg). Met deze optie kunt u de codering van preprocessor-uitvoer opgeven. </para
+></listitem
+></varlistentry>
+    <varlistentry
+><term
+><emphasis
+>Rechts-naar-links-taal</emphasis
+></term
+><listitem
+><para
+>Sommige talen worden van rechts naar links geschreven. Als ieze optie is ingeschakeld, tekent KDiff3 de tekst van rechs naar links in de verschillenvensters en in het uitvoervenster. Merk op dat, aals u KDiff3 met de opdrachtregeloptie "--reverse" start, alle schermopmaak ook van rechts naar links gedaan wordt. (Dit is een optie die door Qt aangeboden wordt.) Deze documentatie is geschreven met de aanname dat "Rechts-naar-links-taal" of omgekeerde indeling uitgeschakeld zijn. Sommige verwijzingen naar "links" en "rechts" moeten dus omgedraaid worden als u die opties gebruikt. </para
+></listitem
+></varlistentry>
+
+  </variablelist>
+</sect2>
+
+<sect2
+><title
+>Diverse</title>
+<para
+>(Deze opties en acties zijn in menu's of in de knoppenbalk beschikbaar.)</para>
+<variablelist>
+  <varlistentry
+><term
+><emphasis
+>Regelnummering tonen:</emphasis
+></term
+><listitem
+><para
+>U kunt kiezen of regelnummers voor de invoerbestanden getoond moeten worden.</para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Spaties &amp; tabulator-tekens in verschillen tonen:</emphasis
+></term
+><listitem
+><para
+>Soms zijn de zichtbare spaties en tabs storend. U kunt dit uitschakelen.</para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Witruimte tonen:</emphasis
+></term
+><listitem
+><para
+>Schakel dit uit om accentuering van alleen-witruimte-veranderingen in de tekst of overzichtskolommen uit te schakelen. (Merk op dat dit ook van toepassing is op wijzigingen in getallen of commentaar als de opties "Getallen negeren" of "C/C++ commentaar negeren" actief zijn.) </para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Overzichtsopties:</emphasis
+></term
+><listitem
+><para
+>Deze keuzes zijn alleen beschikbaar als u drie bestanden vergelijkt. In normale modus worden alle verschillen getoond in één kleurgecodeerde overzichtskolom. Maar soms bent u speciaal geïnteresseerd in de verschillen tussen slechts twee van deze drie bestanden. Door "A vs B", "A vs C" of "B vs C" te kiezen wordt er een tweede overzichtskolom met de vereiste informatie getoond naast het normale overzicht. </para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Regels afbreken in vensters met verschillen:</emphasis
+></term
+><listitem
+><para
+>Regels afbreken als hun lengte de breedte van een venster zou overschrijden. </para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Venster A/B/C tonen:</emphasis
+></term
+><listitem
+><para
+>Soms wilt u de ruimte op het scherm beter gebruiken voor lange regels. Verberg dan de vensters die niet belangrijk zijn. (In het menu Venster.)</para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Splitsen van vensters omschakelen:</emphasis
+></term
+><listitem
+><para
+>Wisselen tussen weergave van verschilvensters naast elkaar (A links van B links van C) of boven elkaar (A boven B boven C). Dit moet ook voor lange regels helpen. (In het menu Venster). </para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Samenvoegen snel starten:</emphasis
+></term
+><listitem
+><para
+>Soms bekijkt u de onderscheiden en besluit u te willen samenvoegen. <inlinemediaobject
+><imageobject
+><imagedata fileref="merge_current.png" format="PNG"/></imageobject
+></inlinemediaobject
+> "Huidig bestand samenvoegen" in het menu Map werkt ook als u slechts twee bestanden vergelijkt. Een enkele klik start het samenvoegen en gebruikt de bestandsnaam van het laatste invoerbestand als het standaard uitvoerbestand. (Als dit gebruikt wordt om een samenvoeging te herstarten, wordt de uitvoerbestandsnaam behouden.)</para
+></listitem
+></varlistentry>
+</variablelist>
+</sect2>
+
+<sect2 id="shortcuts"
+><title
+>Sneltoetsen instellen</title>
+<para
+>Momenteel ondersteunt alleen de KDE-versie gebruikergedefinieerde sneltoetsen (Menu Instellingen -> Sneltoetsen instellen...) </para>
+</sect2>
+</sect1>
+
+<sect1 id="preprocessors"
+><title
+>Preprocessor-opdrachten</title>
+<para
+>KDiff3 ondersteunt twee preprocessor-opties. </para
+><para>
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Preprocessorcommando:</emphasis
+></term
+><listitem
+><para
+>Als een bestand gelezen is, wordt het door deze externe opdracht gesluisd. De uitvoer van deze opdracht is dan zichtbaar in plaats van het originele bestand. U kunt uw eigen preprocessor schrijven om uw specifieke wensen te vervullen. Gebruik dit om storende delen van het bestand weg te halen, of automatisch de insprong te verbeteren, enzovoort. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Preprocessor-commando alleen voor regelcontroles:</emphasis
+></term
+><listitem
+><para
+>Als een bestand gelezen is, wordt het door deze externe opdracht gesluisd. Als een preprocessor-opdracht (zie boven) ook opgegeven wordt, wordt de uitvoer van de preprocessor de invoer van de preprocessor voor regelovereenkomsten. De uitvoer wordt dan alleen gebruikt bij de regelvergelijkingsfase van de analyse. U kunt uw eigen preprocessor schrijven om uw specifieke wensen te vervullen. Elke invoerregel moet een overeenkomende uitvoerregel hebben. </para
+></listitem
+></varlistentry>
+</variablelist>
+</para>
+<para
+>Het idee is om de gebruiker grotere flexibiliteit te geven bij het instellen van het resultaat. Maar dit vereist een extern programma, en veel gebruikers willen dat niet zelf schrijven. Het goede nieuws is dat <command
+>sed</command
+> of <command
+>perl</command
+> vaak voldoende is. </para>
+<para
+>Voorbeeld: een eenvoudig testgeval: Beschouw het bestand a.txt (6 regels): <screen>
+      aa
+      ba
+      ca
+      da
+      ea
+      fa
+</screen
+> en het bestand b.txt (3 regels): <screen>
+      cg
+      dg
+      eg
+</screen
+> Zonder preprocessor zouden de volgende regels naast elkaar geplaatst worden: <screen>
+      aa - cg
+      ba - dg
+      ca - eg
+      da
+      ea
+      fa
+</screen
+> Dit is waarschijnlijk niet gewenst omdat de eerste letter de feitelijk interessante informatie bevat. Om het zoekalgoritme te helpen bij het negeren van de tweede letter kunnen we een preprocessor-opdracht voor regelovereenkomsten gebruiken, die 'g' door 'a' vervangt: <screen>
+   <command
+>sed</command
+> 's/g/a/'
+</screen
+> Met deze opdracht wordt het resultaat van de vergelijking: <screen>
+      aa
+      ba
+      ca - cg
+      da - dg
+      ea - eg
+      fa
+</screen
+> Intern wordt het zoeken van bij elkaar passende regels na het uitvoeren van de preprocessor voor regelovereenkomsten gedaan, maar op het scherm is het bestand ongewijzigd. (De normale preprocessor verandert de gegevens ook op het scherm.) </para>
+
+<sect2 id="sedbasics"
+><title
+>De basis van <command
+>sed</command
+></title>
+<para
+>Deze sectie geeft alleen een inleiding op een paar basismogelijkheden van <command
+>sed</command
+>. Zie voor meer informatie <ulink url="info:/sed"
+>info:/sed</ulink
+> of <ulink url="http://www.gnu.org/software/sed/manual/html_mono/sed.html"
+>http://www.gnu.org/software/sed/manual/html_mono/sed.html</ulink
+>. Een voorgecompileerde versie voor Windows kunt u vinden op <ulink url="http://unxutils.sourceforge.net"
+>http://unxutils.sourceforge.net</ulink
+>. Merk op dat de volgende voorbeelden ervan uitgaan dat de opdracht <command
+>sed</command
+> in een map in uw omgevingsvariabele PATH staat. Als dit niet het geval is, dient u het volledige absolute pad voor de opdracht te gebruiken. Merk ook op dat de volgende voorbeelden het enkelvoudige aanhalingsteken (') gebruiken dat niet in Windows werkt. Op Windows dient u in plaats daarvan dubbele aanhalingstekens (") te gebruiken. </para>
+<para
+>In deze context wordt alleen de vervangingsopdracht van <command
+>sed</command
+> gebruikt: <screen>
+   <command
+>sed</command
+> 's/<replaceable
+>REGEXP</replaceable
+>/<replaceable
+>VERVANGING</replaceable
+>/<replaceable
+>VLAGGEN</replaceable
+>'
+</screen
+> Voordat u een nieuwe opdracht in KDiff3 gebruikt, zou u deze eerst in een console moeten testen. Hiervoor is de opdracht <command
+>echo</command
+> nuttig. Voorbeeld: <screen>
+   <command
+>echo</command
+> abrakadabra | <command
+>sed</command
+> 's/a/o/'
+   -> obrakadabra
+</screen
+> Dit voorbeeld toont een zeer eenvoudige sed-opdracht die het eerste voorkomen van "a" door "o" vervangt. Als u alle voorkomens wilt vervangen, hebt u de vlag "g" nodig: <screen>
+   <command
+>echo</command
+> abrakadabra | <command
+>sed</command
+> 's/a/o/g'
+   -> obrokodobro
+</screen
+> Het symbool "|" is de doorsluisopdracht die de uitvoer van de vorige opdracht naar de invoer van de volgende opdracht doorgeeft. Als u dit wilt uitproberen met een langer bestand kunt u op Unix-systemen<command
+>cat</command
+> gebruiken en <command
+>type</command
+> op Windows-systemen. <command
+>sed</command
+> voert de vervanging op elke regel uit. <screen
+><command
+>cat</command
+> <replaceable
+>bestand</replaceable
+> | <command
+>sed</command
+> <replaceable
+>opties</replaceable
+>
+</screen>
+</para>
+</sect2>
+<sect2 id="sedforkdiff3"
+><title
+>Voorbeelden voor het gebruik van <command
+>sed</command
+> in KDiff3</title>
+<sect3
+><title
+>Andere soorten commentaar negeren</title>
+<para
+>Momenteel begrijpt KDiff3 alleen C/C++ commentaar. Met de preprocessoropdracht voor regelovereenkomsten kunt u ook andere soorten commentaar negeren, door ze in C/C++ commentaar om te zetten. Voorbeeld: om commentaar dat met "#" begint te negeren, wilt u deze omzetten naar "//". Merk op dat u hiervoor ook de optie "C/C++ commentaar negeren" moet inschakelen om effect te krijgen. Een goede preprocessoropdracht voor regelovereenkomsten zou dan zijn: <screen>
+   <command
+>sed</command
+> 's/#/\/\//'
+</screen
+> Omdat in <command
+>sed</command
+> het teken "/" een aparte betekenis heeft, is het nodig om het teken "\" voor elke "/" in de vervangende tekenreeks te plaatsen. Soms is de "\" ook nodig om een teken een speciale betekenis te geven of deze juist weg te halen. De enkele aanhalingstekens (') voor en na de vervangingsopdracht zijn nu belangrijk, omdat de shell anders zal proberen sommige speciale tekens als '#', '$' of '\' te interpreteren voordat deze aan <command
+>sed</command
+> worden doorgegeven. Merk op dat u op Windows hier de dubbele aanhalingstekens (") nodig hebt. Windows vervangt andere tekens als '%', dus u moet hier misschien wat experimenteren. </para>
+</sect3>
+<sect3
+><title
+>Niet-hoofdlettergevoelige verschillen</title>
+<para
+>Gebruik de volgende preprocessoropdracht voor regelovereenkomsten om alle invoer naar hoofdletters om te zetten: <screen>
+   <command
+>sed</command
+> 's/\(.*\)/\U\1/'
+</screen
+> Hier is de ".*" een reguliere expressie die met elke tekenreeks overeenkomt en in deze context met alle lettertekens op de regel overeenkomt. De "\1" in de vervangende tekenreeks verwijst naar de overeenkomende tekst binnen het eerste paar "\(" en "\)". De "\U" zet de ingevoegde tekst om in hoofdletters. </para>
+</sect3>
+
+<sect3
+><title
+>Versiebeheer-trefwoorden negeren</title>
+<para
+>CVS en andere versiebeheersystemen gebruiken diverse trefwoorden om automatisch gegenereerde tekenreeksen in te voegen (<ulink url="info:/cvs/Keyword substitution"
+>info:/cvs/Trefwoordvervanging</ulink
+>. Deze volgen allemaal het patroon "$TREFWOORD gegenereerde tekst$". We hebben nu een preprocessoropdracht voor regelovereenkomsten nodig die alleen de gegenereerde tekst verwijdert: <screen>
+   <command
+>sed</command
+> 's/\$\(Revision\|Author\|Log\|Header\|Date\).*\$/\$\1\$/'
+</screen
+> De "\|" scheidt de mogelijke trefwoorden. U wilt deze lijst misschien aan uw eigen wensen aanpassen. De "\" voor de "$" is nodig omdat anders de "$" met het einde van de regel overeenkomt. </para>
+<para
+>Terwijl u experimenteert met <command
+>sed</command
+> gaat u wellicht deze reguliere expressies begrijpen en op prijs stellen. Ze zijn nuttig omdat er veel andere programma's zijn die soortgelijke dingen ondersteunen.  </para>
+</sect3>
+
+<sect3
+><title
+>Getallen negeren</title>
+<para
+>Getallen negeren is in feite een ingebouwde optie. Maar als een ander voorbeeld is dit de preprocessoropdracht voor regelovereenkomsten: <screen>
+   <command
+>sed</command
+> 's/[0123456789.-]//g'
+</screen
+> Elk teken tussen '[' en ']' komt overeen en wordt vervangen door niets. </para>
+</sect3>
+
+<sect3
+><title
+>Bepaalde kolommen negeren</title>
+<para
+>Soms is een tekst erg strict opgebouwd, en bevat deze kolommen die u altijd wilt negeren, terwijl er andere kolommen zijn die u voor analyse wilt bewaren. In het volgende voorbeeld worden de eerste vijf kolommen (lettertekens) genegeerd, de volgende tien worden bewaard, dan worden er weer vijf genegeerd en de rest van de regel wordt bewaard. <screen>
+   <command
+>sed</command
+> 's/.....\(..........\).....\(.*\)/\1\2/'
+</screen
+> Elke punt '.' komt overeen met een willekeurig teken. De "\1" en "\2" in de vervangende tekenreeks verwijzen naar de overeenkomende tekst in het eerste en tweede paar "\(" en "\)" die de tekst aangeven die bewaard moet worden. </para>
+</sect3>
+
+<sect3
+><title
+>Diverse vervangingen combineren</title>
+<para
+>Soms wilt u diverse vervangingen tegelijk uitvoeren. U kunt dan de puntkomma ';' gebruiken om deze van elkaar te scheiden. Voorbeeld: <screen
+><command
+>echo</command
+> abrakadabra | <command
+>sed</command
+> 's/a/o/g;s/\(.*\)/\U\1/'
+   -> OBROKODOBRO
+</screen>
+</para>
+</sect3>
+
+<sect3
+><title
+><command
+>perl</command
+> in plaats van <command
+>sed</command
+> gebruiken</title>
+<para
+>In plaats van <command
+>sed</command
+> wilt u wellicht iets anders gebruiken zoals <command
+>perl</command
+>. <screen>
+   <command
+>perl</command
+> -p -e 's/<replaceable
+>REGEXP</replaceable
+>/<replaceable
+>VERVANGING</replaceable
+>/<replaceable
+>VLAGGEN</replaceable
+>'
+</screen
+> Maar sommige details zijn anders in <command
+>perl</command
+>. Merk op waar <command
+>sed</command
+> "\(" en "\)" vereist, <command
+>perl</command
+> de eenvoudigere "(" en ")" zonder voorafgaande '\' vereist. Voorbeeld: <screen
+><command
+>sed</command
+> 's/\(.*\)/\U\1/'
+   <command
+>perl</command
+> -p -e 's/(.*)/\U\1/'
+</screen>
+</para>
+</sect3>
+</sect2>
+
+<sect2
+><title
+>Uitvoervolgorde van preprocessors</title>
+<para
+>De data wordt doorgesluisd door alle interne en externe preprocessors, in deze volgorde: </para>
+<itemizedlist>
+<listitem
+><para
+>Normale preprocessor.</para
+></listitem>
+<listitem
+><para
+>Preprocessor voor regelovereenkomsten.</para
+></listitem>
+<listitem
+><para
+>Hoofdletterongevoelig (conversie naar hoofdletters).</para
+></listitem>
+<listitem
+><para
+>Opsporen van C/C++ commentaar.</para
+></listitem>
+<listitem
+><para
+>Getallen negeren.</para
+></listitem>
+<listitem
+><para
+>Witruimte negeren.</para
+></listitem>
+</itemizedlist>
+<para
+>De gegevens zoals die na de normale preprocessor zijn worden bewaard voor weergave en samenvoeging. De andere handelingen wijzigen alleen de gegevens die het verschillenalgoritme voor regelovereenkomsten ziet. </para
+><para
+>Merk op dat, in de zeldzame gevallen waar u een normale preprocessor gebruikt, de preprocessor voor regelovereenkomsten de uitvoer van de normale preprocessor als invoer ziet. </para>
+</sect2>
+
+<sect2
+><title
+>Waarschuwing</title>
+<para
+>De preprocessor-opdrachten zijn vaak erg nuttig, maar net zoals elke andere optie die automatisch uw teksten wijzigt of bepaalde verschillen verbergt, kunt u per ongeluk bepaalde verschillen over het hoofd zien en in het ergste geval belangrijke gegevens vernietigen. </para
+><para
+>Om deze reden vertelt KDiff3 u het als er een normale preprocessor-opdracht wordt gebruikt bij het samenvoegen, en wordt u gevraagd of deze uitgeschakeld moet worden of niet. Maar u wordt niet gewaarschuwd als er een preprocessoropdracht voor regelovereenkomsten actief is. Het samenvoegen is niet voltooid totdat alle conflicten opgelost zijn. Als u "Witruimte tonen" uitgeschakeld hebt, zijn de verschillen die met de preprocessoropdracht voor regelovereenkomsten verwijderd zijn, ook onzichtbaar. Als de knop "Opslaan" inactief blijft tijdens het samenvoegen (door overblijvende conflicten), schakel dan "Witruimte tonen" in. Als u deze minder belangrijke verschillen niet handmatig wilt samenvoegen kunt u "[A|B|C] voor alle onopgeloste witruimteconflicten gebruiken" kiezen uit het menu "Samenvoegen". </para>
+</sect2>
+</sect1>
+</chapter>
+
+
+<chapter id="dirmerge"
+><title
+>Mappen vergelijken en samenvoegen met KDiff3</title>
+<sect1 id="dirmergeintro"
+><title
+>Inleiding</title>
+<para
+>Programmeurs moeten vaak veel bestanden in een map veranderen om hun doel te bereiken. Hierom laat KDiff3 u ook hele mappen recursief vergelijken en samenvoegen! </para
+><para
+>Hoewel het vergelijken en samenvoegen van mappen nogal duidelijk lijkt, zijn er aan paar details die u moet kennen. Het belangrijkste is natuurlijk het feit dat nu door elke handeling veel bestanden gewijzigd kunnen worden. Als u geen reservekopieën van uw originele gegevens hebt, kan het erg moeilijk of zelfs onmogelijk zijn om naar de originele staat terug te keren. Dus voordat u een samenvoeging start, zorg ervoor dat uw gegevens veilig zijn en dat u terug kunt keren. Of u een archief maakt of een versiebeheersysteem gebruikt is uw keuze, maar zelfs ervaren programmeurs en integrators hebben zo nu en dan de oude broncodes nodig. En merk op dat ik (de auteur van KDiff3) mijn best doe, kan ik niet garanderen dat er geen bugs zijn. Volgens de GNU-GPL is er GEEN WAARBORG op welke manier dan ook voor dit programma. Dus wees bescheiden en onthoud: </para>
+<blockquote
+><para>
+   <emphasis
+>Vergissen is menselijk, maar om dingen echt te verknoeien hebt u een computer nodig.</emphasis>
+</para
+></blockquote>
+<para
+>Dus dit kan dit programma voor u doen: KDiff3 ... </para>
+<itemizedlist>
+     <listitem
+><para
+>... leest en vergelijkt twee of drie mappen recursief,</para
+></listitem>
+     <listitem
+><para
+>... houdt speciaal rekening met symbolische koppelingen,</para
+></listitem>
+     <listitem
+><para
+>... laat u door bestanden bladeren door te dubbelklikken,</para
+></listitem>
+     <listitem
+><para
+>... stelt voor elk item een samenvoegingsoperatie voor, die u kunt wijzigen voordat het samenvoegen van de mappen begint,</para
+></listitem>
+     <listitem
+><para
+>... laat u het samenvoegen simuleren en geeft de acties aan die plaats zouden vinden, zonder ze uit te voeren,</para
+></listitem>
+     <listitem
+><para
+>... laat u het samenvoegen doen, en geeft u de mogelijkheid in te springen als er menselijke interactie nodig is,</para
+></listitem>
+     <listitem
+><para
+>... laat u de geselecteerde handling op alle items (F7) of alleen het geselecteerde item (F6) uitvoeren,</para
+></listitem>
+     <listitem
+><para
+>... laat u het samenvoegen voortzetten na handmatige interactie met F7,</para
+></listitem>
+     <listitem
+><para
+>... maakt optioneel reservekopieën met de extensie ".orig",</para
+></listitem>
+     <listitem
+><para
+>...</para
+></listitem>
+</itemizedlist>
+</sect1>
+
+<sect1 id="startingdirmerge"
+><title
+>Mappen vergelijken of samenvoegen</title>
+<para
+>Dit lijkt erg op het vergelijken en samenvoegen van een enkel bestand. U hoeft slechts mappen op de opdrachtregel of in het venster "Openen" te kiezen. </para>
+<sect2
+><title
+>Twee mappen vergelijken/samenvoegen: </title>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>map1 map2</replaceable>
+   <command
+>kdiff3</command
+> <replaceable
+>map1 map2</replaceable
+> -o <replaceable
+>doelmap</replaceable
+>
+</screen>
+<para
+>Als er geen doelmap wordt opgegeven, gebruikt KDiff3 <replaceable
+>map2</replaceable
+>. </para>
+</sect2>
+
+<sect2
+><title
+>Drie mappen vergelijken/samenvoegen </title>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>map1 map2 map3</replaceable>
+   <command
+>kdiff3</command
+> <replaceable
+>map1 map2 map3</replaceable
+> -o <replaceable
+>doelmap</replaceable
+>
+</screen>
+<para
+>Bij het samenvoegen van drie mappen wordt <replaceable
+>map1</replaceable
+> als basis voor het samenvoegen gebruikt. Als er geen doelmap wordt opgegeven, gebruikt KDiff3 <replaceable
+>map3</replaceable
+> als doelmap voor het samenvoegen.doelmpa  </para>
+
+<para
+>Merk op dat alleen het vergelijken automatisch start, niet het samenvoegen. Hiervoor dient u eerst een menu-item of de toets F7 te gebruiken. (Meer details later.) </para>
+</sect2>
+</sect1>
+
+<sect1 id="dirmergevisible"
+><title
+>Zichtbare informatie</title>
+<para
+>Terwijl de mappen worden gelezen verschijnt een melding die u over de voortgang informeert.  Als u het inlezen van de mappen annuleert, worden alleen bestanden getoond die tot dan toe zijn vergeleken. </para
+><para
+>Als het inlezen van de mappen klaar is, toont KDiff3 een lijst met de resultaten links ... </para>
+<screenshot
+><mediaobject>
+<imageobject
+><imagedata fileref="dirbrowser.png" format="PNG"/></imageobject
+> <!--alt="Image of the directory browser."-->
+</mediaobject
+></screenshot>
+<para
+>... en details over het geselecteerde item rechts. </para>
+<screenshot
+><mediaobject>
+<imageobject
+><imagedata fileref="iteminfo.png" format="PNG"/></imageobject>
+   <!--alt="Image with information about the selected item."-->
+</mediaobject
+></screenshot>
+
+<sect2 id="name"
+><title
+>De kolom "Naam"</title>
+<para
+>Elk bestand en elke map die tijdens het inlezen gevonden is, wordt hier in een boomstructuur getoond. U kunt een item selecteren door er éénmaal met de muis op te klikken. </para
+><para
+>Standaard zijn de mappen ingeklapt. U kunt ze uitklappen en weer inklappen door op de "+"/"-" te klikken of door op het item te dubbelklikken, of door de linker en rechter pijltoetsen te gebruiken. Het menu "Map" bevat ook twee acties "Alle submappen invouwen" en "Alle submappen uitvouwen" waarmee u alle mappen in één keer kunt inklappen of uitklappen. </para
+><para
+>Als u op een bestand dubbelklikt wordt de bestandsvergelijking gestart en verschijnt het verschillenvenster. </para>
+<para
+>De afbeelding in de naamkolom geeft het bestandstype in de eerste map ("A") aan. Dit kan zijn: </para>
+<itemizedlist>
+     <listitem
+><para
+>Normaal bestand</para
+></listitem>
+     <listitem
+><para
+>Normale map (map-afbeelding)</para
+></listitem>
+     <listitem
+><para
+>Koppeling naar een bestand (bestandsafbeelding met pijl)</para
+></listitem>
+     <listitem
+><para
+>Koppeling naar een map (mapafbeelding met pijl)</para
+></listitem>
+</itemizedlist>
+<para
+>Als het bestandstype anders is in de andere mappen, is dit zichtbaar in de kolommen A/B/C en in het venster dat de details over het geselecteerde item toont. Merk op dat het samenvoegen in zo'n geval niet automatisch gedaan kan worden. Als u het samenvoegen start, wordt u geïnformeerd over zulke problemen. </para>
+</sect2>
+
+<sect2 id="coloring"
+><title
+>De kolommen A/B/C en het kleurenschema</title>
+<para
+>Zoals in de afbeelding te zien is, worden de kleuren rood, groen, geel en zwart gebruikt in de kolommen A/B/C. </para>
+<itemizedlist>
+     <listitem
+><para
+>Zwart: Dit item bestaat niet in deze map</para
+></listitem>
+     <listitem
+><para
+>Groen: Nieuwste item.</para
+></listitem>
+     <listitem
+><para
+>Geel: Ouder dan groen, nieuwer dan rood.</para
+></listitem>
+     <listitem
+><para
+>Rood: Oudste item.</para
+></listitem>
+</itemizedlist>
+<para
+>Maar voor items die hetzelfde waren in de vergelijking, is ook de kleur hetzelfde, ook al zijn ze niet even oud. </para
+><para
+>Mappen worden als gelijk beschouwd als alle items die ze bevatten hetzelfde zijn. Dan hebben ze ook dezelfde kleur. De leeftijd van een map wordt niet gebruikt bij het bepalen van de kleur. </para
+><para
+>Het idee voor dit kleurenschema kreeg ik bij <ulink url="http://samba.org/cgi-bin/cvsweb/dirdiff"
+>dirdiff</ulink
+>. De kleuren stellen een blad voor dat groen is als het nieuw is, later geel wordt, en rood wordt als het oud is. </para>
+
+</sect2
+><sect2 id="operation"
+><title
+>De kolom "Operatie"</title>
+<para
+>Na het vergelijken van mappen maakt KDiff3 ook een voorstel voor een samenvoegingsoperatie. Dit wordt getoond in de kolom "Operatie". U kunt een operatie wijzigen door erop te klikken. Er verschijnt dan een klein menu waarmee u de operatie voor dat item kunt kiezen. (U kunt ook de meestgebruikte operaties met het toetsenbord kiezen. Ctrl+1/2/3/4/Del kiest respectievelijkg A/B/C/Samenvoegen/Verwijderen.) Deze operatie wordt dan bij het samenvoegen  uitgevoerd. Afhankelijk van de item en de samenvoegmodus zijn er andere operaties beschikbaar. De samenvoegmodus kan zijn: </para>
+<itemizedlist>
+     <listitem
+><para
+>Samenvoegen van drie mappen ("A" wordt als oudere basis van beide beschouwd)</para
+></listitem>
+     <listitem
+><para
+>Samenvoegen van twee mappen</para
+></listitem>
+     <listitem
+><para
+>Synchroniseren van twee mappen (via de optie "Mappen synchroniseren")</para
+></listitem>
+</itemizedlist>
+<para
+>Bij het samenvoegen van drie mappen is het voorstel voor de operatie: Als voor een item ... </para>
+<itemizedlist>
+     <listitem
+><para
+>... alledrie de mappen gelijk zijn: kopiëren vanuit C</para
+></listitem>
+     <listitem
+><para
+>... A en C gelijk zijn maar B niet: Kopiëren vanuit B (of als B niet bestaat, de bestemming verwijderen als deze bestaat)</para
+></listitem>
+     <listitem
+><para
+>... A en B gelijk zijn maar C niet: Kopiëren vanuit C (of als C niet bestaat, de bestemming verwijderen als deze bestaat)</para
+></listitem>
+     <listitem
+><para
+>... B en C gelijk zijn maar A niet: Kopiëren vanuit C (of als C niet bestaat, de bestemming verwijderen als deze bestaat)</para
+></listitem>
+     <listitem
+><para
+>... alleen A bestaat: De bestemming verwijderen (als deze bestaat)</para
+></listitem>
+     <listitem
+><para
+>... alleen B bestaat: Vanuit B kopiëren</para
+></listitem>
+     <listitem
+><para
+>... alleen C bestaat: Vanuit C kopiëren</para
+></listitem>
+     <listitem
+><para
+>... A, B en C niet gelijk zijn: Samenvoegen</para
+></listitem>
+     <listitem
+><para
+>... A, B en C niet hetzelfde bestandstype hebben (bijvoorbeeld, A is een map en B een bestand): "Fout: Conflicterende bestandstypen". Zolang zulke items bestaan kan het samenvoegen van de mappen niet beginnen.</para
+></listitem>
+</itemizedlist>
+<para
+>Bij het samenvoegen van twee mappen is het voorstel voor de operatie: Als voor een item... </para>
+<itemizedlist>
+     <listitem
+><para
+>... beide mappen gelijk zijn: Kopiëren vanaf B</para
+></listitem>
+     <listitem
+><para
+>... A bestaat, maar B niet: Kopiëren vanaf A</para
+></listitem>
+     <listitem
+><para
+>... B bestaat, maar A niet: Kopiëren vanaf B</para
+></listitem>
+     <listitem
+><para
+>... A en B bestaan maar niet gelijk zijn: Samenvoegen</para
+></listitem>
+     <listitem
+><para
+>... A en B niet hetzelfde bestandstype hebben (bijvoorbeeld, A is een map en B een bestand): "Fout: Conflicterende bestandstypen". Zolang zulke items bestaan kan het samenvoegen van de mappen niet beginnen.</para
+></listitem>
+</itemizedlist>
+<para
+>Synchronisatiemodus is actief als er slechts twee mappen en geen expliciet doel zijn opgegeven, en als de optie "Mappen synchroniseren" actief is. KDiff3 kiest dan een standaard operatie zodanig dat beide mappen naderhand hetzelfde zijn. Als voor een item ... </para>
+<itemizedlist>
+     <listitem
+><para
+>... beide mappen gelijk zijn: Niets.</para
+></listitem>
+     <listitem
+><para
+>... A bestaat, maar B niet: A naar B kopiëren</para
+></listitem>
+     <listitem
+><para
+>... B bestaat, maar A niet: B naar A kopiëren</para
+></listitem>
+     <listitem
+><para
+>... A en B bestaan, maar niet gelijk zijn: samenvoegen en het resultaat in beide mappen opslaan. (Voor de gebruiker is de zichtbare naam B, maar KDiff3 kopieert dan B naar A.)</para
+></listitem>
+     <listitem
+><para
+>... A en B niet hetzelfde bestandstype hebben (bijvoorbeeld, A is een map en B een bestand): "Fout: Conflicterende bestandstypen". Zolang zulke items bestaan kan het samenvoegen van de mappen niet beginnen.</para
+></listitem>
+</itemizedlist>
+<para
+>Als twee mappen samengevoegd worden en de optie "Nieuwere kopiëren in plaats van samenvoegen" geselecteerd is, kijkt KDiff3 naar de datums en stelt dan voor om het nieuwere bestand te kiezen. Als de bestanden niet gelijk zijn maar wel gelijke datums hebben, bevat de operatie "Fout: Datums zijn gelijk maar bestanden niet." Zolang zulke items bestaan kan het samenvoegen niet beginnen. </para>
+</sect2>
+
+<sect2 id="status"
+><title
+>De statuskolom</title>
+<para
+>Gedurende het samenvoegen wordt het ene bestand na het andere verwerkt. De statuskolom toont "Gereed" bij items waar het samenvoegen is afgerond, en andere teksten als er iets onverwachts gebeurd is. Als het samenvoegen klaar is, dient u een laatste controle te doen om te zien of de status van alle items goed is. </para>
+</sect2>
+
+<sect2 id="statisticscolulmns"
+><title
+>Statistiekkolommen</title>
+<para
+>Als de bestandsvergelijkingsmodus "Volledige analyse" ingeschakeld is in de opties, toont KDiff3 extra kolommen met het aantal onopgeloste en opgeloste conflicten en het aantal (niet-)witruimteconflicten. (De kolom met het aantal apgeloste conflicten wordt alleen getoond bij het vergelijken of samenvoegen van drie mappen.) </para>
+</sect2>
+
+</sect1>
+
+
+<sect1 id="dothemerge"
+><title
+>Een samenvoeging doen</title>
+<para
+>U kunt het geselecteerde item (bestand of map) samenvoegen, of alle items. Als u alle keuzes voor de operaties hebt gemaakt (ook in alle submappen) kunt u het samenvoegen starten. </para
+><para
+>Wees erop bedacht dat, als u niet expliciet een doelmap heeft opgegeven, de doelmap "C" is bij het behandelen van drie mappen, "B" bij het samenvoegen van twee mappen, en "A" en/of "B" in sychronisatiemodus. </para
+><para
+>Controleer ook als u een doelmap hebt opgegeven of alle items die zich in de uitvoer zouden moeten bevinden, daadwerkelijk in de boomstructuur staan. Er zijn enkele opties die ervoor zorgen dat bepaalde items uit het vergelijken en samenvoegen van mappen worden weggelaten. Controleer deze opties om onplezierige verrassingen te voorkomen: </para>
+<itemizedlist>
+     <listitem
+><para
+>"Recursieve mappen": Als dit uitgeschakeld is, worden items in submappen niet gevonden.</para
+></listitem>
+     <listitem
+><para
+>"Patroon"/"Anti-patroon": Overeenkomende items al dan niet invoegen</para
+></listitem>
+     <listitem
+><para
+>"Verborgen bestanden uitsluiten"</para
+></listitem>
+     <listitem
+><para
+>"Alleen onderscheid tonen": Bestanden die in alle mappn overeenkomen, verschijnen niet in de boomstructuur, en dus ook niet in de bestemming.</para
+></listitem>
+</itemizedlist>
+<para
+>(In de huidige versie dient u de map handmatig opnieuw in te laten lezen door "Map"->"Opnieuw inlezen" te kiezen, nadat u opties hebt gewijzigd die van invloed zijn op het inlezen van mappen.) </para
+><para
+>Als u tot hier tevreden bent, is de rest eenvoudig. </para
+><para
+>Om alle items samen te voegen: kies "Mapsamenvoeging starten/voortzetten" in het menu "Map" of druk op F7 (sneltoets). Om alleen het huidige item samen te voegen: kies "Operatie uitvoeren voor huidig item" of druk op F6. </para
+><para
+>Als er door conflicterende bestandstypes nog bestanden zijn met ongeldige operaties, verschijnt er een melding, worden die items aangewezen en kunt u een geldige operatie voor die items kiezen. </para
+><para
+>Als u alle items samenvoegt, verschijnt er een dialoogvenster met de opties "Starten", "Simuleren" en "Annuleren". </para>
+<itemizedlist>
+     <listitem
+><para
+>Kies "Simuleren" als u wilt zien wat er gedaan zou worden, zonder dit werkelijk te doen. Er wordt een uitgebreide lijst van alle operaties getoond.</para
+></listitem>
+     <listitem
+><para
+>Kies anders "Doorgaan" om het samenvoegen echt te starten.</para
+></listitem>
+</itemizedlist>
+<para
+>KDiff3 voert dan de gekozen operatie uit op alle items. Als u handmatige actie moet ondernemen (samenvoegen van een enkel bestand) verschijnt er een samenvoegvenster (<link linkend="dirmergebigscreenshot"
+>zie de grote schermafdruk</link
+>). </para
+><para
+>Als u klaar bent met een bestand, kiest u opnieuw "Samenvoegen starten/voortzetten" of drukt u op F7. Als u nog niet hebt opgeslagen, wordt er een dialoogvenster getoond dat u vraagt om dat te doen. KDiff3 gaat dan verder met het volgende item. </para
+><para
+>Als KDiff3 een fout tegenkomt, meldt het dit en wordt de uitgebreide stautsinformatie getoond. Ondaraan deze lijst zullen er wat foutmeldingen staan die u zouden moeten helpen bij het begrijpen van de oorzaak van het probleem. Als u doorgaat met samenvoegen (F7) geeft KDiff3 u de keuze tussen opnieuw proberen of het item overslaan dat het probleem veroorzaakte. Dit betekent dat u, voordat u doorgaat, een andere operatie kunt kiezen of het probleem door andere middelen kunt oplossen. </para
+><para
+>Als het samenvoegen voltooid is, niformeert KDiff3 u hierover via een berichtvenster. </para
+><para
+>Als sommige items afzonderlijk samengevoegd zijn, onthoudt KDiff3 dit (tijdens de samenvoegsessie) en worden deze niet opnieuw samengevoegd als later het samenvoegen voor alle items gestart wordt. Zelfs als het samenvoegen overgeslagen is of er niets is opgeslagen, tellen deze items als voltooid. Alleen als u de samenvoegoperatie wijzigt, wordt het item opnieuw samengevoegd. </para>
+</sect1>
+
+<sect1 id="dirmergeoptions"
+><title
+>Opties voor het vergelijken en samenvoegen van mappen</title>
+<para
+>De voorkeuren van KDiff3 (menu "Instellingen"-&gt;"KDiff3 instellen") bevatten nu een sectie "Mappen samenvoegen" met deze opties: </para>
+
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Recursieve mappen:</emphasis
+></term
+><listitem
+><para
+>Kies of mappen recursief doorzocht moeten worden.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Bestandspatroon(en):</emphasis
+></term
+><listitem
+><para
+>Alleen bestanden die hier met een patroon overeenkomen worden in de boom geplaatst. U kunt hier meer dan één patroon opgeven door een puntkomma ";" als scheidingsteken te gebruiken. Geldige jokertekens: '*' en '?' (bijvoorbeeld "*.cpp;*.h"). Standaard is "*". Mappen hoeven niet aan dit patroon te voldoen.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Anti-patroon(en):</emphasis
+></term
+><listitem
+><para
+>Bestanden en mappen die hier met een patroon overeenkomen worden niet in de boom geplaatst. U kunt hier meer dan één patroon opgeven door een puntkomma ";" als scheidingsteken te gebruiken. Geldige jokertekens: '*' en '?'. Standaard is "*.orig;*.o".</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>CVS-ignore gebruiken:</emphasis
+></term
+><listitem
+><para
+>Negeer bestanden en mappen die ook door CVS genegeerd zouden worden. Veel automatisch gegenereerde bestanden worden genegeerd door CVS. Het grote voordeel hiervan is dat dit mapspecifiek opgegeven kan worden via een bestand ".cvsignore". (Zie <ulink url="info:/cvs/cvsignore"
+>info:/cvs/cvsignore</ulink
+>.)</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Verborgen bestanden en mappen zoeken:</emphasis
+></term
+><listitem
+><para
+>Op sommige bestandssystemen hebben bestanden een attribuut "verborgen". Op andere systemen zorgt een punt "." aan het begin van ene bestandnaam ervoor dat het bestand verborgen is. Met deze optie kunt u deze bestanden al dan niet in de boom laten opnemen. Standaard is aan.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Bestandskoppelingen volgen:</emphasis
+></term
+><listitem
+><para
+>Voor koppelingen naar bestanden: Als dit uitgeschakeld is, worden de koppelingen vergeleken. Als dit ingeschakeld is, worden de bestanden achter de koppelingen vergeleken. Standaard is uit.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Mapkoppelingen volgen:</emphasis
+></term
+><listitem
+><para
+>Voor koppelingen naar mappen: Als dit uitgeschakeld is, worden de symbolische koppelingen vergeleken. Als dit ingeschakeld is, worden de koppelingen beschouwd als mappen en recursief ingelezen. (Merk op dat het programmme niet controleert of de koppeling "recursief" is. Dus bijvoorbeeld een map die een koppeling naar zichzelf bevat, zorgt voor een oneindige lus, en na enige tijd, als de "stack" overloopt of al het geheugen op is, voor ene crash van het programma.) Standaard is uit.</para
+></listitem
+></varlistentry
+>   
+   <varlistentry
+><term
+><emphasis
+>Alleen onderscheid tonen:</emphasis
+></term
+><listitem
+><para
+>Alleen de items die niet in alle invoermappen gelijk zijn worden getoond en alleen de gewijzigde bestanden zijn zichtbaar. Bestanden die in alle mappen gelijk zijn werden dus niet gekopieerd tijdens het samenvoegen en als de doelmap de bestanden vóór het samenvoegen niet bevat, mist u wellicht later bestanden. (Deze optie wordt in een volgende versie waarschijnlijk gewijzigd.) Standaard is uit.</para
+></listitem
+></varlistentry>
+
+   <varlistentry
+><term
+><emphasis
+>Bestandsvergelijkingsmodus:</emphasis
+></term
+><listitem
+><para>
+<variablelist
+>            
+   <varlistentry
+><term
+><emphasis
+>Binaire vergelijking:</emphasis
+></term
+><listitem
+><para
+>Dit is de standaard vergelijkingsmodus. </para
+></listitem
+></varlistentry
+>         
+   <varlistentry
+><term
+><emphasis
+>Volledige analyse:</emphasis
+></term
+><listitem
+><para
+>Doe een volledige analyse van elk bestand en toon de kolommen met statistische informatie. (Aantal opgeloste en onopgeloste, niet-witruimte- en witruimteconflicten.) De volledige analyse is langzamer dan een eenvoudige binaire analyse, en veel langzamer bij bestanden die geen tekst bevatten. (Geef de van toepassing zijnde bestandsantipatronen op.) </para
+></listitem
+></varlistentry
+>         
+   <varlistentry
+><term
+><emphasis
+>Wijzigingsdatum vertrouwen:</emphasis
+></term
+><listitem
+><para
+>Als u grote mappen over een langzaam netwerk vergelijkt, kan het sneller om alleen de wijzigingsdatums en bestandsgroottes te vergelijken. Deze snelheidsverbetering brengt echter wat onzekerheid met zich mee. Wees voorzichtig bij het gebruiken van deze optie. Standaard is uit.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Grootte vertrouwen:</emphasis
+></term
+><listitem
+><para
+>Vergelijkbaar met het vertrouwen van de wijzigingsdatum. Er vindt geen echte vergelijking plaats. Twee bestanden worden als gelijk beschouwd als ze dezelfde grootte hebben. Dit is nuttig als de kopieeroperatie de wijzigingsdatum niet intact heeft gehouden. Wees voorzichtig bij het gebruiken van deze optie. Standaard is uit.</para
+></listitem
+></varlistentry>
+</variablelist
+></para
+></listitem
+></varlistentry>
+         
+   <varlistentry
+><term
+><emphasis
+>Mappen synchroniseren:</emphasis
+></term
+><listitem
+><para
+>Activeert de "synchronisatiemodus" als twee mappen vergeleken worden en er geen expliciete doelmap is opgegeven. In deze modus worden de voorgestelde operaties dusdanig gekezen dat beide bronmappen na de synchronisatie gelijk zijn. Het resultaat van het samenvoegen wordt ook naar beide mappen geschreven. Standaard is uit.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Nieuwere bestanden kopiëren in plaats van samenvoegen:</emphasis
+></term
+><listitem
+><para
+>In plaats van het uitvoeren van de voorlgestelde operatie wordt het nieuwere bestand gekopieerd als er wijzigingen zijn opgetreden. (Dit wordt als onveilig beschouwd, want het veronderstelt dat u weet dat het andere bestand niet ook gewijzigd is. Controleer dit in elk geval.) Standaard is uit.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Reservekopiebestanden:</emphasis
+></term
+><listitem
+><para
+>Als een bestand of gehele map door een andere wordt vervangen of verwijderd vordt, wordt de originele versie hernoemd met de extensie ".orig". Als een oud reservekopiebestand met de extensie ".orig" al bestaat, wordt dit zonder reservekopie verwijderd. Dit beïnvloedt ook het normale samenvoegen van enkele bestanden, niet alleen bij het samenvoegen van mappen. Standaard is aan.</para
+></listitem
+></varlistentry>
+</variablelist>
+</sect1>
+
+<sect1 id="other"
+><title
+>Andere functies</title>
+<sect2
+><title
+>Splitsen / Volledig-scherm-modus</title>
+<para
+>Normaal gesproken blijft de lijstweergave voor het samenvoegen van mappen zichtbaar als er een enkel bestand wordt vergeleken of samengevoegd. Met de muis kunt u de splitsbalk verplaatsen die de bestandenlijst van de verschillenvensters scheidt. Als u dat niet wilt, kunt u "Vensters splitsen" in het menu "Map" uitschakelen. U kunt dan "Weergave omschakelen" in het menu "Map" kiezen om tussen de bestandenlijst en de verschillenweergave over te schakelen, die dan het volledige scherm in beslag nemen. </para>
+</sect2>
+<sect2
+><title
+>Een enkel bestand vergelijken of samenvoegen</title>
+<para
+>U dubbelklikt waarschijnlijk het liefst op een bestand om het te vergelijken. Desalniettemin is er hiervoor ook een item in het menu "Map". U kunt ook direct een enkel bestand samenvoegen, zonder de mapsamenvoeging te starten, met "Enkel bestand samenvoegen" in het menu "Map". Als u het resultaat opslaat, wordt de status op "voltooid" gezet, en wordt het bestand niet opnieuw samengevoegd als er een mapsamenvoeging wordt gestart. </para
+><para
+>Merk op dat deze statusinformatie verloren gaat als u de map opnieum inleest (menu "Map", item "Opnieuw inlezen") </para>
+</sect2>
+</sect1>
+</chapter>
+
+<chapter id="misc">
+<title
+>Diverse onderwerpen</title>
+<sect1 id="networktransparency">
+<title
+>Netwerktransparantie via KIO</title>
+<sect2
+><title
+>KIO-slaves</title>
+<para
+>KDE biedt netwerktransparantie via KIO-slaves. KDiff3 gebruikt dit om invoerbestanden en mappen te lezen. Dit betekent dat u bestanden en mappen op lokale en externe bronnen kunt opgeven via URL-adressen. </para
+><para
+>Voorbeeld: </para
+><para>
+<screen
+><command
+>kdiff3</command
+> test.cpp  ftp://ftp.verweg.org/test.cpp
+   <command
+>kdiff3</command
+> tar:/home/hacker/archief.tar.gz/map ./map
+</screen>
+</para>
+<para
+>De eerste regel vergelijkt een lokaal bestand met een bestand op een FTP-server. De tweede regel vergelijkt een map binnen een gecomprimeerd archief met een lokale map. </para
+><para
+>Andere interessante KIO-slaves zijn: </para>
+<itemizedlist>
+<listitem
+><para
+>Bestanden op het www (http:),</para
+></listitem>
+<listitem
+><para
+>Bestanden op ftp (ftp:),</para
+></listitem>
+<listitem
+><para
+>Versleutelde bestandsoverdracht (fish:, sftp:),</para
+></listitem>
+<listitem
+><para
+>Windows-bronnen (smb:),</para
+></listitem>
+<listitem
+><para
+>Lokale bestanden (file:).</para
+></listitem>
+</itemizedlist>
+<para
+>Andere (waarschijnlijk minder nuttige) mogelijkheden zijn: </para>
+<itemizedlist>
+<listitem
+><para
+>Man-pagina's (man:),</para
+></listitem>
+<listitem
+><para
+>info-pagina's (info:).</para
+></listitem>
+</itemizedlist>
+</sect2>
+
+<sect2
+><title
+>Hoe URL-adressen te schrijven</title>
+<para
+>Een URL heeft een andere syntaxis vergeleken met paden naar lokale bestanden en mappen. U dient met een aantal zaken rekening te houden: </para>
+<itemizedlist>
+<listitem
+><para
+>Een pad kan relatief zijn en "." of ".." bevatten. Dit kan niet met URL-adressen, die altijd absoluut zijn. </para
+></listitem
+><listitem
+><para
+>Speciale tekens dienen omgezet te worden. ("#"->"%23", spatie->"%20", enz.) Een bestand met de naam "/#foo#" wordt bijvoorbeeldhet URL-adres "file:/%23foo%23". </para
+></listitem
+><listitem
+><para
+>Als URL-adressen niet werken zoals u verwacht, probeer ze dan eerst in Konqueror te openen. </para
+></listitem>
+</itemizedlist>
+
+</sect2>
+
+<sect2
+><title
+>Mogelijkheden van KIO-slaves</title>
+<para
+>Netwerktransparantie heeft één nadeel: niet alle bronnen hebben dezelfde mogelijkheden. </para
+><para
+>Soms ligt dit aan het bestandssysteem van de server, soms aan het protocol. Een korte lijst van beperkingen: </para>
+<itemizedlist>
+<listitem
+><para
+>Er is soms geen ondersteuning voor koppelingen. </para
+></listitem
+><listitem
+><para
+>Of er is geen manier om te onderscheiden of een koppeling naar een map of een bestand verwijst, er wordt dan altijd van bestanden uitgegaan (ftp:, sftp:). </para
+></listitem
+><listitem
+><para
+>De bestandsgrootte kan niet altijd bepaald worden. </para
+></listitem
+><listitem
+><para
+>Beperkte ondersteuning voor permissies. </para
+></listitem
+><listitem
+><para
+>Geen mogelijkheden om permissies of wijzigingsdatums te veranderen, zodat de permissies of tijd van een kopie verschillen van het origineel. (Zie de optie "Grootte vertrouwen"). (Permissies of wijzigingsdatum veranderen is alleen mogelijk bij lokale bestanden.) </para
+></listitem>
+</itemizedlist>
+</sect2>
+</sect1>
+
+<sect1 id="kpart">
+<title
+>&kdiff3; als een KPart gebruiken</title>
+<para
+>&kdiff3; is een KPart. Het implementeert momenteel de interface KParts::ReadOnlyPart. </para
+><para
+>Het belangrijkste gebruik is als een verschillentoner in KDevelop. KDevelop start altijd eerst de interne verschillentoner. Om KDiff3 op te starten klikt u met de rechtermuisknop op het verschilvenster en kiest u "In KDiff3Part tonen" uit het contextmenu. </para
+><para
+>Kdiff3 vereist normaal gesproken twee complete bestanden als invoer. Als het als een KPart gebruikt wordt, neemt KDiff3 aan dat het invoerbestand een patch-bestand in het standaard formaat is. KDiff3 haalt dan de twee bestandsnamen op uit het patch-bestand. Minstens één van de twee bestanden moet beschikbaar zijn. KDiff3 roept dan <command
+>patch</command
+> aan om het andere bestand opnieuw te maken. </para
+><para
+>In Konqueror kunt u een patch-bestand selecteren en "Tonen in"-"KDiff3Part" uit het contextmenu kiezen. Merk op dat dit niet werkt als geen van de originele bestanden beschikbaar is, en dat het niet betrouwbaar is als een origineel bestand gewijzigd is sinds het patch-bestand gegenereerd is. </para
+><para
+>Als het als een KPart gestart wordt, biedt KDiff3 alleen een verschillenmodus voor twee bestanden, een kleine werkbalk en een menu. Samenvoegen of mappen vergelijken worden dan niet ondersteund. </para>
+</sect1>
+</chapter>
+
+<chapter id="faq">
+<title
+>Vraag en antwoord</title>
+&reporting.bugs; &updating.documentation; <qandaset id="faqlist">
+
+<qandaentry
+><question
+><para
+>Waarom heet het "KDiff3"? </para
+></question
+><answer
+><para
+>Hulpmiddelen met de naam "KDiff" en "KDiff2" (nu "Kompare") bestaan al. "KDiff3" moet ook suggereren dat het kan samenvoegen, net als het programma "diff3". </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Waarom heb ik het onder GPL uitgegeven? </para
+></question
+><answer
+><para
+>Ik gebruik al heel lang GPL-programma's en heb veel geleerd door de vele broncodes te bekijken. Dit is daarom mijn dankbetuiging aan alle programmeurs die hetzelfde hebben gedaan of zullen doen. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Sommige knoppen en functies ontbreken. Wat is er mis? </para
+></question
+><answer
+><para
+>U hebt waarschijnlijk vanuit de broncode gecompileerd zonder het juiste KDE-prefix in "configure" op te geven. Standaard wil "configure" in de map /usr/local installeren, maar KDE kan het bronbestand voor de gebruikersinterface dan niet vinden (kdiff3ui.rc). Het bestand README bevat meer informatie over de goede prefix. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Regels die op elkaar lijken maar niet hetzelfde zijn, verschijnen vaak naast elkaar, maar soms niet. Waarom? </para
+></question
+><answer
+><para
+>Regels waar alleen de hoeveelheid witruimte verschillend is worden in eerste instantie als "gelijk" beschouwd, terwijl slechts één verschillend niet-witruimte-teken ervoor zorgt dat de regels "verschillend" zijn. Als op elkaar lijkende regels naast elkaar verschijnen is dit slechts toeval, maar dit is gelukkig vaak het geval. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Waarom moeten alle conflicten opgelost worden voordat het resultaat opgeslagen kan worden? </para
+></question
+><answer
+><para
+>Voor elke gelijke of verschillende sectie onthoudt de editor in het resultaatvenster waar deze begint en eindigt. Dit is nodig omdat dan conflicten handmatig opgelost kunnen worden door op de knop van de broncode (A, B of C) te drukken. Deze informatie is opgelost bij het opslaan als tekst en het is te veel werk om een speciaal bestandsformaat te maken waarmee alle benodigde informatie opgeslagen en ingelezen kan worden. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Waarom heeft de editor in het resultaatvenster geen functie "ongedaan maken"? </para
+></question
+><answer
+><para
+>Dit was tot nu toe te veel werk. U kunt altijd een versie vanuit ene bron (A, B of C) herstellen daar op de overeenkomstige knop te klikken. Voor grote wijzigingen wordt het gebruik van een andere editor sowieso aanbevolen. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Toen ik wat tekst verwijderde, verscheen plotseling "&lt;Geen regel in de bron&gt;" en ik kon dit niet verwijderen. Wat betekent dit en hoe kan ik dit verwijderen? </para
+></question
+><answer
+><para
+>Voor elke gelijke of verschillende sectie onthoudt de editor in het resultaatvenster waar deze begint en eindigt. "&lt;Geen regel in de bron&gt;" betekent dat er niets over is in de sectie (zelfs geen regeleinde). Dit kan tijdens automatisch samenvoegen of tijdens bewerken gebeuren. Dit is geen probleem, want de aanwijzing verschijnt niet in het opgeslagen bestand. Als u de originele bron terug wilt, selecteert u de sectie (klik op de linker overzichtkolom) en klikt u op de knop van de bron met de gewenste inhoud (A, B of C). </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Waarom ondersteunt KDiff3 geen syntaxis-accentuering? </para
+></question
+><answer
+><para
+>KDiff3 gebruikt al veel kleuren voor het accentueren van verschillen. Meer accentuering zou verwarrend worden, gebruik daar een andere editor voor. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Er staat hier zo veel informatie, maar uw vraag is nog niet beantwoord? </para
+></question
+><answer
+><para
+>Stuur me uw vraag. Ik stel alle opmerkingen op prijs. </para
+></answer
+></qandaentry>
+
+</qandaset>
+</chapter>
+
+<chapter id="credits">
+
+<title
+>Dankbetuigingen en licentie</title>
+
+<para
+>&kdiff3; - Hulpmiddel voor vergelijken en samenvoegen van bestanden en mappen </para>
+<para
+>Programma copyright 2002-2005 Joachim Eibl <email
+>joachim.eibl at gmx.de</email
+> </para>
+<para
+>Diverse gave ideeën en bugrapporten van collega's en veel mensen op het Wilde Wilde Web. Bedankt! </para>
+
+<para
+>Documentatie copyright &copy; 2002-2005 Joachim Eibl <email
+>joachim.eibl at gmx.de</email
+> </para>
+
+&meld.fouten;&vertaling.sander; 
+&underFDL; &underGPL; </chapter>
+
+<appendix id="installation">
+<title
+>Installatie</title>
+
+<sect1 id="getting-kdiff3">
+<title
+>&kdiff3; verkrijgen</title>
+
+<para
+>U kunt de laatste versie van KDiff3 downloaden vanaf de webpagina <ulink url="http://kdiff3.sourceforge.net"
+>http://kdiff3.sourceforge.net</ulink
+>. </para
+><para
+>KDiff3 is ook beschikbaar vaar andere platformen. Zie de website voor details. </para>
+
+
+</sect1>
+
+<sect1 id="requirements">
+<title
+>Vereisten</title>
+
+<para
+>Om alle mogelijkheden van &kdiff3; goed te gebruiken, hebt u &kde; 
+>3.1 nodig. </para
+><para
+>Voor informatie over het draaien van KDiff3 op andere platformen zonder KDE, kijkt u op de <ulink url="http://kdiff3.sourceforge.net"
+>homepage</ulink
+>. </para
+><para
+>Een lijst met wijzigingen kunt u vinden op <ulink url="http://kdiff3.sourceforge.net/ChangeLog"
+> http://kdiff3.sourceforge.net/ChangeLog</ulink
+>of in het bestand "ChangeLog" uit het bronpakket. </para>
+</sect1>
+
+<sect1 id="compilation">
+<title
+>Compileren en installeren</title>
+
+<para
+>Om &kdiff3; op een systeem met KDE te installeren, typt u het volgende in de basismap van de &kdiff3;-distributie:</para>
+
+<screen
+><prompt
+>%</prompt
+> <userinput
+><command
+>./configure --prefix=<replaceable
+>kde-map</replaceable
+></command
+></userinput>
+<prompt
+>%</prompt
+> <userinput
+><command
+>make</command
+></userinput>
+<prompt
+>%</prompt
+> <userinput
+><command
+>make</command
+> install</userinput
+>
+</screen>
+<para
+><replaceable
+>kde-map</replaceable
+>geeft de map op uw systeem aan waarin KDE zich bevindt. Als u niet zeker bent, kijk dan in het bestand README. </para>
+<para
+>Omdat &kdiff3; <command
+>autoconf</command
+> en<command
+>automake</command
+> gebruikt, zou u geen problemen mogen hebben met compileren. Als u problemen hebt, meld die dan op de mailinglijsten van &kde;.</para>
+
+</sect1>
+
+</appendix>
+
+&documentation.index;
+</book>
+
+<!--
+Local Variables:
+mode: sgml
+sgml-minimize-attributes:nil
+sgml-general-insert-case:lower
+sgml-indent-step:0
+sgml-indent-data:nil
+End:
+
+vim:tabstop=2:shiftwidth=2:expandtab
+-->
diff --git a/doc/pt/CMakeLists.txt b/doc/pt/CMakeLists.txt
new file mode 100644 (file)
index 0000000..160a58d
--- /dev/null
@@ -0,0 +1 @@
+kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/pt SUBDIR kdiff3)
diff --git a/doc/pt/index.docbook b/doc/pt/index.docbook
new file mode 100644 (file)
index 0000000..3ea7942
--- /dev/null
@@ -0,0 +1,3004 @@
+<?xml version="1.0" ?>
+<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
+  <!ENTITY kdiff3 "<application
+>KDiff3</application
+>">
+  <!ENTITY kappname "&kdiff3;">
+  <!ENTITY package "extragear-utils">
+  <!ENTITY % addindex "IGNORE">
+  <!ENTITY % Portuguese "INCLUDE">
+]>
+
+<book lang="&language;">
+
+<!-- This header contains all of the meta-information for the document such
+as Authors, publish date, the abstract, and Keywords -->
+
+<bookinfo>
+<title
+>O Manual do &kdiff3;</title>
+
+<authorgroup>
+<author
+><firstname
+>Joachim</firstname
+> <surname
+>Eibl</surname
+> <affiliation
+><address
+> <email
+>joachim.eibl at gmx.de</email>
+</address
+></affiliation>
+</author>
+<othercredit role="translator"
+><firstname
+>José</firstname
+><surname
+>Pires</surname
+><affiliation
+><address
+><email
+>zepires@gmail.com</email
+></address
+></affiliation
+><contrib
+>Tradução</contrib
+></othercredit
+> 
+</authorgroup>
+
+<copyright>
+<year
+>2002-2007</year>
+<holder
+>Joachim Eibl</holder>
+</copyright>
+<!-- Translators: put here the copyright notice of the translation -->
+<!-- Put here the FDL notice.  Read the explanation in fdl-notice.docbook
+     and in the FDL itself on how to use it. -->
+<legalnotice
+>&FDLNotice;</legalnotice>
+
+<!-- Date and version information of the documentation
+Don't forget to include this last date and this last revision number, we
+need them for translation coordination !
+Please respect the format of the date (YYYY-MM-DD) and of the version
+(V.MM.LL), it could be used by automation scripts.
+Do NOT change these in the translation. -->
+
+<date
+>2007-31-03</date>
+<releaseinfo
+>0.9.92</releaseinfo>
+
+
+<abstract>
+<para
+>O &kdiff3; é uma ferramenta de diferenças e junção das mesmas para ficheiros e pasta que <itemizedlist>
+<listitem
+><para
+>compara e junta dois ou três ficheiros de texto ou pastas de entrada,</para
+></listitem>
+<listitem
+><para
+>mostra as diferenças linha-a-linha e carácter-a-carácter(!),</para
+></listitem>
+<listitem
+><para
+>oferece uma funcionalidade de junção automática,</para
+></listitem>
+<listitem
+><para
+>tem um editor para resolver confortavelmente os conflitos de junção,</para
+></listitem>
+<listitem
+><para
+>oferece a transparência de rede através do KIO,</para
+></listitem>
+<listitem
+><para
+>tem opções para realçar ou esconder as alterações nos espaços em branco ou comentários,</para
+></listitem>
+<listitem
+><para
+>suporta o Unicode, o UTF-8 e outras codificações de ficheiros,</para
+></listitem>
+<listitem
+><para
+>imprime as diferenças,</para
+></listitem>
+<listitem
+><para
+>suporta as palavras-chave de controlo de versões e de junção do histórico.</para
+></listitem>
+</itemizedlist>
+</para
+><para
+>Este documento descreve o &kdiff3; versão 0.9.92. </para>
+</abstract>
+
+<!-- This is a set of Keywords for indexing by search engines.
+Please at least include KDE, the KDE package it is in, the name
+ of your application, and a few relevant keywords. -->
+
+<keywordset>
+<keyword
+>KDE</keyword>
+<keyword
+>kdeextragear</keyword>
+<keyword
+>kdiff3</keyword>
+<keyword
+>diff</keyword>
+<keyword
+>juntar</keyword>
+<keyword
+>CVS</keyword>
+<keyword
+>'diff' triplo</keyword>
+<keyword
+>comparar</keyword>
+<keyword
+>ficheiros</keyword>
+<keyword
+>pastas</keyword>
+<keyword
+>controlo de versões</keyword>
+<keyword
+>junção-por-três-vias</keyword>
+<keyword
+>diferenças-nas-linhas</keyword>
+<keyword
+>sincronizar</keyword>
+<keyword
+>kpart</keyword>
+<keyword
+>kio</keyword>
+<keyword
+>transparente na rede</keyword>
+<keyword
+>editor</keyword>
+<keyword
+>espaços em branco</keyword>
+<keyword
+>comentários</keyword>
+</keywordset>
+
+</bookinfo>
+
+<chapter id="introduction"
+><title
+>Introdução</title>
+<sect1 id="why"
+><title
+>Outra Interface para o Diff?</title>
+<para
+>Existem várias ferramentas de detecção de diferenças. Porquê escolher o &kdiff3;? Deixe que o autor diga porque o escreveu. </para
+><para
+>O &kdiff3; começou porque eu tinha de fazer uma junção difícil. A junção é necessária quando várias pessoas trabalham nos mesmos ficheiros de um projecto. Uma junção poderá de alguma forma ser automatizada, quando a ferramenta de junção não só tem os novos ficheiros modificados (chamados de 'ramificações' ou 'branches'), mas também o ficheiro original (chamado de 'base'). A ferramenta de junção irá escolher automaticamente as modificações que só foram feitas numa das ramificações. Quando vários contribuintes alteram as mesmas linhas, então a  ferramenta de junção detecta um conflito que terá de ser resolvido manualmente. </para
+><para
+>"A junção foi então difícil porque um dos colaboradores alterou várias coisas e corrigiu a indentação em vários sítios. Outro também alterou bastante texto, o que resultou em vários conflitos de junção". </para
+><para
+>"A ferramenta que usei então só mostrava as linhas modificadas, mas não o que tinha sido alterado dentro dessas linhas. E não havia nenhuma informação sobre os locais em que só a indentação tinha sido alterada. A junção foi um pequeno pesadelo por isso". </para
+><para
+>"Daí, foi este o início. A primeira versão podia mostrar as diferenças dentro de uma linha e mostrava as diferenças de espaços em branco. Depois, muitas outras funcionalidades foram adicionada para aumentar a utilidade". </para
+><para
+>"Por exemplo, se você quiser comparar algum texto rapidamente, então poderá copiá-lo para a área de transferência e colá-lo noutra janela de diferenças". </para
+><para
+>"Uma funcionalidade que necessitou de um grande esforço foi a comparação de pastas e a funcionalidade de junção, o que transformou o programa quase num navegador de ficheiros completo". </para
+><para
+>Espero que o &kdiff3; funcione para si também. Divirta-se! </para
+><para
+>Joachim Eibl (2003) </para>
+</sect1>
+
+<sect1 id="screenshots"
+><title
+>Imagens e Funcionalidades</title>
+<para
+>Esta imagem mostra a diferença entre dois ficheiros de texto</para>
+<para
+>(A usar uma versão anterior do &kdiff3;):</para>
+<screenshot
+><mediaobject>
+   <imageobject
+><imagedata fileref="screenshot_diff.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+
+<para
+>A junção por 3-vias é suportada por completo. Isto é útil se duas pessoas alterarem o código independentemente. O ficheiro original (a base) é usado para ajudar o &kdiff3; a seleccionar automaticamente as alterações correctas. O editor de junções por baixo das janelas de diferenças permite-lhe resolver os conflitos, enquanto lhe mostra o resultado que você irá obter. Até poderá editar o resultado. Esta imagem mostra três ficheiros de entrada a serem reunidos: </para
+><para>
+<screenshot
+><mediaobject>
+   <imageobject
+><imagedata fileref="screenshot_merge.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+</para>
+
+<para id="dirmergebigscreenshot"
+>O &kdiff3; também o ajuda a comparar e a juntar pastas completas. Esta imagem mostra o &kdiff3; durante a junção de pastas: </para
+><para>
+<screenshot
+><mediaobject>
+   <imageobject
+><imagedata fileref="dirmergebig.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+</para>
+</sect1>
+
+<sect1 id="features"
+><title
+>Mais Funcionalidades</title>
+<sect2
+><title
+>Visualizador de Diferenças Linha-a-Linha e Carácter-a-Carácter</title>
+<para
+>Usando as possibilidades de um ambiente gráfico a cores, o &kdiff3; mostra exactamente o que é a diferença. Quando tiver de fazer várias revisões de código, irá gostar disto. </para>
+<screenshot
+><mediaobject>
+   <imageobject
+><imagedata fileref="letter_by_letter.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+</sect2>
+
+<sect2
+><title
+>Ver as Diferenças de Espaços em Branco de uma Vez</title>
+<para
+>Os espaços e as tabulações que são diferentes aparecem visivelmente. Quando as linhas diferem apenas pelo número de espaços em branco, isto poderá ser visto num instante se olhar para a coluna do resumo do lado esquerdo. (Não há mais problemas quando as pessoas mudam a indentação). </para>
+<screenshot
+><mediaobject>
+   <imageobject
+><imagedata fileref="white_space.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+</sect2>
+
+<sect2
+><title
+>Diferenças Triplas</title>
+<para
+>Analise três ficheiros e veja no que eles diferem. </para
+><para
+>As janelas da esquerda/meio/direita são intituladas A/B/C e têm as cores azul/verde/magenta, respectivamente. </para
+><para
+>Se um dos ficheiros for igual e o outro for diferente numa linha, então a cor mostra qual o ficheiro que é diferente. A cor vermelha indica que ambos os ficheiros são diferentes. </para>
+<screenshot
+><mediaobject>
+   <imageobject
+><imagedata fileref="triple_diff.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+</sect2>
+
+<sect2
+><title
+>Junção Confortável de Dois ou Três Ficheiros de Entrada</title>
+<para
+>O &kdiff3; pode ser usado para juntar dois ou três ficheiros de entrada e junta automaticamente o máximo possível. O resultado é apresentado numa janela editável em que a maioria dos conflitos poderá ser resolvida com um simples 'click' do rato: Seleccione os botões A/B/C na barra de botões para seleccionar a origem que deverá ser usada. Dado que esta janela de resultado é um editor, até mesmo os conflitos que necessitem de mais correcções poderão ser resolvidos aqui sem necessitarem de outra ferramenta. </para>
+</sect2>
+
+<sect2
+><title
+>E ...</title>
+<itemizedlist>
+   <listitem
+><para
+>Navegação rápida através de botões.</para
+></listitem>
+   <listitem
+><para
+>Um 'click' do rato numa coluna de resumo sincroniza todas as janelas para mostrarem a mesma posição.</para
+></listitem>
+   <listitem
+><para
+>Seleccionar e copiar de qualquer janela para colar na janela do resultado da junção.</para
+></listitem>
+   <listitem
+><para
+>Uma coluna de visão geral que mostra onde estão as alterações e os conflitos.</para
+></listitem>
+   <listitem
+><para
+>As cores são ajustáveis de acordo com as suas preferências específicas.</para
+></listitem>
+   <listitem
+><para
+>Um tamanho de tabulação ajustável.</para
+></listitem>
+   <listitem
+><para
+>Uma opção para inserir espaço em vez de tabulações.</para
+></listitem>
+   <listitem
+><para
+>Abertura confortável dos ficheiros através de uma janela ou da linha de comandos.</para
+></listitem>
+   <listitem
+><para
+>Procurar por sequências de texto em todas as janelas de texto. Procurar (Ctrl-F) e Procurar o Seguinte (F3).</para
+></listitem>
+   <listitem
+><para
+>Mostrar os números de linha para cada linha. </para
+></listitem>
+   <listitem
+><para
+>Colar o conteúdo da área de transferência e arrastar o texto para uma janela de introdução de diferenças.</para
+></listitem>
+   <listitem
+><para
+>Transparência na rede através do KIO.</para
+></listitem>
+   <listitem
+><para
+>Pode ser usado como visualizador de diferenças no KDevelop 3.</para
+></listitem>
+   <listitem
+><para
+>Mudança de linha para as linhas compridas para as repartir.</para
+></listitem>
+   <listitem
+><para
+>Suporte para o Unicode, UTF-8 e outras codificações.</para
+></listitem>
+   <listitem
+><para
+>Suporte para as línguas escritas da direita-para-esquerda.</para
+></listitem>
+   <listitem
+><para
+>...</para
+></listitem>
+</itemizedlist>
+</sect2>
+</sect1>
+</chapter>
+
+<chapter id="documentation"
+><title
+>Comparação e Junção de Ficheiros</title>
+
+<sect1 id="commandline"
+><title
+>Opções da Linha de Comandos</title>
+
+<sect2
+><title
+>Comparar 2 ficheiros: </title>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>ficheiro1 ficheiro2</replaceable
+>
+</screen>
+</sect2>
+
+<sect2
+><title
+>Juntar 2 ficheiros: </title>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>ficheiro1 ficheiro2</replaceable
+> <option
+>-m</option>
+<command
+>kdiff3</command
+> <replaceable
+>ficheiro1 ficheiro2</replaceable
+> <option
+>-o</option
+> <replaceable
+>resultado</replaceable
+>
+</screen>
+</sect2>
+
+<sect2
+><title
+>Comparar 3 ficheiros: </title>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>ficheiro1 ficheiro2 ficheiro3</replaceable
+>
+</screen>
+</sect2>
+
+<sect2
+><title
+>Juntar 3 ficheiros: </title>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>ficheiro1 ficheiro2 ficheiro3</replaceable
+> <option
+>-m</option>
+<command
+>kdiff3</command
+> <replaceable
+>ficheiro1 ficheiro2 ficheiro3</replaceable
+> <option
+>-o</option
+> <replaceable
+>resultado</replaceable
+>
+</screen>
+<para
+>Repare que o <replaceable
+>ficheiro1</replaceable
+> será tratado como base para o <replaceable
+>ficheiro2</replaceable
+> e o <replaceable
+>ficheiro3</replaceable
+>. </para>
+</sect2>
+
+<sect2
+><title
+>Caso especial: Ficheiros com o mesmo nome </title>
+<para
+>Se todos os ficheiros tiverem o mesmo nome mas estiverem em pastas diferentes, poderá reduzir o trabalho de escrita se indicar apenas o nome do ficheiro para o primeiro parâmetro. P.ex.: </para>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>pasta1/ficheiro pasta2 pasta3</replaceable
+>
+</screen>
+</sect2>
+
+<sect2
+><title
+>Linha de comandos para iniciar uma comparação ou junção de pastas: </title>
+<para
+>É bastante semelhante, mas diz respeito agora apenas às pastas.</para>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>pasta1 pasta2</replaceable>
+<command
+>kdiff3</command
+> <replaceable
+>pasta1 pasta2</replaceable
+> <option
+>-o</option
+> <replaceable
+>destino</replaceable>
+<command
+>kdiff3</command
+> <replaceable
+>pasta1 pasta2 pasta3</replaceable>
+<command
+>kdiff3</command
+> <replaceable
+>pasta1 pasta2 pasta3</replaceable
+> <option
+>-o</option
+> <replaceable
+>destino</replaceable
+>
+</screen>
+<para
+>Para a comparação e junção de pastas, poderá continuar a ler <link linkend="dirmerge"
+>aqui</link
+>.</para>
+</sect2>
+
+<sect2
+><title
+>Outras opções da linha de comandos</title>
+<para
+>Para mais informações sobre as opções da linha de comandos use</para>
+<screen
+><command
+>kdiff3</command
+> --help
+</screen>
+<para
+>Exemplo do resultado:</para>
+<screen
+><command
+>kdiff3</command
+> --help
+Opções:
+  -m, --merge               Junta o resultado.
+  -b, --base ficheiro       Ficheiro de base explícito. Para compatibilidade com certas ferramentas.
+  -o, --output ficheiro     Ficheiro de resultado. O -m é implícito. P.ex.: -o novo_ficheiro.txt
+  --out ficheiro            O ficheiro de resultado, mais uma vez. (Para compatibilidade com certas ferramentas.)
+  --auto                    Sem interface gráfica se todos os conflitos são resolúveis. (Necessita do -o)
+  --qall                    Não resolve os conflitos automaticamente. (Para compatibilidade...)
+  --L1 nome1                Substituto visível do nome do ficheiro 1 (base).
+  --L2 nome2                Substituto visível do nome do ficheiro 2.
+  --L3 nome3                Substituto visível do nome do ficheiro 3.
+  -L, --fname nome          Um substituto visível alternativo para o nome. Use este uma vez para cada ficheiro de entrada.
+  --cs texto               Substitui uma opção de configuração. Use uma vez para cada opção. P.ex. --cs "AutoAdvance=1"
+  --confighelp              Mostra uma lista com as opções de configuração e os valores actuais.
+  --config ficheiro         Usa um ficheiro de configuração diferente.
+</screen>
+<para
+>A opção <option
+>--cs</option
+> permite-lhe ajustar um valor de configuração que, de outro modo, só é ajustável através das janelas de configuração. Mas tenha em mente que, quando o &kdiff3; então terminar, o valor alterado será gravado com as outras opções. Com o <option
+>--confighelp</option
+>, poderá descobrir os nomes dos itens disponíveis e dos valores actuais.</para>
+<para
+>Através do <option
+>--config</option
+>, poderá indicar um ficheiro de configuração diferente. Quando usar frequentemente o &kdiff3; com opções completamente diferentes, isto permitir-lhe-á mudar rapidamente entre elas.</para>
+</sect2>
+<sect2
+><title
+>Ignorar as opções da linha de comandos</title>
+<para
+>Muitas pessoas querem usar o &kdiff3; com alguns sistemas de controlos de versões. Mas quando esse sistema de controlo de versões chama o &kdiff3;, usando os parâmetros da linha de comandos que o &kdiff3; não reconhece, então o &kdiff3; termina com um erro. A configuração da integração permite indicar parâmetros da linha de comandos que deverão ser ignorados pelo &kdiff3;. Eles irão aparecer na ajuda de utilização, como neste exemplo:</para>
+<screen
+>--<replaceable
+>xpto</replaceable
+>                     Ignorado. (Definido pelo utilizador.)
+</screen>
+<variablelist>
+  <varlistentry
+><term
+><emphasis
+>Opções da linha de comandos a ignorar:</emphasis
+></term
+><listitem
+><para
+>Uma lista de opções, separadas pelo ponto-e-vírgula ';'. Quando alguma destas opções aparecer na linha de comandos, então o &kdiff3; ignorá-la-á e irá executar sem indicar qualquer erro. (Por omissão é "u;query;html;abort").</para
+></listitem
+></varlistentry>
+</variablelist>
+<para
+>Quando isto não for suficiente, então recomenda-se que crie um programa que faça a tradução das opções.</para>
+</sect2>
+
+</sect1>
+
+<sect1 id="opendialog"
+><title
+>Janela de Abertura</title>
+<para
+>Dado que é necessário seleccionar vários ficheiros, o programa tem uma janela de abertura especial: </para>
+<screenshot
+><mediaobject>
+<imageobject
+><imagedata fileref="open_dialog.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+<para
+>A janela de abertura permite editar os nomes dos ficheiros à mão, seleccionando um ficheiro através do navegador dos ficheiros ("Ficheiro...") ou permite escolher os ficheiros recentes a partir das listas respectivas. Se abrir a janela de novo, então os nomes actuais irão nela permanecer. O terceiro ficheiro de entrada não é obrigatório. Se o item do "C" continuar em branco, então só será efectuada uma análise de diferenças com dois ficheiros. </para
+><para
+>Poderá também seleccionar uma pasta com o "Dir...". Se for indicado como A uma pasta, então será iniciada uma comparação/junção de pastas. Se o A se referir a um ficheiro, mas o B, o C ou o destino corresponderem a pastas, então o &kdiff3; usa o nome do ficheiro em A nas pastas indicadas. </para
+><para
+>Se a "Junção" estiver seleccionada, então o campo "Resultado" fica editável. Mas não é obrigatório indicar o nome do ficheiro do resultado imediatamente. Você poderá também adiar isto até à gravação. </para
+><para
+>O botão "Configurar..." abre a janela de opções, para que possa definir as opções antes de executar a análise. </para>
+</sect1>
+
+<sect1 id="pasteinput"
+><title
+>Colar e Arrastar Dados</title>
+<para
+>Em algumas ocasiões, você poderá querer comparar partes de um texto que não está em nenhum ficheiro próprio. O &kdiff3; também lhe permite colar texto da área de transferência para a janela de introdução de diferenças que esteja em primeiro plano. A análise de diferenças irá ocorrer então. Na janela de abertura, você não irá necessitar de indicar ficheiros, fechando-a então com o "Cancelar". </para
+><para
+>O utilizador também poderá usar o 'drag and drop': Arraste um ficheiro de um gestor de ficheiros ou o texto seleccionado de um editor e arrastá-lo para uma janela de introdução de diferenças. </para
+><para
+>Qual é a ideia? Algumas vezes um ficheiro contém duas funções semelhantes, mas a verificação sobre as semelhanças entre elas é um grande esforço, se você precisar de criar primeiro dois ficheiros e depois carregá-los. Assim, poderá simplesmente copiar, colar e comparar as secções relevantes. </para
+><para
+>Nota: De momento, você não poderá arrastar nada a partir do &kdiff3;. Só é permitido largar dados nas janelas de introdução de diferenças. </para
+><para
+>Atenção: Alguns editores ainda interpretam à mesma o 'drag and drop' noutro programa como o Cortar (em vez do Copiar) e Colar. Os seus dados originais poderão deste modo perder-se. </para>
+</sect1>
+
+<sect1 id="interpretinginformation"
+><title
+>Comparar os Ficheiros e Interpretar a Informação nas Janelas de Entrada</title>
+<screenshot
+><mediaobject>
+<imageobject
+><imagedata fileref="screenshot_diff.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+<sect2
+><title
+>Linha de Informação</title
+><para
+>No cimo de cada janela de texto existe a sua "linha de informação". As linhas de informação das janelas de introdução de diferenças contêm uma letra "A", "B" ou "C", o nome do ficheiro e o número da primeira linha visível da janela. (Lembre-se que a janela "C" é opcional). Cada linha de informação aparece com uma cor diferente. (Se as localizações forem demasiado extensas para caberem, poderá mover o cursor do rato para cima da linha de informação, de modo a que apareça uma dica com o nome completo). </para
+><para
+>Quando tiver seleccionado outro ficheiro através de navegação ou acabar de editar o nome do ficheiro aqui, carregando para tal em Enter, o novo ficheiro será carregado e comparado com os ficheiros já carregados previamente. </para
+></sect2
+><sect2
+><title
+>Coloração</title
+><para
+>As três janelas de entrada têm atribuídas as letras "A", "B" e "C". O "A" tem uma cor azul, o "B" tem uma verde e o "C" magenta. (Estas são as cores por omissão, mas podem ser alteradas no menu de configuração). </para
+><para
+>Quando é detectada uma diferença, então a cor mostra qual o ficheiro de entrada que é diferente. Quando os outros ficheiros de entrada diferem todos, então a cor usada para exprimir isto é a vermelha por omissão ("Cor do conflito" na Configuração). Este esquema de cores é particularmente útil no caso de três ficheiros de entrada, os quais serão vistos na próxima secção (<link linkend="merging"
+>Juntar</link
+>). </para
+></sect2
+><sect2
+><title
+>Coluna de Resumo</title
+><para
+>À esquerda de cada texto está a "coluna de resumo". Se ocorrerem diferenças numa linha, então a coluna do resumo mostra a cor respectiva. Para uma diferença por espaços em branco, o resumo fica axadrezado. Para as linguagens de programação em que os espaços em branco não são muito importantes, isto é útil para ver de um modo geral se existe algo de importante modificado. (No C/C++, os espaços em branco só são importantes dentro de cadeias de caracteres, comentários, pré-processador e em algumas outras situações esotéricas. </para
+><para
+>A linha vertical que separa a coluna do resumo e o texto é interrompida (tracejada), se o ficheiro de entrada não tiver aí nenhuma linha. Quando a mudança de linha estiver activa, então esta linha vertical aparece ponteada para as linhas repartidas. </para
+></sect2
+><sect2
+><title
+>Coluna de Resumo</title
+><para
+>Do lado direito, aparece uma coluna de "resumo" à esquerda da barra de posicionamento vertical. Ela mostra a coluna de resumo comprimida dos dados de "A". Todas as diferenças e conflitos ficam visíveis numa vista rápida. Quando só são usadas duas janelas de entrada, então todas as diferenças aparecem a vermelho, dado que cada diferença é também um conflito. Um rectângulo preto delimita a parte visível dos dados de entrada. Para as linhas de dados bastante compridas, quando o número de linhas de dados é maior do que a altura da coluna de resumo em pixels, então várias linhas de dados de entrada irão partilhar uma linha de resumo. Um conflito, neste caso, terá então uma prioridade elevada sobre as diferenças simples, que por sua vez têm prioridade sobre a ausência de alterações, como tal não se perde nenhuma diferença ou conflito neste caso. Se carregar nesta coluna de resumo, será mostrado o texto correspondente. </para
+></sect2
+><sect2 id="manualdiffhelp"
+><title
+>Alinhar Manualmente as Linhas</title
+><para
+>Em alguns casos, o algoritmo coloca as linhas erradas a seguir umas às outras. Ou se deseja comparar um pedaço de texto com outro que se encontra numa posição completamente diferente no outro ficheiro. Para esses casos, poderá indicar manualmente ao &kdiff3; para alinhar certas linhas. Marque o texto, com o qual deseja melhorar o alinhamento, com o rato como faria na cópia e colagem na primeira janela de diferenças e escolhe então o "Adicionar o Alinhamento Manual das Diferenças" na janela de "Diferenças" (atalho de teclado "Ctrl-Y") . Irá aparecer uma barra laranja na coluna do resumo, a seguir ao texto escolhido. Repita isto para a segunda e (se disponível) a terceira janela de diferenças. O &kdiff3; irá calcular imediatamente de novo as diferenças sempre que fizer isto, alinhando as linhas escolhidas. Obviamente, algumas das linhas anteriormente correspondentes poderão não corresponder mais de novo. </para
+><para
+>De momento, a junção não suporta a utilização da ajuda de diferenças manual. </para
+></sect2
+><sect2 id="joinsplitsections"
+><title
+>Juntar e Dividir Manualmente Secções de Diferenças</title
+><para
+>Em alguns casos, o &kdiff3; irá ver secções de diferenças a mais ou a menos para a junção. Nesse caso, poderá juntar ou dividir as secções existentes. </para
+><para
+>Adicione secções novas, seleccionando primeiro o texto nas linhas que pertencem em conjunto a qualquer uma das janelas de entrada (como acontece na cópia para a área de transferência). Depois, seleccione a opção "Dividir a Diferença na Selecção", do menu "Juntar". Serão adicionadas divisões antes da primeira linha e depois da última linha do texto seleccionado. Se só quiser adicionar uma secção, então seleccione o texto que começa noutra divisão de secção. </para
+><para
+>Para juntar as secções, seleccione algo nas linhas das secções a juntar, em qualquer uma das janelas de entrada. (Poderá também juntar diversas secções de uma vez). Depois, escolha "Juntar as diferenças seleccionadas" do menu "Juntar". </para
+></sect2>
+</sect1>
+
+
+<sect1 id="merging"
+><title
+>Juntar e a Janela do Editor do Resultado da Junção</title>
+<screenshot
+><mediaobject>
+<imageobject
+><imagedata fileref="screenshot_merge.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+<para
+>A janela do editor do resultado da junção (por baixo das janelas de introdução de diferenças) também tem uma linha de informação no topo que mostra "Resultado:", o nome do ficheiro e "[Modificado]" se você tiver alterado alguma coisa. Normalmente irá conter algum texto resultante das funcionalidades de junção automática, mas frequentemente irá conter também conflitos. </para
+><para
+>A gravação está desactivada até que todos os conflitos estejam resolvidos. (Use os botões para "Ir para o Conflito por Resolver Anterior/Seguinte" para descobrir os conflitos que faltam.) </para
+><para
+>Com apenas dois ficheiros de entrada, todas as diferenças são também conflitos que necessitam de ser resolvidos manualmente. </para
+><para
+>Com três ficheiros de entrada, o primeiro ficheiro é tratado como a base, enquanto que o segundo e o terceiro contêm as modificações. Quando, em qualquer linha, só o ficheiro B ou o C tiverem sido alterados mas não ambos, então será seleccionada a origem alterada. Só quando o B e o C alteraram as mesmas linhas é que a ferramenta detecta um conflito que deverá ser resolvido manualmente. Quando o B e o C são iguais mas não são o mesmo que o A, é seleccionado o C. </para
+><sect2
+><title
+>A Coluna de Resumo</title
+><para
+>A janela do editor do resultado da junção também tem uma coluna de resumo à esquerda. Mostra a letra do ficheiro de entrada para o qual foi seleccionada a linha ou nada, se todas as três origens são iguais nessa linha. Para os conflitos, ela mostra um ponto de interrogação "?" e a linha mostra "&lt;Conflito na Junção&gt;", tudo a vermelho. Dado que a resolução de conflitos linha a linha poderá levar bastante tempo, as linhas são reunidas em grupos com as mesmas características de diferenças e conflitos. Mas os conflitos só com espaços em branco são separados dos outros conflitos para facilitar a junção dos ficheiros em que a indentação foi alterada em várias linhas. </para
+></sect2
+><sect2 id="synchronise_views"
+><title
+>Configurar o Grupo Actual e Sincronizar a Posição de Visualização da Junção e Diferenças</title
+><para
+>Ao carregar na coluna do resumo com o &LMB; em ambas as janelas, o grupo que pertença a essa linha será seleccionado em todas as janelas e o início desse grupo será mostrado. (Isto poderá envolver um salto de posição automático para a janelas se o início do grupo não estiver visível). Este grupo fica então o "grupo actual". Fica realçado com a "Cor de fundo do intervalo actual" e aparece uma barra preta do lado esquerdo do texto. </para
+></sect2
+><sect2
+><title
+>Escolher as Entras A, B ou C para os Conflitos e Edições Actuais</title
+><para
+>A barra de botões por baixo do menu contém três botões de selecção que contêm as letras "A", "B" e "C". Carregue no selector de entrada para inserir (ou remover se já estiver inserido) as linhas da origem respectiva. Para escolher as linhas de várias entradas, carregue nos botões respectivos pela ordem necessária. Por exemplo, se quiser que as linhas de "B" apareçam antes das linhas de "A" no resultado, carregue primeiro em "B" e depois em "A". </para
+><para
+>Se usar a opção de avanço automático (<link linkend="autoadvance"
+>"Ir automaticamente para o próximo conflito não resolvido após a selecção da fonte"</link
+>), deverá desactivar isto antes de escolher as linhas de várias entradas ou se quiser editar as linhas após a sua escolha. Caso contrário, o &kdiff3; irá saltar para o próximo conflito após a selecção da primeira entrada. </para
+><para
+>Normalmente é útil editar directamente o resultado da junção. A coluna de resumo irá mostrar "m" por cada linha modificada manualmente. Quando, por exemplo, as diferenças estão alinhadas de forma que não seja satisfatório escolher simplesmente as entradas, então poderá marcar o texto necessário e usar a <link linkend="selections"
+>cópia e colagem</link
+> normais para colocar no resultado da junção. </para
+><para
+>Algumas das vezes, quando uma linha é removida tanto por junção automática como por edição e não ficam mais nenhumas linhas nesse grupo, então o texto "&lt;Sem linha de origem&gt;" irá aparecer nessa linha. Isto é apenas um substituto para o grupo, quando decidir mudar de ideias e seleccionar algum texto de origem de novo. Este texto não irá aparecer no ficheiro gravado ou em qualquer selecção que deseje copiar e colar. </para
+><para
+>O texto "&lt;Conflito na Junção&gt;" irá aparecer na área de transferência se copiar e colar algum texto que tenha uma dessas linhas. Mas tenha à mesma cuidado ao fazê-lo. </para
+></sect2
+><sect2
+><title
+>Escolher a Entrada A, B ou C para Todos os Conflitos</title
+><para
+>A junção normal irá começar por resolver os conflitos simples automaticamente. Mas o menu "Juntar" oferece algumas acções para outros usos comuns. Se você tiver de seleccionar a mesma origem para a maioria dos conflitos, então poderá escolher "A", "B" ou "C" em qualquer lado ou apenas para os conflitos que continuem ainda por resolver ou então para os conflitos de espaços em branco por resolver. Se quiser decidir cada um dos deltas por si próprio, poderá "Passar os deltas para conflitos". Ou, se preferir voltar às escolhas automáticas do &kdiff3;, seleccione então a opção "Resolver automaticamente os conflitos simples". Nesse caso, o &kdiff3; irá reiniciar a junção. Para as acções que alteram as suas modificações anteriores, o &kdiff3; pedir-lhe-á uma confirmação antes de prosseguir. </para
+><para
+>Nota: Ao escolher uma das origens para os conflitos que não sejam de espaços em branco e as opções "Ignorar os Números" ou "Ignorar os Comentários de C/C++" forem usadas, então as alterações nos números ou comentários serão tratadas como espaços em branco também. </para
+></sect2
+><sect2 id="vcskeywordsmergesupport"
+><title
+>Junção Automática das Palavras-Chave e do Histórico do Controlo de Versões (Registo)</title
+><para
+>Muitos sistemas de controlo de versões suportam palavras-chave especiais no ficheiro. (p.ex. "&#36;Date: 2006-03-31 15:21:46 +0100 (Sex, 31 Mar 2006) &#36;", "&#36;Header&#36;", "&#36;Author: scripty &#36;", "&#36;Log&#36;" etc.) Durante o envio de novas versões, o sistema de controlo de versões (SCV) muda essas linhas. Por exemplo, o "&#36;Date: 2006-03-31 15:21:46 +0100 (Sex, 31 Mar 2006) &#36;" passará a "&#36;Date: 2006-03-30 17:52:41 +0200 (Thu, 30 Mar 2006) &#36;". Dado que esta linha será diferente em cada versão do ficheiro, iria necessitar de intervenção manual durante a junção. </para
+><para
+>O &kdiff3; oferece a junção automática destes itens. Para as linhas simples que correspondam à opção da "Expressão regular da junção automática" para todos os ficheiros de entrada, o &kdiff3; irá escolher a linha do B ou - se disponível - do C. (Para além disso, é necessário que as linhas em questão se alinhem na comparação e a linha anterior não contenha conflitos). Esta junção automática pode tanto correr automaticamente após o início de uma junção (active a opção "Executar a junção automática da expressão regular no início da junção") como posteriormente, através do menu de junção "Executar a Junção Automática da Expressão Regular". </para
+><para
+>A junção automática para o histórico do controlo de versões (também chamado de "registo") é também suportada. A junção automática do histórico tanto poderá correr automaticamente quando iniciar a junção, activando para tal a opção "Juntar o histórico do controlo de versões no início da junção" ou mais tarde através do menu de junção "Resolver Automaticamente os Conflitos do Histórico". </para
+><para
+>Normalmente, o histórico do controlo de versões começa por uma linha que contém a palavra-chave "&#36;Log&#36;". Isto deverá corresponder à opção "Expressão regular do início do histórico". O &kdiff3; detecta quais as linhas subsequentes no histórico, analisando os caracteres iniciais que aparecem antes da palavra-chave "&#36;Log&#36;". Se também aparecer o mesmo "comentário inicial" nas linhas seguintes, então estas também serão incluídas no histórico. </para
+><para
+>Durante o envio de cada nova versão, o SCV grava uma linha única que indica a versão, a data e a hora, seguida de linhas com os comentários dos utilizadores. Essas linhas formam um item de histórico. Esta secção do histórico vai crescendo com o envio de versões novas e os itens mais recentes aparecem no topo (a seguir à linha inicial do histórico). </para
+><para
+>Quando, em desenvolvimentos paralelos, dois ou mais programadores enviam versões em ramificações diferentes, o histórico da junção irá conter vários itens que aparecem como conflitos na junção das ramificações. Dado que a junção destes se poderá tornar demasiado aborrecidas, o &kdiff3; oferece o suporte com duas estratégias possíveis: basta introduzir a informação de histórico de ambas as contribuições no topo ou ordenar a informação de histórico do utilizador, usando uma chave definida pelo mesmo. </para
+><para
+>O método basta-inserir-todos-os-itens é mais fácil de configurar. O &kdiff3; só precisa de um método para detectar as linhas que pertencem a um item de histórico. A maioria dos SCV inserem uma linha em branco, após cada item do histórico. Se não existirem mais linhas em branco, então este será um critério suficiente para o &kdiff3;. Basta introduzir uma "Expressão regular do início do item de histórico" em branco. Se o critério da linha vazia não for suficiente, poderá indicar uma expressão regular para detectar o início do item do histórico. </para
+><para
+>Lembre-se que o &kdiff3; irá remover os itens de histórico duplicados. Se um item de histórico aparecia várias vezes no histórico de um ficheiro de entra, só um irá aparecer no resultado. </para
+><para
+>Se quiser ordenar o histórico, então terá de indicar como deverá ser gerada a chave de ordenação. Use parêntesis na "Expressão regular do início do item de histórico" para agrupar as partes da expressão regular que deverão mais tarde ser usadas na chave de ordenação. Indique depois a "Ordem da chave de ordenação do início do item de histórico", indicando para tal uma lista de números separados por ",", referentes à posição do grupo na expressão regular. </para
+><para
+>Dado que isto não é tão simples de pôr a funcionar logo, poderá testar e melhorar as expressões regulares e gerar as chaves, numa janela dedicada, se carregar no botão "Testar as suas expressões regulares". </para
+><para
+>Exemplo: Assuma um histórico que se pareça ao seguinte: <screen>
+/**************************************************************************
+** HISTORY:    &#36;Log: \janela_do_ze\Aplicacao\src\algoritmo-complexo.cpp &#36;
+**
+**     \principal\ramo_integracao_12   2 Abr 2001 10:45:41   ze
+**  Juntou-se a ramificação manel_versao_15.
+**
+**     \principal\ramo_correccao_erros_7\1   30 Mar 2001 19:22:05   pedro
+**  Melhorias na velocidade da sub-rotina convertToMesh().
+**  Correcção do estoiro.
+**************************************************************************/
+</screen
+> A linha inicial do histórico corresponde à expressão regular ".*\&#36;Log.*\&#36;.*". Depois, seguem-se os itens de histórico. </para
+><para
+>A linha com a palavra-chave "&#36;Log&#36;" começa com dois "*", após os quais se segue um espaço. O &kdiff3; usa o primeiro texto não-branco como "comentários iniciais" e assume que o histórico termina na primeira linha sem esse comentário inicial. Neste exemplo, a última linha termina com um texto que também começa por dois "*" mas, em vez de um espaço, seguem-se mais "*". Como tal, esta linha termina o histórico. </para
+><para
+>Se a ordenação do histórico não for necessária, então a expressão regular do início de linha do item de histórico poderá ser algo como se segue. (Esta linha está dividida em dois, por não caber de outra forma.) <screen>
+\s*\\principal\\\S+\s+[0-9]+ (Jan|Fev|Mar|Abr|Mai|Jun|Jul|Ago|Set|Out|Nov|Dez)
+ [0-9][0-9][0-9][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9]\s+.*
+</screen
+> Para mais detalhes sobre as expressões regulares, veja por favor a <ulink url="http://doc.trolltech.com/3.3/qregexp.html#details"
+>documentação da Trolltech sobre expressões regulares</ulink
+>. Repare que o "\s" (com o "s" minúsculo) corresponde a qualquer espaço em branco e o "\S" (com o "S" maiúsculo) corresponde a qualquer carácter não-branco. No nosso exemplo, o início do item de histórico, contém primeiro a informação da versão com a expressão regular "\\principal\\\S+", a data consiste no dia "[0-9]+", mês "(Jan|Fev|Mar|Abr|Mai|Jun|Jul|Ago|Set|Out|Nov|Dez)" e no ano "[0-9][0-9][0-9][0-9]", a hora "[0-9][0-9]:[0-9][0-9]:[0-9][0-9]" e, finalmente, o nomes do programador ".*". </para
+><para
+>Repare nos caracteres do "comentário inicial" (no exemplo "**"), que terão já sido removidos pelo &kdiff3; antes de tentar a junção; como tal, a expressão regular começa com uma correspondência a zero ou mais espaços em branco "\s*". Dado que os caracteres de comentários poderão ser diferentes para cada ficheiro (p.ex., o C/C++ usa caracteres de comentários diferentes de um programa em Perl), o &kdiff3; toma conta dos caracteres de comentário iniciais e você não os deverá definir na expressão regular. </para
+><para
+>Se precisar de um histórico ordenado, então deverá ser calculada a chave de ordenação. Para tal, as partes relevantes da expressão regular deverão ser agrupadas entre parêntesis. (os parêntesis extra poderão ficar à mesma, mesmo que a ordenação do histórico esteja desactivada.) <screen>
+\s*\\principal\\(\S+)\s+([0-9]+) (Jan|Fev|Mar|Abr|Mai|Jun|Jul|Ago|Set|Out|Nov|Dez)
+ ([0-9][0-9][0-9][0-9]) ([0-9][0-9]:[0-9][0-9]:[0-9][0-9])\s+(.*)
+</screen
+> Os parêntesis contêm agora 1. a informação de versão, 2. dia, 3. mês, 4. ano, 5. hora, 6. nome. Mas, se pretender ordenar por data e hora, é necessário construir uma chave com os elementos por uma ordem de aparência diferente: Primeiro o ano, seguido do mês, dia, hora, informação de versão e nome. Daí, a ordem da chave de ordenação será "4,3,2,5,1,6". </para
+><para
+>Dado que os nomes dos meses não são bons para ordenar (o "Abr" viria em primeiro lugar), o &kdiff3; detecta em que ordem os nomes dos meses foram dados e usa esse número em alternativa ("Abr"->"04"). E, se for encontrado um número puro, será transformado num valor de 4 algarismos com zeros iniciais para ordenar. Finalmente, a chave de ordenação resultante da linha inicial do primeiro item de histórico será: <screen
+>2001 04 0002 10:45:41 ramo_integracao_12   ze 
+</screen>
+</para
+><para
+>Para mais informações, veja também a <link linkend="mergeoptions"
+>Opções de Junção</link
+>. </para>
+</sect2>
+</sect1>
+
+<sect1 id="navigation"
+><title
+>Navegação e Edição</title>
+<para
+>Muita da navegação será feita com as barras de posicionamento e com o rato, mas você poderá também navegar com as teclas. Se carregar numa das janelas, então poderá usar as teclas de cursores, o Page Up, o Page Down, o Home, o End, o Ctrl-Home ou o Ctrl-End como iria usar noutros programas. A coluna de resumo ao lado da barra de posicionamento vertical dos ficheiros de entrada poderá também ser usada para navegar se carregar nela. </para
+><para
+>Poderá também usar a roda do rato para subir ou descer. </para
+><para
+>No editor do resultado da junção, poderá também usar as outras teclas para editar. Poderá alternar entre o modo de inserção ou sobreposição com a tecla Insert. (Por omissão, está no modo de inserção). </para
+><para
+>Um 'click' com o botão esquerdo do rato em qualquer coluna de resumo irá sincronizar todas as janelas para mostrar o início do mesmo grupo de linhas (tal como é explicado em <link linkend="synchronise_views"
+>Configurar o Grupo Actual e Sincronizar a Posição da Janela de Junção e Diferença</link
+>). </para
+><para
+>A barra de botões também contém sete botões de navegação com os quais poderá saltar para a primeira/última/actual diferença, para a diferença seguinte/anterior  (Ctrl-Baixo/Ctrl-Cima), para o conflito seguinte/anterior (Ctrl-Pg Down/Ctrl-Pg Up) ou para o conflito seguinte/anterior por resolver. Repare que, para o &kdiff3;, um "conflito" que não foi resolvido automaticamente no início da junção irá permanecer como "conflito", mesmo que resolvido. Daí a necessidade de distinguir os "conflitos por resolver". </para>
+<sect2 id="autoadvance"
+><title
+>Avanço Automático</title>
+<para
+>Existe também um botão "Ir automaticamente para o próximo conflito por resolver após a selecção do código" (Avanço Automático). Se activar esta opção, então sempre que seleccionar uma origem, o &kdiff3; irá saltar para o próximo conflito por resolver automaticamente. Isto poderá ajudar quando quiser sempre escolher apenas uma origem. Quando precisar de ambas as origens, ou se quiser editar depois de seleccionar, então provavelmente irá querer desligar esta opção. Antes de prosseguir para o próximo conflito por resolver, o &kdiff3; mostra-lhe o efeito da sua escolha durante algum tempo. Este atraso é ajustável na Configuração da Diferença &amp; Junção: Poderá indicar o "Atraso no avanço automático" num valor entre 0 e 2 000 milisegundos. Sugestão: Cansado de muitos 'clicks'? - Use um atraso de avanço automático reduzido e os atalhos Ctrl-1/2/3 para seleccionar o A/B/C em muitos conflitos. </para>
+</sect2>
+</sect1>
+
+<sect1 id="selections"
+><title
+>Seleccionar, Copiar e Colar</title>
+<para
+>As janelas de entrada não mostram nenhum cursor, como tal as selecções necessitam de ser feitas com o rato, ao carregar com o botão esquerdo do rato no início, mantendo o botão do rato carregado e indo até ao fim, momento em que larga o botão do rato de novo. Poderá também seleccionar uma palavra se fizer duplo-click nela. No editor do resultado da junção poderá também seleccionar com o teclado se mantiver a tecla Shift carregada enquanto navega com as teclas de cursores. </para
+><para
+>Se a selecção ultrapassar o intervalo visível, você poderá passar o rato por cima dos extremos da janela, o que fará com que o &kdiff3; se desloque nessa direcção. </para
+><para
+>Para as selecções muito grandes, poderá também usar as teclas de navegação, enquanto mantém pressionado o rato. P. ex., use o Page Up e o Page Down para ir rapidamente para uma dada posição. Na posição final, largue o botão do rato. </para
+><para
+>Para seleccionar tudo na janela actual, use a opção do menu "Editar"->"Seleccionar Tudo" (Ctrl-A). </para
+><para
+>Para copiar para a área de transferência, precisa de carregar no botão "Copiar" (Ctrl-C ou Ctrl-Insert). Porém, existe uma opção para "Copiar Automaticamente a Selecção". Se esta estiver activa, então tudo o que seleccionar será copiado imediatamente, sem que você tenha de copiar explicitamente. Todavia, preste atenção ao usar isto, dado que o conteúdo da área de transferência poderá ficar assim destruído por acidente. </para
+><para
+>O "Cortar" (Ctrl-X ou Shift-Delete) copia para a área de transferência e apaga o texto seleccionado. </para
+><para
+>O "Colar" (Ctrl-V ou Shift-Insert) insere o texto da área de transferência na posição do cursor ou na selecção actual. Se colar numa das janelas de entrada de diferenças, o conteúdo da área de transferência será mostrado nessa janela e a comparação irá reiniciar imediatamente. Isto é útil se quiser pegar rapidamente num pedaço de texto de qualquer local e compará-lo com outra coisa, sem ter de criar ficheiros primeiro. </para>
+</sect1>
+
+<sect1 id="saving"
+><title
+>Gravar</title>
+<para
+>A gravação só será permitida quando todos os conflitos tiverem sido resolvidos. Se o ficheiro já existir e a opção de "Salvaguarda dos ficheiros" estiver activa, então o ficheiro existente verá o seu nome mudado de modo a ter uma extensão ".orig", mas se existir um destes ficheiros será removido. Quando você sair ou iniciar outra análise de diferenças e os dados não tiverem sido gravados ainda, então o &kdiff3; irá perguntar se você deseja gravar, cancelar ou prosseguir sem gravar. (O &kdiff3; não lida com nenhuns sinais ('signals') do sistema. Por isso, se fizer um "kill" ao &kdiff3;, então os seus dados serão perdidos.) </para
+><para
+>Os fins de linha são gravados de acordo com o método normal do sistema operativo subjacente. Para os UNIXes, cada linha terminada com um carácter de 'linefeed' "\n", enquanto que nos sistemas baseados em Win32, cada linha termina com um 'carriage-return' + um 'linefeed' "\r\n". O &kdiff3; não preserva os fins de linha dos ficheiros de entrada, o que também significa que você não deverá usar o &kdiff3; com ficheiros binários. </para>
+</sect1>
+
+<sect1 id="find"
+><title
+>Procurar Sequências de Texto</title>
+<para
+>Você poderá procurar por uma sequência de texto em qualquer janela de texto do &kdiff3;. O comando "Procurar ..." (Ctrl-F) no menu "Editar" abre uma janela que lhe permite indicar o texto a procurar. Poderá também seleccionar as janelas que deverão ser pesquisadas. A procura irá ter início sempre no topo do ficheiro. Use o comando "Procurar o Seguinte" (F3) para prosseguir com a próxima ocorrência. Se optar por procurar em várias janelas, então a primeira janela será percorrida de alto a baixo antes de a procura começar na próxima janela a partir do topo de novo, etc. </para>
+</sect1>
+
+<sect1 id="printing"
+><title
+>Impressão</title>
+<para
+>O &kdiff3; suporta a impressão das diferenças do ficheiro de texto. O comando "Imprimir..." (Ctrl-P) no menu Ficheiro abre uma janela que lhe permite seleccionar a impressora e ajustar as outras opções. </para
+><para
+>Existem várias possibilidades para ajustar o intervalo. Devido às diferentes janelas de impressão nos diferentes sistemas operativos, o método para obter certas selecções de intervalos varia. </para>
+<variablelist>
+   <varlistentry
+><term
+>Tudo:</term
+><listitem
+><para
+>Imprime tudo.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+>Actual:</term
+><listitem
+><para
+>Imprime uma página que começa na primeira linha visível da janela. (Nos sistemas sem esta opção, isto poderá ser obtido se indicar o número de página 10000 na impressão.)</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+>Selecção:</term
+><listitem
+><para
+>Antes de optar por imprimir, seleccione o texto com o rato (como acontece na cópia e colagem) numa das janelas de entrada das diferenças, para definir a linha inicial e final. Se não foi seleccionado nenhum texto numa das janelas de entrada, então esta opção não estará disponível. (Nos sistemas sem esta opção, isto poderá ser conseguido se indicar para imprimir a página 9999.)</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+>Intervalo:</term
+><listitem
+><para
+>Indica a primeira e última página. </para
+></listitem
+></varlistentry>
+</variablelist>
+<para
+>As outras opções importantes serão retiradas das opções normais: </para
+><itemizedlist>
+   <listitem
+><para
+>Tamanho e tipo de letra</para
+></listitem>
+   <listitem
+><para
+>Mostrar os números de linha</para
+></listitem>
+   <listitem
+><para
+>Mudança de linha</para
+></listitem>
+   <listitem
+><para
+>Cores</para
+></listitem>
+   <listitem
+><para
+>etc.</para
+></listitem>
+</itemizedlist>
+<para
+>A formatação em paisagem (na horizontal) também é recomendada na impressão. </para>
+</sect1>
+
+<sect1 id="options"
+><title
+>Opções</title>
+<para
+>As opções e a lista de ficheiros recentes serão gravadas quando você sair do programa e serão carregadas de novo quando o iniciar. (Menu Configuração->Configurar o &kdiff3;...) </para>
+<sect2
+><title
+>Tipo de Letra</title>
+<para
+>Seleccione um tipo de letra monoespaçado. (Em alguns sistemas, esta janela irá também apresentar os tipos de letra de tamanho variável, mas você não os deverá usar.) </para>
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Texto Itálico para os Deltas:</emphasis
+></term
+><listitem
+><para
+>Se seleccionar isto, então as diferenças no texto serão escritas com a versão itálica do tipo de letra seleccionado. Se o tipo de letra não suportar caracteres itálicos, isto não fará nada.</para>
+   </listitem
+></varlistentry>
+</variablelist>
+</sect2>
+
+<sect2
+><title
+>Cores</title>
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Cor principal:</emphasis
+></term
+><listitem
+><para
+>Normalmente preto. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Cor de fundo:</emphasis
+></term
+><listitem
+><para
+>Normalmente branco. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Cor de Fundo das Diferenças:</emphasis
+></term
+><listitem
+><para
+>Normalmente a cinzento claro. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Cor A:</emphasis
+></term
+><listitem
+><para
+>Normalmente a azul escuro. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Cor B:</emphasis
+></term
+><listitem
+><para
+>Normalmente a verde escuro. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Cor C:</emphasis
+></term
+><listitem
+><para
+>Normalmente a magenta escuro. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Cor do Conflito:</emphasis
+></term
+><listitem
+><para
+>Normalmente a vermelho.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Cor de fundo do intervalo actual:</emphasis
+></term
+><listitem
+><para
+>Normalmente a amarelo claro.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Cor de fundo da diferença do intervalo actual:</emphasis
+></term
+><listitem
+><para
+>Normalmente a amarelo escuro.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Cor para os intervalos de diferenças seleccionados manualmente:</emphasis
+></term
+><listitem
+><para
+>Normalmente a laranja.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Cor dos ficheiros mais recentes na comparação de pastas:</emphasis
+></term
+><listitem
+><para
+>Normalmente a verde.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Cor dos ficheiros mais antigos na comparação de pastas:</emphasis
+></term
+><listitem
+><para
+>Normalmente a vermelho.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Cor dos ficheiros intermédios na comparação de pastas:</emphasis
+></term
+><listitem
+><para
+>Normalmente a amarelo escuro.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Cor dos ficheiros em falta na comparação de pastas:</emphasis
+></term
+><listitem
+><para
+>Normalmente preto.</para
+></listitem
+></varlistentry>
+</variablelist>
+<para
+>A mudança das cores na comparação das pastas só fará efeito quando iniciar a próxima comparação de pastas. </para>
+<para
+>Nos sistemas com apenas 16 ou 256 cores, alguns dos tons acima descritos não estão disponíveis de forma pura. Nesses sistemas, o botão "Predefinições" irá escolher uma cor pura. </para>
+</sect2>
+
+<sect2
+><title
+>Configuração do Editor</title>
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>O Tab insere espaços:</emphasis
+></term
+><listitem
+><para
+>Se isto estiver desactivado e você carregar na tecla do tabulador, será inserido um carácter de tabulação, caso contrário serão inseridos os espaços com a quantidade apropriada.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Tamanho das tabulações:</emphasis
+></term
+><listitem
+><para
+>Poderá ser ajustado de acordo com as suas necessidades específicas. Por omissão é igual a 8. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Indentação automática:</emphasis
+></term
+><listitem
+><para
+>Ao carregar em Enter ou Return, a indentação da linha anterior é usada para uma nova linha. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Copiar automaticamente a selecção:</emphasis
+></term
+><listitem
+><para
+>Quando activo, qualquer selecção é posta automaticamente na área de transferência e não precisa de a copiar explicitamente. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Estilo de fim de linha:</emphasis
+></term
+><listitem
+><para
+>Ao gravar, o utilizador poderá seleccionar o estilo do fim de linha que prefere.O valor por omissão é a escolha comum para o sistema operativo usado. </para
+></listitem
+></varlistentry>
+</variablelist>
+</sect2>
+
+<sect2 id="diffoptions"
+><title
+>Opções do Diff</title>
+<para
+>Ao comparar os ficheiros, o &kdiff3; tenta primeiro corresponder as linhas iguais em todos os ficheiros de entrada. Só durante este passo é que poderá ignorar os espaços em branco. O segundo passo compara cada uma das linhas. Neste passo, os espaços em branco não serão ignorados. Também durante a junção os espaços em branco não serão ignorados. </para>
+
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Manter o 'Carriage Return':</emphasis
+></term
+><listitem
+><para
+>Alguns editores (em alguns sistemas) gravam os caracteres de 'carriage return' "\r" e 'linefeed' "\n" no fim da linha, enquanto que outros só irão gravar o 'linefeed' "\n". Normalmente o &kdiff3; ignora o 'carriage return', mas aí os ficheiros que não tenham tamanhos iguais pareçam de facto iguais numa comparação lado-a-lado. Quando esta opção estiver activa, então os caracteres de 'carriage return' ficarão visíveis mas serão tratados como espaços em branco. Ela necessita estar desligada durante uma junção. Por omissão, está desligada.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Ignorar os números:</emphasis
+></term
+><listitem
+><para
+>Por omissão está desligado. Os caracteres dos números ("0-9", ".", "-") serão ignorados na primeira parte da análise, na qual é feita a correspondência de linhas. No resultado, as diferenças serão mostradas de qualquer forma, mas serão tratadas como espaços em branco. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Ignorar comentários de C/C++:</emphasis
+></term
+><listitem
+><para
+>Por omissão está desligado. As alterações nos comentários serão tratadas como as alterações nos espaços em branco. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Ignorar a capitalização:</emphasis
+></term
+><listitem
+><para
+>Por omissão está desligado. As diferenças de capitalização dos caracteres (como o 'A' vs. 'a') serão tratadas como alterações de espaços em branco. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Comando do pré-processador:</emphasis
+></term
+><listitem
+><para
+>Veja a <link linkend="preprocessors"
+>próxima secção</link
+>. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Comando do Pré-processador para a Correspondência de Linhas:</emphasis
+></term
+><listitem
+><para
+>Veja a <link linkend="preprocessors"
+>próxima secção</link
+>. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Tentar com Persistência:</emphasis
+></term
+><listitem
+><para
+>Tenta com mais afinco encontrar um delta ainda menor. (Por omissão está ligado). Isto irá ser efectivo provavelmente para os ficheiros grandes e complicados. Será também lento para os ficheiros muito grandes. </para
+></listitem
+></varlistentry>
+</variablelist>
+</sect2>
+
+<sect2 id="mergeoptions"
+><title
+>Configuração da Junção</title>
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Atraso no Avanço Automático (ms):</emphasis
+></term
+><listitem
+><para
+>Quando estiver no modo de avanço automático esta opção indica o intervalo de tempo durante o qual mostrar o resultado da selecção antes de saltar para o próximo conflito não resolvido. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Predefinição da junção de espaço em branco com 2/3 ficheiros:</emphasis
+></term
+><listitem
+><para
+>Resolve automaticamente todos os conflitos de espaços em branco, seleccionando o ficheiro indicado. (Por omissão, é com uma escolha manual). É útil se os espaços em branco não serão importantes em muitos dos ficheiros. Se precisar disto apenas ocasionalmente, é melhor usar o "Escolher A/B/C nos Conflitos de Espaços em Branco Por Resolver" no menu "Junção". Lembre-se que, se activar o "Ignorar os Números" ou o "Ignorar os Comentários de C/C++", então esta escolha automática também se aplica para os conflitos nos números ou nos comentários. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Expressão regular de junção automática:</emphasis
+></term
+><listitem
+><para
+>A expressão regular para as linhas onde o &kdiff3; deverá escolher automaticamente uma origem. Veja também a <link linkend="vcskeywordsmergesupport"
+>Junção Automática ...</link
+> </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Executar a junção automática da expressão regular no início da junção:</emphasis
+></term
+><listitem
+><para
+>Se for activado, o &kdiff3; executa a junção automática com a "Expressão regular da junção automática", quando for iniciada uma junção. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Expressão regular do início do histórico:</emphasis
+></term
+><listitem
+><para
+>A expressão regular do início do item de histórico. Normalmente, esta linha contém a palavra-chave "&#36;Log&#36;". Valor por omissão: ".*\&#36;Log.*\&#36;.*" </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Expressão regular do início do item de histórico:</emphasis
+></term
+><listitem
+><para
+>Um item de junção do histórico consiste em várias linhas. Indique a expressão regular que detecta a primeira linha (sem o comentário inicial). Use os parêntesis para agrupar as chaves que deseja usar na ordenação. Se for deixado em branco, o &kdiff3; assume que as linhas em branco separam os itens de histórico. Veja também a <link linkend="vcskeywordsmergesupport"
+>Junção Automática ...</link
+> </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Ordenação da junção do histórico:</emphasis
+></term
+><listitem
+><para
+>Activa a ordenação do histórico do controlo de versões. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Ordem da chave de ordenação do início do item de histórico:</emphasis
+></term
+><listitem
+><para
+>Cada grupo de parêntesis usado na expressão regular do item de início de histórico agrupa uma chave que poderá ser usada na ordenação. Indique a lista de chaves (que são numeradas por ordem de ocorrência, a começar em 1), usando o ',' como separador (p.ex., "4,5,6,1,2,3,7"). Se for deixado em branco, então não será feita nenhuma ordenação. Veja também a <link linkend="vcskeywordsmergesupport"
+>Junção Automática ...</link
+> </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Juntar o histórico do controlo de versões no início da junção:</emphasis
+></term
+><listitem
+><para
+>Se estiver activado, o &kdiff3; executa a junção automática do histórico, usando as opções acima mencionadas, quando for iniciada uma junção. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Número máximo de itens do histórico:</emphasis
+></term
+><listitem
+><para
+>O &kdiff3; limita a lista do histórico ao número de itens indicado. Use -1 para evitar a limitação. (Por omissão, é igual a -1). </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Testar as suas expressões regulares</emphasis
+></term
+><listitem
+><para
+>Este botão mostra uma janela que lhe permite melhorar e testar as expressões regulares acima. Basta copiar os dados respectivos dos seus ficheiros para as linhas de exemplo. O "Resultados da correspondência" irá mostrar imediatamente se a correspondência é bem sucedida ou não. O "Resultado da chave de ordenação" irá mostrar a chave usada no histórico da junção do histórico. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Comando de junção irrelevante:</emphasis
+></term
+><listitem
+><para
+>Indique um comando próprio, que deverá ser chamado quando o &kdiff3; detectar que, numa junção de três ficheiros, o ficheiro de B não contribui com dados relevantes que não estivessem já contidos no ficheiro em C. O comando é chamado com os três nomes de ficheiros como parâmetros. Os dados correspondentes à "Expressão regular da junção automática" ou no histórico não são considerados relevantes. </para
+></listitem
+></varlistentry>
+</variablelist>
+
+</sect2>
+
+<sect2
+><title
+>Junção de Pastas</title>
+<para
+>Estas opções dizem respeito à análise da pasta e ao tratamento da junção: Veja em <link linkend="dirmergeoptions"
+>Comparação de Pastas/Juntar</link
+> para mais detalhes. </para
+><para
+>Existe aqui ainda uma opção que também é relevante para gravar os ficheiros únicos: </para>
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Ficheiros de segurança:</emphasis
+></term
+><listitem
+><para
+>Quando um ficheiro é gravado e já existe uma versão anterior, então a versão original irá mudar para um nome com uma extensão ".orig". Se já existir um ficheiro de cópia de segurança antigo com uma extensão ".orig", então este será removido sem ficar nenhuma cópia de segurança. </para
+></listitem
+></varlistentry>
+</variablelist>
+</sect2>
+
+<sect2
+><title
+>Opções Regionais e da Língua</title>
+  <variablelist>
+    <varlistentry
+><term
+><emphasis
+>Língua:</emphasis
+></term
+><listitem
+><para
+>Ajusta a língua da interface do utilizador. Se mudar esta opção não afectará o programa em execução. Terá de sair e reiniciar o &kdiff3; para que a língua seja alterada. (Esta opção não está disponível na versão para KDE do &kdiff3;, porque a língua é ajustável na configuração global do KDE). </para
+></listitem
+></varlistentry>
+    <varlistentry
+><term
+><emphasis
+>Utilizar a mesma codificação para tudo:</emphasis
+></term
+><listitem
+><para
+>As seguintes opções de codificação poderão ser ajustadas em separado para cada item ou, se esta opção for verdadeira, todos os valores irão usar o primeiro valor. </para
+></listitem
+></varlistentry>
+    <varlistentry
+><term
+><emphasis
+>Codificação Local:</emphasis
+></term
+><listitem
+><para
+>Por cima dos selectores de codificação, aparece uma nota que lhe indica a sua codificação local. (Esta não é ajustável, mas está aqui apenas para o informar, no caso de não saber qual é a sua codificação local e tiver de a seleccionar). </para
+></listitem
+></varlistentry>
+    <varlistentry
+><term
+><emphasis
+>Codificação do Ficheiro para o A/B/C:</emphasis
+></term
+><listitem
+><para
+>Ajuste a codificação do ficheiro para os ficheiros de entrada. Isto provoca algum efeito na forma como os caracteres especiais são interpretados. Dado que poderá ajustar cada codificação em separado, poderá até comparar e juntar ficheiros que foram gravados com codificações diferentes. </para
+></listitem
+></varlistentry>
+    <varlistentry
+><term
+><emphasis
+>Codificação do Ficheiro para Junção de Resultado e Gravação:</emphasis
+></term
+><listitem
+><para
+>Quando tiver editado um ficheiro, poderá então ajustar a codificação que será usada ao gravar para o disco. </para
+></listitem
+></varlistentry>
+    <varlistentry
+><term
+><emphasis
+>Codificação do Ficheiro dos Ficheiros de Pré-processador:</emphasis
+></term
+><listitem
+><para
+>Quando definir pré-processadores, este poderão não ser capazes de lidar com a sua codificação. (p.ex.: Os seus ficheiros estão em Unicode de 16 bits e o seu pré-processador só consegue lidar com ASCII de 8 bits). Com esta opção, poderá definir a codificação do resultado do pré-processador. </para
+></listitem
+></varlistentry>
+    <varlistentry
+><term
+><emphasis
+>Língua da Esquerda-para-a-Direita:</emphasis
+></term
+><listitem
+><para
+>Algumas línguas são escritas da direita para a esquerda. Quando esta opção está activa, o &kdiff3; desenha o texto da direita para a esquerda nas janelas de diferenças dos ficheiros de entrada e na janela do resultado da junção. Repare que, se iniciar o &kdiff3; com a opção da linha de comandos "--reverse", então toda a disposição será feita também da direita para a esquerda. (Esta é uma funcionalidade oferecida pelo Qt.) Esta documentação foi escrita a assumir que a "Língua da direita-para-a-esquerda" ou a disposição inversa estão desactivadas. Por isso, algumas das referências a "esquerda" ou "direita" deverão ser substituídas pela versão inversa, se usar estas opções. </para
+></listitem
+></varlistentry>
+
+  </variablelist>
+</sect2>
+
+<sect2
+><title
+>Diversos</title>
+<para
+>(Estas opções e acções estão disponíveis nos menus ou na barra de botões.)</para>
+<variablelist>
+  <varlistentry
+><term
+><emphasis
+>Mostrar os números de linha:</emphasis
+></term
+><listitem
+><para
+>O utilizador pode seleccionar se os números de linhas são mostrados para os ficheiros de entrada.</para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Mostrar as diferenças de espaços e tabulações:</emphasis
+></term
+><listitem
+><para
+>Algumas das vezes os espaços e tabulações visíveis são incómodos. Poderá com isto desactivar esta funcionalidade.</para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Mostrar os espaços em branco:</emphasis
+></term
+><listitem
+><para
+>Desligue isto para suprimir o realce das alterações apenas nos espaços em branco no texto ou nas colunas de vista geral. (Lembre-se que isto também se aplica às alterações nos números ou comentários se as opções "Ignorar os números" ou "Ignorar os Comentários de C/C++" estiverem activas.)</para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Opções da vista geral:</emphasis
+></term
+><listitem
+><para
+>Estas opções só estão disponíveis quando você compara três ficheiros. No modo normal, todas as diferenças são mostradas na coluna de resumo codificada a cores. Mas, em alguns casos, você está especialmente interessado nas diferenças entre apenas dois desses três ficheiros. Se seleccionar "A vs. B", "A vs. C" ou "B vs. C" na coluna de resumo irá aparecer uma segunda coluna com a informação necessária ao lado do resumo normal. </para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Quebrar linha nas janelas de diferenças:</emphasis
+></term
+><listitem
+><para
+>Reparte as linhas quando o seu tamanho exceder a largura de uma janela. </para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Mostrar a Janela A/B/C:</emphasis
+></term
+><listitem
+><para
+>Em algumas vezes, você poderá usar melhor o espaço no ecrã para as linhas compridas. Esconda as janelas que não são importantes. (No menu "Janelas".)</para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Comutar a Orientação da Repartição:</emphasis
+></term
+><listitem
+><para
+>Define se as janelas de diferenças são mostradas uma ao lado da outra (a A à esquerda da B, que está à esquerda da C) ou uma por cima da outra (a A sobre a B, que está sobre a C). Isto também deverá ajudar para as linhas compridas (No menu "Janelas"). </para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Iniciar uma junção rapidamente:</emphasis
+></term
+><listitem
+><para
+>Às vezes, você está a ver os deltas e decide juntá-los. <inlinemediaobject
+><imageobject
+><imagedata fileref="merge_current.png" format="PNG"/></imageobject
+></inlinemediaobject
+> O "Juntar o ficheiro actual" no menu "Directoria" também resulta se só comparar dois ficheiros. Um único 'click' começa a junção e usa o nome do último ficheiro de entrada como nome do ficheiro do resultado por omissão. (Quando isto for usado para reiniciar uma junção, então o nome do ficheiro do resultado será mantido.)</para
+></listitem
+></varlistentry>
+</variablelist>
+</sect2>
+
+<sect2 id="shortcuts"
+><title
+>Configurar os Atalhos de Teclado</title>
+<para
+>De momento, só a versão para KDE suporta os atalhos de teclado configuráveis pelo utilizador. (No menu Configuração->Configurar os Atalhos...) </para>
+</sect2>
+</sect1>
+
+<sect1 id="preprocessors"
+><title
+>Comandos do Pré-processador</title>
+<para
+>O &kdiff3; suporta duas opções do pré-processador. </para
+><para>
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Comando do pré-processador:</emphasis
+></term
+><listitem
+><para
+>Quando for lido qualquer ficheiro, ele será encaminhado através deste comando externo. O resultado deste comando será visível em vez do ficheiro original. O utilizador poderá criar o seu próprio pré-processador que corresponda às suas necessidades específicas. Use isto para cortar partes desnecessárias do ficheiro ou para corrigir automaticamente a indentação, etc. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Comando do Pré-processador para a Correspondência de Linhas:</emphasis
+></term
+><listitem
+><para
+>Quando for lido qualquer ficheiro, ele será encaminhado através deste comando externo. Se um comando de pré-processador (ver acima) for também indicado, então o resultado do pré-processador é a entrada para o pré-processador de correspondência de linhas. O resultado só será usado durante a fase de correspondência de linhas da análise. O utilizador poderá escrever o seu próprio pré-processador que corresponda às suas necessidades específicas. Cada linha de entrada terá de ter uma linha de resultado correspondente. </para
+></listitem
+></varlistentry>
+</variablelist>
+</para>
+<para
+>A ideia é permitir ao utilizador uma maior flexibilidade ao configurar o resultado das diferenças. Mas isto necessita de um programa externo e muitos dos utilizadores não querem escrever um. As boas notícias é que, muitas das vezes, o <command
+>sed</command
+> ou o <command
+>perl</command
+> encarregar-se-ão disso. </para>
+<para
+>Exemplo: Caso de teste simples. Considere o ficheiro a.txt (6 linhas): <screen>
+      aa
+      ba
+      ca
+      da
+      ea
+      fa
+</screen
+> E o ficheiro b.txt (3 linhas): <screen>
+      cg
+      dg
+      eg
+</screen
+> Sem um pré-processador as seguintes linhas teriam sido colocadas lado a lado: <screen>
+      aa - cg
+      ba - dg
+      ca - eg
+      da
+      ea
+      fa
+</screen
+> Isto provavelmente não será o desejado, dado que a primeira letra contém a informação realmente interessante. Para ajudar o algoritmo de correspondência a ignorar aa segunda letra, poder-se-ia usar um comando de pré-processamento de correspondências de linhas que substituísse o 'g' pelo 'a': <screen>
+   <command
+>sed</command
+> 's/g/a/'
+</screen
+> Com este comando, o resultado da comparação seria: <screen>
+      aa
+      ba
+      ca - cg
+      da - dg
+      ea - eg
+      fa
+</screen
+> Internamente, o algoritmo de correspondência vê os ficheiros depois de correr o pré-processador de correspondência de linhas, mas no ecrã o ficheiro fica inalterado. (O pré-processador normal iria alterar também os dados no ecrã.) </para>
+
+<sect2 id="sedbasics"
+><title
+>Bases do <command
+>sed</command
+></title>
+<para
+>Esta secção só introduz algumas funcionalidades muito básicas do <command
+>sed</command
+>. Para mais informações veja as páginas <ulink url="info:/sed"
+>info:/sed</ulink
+> ou <ulink url="http://www.gnu.org/software/sed/manual/html_mono/sed.html"
+> http://www.gnu.org/software/sed/manual/html_mono/sed.html</ulink
+>. Existe uma versão pré-compilada para o Windows em <ulink url="http://unxutils.sourceforge.net"
+> http://unxutils.sourceforge.net</ulink
+>. Repare no facto de que os exemplos seguintes assumem que o comando <command
+>sed</command
+> está numa pasta referida pela sua variável de ambiente PATH. Se não for este o caso, você terá de indicar a localização absoluta completa para o comando. </para>
+<note
+><para
+>Lembre-se também que os exemplos seguintes usam a plica simples (') que não irá funcionar no Windows. No Windows, deverá usar as aspas (") em alternativa.</para
+></note>
+<para
+>Neste contexto apenas o comando de substituição do <command
+>sed</command
+> será usado: <screen>
+   <command
+>sed</command
+> 's/<replaceable
+>EXPREG</replaceable
+>/<replaceable
+>SUBSTITUTO</replaceable
+>/<replaceable
+>OPÇÕES</replaceable
+>'
+</screen
+> Antes de você usar um comando novo no &kdiff3;, deverá primeiro testá-lo numa consola. Aqui, o comando <command
+>echo</command
+> é útil. Exemplo: <screen>
+   <command
+>echo</command
+> abracadabra | <command
+>sed</command
+> 's/a/o/'
+   -> obracadabra
+</screen
+> Este exemplo mostra um comando 'sed' muito simples que substitui a primeira ocorrência do "a" por um "o". Se quiser substituir todas as ocorrências, então irá necessitar da opção "g": <screen>
+   <command
+>echo</command
+> abracadabra | <command
+>sed</command
+> 's/a/o/g'
+   -> obrocodobro
+</screen
+> O símbolo "|" é o 'pipe' ou canal que transfere o resultado do comando anterior para os dados de entrada do comando seguinte. Se quiser testar com um ficheiro maior, então poderá usar o <command
+>cat</command
+> no sistemas do tipo do Unix ou o <command
+>type</command
+> nos sistemas do tipo Windows. O <command
+>sed</command
+> irá fazer a substituição para cada linha. <screen
+><command
+>cat</command
+> <replaceable
+>ficheiro</replaceable
+> | <command
+>sed</command
+> <replaceable
+>opções</replaceable
+>
+</screen>
+</para>
+</sect2>
+<sect2 id="sedforkdiff3"
+><title
+>Exemplos para a Utilização do <command
+>sed</command
+> no &kdiff3;</title>
+<sect3
+><title
+>Ignorar Outros Tipos de Comentários</title>
+<para
+>De momento, o &kdiff3; só compreende comentários de C/C++. Se usar o comando "Pré-Processador de Correspondência de Linhas", poderá também ignorar outros tipos de comentários, convertendo-os em comentários de C/C++. Exemplo: Para ignorar comentários que comecem por "#", poderá convertê-los para "//". Lembre-se que terá também de activar a opção "Ignorar os Comentários de C/C++" para obter efeito. Um comando "Pré-Processador de Correspondência de Linhas" seria: <screen>
+   <command
+>sed</command
+> 's/#/\/\//'
+</screen
+> Dado que para o <command
+>sed</command
+> o carácter <literal
+>/</literal
+> tem um significado especial, é necessário colocar o carácter <literal
+>\</literal
+> antes de cada <literal
+>/</literal
+> no texto de substituição. Algumas das vezes o <literal
+>\</literal
+> é necessário para adicionar ou remover um significado especial para certos caracteres. As plicas simples (<literal
+>'</literal
+>) antes e depois do comando de substituição são importantes, caso contrário a linha de comandos iria tentar interpretar alguns caracteres especiais como o <literal
+>#</literal
+>, o <literal
+>$</literal
+> ou o <literal
+>\</literal
+> antes de os passar para o <command
+>sed</command
+>. Lembre-se que no &Windows; irá necessitar aqui das aspas (<literal
+>"</literal
+>). O &Windows; substitui os outros caracteres como o <literal
+>%</literal
+>, por isso você terá de fazer algumas experiências. </para>
+</sect3>
+<sect3
+><title
+>Diff sem Distinguir Capitalização</title>
+<para
+>Use o comando "Pré-Processador de Correspondência de Linhas" para converter todo o texto para maiúsculas: <screen>
+   <command
+>sed</command
+> 's/\(.*\)/\U\1/'
+</screen
+> Aqui o <literal
+>.*</literal
+> é uma expressão regular que corresponde a qualquer texto e, no seu contexto, irá corresponder a todos os caracteres da linha. O <literal
+>\1</literal
+> no texto de substituição refere-se ao texto correspondente ao primeiro par de <literal
+>\(</literal
+> e <literal
+>\)</literal
+>. O <literal
+>\U</literal
+> converte o texto inserido para maiúsculas. </para>
+</sect3>
+
+<sect3
+><title
+>Ignorar as Palavras-Chave do Controlo de Versões</title>
+<para
+>O CVS e outros sistemas de controlo de versões usam várias palavras-chave para inserir texto gerado automaticamente (<ulink url="info:/cvs/Keyword substitution"
+>info:/cvs/Keyword substitution</ulink
+>). Todas elas seguem o padrão "$PALAVRACHAVE texto gerado$". É preciso agora um comando Pré-Processador de Correspondência de Linhas que remova apenas o texto gerado: <screen>
+   <command
+>sed</command
+> 's/\$\(Revision\|Author\|Log\|Header\|Date\).*\$/\$\1\$/'
+</screen
+> O "\|" separa as palavras-chave possíveis. Poderá querer modificar esta lista de acordo com as suas necessidades. O "\" antes do "$" é necessário, caso contrário o "$" irá corresponder ao fim da linha. </para>
+<para
+>Ao experimentar com o <command
+>sed</command
+>, você poderá vir a compreender e até a gostar destas expressões regulares. Elas são úteis porque existem muitos outros programas que suportam algumas coisas desse género. </para>
+</sect3>
+
+<sect3
+><title
+>Ignorar os Números</title>
+<para
+>A indiferença em relação aos números é de facto uma opção incorporada. Mas, como outro exemplo, seria assim como iria ficar como um comando do Pré-Processador da Correspondência de Linhas. <screen>
+   <command
+>sed</command
+> 's/[0123456789.-]//g'
+</screen
+> Todos os caracteres dentro de '[' e ']' são uma correspondência e será substituído por nada. </para>
+</sect3>
+
+<sect3
+><title
+>Ignorar Certas Colunas</title>
+<para
+>Em algumas ocasiões um determinado texto tem uma formatação demasiado restrita e contém colunas que deseja sempre ignorar, enquanto que existem outras colunas que deseje preservar para análise. No exemplo seguinte, as primeiras cinco colunas (caracteres) são ignoradas, as próximas dez são preservadas, depois as próximas cinco colunas serão ignoradas de novo e o resto da linha é preservada. <screen>
+   <command
+>sed</command
+> 's/.....\(..........\).....\(.*\)/\1\2/'
+</screen
+> Cada ponto '.' corresponde a um único carácter. O "\1" e o "\2" no texto de substituição refere-se ao texto correspondente dentro do primeiro e segundo par de "\(" e "\)", demarcando o texto a ser preservado. </para>
+</sect3>
+
+<sect3
+><title
+>Combinar Várias Substituições</title>
+<para
+>Em algumas situações você deseja aplicar várias substituições de uma vez. Poderá então usar o ponto-e-vírgula ";" para separar uma da outra. Exemplo: <screen
+><command
+>echo</command
+> abracadabra | <command
+>sed</command
+> 's/a/o/g;s/\(.*\)/\U\1/'
+   -> OBROCODOBRO
+</screen>
+</para>
+</sect3>
+
+<sect3
+><title
+>Usar o <command
+>perl</command
+> em vez do <command
+>sed</command
+></title>
+<para
+>Em vez do <command
+>sed</command
+>, você poderá querer usar algo diferente como o  <command
+>perl</command
+>. <screen>
+   <command
+>perl</command
+> -p -e 's/<replaceable
+>EXPREG</replaceable
+>/<replaceable
+>SUBSTITUTO</replaceable
+>/<replaceable
+>OPÇÕES</replaceable
+>'
+</screen
+> Porém, alguns detalhes são diferentes no <command
+>perl</command
+>. Repare que, onde o <command
+>sed</command
+> necessitava do "\(" e do "\)", o <command
+>perl</command
+> necessita dos "(" e ")" mais simples e sem o '\' precedente. Exemplo: <screen
+><command
+>sed</command
+> 's/\(.*\)/\U\1/'
+   <command
+>perl</command
+> -p -e 's/(.*)/\U\1/'
+</screen>
+</para>
+</sect3>
+</sect2>
+
+<sect2
+><title
+>Order de Execução de Pré-processadores</title>
+<para
+>Os dados são encaminhados através de todos os pré-processadores internos e externos pela seguinte ordem: </para>
+<itemizedlist>
+<listitem
+><para
+>Pré-processador normal,</para
+></listitem>
+<listitem
+><para
+>Pré-processador de Correspondência de Linhas,</para
+></listitem>
+<listitem
+><para
+>Ignorar capitalização (conversão para maiúsculas),</para
+></listitem>
+<listitem
+><para
+>Detecção de Comentários de C/C++,</para
+></listitem>
+<listitem
+><para
+>Ignorar os números,</para
+></listitem>
+<listitem
+><para
+>Ignorar os espaços em branco</para
+></listitem>
+</itemizedlist>
+<para
+>Os dados após o pré-processador normal serão preservados para a apresentação e para a junção. As outras operações só modificam os dados que o algoritmo para a correspondência de linhas nas diferenças vê. </para
+><para
+>Nos casos raros em que você usa um pré-processador normal, repare que o pré-processador da correspondência de linhas vê o resultado no pré-processador normal como dados de entrada. </para>
+</sect2>
+
+<sect2
+><title
+>Aviso</title>
+<para
+>Os comandos do pré-processador são normalmente muito úteis, mas como acontece com qualquer opção que modifica os seus textos ou esconde algumas diferenças automaticamente, você poderá saltar por cima de certas diferenças e, no pior dos casos, destruir dados importantes. </para
+><para
+>Por esta razão, durante uma junção, se for usado um comando pré-processador normal, o &kdiff3; dizer-lhe-á isso e perguntar-lhe-á se deverá ser desactivado ou não. Mas não o irá avisar se estiver um Pré-Processador de Correspondência de Linhas activo. A junção não irá ficar completa até que todos os conflitos tenham sido resolvidos. Se tiver desactivado o "Mostrar os Espaços em Branco", então as diferenças que foram removidas com o Pré-Processador de Correspondência de Linhas ficarão também invisíveis. Se o botão para Gravar continuar inactivo durante uma junção (devido a conflitos por resolver), verifique se activa o "Mostrar os Espaços em Branco". Se não quiser juntar essas diferenças menos importantes poderá escolher a opção "Escolher [A|B|C] nos Conflitos de Espaço em Branco por Resolver" no menu "Juntar". </para>
+</sect2>
+</sect1>
+</chapter>
+
+
+<chapter id="dirmerge"
+><title
+>Comparação e Junção de Directorias com o &kdiff3;</title>
+<sect1 id="dirmergeintro"
+><title
+>Introdução à Comparação ou Junção de Pastas</title>
+<para
+>Normalmente, os programadores precisam de modificar vários ficheiros numa pasta para atingir os seus fins. Para isso, o &kdiff3; também lhe permite comparar e juntar várias pastas de forma recursiva! </para
+><para
+>Ainda que a comparação e junção de pastas pareça ser bastante óbvia, existem vários detalhes que o utilizador deverá conhecer. O mais importante é, obviamente, o facto de que vários ficheiros poderão ser afectados por cada operação. Se não tiver cópias de segurança dos seus dados originais, então poderá ser bastante difícil ou mesmo impossível de voltar ao estado original. Por isso, antes de começar uma junção, certifique-se que os seus dados estão a salvo e que é possível voltar atrás. Se cria um pacote ou usa um sistema de controlo de versões é uma decisão sua, mas mesmo os programadores experientes e os integradores precisam do código antigo e do novo. E repare que até ao autor do &kdiff3; tenta fazer o seu melhor, mas não pode garantir que não existam erros. De acordo com a GPL da GNU, não existe NENHUMA GARANTIA de qualquer forma para este programa. Por isso, seja humilde e tenha sempre em mente: </para>
+<blockquote
+><para>
+   <emphasis
+>Errar é humano, mas para realmente baralhar as coisas é preciso um computador.</emphasis>
+</para
+></blockquote>
+<para
+>Por isso, este é o programa que poderá fazer isto por si: o &kdiff3; ... </para>
+<itemizedlist>
+     <listitem
+><para
+>... lê e compara duas ou três pastas recursivamente,</para
+></listitem>
+     <listitem
+><para
+>... tem um cuidado especial com as ligações simbólicas,</para
+></listitem>
+     <listitem
+><para
+>... permite-lhe navegar nos ficheiros com um duplo-click do rato,</para
+></listitem>
+     <listitem
+><para
+>... propõe para cada item uma operação de junção, a qual poderá alterar antes de iniciar a junção de pastas,</para
+></listitem>
+     <listitem
+><para
+>... permite-lhe simular a junção e lista as acções que iriam tomar lugar, sem fazer nada de facto,</para
+></listitem>
+     <listitem
+><para
+>... permite-lhe fazer realmente a junção, possibilitando também a você interagir nas situações em que é necessária uma interacção manual,</para
+></listitem>
+     <listitem
+><para
+>... permite-lhe executar a operação seleccionada para todos os itens (tecla F7) ou para o item seleccionado (tecla F6),</para
+></listitem>
+     <listitem
+><para
+>... permite-lhe continuar a junção depois de uma interacção manual com a tecla F7,</para
+></listitem>
+     <listitem
+><para
+>... cria opcionalmente cópias de segurança com a extensão ".orig",</para
+></listitem>
+     <listitem
+><para
+>...</para
+></listitem>
+</itemizedlist>
+</sect1>
+
+<sect1 id="startingdirmerge"
+><title
+>Iniciar a Comparação ou Junção de Directoria</title>
+<para
+>Isto é bastante semelhante à junção e comparação simples com ficheiros únicos. O utilizador apenas terá de indicar nomes de pastas na linha de comandos ou na janela de abertura de ficheiros. </para>
+<sect2
+><title
+>Comparar/Juntar duas directorias: </title>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>pasta1 pasta2</replaceable>
+   <command
+>kdiff3</command
+> <replaceable
+>pasta1 pasta2</replaceable
+> -o <replaceable
+>destino</replaceable
+>
+</screen>
+<para
+>Se não for indicada nenhuma pasta de destino, então o &kdiff3; irá usar a <replaceable
+>pasta2</replaceable
+>. </para>
+</sect2>
+
+<sect2
+><title
+>Comparar/Juntar estas pastas: </title>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>pasta1 pasta2 pasta3</replaceable>
+   <command
+>kdiff3</command
+> <replaceable
+>pasta1 pasta2 pasta3</replaceable
+> -o <replaceable
+>destino</replaceable
+>
+</screen>
+<para
+>Quando forem reunidas três pastas, então a <replaceable
+>pasta1</replaceable
+> será usada como a base para a junção. Se não for indicada nenhuma pasta de destino, então o &kdiff3; irá usar a <replaceable
+>pasta3</replaceable
+> como pasta de destino para a junção. </para>
+
+<para
+>Repare que só a comparação é que começa automaticamente, não a junção. Para tal, terá de seleccionar primeiro um item do menu ou a tecla F7. (Mais detalhes posteriormente.) </para>
+</sect2>
+</sect1>
+
+<sect1 id="dirmergevisible"
+><title
+>Informação Visível da Junção de Pastas</title>
+<para
+>Ao ler as pastas, aparece uma mensagem que o informa do progresso. Se você interromper a pesquisa das pastas, então só os ficheiros que tenham sido comparados até então serão listados. </para
+><para
+>Quando a pesquisa de pastas estiver completa, então o &kdiff3; irá mostrar uma lista com os resultados restantes, ... </para>
+<screenshot
+><mediaobject>
+<imageobject
+><imagedata fileref="dirbrowser.png" format="PNG"/></imageobject
+> <!--alt="Image of the directory browser."-->
+</mediaobject
+></screenshot>
+<para
+>... e os detalhes sobre o item seleccionado de momento à direita: </para>
+<screenshot
+><mediaobject>
+<imageobject
+><imagedata fileref="iteminfo.png" format="PNG"/></imageobject>
+   <!--alt="Image with information about the selected item."-->
+</mediaobject
+></screenshot>
+
+<sect2 id="name"
+><title
+>A Coluna do Nome</title>
+<para
+>Cada ficheiro e pasta encontrado durante a pesquisa é aqui mostrado numa árvore. Você poderá seleccionar um item se carregar nele uma vez com o rato. </para
+><para
+>As pastas estão fechadas por omissão. Você poderá expandi-las e fechá-las se carregar no "+"/"-" ou se fizer duplo-click no item ou ainda usando as teclas de cursores esquerda/direita. O menu "Directoria" também contém duas acções "Fechar Todas as Sub-Directorias" e "Expandir Todas as Sub-Directorias", com as quais poderá fechar ou abrir todas as subpastas de uma vez. </para
+><para
+>Se fizer duplo-click num item de um ficheiro, então a comparação do ficheiro irá começar e irá aparecer a janela de diferenças do ficheiro. </para>
+<para
+>A imagem na coluna do nome reflecte o tio de ficheiro na primeira pasta ("A"). Poderá ser um dos seguintes: </para>
+<itemizedlist>
+     <listitem
+><para
+>Ficheiro normal</para
+></listitem>
+     <listitem
+><para
+>Pasta normal (imagem de pasta)</para
+></listitem>
+     <listitem
+><para
+>Ligação para um ficheiro (imagem de ficheiro com uma seta de ligação)</para
+></listitem>
+     <listitem
+><para
+>Ligação para uma pasta (imagem de pasta com uma seta de ligação)</para
+></listitem>
+</itemizedlist>
+<para
+>Se o tipo de ficheiro for diferente nas outras pastas, então isso é visível nas colunas A/B/C e na janela que mostra os detalhes sobre o item seleccionado. Repare que, neste caso, não poderá ser seleccionada nenhuma operação de junção automaticamente. Ao iniciar a junção, então o utilizador será informado dos problemas desse tipo. </para>
+</sect2>
+
+<sect2 id="coloring"
+><title
+>As Colunas A/B/C e o Esquema de Cores</title>
+<para
+>Como pode ser visto na imagem acima, as cores vermelha, verde, amarela e preta são usadas nas colunas A/B/C. </para>
+<itemizedlist>
+     <listitem
+><para
+>Preto: O item não existe nesta pasta.</para
+></listitem>
+     <listitem
+><para
+>Verde: Item mais recente.</para
+></listitem>
+     <listitem
+><para
+>Amarelo: Mais antigo que o verde, mais recente que o vermelho.</para
+></listitem>
+     <listitem
+><para
+>Vermelho: O item mais antigo.</para
+></listitem>
+</itemizedlist>
+<para
+>Contudo, para os itens que eram idênticos na comparação, a sua cor é também idêntica mesmo que a idade seja diferente. </para
+><para
+>As pastas são consideradas iguais se todos os itens que contêm forem idênticos. Nesse caso, elas terão a mesma cor. Porém, a idade de uma pasta não é tida em consideração de acordo com a sua cor. </para
+><para
+>A ideia do autor para este esquema de coloração veio do <ulink url="http://samba.org/cgi-bin/cvsweb/dirdiff"
+>dirdiff</ulink
+>. As cores lembram as cores de uma folha que é verde quando é nova, vai-se tornando amarela com o tempo e é vermelha quando é antiga. </para>
+
+</sect2
+><sect2 id="operation"
+><title
+>A Coluna de Operação</title>
+<para
+>Depois de comparar as patas, o &kdiff3; avalia também uma proposta para uma operação de junção. Esta é mostrada na coluna de "Operação". O utilizador poderá modificar a operação se carregar na operação que deseja alterar. Irá aparecer um pequeno menu que lhe permite seleccionar uma operação para esse item (Poderá também seleccionar as operações mais necessárias através do teclado. O Ctrl+1/2/3/4/Del irá seleccionar o A/B/C/Juntar/Remover, respectivamente, se estiver disponível.) Esta operação será executada durante a junção. Depende do item e do modo de junção em que se encontra e de que operações estão disponíveis. O modo de junção é um dos seguintes </para>
+<itemizedlist>
+     <listitem
+><para
+>Junção de três pastas (a "A" é tratada como a base mais antiga de ambas).</para
+></listitem>
+     <listitem
+><para
+>Junção de duas pastas.</para
+></listitem>
+     <listitem
+><para
+>Modo de sincronização de duas pastas (activado com a opção "Sincronizar as Directorias").</para
+></listitem>
+</itemizedlist>
+<para
+>Na junção de três pastas, a proposta de operação será: Se para um item ... </para>
+<itemizedlist>
+     <listitem
+><para
+>... todas as três pastas forem iguais: Copiar do C</para
+></listitem>
+     <listitem
+><para
+>... o A e o C são iguais mas o B não: Copiar a partir do B (ou se o B não existir, remover o destino se existir)</para
+></listitem>
+     <listitem
+><para
+>... o A e o B são iguais mas o C não: Copiar a partir do C (ou se o C não existir, remover o destino se existir)</para
+></listitem>
+     <listitem
+><para
+>... o B e o C são iguais mas o A não: Copiar a partir do C (ou se o C não existir, remover o destino se existir)</para
+></listitem>
+     <listitem
+><para
+>... só o A existir: Remover o destino (se existir)</para
+></listitem>
+     <listitem
+><para
+>... só o B existir: Copiar a partir do B</para
+></listitem>
+     <listitem
+><para
+>... só o C existir: Copiar a partir do C</para
+></listitem>
+     <listitem
+><para
+>... o A, o B e o C não são iguais: Juntar</para
+></listitem>
+     <listitem
+><para
+>... o A, o B e o C não tiverem o mesmo tipo de ficheiro (&eg; o A é uma pasta e o B um ficheiro): "Erro: Tipo de Ficheiros em Conflito". Enquanto existirem itens nesta situação, a junção de pastas não poderá começar.</para
+></listitem>
+</itemizedlist>
+<para
+>Na junção de duas pastas, a proposta de operação será: Se para um item ... </para>
+<itemizedlist>
+     <listitem
+><para
+>... ambas as pastas forem iguais: Copiar do B</para
+></listitem>
+     <listitem
+><para
+>... o A existir, mas o B não: Copiar a partir do A</para
+></listitem>
+     <listitem
+><para
+>... o B existir, mas o A não: Copiar a partir do B</para
+></listitem>
+     <listitem
+><para
+>... o A e o B existirem mas não forem iguais: Juntar</para
+></listitem>
+     <listitem
+><para
+>... o A e o B não tiverem o mesmo tipo de ficheiro (p.ex.,  o A é uma pasta e o B um ficheiro): "Erro: Tipo de Ficheiros em Conflito". Enquanto existirem itens nesta situação, a junção de pastas não poderá começar.</para
+></listitem>
+</itemizedlist>
+<para
+>O modo de sincronização só está activo se forem indicadas duas pastas e não se não for indicado nenhum destino explícito, assim como a opção "Sincronizar as directorias" terá de estar activa. Nesse caso, o &kdiff3; irá seleccionar uma operação por omissão, de modo a que ambas as pastas fiquem iguais no fim. Se, para um item ... </para>
+<itemizedlist>
+     <listitem
+><para
+>... ambas as pastas forem iguais: Não será feito nada.</para
+></listitem>
+     <listitem
+><para
+>... o A existir mas o B não: Copiar o A para o B</para
+></listitem>
+     <listitem
+><para
+>... o B existir mas o A não: Copiar o B para o A</para
+></listitem>
+     <listitem
+><para
+>... o A e o B existirem, mas não forem iguais: Juntar e guardar o resultado em ambas as pastas. (Para o utilizador, o nome do ficheiro gravado visível será o B, mas o &kdiff3; irá copiar o B também para o A.)</para
+></listitem>
+     <listitem
+><para
+>... o A e o B não tiverem o mesmo tipo de ficheiro (p.ex.,  o A é uma pasta e o B um ficheiro): "Erro: Tipo de Ficheiros em Conflito". Enquanto existirem itens nesta situação, a junção de pastas não poderá começar.</para
+></listitem>
+</itemizedlist>
+<para
+>Quando duas pastas forem reunidas e a opção "Copiar o mais recente em vez de juntar" estiver seleccionada, então o &kdiff3; irá olhar para as datas e irá optar por escolher o ficheiro mais recente. Se os ficheiros não forem iguais mas tiverem datas iguais, então a operação irá conter "Erro: As datas são iguais mas os ficheiros não.". Enquanto esses itens existirem a junção de pastas não poderá começar. </para>
+</sect2>
+
+<sect2 id="status"
+><title
+>A Coluna de Estado</title>
+<para
+>Durante a junção, os ficheiros serão processados um a seguir ao outro. A coluna de estado irá mostrar "Terminado" para os itens em que a operação de junção foi bem sucedida e outros textos se algo ocorreu de inesperado. Quando se terminar uma junção, o utilizador deverá então fazer uma última verificação para confirmar se o estado de todos os itens é aceitável. </para>
+</sect2>
+
+<sect2 id="statisticscolulmns"
+><title
+>Colunas de Estatísticas</title>
+<para
+>Quando o modo de comparação de ficheiros "Análise Completa" estiver activo nas opções, então o &kdiff3; irá mostrar colunas extra que contêm o número de conflitos não resolvidos, resolvidos, de espaços em branco e dos outros conflitos. (A coluna de resolvidos só irá aparecer ao comparar ou ao juntar três pastas.) </para>
+</sect2>
+
+<sect2 id="selectingvisiblefiles"
+><title
+>Seleccionar os Ficheiros Listados</title>
+<para
+>Diversas opções influenciam os ficheiros que são listados aqui. Algumas estão acessíveis na <link linkend="dirmergeoptions"
+>janela de configuração</link
+>. O menu Directoria contém os itens: </para
+><para
+><itemizedlist>
+     <listitem
+><para
+>"Mostrar os Ficheiros Idênticos": Os ficheiros que foram detectados como iguais em todas as pastas de entrada.</para
+></listitem>
+     <listitem
+><para
+>"Mostrar os Ficheiros Diferentes": Os ficheiros que existem em duas ou mais pastas, mas que não são iguais entre si.</para
+></listitem>
+     <listitem
+><para
+>"Mostrar os Ficheiros Apenas em A": Os ficheiros que existem apenas em A, mas não em B ou C.</para
+></listitem>
+     <listitem
+><para
+>"Mostrar os Ficheiros Apenas em B": Os ficheiros que existem apenas em B, mas não em A ou C.</para
+></listitem>
+     <listitem
+><para
+>"Mostrar os Ficheiros Apenas em C": Os ficheiros que existem apenas em C, mas não em A ou B.</para
+></listitem>
+</itemizedlist
+></para>
+<para
+>Active apenas as opções "Mostrar" para os itens que deseja listar. Se, por exemplo, quiser listar apenas os itens que existem ou em A ou em B, mas não em ambos, terá de activar o "Mostrar os Ficheiros Apenas em A" e "Mostrar os Ficheiros Apenas em B" e desactivar todos os outros ("Mostrar os Ficheiros Idênticos", "Mostrar os Ficheiros Diferentes", "Mostrar os Ficheiros Apenas em C"). A lista será actualizada imediatamente para reflectir as alterações. </para
+><para
+>Estas opções também se aplicam nas pastas, com uma excepção: Se desactivar o "Mostrar os Ficheiros Diferentes" não irá esconder as pastas por completo. Isto só irá funcionar para os ficheiros dentro delas. </para
+><para
+>Lembre-se que, destas opções, só a "Mostrar os Ficheiros Idênticos" é persistente. As outras ficam activas ao iniciar o &kdiff3;. </para>
+</sect2>
+
+</sect1>
+
+
+<sect1 id="dothemerge"
+><title
+>Fazer uma Junção de Pastas</title>
+<para
+>O utilizador tanto poderá reunir o item seleccionado de momento (ficheiro ou pasta) ou todos os itens. Quando tiver feito todas as suas opções de operação (em todas as subpastas também), aí então poderá iniciar a junção. </para
+><para
+>Tenha em atenção que, se não tiver indicado explicitamente uma pasta de destino, então o destino será o "C" no modo de três pastas, o "B" no modo de junção de duas pastas e no modo de sincronização será o "A" e/ou o "B". </para
+><para
+>Se tiver indicado uma pasta de destino, verifique também que todos os itens que deverão estar no resultado, estão na árvore respectiva. Existem algumas opções que fazem com que certos itens sejam omitidos na comparação e junção de pastas. Assinale estas opções para evitar surpresas desagradáveis: </para>
+<itemizedlist>
+     <listitem
+><para
+>"Directorias Recursivas": Se estiver desligada, então os itens em todas as subpastas não serão tratados.</para
+></listitem>
+     <listitem
+><para
+>"Padrão"/"Anti-Padrão": Inclui/exclui os itens que correspondam ao padrão</para
+></listitem>
+     <listitem
+><para
+>"Excluir os Ficheiros Escondidos"</para
+></listitem>
+     <listitem
+><para
+>As <link linkend="selectingvisiblefiles"
+>opções "Mostrar"</link
+> (Mostrar os Ficheiros Iguais/Diferentes, Ficheiros apenas em A/B/C)</para
+></listitem>
+</itemizedlist>
+<para
+>Se mudar a configuração, para mostrar mais ficheiros, é preciso fazer uma nova pesquisa, com a opção "Directoria"->"Pesquisar de Novo". (A razão para tal é que o &kdiff3; omite a comparação dos ficheiros suprimidos por estes critérios.) Se mudou os seus padrões de ficheiros e pastas para excluir os ficheiros, então a lista de ficheiros será imediatamente actualizada, ao fechar a janela de opções. </para
+><para
+>Lembre-se que, quando gravar numa pasta completamente nova, normalmente também irá querer copiar os ficheiros iguais. Nesse caso, active a opção "Mostrar os Ficheiros Iguais". Se a sua pasta de destino é uma das entradas, então não será necessário, porque o ficheiro já estará lá. </para
+><para
+>Se estiver satisfeito até agora, o resto é simples. </para
+><para
+>Para juntar todos os itens: Seleccione "Iniciar/Continuar a junção da directoria" no menu "Directoria" ou carregue em F7 (que é o atalho). Para juntar apenas o item actual: Seleccione "Executar a Operação no Item Actual" ou carregue em F6. </para
+><para
+>Se, devido à existência de tipos de ficheiro em conflito, ainda permanecerem alguns itens com operações inválidas, então irá aparecer uma mensagem onde serão evidenciados esses itens, para que possa seleccionar uma operação válida para cada item. </para
+><para
+>Se juntar todos os itens, irá aparecer uma janela que lhe apresenta as opções "Fazê-lo", "Simulá-lo" e "Cancelar". </para>
+<itemizedlist>
+     <listitem
+><para
+>Seleccione "Simulá-lo" se quiser ver o que seria feito sobre o item sem aplicar de facto as modificações. Será apresentada uma lista descritiva com todas as operações.</para
+></listitem>
+     <listitem
+><para
+>Caso contrário, seleccione "Fazê-lo" para iniciar de facto a junção.</para
+></listitem>
+</itemizedlist>
+<para
+>Nesse caso, o &kdiff3; irá executar a operação indicada para todos os itens. Se for necessária alguma intervenção manual (na junção de ficheiros simples), então irá aparecer uma janela de junção (<link linkend="dirmergebigscreenshot"
+>ver a imagem grande</link
+>). </para
+><para
+>Quando tiver terminado um ficheiro, seleccione de novo "Iniciar/Continuar a junção da directoria" ou a tecla F7. Se não tiver ainda gravado nada, irá aparecer uma janela a pedir-lhe isso. Aí, o &kdiff3; irá passar ao próximo item. </para
+><para
+>Quando o &kdiff3; encontrar um erro, indicar-lhe-á tal facto e irá mostrar a informação descritiva do estado. No fundo desta lista, existirão algumas mensagens de erro que o deverão ajudar a compreender a causa do problema. Quando continuar a junção (com a tecla F7), o &kdiff3; indicar-lhe-á a opção para repetir ou saltar o item que causou o problema. Isto significa que, antes de continuar, poderá escolher outra operação ou resolver o problema por outros meios. </para
+><para
+>Quando a junção estiver completa, o &kdiff3; informá-lo-á então com uma mensagem. </para
+><para
+>Se alguns dos itens foram reunidos individualmente, então o &kdiff3; irá recordar isto (enquanto esta sessão de junção prosseguir) e não os juntará de novo, até que a junção para todos os itens tenha sido executada. Mesmo quando a junção tenha sido ignorada ou não tenha sido gravado nada, estes itens irão contar como completos. Só quando tiver alterado a operação de junção é que o estado de "Pronto" do item será removido e este poderá ser reunido de novo. </para>
+</sect1>
+
+<sect1 id="dirmergeoptions"
+><title
+>Opções para Comparar e Juntar Pastas</title>
+<para
+>As preferências do &kdiff3; (no menu "Configuração"-&gt;"Configurar o &kdiff3;") têm agora uma secção intitulada "Junção de Directorias" com as seguintes opções: </para>
+
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Directorias Recursivas:</emphasis
+></term
+><listitem
+><para
+>Indica se você deseja pesquisar as pastas de forma recursiva.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Padrões de Ficheiros:</emphasis
+></term
+><listitem
+><para
+>Só os ficheiros que correspondam ao padrão ou padrões aqui indicados é que serão colocados na árvore. Poderá ser indicado mais do que um padrão através do separador ponto-e-vírgula ";". São considerados caracteres especiais válidos o "*" e o "?". (&eg; "*.cpp;*.h"). Por omissão, este campo é igual a "*". As pastas não precisam de corresponder a este padrão.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Anti-Padrões de Ficheiros:</emphasis
+></term
+><listitem
+><para
+>Os ficheiros que correspondam ao padrão ou padrões aqui indicados serão excluídos da árvore. Poderá ser indicado mais do que um padrão através do separador ponto-e-vírgula ";". São considerados caracteres especiais válidos o "*" e o "?". Por omissão, este campo é igual a "*.orig;*.o;*.obj".</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Anti-Padrões da Directoria:</emphasis
+></term
+><listitem
+><para
+>As pastas que correspondam ao padrão ou padrões aqui indicados serão excluídas da árvore. Poderá ser indicado mais do que um padrão através do separador ponto-e-vírgula ";". São considerados caracteres especiais válidos o "*" e o "?". Por omissão, este campo é igual a "CVS;deps;.svn".</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Usar CVS-Ignore:</emphasis
+></term
+><listitem
+><para
+>Ignora os ficheiros e pastas que são também ignorados pelo CVS. Muitos dos ficheiros gerados automaticamente são ignorados pelo CVS. A grande vantagem é que esta funcionalidade é específica para cada pasta através de um ficheiro ".cvsignore" local. (Veja em <ulink url="info:/cvs/cvsignore"
+>info:/cvs/cvsignore</ulink
+>.)</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Procurar os Ficheiros e Directorias Escondidos:</emphasis
+></term
+><listitem
+><para
+>Em alguns sistemas de ficheiros, existe um atributo "Escondido". Em outros sistemas, um nome de ficheiro que comece por "." faz com que este seja considerados escondido. Esta opção permite-lhe decidir se deve incluir estes ficheiros na árvore ou não. Por omissão, são incluídos.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Seguir as Ligações de Ficheiros:</emphasis
+></term
+><listitem
+><para
+>Para as ligações aos ficheiros: Quando a opção estiver desactivada, as ligações simbólicas serão comparadas. Caso contrário, serão compilados os ficheiros para os quais apontam as ligações. Por omissão, a opção está desligada.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Seguir as Ligações de Directorias:</emphasis
+></term
+><listitem
+><para
+>Para as ligações a pastas: Quando a opção estiver desactivada, as ligações simbólicas serão comparadas. Se estiver activa, então a ligação será tratada como uma pasta e será pesquisada recursivamente. (Lembre-se que o programa não verifica se a ligação é "recursiva". Por isso, se uma pasta contiver por exemplo uma ligação para ela própria irá causar um ciclo infinito, pelo que ao fim de algum tempo a pilha estoira ou toda a memória será usada e o programa irá estoirar deste modo). Por omissão, a opção está desligada.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Comparação de Nomes de Ficheiros com Distinção de Maiúsculas:</emphasis
+></term
+><listitem
+><para
+>Por omissão, é falso no Windows e verdadeiro nos outros sistemas operativos.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Modo de Comparação de Ficheiros:</emphasis
+></term
+><listitem
+><para>
+<variablelist
+>            
+   <varlistentry
+><term
+><emphasis
+>Comparação Binária:</emphasis
+></term
+><listitem
+><para
+>Este é o modo de comparação de ficheiros por omissão. </para
+></listitem
+></varlistentry
+>         
+   <varlistentry
+><term
+><emphasis
+>Análise Completa:</emphasis
+></term
+><listitem
+><para
+>Faz uma análise completa de cada ficheiro e mostra os resultados nas colunas de informação das estatísticas. (O número de conflitos resolvidos, por resolver, devido a espaços em branco ou a outros casos). A análise completa é mais lenta que uma simples comparação binária e é muito mais lenta se for usada em ficheiros que não contenham texto. (Indique os tipos de anti-padrões necessários.) </para
+></listitem
+></varlistentry
+>         
+   <varlistentry
+><term
+><emphasis
+>Confiar na data de modificação:</emphasis
+></term
+><listitem
+><para
+>Se comparar pastas grandes numa rede lenta, poderá ser mais rápido comparar somente as datas de modificação e os tamanhos dos ficheiros. Porém, este melhoramento de velocidade traz alguma incerteza. Use esta opção com cuidado. Por omissão, está desligada.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Confiar no tamanho:</emphasis
+></term
+><listitem
+><para
+>É semelhante à comparação da data de modificação. Não ocorre nenhuma comparação em si. Dois ficheiros quaisquer são considerados iguais se os seus tamanhos de ficheiros forem iguais. Isto é útil quando a operação de cópia de ficheiros não preservar a data de modificação. Use esta opção com cuidado. Por omissão, está desligada.</para
+></listitem
+></varlistentry>
+</variablelist
+></para
+></listitem
+></varlistentry>
+         
+   <varlistentry
+><term
+><emphasis
+>Sincronizar as Directorias:</emphasis
+></term
+><listitem
+><para
+>Activa o "Modo de Sincronização" em que duas pastas são comparadas e não foi indicada nenhuma pasta de destino. Neste modo, as operações propostas serão escolhidas de modo a que ambas as pastas de origem fiquem iguais no fim. Do mesmo modo, o resultado da junção será gravado em ambas as pastas. Por omissão, esta opção está desligada.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Copiar o mais recente em vez de juntar:</emphasis
+></term
+><listitem
+><para
+>Em vez de juntar, a operação proposta irá copiar os ficheiros mais recentes se ocorreram algumas alterações. (É considerado inseguro, porque implica saber se o outro ficheiro não foi também alterado. Verifique para se certificar em qualquer um dos casos.). Por omissão, a opção está desligada.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Ficheiros de segurança:</emphasis
+></term
+><listitem
+><para
+>Se um ficheiro ou uma pasta completa for substituído por outro ou for removido, então a versão original mudará para um nome com uma extensão ".orig". Se já existir um ficheiro antigo com uma extensão ".orig", então este será removido sem ser criada nenhuma cópia de segurança. Isto também afecta a junção normal de ficheiros simples, não só no modo de junção de pastas. Por omissão, a opção está activa.</para
+></listitem
+></varlistentry>
+</variablelist>
+</sect1>
+
+<sect1 id="other"
+><title
+>Outras Funções na Janela de Junção de Pastas</title>
+<sect2
+><title
+>Modo de Ecrã Repartido/Completo</title>
+<para
+>Normalmente a lista de junção da pasta fica visível enquanto um único ficheiro é comparado ou reunido. Com o rato, o utilizador poderá mover a barra separadora que delimita a lista de ficheiros das janelas de diferenças do texto. Se não a quiser, poderá desactivar a "Janela Repartida" no menu "Directoria". Aí, poderá usar a opção "Comutar a Vista" no menu "Directoria" para alternar entre a lista de ficheiros e a janela de diferenças no texto que irá então ocupar o ecrã completo. </para>
+</sect2>
+<sect2
+><title
+>Comparar ou Juntar um Único Ficheiro</title>
+<para
+>Provavelmente, você irá preferir um duplo-click do rato simples sobre um ficheiro para o poder comparar. Contudo, existe também um item no menu "Directoria". Poderá também juntar directamente um único ficheiro sem iniciar a junção de pastas, através da opção "Juntar o ficheiro actual" do menu "Juntar". Ao gravar o resultado, o estado ficará como terminado e o ficheiro não será reunido de novo se for iniciada uma junção de pastas. </para
+><para
+>Mas repare que esta informação de estado será perdida quando voltar a executar uma pesquisa de pastas: menu "Directoria"->"Pesquisar de novo" </para>
+</sect2>
+<sect2
+><title
+>Comparar ou Juntar Ficheiros com Nomes Diferentes</title>
+<para
+>Em alguns casos, terá de comparar ou juntar ficheiros com nomes diferentes (p.ex., o ficheiro actual e a cópia de segurança na mesma pasta). </para
+><para
+>Seleccione o ficheiro exacto, carregando no ícone na coluna A, B ou C. O primeiro ficheiro seleccionado será então marcado com um "A", enquanto o segundo e o terceiro ficará com um "B" e um "C", independentemente da coluna em que se encontram. Só poderá escolher até três ficheiros desta forma. </para
+><para
+>Siga com a escolha de "Comparar os Ficheiros Explicitamente Seleccionados" ou "Juntar os Ficheiros Explicitamente Seleccionados" no menu "Pasta". Por conveniência, estes itens de menu também aparecem como um menu de contexto, quando carregar com o botão direito no último ficheiro seleccionado. </para
+><para
+>A comparação ou junção de um ficheiro irá acontecer na mesma janela. Se este método for usado para as pastas, será aberta uma nova janela. </para
+></sect2>
+</sect1>
+</chapter>
+
+<chapter id="misc">
+<title
+>Tópicos Diversos</title>
+<sect1 id="networktransparency">
+<title
+>Transparência na rede através do KIO</title>
+<sect2
+><title
+>KIO-Slaves</title>
+<para
+>O KDE suporta a transparência na rede através dos 'KIO-slaves'. O &kdiff3; usa isto para ler os ficheiros de entrada e para pesquisar as pastas. Isto significa que você poderá indicar ficheiros e pastas em recursos locais e remotos através dos URLs. </para
+><para
+>Exemplo: </para
+><para>
+<screen
+><command
+>kdiff3</command
+> teste.cpp  ftp://ftp.longe.org/teste.cpp
+   <command
+>kdiff3</command
+> tar:/home/eu/pacote.tar.gz/pasta ./pasta
+</screen>
+</para>
+<para
+>A primeira linha compara um ficheiro local com outro ficheiro num servidor de FTP. A segunda linha compara uma pasta dentro de um pacote comprimido com uma pasta local. </para
+><para
+>Outros 'KIO-slaves' que serão interessantes: </para>
+<itemizedlist>
+<listitem
+><para
+>Ficheiros da WWW (http:),</para
+></listitem>
+<listitem
+><para
+>Ficheiros de FTP (ftp:),</para
+></listitem>
+<listitem
+><para
+>Transferência de ficheiros cifrada (fish:, sftp:),</para
+></listitem>
+<listitem
+><para
+>Recursos do Windows (smb:),</para
+></listitem>
+<listitem
+><para
+>Ficheiros locais (file:),</para
+></listitem>
+</itemizedlist>
+<para
+>Outras coisas que são possíveis, mas provavelmente serão menos interessantes: </para>
+<itemizedlist>
+<listitem
+><para
+>Páginas do 'man' (man:),</para
+></listitem>
+<listitem
+><para
+>Páginas do 'info' (info:),</para
+></listitem>
+</itemizedlist>
+</sect2>
+
+<sect2
+><title
+>Como Escrever URLs</title>
+<para
+>Um dado URL tem uma sintaxe diferente, em comparação com as localizações dos ficheiros e pastas locais. Alguns factores terão de ser tidos em consideração: </para>
+<itemizedlist>
+<listitem
+><para
+>Uma localização poderá ser relativa e conter "." ou "..". Isto não é possível para os URLs, dado que estes são sempre absolutos. </para
+></listitem
+><listitem
+><para
+>Os caracteres especiais têm de ser escritos "escapados". ("#"->"%23", espaço->"%20", etc.) &eg; Um ficheiro com o nome "/#xpto#" iria ter o URL "file:/%23xpto%23". </para
+></listitem
+><listitem
+><para
+>Quando os URLs não funcionarem como seria de esperar, tente abri-los primeiro no Konqueror. </para
+></listitem>
+</itemizedlist>
+
+</sect2>
+
+<sect2
+><title
+>Capacidades dos 'KIO-Slaves'</title>
+<para
+>A transparência na rede tem um senão: nem todos os recursos têm as mesmas capacidades. </para
+><para
+>Algumas das vezes estas são devidas ao sistema de ficheiros do servidor, enquanto que noutras ocasiões poderá ser devido ao protocolo. Aqui está uma pequena lista das restrições: </para>
+<itemizedlist>
+<listitem
+><para
+>Em alguns casos não existe o suporte para ligações simbólicas. </para
+></listitem
+><listitem
+><para
+>Ou não existe forma de distinguir se uma ligação aponta para um ficheiro ou uma pasta; é assumido sempre um ficheiro. (ftp:, sftp:). </para
+></listitem
+><listitem
+><para
+>Não é sempre possível determinar o tamanho do ficheiro. </para
+></listitem
+><listitem
+><para
+>Existe um suporte de permissões limitado. </para
+></listitem
+><listitem
+><para
+>Não existe a possibilidade de modificar as permissões ou a data de modificação, como tal as permissões ou a data de uma cópia poderão ser diferentes do original. (Veja a opção "Confiar no tamanho".) (A modificação de permissões ou das datas só é possível para os ficheiros locais.) </para
+></listitem>
+</itemizedlist>
+</sect2>
+</sect1>
+
+<sect1 id="kpart">
+<title
+>Usar o &kdiff3; como uma KPart</title>
+<para
+>O &kdiff3; é uma KPart. De momento, implementa a interface "KParts::ReadOnlyPart". </para
+><para
+>A sua utilização principal é como visualizador de diferenças no KDevelop. O KDevelop inicia sempre o visualizador de diferenças interno em primeiro lugar. Para invocar o &kdiff3;, carregue com o botão direito do rato na janela do visualizador de diferenças e seleccionar "Mostrar no KDiff3Part" no menu de contexto. </para
+><para
+>O &kdiff3; necessita normalmente de dois ficheiros completos como entrada. Se for usado como componente KPart, o &kdiff3; irá assumir que o ficheiro de entrada é um ficheiro de 'patch' no formato unificado. O &kdiff3; irá então obter os nomes dos ficheiros originais do ficheiro de 'patch'. Pelo menos um dos dois ficheiros terá de estar disponível. O &kdiff3; irá então invocar o <command
+>patch</command
+> para criar de novo o segundo ficheiro. </para
+><para
+>No Konqueror;, o utilizador poderá seleccionar um ficheiro de 'patch' e seleccionar "Antevisão em"-"KDiff3Part" no menu de contexto. Tenha em atenção que isto não irá funcionar se nenhum dos ficheiros originais estiver disponível e não é fiável se os ficheiros originais tiverem sido alterados desde que o ficheiro de 'patch' foi gerado. </para
+><para
+>Quando é executado como um componente, o &kdiff3; só oferece uma diferença de dois ficheiros, uma barra de ferramentas muito pequena e um menu. A junção ou a comparação de pastas não é suportada nesse caso. </para>
+</sect1>
+</chapter>
+
+<chapter id="faq">
+<title
+>Perguntas e Respostas</title>
+&reporting.bugs; &updating.documentation; <qandaset id="faqlist">
+
+<qandaentry
+><question
+><para
+>Porque é que se chama "&kdiff3;"? </para
+></question
+><answer
+><para
+>As ferramentas "KDiff" e "KDiff2" (agora chamada Kompare;) já existiam. Para além disso, o &kdiff3; deveria sugerir que consegue juntar ficheiros como a ferramenta "diff3" da colecção de ferramentas do Diff. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Porque é que é lançado segundo a GPL? </para
+></question
+><answer
+><para
+>O autor usou programas GPL durante bastante tempo até agora e aprendeu bastante ao olhar para bastante código. Daí, este é o "Muito Obrigado" para todos os programadores que também o fizeram ou irão fazer no futuro. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Faltam alguns botões e funções. O que é que se passa? </para
+></question
+><answer
+><para
+>Você compilou a partir do código mas não indicou provavelmente o prefixo correcto do KDE com o "configure". Por omissão, o "configure" deseja instalar no "/usr/local", mas aí o KDE não consegue encontrar o ficheiro de recursos da interface do utilizador (isto é, o "kdiff3ui.rc"). O ficheiro README contém mais informações sobre o prefixo correcto. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Muitas das vezes as linhas que são semelhantes mas não idênticas aparecem umas ao lado das outras mas noutros casos não. Porquê? </para
+></question
+><answer
+><para
+>As linhas em que apenas a quantidade de espaços em branco é diferente são tratadas como "iguais" à primeira vista, embora apenas um carácter que não seja um espaço em branco faça com que as linhas sejam "diferentes". Se as linhas semelhantes aparecerem uma ao lado da outra, isto poderá ser de facto uma coincidência, mas é felizmente o caso mais frequente. Veja também em <link linkend="manualdiffhelp"
+>Ajuda das Diferenças Manuais</link
+>. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Porque é que todos os conflitos deverão ser resolvidos para que o resultado da gravação possa ser gravado? </para
+></question
+><answer
+><para
+>Para cada secção igual ou diferente, o editor na janela do resultado da junção recorda onde é que esta começa ou termina. Isto é necessário para que os conflitos possam ser resolvidos manualmente ao seleccionar simplesmente o botão da origem (A, B ou C). Esta informação é perdida durante a gravação como texto e corresponde a demasiado esforço criar um formato de ficheiro especial que suporte a gravação e a reposição de toda a informação necessária. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Como é que posso sincronizar as janelas de diferenças e junção, de modo que todas mostrem a mesma posição de texto? </para
+></question
+><answer
+><para
+>Carregue na coluna de resumo à esquerda do texto. (<link linkend="synchronise_views"
+>Veja também aqui.</link
+>) </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Porque é que o editor na janela do resultado da junção não tem uma função para "desfazer"? </para
+></question
+><answer
+><para
+>Isso era demasiado difícil até agora. Você poderá sempre repor uma versão de uma origem (A, B ou C) se carregar no botão respectivo. Para uma edição extensa, recomenda-se a utilização de outro editor, de qualquer forma. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Quando eu removi algum texto, apareceu de repente "&lt;Sem linha de origem&gt;" e esta não pode ser removida. O que é que significa e como é que se poderá removê-la? </para
+></question
+><answer
+><para
+>Para cada secção igual ou diferente, o editor na janela do resultado da junção recorda onde é que esta começa ou termina. O "&lt;Sem linha de origem&gt;" significa que não existe mais nada livre numa secção, nem mesmo um carácter de mudança de linha. Isto poderá acontecer durante a junção automática ou durante a edição. Isto não é nenhum problema, dado que esta dica não irá aparecer no ficheiro gravado. Se você quiser os dados originais de volta, basta seleccionar a secção (carregue na coluna de resumo à esquerda) e depois no botão da origem com o conteúdo necessário (A/B ou C). </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Porque é que o &kdiff3; não suporta o realce de sintaxe? </para
+></question
+><answer
+><para
+>O &kdiff3; já usa demasiadas cores para o realce das diferenças. Se suportasse o realce de sintaxe, tornar-se-ia confuso. Use outro editor para esse efeito. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Posso usar o &kdiff3; para comparar ficheiros do OpenOffice.Org, Word, Excel, PDF, &etc;? </para
+></question
+><answer
+><para
+>Ainda que o &kdiff3; analise qualquer tipo de ficheiro, o resultado poderá não ser muito satisfatório para si. </para
+><para
+>O &kdiff3; foi feito para comparar ficheiros de texto puros. O OpenOffice, Word, Excel etc. gravam muito mais informação nos ficheiros (acerca dos tipos de letra, imagens, páginas, cores, etc.), que o &kdiff3; não conhece. Deste modo, o &kdiff3; mostrar-lhe-á o conteúdo do ficheiro interpretado como texto puro, mas este poderá estar ilegível ou, pelo menos, ficará muito esquisito. </para
+><para
+>Dado que a maioria dos programas, nos dias de hoje, gravam o seu conteúdo no formato XML, poderá ser capaz de os ler como texto puro. Por isso, se a alteração foi pequena, o &kdiff3; podê-lo-á ajudar à mesma. </para
+><para
+>A melhor solução, se quiser apenas comparar o texto (sem as imagens incorporadas, como as imagens), é usar o "Seleccionar Tudo" e o "Copiar" no seu programa, para copiar o texto interessante para a área de transferência e depois, no &kdiff3;, colar o texto em qualquer uma das janelas de entrada. (Veja também o <link linkend="selections"
+>Seleccionar, Copiar e Colar</link
+>.) </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Para onde foi a opção de pastas "Listar apenas os deltas"? </para
+></question
+><answer
+><para
+>Existem agora várias <link linkend="selectingvisiblefiles"
+>opções "Mostrar"</link
+> no menu de pastas. Se desactivar o "Mostrar os ficheiros iguais", irá obter o resultado que o "Listar apenas os deltas" fazia. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Como é que faço uma grande selecção na janela de entrada de diferenças, dado que o deslocamento leva tanto tempo? </para
+></question
+><answer
+><para
+>Comece a selecção da forma normal (carregue e mantenha o botão esquerdo do rato carregado). Depois, use as teclas de navegação (p.ex., o Page Up, Page Down), enquanto mantém carregado o botão esquerdo do rato. (Veja também em <link linkend="selections"
+>Seleccionar, Copiar e Colar</link
+>.) </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Existe demasiada informação aqui, mas a sua dúvida ainda não foi respondida? </para
+></question
+><answer
+><para
+>Por favor envie ao autor a sua dúvida. Agradece-se qualquer comentário. </para
+></answer
+></qandaentry>
+
+</qandaset>
+</chapter>
+
+<chapter id="credits">
+
+<title
+>Créditos e Licença</title>
+
+<para
+>&kdiff3; - Ferramenta de Comparação e Junção de Ficheiros e Pastas </para>
+<para
+>Programa com 'copyright' 2002-2007 de Joachim Eibl <email
+>joachim.eibl at gmx.de</email
+> </para>
+<para
+>Vieram várias ideias giras e relatórios de erros dos colegas do autor e de pessoas da Wild Wild Web. Muito obrigado! </para>
+
+<para
+>Documentação Copyright &copy; 2002-2007 Joachim Eibl <email
+>joachim.eibl at gmx.de</email
+> </para>
+
+<para
+>Tradução de José Nuno Pires <email
+>zepires@gmail.com</email
+></para
+> 
+&underFDL; &underGPL; </chapter>
+
+<appendix id="installation">
+<title
+>Instalação</title>
+
+<sect1 id="getting-kdiff3">
+<title
+>Como obter o &kdiff3;</title>
+
+<para
+>Você poderá obter a última versão do &kdiff3; na sua página pessoal em <ulink url="http://kdiff3.sourceforge.net"
+>http://kdiff3.sourceforge.net</ulink
+>. </para
+><para
+>O &kdiff3; está também disponível para outras plataformas. Veja a página pessoal para mais detalhes. </para>
+
+
+</sect1>
+
+<sect1 id="requirements">
+<title
+>Requisitos</title>
+
+<para
+>Para poder usar todas as funcionalidades com sucesso do &kdiff3;, precisa do &kde; 3.1 ou posterior. </para
+><para
+>Para mais informações sobre como correr o &kdiff3; noutras plataformas sem o KDE, veja por favor a <ulink url="http://kdiff3.sourceforge.net"
+>página pessoal</ulink
+>. </para
+><para
+>O utilizador poderá encontrar uma lista das alterações em <ulink url="http://kdiff3.sourceforge.net/ChangeLog"
+>http://kdiff3.sourceforge.net/ChangeLog</ulink
+> ou no ficheiro "ChangeLog" do pacote de código. </para>
+</sect1>
+
+<sect1 id="compilation">
+<title
+>Compilação e Instalação</title>
+
+<para
+>Para poder compilar e instalar o &kdiff3; num sistema com o KDE, escreva o seguinte na pasta de base da distribuição do &kdiff3;:</para>
+
+<screen
+><prompt
+>%</prompt
+> <userinput
+><command
+>./configure --prefix=<replaceable
+>kde-dir</replaceable
+></command
+></userinput>
+<prompt
+>%</prompt
+> <userinput
+><command
+>make</command
+></userinput>
+<prompt
+>%</prompt
+> <userinput
+><command
+>make</command
+> install</userinput
+>
+</screen>
+<para
+>O <replaceable
+>kde-dir</replaceable
+> corresponde à pasta que contém o KDE no seu sistema. Se não tiver a certeza, leia o ficheiro README para mais detalhes. </para>
+<para
+>Se não usar o KDE, não use o <command
+>configure</command
+>, mas siga sim as instruções dos sistemas apenas em Qt, no ficheiro README.</para>
+<para
+>Dado que o &kdiff3; usa o <command
+>autoconf</command
+> e o <command
+>automake</command
+>, você não deverá ter problemas a compilá-lo. No caso de ter alguns problemas, por favor comunique-os nas listas de correio do &kde;.</para>
+
+</sect1>
+
+</appendix>
+
+&documentation.index;
+</book>
+
+<!--
+Local Variables:
+mode: sgml
+sgml-minimize-attributes:nil
+sgml-general-insert-case:lower
+sgml-indent-step:0
+sgml-indent-data:nil
+End:
+
+vim:tabstop=2:shiftwidth=2:expandtab
+-->
diff --git a/doc/sv/CMakeLists.txt b/doc/sv/CMakeLists.txt
new file mode 100644 (file)
index 0000000..6d77e01
--- /dev/null
@@ -0,0 +1 @@
+kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/sv SUBDIR kdiff3)
diff --git a/doc/sv/index.docbook b/doc/sv/index.docbook
new file mode 100644 (file)
index 0000000..b41bfb7
--- /dev/null
@@ -0,0 +1,2967 @@
+<?xml version="1.0" ?>
+<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
+  <!ENTITY kdiff3 "<application
+>KDiff3</application
+>">
+  <!ENTITY kappname "&kdiff3;">
+  <!ENTITY package "extragear-utils">
+  <!ENTITY % addindex "IGNORE">
+  <!ENTITY % Swedish "INCLUDE">
+]>
+
+<book lang="&language;">
+
+<!-- This header contains all of the meta-information for the document such
+as Authors, publish date, the abstract, and Keywords -->
+
+<bookinfo>
+<title
+>Handbok &kdiff3;</title>
+
+<authorgroup>
+<author
+><firstname
+>Joachim</firstname
+> <surname
+>Eibl</surname
+> <affiliation
+><address
+> <email
+>joachim.eibl snabela gmx.de</email>
+</address
+></affiliation>
+</author>
+<othercredit role="translator"
+><firstname
+>Stefan</firstname
+><surname
+>Asserhäll</surname
+><affiliation
+><address
+><email
+>stefan.asserhall@comhem.se</email
+></address
+></affiliation
+><contrib
+>Översättare</contrib
+></othercredit
+> 
+</authorgroup>
+
+<copyright>
+<year
+>2002-2007</year>
+<holder
+>Joachim Eibl</holder>
+</copyright>
+<!-- Translators: put here the copyright notice of the translation -->
+<!-- Put here the FDL notice.  Read the explanation in fdl-notice.docbook
+     and in the FDL itself on how to use it. -->
+<legalnotice
+>&FDLNotice;</legalnotice>
+
+<!-- Date and version information of the documentation
+Don't forget to include this last date and this last revision number, we
+need them for translation coordination !
+Please respect the format of the date (YYYY-MM-DD) and of the version
+(V.MM.LL), it could be used by automation scripts.
+Do NOT change these in the translation. -->
+
+<date
+>2007-31-03</date>
+<releaseinfo
+>0.9.92</releaseinfo>
+
+
+<abstract>
+<para
+>&kdiff3; är ett verktyg för jämförelser och sammanfogning av filer och kataloger, som <itemizedlist>
+<listitem
+><para
+>jämför och sammanfogar två eller tre indatafiler med text eller kataloger,</para
+></listitem>
+<listitem
+><para
+>visar skillnaden rad-för-rad och tecken-för-tecken(!),</para
+></listitem>
+<listitem
+><para
+>tillhandahåller en automatisk sammanfogningsfunktion,</para
+></listitem>
+<listitem
+><para
+>har en editor för bekväm upplösning av sammanfogningskonflikter,</para
+></listitem>
+<listitem
+><para
+>erbjuder nätverkstransparens via KIO,</para
+></listitem>
+<listitem
+><para
+>har alternativ för att färglägga eller dölja ändringar av blanktecken och kommentarer,</para
+></listitem>
+<listitem
+><para
+>stöder Unicode, UTF-8 och andra filkodningar,</para
+></listitem>
+<listitem
+><para
+>skriver ut skillnader,</para
+></listitem>
+<listitem
+><para
+>stöder versionshanteringsnyckelord och historiksammanfogning.</para
+></listitem>
+</itemizedlist>
+</para
+><para
+>Det här dokumentet beskriver &kdiff3; version 0.9.92. </para>
+</abstract>
+
+<!-- This is a set of Keywords for indexing by search engines.
+Please at least include KDE, the KDE package it is in, the name
+ of your application, and a few relevant keywords. -->
+
+<keywordset>
+<keyword
+>KDE</keyword>
+<keyword
+>kdeextragear</keyword>
+<keyword
+>kdiff3</keyword>
+<keyword
+>diff</keyword>
+<keyword
+>sammanfoga</keyword>
+<keyword
+>CVS</keyword>
+<keyword
+>trippeljämförelse</keyword>
+<keyword
+>jämföra</keyword>
+<keyword
+>filer</keyword>
+<keyword
+>kataloger</keyword>
+<keyword
+>versionshantering</keyword>
+<keyword
+>trevägs sammanfogning</keyword>
+<keyword
+>skillnader på plats</keyword>
+<keyword
+>synkronisera</keyword>
+<keyword
+>kpart</keyword>
+<keyword
+>kio</keyword>
+<keyword
+>nätverkstransparent</keyword>
+<keyword
+>editor</keyword>
+<keyword
+>blanktecken</keyword>
+<keyword
+>kommentarer</keyword>
+</keywordset>
+
+</bookinfo>
+
+<chapter id="introduction"
+><title
+>Inledning</title>
+<sect1 id="why"
+><title
+>Ännu ett jämförelsegränssnitt?</title>
+<para
+>Det finns flera grafiska jämförelseverktyg. Varför ska du välja &kdiff3;? Låt mig tala om varför jag skrev det. </para
+><para
+>&kdiff3; påbörjades därför att jag var tvungen att göra en svår sammanfogning. Att sammanfoga är nödvändigt när flera personer arbetar med samma fil i ett projekt. En sammanfogning kan vara delvis automatiserad, när sammanfogningsverktyget inte bara har tillgång till de nya ändrade filerna (som kallas "grenar"), utan också originalfilen (som kallas "bas"). Sammanfogningsverktyget väljer automatiskt en ändring som bara gjorts i en gren. När flera bidragsgivare ändrar samma rader, detekterar sammanfogningsverktyget en konflikt som måste lösas manuellt. </para
+><para
+>Sammanfogningen var svår eftersom en bidragsgivare hade ändrat mycket och rättat indenteringen på många ställen. Den andra bidragsgivaren hade också ändrat mycket text i samma fil, vilket orsakade flera konflikter vid sammanfogningen. </para
+><para
+>Verktyget som jag då använde visade bara ändrade rader, men inte vad som hade ändrats inom raden. Det fanns inte heller någon information om var bara indenteringen hade ändrats. Sammanfogningen var en mindre mardröm. </para
+><para
+>Det var alltså början. Den första versionen kunde visa skillnader på en rad, och visade skillnader i blanktecken. Senare tillkom många funktioner för att öka användbarheten. </para
+><para
+>Om du till exempel snabbt vill jämföra en text, kan du kopiera den till klippbordet och klistra in i endera jämförelsefönstret. </para
+><para
+>En funktion som krävde en stor ansträngning var funktionen för katalogjämförelse och sammanfogning, som gjorde programmet till en nästan fullständig filbläddrare. </para
+><para
+>Jag hoppas att &kdiff3; fungerar för dig, också. Ha det så kul! </para
+><para
+>Joachim Eibl (2003) </para>
+</sect1>
+
+<sect1 id="screenshots"
+><title
+>Skärmbilder och funktioner</title>
+<para
+>Den här skärmbilden visar skillnaden mellan två textfiler</para>
+<para
+>(Med en tidig version av &kdiff3;):</para>
+<screenshot
+><mediaobject>
+   <imageobject
+><imagedata fileref="screenshot_diff.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+
+<para
+>Trevägs sammanfogning stöds fullständigt. Den är användbar om två personer ändrar kod oberoende av varandra. Originalfilen (basen) används för att hjälpa &kdiff3; att automatiskt välja de riktiga ändringarna. Sammanfogningseditorn under jämförelsefönstren låter dig lösa konflikter, medan utdata du kommer att få visas. Skärmbilden visar tre indatafiler som håller på att' sammanfogas: </para
+><para>
+<screenshot
+><mediaobject>
+   <imageobject
+><imagedata fileref="screenshot_merge.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+</para>
+
+<para id="dirmergebigscreenshot"
+>&kdiff3; hjälper dig också att jämföra och sammanfoga hela kataloger. Den här skärmbilden visar &kdiff3; under en katalogsammanfogning: </para
+><para>
+<screenshot
+><mediaobject>
+   <imageobject
+><imagedata fileref="dirmergebig.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+</para>
+</sect1>
+
+<sect1 id="features"
+><title
+>Mer funktioner</title>
+<sect2
+><title
+>Rad-för-rad och tecken-för-tecken jämförelsevisning</title>
+<para
+>Genom att använda möjligheterna hos en grafisk färgskärm, visar &kdiff3; exakt vad skillnaderna är. När du måste göra många kodgranskningar, gillar du det här. </para>
+<screenshot
+><mediaobject>
+   <imageobject
+><imagedata fileref="letter_by_letter.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+</sect2>
+
+<sect2
+><title
+>Se skillnader i blanktecken med en blick</title>
+<para
+>Mellanslag och tabulatorer som skiljer sig åt syns. När rader bara skiljer sig i mängden blanktecken syns det med en blick i sammanfattningskolumnen till vänster. (Inga mer problem om någon ändrar indenteringen.) </para>
+<screenshot
+><mediaobject>
+   <imageobject
+><imagedata fileref="white_space.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+</sect2>
+
+<sect2
+><title
+>Trevägsjämförelse</title>
+<para
+>Analysera tre filer och se var de skiljer sig åt. </para
+><para
+>Vänster/mitten/höger fönster kallas A/B/C och har blå/grön/magenta färg. </para
+><para
+>Om en fil är likadan och en annan annorlunda för en rad, så visar färgerna vilken fil som är annorlunda. Den röda färgen betyder att båda de andra filerna är olika. </para>
+<screenshot
+><mediaobject>
+   <imageobject
+><imagedata fileref="triple_diff.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+</sect2>
+
+<sect2
+><title
+>Bekväm sammanfogning av två eller tre indatafiler</title>
+<para
+>&kdiff3; kan användas för att sammanfoga två eller tre indatafiler och sammanfogar automatiskt så mycket som möjligt. Resultatet visas i ett redigerbart fönster där de flesta konflikter kan lösas med ett enda musklick. Välj knapparna A/B/C i verktygsraden för att välja källan som ska användas. Du kan också välja mer än en källa. Eftersom utmatningsfönstret är en editor, kan till och med konflikter som behöver ytterligare korrigering lösas här utan att kräva ett annat verktyg. </para>
+</sect2>
+
+<sect2
+><title
+>Och ...</title>
+<itemizedlist>
+   <listitem
+><para
+>Snabb navigering via knappar.</para
+></listitem>
+   <listitem
+><para
+>Ett musklick i sammanfattningskolumnen synkroniserar alla fönster så att samma position visas.</para
+></listitem>
+   <listitem
+><para
+>Markera och kopiera från vilket fönster som helst, och klistra in i resultatfönstret för sammanfogning.</para
+></listitem>
+   <listitem
+><para
+>Översiktskolumn som visar var ändringar och konflikter finns.</para
+></listitem>
+   <listitem
+><para
+>Färgerna kan justeras enligt dina specifika önskemål.</para
+></listitem>
+   <listitem
+><para
+>Justerbar flikstorlek.</para
+></listitem>
+   <listitem
+><para
+>Alternativ för att infoga mellanslag istället för tabulatortecken.</para
+></listitem>
+   <listitem
+><para
+>Öppna filer bekvämt via dialogrutor, eller ange filnamn på kommandoraden.</para
+></listitem>
+   <listitem
+><para
+>Sök efter strängar i alla textfönster. Sök (Ctrl+F) och Sök igen (F3)</para
+></listitem>
+   <listitem
+><para
+>Visa radnummer för varje rad. </para
+></listitem>
+   <listitem
+><para
+>Klistra in klippbordet eller dra text till ett indatafönster för jämförelse</para
+></listitem>
+   <listitem
+><para
+>Nätverkstransparens via KIO.</para
+></listitem>
+   <listitem
+><para
+>Kan användas för jämförelsevisning i KDevelop 3.</para
+></listitem>
+   <listitem
+><para
+>Radbrytning för långa rader.</para
+></listitem>
+   <listitem
+><para
+>Stöd för Unicode, UTF-8 och andra kodningar.</para
+></listitem>
+   <listitem
+><para
+>Stöd för språk som läses från höger till vänster.</para
+></listitem>
+   <listitem
+><para
+>...</para
+></listitem>
+</itemizedlist>
+</sect2>
+</sect1>
+</chapter>
+
+<chapter id="documentation"
+><title
+>Filjämförelse och sammanfogning</title>
+
+<sect1 id="commandline"
+><title
+>Kommandoradsväljare</title>
+
+<sect2
+><title
+>Jämföra två filer: </title>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>fil1 fil2</replaceable
+>
+</screen>
+</sect2>
+
+<sect2
+><title
+>Sammanfoga två filer: </title>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>fil1 fil2</replaceable
+> -m
+   <command
+>kdiff3</command
+> <replaceable
+>fil1 fil2</replaceable
+> -o <replaceable
+>utdatafil</replaceable
+>
+</screen>
+</sect2>
+
+<sect2
+><title
+>Jämföra tre filer: </title>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>fil1 fil2 fil3</replaceable
+>
+</screen>
+</sect2>
+
+<sect2
+><title
+>Sammanfoga tre filer: </title>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>fil1 fil2 fil3</replaceable
+> -m
+   <command
+>kdiff3</command
+> <replaceable
+>fil1 fil2 fil3</replaceable
+> -o <replaceable
+>utdatafil</replaceable
+>
+</screen>
+<para
+>Observera att <replaceable
+>fil1</replaceable
+> behandlas som bas för <replaceable
+>fil2</replaceable
+> och <replaceable
+>fil3</replaceable
+>. </para>
+</sect2>
+
+<sect2
+><title
+>Specialfall: Filer med samma namn </title>
+<para
+>Om alla filer har samma namn men finns i olika kataloger, kan du reducera hur mycket du måste skriva genom att bara ange filnamnet för den första filen. T.ex.: </para>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>kat1/filnamn kat2 kat3</replaceable
+>
+</screen>
+</sect2>
+
+<sect2
+><title
+>Kommandorad för att starta en katalogjämförelse eller sammanfogning: </title>
+<para
+>Det här är mycket likt, men nu handlar det om kataloger.</para>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>kat1 kat2</replaceable>
+   <command
+>kdiff3</command
+> <replaceable
+>kat1 kat2</replaceable
+> -o <replaceable
+>målkat</replaceable>
+   <command
+>kdiff3</command
+> <replaceable
+>kat1 kat2 kat3</replaceable>
+   <command
+>kdiff3</command
+> <replaceable
+>kat1 kat2 kat3</replaceable
+> -o <replaceable
+>målkat</replaceable
+>
+</screen>
+<para
+>För katalogjämförelse och sammanfogning kan du fortsätta att läsa <link linkend="dirmerge"
+>här</link
+>.</para>
+</sect2>
+
+<sect2
+><title
+>Andra kommandoradsväljare</title>
+<para
+>För att se alla tillgängliga kommandoradsväljare, skriv</para>
+<screen
+><command
+>kdiff3</command
+> --help
+</screen>
+<para
+>Exempel på utmatning:</para>
+<screen
+>Väljare:
+  -m, --merge               Sammanfoga indata.
+  -b, --base file           Explicit basfil. För att fungera tillsammans med vissa verktyg.
+  -o, --output file         Utdatafil. Betyder underförstått -m. T.ex.: -o ny_fil.txt
+  --out file                Utdatafil, igen. (för att fungera med vissa verktyg.)
+  --auto                    Inget grafiskt gränssnitt om alla konflikter kan lösas automatiskt (kräver -o fil)
+  --qall                    Lös inte konflikter automatiskt. (För att fungera med andra verktyg...)
+  --L1 alias1               Synlig ersättning av namn för indatafil 1 (bas).
+  --L2 alias2               Synlig ersättning av namn för indatafil 2.
+  --L3 alias3               Synlig ersättning av namn för indatafil 3.
+  -L, --fname alias         Alternativ synlig ersättning av namn. Ange detta en gång för all indata.
+  --cs string               Överskrid en inställning. Använd en gång för varje inställning, t.ex.  --cs "AutoAdvance=1"
+  --confighelp              Visa lista med inställningar och nuvarande värden.
+  --config file             Använd en annan inställningsfil.
+</screen>
+<para
+>Väljaren <option
+>-cs</option
+> låter dig justera ett inställningsalternativ som annars bara kan justeras via inställningsdialogrutorna. Men var medveten om att när &kdiff3; avslutas lagras det ändrade värdet tillsammans med andra inställningar. Med <option
+>--confighelp</option
+> kan du ta reda på namnen på tillgängliga alternativ och nuvarande värden.</para>
+<para
+>Via <option
+>--config</option
+> kan du ange en annan inställningsfil. Om du ofta använder &kdiff3; med helt olika inställningar låter det dig enkelt byta mellan dem.</para>
+</sect2>
+<sect2
+><title
+>Kommandoradsväljare som ignoreras</title>
+<para
+>Många personer vill använda &kdiff3; tillsammans med något versionshanteringssystem, men när versionshanteringssystemet anroppar &kdiff3; med kommandoradsväljare som &kdiff3; inte känner igen, avslutas &kdiff3; med ett fel. Integrationsinställningarna gör det möjligt att ange kommandoradsväljare som ska ignoreras av &kdiff3;. De visas i användningshjälpen som i det här exemplet:</para>
+<screen
+>--<replaceable
+>väljare</replaceable
+>                     Ignoreras. (anvädardefinierad)
+</screen>
+<variablelist>
+  <varlistentry
+><term
+><emphasis
+>Kommandoradsväljare att ignorera:</emphasis
+></term
+><listitem
+><para
+>En lista med väljare, åtskilda med semikolon ';'. När en av dessa väljare finns på kommenderaden, ignorerar &kdiff3; den och kör utan att rapportera ett fel. (Förval är "u;query;html;abort").</para
+></listitem
+></varlistentry>
+</variablelist>
+<para
+>Om det inte är nog, rekommenderas du att skriva ett skalskript som gör översättningen av väljare.</para>
+</sect2>
+
+</sect1>
+
+<sect1 id="opendialog"
+><title
+>Dialogrutan Öppna</title>
+<para
+>Eftersom många indatafiler måste kunna väljas, har programmet en särskild öppningsdialogruta: </para>
+<screenshot
+><mediaobject>
+<imageobject
+><imagedata fileref="open_dialog.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+<para
+>Öppningsdialogrutan tillåter att filnamnen redigeras för hand, att en fil väljes via filbläddraren ("Fil...") eller att senast använda filer väljes i kombinationsrutan. Om du öppnar dialogrutan igen, finns de nuvarande namnen fortfarande där. Den tredje indatafilen krävs inte. Om fältet för "C" förblir tomt, görs bara en tvåvägs jämförelseanalys. </para
+><para
+>Du kan också välja en katalog med "Katalog...". Om en katalog anges för A, startar en katalogjämförelse och sammanfogning. Om A anger en fil, men B, C eller utmatningen anger en katalog, använder &kdiff3; filnamnet från A i de angivna katalogerna. </para
+><para
+>Om "Sammanfoga" är valt, blir raden "Utmatning" redigerbar. Det krävs dock inte att utdatafilens namn anges omedelbart. Du kan också vänta med detta till du sparar. </para
+><para
+>Knappen "Anpassa..." visar inställningsdialogrutan, så att du kan ställa in alternativ innan analysen utförs. </para>
+</sect1>
+
+<sect1 id="pasteinput"
+><title
+>Klistra in eller släpp indata</title>
+<para
+>Ibland vill du jämföra delar av en text som inte är en egen fil. &kdiff3; låter dig också klistra in text från klippbordet i det indatafönster för jämförelse som har fokus. Jämförelseanalysen sker då omedelbart. I öppningsdialogrutan behöver du då inte ange filer, utan bara stänga den via "Avbryt". </para
+><para
+>Du kan också använda drag och släpp: Dra en fil från en filhanterare eller markerad text från en editor och släpp den på ett indatafönster för jämförelse. </para
+><para
+>Vad är idén? Ibland innehåller en fil två liknande funktioner, men att kontrollera hur lika de verkligen är blir en stor ansträngning om du först måste skapa två filer och sedan ladda dem. Nu kan du helt enkelt kopiera, klistra in och jämföra de relevanta avsnitten. </para
+><para
+>För närvarande kan du inte dra någonting från &kdiff3;. Bara att släppa indata i jämförelsefönstret stöds. </para
+><para
+>Varning: Vissa editorer tolkar fortfarande drag och släpp till ett annat program som klipp ut (istället för kopiera) och klistra in. Ditt ursprungliga data kan då gå förlorat. </para>
+</sect1>
+
+<sect1 id="interpretinginformation"
+><title
+>Jämföra filer och tolka informationen i indatafönstren</title>
+<screenshot
+><mediaobject>
+<imageobject
+><imagedata fileref="screenshot_diff.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+<sect2
+><title
+>Informationsrad</title
+><para
+>Längst upp i varje textfönster finns dess "informationsrad". Informationsraderna i indatafönstret innehåller bokstaven "A", "B" eller "C", filnamnet och radnumret för den första synliga raden i fönstret. (Observera att fönstret "C" är valfritt.) Varje informationsrad visas i en egen färg. </para
+><para
+>När du väljer en annan fil genom att bläddra eller avslutar redigera filnamnet här genom att trycka på returtangenten, laddas den nya filen och jämförs med filen eller filerna som redan är laddade. </para
+></sect2
+><sect2
+><title
+>Färgläggning</title
+><para
+>De tre indatafönstren tilldelas bokstäverna "A", "B" och "C". "A" har blå färg, "B" har grön färg och "C" har magenta. (Det är förvalda färger, men de kan ändras via menyn Inställningar.) </para
+><para
+>När en skillnad upptäcks visar färgen vilken indatafil som skiljer sig åt. När båda övriga indatafiler skiljer sig åt, är färgen som används för att uttrycka det normalt röd ("Konfliktfärg" i inställningarna). Det här färgläggningsschemat är särskilt användbart i fallet med tre indatafiler, som syns i nästa avsnitt (<link linkend="merging"
+>Sammanfogning</link
+>). </para
+></sect2
+><sect2
+><title
+>Sammanfattningskolumn</title
+><para
+>Till vänster om varje text är "sammanfattningskolumnen". Om skillnader uppstod på en rad, visar sammanfattningskolumnen motsvarande färg. För en skillnad som bara består av blanktecken är sammanfattningen kryssad. För programspråk, där blanktecken inte är så viktiga är det användbart för att se med en blick om något av vikt ändrades. (För C/C++ är blanktecken bara intressanta inne i strängar, i kommentarer, för preprocessorn och i några mycket esoteriska situationer.) </para
+><para
+>Den vertikala linjen som skiljer sammanfattningskolumnen och texten är avbruten om indatafilen inte har några rader där. När radbrytning är aktiverad visas den vertikala linjen med punkter för brutna rader. </para
+></sect2
+><sect2
+><title
+>Översiktskolumn</title
+><para
+>På höger sida är en "översiktskolumn" synlig till vänster om den vertikala rullningslisten. Den visar en komprimerad sammanfattning av indata "A". Alla skillnader och konflikter är synliga med en blick. När bara två indatafönster används, syns alla skillnader i rött här, eftersom alla skillnader också är konflikter. En svart rektangel ramar in den synliga delen av indata. För mycket långa indatafiler, där antalet indatarader är större än höjden på översikten i bildpunkter, delar flera indatarader en översiktsrad. En konflikt har prioritet över enkla skillnader, som har prioritet över inga ändringar, så att inga skillnader eller konflikter går förlorade här. Genom att klicka på översiktskolumnen visas motsvarande text. </para
+></sect2
+><sect2 id="manualdiffhelp"
+><title
+>Justera rader manuellt</title
+><para
+>Ibland placerar algoritmen fel rader intill varandra, eller så vill du jämföra ett textstycke med text på en helt annan position i den andra filen. I dessa fall kan du manuellt tala om för &kdiff3; att vissa rader ska arrangeras i rak linje. Markera texten som du vill arrangera med musen, som du skulle göra vid kopiera och klistra in, i det första jämförelsefönstret och välj därefter "Lägg till manuell justering av jämförelse" i menyn "Jämförelsevy" (snabbtangenten "Ctrl+Y"). En orange rad visas i sammanfattningskolumnen intill den markerade texten. Upprepa det för den andra och (om tillgänglig) tredje jämförelsevyn. &kdiff3; beräknar omedelbart om jämförelsen varje gång du gör det, och radar upp de markerade raderna. Naturligtvis kanske några av raderna som tidigare matchade inte längre matchar. </para
+><para
+>För närvarande stöder inte sammanfogning användning av manuell hjälp vid jämförelse. </para
+></sect2
+><sect2 id="joinsplitsections"
+><title
+>Manuell ihopfogning och delning av jämförelseavsnitt</title
+><para
+>I vissa fall ser &kdiff3; för många eller för få avsnitt att sammanfoga. I ett sådant fall kan du foga ihop eller dela befintliga avsnitt. </para
+><para
+>Lägg till nya avsnitt genom att först markera texten på raderna som hör ihop i något av indatafönstren (som vid kopiering till klippbordet). Välj därefter "Dela jämförelse vid markering" i menyn "Sammanfoga". Delningen görs ovanför den första raden och under den sista raden i den markerade texten. Om du bara vill lägga till ett avsnitt, markera text som börjar på ett annat avsnitts delning. </para
+><para
+>För att foga ihop avsnitt i något indatafönster, markera någonting på raderna i avsnitten som ska fogas ihop. (Du kan också foga ihop flera avsnitt i ett steg.) Välj därefter "Foga ihop markerade jämförelser" i menyn "Sammanfoga". </para
+></sect2>
+</sect1>
+
+
+<sect1 id="merging"
+><title
+>Sammanfogning och editorfönstret för sammanfogningsutdata</title>
+<screenshot
+><mediaobject>
+<imageobject
+><imagedata fileref="screenshot_merge.png" format="PNG"/></imageobject>
+</mediaobject
+></screenshot>
+<para
+>Editorfönstret för sammanfogningsutdata (under indatafönstren för jämförelse) har också en informationsrad längst upp som visar "Utmatning", filnamnet och "[Ändrad]" om du redigerat något. Oftast innehåller det någon text från de automatiska sammanfogningsfunktionerna, men det innehåller också ofta konflikter. </para
+><para
+>Spara är inaktiverat till alla konflikter är lösta! (Använd knapparna "Gå till föregående/nästa olösta konflikt" för att hitta återstående konflikter.) </para
+><para
+>Med bara två filer är varje skillnad också en konflikt, som måste lösas manuellt. </para
+><para
+>Med tre indatafiler behandlas den första som bas, medan den andra och tredje indatafilen innehåller ändringar. Om bara indata B eller C har ändrats för en viss rad, men inte båda väljes den ändrade källan automatiskt. Bara om B och C har ändrats på samma rader, detekterar verktyget en konflikt som måste lösas manuellt. När B och C är likadana, men inte samma som A, väljes C.  </para
+><sect2
+><title
+>Sammanfattningskolumnen</title
+><para
+>Editorfönstret för sammanfogningsutdata har också en sammanfattningskolumn till vänster. Den visar bokstaven för indata som raden valdes, eller ingenting om alla tre källorna var likadana för raden. Vid konflikter visar den ett frågetecken "?" och raden visar "&lt; Konflikter vid sammanfogning &gt;", allt med rött. Eftersom det skulle ta mycket lång tid att lösa konflikter rad för rad, grupperas rader i grupper som har samma skillnader och konfliktkaraktär. Konflikter med bara blanktecken skiljs dock från andra konflikter för att förbättra sammanfogningen av filer där indenteringen ändrats på många rader. </para
+></sect2
+><sect2 id="synchronise_views"
+><title
+>Ställa in aktuell grupp och synkronisera sammanfognings- och jämförelsevyns position</title
+><para
+>När du klickar på sammanfattningskolumnen med vänster musknapp i endera fönstret, så markeras gruppen som hör till den raden i alla fönster och gruppens början visas. (Det här kan innebära ett automatiskt byte av position i fönstren om gruppens början inte syns.) Gruppen blir då den "aktuella gruppen". Den markeras med "Bakgrundsfärgen för aktuellt jämförelseintervall" och en svart rad visas till vänster om texten. </para
+></sect2
+><sect2
+><title
+>Välja indata A, B eller C för aktuell konflikt och redigering</title
+><para
+>Knappraden under menyraden innehåller tre knappar för indataval som innehåller bokstäverna "A", "B" och "C". Klicka på knappen för indataval för att infoga rader (eller ta bort dem om de redan infogats) från respektive källfil. För att välja rader från flera indatafiler klicka på respektive knappar i nödvändig ordning. Om du till exempel vill att rader från "B" ska hamna före rader från "A" i utdata, klicka först på "B" och därefter på "A". </para
+><para
+>Om du använder alternativet för att automatiskt gå vidare (<link linkend="autoadvance"
+>Gå automatiskt till nästa olösta konflikt efter val av källa</link
+>), måste du inaktivera det innan du väljer rader från flera indatafiler eller om du vill redigera raderna efter du valt dem. Annars går &kdiff3; till nästa konflikt efter den första indatafilen valts. </para
+><para
+>Det är ofta användbart att direkt redigera sammanfogad utdata. Sammanfattningskolumnen visar "m" för varje rad som ändrades manuellt. När skillnaderna till exempel justeras på ett sätt så att ett enkelt val av indata inte är tillfredsställande, kan du markera texten som behövs och använda normal <link linkend="selections"
+>kopiera och klistra in</link
+> för att placera den i sammanfogad utdata. </para
+><para
+>Ibland, när en rad tas bort antingen på grund av automatisk sammanfogning eller genom redigering och inga andra rader finns kvar i gruppen, visas texten &lt;Ingen källrad&gt; på raden. Det är bara en platsmarkör för gruppen om du ändrar dig och väljer en källa igen. Texten syns inte i sparade filer eller i några markeringar som du vill kopiera och klistra in. </para
+><para
+>Texten "&lt; Konflikter vid sammanfogning &gt;" visas på klippbordet om du kopierar och klistrar in någon text som innehåller en sådan rad. Men var ändå försiktig med att göra det. </para
+></sect2
+><sect2
+><title
+>Välja indata A, B eller C för alla konflikter</title
+><para
+>Den normala sammanfogningen börjar med att automatiskt lösa enkla konflikter. Menyn "Sammanfoga" tillhandahåller också några alternativ för andra vanliga behov. Om du måste välja samma källfil för de flesta konflikter, kan du välja "A", "B" eller "C" överallt, eller bara för återstående olösta konflikter, eller för olösta konflikter med blanktecken. Om du vill bestämma själv för varje enskild skillnad, kan du "Ändra skillnader till konflikter", eller om du vill återgå till de automatiska valen i &kdiff3; kan du välja "Lös automatiskt enkla konflikter". Då startar &kdiff3; om sammanfogningen. För åtgärder som påverkar dina tidigare ändringar frågar &kdiff3; om bekräftelse innan åtgärden utförs. </para
+><para
+>Observera: När endera källan väljes för olösta konflikter för blanktecken och alternativet "Ignorera siffror" eller "Ignorera C/C++ kommentarer" används, så behandlas ändringar i siffror eller kommentarer också som blanktecken. </para
+></sect2
+><sect2 id="vcskeywordsmergesupport"
+><title
+>Sammanfoga automatiskt nyckelord för versionshantering och historik (logg)</title
+><para
+>Många versionshanteringssystem stöder särskilda nyckelord i filen (t.ex. "&#36;Date&#36;", "&#36;Header&#36;", "&#36;Author&#36;", "&#36;Log&#36;" etc.) Vid arkivering ändrar versionshanteringssystemet (VCN) dessa rader. Till exempel ändras "&#36;Date&#36;" till "&#36;Date: 2005/03/22 18:45:01 &#36;". Eftersom raden är olika i varje version av filen, skulle den kräva manuell interaktion under sammanfogningen. </para
+><para
+>&kdiff3; erbjuder automatisk sammanfogning av dessa poster. För enkla rader som matchar alternativet "Reguljärt uttryck för automatisk sammanfogning" i alla indatafiler väljer &kdiff3; raden från B, eller om tillgänglig, den från C. (Dessutom är det nödvändigt att raderna i fråga radas upp i jämförelsen och att föregående rad inte innehåller en konflikt.) Den automatiska sammanfogningen kan antingen utföras omedelbart när sammanfogningen startas (aktivera alternativet "Kör automatisk sammanfogning med reguljärt uttryck när sammanfogning startar") eller senare via "Kör automatisk sammanfogning med reguljärt uttryck" i menyn Sammanfoga. </para
+><para
+>Automatisk sammanfogning för versionshanteringshistorik (också kallat "logg") stöds också. Automatisk sammanfogning av historik kan antingen utföras omedelbart när sammanfogningen startas genom att aktivera alternativet "Sammanfogning enligt versionshanteringshistorik när sammanfogning startar" eller senare via "Lös automatiskt historikkonflikter" i menyn Sammanfoga. </para
+><para
+>Oftast börjar versionshanteringshistoriken med en rad som innehåller nyckelordet "&#36;Log&#36;". Den måste matchas av alternativet "Reguljärt uttryck för historikens början". &kdiff3; detekterar vilka efterföljande rader som ingår i historiken genom att analysera de inledande tecknen som fanns före nyckelordet "&#36;Log&#36;". Om samma "inledande kommentar" också finns på följande rader inkluderas de också i historiken. </para
+><para
+>Vid varje arkivering skriver VCS en unik rad som anger version, datum- och tidsinformation följd av rader med användarens kommentarer. Raderna utgör en historikpost. Historikavsnittet växer vid varje arkivering och de senaste posterna visas längst upp (efter historikens startrad). </para
+><para
+>När två utvecklare arkiverar grenar av en fil under parallell utveckling, kommer historiken för sammanfogning att innehålla flera poster som visas som konflikter under sammafogning av grenarna. Eftersom sammafogning av dem kan bli mycket tröttsam, erbjuder &kdiff3; stöd för den med två möjliga strategier: Bara infoga historikinformationen från båda bidragsgivarna längst upp, eller sortera historikinformationen enligt en användardefinierad nyckel. </para
+><para
+>Metoden att bara infoga alla poster är enklast att ställa in. &kdiff3; behöver bara en metod att detektera vilka rader som hör till en historikpost. De flesta VCS infogar en tom rad efter varje historikpost. Om det inte finns några andra tomma rader, är det ett tillräckligt villkor för &kdiff3;. Ange bara en tom "Reguljärt uttryck för historikens början". Om kriteriet med en tom rad inte är tillräckligt kan du ange ett reguljärt uttryck för att detektera historikpostens början. </para
+><para
+>Observera att &kdiff3; tar bort duplicerade historikposter.Om en historikpost fanns flera gånger i en indatafils historik, förblir bara en post i utmatningen. </para
+><para
+>Om du vill sortera historiken måste du ange hur sorteringsnyckeln ska byggas. Använd parenteser som i "Reguljärt uttryck för historikpostens början" för att gruppera delar av det reguljära uttrycket som senare ska användas i sorteringsnyckeln. Ange därefter "Sorteringsnycklarnas ordning från historikpostens början" med en lista av nummer som refererar till gruppens position i det reguljära uttrycket åtskilda av kommatecken ",". </para
+><para
+>Eftersom det inte är så enkelt att få det rätt omedelbart, kan du prova och förbättra det reguljära uttrycket och nyckelgenereringen i en särskild dialogruta genom att klicka på knappen "Prova dina reguljära uttryck". </para
+><para
+>Antag att historiken ser ut så här: <screen>
+/**************************************************************************
+** HISTORIK:    &#36;Log: \toms_sammanfogning_huvudvy\Mitt_program\kod\komplexalgoritm.cpp &#36;
+**
+**     \head\integreringsgren_12   2 Apr 2001 10:45:41   tom
+**  Sammanfogade grenen simongren_15.
+**
+**     \main\henry_felrättningsgren_7\1   30 Mar 2001 19:22:05   henry
+**  Förbättrade hastigheten för delrutinen omvandlaTill().
+**  Fixade krasch.
+**************************************************************************/
+</screen
+> Historikens inledande rad matchar det reguljära uttrycket ".*\&#36;Log.*\&#36;.*". Därefter följer historikposterna. </para
+><para
+>Raden med nyckelordet "&#36;Log&#36;" börjar med två "*" och därefter följer ett mellanslag. &kdiff3; använder den första strängen utan blanktecken som "inledande kommentar" och antar att historiken slutar med den första raden utan denna inledande kommentar. I exemplet slutar den sista raden med en sträng som också börjar med två "*", men istället för ett mellanslag följer fler "*". Därför avslutar denna rad historiken. </para
+><para
+>Om sortering av historiken inte krävs kan det reguljära uttrycket för historikpostens början se ut så här. (Raden är delad i två eftersom den inte skulle få plats annars.) <screen>
+\s*\\main\\\S+\s+[0-9]+ (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)
+ [0-9][0-9][0-9][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9]\s+.*
+</screen
+> För detaljinformation om reguljära uttryck se <ulink url="http://doc.trolltech.com/3.3/qregexp.html#details"
+>Trolltechs dokumentation av reguljära uttryck</ulink
+>. Observera att "\s" (med ett litet "s") matchar alla blanktecken och  "\S" (med ett stort "S") matchar alla tecken som inte är blanktecken. I vårt exempel innehåller historikpostens början först versionsinformation med det reguljära uttrycket "\\main\\\S+", datumet som består av dagen "[0-9]+", månaden "(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)" och året "[0-9][0-9][0-9][0-9]", tiden "[0-9][0-9]:[0-9][0-9]:[0-9][0-9]" och till sist utvecklarens inloggningsnamn ".*". </para
+><para
+>Observera att de "inledande kommentartecknen" (i exemplet "**") redan har tagits bort av &kdiff3; innan försöket att matcha, alltså börjar det reguljära uttrycket med att matcha ett eller flera blanktecken "\s*". Eftersom kommentartecken kan skilja sig åt i varje fil (C/C++ använder t.ex. andra kommentartecken än ett Perl-skript), tar &kdiff3; hand om de inledande kommentartecknen och du ska inte ange dem i det reguljära uttrycket. </para
+><para
+>Om du kräver sorterad historik måste sorteringsnyckeln beräknas. För att göra det måste relevanta delar i det reguljära uttrycket grupperas med parenteser. (De extra parenteserna kan också vara kvar även om historiksortering inaktiveras.) <screen>
+\s*\\main\\(\S+)\s+([0-9]+) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)
+ ([0-9][0-9][0-9][0-9]) ([0-9][0-9]:[0-9][0-9]:[0-9][0-9])\s+(.*)
+</screen
+> Parenteserna innehåller nu 1. versionsinformation, 2. dag, 3. månad, 4. år, 5. tid, 6. namn. Men om vi vill sortera enligt datum och tid måste vi skapa en nyckel med elementen synliga i en annan ordning: Först året, följt av månad, dag, tid, versionsinformation och namn. Därför ska sorteringsnyckelns ordning som anges vara  "4,3,2,5,1,6". </para
+><para
+>Eftersom månadsnamn inte är bra att sortera enligt ("Apr" skulle vara först) detekterar &kdiff3; vilken ordning månadsnamnen anges och använder det numret istället ("Apr"->"04"). Och om ett rent nummer hittas omvandlas det till ett fyrasiffrors värde med inledande nollor för sortering. Till sist blir den resulterande sorteringsnyckeln för den första historikpostens inledande rad: <screen
+>2001 04 0002 10:45:41 integreringsgren_12   tom 
+</screen>
+</para
+><para
+>För mer information, se också <link linkend="mergeoptions"
+>Inställningar av sammanfoga</link
+>. </para>
+</sect2>
+</sect1>
+
+<sect1 id="navigation"
+><title
+>Navigering och redigering</title>
+<para
+>Mycket navigering görs med rullningslisterna och musen, men du kan också navigera med tangentbordet. Om du klickar på något fönster kan du använda markörtangenterna vänsterpil, högerpil, uppåtpil, neråtpil, Page Up, Page Down, Home, End, Ctrl+Home och Ctrl+End som du kan i andra program. Sammanfattningskolumnen intill indatafilernas vertikala rullningslist kan också användas för att navigera genom att klicka i den. </para
+><para
+>Du kan också använda hjulmusen för att rulla uppåt och neråt. </para
+><para
+>I editorn för sammanfogningsutdata kan du också använda andra tangenter för redigering. Du kan byta mellan infognings- och ersättningsläge med tangenten Insert. (Normalläget är infoga.) </para
+><para
+>Ett klick med vänster musknapp i någon sammanfattningskolumn synkroniserar alla fönster för att visa början på samma grupp av rader (som förklaras i avsnittet <link linkend="synchronise_views"
+>Ställa in aktuell grupp och synkronisera sammanfognings- och jämförelsevyns position</link
+>). </para
+><para
+>Verktygsraden innehåller också nio navigeringsknappar som du kan använda för att gå till aktuell/första/sista skillnaden, till nästa/föregående skillnad (Ctrl+Neråtpil eller Ctrl+Uppåtpil), till nästa/föregående konflikt (Ctrl+Page Down eller Ctrl+Page Up) eller till nästa/föregående olösta konflikt. Observera att för &kdiff3; förblir en "konflikt" som inte automatiskt löstes vid start av sammanfogningen alltid en "konflikt" även om den är löst. Därav nödvändigheten att särskilja "olösta konflikter". </para>
+<sect2 id="autoadvance"
+><title
+>Automatisk fortsättning</title>
+<para
+>Det finns också en knapp som heter "Gå automatiskt till nästa olösta konflikt efter val av källa" (automatisk fortsättning). Om du aktiverar det här, så går &kdiff3; automatiskt till nästa olösta konflikt när en källa väljes. Det kan hjälpa till när du bara vill välja en källa. När du behöver båda källor, eller du vill redigera efter valet, bör du troligen stänga av det här. Innan &kdiff3; fortsätter till nästa olösta konflikt, visas effekten av valet en kort tid. Den här fördröjningen kan justeras i inställningarna under Jämför och sammanfoga. Du kan ange "Fördröjning vid automatisk fortsättning" i millisekunder mellan 0 och 2000. Tips: Är du trött på många klick? Använd en kort fördröjning vid automatisk fortsättning och snabbtangenterna Ctrl+1/2/3 för att välja A/B/C för många konflikter. </para>
+</sect2>
+</sect1>
+
+<sect1 id="selections"
+><title
+>Markera, kopiera och klistra in</title>
+<para
+>Indatafönstren visar inte någon markör, så markeringar måste göras med musen, genom att klicka med vänster musknapp på början, hålla nere musknappen och gå till slutet, där musknappen släpps upp igen. Du kan också markera ett ord genom att dubbelklicka på det. I editorn för sammanfogningsutdata kan du också markera med tangentbordet, genom att hålla nere skifttangenten och navigera med piltangenterna. </para
+><para
+>Om markeringen överstiger det synliga området, kan du flytta musen över fönsterkanterna, vilket gör att &kdiff3; rullar i den riktningen. </para
+><para
+>För mycket stora markeringar kan du också använda navigationstangenterna medan musknappen hålls nere. Använd t.ex. Page Up och Page Down för att snabbt gå till en viss position. Släpp upp musknappen på slutpositionen. </para
+><para
+>För att markera allt i det nuvarande fönstret, använd menyn "Redigera" -> "Markera allt" (Ctrl+A). </para
+><para
+>För att kopiera till klippbordet måste du trycka på knappen "Kopiera" (Ctrl+C eller Ctrl+Insert). Men det finns ett alternativ som heter "Kopiera automatiskt markering". Om det är aktiverat, kopieras vad du än väljer omedelbart, och du behöver aldrig explicit kopiera. Men var försiktig när du använder detta, eftersom klippbordets innehåll kan förstöras av misstag. </para
+><para
+>"Klipp ut" (Ctrl+X eller Skift+Delete) kopierar till klippbordet och tar bort den markerade texten. </para
+><para
+>"Klistra in" (Ctrl+V eller Skift+Insert) infogar texten på klippbordet vid markörens position eller istället för den nuvarande markeringen. Om du klistrar in i något av jämförelsefönstren visas klippbordets innehåll i fönstret och jämförelsen startas omedelbart om. Det är användbart om du snabbt vill hämta ett textstycke någonstans och jämföra det med något annat utan att först skapa filer. </para>
+</sect1>
+
+<sect1 id="saving"
+><title
+>Spara</title>
+<para
+>Att spara tillåts bara när alla konflikter är lösta. Om filen redan finns och alternativet "Säkerhetskopiera filer" är markerat, ändras originalversionens namn med tillägg av filändelsen .orig, och om en sådan fil redan finns tas den bort. När du avslutar eller startar en ny jämförelseanalys och data inte sparats ännu, frågar &kdiff3; om du vill spara, avbryta eller fortsätta utan att spara. (&kdiff3; fångar inga signaler, så om du "dödar" &kdiff3; går data förlorat.) </para
+><para
+>Radslut sparas enligt den normala metoden i det underliggande operativsystemet. För Unix slutar varje rad med ett nyradstecken "\n", medan för Windows-baserade system slutar varje rad med ett returtecken och ett nyradstecken "\r\n". &kdiff3; behåller inte radslut för indatafilerna, vilket också betyder att du inte ska använda &kdiff3; med binärfiler. </para>
+</sect1>
+
+<sect1 id="find"
+><title
+>Söka efter strängar</title>
+<para
+>Du kan söka efter en sträng i vilket textfönster som helst i &kdiff3;. Kommandot "Sök..." (Ctrl+F) i menyn Redigera, visar en dialogruta som låter dig ange strängen att söka efter. Du kan också välja de fönster som ska sökas. Sökning startar alltid från början. Använd kommandot "Sök igen" (F3) för att fortsätta till nästa förekomst. Om du väljer att söka i flera fönster, söks det första fönstret från början till slut innan sökningen fortsätter från början i nästa fönster, etc. </para>
+</sect1>
+
+<sect1 id="printing"
+><title
+>Utskrift</title>
+<para
+>&kdiff3; stöder utskrift av skillnader mellan textfiler. Kommandot "Skriv ut..." (Ctrl+P) i menyn Arkiv visar en dialogruta som låter dig välja skrivare och justera andra alternativ. </para
+><para
+>Det finns flera möjligheter att justera intervallet. Beroende på olika utskriftsdialogrutor på olika operativsystem, varierar metoden för att åstadkomma val av ett visst intervall. </para>
+<variablelist>
+   <varlistentry
+><term
+>Alla:</term
+><listitem
+><para
+>Skriv ut allt.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+>Aktuell:</term
+><listitem
+><para
+>Skriv ut en sida som börjar på den första synliga raden i fönstret. (På system utan alternativet kan det åstadkommas genom att ange sidnumret 10000 för utskrift.)</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+>Markering:</term
+><listitem
+><para
+>Innan du väljer att skriva ut, markera text med musen (som för kopiera och klistra in) i ett av jämförelsefönstren för att definiera start- och slutrad. Om ingen text var markerad i något av jämförelsefönstren, är inte alternativet tillgängligt. (På system utan alternativet kan det åstadkommas genom att ange sidnumret 9999 för utskrift.)</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+>Intervall:</term
+><listitem
+><para
+>Ange första och sista sidan. </para
+></listitem
+></varlistentry>
+</variablelist>
+<para
+>Andra viktiga inställningar för utskrift tas från de normala inställningarna: </para
+><itemizedlist>
+   <listitem
+><para
+>Teckensnitt, teckenstorlek</para
+></listitem>
+   <listitem
+><para
+>Visa radnummer</para
+></listitem>
+   <listitem
+><para
+>Radbryt</para
+></listitem>
+   <listitem
+><para
+>Färger</para
+></listitem>
+   <listitem
+><para
+>etc.</para
+></listitem>
+</itemizedlist>
+<para
+>Liggande formatering rekommenderas också för utskrift. </para>
+</sect1>
+
+<sect1 id="options"
+><title
+>Alternativ</title>
+<para
+>Alternativ och listan med senaste filer sparas när du avslutar programmet, och laddas igen när du startar det. (Menyn Inställningar -> Anpassa &kdiff3;...) </para>
+<sect2
+><title
+>Teckensnitt</title>
+<para
+>Välj ett teckensnitt med fast breddsteg. (På vissa system visar dialogrutan också teckensnitt med variabel bredd, men du bör inte använda dem.) </para>
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Kursiv stil för skillnader:</emphasis
+></term
+><listitem
+><para
+>Om du markerar detta, visas textskillnader med kursiv version av det valda teckensnittet. Om teckensnittet inte stöder kursiv stil, gör det ingenting.</para>
+   </listitem
+></varlistentry>
+</variablelist>
+</sect2>
+
+<sect2
+><title
+>Färger</title>
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Förgrundsfärg:</emphasis
+></term
+><listitem
+><para
+>Oftast svart. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Bakgrundsfärg:</emphasis
+></term
+><listitem
+><para
+>Oftast vit. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Bakgrundsfärg för jämförelse:</emphasis
+></term
+><listitem
+><para
+>Oftast ljusgrå. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Färg A:</emphasis
+></term
+><listitem
+><para
+>Oftast mörkblå. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Färg B:</emphasis
+></term
+><listitem
+><para
+>Oftast mörkgrön. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Färg C:</emphasis
+></term
+><listitem
+><para
+>Oftast mörk magenta. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Konfliktfärg:</emphasis
+></term
+><listitem
+><para
+>Oftast röd.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Bakgrundsfärg för aktuellt intervall:</emphasis
+></term
+><listitem
+><para
+>Oftast ljusgul.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Bakgrundsfärg för aktuellt jämförelseintervall:</emphasis
+></term
+><listitem
+><para
+>Oftast mörkgul.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Färg för manuellt valda jämförelseintervall:</emphasis
+></term
+><listitem
+><para
+>Oftast orange.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Färg för nyaste fil i katalogjämförelse:</emphasis
+></term
+><listitem
+><para
+>Oftast grön.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Färg för äldsta fil i en katalogjämförelse:</emphasis
+></term
+><listitem
+><para
+>Oftast röd.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Färg för medelgamla filer i en katalogjämförelse:</emphasis
+></term
+><listitem
+><para
+>Oftast mörkgul.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Färg för saknade filer i en katalogjämförelse:</emphasis
+></term
+><listitem
+><para
+>Oftast svart.</para
+></listitem
+></varlistentry>
+</variablelist>
+<para
+>Att ändra färgerna för katalogjämförelser får inte någon effekt förrän nästa katalogjämförelse startas. </para>
+<para
+>För system med bara 16 eller 256 färger är vissa rena färger inte tillgängliga. För sådana system väljer knappen "Förval" en ren färg. </para>
+</sect2>
+
+<sect2
+><title
+>Inställningar för editor</title>
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Tabulator infogar mellanslag:</emphasis
+></term
+><listitem
+><para
+>Om det här inte är markerat, och du trycker på tabulatortangenten, infogas en tabulator, annars infogas lämpligt antal mellanslag.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Tabulatorbredd:</emphasis
+></term
+><listitem
+><para
+>Kan justeras för dina speciella behov. Normalvärdet är 8. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Automatisk indentering:</emphasis
+></term
+><listitem
+><para
+>När du trycker på Enter eller returtangenten, används föregående rads indentering för den nya raden. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Kopiera automatiskt markering:</emphasis
+></term
+><listitem
+><para
+>Varje markering kopieras omedelbart till klippbordet när den aktiveras, och du behöver inte kopiera den explicit. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Radslutstil:</emphasis
+></term
+><listitem
+><para
+>När du sparar kan du välja vilken radslutsstil du föredrar. Förvald inställning är det vanliga valet för operativsystemet som används. </para
+></listitem
+></varlistentry>
+</variablelist>
+</sect2>
+
+<sect2 id="diffoptions"
+><title
+>Inställningar av jämför</title>
+<para
+>När filer jämförs försöker &kdiff3; först att matcha rader som är lika i alla indatafiler. Det är bara under detta steg som blanktecken kan ignoreras. Det andra steget jämför varje rad. Under detta steg ignoreras inte blanktecken. Under sammanfogning ignoreras inte heller blanktecken. </para>
+
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Behåll returtecken:</emphasis
+></term
+><listitem
+><para
+>Vissa editorer (på vissa system) sparar returtecken '\r' och nyradstecken '\n' i slutet på raden, medan andra bara sparar nyradstecknet '\n'. Oftast ignorerar &kdiff3; returtecknet, men då ser filer som inte har samma storlek likadana ut vid jämförelse sida vid sida. När det här alternativet är markerat, görs returtecken synliga, men behandlas som blanktecken. Det här alternativet måste vara av under en sammanfogning. Normalvärdet är av.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Ignorera siffror:</emphasis
+></term
+><listitem
+><para
+>Normalvärdet är av. Siffertecken ('0'-'9', '.', '-') ignoreras under första delen av analysen när radmatchningen görs. Skillnaderna för resultatet visas ändå, men de behandlas som blanktecken. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Ignorera C/C++ kommentarer:</emphasis
+></term
+><listitem
+><para
+>Normalvärdet är av. Ändringar i kommentarer behandlas som ändringar i blanktecken. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Ignorera skiftläge:</emphasis
+></term
+><listitem
+><para
+>Normalvärdet är av. Ändringar i skiftläge för tecken (som 'A' eller 'a') hanteras som ändringar i blanktecken. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Preprocessorkommando:</emphasis
+></term
+><listitem
+><para
+>Se <link linkend="preprocessors"
+>nästa avsnitt</link
+>. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Radmatchande preprocessorkommando:</emphasis
+></term
+><listitem
+><para
+>Se <link linkend="preprocessors"
+>nästa avsnitt</link
+>. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Var noggrann:</emphasis
+></term
+><listitem
+><para
+>Gör en ansträngning att hitta en ännu mindre skillnad (Normalvärdet är på). Det här är troligen effektivt för komplicerade och stora filer, och långsamt för mycket stora filer. </para
+></listitem
+></varlistentry>
+</variablelist>
+</sect2>
+
+<sect2 id="mergeoptions"
+><title
+>Inställningar av sammanfoga</title>
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Fördröjning vid automatisk fortsättning (ms):</emphasis
+></term
+><listitem
+><para
+>I automatiskt fortsättningsläge anger den här inställningen hur länge resultatet för gruppen ska visas innan hopp till nästa olösta konflikt. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Standardvärde för sammanfogning av blanktecken med två/tre filer:</emphasis
+></term
+><listitem
+><para
+>Lös automatiskt alla konflikter för blanktecken genom att välja angiven fil. (Normalvärdet är manuellt val.) Användbart om blanktecken verkligen är oviktiga i många filer. Om du bara behöver det ibland, är det bättre att använda "Välj A/B/C för olösta konflikter med blanktecken" i menyn Sammanfoga. Observera att om du antingen aktiverar "Ignorera siffror" eller "Ignorera C/C++ kommentarer" gäller det automatiska valet också vid konflikter för siffror eller kommentarer. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Reguljärt uttryck för automatisk sammanfogning:</emphasis
+></term
+><listitem
+><para
+>Reguljärt uttryck för rader där &kdiff3; automatisk ska välja en källa. Se också <link linkend="vcskeywordsmergesupport"
+>Automatisk sammanfogning ...</link
+> </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Kör automatisk sammanfogning med reguljärt uttryck när sammanfogning startar:</emphasis
+></term
+><listitem
+><para
+>Om aktiverad utför &kdiff3; den automatiska sammanfogningen med "Reguljärt uttryck för automatisk sammanfogning" när en sammanfogning startas. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Reguljärt uttryck för historikens början:</emphasis
+></term
+><listitem
+><para
+>Reguljärt uttryck för början av historikposten för sammanfogning. Oftast innehåller raden nyckelordet "&#36;Log&#36;". Förvalt värde: ".*\&#36;Log.*\&#36;.*" </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Reguljärt uttryck för historikpostens början:</emphasis
+></term
+><listitem
+><para
+>En historikpost för sammanfogning består av flera rader. Ange det reguljära uttrycket för att detektera den första raden (utan inledande kommentar). Använd parenteser för att gruppera nycklarna du vill använda för sortering. Om det lämnas tomt, antar &kdiff3; att tomma rader skiljer historikposterna åt. Se också <link linkend="vcskeywordsmergesupport"
+>Automatisk sammanfogning ...</link
+> </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Sortering av historiksammanfogning:</emphasis
+></term
+><listitem
+><para
+>Aktivera sortering av versionshanteringshistorik. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Sorteringsnycklarnas ordning från historikpostens början:</emphasis
+></term
+><listitem
+><para
+>Varje parentes som används i det reguljära uttrycket för historikens startpost grupperar en nyckel som kan användas för sortering. Ange listan med nycklar (som numreras i ordning de uppträder med början på 1) med ',' som skiljetecken (t.ex. "4,5,6,1,2,3,7"). Om det lämnas tomt utförs ingen sortering. Se också <link linkend="vcskeywordsmergesupport"
+>Automatisk sammanfogning ...</link
+> </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Sammanfogning enligt versionshanteringshistorik när sammanfogningen startar:</emphasis
+></term
+><listitem
+><para
+>Om aktiverad utför &kdiff3; den automatiska sammafogningen av historik med tidigarenämnda alternativ när en sammanfogning startas. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Maximalt antal historikposter:</emphasis
+></term
+><listitem
+><para
+>&kdiff3; kortar av historiklistan till angivet antal poster. Använd -1 för att undvika avkortning. (Standardvärde är -1). </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Prova dina reguljära uttryck</emphasis
+></term
+><listitem
+><para
+>Knappen visar en dialogruta som låter dig förbättra och prova det reguljära uttrycket ovan. Kopiera bara respektive data från dina filer till exempelraderna. "Matchningsresultat" visar omedelbart om matchningen lyckas eller inte. "Sorteringsnyckelresultat" visar nyckeln som används för sortering vid sammanfogning av historik. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Ej relevant sammanfogningskommando:</emphasis
+></term
+><listitem
+><para
+>Ange ett eget kommando som ska anropas när &kdiff3; detekterar att filen från B inte bidrar med något relevant data som inte reda finns i filen från C. Kommandot anropas med de tre filnamnen som parametrar. Data som matchas av "Reguljärt uttryck för automatisk sammanfogning" eller i historiken anses inte vara relevant. </para
+></listitem
+></varlistentry>
+</variablelist>
+
+</sect2>
+
+<sect2
+><title
+>Katalogsammanfogning</title>
+<para
+>De här alternativen har att göra med avsökning av katalogen och hantering av sammanfogningen: Se <link linkend="dirmergeoptions"
+>Katalogjämförelse och sammanfogning</link
+> för detaljinformation. </para
+><para
+>Ändå finns det ett alternativ här som också är relevant för att spara enstaka filer: </para>
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Säkerhetskopiera filer:</emphasis
+></term
+><listitem
+><para
+>När en fil sparas och en äldre version redan finns, ändras originalversionens namn med tillägg av filändelsen ".orig". Om en gammal säkerhetskopia med filändelsen ".orig" redan finns tas den bort utan säkerhetskopiering. </para
+></listitem
+></varlistentry>
+</variablelist>
+</sect2>
+
+<sect2
+><title
+>Inställningar för region och språk</title>
+  <variablelist>
+    <varlistentry
+><term
+><emphasis
+>Språk:</emphasis
+></term
+><listitem
+><para
+>Justera användargränssnittets språk. Att ändra alternativet påverkar inte programmet som kör. Du måste avsluta och starta om &kdiff3; för att ändra språk. (Alternativet är inte tillgängligt i KDE-versionen av &kdiff3;, eftersom språket kan justeras i de allmänna KDE-inställningarna.) </para
+></listitem
+></varlistentry>
+    <varlistentry
+><term
+><emphasis
+>Använd samma kodning för allt:</emphasis
+></term
+><listitem
+><para
+>Följande kodningsalternativ kan justeras separat för varje objekt, eller om alternativet är sant, ställs alla värden in till det första värdet. </para
+></listitem
+></varlistentry>
+    <varlistentry
+><term
+><emphasis
+>Lokal kodning:</emphasis
+></term
+><listitem
+><para
+>Ovanför kodningsväljarna visas en anmärkning som talar om för dig vad den lokala kodningen är (Den kan inte justeras, utan bara som information om du inte vet vad den lokala kodningen är, men behöver kunna välja den.) </para
+></listitem
+></varlistentry>
+    <varlistentry
+><term
+><emphasis
+>Filkodning för A/B/C:</emphasis
+></term
+><listitem
+><para
+>Justera filkodningen för indatafiler. Det ger effekt på hur specialtecken tolkas. Eftersom du kan justera varje kodning separat, kan du till och med jämföra och sammanfoga filer som sparades med olika kodningar. </para
+></listitem
+></varlistentry>
+    <varlistentry
+><term
+><emphasis
+>Filkodning för sammanfogad utdata och vid spara:</emphasis
+></term
+><listitem
+><para
+>När du har redigerat en fil, kan du justera vilken kodning som används när den sparas till disk. </para
+></listitem
+></varlistentry>
+    <varlistentry
+><term
+><emphasis
+>Filkodning för preprocessorfiler:</emphasis
+></term
+><listitem
+><para
+>När du definierar preprocessorer kanske de inte kan hantera din kodning (exempelvis om dina filer använder 16-bitars Unicode och preprocessorn bara kan hantera 8-bitars ASCII). Med det här alternativet kan du definiera kodningen för preprocessorns utdata. </para
+></listitem
+></varlistentry>
+    <varlistentry
+><term
+><emphasis
+>Språk som läses från höger till vänster</emphasis
+></term
+><listitem
+><para
+>Vissa språk skrivs från höger till vänster. När alternativet är aktiverat, ritar &kdiff3; text från höger till vänster i jämförelsefönstren och i sammanfogningsfönstret. Observera att om du startar &kdiff3; med kommandoradsväljaren "--reverse" så visas all layout också från höger till vänster. (Det är en funktion som Qt tillhandahåller.) Denna dokumentation är skriven med antagandet att "Språk som läses från höger till vänster" eller omvänd layout inte är aktiverade. Vissa referenser till "vänster" eller "höger" måste ersättas av motsatsen om du använder alternativen. </para
+></listitem
+></varlistentry>
+
+  </variablelist>
+</sect2>
+
+<sect2
+><title
+>Diverse</title>
+<para
+>(Dessa alternativ och åtgärder är tillgängliga i menyerna eller verktygsraden.)</para>
+<variablelist>
+  <varlistentry
+><term
+><emphasis
+>Visa radnummer:</emphasis
+></term
+><listitem
+><para
+>Du kan välja om radnummer ska visas för indatafilerna.</para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Visa mellanslag och tabulatortecken i jämförelse:</emphasis
+></term
+><listitem
+><para
+>Ibland är synliga mellanslag och tabulatortecken störande. Du kan stänga av detta.</para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Visa blanktecken:</emphasis
+></term
+><listitem
+><para
+>Stäng av det här för att inte visa ändringar av bara blanktecken i texten eller översiktskolumnerna. (Observera att detta också gäller ändringar av siffror eller kommentarer om alternativen "Ignorera siffror" eller "Ignorera C/C++ kommentarer" är aktiva.)</para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Översiktsalternativ:</emphasis
+></term
+><listitem
+><para
+>Dessa alternativ är bara tillgängliga när du jämför tre filer. I normalläge visas alla skillnader i en färgkodad översiktskolumn, men ibland är du särskilt intresserad av skillnaderna mellan två av de tre filerna. Genom att välja översikten "A mot B", "A mot C" eller "B mot C", visas en andra översiktskolumn med begärd information intill den vanliga översikten. </para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Radbryt skillnadsfönster:</emphasis
+></term
+><listitem
+><para
+>Radbryt rader när deras längd skulle överskrida ett fönsters bredd. </para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Visa fönster A/B/C:</emphasis
+></term
+><listitem
+><para
+>Ibland vill du använda skärmutrymmet bättre för långa rader. Dölj fönster som inte är viktiga. (I menyn Fönster.)</para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Byt delningsorientering:</emphasis
+></term
+><listitem
+><para
+>Byt mellan jämförelsefönster som visas intill varandra (A till vänster om B till vänster om C) eller ovanför varandra (A ovanför B ovanför C). Det bör också hjälpa för långa rader. (I menyn Fönster.) </para
+></listitem
+></varlistentry>
+  <varlistentry
+><term
+><emphasis
+>Starta sammanfogning snabbt:</emphasis
+></term
+><listitem
+><para
+>Ibland tittar du på skillnader, och bestämmer dig för att sammanfoga. <inlinemediaobject
+><imageobject
+><imagedata fileref="merge_current.png" format="PNG"/></imageobject
+></inlinemediaobject
+> "Sammanfoga aktuell fil" i menyn Katalog fungerar också om du bara jämför två filer. Ett enkelklick startar sammanfogningen och använder filnamnet på den sista indatafilen som förvalt utmatningsfilnamn. (När detta används för att starta om en sammanfogning, behålls utmatningsfilnamnet.)</para
+></listitem
+></varlistentry>
+</variablelist>
+</sect2>
+
+<sect2 id="shortcuts"
+><title
+>Anpassa snabbtangenter</title>
+<para
+>För närvarande stöder bara KDE-versionen anpassningsbara snabbtangenter (Menyn Inställningar -> Anpassa genvägar...) </para>
+</sect2>
+</sect1>
+
+<sect1 id="preprocessors"
+><title
+>Preprocessorkommandon</title>
+<para
+>&kdiff3; stöder två preprocessoralternativ. </para
+><para>
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Preprocessorkommando:</emphasis
+></term
+><listitem
+><para
+>När en fil läses, skickas den via det här externa kommandot. Utmatningen från kommandot visas istället för den ursprungliga filen. Du kan skriva din egen preprocessor som uppfyller dina speciella behov. Använd det här för att ta bort störande delar av filen, eller för att automatiskt korrigera indenteringen, etc. </para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Radmatchande preprocessorkommando:</emphasis
+></term
+><listitem
+><para
+>När en fil läses, skickas den via det här externa kommandot. Om ett preprocessorkommando (se ovan) också anges är utmatningen från preprocessorn inmatning till den radmatchande preprocessorn. Utmatningen används bara under radmatchningsfasen av analysen. Du kan skriva din egen preprocessor som uppfyller dina speciella behov. Varje indatarad måste ha en motsvarande utdatarad. </para
+></listitem
+></varlistentry>
+</variablelist>
+</para>
+<para
+>Idén är att ge användaren större flexibilitet när jämförelseresultatet ställs in, men det kräver ett externt program, och många användare vill inte skriva ett själva. De goda nyheterna är att ofta klarar <command
+>sed</command
+> eller <command
+>perl</command
+> av jobbet. </para>
+<para
+>Till exempel ett enkelt fall att prova: Betrakta filen a.txt (6 rader): <screen>
+      aa
+      ba
+      ca
+      da
+      ea
+      fa
+</screen
+> Och filen b.txt (3 rader): <screen>
+      cg
+      dg
+      eg
+</screen
+> Utan en preprocessor skulle följande rader placeras intill varandra: <screen>
+      aa - cg
+      ba - dg
+      ca - eg
+      da
+      ea
+      fa
+</screen
+> Det är troligen inte vad som önskas eftersom den första bokstaven innehåller den intressanta informationen. För att hjälpa matchningsalgoritmen att ignorera den andra bokstaven kan man använda ett radmatchande preprocessorkommando som ersätter 'g' med 'a': <screen>
+   <command
+>sed</command
+> 's/g/a/'
+</screen
+> Med det kommandot blir resultatet av matchningen: <screen>
+      aa
+      ba
+      ca - cg
+      da - dg
+      ea - eg
+      fa
+</screen
+> Internt ser matchningsalgoritmen filerna efter den radmatchande preprocessorn har körts, men på skärmen är filen oförändrad. (Den normala preprocessorn skulle också ändra data på skärmen.) </para>
+
+<sect2 id="sedbasics"
+><title
+>Grundläggande information om <command
+>sed</command
+></title>
+<para
+>Det här avsnittet introducerar bara några mycket grundläggande funktioner i <command
+>sed</command
+>. För mer information se <ulink url="info:/sed"
+>info:/sed</ulink
+> eller <ulink url="http://www.gnu.org/software/sed/manual/html_mono/sed.html"
+>http://www.gnu.org/software/sed/manual/html_mono/sed.html</ulink
+>. En förkompilerad version för Windows finns på <ulink url="http://unxutils.sourceforge.net"
+>http://unxutils.sourceforge.net</ulink
+>. Observera att följande exempel antar att <command
+>sed</command
+> finns i någon katalog i miljövariabeln PATH. Om det inte är fallet, måste du ange fullständig absolut sökväg till kommandot. </para>
+<note
+><para
+>Observera också att följande exempel använder enkla citationstecken ('), vilket inte fungerar i Windows. I Windows ska du istället använda dubbla citationstecken (").</para
+></note>
+<para
+>I det här sammanhanget används bara ersättningskommandot i <command
+>sed</command
+>: <screen>
+   <command
+>sed</command
+> 's/<replaceable
+>REGUTTRYCK</replaceable
+>/<replaceable
+>ERSÄTTNING</replaceable
+>/<replaceable
+>FLAGGOR</replaceable
+>'
+</screen
+> Innan du använder ett nytt kommando inne i &kdiff3;, bör du först prova det i en terminal. Då är kommandot <command
+>echo</command
+> användbart. Till exempel: <screen>
+   <command
+>echo</command
+> abrakadabra | <command
+>sed</command
+> 's/a/o/'
+   -> obrakadabra
+</screen
+> Exemplet visar ett mycket enkelt sed-kommando som ersätter den första förekomsten av "a" med "o". Om du vill ersätta alla förekomster behöver du flaggan "g": <screen>
+   <command
+>echo</command
+> abrakadabra | <command
+>sed</command
+> 's/a/o/g'
+   -> obrokodobro
+</screen
+> Symbolen "|" är rörledningskommandot som överför utdata från föregående kommando till indata i efterföljande kommando. Om du vill prova med en längre fil kan du använda <command
+>cat</command
+> på Unix-liknande system eller <command
+>type</command
+> på Windows-liknande system. <command
+>sed</command
+> utför ersättningen för varje rad. <screen
+><command
+>cat</command
+> <replaceable
+>filnamn</replaceable
+> |<command
+>sed</command
+> <replaceable
+>väljare</replaceable
+>
+</screen>
+</para>
+</sect2>
+<sect2 id="sedforkdiff3"
+><title
+>Exempel på användning av <command
+>sed</command
+> i &kdiff3;</title>
+<sect3
+><title
+>Ignorera andra typer av kommentarer</title>
+<para
+>För närvarande förstår &kdiff3; bara C/C++ kommentarer. Genom att använda ett radmatchande preprocessorkommando kan du också ignorera andra typer av kommentarer genom att konvertera dem till C/C++ kommentarer. För att till exempel ignorera kommentarer som börjar med "#", skulle du vilja konvertera dem till "//". Observera att du också måste aktivera alternativet "Ignorera C/C++ kommentarer" för att få någon effekt. Ett lämpligt radmatchande preprocessorkommando skulle vara: <screen>
+   <command
+>sed</command
+> 's/#/\/\//'
+</screen
+> Eftersom tecknet "/" har en särskild betydelse i <command
+>sed</command
+>, är det nödvändigt att lägga till tecknet "\" innan varje "/" i ersättningssträngen. Ibland behövs "\" för att lägga till eller ta bort en särskild betydelse för vissa tecken. De enkla citationstecknen (') innan och efter ersättningskommandot är nu viktiga, eftersom skalet annars skulle försöka tolka vissa specialtecken som '#', '$' eller '\' innan de skickas till <command
+>sed</command
+>. <emphasis
+>Observera att i Windows behöver du dubbla citationstecken (") här. Windows ersätter andra tecken som '%', så du kan behöva experimentera något.</emphasis
+> </para>
+</sect3>
+<sect3
+><title
+>Jämförelse som inte är skiftlägeskänslig</title>
+<para
+>Använd följande radmatchande preprocessorkommando för att omvandla all indata till stora bokstäver: <screen>
+   <command
+>sed</command
+> 's/\(.*\)/\U\1/'
+</screen
+> Här är ".*" ett reguljärt uttryck som matchar alla strängar, och i det här sammanhanget matchar alla tecken på raden. Tecknet "\1" i ersättningssträngen motsvarar den matchade texten mellan det första paret "\(" och "\)". "\U" konverterar den infogade texten till stora bokstäver. </para>
+</sect3>
+
+<sect3
+><title
+>Ignorera nyckelord för versionshantering</title>
+<para
+>CVS och andra versionshanteringssystem använder flera nyckelord för att infoga automatiskt skapade strängar (<ulink url="info:/cvs/Keyword substitution"
+>info:/cvs/Keyword substitution</ulink
+>). Alla följer mönstret "$NYCKELORD skapad text$". Nu behöver vi ett radmatchande preprocessorkommando som bara tar bort den skapade texten: <screen>
+   <command
+>sed</command
+> 's/\$\(Revision\|Author\|Log\|Header\|Date\).*\$/\$\1\$/'
+</screen
+> Strängen "\|" skiljer de möjliga nyckelorden åt. Du kanske vill ändra listan enligt dina behov. Tecknet "\" framför "$" behövs eftersom annars matchar  "$" radens slut. </para>
+<para
+>Medan du experimenterar med <command
+>sed</command
+> kan du komma att förstå och till och med tycka om de reguljära uttrycken. De är användbara eftersom det finns många andra program som också stöder liknande funktioner. </para>
+</sect3>
+
+<sect3
+><title
+>Ignorera siffror</title>
+<para
+>Att ignorera siffror är i själva verket ett inbyggt alternativ, men som ett annat exempel, visas hur det skulle se ut som ett radmatchande preprocessorkommando. <screen>
+   <command
+>sed</command
+> 's/[0123456789.-]//g'
+</screen
+> Alla tecken inom '[' och ']' matchar och kommer att ersättas av ingenting. </para>
+</sect3>
+
+<sect3
+><title
+>Ignorera vissa kolumner</title>
+<para
+>Ibland är texten mycket strikt formaterad, och innehåller kolumner som du alltid vill ignorera, medan det finns andra kolumner du vill bevara för analys. I följande exempel ignoreras de fem första kolumnerna (tecknen), de följande tio kolumnerna bevaras, därefter ignoreras återigen fem kolumner och resten av raden bevaras. <screen>
+   <command
+>sed</command
+> 's/.....\(..........\).....\(.*\)/\1\2/'
+</screen
+> Varje punkt '.' motsvarar vilket enstaka tecken som helst. Strängarna "\1" och "\2" i ersättningssträngen refererar till den matchande texten inom det första och andra paret av  "\(" och "\)" som anger texten att bevara. </para>
+</sect3>
+
+<sect3
+><title
+>Kombinera flera ersättningar</title>
+<para
+>Ibland vill du tillämpa flera ersättningar samtidigt. Då kan du använda semikolon ';' för att skilja dem från varandra. Till exempel: <screen
+><command
+>echo</command
+> abrakadabra | <command
+>sed</command
+> 's/a/o/g;s/\(.*\)/\U\1/'
+   -> OBROKODOBRO
+</screen>
+</para>
+</sect3>
+
+<sect3
+><title
+>Använda <command
+>perl</command
+> istället för <command
+>sed</command
+></title>
+<para
+>Istället för <command
+>sed</command
+> kanske du vill använda något annat som <command
+>perl</command
+>. <screen>
+   <command
+>perl</command
+> -p -e 's/<replaceable
+>REGUTTRYCK</replaceable
+>/<replaceable
+>ERSÄTTNING</replaceable
+>/<replaceable
+>FLAGGOR</replaceable
+>'
+</screen
+> Men vissa detaljer är annorlunda i <command
+>perl</command
+>. Observera att där <command
+>sed</command
+> behöver "\(" och "\)" kräver <command
+>perl</command
+> det enklare  "(" och ")" utan inledande '\'. Till exempel: <screen
+><command
+>sed</command
+> 's/\(.*\)/\U\1/'
+   <command
+>perl</command
+> -p -e 's/(.*)/\U\1/'
+</screen>
+</para>
+</sect3>
+</sect2>
+
+<sect2
+><title
+>Ordning vid körning av preprocessor</title>
+<para
+>Data skickas igenom all intern och extern förbehandling i följande ordning: </para>
+<itemizedlist>
+<listitem
+><para
+>Normal preprocessor,</para
+></listitem>
+<listitem
+><para
+>Preprocessor för radmatchning,</para
+></listitem>
+<listitem
+><para
+>Ignorera skiftläge (konvertering till stora bokstäver),</para
+></listitem>
+<listitem
+><para
+>Detektering av C/C++ kommentarer,</para
+></listitem>
+<listitem
+><para
+>Ignorera siffror,</para
+></listitem>
+<listitem
+><para
+>Ignorera blanktecken</para
+></listitem>
+</itemizedlist>
+<para
+>Data efter den normala förbehandlingen bevaras för att visas och sammanfogas. De andra åtgärderna ändrar bara data som algoritmen för radmatchande jämförelse ser. </para
+><para
+>I de sällsynta fall då du använder normal förbehandling, observera att den radmatchande förbehandlingen ser utdata från den normala förbehandlingen som indata. </para>
+</sect2>
+
+<sect2
+><title
+>Varning</title>
+<para
+>Förbehandlingskommandon är ofta mycket användbara, men som med alla alternativ som ändrar texten eller döljer vissa skillnader automatiskt, kan du av misstag hoppa över vissa skillnader och i värsta fall förstöra viktig data. </para
+><para
+>Av denna orsak, om ett normalt preprocessorkommando används under en sammanfogning, talar &kdiff3; om det för dig och frågar om det ska inaktiveras eller inte. Men du får ingen varning om ett radmatchande preprocessorkommando är aktivt. Sammanfogningen sker inte förrän alla konflikter är lösta. Om du inaktiverade "Visa blanktecken" blir också skillnaderna som togs bort med det radmatchande preprocessorkommandot osynliga. Om knappen Spara förblir inaktiv under en sammanfogning (på grund av kvarvarande konflikter), försäkra dig om att aktivera "Visa blanktecken". Om du inte vill sammanfoga dessa mindre viktiga skillnader för hand kan du välja "Välj [A|B|C] för olösta konflikter med blanktecken" i menyn "Sammanfoga". </para>
+</sect2>
+</sect1>
+</chapter>
+
+
+<chapter id="dirmerge"
+><title
+>Katalogjämförelse och sammanfogning med &kdiff3;</title>
+<sect1 id="dirmergeintro"
+><title
+>Introduktion till katalogjämförelse och sammanfogning</title>
+<para
+>Ofta måste programmerare ändra många filer i en katalog för att uppnå sina syften. För att åstadkomma detta låter &kdiff3; dig också jämföra och sammanfoga hela kataloger rekursivt! </para
+><para
+>Även om jämförelse och sammanfogning av kataloger verkar vara ganska självklart, finns det flera detaljer som du bör känna till. Det viktigaste är förstås faktum att många filer nu kan påverkas av varje åtgärd. Om du inte har säkerhetskopior av originaldata, kan det vara mycket svårt eller till och med omöjligt att återgå till originalläget. Så innan du påbörjar en sammanfogning, försäkra dig om att data är säkert, och att det är möjligt att återställa. Om du skapar ett arkiv, eller använder ett versionshanteringssystem är ditt eget beslut, men till och med erfarna programmerare och integratörer behöver ibland gammal källkod. Observera också att även om jag (upphovsmannen till &kdiff3;) försöker att göra mitt bästa, kan jag inte garantera att det inte finns fel. Enligt GNU GPL finns det INGEN GARANTI av något slag för det här programmet. Så var ödmjuk, och kom alltid ihåg: </para>
+<blockquote
+><para>
+   <emphasis
+>Att fela är mänskligt, men för att verkligen ställa till det behövs en dator.</emphasis>
+</para
+></blockquote>
+<para
+>Så det här är vad programmet kan göra åt dig: &kdiff3; ... </para>
+<itemizedlist>
+     <listitem
+><para
+>... läser och jämför två eller tre kataloger rekursivt,</para
+></listitem>
+     <listitem
+><para
+>... hanterar symboliska länkar särskilt,</para
+></listitem>
+     <listitem
+><para
+>... låter dig bläddra mellan filer med ett dubbelklick på musen,</para
+></listitem>
+     <listitem
+><para
+>... föreslår ett sammanfogningsalternativ för varje objekt, som du kan ändra innan katalogsammanfogningen startas,</para
+></listitem>
+     <listitem
+><para
+>... låter dig simulera sammanfogningen och listar åtgärderna som skulle ske, utan att verkligen göra dem,</para
+></listitem>
+     <listitem
+><para
+>... låter dig utföra sammanfogningen, och låter dig bestämma så fort manuell interaktion behövs,</para
+></listitem>
+     <listitem
+><para
+>... låter dig utföra vald åtgärd för alla objekt (tangenten F7 ) eller markerat objekt (tangenten F6),</para
+></listitem>
+     <listitem
+><para
+>... låter dig fortsätta sammanfogningen efter manuell interaktion med tangenten F7,</para
+></listitem>
+     <listitem
+><para
+>... skapar valfria säkerhetskopior, med filändelsen ".orig",</para
+></listitem>
+     <listitem
+><para
+>...</para
+></listitem>
+</itemizedlist>
+</sect1>
+
+<sect1 id="startingdirmerge"
+><title
+>Starta katalogjämförelse eller sammanfogning</title>
+<para
+>Det här liknar mycket sammanfogning och jämförelse av en enstaka fil. Du måste bara ange kataloger på kommandoraden eller i dialogrutan för filöppning. </para>
+<sect2
+><title
+>Jämföra eller sammanfoga två kataloger: </title>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>kat1 kat2</replaceable>
+   <command
+>kdiff3</command
+> <replaceable
+>kat1 kat2</replaceable
+> <option
+>-o</option
+> <replaceable
+>målkat</replaceable
+>
+</screen>
+<para
+>Om ingen målkatalog anges, använder &kdiff3; <replaceable
+>kat2</replaceable
+>. </para>
+</sect2>
+
+<sect2
+><title
+>Jämföra eller sammanfoga tre kataloger: </title>
+<screen
+><command
+>kdiff3</command
+> <replaceable
+>kat1 kat2 kat3</replaceable>
+   <command
+>kdiff3</command
+> <replaceable
+>kat1 kat2 kat3</replaceable
+> <option
+>-o</option
+> <replaceable
+>målkat</replaceable
+>
+</screen>
+<para
+>När tre kataloger sammanfogas, används <replaceable
+>kat1</replaceable
+> som basen för sammanfogningen. Om ingen målkatalog anges, använder &kdiff3; <replaceable
+>kat3</replaceable
+> som målkatalog för sammanfogningen. </para>
+
+<para
+>Observera att bara jämförelsen startas automatiskt, inte sammanfogningen. För det måste du först välja ett menyalternativ eller tangenten F7. (Mer information kommer senare.) </para>
+</sect2>
+</sect1>
+
+<sect1 id="dirmergevisible"
+><title
+>Katalogsammanfogning av synlig information</title>
+<para
+>Medan katalogerna läses visas en meddelanderuta som informerar dig om förloppet. Om du avbryter katalogavsökningen, visas bara filer som hittills har jämförts. </para
+><para
+>När katalogavsökningen är färdig, visar &kdiff3; en listruta med återstående resultat, ... </para>
+<screenshot
+><mediaobject>
+<imageobject
+><imagedata fileref="dirbrowser.png" format="PNG"/></imageobject
+> <!--alt="Image of the directory browser."-->
+</mediaobject
+></screenshot>
+<para
+>... och detaljinformation om det markerade objektet till höger: </para>
+<screenshot
+><mediaobject>
+<imageobject
+><imagedata fileref="iteminfo.png" format="PNG"/></imageobject>
+   <!--alt="Image with information about the selected item."-->
+</mediaobject
+></screenshot>
+
+<sect2 id="name"
+><title
+>Namnkolumnen</title>
+<para
+>Varje fil och katalog som hittades under avsökningen visas här i ett träd. Du kan välja ett objekt genom att klicka en gång på det med musen. </para
+><para
+>Katalogerna är normalt ihopdragna. Du kan expandera och dra ihop dem genom att klicka på "+"/"-", genom att dubbelklicka på objektet eller genom att använda tangenterna vänsterpil och högerpil. Menyn "Katalog" innehåller också två alternativ "Dra ihop alla underkataloger" och "Expandera alla underkataloger" som du kan använda för att dra ihop eller expandera alla kataloger på en gång. </para
+><para
+>Om du dubbelklickar på ett filobjekt, utförs filjämförelsen och jämförelsefönstret för filer visas. </para>
+<para
+>Ikonen i namnkolumnen motsvarar filtypen i den första katalogen ("A"). Den kan vara någon av dessa: </para>
+<itemizedlist>
+     <listitem
+><para
+>Normal fil</para
+></listitem>
+     <listitem
+><para
+>Normal katalog (katalogikon)</para
+></listitem>
+     <listitem
+><para
+>Länk till en fil (filikon med en länkpil)</para
+></listitem>
+     <listitem
+><para
+>Länk till en katalog (katalogikon med en länkpil)</para
+></listitem>
+</itemizedlist>
+<para
+>Om filtypen är annorlunda i övriga kataloger, syns det i kolumnerna A/B/C och i fönstret som visar detaljinformation om det markerade objektet. Observera att i dessa fall kan inte någon sammanfogningsåtgärd väljas automatiskt. När sammanfogningen startas, informeras användaren om den här sortens problem. </para>
+</sect2>
+
+<sect2 id="coloring"
+><title
+>Kolumnerna A/B/C och färgläggningsschemat</title>
+<para
+>Som syns i bilden ovan, används färgerna röd, grön, gul och svart i kolumnerna A/B/C. </para>
+<itemizedlist>
+     <listitem
+><para
+>Svart: Det här objektet finns inte i den här katalogen.</para
+></listitem>
+     <listitem
+><para
+>Grön: Nyaste objektet.</para
+></listitem>
+     <listitem
+><para
+>Gul: Äldre än grön, nyare än röd.</para
+></listitem>
+     <listitem
+><para
+>Röd: Äldsta objektet.</para
+></listitem>
+</itemizedlist>
+<para
+>Utom för objekt som var identiska i jämförelsen, där är färgen också identisk även om åldern inte är det. </para
+><para
+>Kataloger anses vara likadana om alla objekt de innehåller är likadana. Då har de också samma färg. Åldern på en katalog spelar dock ingen roll för dess färg. </para
+><para
+>Idén för färgläggningsschemat hittade jag i <ulink url="http://samba.org/cgi-bin/cvsweb/dirdiff"
+>dirdiff</ulink
+>. Färgerna motsvarar färgerna hos ett löv som är grönt från början, sedan blir gult och till sist rött när det är gammalt. </para>
+
+</sect2
+><sect2 id="operation"
+><title
+>Åtgärdskolumnen</title>
+<para
+>Efter att ha jämfört katalogerna utvärderar &kdiff3; också ett förslag på sammanfogningsåtgärd. Det visas i kolumnen "Åtgärd". Du kan ändra den genom att klicka på åtgärden du vill ändra. En liten meny dyker upp och låter dig välja en åtgärd för objektet. (Du kan också välja den oftast använda åtgärden via tangentbordet. Ctrl+1/2/3/4/Delete väljer A/B/C/Sammanfoga/Ta bort om de är tillgängliga.) Åtgärden utförs under sammanfogningen. Vilka åtgärder som är tillgängliga beror på objektet och sammanfogningsläget som används. Sammanfogningsläget är ett av </para>
+<itemizedlist>
+     <listitem
+><para
+>Sammanfogning av tre kataloger ("A" behandlas som äldsta bas för båda).</para
+></listitem>
+     <listitem
+><para
+>Sammanfogning av två kataloger.</para
+></listitem>
+     <listitem
+><para
+>Tvåkatalogs synkroniseringsläge (aktiveras med alternativet "Synkronisera kataloger").</para
+></listitem>
+</itemizedlist>
+<para
+>Vid trekatalogers sammanfogning är den förslagna åtgärden: Om för ett objekt... </para>
+<itemizedlist>
+     <listitem
+><para
+>... alla tre katalogerna är likadana: Kopiera från C</para
+></listitem>
+     <listitem
+><para
+>... A och C är likadana med B är det inte: Kopiera från B (eller om B inte finns, ta bort målet om det finns)</para
+></listitem>
+     <listitem
+><para
+>... A och B är likadana med C är det inte: Kopiera från C (eller om C inte finns, ta bort målet om det finns)</para
+></listitem>
+     <listitem
+><para
+>... B och C är likadana med A är det inte: Kopiera från C (eller om C inte finns, ta bort målet om det finns)</para
+></listitem>
+     <listitem
+><para
+>... bara A finns: Ta bort målet (om det finns)</para
+></listitem>
+     <listitem
+><para
+>... bara B finns: Kopiera från B</para
+></listitem>
+     <listitem
+><para
+>... bara C finns: Kopiera från C</para
+></listitem>
+     <listitem
+><para
+>... A, B och C är inte likadana: Sammanfoga</para
+></listitem>
+     <listitem
+><para
+>... A, B och C har inte samma filtyp (t.ex. A är en katalog, B är en fil): "Fel: Konflikt i filtyper". Medan sådana objekt finns, kan inte katalogsammanfogningen startas.</para
+></listitem>
+</itemizedlist>
+<para
+>Vid tvåkatalogers sammanfogning är den förslagna åtgärden: Om för ett objekt... </para>
+<itemizedlist>
+     <listitem
+><para
+>... båda katalogerna är likadana: Kopiera från B</para
+></listitem>
+     <listitem
+><para
+>... A finns men inte B: Kopiera från A</para
+></listitem>
+     <listitem
+><para
+>... B finns men inte A: Kopiera från B</para
+></listitem>
+     <listitem
+><para
+>... A och B finns men är inte likadana: Sammanfoga</para
+></listitem>
+     <listitem
+><para
+>... A och B har inte samma filtyp (t.ex. A är en katalog, B är en fil): "Fel: Konflikt i filtyper". Medan sådana objekt finns, kan inte katalogsammanfogningen startas.</para
+></listitem>
+</itemizedlist>
+<para
+>Synkroniseringsläge är bara aktivt om två kataloger och ingen explicit målkatalog anges, och om alternativet "Synkronisera kataloger" är aktivt. &kdiff3; väljer då en standardåtgärd så att båda katalogerna är likadana efteråt. Om för ett objekt ... </para>
+<itemizedlist>
+     <listitem
+><para
+>... båda katalogerna är lika: Ingenting görs.</para
+></listitem>
+     <listitem
+><para
+>... A finns, men inte B: Kopiera A till B</para
+></listitem>
+     <listitem
+><para
+>... B finns, men inte A: Kopiera B till A</para
+></listitem>
+     <listitem
+><para
+>... A och B finns, men är inte likadana: Sammanfoga och lagra resultatet i båda kataloger. (För användaren är det synliga filnamnet för att spara B, men därefter kopierar &kdiff3; också B till A.)</para
+></listitem>
+     <listitem
+><para
+>... A och B har inte samma filtyp (t.ex. A är en katalog, B är en fil): "Fel: Konflikt i filtyper". Medan sådana objekt finns, kan inte katalogsammanfogningen startas.</para
+></listitem>
+</itemizedlist>
+<para
+>När två kataloger sammanfogas och alternativet "Kopiera nyare istället för att sammanfoga" är markerat, tittar &kdiff3; på datum och föreslår att välja den nyare filen. Om filerna inte är lika men har samma datum, innehåller åtgärden "Fel: Datum är lika men filerna är det inte." Medan sådana objekt finns, kan inte katalogsammanfogningen startas. </para>
+</sect2>
+
+<sect2 id="status"
+><title
+>Statuskolumnen</title>
+<para
+>Under sammanfogningen behandlas en fil i taget. Statuskolumnen visar "Klar" för objekt där sammanfogningsåtgärden har lyckats, och någon annan text om något oväntat inträffade. När en sammanfogning är färdig, bör du göra en sista kontroll för att se att status för alla objekt är acceptabel. </para>
+</sect2>
+
+<sect2 id="statisticscolulmns"
+><title
+>Statistikkolumner</title>
+<para
+>När filjämförelseläget "Fullständig analys" är aktiverat i alternativen, visar &kdiff3; extra kolumner som innehåller antal oupplösta, upplösta, inte blanka och blanka konflikter. (Kolumnen lösta visas bara när kataloger jämförs eller sammanfogas.) </para>
+</sect2>
+
+<sect2 id="selectingvisiblefiles"
+><title
+>Välja listade filer</title>
+<para
+>Flera alternativ påverkar vilka filer som listas här. Vissa är tillgängliga i <link linkend="dirmergeoptions"
+>inställningsdialogrutan</link
+>. Menyn Katalog innehåller alternativen: </para
+><para
+><itemizedlist>
+     <listitem
+><para
+>"Visa identiska filer": Filer som har detekterats som lika i alla indatakataloger.</para
+></listitem>
+     <listitem
+><para
+>"Visa olika filer": Filer som finns i två eller flera kataloger men inte är lika.</para
+></listitem>
+     <listitem
+><para
+>"Visa bara filer i A": Filer som bara finns i A, men inte i B eller C.</para
+></listitem>
+     <listitem
+><para
+>"Visa bara filer i B": Filer som bara finns i B, men inte i A eller C.</para
+></listitem>
+     <listitem
+><para
+>"Visa bara filer i C": Filer som bara finns i C, men inte i A eller B.</para
+></listitem>
+</itemizedlist
+></para>
+<para
+>Aktivera bara alternativen "Visa" för objekten du vill lista. Om du till exempel bara vill lista alla objekt som antingen finns i A eller i B men inte i båda, måste du aktivera "Visa bara filer i A" och "Visa bara filer i B" och inaktivera alla andra ("Visa identiska filer", "Visa olika filer", "Visa bara filer i C"). Listan uppdateras omedelbart för att motsvara ändringen. </para
+><para
+>Alternativen gäller också för kataloger med ett undantag: Att inaktivera "Visa olika filer" döljer inte hela kataloger. Det fungerar bara för filer inne i dem. </para
+><para
+>Observera att av dessa är bara alternativet "Visa identiska filer" som är bestående Övriga aktiveras när &kdiff3; startas. </para>
+</sect2>
+
+</sect1>
+
+
+<sect1 id="dothemerge"
+><title
+>Utföra en katalogsammanfogning</title>
+<para
+>Du kan antingen sammanfoga markerat objekt (fil eller katalog), eller alla objekt. När du har gjort alla val av åtgärder (också i alla underkataloger), kan du utföra sammanfogningen. </para
+><para
+>Var medveten om att om du inte explicit angav en målkatalog, blir målet "C" i trekatalogsläge, "B" i tvåkatalogsläge, och i synkroniseringsläge är det "A" och/eller "B". </para
+><para
+>Om du också har angivit en målkatalog, kontrollera att alla objekt som ska finnas i utmatningen finns i trädet. Det finns några alternativ som får vissa objekt att utelämnas från katalogjämförelsen och sammanfogningen. Kontrollera dessa alternativ för att undvika obehagliga överraskningar: </para>
+<itemizedlist>
+     <listitem
+><para
+>"Rekursiva kataloger": Om det är av, hittas inte objekt i underkataloger.</para
+></listitem>
+     <listitem
+><para
+>"Mönster" eller "Undantagsmönster": Inkludera eller undanta objekt som matchar</para
+></listitem>
+     <listitem
+><para
+>"Undanta gömda filer"</para
+></listitem>
+     <listitem
+><para
+><link linkend="selectingvisiblefiles"
+>"Visa"-alternativ</link
+> (Visa identiska/olika filer, bara filer i A/B/C)</para
+></listitem>
+</itemizedlist>
+<para
+>Om du ändrar inställningarna för att visa fler filer, måste du göra en omsökning via menyn "Katalog" -> "Avsök igen". (Orsaken till det är att &kdiff3; utelämnar jämförelsen för filer enligt kriterierna för att få snabbare jämförelsehastighet.) Om du ändrade fil- och katalogmönster för att undanta filer, uppdateras fillistan omedelbart när inställningsdialogrutan stängs. </para
+><para
+>Observera att när du skriver till en helt ny katalog vill du oftast också kopiera de identiska filerna. Aktivera "Visa identiska filer" i detta fall. Om din målkatalog är en av indatakatalogerna, är det inte nödvändigt eftersom filerna redan finns där. </para
+><para
+>Om du är nöjd hittills, är resten enkelt. </para
+><para
+>För att sammanfoga alla objekt: Välj "Starta eller fortsätt katalogsammanfogning" i menyn "Katalog" eller tryck på F7 (som är snabbtangenten). För att bara sammanfoga aktuellt objekt: Välj "Utför åtgärd för aktuellt objekt" eller tryck på F6. </para
+><para
+>Om vissa objekt med ogiltiga filtyper fortfarande finns, på grund av filtyper med konflikter, visas en meddelanderuta och objekten pekas ut, så att du kan välja en giltig åtgärd för objektet. </para
+><para
+>Om du sammanfogar alla objekt visas en dialogruta som ger dig alternativen "Gör det", "Simulera det" och "Avbryt". </para>
+<itemizedlist>
+     <listitem
+><para
+>Välj "Simulera det" om du vill se vad som skulle göras utan att verkligen göra det. En utförlig lista med alla åtgärder visas.</para
+></listitem>
+     <listitem
+><para
+>Välj annars "Gör det" för att verkligen utföra sammanfogningen.</para
+></listitem>
+</itemizedlist>
+<para
+>Därefter utför &kdiff3; den angivna åtgärden för alla objekt. Om manuell interaktion krävs (sammanfogning av enstaka fil), visas ett sammanfogningsfönster (<link linkend="dirmergebigscreenshot"
+>se den stora skärmbilden</link
+>). </para
+><para
+>När du är klar med manuell sammanfogning av en fil, välj återigen "Starta eller fortsätt katalogsammanfogning" eller tryck på F7. Om du inte har sparat ännu, ber en dialogruta dig att göra det. Därefter fortsätter &kdiff3; till nästa objekt. </para
+><para
+>När &kdiff3; stöter på ett fel, meddelas det och utförlig statusinformation visas. Längst ner i listan finns det några felmeddelanden som bör hjälpa dig att förstå problemets orsak. När du fortsätter sammanslagningen (tangenten F7), ger &kdiff3; dig valet att försöka igen eller hoppa över objektet som orsakade problemet. Det betyder att du kan välja en annan åtgärd, eller lösa problemet på annat sätt, innan du fortsätter. </para
+><para
+>När sammanfogningen är färdig, informerar &kdiff3; dig med en meddelanderuta. </para
+><para
+>Om vissa objekt sammanfogades individuellt innan katalogsammanfogningen, kommer &kdiff3; ihåg det (medan sammanfogningssessionen pågår), och sammanfogar dem inte igen när sammanfogningen för alla objekt utförs. Även när sammanfogningen hoppas över eller ingenting sparas räknas dessa objekt som färdiga. Bara när sammanfogningsåtgärden ändras, tas objektets "klar"-status bort och det kan sammanfogas igen. </para>
+</sect1>
+
+<sect1 id="dirmergeoptions"
+><title
+>Alternativ för att jämföra och sammanfoga kataloger</title>
+<para
+>Inställning av &kdiff3; (menyn "Inställningar" -&gt; "Anpassa &kdiff3;") har en sida som heter "Katalogsammanfogning" med följande alternativ: </para>
+
+<variablelist>
+   <varlistentry
+><term
+><emphasis
+>Rekursiva kataloger:</emphasis
+></term
+><listitem
+><para
+>Välj om kataloger ska sökas igenom rekursivt.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Mönster för filer:</emphasis
+></term
+><listitem
+><para
+>Bara filer som matchar något mönster här läggs till i trädet. Mer än ett mönster kan anges genom att använda semikolon ";" som skiljetecken. Giltiga jokertecken: '*' och '?'. (t.ex. "*.cpp;*.h"). Normalvärdet är "*". Mönstret används inte för kataloger.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Undantagsmönster för filer:</emphasis
+></term
+><listitem
+><para
+>Filer som matchar något mönster undantas från trädet. Mer än ett mönster kan anges här genom att använda semikolon ";" som skiljetecken. Giltiga jokertecken: '*' och '?'. Normalvärdet är "*.orig;*.o;*.obj".</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Undantagsmönster för kataloger:</emphasis
+></term
+><listitem
+><para
+>Kataloger som matchar något mönster undantas från trädet. Mer än ett mönster kan anges genom att använda semikolon ";" som skiljetecken. Giltiga jokertecken: '*' och '?'. Normalvärdet är "CVS;deps;.svn".</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Använd .cvsignore:</emphasis
+></term
+><listitem
+><para
+>Ignorera filer och kataloger som också skulle ignoreras av CVS. Många automatiskt genererade filer ignoreras av CVS. Den stora fördelen är att detta kan vara katalogspecifikt via en lokal ".cvsignore" fil. (Se <ulink url="info:/cvs/cvsignore"
+>info:/cvs/cvsignore</ulink
+>.)</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Sök efter gömda filer och kataloger:</emphasis
+></term
+><listitem
+><para
+>För vissa filsystem har filer egenskapen "Dold". För andra system döljs ett filnamn som börjar med en punkt ("."). Alternativet låter dig bestämma om dessa filer ska ingå i trädet eller inte. Normalvärdet är på.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Följ fillänkar:</emphasis
+></term
+><listitem
+><para
+>För länkar till filer: Om inaktiverad, jämförs de symboliska länkarna. Om aktiverad, jämförs filerna bakom länkarna. Normalvärdet är av.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Följ kataloglänkar:</emphasis
+></term
+><listitem
+><para
+>För länkar till kataloger: Om inaktiverad, jämförs symboliska länkar. Om aktiverad behandlas länken som en katalog och avsöks rekursivt. (Observera att programmet inte kontrollerar om länken är "rekursiv". En katalog som innehåller en länk till samma katalog skulle orsaka en oändlig snurra, och efter en viss tid när stacken blir full eller minnet tar slut, kraschar programmet.) Normalvärdet är av.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Skiftlägeskänslig filnamnsjämförelse:</emphasis
+></term
+><listitem
+><para
+>Förvalt värde är falskt på Windows, och sant för andra operativsystem.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Filjämförelseläge:</emphasis
+></term
+><listitem
+><para>
+<variablelist
+>            
+   <varlistentry
+><term
+><emphasis
+>Binär jämförelse:</emphasis
+></term
+><listitem
+><para
+>Det här är förvalt filjämförelseläge. </para
+></listitem
+></varlistentry
+>         
+   <varlistentry
+><term
+><emphasis
+>Fullständig analys:</emphasis
+></term
+><listitem
+><para
+>Gör en fullständig analys av varje fil och visa kolumner med statistisk information. (Antal upplösta, oupplösta, inte blanka och blanka konflikter.) Den fullständiga analysen är långsammare än en enkel binäranalys, och är mycket långsammare för filer som inte innehåller text. (Ange lämpliga filmönster för att undvika dem.) </para
+></listitem
+></varlistentry
+>         
+   <varlistentry
+><term
+><emphasis
+>Lita på ändringsdatum:</emphasis
+></term
+><listitem
+><para
+>Om du jämför stora kataloger via ett långsamt nätverk, kan det gå snabbare att bara jämföra ändringsdatum och fillängd. Men hastighetsförbättringen sker till priset av en liten osäkerhet. Använd alternativet med försiktighet. Normalvärdet är av.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Lita på storleken:</emphasis
+></term
+><listitem
+><para
+>Liknar att lita på ändringsdatum. Ingen verklig jämförelse sker. Två filer anses vara lika om deras filstorlekar är lika. Detta är användbart när filkopieringsåtgärden inte bevarade ändringsdatum. Använd alternativet med försiktighet. Normalvärdet är av.</para
+></listitem
+></varlistentry>
+</variablelist
+></para
+></listitem
+></varlistentry>
+         
+   <varlistentry
+><term
+><emphasis
+>Synkronisera kataloger:</emphasis
+></term
+><listitem
+><para
+>Aktiverar "synkroniseringsläge" när två kataloger jämförs och ingen explicit målkatalog anges. I det här läget väljes föreslagna åtgärder så att båda källkatalogerna är likadana efteråt. Sammanfogningsresultatet skrivs också till båda kataloger. Normalvärdet är av.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Kopiera nyare istället för att sammanfoga:</emphasis
+></term
+><listitem
+><para
+>Istället för att sammanfoga kopierar den föreslagna åtgärden den nyare källan om ändringar har skett. (Anses vara osäkert, eftersom det förutsätter att du vet att den andra filen inte också har redigerats. Kontrollera för att vara säker i varje enskilt fall.) Normalvärdet är av.</para
+></listitem
+></varlistentry>
+   <varlistentry
+><term
+><emphasis
+>Säkerhetskopiera filer:</emphasis
+></term
+><listitem
+><para
+>Om en fil eller hel katalog ersätts med en annan eller tas bort, då ändras originalversionens namn med tillägg av filändelsen ".orig". Om en gammal säkerhetskopia med filändelsen ".orig" redan finns tas den bort utan säkerhetskopiering. Det här gäller också normal sammanfogning av enstaka filer, inte bara sammanfogningsläge för kataloger. Normalvärdet är på.</para
+></listitem
+></varlistentry>
+</variablelist>
+</sect1>
+
+<sect1 id="other"
+><title
+>Andra funktioner i katalogsammanfogningsfönstret</title>
+<sect2
+><title
+>Delat eller fullskärmsläge</title>
+<para
+>Oftast förblir listfönstret för katalogsammanfogning synligt medan en enstaka fil jämförs eller sammanfogas. Du kan flytta raden som delar fillistan från fönstren för textjämförelse med musen. Om du inte vill göra det, kan du inaktivera "Delad skärmvy" i menyn "Katalog". Därefter kan du använda "Byt vy" i menyn "Katalog" för att byta mellan fillistan och fönstren för textjämförelse, som då upptar hela fönstret. </para>
+</sect2>
+<sect2
+><title
+>Jämföra och sammanfoga en ensam fil</title>
+<para
+>Du föredrar troligen ett vanligt dubbelklick på musen för att jämföra en fil. Hur som helst finns det också ett alternativ i menyn "Katalog". Du kan också direkt sammanfoga en enstaka fil, utan att starta katalogsammanfogning via "Sammanfoga markerade filer" i menyn "Sammanfoga". När resultatet sparas, sätts status till klar, och filen sammanfogas inte igen om en katalogsammanfogning startas. </para
+><para
+>Men observera att statusinformationen går förlorad när du kör om en katalogavsökning: menyn "Katalog", "Avsök igen" </para>
+</sect2>
+<sect2
+><title
+>Jämföra eller sammanfoga filer med olika namn</title>
+<para
+>Ibland behöver du jämföra eller sammanfoga filer med olika namn (t.ex. nuvarande fil och säkerhetskopian i samma katalog). </para
+><para
+>Markera den exakta filen genom att klicka på ikonen i kolumnen A, B eller C. Filen som först markeras på det sättet markeras med "A", den andra och tredje med "B" och "C" oberoende av vilken kolumn de finns i. Bara upp till tre filer kan markeras på detta sätt. </para
+><para
+>Fortsätt genom att välja "Jämför explicit markerade filer" eller "Sammanfoga explicit markerade filer" från menyn "Katalog". Av bekvämlighetsskäl finns också menyalternativen som en sammanhangsberoende meny som visas när du klickar på den senast markerade filen. </para
+><para
+>Jämförelsen eller sammanfogningen av en fil sker i samma fönster. Om metoden används för kataloger öppnas ett nytt fönster. </para
+></sect2>
+</sect1>
+</chapter>
+
+<chapter id="misc">
+<title
+>Diverse ämnen</title>
+<sect1 id="networktransparency">
+<title
+>Nätverkstransparens via KIO</title>
+<sect2
+><title
+>I/O-slavar</title>
+<para
+>KDE stöder nätverkstransparens via I/O-slavar. &kdiff3; använder dem för att läsa indatafiler och avsöka kataloger. Det betyder att du kan ange filer och kataloger på lokal- och fjärr-resurser via webbadresser. </para
+><para
+>Exempel: </para
+><para>
+<screen
+><command
+>kdiff3</command
+> test.cpp  ftp://ftp.langtbortistan.org/test.cpp
+   <command
+>kdiff3</command
+> tar:/home/hackare/arkiv.tar.gz/kat ./kat
+</screen>
+</para>
+<para
+>Den första raden jämför en lokal fil med en fil på en FTP-server. Den andra raden jämför en katalog i ett komprimerat arkiv med en lokal katalog. </para
+><para
+>Andra I/O-slavar som är intressanta är: </para>
+<itemizedlist>
+<listitem
+><para
+>Filer från WWW (http:),</para
+></listitem>
+<listitem
+><para
+>Filer från FTP (ftp:),</para
+></listitem>
+<listitem
+><para
+>Krypterad filöverföring (fish:, sftp:),</para
+></listitem>
+<listitem
+><para
+>Resurser från Windows (smb:),</para
+></listitem>
+<listitem
+><para
+>Lokala filer (file:),</para
+></listitem>
+</itemizedlist>
+<para
+>Andra saker som är möjliga, men troligen mindre användbara, är: </para>
+<itemizedlist>
+<listitem
+><para
+>Manualsidor (man:),</para
+></listitem>
+<listitem
+><para
+>Infosidor (info:),</para
+></listitem>
+</itemizedlist>
+</sect2>
+
+<sect2
+><title
+>Hur man skriver webbadresser</title>
+<para
+>En webbadress har en annorlunda syntax jämfört med sökvägar till lokala filer och kataloger. Vissa saker måste tas hänsyn till: </para>
+<itemizedlist>
+<listitem
+><para
+>En sökväg kan vara relativ, och kan innehålla "." eller "..". Det är inte möjligt för webbadresser, som alltid är absoluta. </para
+></listitem
+><listitem
+><para
+>Specialtecken måste skrivas med särskilda "teckenföljder". ("#" blir "%23", mellanslag blir "%20", etc.) Till exempel skulle en fil med namnet "/#foo#" ha webbadressen "file:/%23foo%23". </para
+></listitem
+><listitem
+><para
+>När webbadresser inte fungerar som väntat, försök att öppna dem i Konqueror först. </para
+></listitem>
+</itemizedlist>
+
+</sect2>
+
+<sect2
+><title
+>Möjligheter med I/O-slavar</title>
+<para
+>Nätverkstransparens har en nackdel: Inte alla resurser har samma möjligheter. </para
+><para
+>Ibland beror det på serverns filsystem, ibland på protokollet. Här är en kort lista med begränsningar: </para>
+<itemizedlist>
+<listitem
+><para
+>Ibland finns det inget stöd för länkar. </para
+></listitem
+><listitem
+><para
+>Eller finns det inget sätt att särskilja om en länk pekar på en fil eller katalog, då antas alltid en fil (ftp:, sftp:). </para
+></listitem
+><listitem
+><para
+>Kan inte alltid avgöra filstorleken. </para
+></listitem
+><listitem
+><para
+>Begränsat stöd för rättigheter. </para
+></listitem
+><listitem
+><para
+>Ingen möjlighet att ändra rättigheter eller ändringstid, så rättigheter eller tiden för en kopia skiljer sig från originalet. (Se alternativet "Lita på storlek". Ändring av rättigheter eller ändringstid är bara möjligt för lokala filer.) </para
+></listitem>
+</itemizedlist>
+</sect2>
+</sect1>
+
+<sect1 id="kpart">
+<title
+>Använda &kdiff3; som en Kpart</title>
+<para
+>Kdiff3 är en Kpart. För närvarande implementeras gränssnittet KParts::ReadOnlyPart. </para
+><para
+>Den huvudsakliga användningen är för skillnadsvisning i KDevelop. KDevelop startar alltid den interna skillnadsvisningen först. För att använda &kdiff3;, klicka med höger musknapp i skillnadsvisningens fönster och välj "Visa i KDiff3-del" i den sammanhangsberoende menyn. </para
+><para
+>&kdiff3; kräver normalt två fullständiga filer som indata. När det används som en del, antar &kdiff3; att indatafilen är en programfixfil med unifierat format. &kdiff3; hämtar därefter originalfilernas namn i programfixfilen. Åtminstone en av de två filerna måste vara tillgänglig. &kdiff3; startar då kommandot <command
+>patch</command
+> för att återskapa den andra filen. </para
+><para
+>Du kan välja en programfixfil i Konqueror och välja "Förhandsgranska i"-"Kdiff3-del" i den sammanhangsberoende menyn. Var medveten om att det inte fungerar om ingen av originalfilerna finns tillgänglig, och är inte tillförlitligt om originalfilen eller filerna har ändrats sedan programfixfilen skapades. </para
+><para
+>När det kör som ett delprogram tillhandahåller &kdiff3; bara jämförelse mellan två filer, en mycket liten verktygsrad och meny. Sammanfogning eller katalogjämförelse stöds då inte. </para>
+</sect1>
+</chapter>
+
+<chapter id="faq">
+<title
+>Vanliga frågor</title>
+&reporting.bugs; &updating.documentation; <qandaset id="faqlist">
+
+<qandaentry
+><question
+><para
+>Varför kallas det "&kdiff3;"? </para
+></question
+><answer
+><para
+>Verktyg som heter "KDiff" och "KDiff2" (som nu kallas "Kompare") fanns redan. Dessutom ska "Kdiff3" antyda att programmet kan sammanfoga som verktyget "diff3" från samlingen med diff-verktyg. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Varför licensieras det under GPL? </para
+></question
+><answer
+><para
+>Jag har använt GPL-program under mycket lång tid nu, och lärt mig mycket genom att titta på en hel del av källkoden. Alltså är det här mitt "tack" till alla programmerare som också gjorde eller kommer att göra samma sak. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Vissa knappar och funktioner saknas. Vad är fel? </para
+></question
+><answer
+><para
+>Du kompilerade från källkod, men angav troligen inte rätt KDE-prefix med configure. Normalt vill configure installera i /usr/local, men då kan inte KDE hitta resursfilerna för användargränssnittet (dvs. kdiff3ui.rc). Filen README innehåller mer information om riktigt prefix. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Ofta visas rader som är liknande men inte identiska intill varandra, men inte alltid. Varför? </para
+></question
+><answer
+><para
+>Rader där bara antal blanktecken är olika behandlas som "lika", medan bara ett annorlunda blanktecken gör att raderna är "olika". Om liknande rader finns intill varandra, är detta i själva verket en slump men det är som tur är oftast fallet. Se också <link linkend="manualdiffhelp"
+>hjälpen på manualsidan för diff</link
+>. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Varför måste alla konflikter vara lösta innan sammanfogningsresultatet kan sparas? </para
+></question
+><answer
+><para
+>För varje likadant eller annorlunda avsnitt kommer editorn i fönstret med sammanfogningsresultatet ihåg var det börjar och slutar. Det behövs eftersom konflikter kan lösas upp manuellt genom att helt enkelt välja källknappen (A, B eller C). Informationen går förlorad när filen sparas som text, och det är för mycket ansträngning att skapa ett speciellt filformat som stöder att spara och återställa all nödvändig information. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Hur kan jag synkronisera jämförelsevyn och sammanfogningsvyn så att alla vyer visar samma textposition? </para
+></question
+><answer
+><para
+>Klicka på sammanfattningskolumnen till vänster om texten. (<link linkend="synchronise_views"
+>Se också här.</link
+>) </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Varför har inte editorn i resultatfönstret för sammanfogning en "ångra"-funktion? </para
+></question
+><answer
+><para
+>Hittills har det varit för stor ansträngning. Du kan alltid återställa en version från en källa (A, B eller C) genom att klicka på motsvarande knapp. För större redigering, rekommenderas användning av en annan editor ändå. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>När jag tog bort en del text, visades plötsligt "&lt;Ingen källrad&gt;" och det kan inte tas bort. Vad betyder det och hur kan man ta bort det? </para
+></question
+><answer
+><para
+>För varje likadant eller annorlunda avsnitt kommer editorn i fönstret med sammanfogningsresultatet ihåg var det börjar och slutar. "&lt;Ingen källrad&gt;" betyder att det inte finns någonting kvar i ett avsnitt, inte ens ett nyradstecken. Detta kan inträffa antingen vid automatisk sammanfogning eller efter redigering. Det är inget problem, eftersom den här informationen inte finns med i den sparade filen. Om du vill ha tillbaka originalkällan, markera bara källan (klicka på sammanfattningskolumnen till vänster) och klicka därefter på källknappen med innehållet som önskas (A, B eller C). </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Varför stöder inte &kdiff3; syntaxfärgläggning? </para
+></question
+><answer
+><para
+>&kdiff3; använder redan många färger för färgläggning av jämförelser. Ytterligare färgläggning skulle vara förvirrande. Använd en annan editor för detta. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Kan jag använda &kdiff3; för att jämföra filer från OpenOffice.Org, Word, Excel, PDF, och så vidare? </para
+></question
+><answer
+><para
+>Även om &kdiff3; kan analysera alla sorters filer, är resultatet troligen inte särskilt tillfredsställande för dig. </para
+><para
+>&kdiff3; skapades för att jämföra rena textfiler. OpenOffice, Word, Excel, och så vidare, lagrar mycket mer information i filerna (om teckensnitt, bilder, sidor, färger, etc.), som &kdiff3; inte känner till. Alltså visar &kdiff3; dig innehållet i filen tolkat som ren text, men det kan vara oläsbart eller åtminstone se mycket konstigt ut. </para
+><para
+>Eftersom de flesta program nuförtiden lagrar sitt innehåll med XML-format, kanske du kan läsa det som ren text. Om ändringen bara var liten, kanske &kdiff3; fortfarande kan hjälpa dig. </para
+><para
+>Den bästa lösningen om du bara vill jämföra texten (utan inbäddade objekt som bilder) är att använda "Markera alla" och "Kopiera" i programmet för att kopiera den intressanta texten till klippbordet och därefter klistra in texten i något av jämförelsefönstren i &kdiff3;. (Se också <link linkend="selections"
+>Markera, kopiera och klistra in</link
+>.) </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Vart har katalogalternativet "Lista bara skillnader" tagit vägen? </para
+></question
+><answer
+><para
+>Det finns nu flera olika <link linkend="selectingvisiblefiles"
+>"Visa"-alternativ</link
+> i katalogmenyn. Att inaktivera "Visa identiska filer" åstadkommer vad aktivering av "Lista bara skillnader" brukade göra. </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Hur kan man göra en stor markering i jämförelsefönstret fastän det tar så lång tid att rulla texten? </para
+></question
+><answer
+><para
+>Påbörja markeringen som vanligt (klicka och håll nere vänster musknapp). Använd därefter navigationstangenterna (t.ex. Page Up, Page Down) medan vänster musknapp hålls nere. (Se också <link linkend="selections"
+>Markera, kopiera och klistra in</link
+>.) </para
+></answer
+></qandaentry>
+
+<qandaentry
+><question
+><para
+>Det finns en stor mängd  information här, men din fråga har ändå inte besvarats? </para
+></question
+><answer
+><para
+>Skicka gärna din fråga till mig. Jag uppskattar alla kommentarer. </para
+></answer
+></qandaentry>
+
+</qandaset>
+</chapter>
+
+<chapter id="credits">
+
+<title
+>Tack till och licens</title>
+
+<para
+>&kdiff3;: Verktyg för jämförelser och sammanfogning av filer och kataloger </para>
+<para
+>Program copyright 2002-2007 Joachim Eibl <email
+>joachim.eibl snabela gmx.de</email
+> </para>
+<para
+>Flera häftiga idéer och felrapporter kom från kolleger och många personer ute i den Vida Vilda Världen. Tack! </para>
+
+<para
+>Dokumentation Copyright &copy; 2002-2007 Joachim Eibl <email
+>joachim. eibl snabela gmx.de</email
+> </para>
+
+<para
+>Översättning Stefan Asserhäll<email
+>stefan.asserhall@comhem.se</email
+></para
+> 
+&underFDL; &underGPL; </chapter>
+
+<appendix id="installation">
+<title
+>Installation</title>
+
+<sect1 id="getting-kdiff3">
+<title
+>Hur man skaffar &kdiff3;</title>
+
+<para
+>Du kan ladda ner senaste version av &kdiff3; från hemsidan <ulink url="http://kdiff3.sourceforge.net"
+>http://kdiff3.sourceforge.net</ulink
+>. </para
+><para
+>&kdiff3; är också tillgänglig för andra plattformar. Se hemsidan för detaljinformation. </para>
+
+
+</sect1>
+
+<sect1 id="requirements">
+<title
+>Krav</title>
+
+<para
+>För att använda alla funktioner i &kdiff3; med lyckat resultat behöver du &kde; 3.1 eller senare. </para
+><para
+>För information om hur &kdiff3; kan köras på andra plattformar utan KDE, se <ulink url="http://kdiff3.sourceforge.net"
+>hemsidan</ulink
+>. </para
+><para
+>Du hittar en lista med ändringar på <ulink url="http://kdiff3.sourceforge.net/ChangeLog"
+>http://kdiff3.sourceforge.net/ChangeLog</ulink
+> eller i filen "ChangeLog" i källkodspaketet. </para>
+</sect1>
+
+<sect1 id="compilation">
+<title
+>Kompilering och installation</title>
+
+<para
+>För att kompilera och installera &kdiff3; på ett system med KDE, skriv följande i baskatalogen för distributionen av &kdiff3;:</para>
+
+<screen
+><prompt
+>%</prompt
+> <userinput
+><command
+>./configure --prefix=<replaceable
+>kde-katalog</replaceable
+></command
+></userinput>
+<prompt
+>%</prompt
+> <userinput
+><command
+>make</command
+></userinput>
+<prompt
+>%</prompt
+> <userinput
+><command
+>make</command
+> install</userinput
+>
+</screen>
+<para
+><replaceable
+>kde-katalog</replaceable
+> anger katalogen som innehåller KDE på ditt system. Om du inte är säker, läs filen README för detaljinformation. </para>
+<para
+>Om du inte använder KDE, använd inte <command
+>configure</command
+> utan följ instruktionerna för system som bara använder Qt i filen README.</para>
+<para
+>Eftersom &kdiff3; använder <command
+>autoconf</command
+> och <command
+>automake</command
+> bör du inte ha några problem med att kompilera det. Skulle du stöta på problem, rapportera dem gärna till &kde;:s e-postlistor.</para>
+
+</sect1>
+
+</appendix>
+
+&documentation.index;
+</book>
+
+<!--
+Local Variables:
+mode: sgml
+sgml-minimize-attributes:nil
+sgml-general-insert-case:lower
+sgml-indent-step:0
+sgml-indent-data:nil
+End:
+
+vim:tabstop=2:shiftwidth=2:expandtab
+-->
diff --git a/doc/update_doc_dir b/doc/update_doc_dir
new file mode 100644 (file)
index 0000000..dfd1680
--- /dev/null
@@ -0,0 +1,67 @@
+# Copyright (C) 2008 by Joachim Eibl
+# Licence: GPL V2
+#   GNU GENERAL PUBLIC LICENSE, Version 2, June 1991
+#   This program is free software; you can redistribute it and/or modify
+#   it under the terms of the GNU General Public License as published by
+#   the Free Software Foundation; either version 2 of the License, or
+#   (at your option) any later version.
+#
+#   This program is distributed in the hope that it will be useful,
+#   but WITHOUT ANY WARRANTY; without even the implied warranty of
+#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#   GNU General Public License for more details.
+#
+#   You should have received a copy of the GNU General Public License
+#   along with this program; if not, write to the Free Software
+#   Foundation, Inc., 51 Franklin Steet, Fifth Floor, Boston, MA  02111-1307  USA
+#
+#   For details see file "COPYING".
+
+# update_doc_dir:
+# automatically fetch the most recent translations from the websvn.kde.org server
+# and update all files for translations
+# Requirements: wget
+
+#http://websvn.kde.org/trunk/l10n-kde4/templates/docmessages/extragear-utils/kdiff3.pot
+
+# extract extra strings
+sed -i /add_subdirectory/d CMakeLists.txt
+echo add_subdirectory\(en\) >>CMakeLists.txt
+wget -nv -nc http://websvn.kde.org/*checkout*/trunk/l10n-kde4/subdirs
+#for i in `cat subdirs` ; do
+for i in da  de  en  es  et  fr  it  nl  pt; do
+   if [ $i != "en" ]; then
+      # Many languages don't have translations so don't worry about errors too much.
+      if [ ! -a $i.docbook ]; then
+         wget -nv -nc http://websvn.kde.org/*checkout*/trunk/l10n-kde4/$i/docs/extragear-utils/kdiff3/index.docbook -O $i.docbook
+      fi
+      if [ ! -s $i.docbook ]; then
+         wget -nv http://websvn.kde.org/*checkout*/trunk/l10n-kde3/$i/docs/extragear-utils/kdiff3/index.docbook -O $i.docbook
+      fi
+      # if file exists and has size greater than zero, 
+      # but don't fetch the english version, because this is the original version.
+      if [ -s $i.docbook ]; then
+         echo $i
+         # if directory exists delete it recursively and recreate it
+         if [ -d $i ]; then
+            rm -R $i
+         fi
+         mkdir $i
+         cp $i.docbook $i/index.docbook
+         echo kde4_create_handbook\(index.docbook INSTALL_DESTINATION \${HTML_INSTALL_DIR}/$i SUBDIR kdiff3\) >$i/CMakeLists.txt
+         # Note: png files are found automatically in en/kdiff3 directory. No need to link or copy.
+         echo add_subdirectory\($i\) >>CMakeLists.txt
+      fi
+      #rm $i.docbook
+   fi
+done
+
+# Print some info
+#echo Translated items per language:
+#for i in `cat subdirs` ; do
+#   if [ -s $i/kdiff3.po ]; then
+#      echo $i `grep msgstr $i/kdiff3.po | grep -v \"\" | wc -l`
+#   fi
+#done
+
+#rm subdirs
diff --git a/kdiff3.spec b/kdiff3.spec
new file mode 100644 (file)
index 0000000..1c39663
--- /dev/null
@@ -0,0 +1,64 @@
+Name: kdiff3
+Version: 0.9.95
+Release: 1
+
+URL: http://www.kde-apps.org/content/show.php?content=9807
+License: GPL
+Summary: Tool for Comparison and Merge of Files and Directories
+Group: Development/Tools
+
+Source: http://heanet.dl.sourceforge.net/sourceforge/kdiff3/kdiff3-%{version}.tar.gz
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
+
+Requires: kdelibs > 4.1
+BuildRequires: gcc-c++ >= 4.1
+BuildRequires: xorg-x11-devel
+BuildRequires: qt-devel >= 4.4
+BuildRequires: kdelibs-devel >= 4.1
+BuildRequires: libkonq-devel >= 4.1
+
+%description
+Shows the differences line by line and character by character (!).
+Provides an automatic merge-facility and
+an integrated editor for comfortable solving of merge-conflicts.
+Supports KIO on KDE (allows accessing ftp, sftp, fish, smb etc.).
+Unicode & UTF-8 support
+
+%prep
+%setup
+
+%build
+[ -n "$QTDIR" ] || . %{_sysconfdir}/profile.d/qt.sh
+
+export KDEDIR=%{_prefix}
+
+%configure --prefix=/usr
+%{__make} %{?_smp_mflags}
+
+%install
+%{__rm} -rf %{buildroot}
+source  /etc/profile.d/qt.sh
+%makeinstall
+
+%clean
+%{__rm} -rf %{buildroot}
+
+%files
+%doc AUTHORS ChangeLog COPYING NEWS README TODO
+%{_bindir}/kdiff3
+%{_datadir}/applnk/*
+%{_datadir}/apps/kdiff3/*
+%{_datadir}/apps/kdiff3part/*
+%{_datadir}/doc/HTML/*
+%{_datadir}/icons/*
+%{_datadir}/locale/*
+%{_datadir}/man/man1/kdiff3*
+%{_datadir}/services/kdiff3*
+%{_libdir}/kde4/libkdiff3*
+
+%changelog
+* Fri Nov 21 2008 Joachim Eibl - 0.9.94-1
+- Untested changes for KDE4.
+* Mon May 15 2006 Vadim Likhota <vadim-lvv@yandex.ru> - 0.9.90-1.fc
+- write spec for fc/rhel/centos/asp for kdiff3
+
diff --git a/kdiff3fileitemactionplugin/CMakeLists.txt b/kdiff3fileitemactionplugin/CMakeLists.txt
new file mode 100644 (file)
index 0000000..fda5db8
--- /dev/null
@@ -0,0 +1,4 @@
+kde4_add_plugin(kdiff3fileitemaction kdiff3fileitemaction.cpp)
+target_link_libraries(kdiff3fileitemaction ${KDE4_KIO_LIBS} ${LibKDiff3_LIBRARIES})
+install(TARGETS kdiff3fileitemaction DESTINATION ${PLUGIN_INSTALL_DIR})
+install(FILES kdiff3fileitemaction.desktop DESTINATION ${SERVICES_INSTALL_DIR})
diff --git a/kdiff3fileitemactionplugin/kdiff3fileitemaction.cpp b/kdiff3fileitemactionplugin/kdiff3fileitemaction.cpp
new file mode 100644 (file)
index 0000000..e6feb12
--- /dev/null
@@ -0,0 +1,296 @@
+/* This file is part of the KDiff3 project
+
+   Copyright (C) 2008 Joachim Eibl <joachim dot eibl at gmx dot de>
+
+   This program is free software; you can redistribute it and/or
+   modify it under the terms of the GNU General Public
+   License as published by the Free Software Foundation; version 2
+   of the License.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; see the file COPYING.  If not, write to
+   the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.
+*/
+
+#include "kdiff3fileitemaction.h"
+
+#include <kapplication.h>
+#include <kstandarddirs.h>
+#include <QAction>
+#include <QMenu>
+#include <klocale.h>
+#include <kgenericfactory.h>
+#include <kurl.h>
+#include <kconfig.h>
+#include <kconfiggroup.h>
+#include <kmessagebox.h>
+#include <kprocess.h>
+#include <kfileitem.h>
+
+//#include <iostream>
+
+
+static QStringList* s_pHistory=0;
+
+class KDiff3PluginHistory
+{
+   KConfig* m_pConfig;
+   KConfigGroup* m_pConfigGroup;
+public:
+   KDiff3PluginHistory()
+   {
+      m_pConfig = 0;
+      if (s_pHistory==0)
+      {
+         //std::cout << "New History: " << instanceName << std::endl;
+         s_pHistory = new QStringList;
+         m_pConfig = new KConfig( "kdiff3fileitemactionrc", KConfig::SimpleConfig );
+         m_pConfigGroup = new KConfigGroup( m_pConfig, "KDiff3Plugin" );
+         *s_pHistory = m_pConfigGroup->readEntry("HistoryStack", QStringList() );
+      }
+   }
+
+   ~KDiff3PluginHistory()
+   {
+      //std::cout << "Delete History" << std::endl;
+      if ( s_pHistory && m_pConfigGroup )
+         m_pConfigGroup->writeEntry("HistoryStack",*s_pHistory);
+      delete s_pHistory;
+      delete m_pConfigGroup;
+      delete m_pConfig;
+      s_pHistory = 0;
+      m_pConfig = 0;
+   }
+};
+
+static KDiff3PluginHistory s_history;
+
+
+K_PLUGIN_FACTORY(KDiff3FileItemActionFactory, registerPlugin<KDiff3FileItemAction>();)
+K_EXPORT_PLUGIN(KDiff3FileItemActionFactory("kdiff3fileitemactionplugin"))
+
+KDiff3FileItemAction::KDiff3FileItemAction (QObject* pParent, const QVariantList & /*args*/)
+: KFileItemActionPlugin(pParent)
+{
+}
+
+QList<QAction*> KDiff3FileItemAction::actions( const KFileItemListProperties& fileItemInfos, QWidget* pParentWidget ) const
+{
+   QList< QAction* > actions;
+   
+   if (KStandardDirs::findExe("kdiff3").isNull ())
+      return actions;
+
+   KDiff3FileItemAction *pThis = const_cast<KDiff3FileItemAction*>(this);
+   //pThis->m_fileItemInfos = fileItemInfos;
+   pThis->m_pParentWidget = pParentWidget;
+
+   QAction *pMenuAction = new QAction(KIcon("kdiff3"), i18n("KDiff3 ..."), pThis);
+   QMenu *pActionMenu = new QMenu();
+   pMenuAction->setMenu( pActionMenu );
+   
+   
+   // remember currently selected files (copy to a QStringList)
+   KUrl::List itemList = fileItemInfos.urlList();
+   foreach ( const KUrl& item, itemList )
+   {
+      //m_urlList.append( item.url() );
+      pThis->m_list.append( item.url() );
+   }
+
+
+   /* Menu structure:
+      KDiff3 -> (1 File selected):  Save 'selection' for later comparison (push onto history stack)
+                                    Compare 'selection' with first file on history stack.
+                                    Compare 'selection' with -> choice from history stack
+                                    Merge 'selection' with first file on history stack.
+                                    Merge 'selection' with last two files on history stack.
+                (2 Files selected): Compare 's1' with 's2'
+                                    Merge 's1' with 's2'
+                (3 Files selected): Compare 's1', 's2' and 's3'
+   */
+
+   QAction* pAction = 0;
+   QString s;
+
+   if(m_list.count() == 1)
+   {
+      int historyCount = s_pHistory ? s_pHistory->count() : 0;
+      s = i18n("Compare with %1", (historyCount>0 ? s_pHistory->front() : QString()) );
+      pAction = new QAction ( s,pThis );
+      connect( pAction, SIGNAL(triggered(bool)), this, SLOT(slotCompareWith()));
+      pAction->setEnabled( m_list.count()>0 && historyCount>0 );
+      pActionMenu->addAction(pAction);
+
+      s = i18n("Merge with %1", historyCount>0 ? s_pHistory->front() : QString() );
+      pAction = new QAction( s, pThis);
+      connect( pAction, SIGNAL(triggered(bool)), this, SLOT(slotMergeWith()));
+      pAction->setEnabled( m_list.count()>0 && historyCount>0 );
+      pActionMenu->addAction (pAction);
+
+      s = i18n("Save '%1' for later", ( m_list.front() ) );
+      pAction = new QAction ( s, pThis);
+      connect( pAction, SIGNAL(triggered(bool)), this, SLOT(slotSaveForLater()));
+      pAction->setEnabled( m_list.count()>0 );
+      pActionMenu->addAction(pAction);
+
+      pAction = new QAction (i18n("3-way merge with base"), pThis);
+      connect( pAction, SIGNAL(triggered(bool)), this, SLOT(slotMergeThreeWay()));
+      pAction->setEnabled( m_list.count()>0 && historyCount>=2 );
+      pActionMenu->addAction (pAction);
+
+      if ( s_pHistory && !s_pHistory->empty() )
+      {
+         QAction* pHistoryMenuAction = new QAction( i18n("Compare with ..."), pThis );
+         QMenu* pHistoryMenu = new QMenu();
+         pHistoryMenuAction->setMenu( pHistoryMenu );
+         pHistoryMenu->setEnabled( m_list.count()>0 && historyCount>0 );
+         pActionMenu->addAction(pHistoryMenuAction);
+         for (QStringList::iterator i = s_pHistory->begin(); i!=s_pHistory->end(); ++i)
+         {
+            pAction = new QAction( *i, pThis);
+            connect( pAction, SIGNAL(triggered(bool)), this, SLOT(slotCompareWithHistoryItem()));
+            pHistoryMenu->addAction (pAction);
+         }
+
+         pAction = new QAction (i18n("Clear list"), pThis);
+         connect( pAction, SIGNAL(triggered(bool)), this, SLOT(slotClearList()));
+         pActionMenu->addAction (pAction);
+         pAction->setEnabled( historyCount>0 );
+      }
+   }
+   else if(m_list.count() == 2)
+   {
+      pAction = new QAction (i18n("Compare"), pThis);
+      connect( pAction, SIGNAL(triggered(bool)), this, SLOT(slotCompareTwoFiles()));
+      pActionMenu->addAction (pAction);
+   }
+   else if ( m_list.count() == 3 )
+   {
+      pAction = new QAction (i18n("3 way comparison"), pThis);
+      connect( pAction, SIGNAL(triggered(bool)), this, SLOT(slotCompareThreeFiles()));
+      pActionMenu->addAction (pAction);
+   }
+   pAction = new QAction (i18n("About KDiff3 menu plugin ..."), pThis);
+   connect( pAction, SIGNAL(triggered(bool)), this, SLOT(slotAbout()));
+   pActionMenu->addAction (pAction);
+
+   //pMenu->addSeparator();
+   //pMenu->addAction( pActionMenu );
+   //pMenu->addSeparator();
+   actions << pMenuAction;
+   return actions;
+}
+
+KDiff3FileItemAction::~KDiff3FileItemAction ()
+{
+}
+
+void KDiff3FileItemAction::slotCompareWith()
+{
+   if ( m_list.count() > 0 && s_pHistory && ! s_pHistory->empty() )
+   {
+      QStringList args;
+      args << s_pHistory->front();
+      args << m_list.front();
+      KProcess::startDetached("kdiff3", args);
+   }
+}
+
+void KDiff3FileItemAction::slotCompareWithHistoryItem()
+{
+   const QAction* pAction = dynamic_cast<const QAction*>( sender() );
+   if ( m_list.count() > 0 && pAction )
+   {
+      QStringList args;
+      args << pAction->text();
+      args << m_list.front();
+      KProcess::startDetached ("kdiff3", args);
+   }
+}
+
+void KDiff3FileItemAction::slotCompareTwoFiles()
+{
+   if ( m_list.count() == 2 )
+   {
+      QStringList args;
+      args << m_list.front();
+      args << m_list.back();
+      KProcess::startDetached ("kdiff3", args);
+   }
+}
+
+void KDiff3FileItemAction::slotCompareThreeFiles()
+{
+   if ( m_list.count() == 3 )
+   {
+      QStringList args;
+      args << m_list[0];
+      args << m_list[1];
+      args << m_list[2];
+      KProcess::startDetached ("kdiff3", args);
+   }
+}
+
+void KDiff3FileItemAction::slotMergeWith()
+{
+   if ( m_list.count() > 0 && s_pHistory && ! s_pHistory->empty() )
+   {
+      QStringList args;
+      args << s_pHistory->front();
+      args << m_list.front();
+      args << ( "-o" + m_list.front() );
+      KProcess::startDetached ("kdiff3", args);
+   }
+}
+
+void KDiff3FileItemAction::slotMergeThreeWay()
+{
+   if ( m_list.count() > 0 && s_pHistory &&  s_pHistory->count()>=2 )
+   {
+      QStringList args;
+      args << (*s_pHistory)[1];
+      args << (*s_pHistory)[0];
+      args << m_list.front();
+      args << ("-o" + m_list.front());
+      KProcess::startDetached ("kdiff3", args);
+   }
+}
+
+void KDiff3FileItemAction::slotSaveForLater()
+{
+   if ( !m_list.isEmpty() && s_pHistory )
+   {
+      while ( s_pHistory->count()>=10 )
+         s_pHistory->pop_back();
+      s_pHistory->push_front( m_list.front() );
+   }
+}
+
+void KDiff3FileItemAction::slotClearList()
+{
+   if ( s_pHistory )
+      s_pHistory->clear();
+}
+
+void KDiff3FileItemAction::slotAbout()
+{
+   QString s = i18n("KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n"
+                    "KDiff3 homepage: http://kdiff3.sourceforge.net\n\n");
+   s += i18n("Using the contextmenu extension:\n"
+             "For simple comparison of two selected files choose \"Compare\".\n"
+             "If the other file is somewhere else \"Save\" the first file for later. "
+             "It will appear in the \"Compare With ...\" submenu. "
+             "Then use \"Compare With\" on second file.\n"
+             "For a 3-way merge first \"Save\" the base file, then the branch to merge and "
+             "choose \"3-way merge with base\" on the other branch which will be used as destination.\n"
+             "Same also applies to directory comparison and merge.");
+   KMessageBox::information(m_pParentWidget, s, i18n("About KDiff3 File Item Action Plugin") );
+}
+
diff --git a/kdiff3fileitemactionplugin/kdiff3fileitemaction.desktop b/kdiff3fileitemactionplugin/kdiff3fileitemaction.desktop
new file mode 100644 (file)
index 0000000..39778b0
--- /dev/null
@@ -0,0 +1,68 @@
+[Desktop Entry]
+Encoding=UTF-8
+Type=Service
+Name=Compare/Merge Files/Directories with KDiff3
+Name[bg]=Сравняване/Сливане на файлове/директории с KDiff3
+Name[bs]=Poredi/Spoji datoteke/Direktorije sa KDiff3
+Name[ca]=Compara/fusiona fitxers/directoris amb KDiff3
+Name[ca@valencia]=Compara/fusiona fitxers/directoris amb KDiff3
+Name[cs]=Porovnat/spojit soubory/adresáře pomocí KDiff3
+Name[da]=Sammenlign/sammenflet filer/mapper med KDiff3
+Name[de]=Dateien und Ordner vergleichen und zusammenführen mit KDiff3
+Name[el]=Σύγκριση/Συγχώνευση αρχείων/καταλόγων με το KDiff3
+Name[en_GB]=Compare/Merge Files/Directories with KDiff3
+Name[es]=Comparar/fusionar archivos/directorios con KDiff3
+Name[et]=Failide/kataloogide võrdlemine/liitmine KDiff3-ga
+Name[fr]=Comparaison / Fusion de fichiers / de dossiers à l'aide de KDiff3
+Name[ga]=Cuir Comhaid/Comhadlanna i gComparáid agus Cumaisc iad le KDiff3
+Name[gl]=Compara e fusionar ficheiros e cartafoles con KDiff3
+Name[hi]=केडिफ़३ के साथ तुलना करें/मिलाएं फ़ाइलें/डिरेक्ट्रीज़
+Name[hne]=केडिफ३ के साथ तुलना करव/मिलाव फाइल/डिरेक्टरीज मन ल
+Name[hu]=Fájlok/Könyvtárat KDiff3-mal való összehasonlítása/egyesítése
+Name[it]=Confronta o fondi file e cartelle con KDiff3
+Name[ja]=KDiff3 でファイルやディレクトリを比較/マージ
+Name[km]=ប្រៀបធៀប/បញ្ចូល​ឯកសារ​ចូល​គ្នា/ថត​ជាមួយ KDiff3
+Name[ko]=KDiff3으로 파일과 디렉터리를 비교하거나 병합합니다
+Name[ml]=ഫയലുകള്‍/അറകള്‍ താരതമ്യം ചെയ്യുക/കെഡിഫ്3 ഉപയോഗിച്ചു് ലയിപ്പിക്കുക
+Name[nb]=Samenlikne/flette filer/mapper med KDiff3
+Name[nds]=Verglieken Tosamenföhren vun Dateien/Ornern mit KDiff3
+Name[nl]=Bestanden/mappen vergelijken/samenvoegen met KDiff3
+Name[nn]=Samanlikn/flett filer og mapper med KDiff3
+Name[pl]=Porównaj/Scal pliki/katalogi przy pomocy KDiff3
+Name[pt]=Comparar/Juntar os Ficheiros/Pastas com o KDiff3
+Name[pt_BR]=Comparar/Mesclar arquivos/pastas com o KDiff3
+Name[ro]=Compară/unește fișiere/directoare cu KDiff3
+Name[ru]=Сравнение и объединение файлов и каталогов в KDiff3
+Name[sv]=Jämför, sammanfoga filer, kataloger med Kdiff3
+Name[tr]=KDiff3 ile Dosyaları/Klasörleri Karşılaştır/Birleştir
+Name[uk]=Порівнюйте або з’єднуйте файли або теки з KDiff3
+Name[x-test]=xxCompare/Merge Files/Directories with KDiff3xx
+Name[zh_CN]=使用 KDiff3 比较/合并 文件/目录
+Name[zh_TW]=用 KDiff3 比較/合併檔案與目錄
+X-KDE-Library=kdiff3fileitemaction
+X-KDE-Submenu=KDiff3
+X-KDE-Submenu[bg]=KDiff3
+X-KDE-Submenu[bs]=KDiff3
+X-KDE-Submenu[ca]=KDiff3
+X-KDE-Submenu[cs]=KDiff3
+X-KDE-Submenu[da]=KDiff3
+X-KDE-Submenu[de]=KDiff3
+X-KDE-Submenu[el]=KDiff3
+X-KDE-Submenu[es]=KDiff3
+X-KDE-Submenu[et]=KDiff3
+X-KDE-Submenu[fr]=KDiff3
+X-KDE-Submenu[hu]=KDiff3
+X-KDE-Submenu[it]=KDiff3
+X-KDE-Submenu[nb]=KDiff3
+X-KDE-Submenu[nds]=KDiff3
+X-KDE-Submenu[nl]=KDiff3
+X-KDE-Submenu[pl]=KDiff3
+X-KDE-Submenu[pt]=KDiff3
+X-KDE-Submenu[pt_BR]=KDiff3
+X-KDE-Submenu[ru]=KDiff3
+X-KDE-Submenu[sv]=Kdiff3
+X-KDE-Submenu[uk]=KDiff3
+X-KDE-Submenu[x-test]=xxKDiff3xx
+X-KDE-Submenu[zh_TW]=KDiff3
+ServiceTypes=KFileItemAction/Plugin,inode/directory
+MimeType=application/octet-stream;
diff --git a/kdiff3fileitemactionplugin/kdiff3fileitemaction.h b/kdiff3fileitemactionplugin/kdiff3fileitemaction.h
new file mode 100644 (file)
index 0000000..8e8a4a7
--- /dev/null
@@ -0,0 +1,55 @@
+/* This file is part of the KDiff3 project
+
+   Copyright (C) 2008 Joachim Eibl <Joachim dot Eibl at gmx dot de>
+
+   This program is free software; you can redistribute it and/or
+   modify it under the terms of the GNU General Public
+   License as published by the Free Software Foundation; version 2
+   of the License.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; see the file COPYING.  If not, write to
+   the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.
+*/
+
+#ifndef _KDIFF3FILEITEMACTIONPLUGIN_H_
+#define _KDIFF3FILEITEMACTIONPLUGIN_H_
+
+#include <kfileitemactionplugin.h>
+#include <kfileitemlistproperties.h>
+#include <QStringList>
+
+class QStringList;
+
+class KDiff3FileItemAction : public KFileItemActionPlugin
+{
+   Q_OBJECT
+public:
+  KDiff3FileItemAction (QObject* pParent, const QVariantList & args);
+  virtual ~KDiff3FileItemAction();
+  // implement pure virtual method from KonqPopupMenuPlugin
+  virtual QList<QAction*> actions( const KFileItemListProperties& fileItemInfos, QWidget* pParentWidget ) const;
+
+private slots:
+   void slotCompareWith();
+   void slotCompareTwoFiles();
+   void slotCompareThreeFiles();
+   void slotMergeWith();
+   void slotMergeThreeWay();
+   void slotSaveForLater();
+   void slotClearList();
+   void slotCompareWithHistoryItem();
+   void slotAbout();
+
+private:
+   QStringList m_list;
+   QWidget* m_pParentWidget;
+   //KFileItemListProperties m_fileItemInfos;
+};
+#endif
diff --git a/kdiff3plugin-QT4/CMakeLists.txt b/kdiff3plugin-QT4/CMakeLists.txt
new file mode 100644 (file)
index 0000000..ccc5f0b
--- /dev/null
@@ -0,0 +1,15 @@
+########### kdiff3 plugin ###############
+find_package(LibKonq REQUIRED)
+set(kdiff3plugin_SRCS 
+   kdiff3plugin.cpp ) 
+
+kde4_add_plugin(kdiff3plugin WITH_PREFIX ${kdiff3plugin_SRCS})
+
+target_link_libraries(kdiff3plugin ${KDE4_KDECORE_LIBS} ${KDE4_KPARTS_LIBS} konq )
+#${KDE4_KDECORE_LIBRARY} ${KDE4_KDEUI_LIBRARY} ${KDE4_KIO_LIBRARY} QtGui QtCore konq )
+
+install(TARGETS kdiff3plugin DESTINATION ${PLUGIN_INSTALL_DIR} )
+
+########## install files ###############
+
+install( FILES kdiff3_plugin.desktop DESTINATION ${SERVICES_INSTALL_DIR} )
diff --git a/kdiff3plugin-QT4/Messages.sh b/kdiff3plugin-QT4/Messages.sh
new file mode 100644 (file)
index 0000000..ac2d546
--- /dev/null
@@ -0,0 +1,2 @@
+#! /usr/bin/env bash
+$XGETTEXT -kaliasLocal `find -name \*.cpp -o -name \*.h` -o $podir/kdiff3plugin.pot
diff --git a/kdiff3plugin-QT4/kdiff3_plugin.desktop b/kdiff3plugin-QT4/kdiff3_plugin.desktop
new file mode 100644 (file)
index 0000000..040203f
--- /dev/null
@@ -0,0 +1,43 @@
+[Desktop Entry]
+Encoding=UTF-8
+Type=Service
+Name=Compare/Merge Files/Directories
+Name[bg]=Сравняване/Сливане на файлове/директории
+Name[bs]=Poredi/Spoji datoteke/Direktorije
+Name[ca]=Compara/fusiona fitxers/directoris
+Name[ca@valencia]=Compara/fusiona fitxers/directoris
+Name[cs]=Porovnat/spojit soubory/adresáře
+Name[da]=Sammenlign/sammenflet filer/mapper
+Name[de]=Dateien und Ordner vergleichen und zusammenführen
+Name[el]=Σύγκριση/Συγχώνευση αρχείων/καταλόγων
+Name[en_GB]=Compare/Merge Files/Directories
+Name[es]=Comparar/fusionar archivos/directorios
+Name[et]=Failide/kataloogide võrdlemine/liitmine
+Name[fr]=Comparaison / Fusion de fichiers / de dossiers
+Name[ga]=Cuir Comhaid/Comhadlanna i gComparáid agus Cumaisc iad
+Name[gl]=Comparar e fusionar ficheiros e cartafoles
+Name[hi]=तुलना करें/मिलाएं फ़ाइलें/डिरेक्ट्रीज़
+Name[hne]=फाइल/डिरेक्टरीज मन ल तुलना करव / मिलाव
+Name[hu]=Fájlok/Könyvtárak összehasonlítása/egyesítése
+Name[it]=Confronta o fondi file e cartelle
+Name[ja]=ファイルやディレクトリを比較/マージ
+Name[km]=ប្រៀបធៀប/បញ្ចូល​ឯកសារ​ចូល​គ្នា/ថត
+Name[ko]=파일과 디렉터리를 비교하거나 병합
+Name[ml]=ഫയലുകള്‍/അറകള്‍ താരതമ്യം ചെയ്യുക/ലയിപ്പിക്കുക
+Name[nb]=Samenlikne/flette filer/mapper
+Name[nds]=Verglieken/Tosamenföhren Dateien Ornern
+Name[nl]=Bestanden/mappen vergelijken/samenvoegen
+Name[nn]=Samanlikn/flett filer og mapper
+Name[pl]=Porównanie/Łączenie plików i katalogów
+Name[pt]=Comparar/Juntar os Ficheiros/Pastas
+Name[pt_BR]=Comparar/Mesclar arquivos/pastas
+Name[ro]=Compară/unește fișiere/directoare
+Name[ru]=Сравнение и объединение файлов и каталогов
+Name[sv]=Jämför, sammanfoga filer, kataloger
+Name[tr]=Dosyaları/Klasörleri Karşılaştır/Birleştir
+Name[uk]=Порівняння/З’єднання Файлів/Тек
+Name[x-test]=xxCompare/Merge Files/Directoriesxx
+Name[zh_CN]=比较/合并 文件/目录
+Name[zh_TW]=比較/合併檔案與目錄
+X-KDE-Library=libkdiff3plugin
+ServiceTypes=KonqPopupMenu/Plugin,application/octet-stream,inode/directory
diff --git a/kdiff3plugin-QT4/kdiff3plugin.cpp b/kdiff3plugin-QT4/kdiff3plugin.cpp
new file mode 100644 (file)
index 0000000..c3c9e12
--- /dev/null
@@ -0,0 +1,281 @@
+/* This file is part of the KDiff3 project
+
+   Copyright (C) 2008 Joachim Eibl <joachim dot eibl at gmx dot de>
+
+   This program is free software; you can redistribute it and/or
+   modify it under the terms of the GNU General Public
+   License as published by the Free Software Foundation; version 2
+   of the License.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; see the file COPYING.  If not, write to
+   the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.
+*/
+
+#include "kdiff3plugin.h"
+
+#include <kapplication.h>
+#include <kstandarddirs.h>
+#include <kaction.h>
+#include <kactionmenu.h>
+#include <klocale.h>
+#include <kgenericfactory.h>
+#include <kurl.h>
+#include <kconfig.h>
+#include <kconfiggroup.h>
+#include <konq_popupmenuinformation.h>
+#include <kmessagebox.h>
+#include <kprocess.h>
+
+//#include <iostream>
+
+static QStringList* s_pHistory=0;
+
+class KDiff3PluginFactory : public KGenericFactory < KDiff3Plugin, KonqPopupMenu >
+{
+   KConfig* m_pConfig;
+   KConfigGroup* m_pConfigGroup;
+public:
+   KDiff3PluginFactory( const char* instanceName  = 0 )
+   : KGenericFactory< KDiff3Plugin, KonqPopupMenu >( instanceName )
+   {
+      m_pConfig = 0;
+      if (s_pHistory==0)
+      {
+         //std::cout << "New History: " << instanceName << std::endl;
+         s_pHistory = new QStringList;
+         m_pConfig = new KConfig( "kdiff3pluginrc", KConfig::SimpleConfig );
+         m_pConfigGroup = new KConfigGroup( m_pConfig, "KDiff3Plugin" );
+         *s_pHistory = m_pConfigGroup->readEntry("HistoryStack", QStringList() );
+      }
+   }
+
+   ~KDiff3PluginFactory()
+   {
+      //std::cout << "Delete History" << std::endl;
+      if ( s_pHistory && m_pConfigGroup )
+         m_pConfigGroup->writeEntry("HistoryStack",*s_pHistory);
+      delete s_pHistory;
+      delete m_pConfigGroup;
+      delete m_pConfig;
+      s_pHistory = 0;
+      m_pConfig = 0;
+   }
+};
+
+K_EXPORT_COMPONENT_FACTORY (libkdiff3plugin, KDiff3PluginFactory ("kdiff3plugin"))
+
+KDiff3Plugin::KDiff3Plugin( KonqPopupMenu* pPopupMenu, const QStringList & /* list */ )
+:KonqPopupMenuPlugin(pPopupMenu)
+{
+   KGlobal::locale()->insertCatalog("kdiff3plugin");
+   m_pPopupMenu = pPopupMenu;
+   m_pParentWidget = pPopupMenu->parentWidget();
+}
+
+void KDiff3Plugin::setup( KActionCollection* actionCollection, const KonqPopupMenuInformation& popupMenuInfo, QMenu* pMenu )
+{
+   if (KStandardDirs::findExe("kdiff3").isNull ())
+      return;
+
+   // remember currently selected files (copy to a QStringList)
+   KFileItemList itemList = popupMenuInfo.items();
+   foreach ( const KFileItem& item, itemList )
+   {
+      //m_urlList.append( item.url() );
+      m_list.append( item.url().url() );
+   }
+
+
+   /* Menu structure:
+      KDiff3 -> (1 File selected):  Save 'selection' for later comparison (push onto history stack)
+                                    Compare 'selection' with first file on history stack.
+                                    Compare 'selection' with -> choice from history stack
+                                    Merge 'selection' with first file on history stack.
+                                    Merge 'selection' with last two files on history stack.
+                (2 Files selected): Compare 's1' with 's2'
+                                    Merge 's1' with 's2'
+                (3 Files selected): Compare 's1', 's2' and 's3'
+   */
+
+   KActionMenu* pActionMenu = new KActionMenu (i18n ("KDiff3"), actionCollection );
+   KAction* pAction = 0;
+   QString s;
+
+   if(m_list.count() == 1)
+   {
+      int historyCount = s_pHistory ? s_pHistory->count() : 0;
+      s = i18n("Compare with %1", (historyCount>0 ? s_pHistory->front() : QString()) );
+      pAction = new KAction ( s, actionCollection );
+      connect( pAction, SIGNAL(triggered(bool)), this, SLOT(slotCompareWith()));
+      pAction->setEnabled( m_list.count()>0 && historyCount>0 );
+      pActionMenu->addAction(pAction);
+
+      s = i18n("Merge with %1", historyCount>0 ? s_pHistory->front() : QString() );
+      pAction = new KAction( s, actionCollection);
+      connect( pAction, SIGNAL(triggered(bool)), this, SLOT(slotMergeWith()));
+      pAction->setEnabled( m_list.count()>0 && historyCount>0 );
+      pActionMenu->addAction (pAction);
+
+      s = i18n("Save '%1' for later", ( m_list.front() ) );
+      pAction = new KAction ( s, actionCollection);
+      connect( pAction, SIGNAL(triggered(bool)), this, SLOT(slotSaveForLater()));
+      pAction->setEnabled( m_list.count()>0 );
+      pActionMenu->addAction(pAction);
+
+      pAction = new KAction (i18n("3-way merge with base"), actionCollection);
+      connect( pAction, SIGNAL(triggered(bool)), this, SLOT(slotMergeThreeWay()));
+      pAction->setEnabled( m_list.count()>0 && historyCount>=2 );
+      pActionMenu->addAction (pAction);
+
+      if ( s_pHistory && !s_pHistory->empty() )
+      {
+         KActionMenu* pHistoryMenu = new KActionMenu( i18n("Compare with ..."), actionCollection );
+         pHistoryMenu->setEnabled( m_list.count()>0 && historyCount>0 );
+         pActionMenu->addAction(pHistoryMenu);
+         for (QStringList::iterator i = s_pHistory->begin(); i!=s_pHistory->end(); ++i)
+         {
+            pAction = new KAction( *i, actionCollection);
+            connect( pAction, SIGNAL(triggered(bool)), this, SLOT(slotCompareWithHistoryItem()));
+            pHistoryMenu->addAction (pAction);
+         }
+
+         pAction = new KAction (i18n("Clear list"), actionCollection);
+         connect( pAction, SIGNAL(triggered(bool)), this, SLOT(slotClearList()));
+         pActionMenu->addAction (pAction);
+         pAction->setEnabled( historyCount>0 );
+      }
+   }
+   else if(m_list.count() == 2)
+   {
+      pAction = new KAction (i18n("Compare"), actionCollection);
+      connect( pAction, SIGNAL(triggered(bool)), this, SLOT(slotCompareTwoFiles()));
+      pActionMenu->addAction (pAction);
+   }
+   else if ( m_list.count() == 3 )
+   {
+      pAction = new KAction (i18n("3 way comparison"), actionCollection);
+      connect( pAction, SIGNAL(triggered(bool)), this, SLOT(slotCompareThreeFiles()));
+      pActionMenu->addAction (pAction);
+   }
+   pAction = new KAction (i18n("About KDiff3 menu plugin ..."), actionCollection);
+   connect( pAction, SIGNAL(triggered(bool)), this, SLOT(slotAbout()));
+   pActionMenu->addAction (pAction);
+
+   pMenu->addSeparator();
+   pMenu->addAction( pActionMenu );
+   pMenu->addSeparator();
+}
+
+KDiff3Plugin::~KDiff3Plugin ()
+{
+}
+
+void KDiff3Plugin::slotCompareWith()
+{
+   if ( m_list.count() > 0 && s_pHistory && ! s_pHistory->empty() )
+   {
+      QStringList args;
+      args << s_pHistory->front();
+      args << m_list.front();
+      KProcess::startDetached("kdiff3", args);
+   }
+}
+
+void KDiff3Plugin::slotCompareWithHistoryItem()
+{
+   const KAction* pAction = dynamic_cast<const KAction*>( sender() );
+   if ( m_list.count() > 0 && pAction )
+   {
+      QStringList args;
+      args << pAction->text();
+      args << m_list.front();
+      KProcess::startDetached ("kdiff3", args);
+   }
+}
+
+void KDiff3Plugin::slotCompareTwoFiles()
+{
+   if ( m_list.count() == 2 )
+   {
+      QStringList args;
+      args << m_list.front();
+      args << m_list.back();
+      KProcess::startDetached ("kdiff3", args);
+   }
+}
+
+void KDiff3Plugin::slotCompareThreeFiles()
+{
+   if ( m_list.count() == 3 )
+   {
+      QStringList args;
+      args << m_list[0];
+      args << m_list[1];
+      args << m_list[2];
+      KProcess::startDetached ("kdiff3", args);
+   }
+}
+
+void KDiff3Plugin::slotMergeWith()
+{
+   if ( m_list.count() > 0 && s_pHistory && ! s_pHistory->empty() )
+   {
+      QStringList args;
+      args << s_pHistory->front();
+      args << m_list.front();
+      args << ( "-o" + m_list.front() );
+      KProcess::startDetached ("kdiff3", args);
+   }
+}
+
+void KDiff3Plugin::slotMergeThreeWay()
+{
+   if ( m_list.count() > 0 && s_pHistory &&  s_pHistory->count()>=2 )
+   {
+      QStringList args;
+      args << (*s_pHistory)[1];
+      args << (*s_pHistory)[0];
+      args << m_list.front();
+      args << ("-o" + m_list.front());
+      KProcess::startDetached ("kdiff3", args);
+   }
+}
+
+void KDiff3Plugin::slotSaveForLater()
+{
+   if ( !m_list.isEmpty() && s_pHistory )
+   {
+      while ( s_pHistory->count()>=10 )
+         s_pHistory->pop_back();
+      s_pHistory->push_front( m_list.front() );
+   }
+}
+
+void KDiff3Plugin::slotClearList()
+{
+   if ( s_pHistory )
+      s_pHistory->clear();
+}
+
+void KDiff3Plugin::slotAbout()
+{
+   QString s = i18n("KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n"
+                    "KDiff3 homepage: http://kdiff3.sourceforge.net\n\n");
+   s += i18n("Using the context menu extension:\n"
+             "For simple comparison of two selected files choose \"Compare\".\n"
+             "If the other file is somewhere else, \"Save\" the first file for later, "
+             "and it will appear in the \"Compare With ...\" submenu. "
+             "Then, use \"Compare With\" on the second file.\n"
+             "For a 3-way merge first, \"Save\" the base file, then the branch to merge, and "
+             "then \"3-way merge with base\" on the other branch which will be used as the destination.\n"
+             "The same also applies to directory comparison and merge.");
+   KMessageBox::information(m_pParentWidget, s, i18n("About KDiff3 Menu Plugin") );
+}
+
diff --git a/kdiff3plugin-QT4/kdiff3plugin.desktop b/kdiff3plugin-QT4/kdiff3plugin.desktop
new file mode 100644 (file)
index 0000000..168df93
--- /dev/null
@@ -0,0 +1,45 @@
+[Desktop Entry]
+Encoding=UTF-8
+Type=Service
+Name=Compare/Merge Files/Directories with KDiff3
+Name[bg]=Сравняване/Сливане на файлове/директории с KDiff3
+Name[bs]=Poredi/Spoji datoteke/Direktorije sa KDiff3
+Name[ca]=Compara/fusiona fitxers/directoris amb KDiff3
+Name[ca@valencia]=Compara/fusiona fitxers/directoris amb KDiff3
+Name[cs]=Porovnat/spojit soubory/adresáře pomocí KDiff3
+Name[da]=Sammenlign/sammenflet filer/mapper med KDiff3
+Name[de]=Dateien und Ordner vergleichen und zusammenführen mit KDiff3
+Name[el]=Σύγκριση/Συγχώνευση αρχείων/καταλόγων με το KDiff3
+Name[en_GB]=Compare/Merge Files/Directories with KDiff3
+Name[es]=Comparar/fusionar archivos/directorios con KDiff3
+Name[et]=Failide/kataloogide võrdlemine/liitmine KDiff3-ga
+Name[fr]=Comparaison / Fusion de fichiers / de dossiers à l'aide de KDiff3
+Name[ga]=Cuir Comhaid/Comhadlanna i gComparáid agus Cumaisc iad le KDiff3
+Name[gl]=Compara e fusionar ficheiros e cartafoles con KDiff3
+Name[hi]=केडिफ़३ के साथ तुलना करें/मिलाएं फ़ाइलें/डिरेक्ट्रीज़
+Name[hne]=केडिफ३ के साथ तुलना करव/मिलाव फाइल/डिरेक्टरीज मन ल
+Name[hu]=Fájlok/Könyvtárat KDiff3-mal való összehasonlítása/egyesítése
+Name[it]=Confronta o fondi file e cartelle con KDiff3
+Name[ja]=KDiff3 でファイルやディレクトリを比較/マージ
+Name[km]=ប្រៀបធៀប/បញ្ចូល​ឯកសារ​ចូល​គ្នា/ថត​ជាមួយ KDiff3
+Name[ko]=KDiff3으로 파일과 디렉터리를 비교하거나 병합합니다
+Name[ml]=ഫയലുകള്‍/അറകള്‍ താരതമ്യം ചെയ്യുക/കെഡിഫ്3 ഉപയോഗിച്ചു് ലയിപ്പിക്കുക
+Name[nb]=Samenlikne/flette filer/mapper med KDiff3
+Name[nds]=Verglieken Tosamenföhren vun Dateien/Ornern mit KDiff3
+Name[nl]=Bestanden/mappen vergelijken/samenvoegen met KDiff3
+Name[nn]=Samanlikn/flett filer og mapper med KDiff3
+Name[pl]=Porównaj/Scal pliki/katalogi przy pomocy KDiff3
+Name[pt]=Comparar/Juntar os Ficheiros/Pastas com o KDiff3
+Name[pt_BR]=Comparar/Mesclar arquivos/pastas com o KDiff3
+Name[ro]=Compară/unește fișiere/directoare cu KDiff3
+Name[ru]=Сравнение и объединение файлов и каталогов в KDiff3
+Name[sv]=Jämför, sammanfoga filer, kataloger med Kdiff3
+Name[tr]=KDiff3 ile Dosyaları/Klasörleri Karşılaştır/Birleştir
+Name[uk]=Порівнюйте або з’єднуйте файли або теки з KDiff3
+Name[x-test]=xxCompare/Merge Files/Directories with KDiff3xx
+Name[zh_CN]=使用 KDiff3 比较/合并 文件/目录
+Name[zh_TW]=用 KDiff3 比較/合併檔案與目錄
+Icon=kdiff3
+#X-KDE-ParentApp=konqueror
+#DocPath=konq-plugins/kdiff3plugin/index.html
+NoDisplay=true
diff --git a/kdiff3plugin-QT4/kdiff3plugin.h b/kdiff3plugin-QT4/kdiff3plugin.h
new file mode 100644 (file)
index 0000000..0a1d1a9
--- /dev/null
@@ -0,0 +1,55 @@
+/* This file is part of the KDiff3 project
+
+   Copyright (C) 2008 Joachim Eibl <Joachim dot Eibl at gmx dot de>
+
+   This program is free software; you can redistribute it and/or
+   modify it under the terms of the GNU General Public
+   License as published by the Free Software Foundation; version 2
+   of the License.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; see the file COPYING.  If not, write to
+   the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.
+*/
+
+#ifndef _KDIFF3PLUGIN_H_
+#define _KDIFF3PLUGIN_H_
+
+#include <konq_popupmenu.h>
+#include <konq_popupmenuplugin.h>
+#include <QStringList>
+
+class QStringList;
+
+class KDiff3Plugin : public KonqPopupMenuPlugin
+{
+   Q_OBJECT
+public:
+  KDiff3Plugin (KonqPopupMenu *, const QStringList & list);
+  virtual ~KDiff3Plugin();
+  // implement pure virtual method from KonqPopupMenuPlugin
+  virtual void setup( KActionCollection* actionCollection, const KonqPopupMenuInformation& popupMenuInfo, QMenu* menu );
+
+private slots:
+   void slotCompareWith();
+   void slotCompareTwoFiles();
+   void slotCompareThreeFiles();
+   void slotMergeWith();
+   void slotMergeThreeWay();
+   void slotSaveForLater();
+   void slotClearList();
+   void slotCompareWithHistoryItem();
+   void slotAbout();
+
+private:
+   QStringList m_list;
+   QWidget* m_pParentWidget;
+   KonqPopupMenu* m_pPopupMenu;
+};
+#endif
diff --git a/po/CMakeLists.txt b/po/CMakeLists.txt
new file mode 100644 (file)
index 0000000..aa85727
--- /dev/null
@@ -0,0 +1,56 @@
+find_package(Gettext REQUIRED)
+if (NOT GETTEXT_MSGMERGE_EXECUTABLE)
+MESSAGE(FATAL_ERROR "Please install msgmerge binary")
+endif (NOT GETTEXT_MSGMERGE_EXECUTABLE)
+if (NOT GETTEXT_MSGFMT_EXECUTABLE)
+MESSAGE(FATAL_ERROR "Please install msgmerge binary")
+endif (NOT GETTEXT_MSGFMT_EXECUTABLE)
+
+add_subdirectory(ar)
+add_subdirectory(bg)
+add_subdirectory(br)
+add_subdirectory(bs)
+add_subdirectory(ca)
+add_subdirectory(ca@valencia)
+add_subdirectory(cs)
+add_subdirectory(cy)
+add_subdirectory(da)
+add_subdirectory(de)
+add_subdirectory(el)
+add_subdirectory(en_GB)
+add_subdirectory(eo)
+add_subdirectory(es)
+add_subdirectory(et)
+add_subdirectory(fr)
+add_subdirectory(ga)
+add_subdirectory(gl)
+add_subdirectory(hi)
+add_subdirectory(hne)
+add_subdirectory(hr)
+add_subdirectory(hu)
+add_subdirectory(is)
+add_subdirectory(it)
+add_subdirectory(ja)
+add_subdirectory(ka)
+add_subdirectory(lt)
+add_subdirectory(mai)
+add_subdirectory(ml)
+add_subdirectory(nb)
+add_subdirectory(nds)
+add_subdirectory(nl)
+add_subdirectory(nn)
+add_subdirectory(pl)
+add_subdirectory(pt)
+add_subdirectory(pt_BR)
+add_subdirectory(ro)
+add_subdirectory(ru)
+add_subdirectory(rw)
+add_subdirectory(sk)
+add_subdirectory(sv)
+add_subdirectory(ta)
+add_subdirectory(tg)
+add_subdirectory(tr)
+add_subdirectory(ug)
+add_subdirectory(uk)
+add_subdirectory(zh_CN)
+add_subdirectory(zh_TW)
diff --git a/po/CMakeLists_xx.txt b/po/CMakeLists_xx.txt
new file mode 100644 (file)
index 0000000..d12b1ad
--- /dev/null
@@ -0,0 +1,2 @@
+file(GLOB _po_files *.po)
+GETTEXT_PROCESS_PO_FILES(xx ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
diff --git a/po/README b/po/README
new file mode 100644 (file)
index 0000000..8507614
--- /dev/null
+++ b/po/README
@@ -0,0 +1,142 @@
+README for KDiff3-Internationalisation (i18n)
+=============================================
+Author: Joachim Eibl 2004
+
+This text is for you, if you might want to help translating KDiff3 or just want 
+to learn how this i18n-thing works.
+
+grep "Language-Team" *.po
+
+az     Azerbaijani <translation-team-az@lists.sourceforge.net>     
+ca     LANGUAGE <LL@li.org>     
+da     Danish <dansk@klid.dk>     
+de     Deutsch <kde-i18n-de@kde.org>     
+en_GB  British English <kde-en-gb@kde.me.uk>     
+es     espaniol <kde-es@kybs.de>     
+et     Estonian <kde-et@linux.ee>     
+fr     French <kde-francophone@kde.org>     
+hu     Hungarian <kde-lista@sophia.jpte.hu>     
+it     Italian <kde-i18n-it@kde.org>     
+nl     Nederlands <kde-i18n-nl@kde.org>     
+pl     Polish     
+pt_BR  Brazilian Portuguese <kde-i18n-pt_BR@mail.kde.org>     
+pt     Portuguese <kde-i18n-pt@kde.org>     
+ro     Romanian <ro-kde@egroups.com>     
+ru     Russian <ru@li.org>     
+sr     Serbian
+sv     Svenska <sv@li.org>     
+ta      <tamilpc@ambalam.com>     
+tr     Türkçe <tr@li.org>     
+zh_CN  zh_CN <i18n-translation@lists.linux.net.cn>     
+
+
+Thanks to all translators!
+
+
+The program was written with English as main language. But to allow automatic
+translation of messages, every translatable text in the program was written as 
+i18n("translatable").
+
+i18n() is a translator-function. If a translation table exists, at runtime the 
+function looks for the given string in that table and returns the translation.
+
+The translation-table is created in 3 steps:
+1. First a template-translation table kdiff3.pot should be created: Usually via
+   xgettext --keyword=i18n --keyword=I18N_NOOP -C -o ../po/kdiff3.pot *.cpp *.h 
+   
+   It contains all translatable strings of the program, but no translations.
+   (xgettext is usually part of package gettext-devel)
+   Better to get version from kde svn:
+   wget http://websvn.kde.org/*checkout*/trunk/l10n-kde4/templates/messages/extragear-utils/kdiff3.pot
+   wget http://websvn.kde.org/*checkout*/trunk/l10n-kde4/templates/messages/extragear-utils/kdiff3plugin.pot
+   
+2. Translators create a translation for a specific language. Because we don't want 
+   to modify the template now, we'll create a copy for each language.
+   e.g.: cp kdiff3.pot de.po
+   Using KBabel we can comfortably edit the translated strings.
+   e.g.: kbabel de.po
+   
+3. The last step is to create a fast lookup-table (*.gmo) from the po-file via 
+   msgfmt, but this happens automatically during the build process.
+   (If a new po-file was added: make -f Makefile.cvs; configure; make)
+
+Before starting to translate make sure nobody else is already doing it. It would 
+be a pity, if your precious time is wasted. Look at http://i18n.kde.org/, send a 
+message to the translation team coordinator for your language, and tell them that  
+you want to translate KDiff3. He'll inform you if you should proceed. Also read
+the other docs on that site.
+
+============
+   
+The following is for my own memory and for those who really want to learn dirty tricks and details:
+The script "update_po_dirs" does all in here automatically. Read on if you want details.
+   
+The KDE-i18n team stores their results in SVN. But I would like to have an independent 
+copy of all translations in the po-directory of the source package. Actually it's just
+copying and renaming, but simplified with these commands:
+
+First fetch all available translations from the SVN-repository (access via websvn and wget)
+   wget http://websvn.kde.org/*checkout*/trunk/l10n/subdirs
+   for i in `cat subdirs`; do wget http://websvn.kde.org/*checkout*/trunk/l10n-kde4/$i/messages/extragear-utils/kdiff3.po -O $i.po; done
+   
+This was the explanation for translations within KDE. 
+But KDiff3 can also be compiled and run without KDE:
+
+Since Qt was used for KDiff3, the first part is quite the same: Only the fast lookup-table 
+(*.qm-files) must be created with $QTDIR/bin/msg2qm (instead of msgfmt). ($QTDIR/tools/msg2qm in the "qt3-devel-tools"-package))
+
+Still one detail isn't right: Some strings are not translated, because under KDE their 
+translation is within KDE-libs or within Qt. But the translations are available:
+
+For Qt-strings in $QTDIR/translations (already as .qm-files)
+
+For KDE-libs in the SVN-repository, where we can reuse the previous trick to get 
+all kdelibs*.po-files:
+
+   for i in `cat subdirs`; do wget http://websvn.kde.org/*checkout*/trunk/l10n-kde4/$i/messages/kdelibs/kdelibs4.po -O kdelibs_$i.po; done
+   
+Finally the program must only read the correct translation tables:
+
+   QTranslator kdiff3Translator( 0 );
+   kdiff3Translator.load( QString("kdiff3_")+QTextCodec::locale(), translationDir );
+   app.installTranslator( &kdiff3Translator );
+   
+   QTranslator qtTranslator( 0 );
+   qtTranslator.load( QString("qt_")+QTextCodec::locale(), translationDir );
+   app.installTranslator( &qtTranslator );
+   
+   QTranslator kdelibsTranslator( 0 );
+   kdelibsTranslator.load( QString("kdelibs_")+QTextCodec::locale(), translationDir );
+   app.installTranslator( &kdelibsTranslator );
+
+This should do the job, if the translation-tables can be found. 
+The difficult part is: Where to search for the files, because this depends on 
+where the program was installed. (I didn't solve this puzzle yet.)
+
+Because it's too much effort to copy all kdelibs*.po-files along: Here is a little info
+about how to extract only the needed strings and to create the qm-files.
+
+Steps 1-3 are obsolete for translations that are up to date because kreplacements.pot is now in kde-svn-repository.
+1. Only src/kreplacements/kreplacements.cpp contains strings, that were not covered by 
+   the normal translations. Hence a special pot-file is needed.
+   xgettext --keyword=i18n --keyword=I18N_NOOP -C ../src/kreplacements/kreplacements.cpp -o kreplacements.pot
+   (xgettext is usually part of package gettext-devel)
+   
+2. Take only needed strings and translations from kdelibs*.po:
+   msgmerge --no-fuzzy-matching kdelibs_de.po kreplacements.pot >kreplacements_de.po
+   ("msgmerge" and "msgcat" are part of the "gettext-tools"-package.)
+
+3. Concatenate the normal de.po and kreplacements_de.po:
+   msgcat --use-first de.po kreplacements_de.po >kdiff3_de.po
+   The resulting file is huge, but most stuff is commented out.
+
+4. Finally create the fast lookup table (msg2qm is from "qt3-devel-tools"-package):
+   $QTDIR/bin/msg2qm kdiff3_de.po kdiff3_de.qm
+
+5. The intermediate files can then be deleted.
+
+Creating the directory structure needed for KDE4 and cmake.
+for i in *.po; do echo $i; export j=`echo $i | sed s/.po//`; echo $j; md $j; cp $j.po $j/kdiff3.po; sed s/xx/$j/ CMakeLists_xx.txt >$j/CMakeLists.txt ; done
+(For each po-file create the subdir, copy outer po-file to subdir/kdiff3.po and create a CMakeLists.txt file.)
+ls */kdiff3.po | sed 's/\(.*\)\/.*/add_subdirectory(\1)/' >CMakeLists.txt
+
diff --git a/po/ar/CMakeLists.txt b/po/ar/CMakeLists.txt
new file mode 100644 (file)
index 0000000..1d2d8ee
--- /dev/null
@@ -0,0 +1,2 @@
+file(GLOB _po_files *.po)
+GETTEXT_PROCESS_PO_FILES(ar ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
diff --git a/po/ar/kdiff3.po b/po/ar/kdiff3.po
new file mode 100644 (file)
index 0000000..c583bfb
--- /dev/null
@@ -0,0 +1,2964 @@
+# translation of kdiff3.po to Arabic
+#
+# محمد سعد  Mohamed SAAD <metehyi@free.fr>, 2006.
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2006-12-03 19:06+0100\n"
+"Last-Translator: محمد سعد  Mohamed SAAD <metehyi@free.fr>\n"
+"Language-Team: Arabic <doc@arabeyes.org>\n"
+"Language: ar\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
+"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
+
+#: kreplacements/kreplacements.h:105
+#, fuzzy
+#| msgid "C&ontinue"
+msgid "Continue"
+msgstr "&تابع"
+
+#: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158
+#: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512
+msgid "Cancel"
+msgstr ""
+
+#: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631
+msgid "Quit"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339
+msgid "Ok"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715
+msgid "Help"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:185
+msgid "Defaults"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:4
+#. i18n: ectx: Menu (file)
+#: kreplacements/kreplacements.cpp:296 rc.cpp:14
+msgid "&File"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:297
+msgid "&Edit"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:7
+#. i18n: ectx: Menu (directory)
+#: kreplacements/kreplacements.cpp:298 rc.cpp:17
+msgid "&Directory"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:50
+#. i18n: ectx: Menu (movement)
+#: kreplacements/kreplacements.cpp:301 rc.cpp:26
+msgid "&Movement"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:61
+#. i18n: ectx: Menu (diff)
+#: kreplacements/kreplacements.cpp:302 rc.cpp:29
+msgid "D&iffview"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:73
+#. i18n: ectx: Menu (merge)
+#: kreplacements/kreplacements.cpp:303 rc.cpp:32
+msgid "&Merge"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:95
+#. i18n: ectx: Menu (window)
+#: kreplacements/kreplacements.cpp:304 rc.cpp:35
+msgid "&Window"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:305
+msgid "&Settings"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:306
+msgid "&Help"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:353
+msgid "&About"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:369
+msgid "A&uthor"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:383
+msgid "&Thanks To"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:30
+#. i18n: ectx: Menu (dir_current_merge_menu)
+#: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497
+#: rc.cpp:20
+msgid "Current Item Merge Operation"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:38
+#. i18n: ectx: Menu (dir_current_sync_menu)
+#: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498
+#: rc.cpp:23
+msgid "Current Item Sync Operation"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:597
+#, fuzzy
+#| msgid "Operation"
+msgid "Open"
+msgstr "العملية"
+
+#: kreplacements/kreplacements.cpp:606
+msgid "Save"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720
+msgid "Save As..."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:623
+msgid "Print..."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:639
+msgid "Cut"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:647
+msgid "Copy"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:655
+msgid "Paste"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:663
+#, fuzzy
+#| msgid "Delete A"
+msgid "Select All"
+msgstr "أمحي A"
+
+#: kreplacements/kreplacements.cpp:671
+msgid "Show Toolbar"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:679
+msgid "Show &Status Bar"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:687
+#, kde-format
+msgid "&Configure %1..."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707
+msgid "About"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:722
+msgid "Find"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:730
+msgid "Find Next"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:750
+msgid "Select Font"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676
+msgid ""
+"You selected a variable width font.\n"
+"\n"
+"Because this program doesn't handle variable width fonts\n"
+"correctly, you might experience problems while editing.\n"
+"\n"
+"Do you want to continue or do you want to select another font."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:792
+msgid "Incompatible font."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Continue at my own risk"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Select another font"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1134
+msgid "For more documentation, see the help-menu or the subdirectory doc."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "KDiff3-Usage"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Ignore"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Exit"
+msgstr ""
+
+#: diff.cpp:251
+msgid "Writing clipboard data to temp file failed."
+msgstr "فشل كتابة بيانات الحافظة إلى الملف المؤقت."
+
+#: diff.cpp:255
+msgid "From Clipboard"
+msgstr "من الحافظة"
+
+#: diff.cpp:471
+msgid "Expecting space after closing quotation mark."
+msgstr ""
+
+#: diff.cpp:474
+msgid "Not matching quotation marks."
+msgstr ""
+
+#: diff.cpp:496
+msgid "Unexpected quotation mark within argument."
+msgstr ""
+
+#: diff.cpp:503
+msgid "No program specified."
+msgstr ""
+
+#: diff.cpp:605
+#, kde-format
+msgid ""
+"Preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The preprocessing command will be disabled now."
+msgstr ""
+"إحتمال فشل الإجراء التمهيدي. إفحص هذا الأمر:\n"
+"\n"
+"  %1\n"
+"\n"
+"سيتم تعطيل الإجراء التمهيدي الآن."
+
+#: diff.cpp:653
+#, kde-format
+msgid ""
+"The line-matching-preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The line-matching-preprocessing command will be disabled now."
+msgstr ""
+
+#: diff.cpp:1776 diff.cpp:1790
+msgid ""
+"Data loss error:\n"
+"If it is reproducible please contact the author.\n"
+msgstr ""
+
+#: diff.cpp:1778 diff.cpp:1792
+msgid "Severe Internal Error"
+msgstr "خطأ داخلي فادح"
+
+#: directorymergewindow.cpp:136
+msgid "Mix of links and normal files."
+msgstr ""
+
+#: directorymergewindow.cpp:143
+msgid "Link: "
+msgstr ""
+
+#: directorymergewindow.cpp:151
+msgid "Size. "
+msgstr "القياس: "
+
+#: directorymergewindow.cpp:164 directorymergewindow.cpp:174
+msgid "Date & Size: "
+msgstr "التاريخ و القياس: "
+
+#: directorymergewindow.cpp:184 directorymergewindow.cpp:190
+#, kde-format
+msgid "Creating temp copy of %1 failed."
+msgstr "فشل إنشاء نسخة مؤقتة من %1."
+
+#: directorymergewindow.cpp:201 directorymergewindow.cpp:209
+#, kde-format
+msgid "Opening %1 failed."
+msgstr "فشل فتح %1."
+
+#: directorymergewindow.cpp:213
+msgid "Comparing file..."
+msgstr "جاري مقارنة الملف..."
+
+#: directorymergewindow.cpp:223 directorymergewindow.cpp:229
+#, kde-format
+msgid "Error reading from %1"
+msgstr "خطأ عند القراءة من %1"
+
+#: directorymergewindow.cpp:358
+msgid "Name"
+msgstr "الاسم"
+
+#: directorymergewindow.cpp:358
+msgid "Operation"
+msgstr "العملية"
+
+#: directorymergewindow.cpp:358
+msgid "Status"
+msgstr "الحالة"
+
+#: directorymergewindow.cpp:359
+msgid "Unsolved"
+msgstr ""
+
+#: directorymergewindow.cpp:359
+msgid "Solved"
+msgstr ""
+
+#: directorymergewindow.cpp:359
+msgid "Nonwhite"
+msgstr ""
+
+#: directorymergewindow.cpp:359
+msgid "White"
+msgstr "أبيض"
+
+#: directorymergewindow.cpp:388
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort "
+"the merge and rescan the directory?"
+msgstr ""
+
+#: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655
+#: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823
+msgid "Warning"
+msgstr ""
+
+#: directorymergewindow.cpp:390 directorymergewindow.cpp:2965
+msgid "Rescan"
+msgstr "إعادة المسح"
+
+#: directorymergewindow.cpp:391 pdiff.cpp:1081
+msgid "Continue Merging"
+msgstr ""
+
+#: directorymergewindow.cpp:548
+msgid "Opening of directories failed:"
+msgstr "فشل فتح المجلّدات:"
+
+#: directorymergewindow.cpp:551
+#, kde-format
+msgid "Dir A \"%1\" does not exist or is not a directory.\n"
+msgstr "الدليل A \"%1\" غير موجود أو هو ليس دليل.\n"
+
+#: directorymergewindow.cpp:554
+#, kde-format
+msgid "Dir B \"%1\" does not exist or is not a directory.\n"
+msgstr "الدليل B \"%1\" غير موجود أو هو ليس دليل.\n"
+
+#: directorymergewindow.cpp:557
+#, kde-format
+msgid "Dir C \"%1\" does not exist or is not a directory.\n"
+msgstr "الدليل C \"%1\" غير موجود أو هو ليس دليل.\n"
+
+#: directorymergewindow.cpp:559
+msgid "Directory Open Error"
+msgstr "خطأ فتح الدليل"
+
+#: directorymergewindow.cpp:567
+msgid ""
+"The destination directory must not be the same as A or B when three "
+"directories are merged.\n"
+"Check again before continuing."
+msgstr ""
+
+#: directorymergewindow.cpp:569
+msgid "Parameter Warning"
+msgstr "تحذير بشأن الضوابط"
+
+#: directorymergewindow.cpp:574
+msgid "Scanning directories..."
+msgstr "جاري مسح المجلّدات...."
+
+#: directorymergewindow.cpp:607
+msgid "Reading Directory A"
+msgstr "قراءة الدليل A"
+
+#: directorymergewindow.cpp:629
+msgid "Reading Directory B"
+msgstr "قراءة الدليل B"
+
+#: directorymergewindow.cpp:651
+msgid "Reading Directory C"
+msgstr "قراءة الدليل C"
+
+#: directorymergewindow.cpp:677
+msgid "Some subdirectories were not readable in"
+msgstr ""
+
+#: directorymergewindow.cpp:682
+msgid "Check the permissions of the subdirectories."
+msgstr "إفحص الأذون للمجلّدات الفرعية."
+
+#: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737
+#: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233
+#: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328
+msgid "Ready."
+msgstr "جاهز."
+
+#: directorymergewindow.cpp:735
+msgid "Directory Comparison Status"
+msgstr "حالة مقارنة المجلّدات"
+
+#: directorymergewindow.cpp:736
+msgid "Number of subdirectories:"
+msgstr "عدد المجلّدات الفرعية:"
+
+#: directorymergewindow.cpp:737
+msgid "Number of equal files:"
+msgstr "عدد الملفات المتساوية:"
+
+#: directorymergewindow.cpp:738
+msgid "Number of different files:"
+msgstr "عدد الملفات المختلفة:"
+
+#: directorymergewindow.cpp:741
+msgid "Number of manual merges:"
+msgstr ""
+
+#: directorymergewindow.cpp:912
+msgid "This affects all merge operations."
+msgstr ""
+
+#: directorymergewindow.cpp:913
+msgid "Changing All Merge Operations"
+msgstr ""
+
+#: directorymergewindow.cpp:1312
+msgid "Processing "
+msgstr "جاري الإجراء "
+
+#: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742
+msgid "To do."
+msgstr "واجب العمل."
+
+#: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996
+msgid "Copy A to B"
+msgstr "أنسخ A إلى B"
+
+#: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997
+msgid "Copy B to A"
+msgstr "أنسخ B إلى A"
+
+#: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998
+msgid "Delete A"
+msgstr "أمحي A"
+
+#: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999
+msgid "Delete B"
+msgstr "أمحي B"
+
+#: directorymergewindow.cpp:1814
+msgid "Delete A & B"
+msgstr "أمحي A و B"
+
+#: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001
+msgid "Merge to A"
+msgstr ""
+
+#: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002
+msgid "Merge to B"
+msgstr ""
+
+#: directorymergewindow.cpp:1817
+msgid "Merge to A & B"
+msgstr ""
+
+#: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993
+msgid "Delete (if exists)"
+msgstr "أمحي ( إذا كان موجود )"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+#: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869
+msgid "Merge"
+msgstr ""
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+msgid "Merge (manual)"
+msgstr ""
+
+#: directorymergewindow.cpp:1824
+msgid "Error: Conflicting File Types"
+msgstr ""
+
+#: directorymergewindow.cpp:1825
+msgid "Error: Changed and Deleted"
+msgstr ""
+
+#: directorymergewindow.cpp:1826
+msgid "Error: Dates are equal but files are not."
+msgstr ""
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906
+msgid "This operation is currently not possible."
+msgstr "هذه العملية ليست ممكنة حالياً."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174
+msgid "Operation Not Possible"
+msgstr "العملية غير ممكنة"
+
+#: directorymergewindow.cpp:1945
+msgid ""
+"This should never happen: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"If you know how to reproduce this, please contact the program author."
+msgstr ""
+
+#: directorymergewindow.cpp:1945
+msgid "Program Error"
+msgstr "خطأ في البرنامج"
+
+#: directorymergewindow.cpp:1956
+msgid "An error occurred while copying.\n"
+msgstr "حصل خطأ عند النسخ.\n"
+
+#: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025
+#: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105
+#: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123
+#: directorymergewindow.cpp:2374
+#, fuzzy
+#| msgid "Error."
+msgid "Error"
+msgstr "خطأ."
+
+#: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375
+msgid "Merge Error"
+msgstr ""
+
+#: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380
+msgid "Error."
+msgstr "خطأ."
+
+#: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272
+#: directorymergewindow.cpp:2312
+msgid "Done."
+msgstr "إنتهيت."
+
+#: directorymergewindow.cpp:1990
+msgid "Not saved."
+msgstr "غير محفوظ."
+
+#: directorymergewindow.cpp:2025
+msgid "Unknown merge operation. (This must never happen!)"
+msgstr ""
+
+#: directorymergewindow.cpp:2057
+msgid "Unknown merge operation."
+msgstr ""
+
+#: directorymergewindow.cpp:2072
+msgid ""
+"The merge is about to begin.\n"
+"\n"
+"Choose \"Do it\" if you have read the instructions and know what you are "
+"doing.\n"
+"Choosing \"Simulate it\" will tell you what would happen.\n"
+"\n"
+"Be aware that this program still has beta status and there is NO WARRANTY "
+"whatsoever! Make backups of your vital data!"
+msgstr ""
+
+#: directorymergewindow.cpp:2077
+msgid "Starting Merge"
+msgstr ""
+
+#: directorymergewindow.cpp:2078
+msgid "Do It"
+msgstr "إفعله"
+
+#: directorymergewindow.cpp:2079
+msgid "Simulate It"
+msgstr ""
+
+#: directorymergewindow.cpp:2105
+msgid ""
+"The highlighted item has a different type in the different directories. "
+"Select what to do."
+msgstr ""
+
+#: directorymergewindow.cpp:2114
+msgid ""
+"The modification dates of the file are equal but the files are not. Select "
+"what to do."
+msgstr ""
+
+#: directorymergewindow.cpp:2123
+msgid ""
+"The highlighted item was changed in one directory and deleted in the other. "
+"Select what to do."
+msgstr ""
+
+#: directorymergewindow.cpp:2174
+msgid ""
+"This operation is currently not possible because directory merge is "
+"currently running."
+msgstr ""
+
+#: directorymergewindow.cpp:2234
+msgid ""
+"There was an error in the last step.\n"
+"Do you want to continue with the item that caused the error or do you want "
+"to skip this item?"
+msgstr ""
+
+#: directorymergewindow.cpp:2236
+msgid "Continue merge after an error"
+msgstr ""
+
+#: directorymergewindow.cpp:2237
+msgid "Continue With Last Item"
+msgstr "تابع بلبند الأخير"
+
+#: directorymergewindow.cpp:2238
+msgid "Skip Item"
+msgstr ""
+
+#: directorymergewindow.cpp:2272
+msgid "Skipped."
+msgstr ""
+
+#: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493
+msgid "In progress..."
+msgstr "جاري..."
+
+#: directorymergewindow.cpp:2327
+msgid "Merge operation complete."
+msgstr ""
+
+#: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330
+msgid "Merge Complete"
+msgstr ""
+
+#: directorymergewindow.cpp:2340
+msgid ""
+"Simulated merge complete: Check if you agree with the proposed operations."
+msgstr ""
+
+#: directorymergewindow.cpp:2374
+msgid "An error occurred. Press OK to see detailed information.\n"
+msgstr "حصل خطأ. إضغط موافق لترى المعلومات المفصلة.\n"
+
+#: directorymergewindow.cpp:2406
+#, kde-format
+msgid "Error: While deleting %1: Creating backup failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2413
+#, kde-format
+msgid "delete directory recursively( %1 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2415
+#, kde-format
+msgid "delete( %1 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2430
+msgid "Error: delete dir operation failed while trying to read the directory."
+msgstr ""
+
+#: directorymergewindow.cpp:2449
+#, kde-format
+msgid "Error: rmdir( %1 ) operation failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2459
+msgid "Error: delete operation failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2485
+#, kde-format
+msgid "manual merge( %1, %2, %3 -> %4)"
+msgstr ""
+
+#: directorymergewindow.cpp:2488
+msgid ""
+"     Note: After a manual merge the user should continue by pressing F7."
+msgstr ""
+
+#: directorymergewindow.cpp:2513
+#, kde-format
+msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2522
+#, kde-format
+msgid "copyLink( %1 -> %2 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2533
+msgid "Error: copyLink failed: Remote links are not yet supported."
+msgstr ""
+
+#: directorymergewindow.cpp:2539
+msgid "Error: copyLink failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2564
+#, kde-format
+msgid "copy( %1 -> %2 )"
+msgstr "نسخ( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2590
+#, kde-format
+msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination."
+msgstr ""
+
+#: directorymergewindow.cpp:2596
+#, kde-format
+msgid "rename( %1 -> %2 )"
+msgstr "إعادة تسمية( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2605
+msgid "Error: Rename failed."
+msgstr "خطأ: فشلت إعادة التسمية."
+
+#: directorymergewindow.cpp:2623
+#, kde-format
+msgid "Error during makeDir of %1. Cannot delete existing file."
+msgstr ""
+
+#: directorymergewindow.cpp:2639
+#, kde-format
+msgid "makeDir( %1 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2649
+msgid "Error while creating directory."
+msgstr "خطأ عند إنشاء الدليل."
+
+#: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784
+msgid "Dest"
+msgstr "الهدف"
+
+#: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709
+msgid "Dir"
+msgstr "الدليل"
+
+#: directorymergewindow.cpp:2678
+msgid "Type"
+msgstr "النوع"
+
+#: directorymergewindow.cpp:2678
+msgid "Size"
+msgstr "الحجم"
+
+#: directorymergewindow.cpp:2679
+msgid "Attr"
+msgstr ""
+
+#: directorymergewindow.cpp:2679
+msgid "Last Modification"
+msgstr "آخر تغيير"
+
+#: directorymergewindow.cpp:2679
+msgid "Link-Destination"
+msgstr ""
+
+#: directorymergewindow.cpp:2709 difftextwindow.cpp:401
+msgid "File"
+msgstr ""
+
+#: directorymergewindow.cpp:2726
+msgid "not available"
+msgstr "غير متوفر"
+
+#: directorymergewindow.cpp:2746
+msgid "A (Dest): "
+msgstr ""
+
+#: directorymergewindow.cpp:2749
+msgid "A (Base): "
+msgstr ""
+
+#: directorymergewindow.cpp:2755
+msgid "B (Dest): "
+msgstr ""
+
+#: directorymergewindow.cpp:2763
+msgid "C (Dest): "
+msgstr ""
+
+#: directorymergewindow.cpp:2769
+msgid "Dest: "
+msgstr "الهدف: "
+
+#: directorymergewindow.cpp:2836
+msgid "Save Directory Merge State As..."
+msgstr ""
+
+#: directorymergewindow.cpp:2959
+msgid "Start/Continue Directory Merge"
+msgstr ""
+
+#: directorymergewindow.cpp:2960
+msgid "Run Operation for Current Item"
+msgstr "نفّذ العملية للبند الحالي"
+
+#: directorymergewindow.cpp:2961
+msgid "Compare Selected File"
+msgstr "قارن الملفات المختارة"
+
+#: directorymergewindow.cpp:2962
+msgid "Merge Current File"
+msgstr ""
+
+#: directorymergewindow.cpp:2962
+msgid ""
+"Merge\n"
+"File"
+msgstr ""
+
+#: directorymergewindow.cpp:2963
+msgid "Fold All Subdirs"
+msgstr ""
+
+#: directorymergewindow.cpp:2964
+msgid "Unfold All Subdirs"
+msgstr ""
+
+#: directorymergewindow.cpp:2968
+msgid "Choose A for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2969
+msgid "Choose B for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2970
+msgid "Choose C for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2971
+msgid "Auto-Choose Operation for All Items"
+msgstr "عملية إختيار تلقائية لكل البنود"
+
+#: directorymergewindow.cpp:2972
+msgid "No Operation for All Items"
+msgstr "لا عملية لكل البنود"
+
+#: directorymergewindow.cpp:2977
+msgid "Show Identical Files"
+msgstr "أعرض الملفات المتشابهة"
+
+#: directorymergewindow.cpp:2977
+#, fuzzy
+#| msgid "Show Identical Files"
+msgid ""
+"Identical\n"
+"Files"
+msgstr "أعرض الملفات المتشابهة"
+
+#: directorymergewindow.cpp:2978
+msgid "Show Different Files"
+msgstr "أعرض الملفات المختلفة"
+
+#: directorymergewindow.cpp:2979
+msgid "Show Files only in A"
+msgstr "أعرض الملفات فقط في أ"
+
+#: directorymergewindow.cpp:2979
+#, fuzzy
+#| msgid "Show Files only in A"
+msgid ""
+"Files\n"
+"only in A"
+msgstr "أعرض الملفات فقط في أ"
+
+#: directorymergewindow.cpp:2980
+msgid "Show Files only in B"
+msgstr "أعرض الملفات فقط في ب"
+
+#: directorymergewindow.cpp:2980
+#, fuzzy
+#| msgid "Show Files only in B"
+msgid ""
+"Files\n"
+"only in B"
+msgstr "أعرض الملفات فقط في ب"
+
+#: directorymergewindow.cpp:2981
+msgid "Show Files only in C"
+msgstr "أعرض الملفات فقط في س"
+
+#: directorymergewindow.cpp:2981
+#, fuzzy
+#| msgid "Show Files only in C"
+msgid ""
+"Files\n"
+"only in C"
+msgstr "أعرض الملفات فقط في س"
+
+#: directorymergewindow.cpp:2985
+msgid "Compare Explicitly Selected Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2986
+msgid "Merge Explicitly Selected Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995
+msgid "Do Nothing"
+msgstr "لا تفعل أي شيئ"
+
+#: directorymergewindow.cpp:2989
+msgid "A"
+msgstr "أ"
+
+#: directorymergewindow.cpp:2990
+msgid "B"
+msgstr "ب"
+
+#: directorymergewindow.cpp:2991
+msgid "C"
+msgstr "س"
+
+#: directorymergewindow.cpp:3000
+msgid "Delete A && B"
+msgstr "أمحي أ و ب"
+
+#: directorymergewindow.cpp:3003
+msgid "Merge to A && B"
+msgstr ""
+
+#: main.cpp:74 main.cpp:76
+msgid "Ignored. (User defined.)"
+msgstr ""
+
+#: main.cpp:162
+msgid "kdiff3"
+msgstr ""
+
+#: main.cpp:164
+msgid "Tool for Comparison and Merge of Files and Directories"
+msgstr ""
+
+#: main.cpp:165
+msgid "(c) 2002-2011 Joachim Eibl"
+msgstr ""
+
+#: main.cpp:172 kdiff3_part.cpp:303
+msgid "Joachim Eibl"
+msgstr ""
+
+#: main.cpp:173
+msgid "Eike Sauer"
+msgstr ""
+
+#: main.cpp:173
+msgid "Bugfixes, Debian package maintainer"
+msgstr ""
+
+#: main.cpp:174
+msgid "Sebastien Fricker"
+msgstr ""
+
+#: main.cpp:174
+msgid "Windows installer"
+msgstr ""
+
+#: main.cpp:175
+msgid "Stephan Binner"
+msgstr ""
+
+#: main.cpp:175
+msgid "i18n-help"
+msgstr ""
+
+#: main.cpp:176
+msgid "Stefan Partheymueller"
+msgstr ""
+
+#: main.cpp:176
+#, fuzzy
+#| msgid "From Clipboard"
+msgid "Clipboard-patch"
+msgstr "من الحافظة"
+
+#: main.cpp:177
+msgid "David Faure"
+msgstr ""
+
+#: main.cpp:177
+msgid "KIO-Help"
+msgstr ""
+
+#: main.cpp:178
+msgid "Bernd Gehrmann"
+msgstr ""
+
+#: main.cpp:178
+msgid "Class CvsIgnoreList from Cervisia"
+msgstr ""
+
+#: main.cpp:179
+msgid "Andre Woebbeking"
+msgstr ""
+
+#: main.cpp:179
+msgid "Class StringMatcher"
+msgstr ""
+
+#: main.cpp:180
+msgid "Michael Denio"
+msgstr ""
+
+#: main.cpp:180
+#, fuzzy
+#| msgid "Directory Comparison Status"
+msgid "Directory Equality-Coloring patch"
+msgstr "حالة مقارنة المجلّدات"
+
+#: main.cpp:181
+msgid "Manfred Koehler"
+msgstr ""
+
+#: main.cpp:181
+msgid "Fix for slow startup on Windows"
+msgstr ""
+
+#: main.cpp:182
+msgid "Sergey Zorin"
+msgstr ""
+
+#: main.cpp:182
+msgid "Diff Ext for Windows"
+msgstr ""
+
+#: main.cpp:183
+msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+msgstr ""
+
+#: main.cpp:183
+msgid "GNU-Diffutils"
+msgstr ""
+
+#: main.cpp:184
+msgid "Tino Boellsterling, Timothy Mee"
+msgstr ""
+
+#: main.cpp:184
+msgid "Intensive test, use and feedback"
+msgstr ""
+
+#: main.cpp:185
+msgid "Michael Schmidt"
+msgstr ""
+
+#: main.cpp:185
+msgid "Mac support"
+msgstr ""
+
+#: main.cpp:186
+msgid "Valentin Rusu"
+msgstr ""
+
+#: main.cpp:186 main.cpp:187
+#, fuzzy
+#| msgid "Do Nothing"
+msgid "KDE4 porting"
+msgstr "لا تفعل أي شيئ"
+
+#: main.cpp:187
+msgid "Albert Astals Cid"
+msgstr ""
+
+#: main.cpp:188
+msgid "Silvan Scherrer"
+msgstr ""
+
+#: main.cpp:188
+msgid "OS2 port"
+msgstr ""
+
+#: main.cpp:190
+msgid "+ Many thanks to those who reported bugs and contributed ideas!"
+msgstr ""
+
+#: main.cpp:196
+msgid "Merge the input."
+msgstr ""
+
+#: main.cpp:197
+msgid "Explicit base file. For compatibility with certain tools."
+msgstr ""
+
+#: main.cpp:198
+msgid "Output file. Implies -m. E.g.: -o newfile.txt"
+msgstr ""
+
+#: main.cpp:199
+msgid "Output file, again. (For compatibility with certain tools.)"
+msgstr ""
+
+#: main.cpp:200
+msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)"
+msgstr ""
+
+#: main.cpp:201
+msgid "Don't solve conflicts automatically. (For compatibility...)"
+msgstr ""
+
+#: main.cpp:202
+msgid "Visible name replacement for input file 1 (base)."
+msgstr ""
+
+#: main.cpp:203
+msgid "Visible name replacement for input file 2."
+msgstr ""
+
+#: main.cpp:204
+msgid "Visible name replacement for input file 3."
+msgstr ""
+
+#: main.cpp:205
+msgid "Alternative visible name replacement. Supply this once for every input."
+msgstr ""
+
+#: main.cpp:206
+msgid ""
+"Override a config setting. Use once for every setting. E.g.: --cs "
+"\"AutoAdvance=1\""
+msgstr ""
+
+#: main.cpp:207
+msgid "Show list of config settings and current values."
+msgstr ""
+
+#: main.cpp:208
+msgid "Use a different config file."
+msgstr ""
+
+#: main.cpp:211
+msgid "file1 to open (base, if not specified via --base)"
+msgstr ""
+
+#: main.cpp:212
+msgid "file2 to open"
+msgstr ""
+
+#: main.cpp:213
+msgid "file3 to open"
+msgstr ""
+
+#: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976
+#: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002
+#: mergeresultwindow.cpp:1014
+#, kde-format
+msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)"
+msgstr ""
+
+#: mergeresultwindow.cpp:303
+msgid ""
+"The output has been modified.\n"
+"If you continue your changes will be lost."
+msgstr ""
+
+#: mergeresultwindow.cpp:834 pdiff.cpp:532
+msgid "All input files are binary equal."
+msgstr ""
+
+#: mergeresultwindow.cpp:836
+msgid "All input files contain the same text."
+msgstr ""
+
+#: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840
+#: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540
+#, kde-format
+msgid "Files %1 and %2 are binary equal.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841
+#: mergeresultwindow.cpp:843
+#, kde-format
+msgid "Files %1 and %2 have equal text.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:849
+msgid "Total number of conflicts: "
+msgstr ""
+
+#: mergeresultwindow.cpp:850
+msgid ""
+"\n"
+"Nr of automatically solved conflicts: "
+msgstr ""
+
+#: mergeresultwindow.cpp:851
+msgid ""
+"\n"
+"Nr of unsolved conflicts: "
+msgstr ""
+
+#: mergeresultwindow.cpp:853
+msgid "Conflicts"
+msgstr ""
+
+#: mergeresultwindow.cpp:1728
+msgid "<No src line>"
+msgstr ""
+
+#: mergeresultwindow.cpp:1736
+msgid "<Merge Conflict (Whitespace only)>"
+msgstr ""
+
+#: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517
+msgid "<Merge Conflict>"
+msgstr ""
+
+#: mergeresultwindow.cpp:2725
+msgid ""
+"Not all conflicts are solved yet.\n"
+"File not saved.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736
+msgid "Conflicts Left"
+msgstr ""
+
+#: mergeresultwindow.cpp:2734
+msgid ""
+"There is a line end style conflict. Please choose the line end style "
+"manually.\n"
+"File not saved.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:2748
+msgid ""
+"\n"
+"\n"
+"Creating backup failed. File not saved."
+msgstr ""
+
+#: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792
+msgid "File Save Error"
+msgstr ""
+
+#: mergeresultwindow.cpp:2792
+msgid "Error while writing."
+msgstr ""
+
+#: mergeresultwindow.cpp:3122
+msgid "Output"
+msgstr ""
+
+#: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314
+msgid "[Modified]"
+msgstr ""
+
+#: mergeresultwindow.cpp:3141
+msgid "Encoding for saving"
+msgstr ""
+
+#: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737
+#: optiondialog.cpp:762
+msgid "Line end style:"
+msgstr ""
+
+#: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767
+msgid "Unix"
+msgstr ""
+
+#: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737
+msgid "DOS"
+msgstr ""
+
+#: mergeresultwindow.cpp:3229
+msgid "Conflict"
+msgstr ""
+
+#: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263
+#: mergeresultwindow.cpp:3265
+msgid "Codec from"
+msgstr ""
+
+#: kdiff3_part.cpp:157 kdiff3_part.cpp:234
+msgid "Couldn't find files for comparison."
+msgstr ""
+
+#: kdiff3_part.cpp:302
+msgid "KDiff3Part"
+msgstr ""
+
+#: fileaccess.cpp:612
+msgid ""
+"While trying to make a backup, deleting an older backup failed. \n"
+"Filename: "
+msgstr ""
+
+#: fileaccess.cpp:619
+msgid ""
+"While trying to make a backup, renaming failed. \n"
+"Filenames: "
+msgstr ""
+
+#: fileaccess.cpp:643
+#, kde-format
+msgid "Getting file status: %1"
+msgstr "جاري طلب حالة الملف: %1"
+
+#: fileaccess.cpp:686
+#, kde-format
+msgid "Reading file: %1"
+msgstr "جاري قراءة الملف: %1"
+
+#: fileaccess.cpp:723
+#, kde-format
+msgid "Writing file: %1"
+msgstr "جاري كتابة الملف: %1"
+
+#: fileaccess.cpp:751
+msgid "Out of memory"
+msgstr ""
+
+#: fileaccess.cpp:786
+#, kde-format
+msgid "Making directory: %1"
+msgstr ""
+
+#: fileaccess.cpp:806
+#, kde-format
+msgid "Removing directory: %1"
+msgstr ""
+
+#: fileaccess.cpp:821
+#, kde-format
+msgid "Removing file: %1"
+msgstr ""
+
+#: fileaccess.cpp:837
+#, kde-format
+msgid "Creating symbolic link: %1 -> %2"
+msgstr ""
+
+#: fileaccess.cpp:864
+#, kde-format
+msgid "Renaming file: %1 -> %2"
+msgstr "إعادة تسمية الملف: %1 -> %2"
+
+#: fileaccess.cpp:897
+#, kde-format
+msgid "Copying file: %1 -> %2"
+msgstr "نسخ الملف: %1 -> %2"
+
+#: fileaccess.cpp:911
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for reading failed. Filename: "
+"%1"
+msgstr ""
+
+#: fileaccess.cpp:917
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for writing failed. Filename: "
+"%1"
+msgstr ""
+
+#: fileaccess.cpp:932
+#, kde-format
+msgid "Error during file copy operation: Reading failed. Filename: %1"
+msgstr ""
+
+#: fileaccess.cpp:941
+#, kde-format
+msgid "Error during file copy operation: Writing failed. Filename: %1"
+msgstr ""
+
+#: fileaccess.cpp:1231
+msgid "Reading directory: "
+msgstr ""
+
+#: fileaccess.cpp:1355
+#, kde-format
+msgid "Listing directory: %1"
+msgstr ""
+
+#: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396
+msgid "&Cancel"
+msgstr ""
+
+#: difftextwindow.cpp:403
+msgid "Line"
+msgstr ""
+
+#: difftextwindow.cpp:405
+#, fuzzy
+#| msgid "not available"
+msgid "Line not available"
+msgstr "غير متوفر"
+
+#: difftextwindow.cpp:1703 difftextwindow.cpp:1736
+msgid "Encoding:"
+msgstr ""
+
+#: difftextwindow.cpp:1759 kdiff3.cpp:831
+msgid "Top line"
+msgstr "السطر الأعلى"
+
+#: difftextwindow.cpp:1769
+msgid "End"
+msgstr "النهاية"
+
+#: kdiff3.cpp:169
+msgid "Current Configuration:"
+msgstr ""
+
+#: kdiff3.cpp:174
+msgid "Config Option Error:"
+msgstr ""
+
+#: kdiff3.cpp:219
+msgid "Option --auto used, but no output file specified."
+msgstr ""
+
+#: kdiff3.cpp:369
+msgid "Option --auto ignored for directory comparison."
+msgstr ""
+
+#: kdiff3.cpp:405
+msgid "Saving failed."
+msgstr ""
+
+#: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214
+msgid "Opening of these files failed:"
+msgstr ""
+
+#: kdiff3.cpp:449
+msgid "File Open Error"
+msgstr ""
+
+#: kdiff3.cpp:477
+msgid "Opens documents for comparison..."
+msgstr ""
+
+#: kdiff3.cpp:479
+#, fuzzy
+#| msgid "Ready."
+msgid "Reload"
+msgstr "جاهز."
+
+#: kdiff3.cpp:482
+msgid "Saves the merge result. All conflicts must be solved!"
+msgstr ""
+
+#: kdiff3.cpp:484
+msgid "Saves the current document as..."
+msgstr ""
+
+#: kdiff3.cpp:487
+msgid "Print the differences"
+msgstr ""
+
+#: kdiff3.cpp:490
+msgid "Quits the application"
+msgstr "يخرج من التطبيق"
+
+#: kdiff3.cpp:492
+msgid "Cuts the selected section and puts it to the clipboard"
+msgstr ""
+
+#: kdiff3.cpp:494
+msgid "Copies the selected section to the clipboard"
+msgstr ""
+
+#: kdiff3.cpp:496
+msgid "Pastes the clipboard contents to current position"
+msgstr ""
+
+#: kdiff3.cpp:498
+msgid "Select everything in current window"
+msgstr ""
+
+#: kdiff3.cpp:500
+msgid "Search for a string"
+msgstr ""
+
+#: kdiff3.cpp:502
+msgid "Search again for the string"
+msgstr ""
+
+#: kdiff3.cpp:507
+msgid "Enables/disables the statusbar"
+msgstr ""
+
+#: kdiff3.cpp:511
+msgid "Configure KDiff3..."
+msgstr ""
+
+#: kdiff3.cpp:532
+msgid "Go to Current Delta"
+msgstr ""
+
+#: kdiff3.cpp:532
+msgid ""
+"Current\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:534
+msgid "Go to First Delta"
+msgstr ""
+
+#: kdiff3.cpp:534
+msgid ""
+"First\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:536
+msgid "Go to Last Delta"
+msgstr ""
+
+#: kdiff3.cpp:536
+msgid ""
+"Last\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:538
+msgid "(Skips white space differences when \"Show White Space\" is disabled.)"
+msgstr ""
+
+#: kdiff3.cpp:539
+msgid ""
+"(Does not skip white space differences even when \"Show White Space\" is "
+"disabled.)"
+msgstr ""
+
+#: kdiff3.cpp:540
+msgid "Go to Previous Delta"
+msgstr ""
+
+#: kdiff3.cpp:540
+msgid ""
+"Prev\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:542
+msgid "Go to Next Delta"
+msgstr ""
+
+#: kdiff3.cpp:542
+msgid ""
+"Next\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:544
+msgid "Go to Previous Conflict"
+msgstr ""
+
+#: kdiff3.cpp:544
+msgid ""
+"Prev\n"
+"Conflict"
+msgstr ""
+
+#: kdiff3.cpp:546
+msgid "Go to Next Conflict"
+msgstr ""
+
+#: kdiff3.cpp:546
+msgid ""
+"Next\n"
+"Conflict"
+msgstr ""
+
+#: kdiff3.cpp:548
+msgid "Go to Previous Unsolved Conflict"
+msgstr ""
+
+#: kdiff3.cpp:548
+msgid ""
+"Prev\n"
+"Unsolved"
+msgstr ""
+
+#: kdiff3.cpp:550
+msgid "Go to Next Unsolved Conflict"
+msgstr ""
+
+#: kdiff3.cpp:550
+msgid ""
+"Next\n"
+"Unsolved"
+msgstr ""
+
+#: kdiff3.cpp:552
+msgid "Select Line(s) From A"
+msgstr ""
+
+#: kdiff3.cpp:552
+msgid ""
+"Choose\n"
+"A"
+msgstr ""
+
+#: kdiff3.cpp:553
+msgid "Select Line(s) From B"
+msgstr ""
+
+#: kdiff3.cpp:553
+msgid ""
+"Choose\n"
+"B"
+msgstr ""
+
+#: kdiff3.cpp:554
+msgid "Select Line(s) From C"
+msgstr ""
+
+#: kdiff3.cpp:554
+msgid ""
+"Choose\n"
+"C"
+msgstr ""
+
+#: kdiff3.cpp:555
+msgid "Automatically Go to Next Unsolved Conflict After Source Selection"
+msgstr ""
+
+#: kdiff3.cpp:555
+msgid ""
+"Auto\n"
+"Next"
+msgstr ""
+
+#: kdiff3.cpp:557
+msgid "Show Space && Tabulator Characters for Differences"
+msgstr ""
+
+#: kdiff3.cpp:557
+msgid ""
+"White\n"
+"Characters"
+msgstr ""
+
+#: kdiff3.cpp:558
+msgid "Show White Space"
+msgstr ""
+
+#: kdiff3.cpp:558
+msgid ""
+"White\n"
+"Deltas"
+msgstr ""
+
+#: kdiff3.cpp:560
+msgid "Show Line Numbers"
+msgstr ""
+
+#: kdiff3.cpp:560
+msgid ""
+"Line\n"
+"Numbers"
+msgstr ""
+
+#: kdiff3.cpp:561
+msgid "Choose A Everywhere"
+msgstr ""
+
+#: kdiff3.cpp:562
+msgid "Choose B Everywhere"
+msgstr ""
+
+#: kdiff3.cpp:563
+msgid "Choose C Everywhere"
+msgstr ""
+
+#: kdiff3.cpp:564
+msgid "Choose A for All Unsolved Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:565
+msgid "Choose B for All Unsolved Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:566
+msgid "Choose C for All Unsolved Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:567
+msgid "Choose A for All Unsolved Whitespace Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:568
+msgid "Choose B for All Unsolved Whitespace Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:569
+msgid "Choose C for All Unsolved Whitespace Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:570
+msgid "Automatically Solve Simple Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:571
+msgid "Set Deltas to Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:572
+msgid "Run Regular Expression Auto Merge"
+msgstr ""
+
+#: kdiff3.cpp:573
+msgid "Automatically Solve History Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:574
+msgid "Split Diff At Selection"
+msgstr ""
+
+#: kdiff3.cpp:575
+msgid "Join Selected Diffs"
+msgstr ""
+
+#: kdiff3.cpp:577
+msgid "Show Window A"
+msgstr ""
+
+#: kdiff3.cpp:578
+msgid "Show Window B"
+msgstr ""
+
+#: kdiff3.cpp:579
+msgid "Show Window C"
+msgstr ""
+
+#: kdiff3.cpp:580 kdiff3.cpp:591
+msgid "Focus Next Window"
+msgstr ""
+
+#: kdiff3.cpp:582
+msgid "Normal Overview"
+msgstr ""
+
+#: kdiff3.cpp:583
+msgid "A vs. B Overview"
+msgstr ""
+
+#: kdiff3.cpp:584
+msgid "A vs. C Overview"
+msgstr ""
+
+#: kdiff3.cpp:585
+msgid "B vs. C Overview"
+msgstr ""
+
+#: kdiff3.cpp:586
+msgid "Word Wrap Diff Windows"
+msgstr ""
+
+#: kdiff3.cpp:587
+msgid "Add Manual Diff Alignment"
+msgstr ""
+
+#: kdiff3.cpp:588
+msgid "Clear All Manual Diff Alignments"
+msgstr ""
+
+#: kdiff3.cpp:593
+msgid "Focus Prev Window"
+msgstr ""
+
+#: kdiff3.cpp:594
+msgid "Toggle Split Orientation"
+msgstr ""
+
+#: kdiff3.cpp:596
+msgid "Dir && Text Split Screen View"
+msgstr ""
+
+#: kdiff3.cpp:598
+msgid "Toggle Between Dir && Text View"
+msgstr ""
+
+#: kdiff3.cpp:654 pdiff.cpp:1812
+msgid "The merge result hasn't been saved."
+msgstr ""
+
+#: kdiff3.cpp:656
+msgid "Save && Quit"
+msgstr ""
+
+#: kdiff3.cpp:657
+msgid "Quit Without Saving"
+msgstr ""
+
+#: kdiff3.cpp:665 pdiff.cpp:1823
+msgid "Saving the merge result failed."
+msgstr ""
+
+#: kdiff3.cpp:676 pdiff.cpp:1078
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort?"
+msgstr ""
+
+#: kdiff3.cpp:701
+msgid "Saving file..."
+msgstr ""
+
+#: kdiff3.cpp:718
+msgid "Saving file with a new filename..."
+msgstr ""
+
+#: kdiff3.cpp:781
+msgid "Printing not implemented."
+msgstr ""
+
+#: kdiff3.cpp:815
+msgid "Printing..."
+msgstr ""
+
+#: kdiff3.cpp:956
+#, fuzzy
+#| msgid "Delete A"
+msgid "Selection"
+msgstr "أمحي A"
+
+#: kdiff3.cpp:982
+msgid "Printing completed."
+msgstr ""
+
+#: kdiff3.cpp:986
+msgid "Printing aborted."
+msgstr ""
+
+#: kdiff3.cpp:993
+msgid "Exiting..."
+msgstr ""
+
+#: kdiff3.cpp:1006
+msgid "Toggling toolbar..."
+msgstr ""
+
+#: kdiff3.cpp:1027
+msgid "Toggle the statusbar..."
+msgstr ""
+
+#: smalldialogs.cpp:58
+msgid "A (Base):"
+msgstr ""
+
+#: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99
+#: smalldialogs.cpp:142
+msgid "File..."
+msgstr ""
+
+#: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101
+#: smalldialogs.cpp:144
+msgid "Dir..."
+msgstr ""
+
+#: smalldialogs.cpp:93
+msgid "C (Optional):"
+msgstr ""
+
+#: smalldialogs.cpp:116
+msgid "Swap/Copy Names ..."
+msgstr ""
+
+#: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123
+#, kde-format
+msgid "Swap %1<->%2"
+msgstr ""
+
+#: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126
+#, kde-format
+msgid "Copy %1->Output"
+msgstr ""
+
+#: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129
+#, kde-format
+msgid "Swap %1<->Output"
+msgstr ""
+
+#: smalldialogs.cpp:136
+msgid "Output (optional):"
+msgstr ""
+
+#: smalldialogs.cpp:168
+msgid "Configure..."
+msgstr ""
+
+#: smalldialogs.cpp:174
+msgid "&OK"
+msgstr ""
+
+#: smalldialogs.cpp:362
+msgid "Search text:"
+msgstr ""
+
+#: smalldialogs.cpp:369
+msgid "Case sensitive"
+msgstr ""
+
+#: smalldialogs.cpp:372
+msgid "Search A"
+msgstr ""
+
+#: smalldialogs.cpp:377
+msgid "Search B"
+msgstr ""
+
+#: smalldialogs.cpp:382
+msgid "Search C"
+msgstr ""
+
+#: smalldialogs.cpp:387
+msgid "Search output"
+msgstr ""
+
+#: smalldialogs.cpp:392
+msgid "&Search"
+msgstr ""
+
+#: smalldialogs.cpp:409
+msgid "Regular Expression Tester"
+msgstr ""
+
+#: smalldialogs.cpp:414 optiondialog.cpp:936
+msgid "Auto merge regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:422
+msgid "Example auto merge line:"
+msgstr ""
+
+#: smalldialogs.cpp:424
+msgid "To test auto merge, copy a line as used in your files."
+msgstr ""
+
+#: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494
+msgid "Match result:"
+msgstr ""
+
+#: smalldialogs.cpp:441 optiondialog.cpp:962
+msgid "History start regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:449
+msgid "Example history start line (with leading comment):"
+msgstr ""
+
+#: smalldialogs.cpp:451
+msgid ""
+"Copy a history start line as used in your files,\n"
+"including the leading comment."
+msgstr ""
+
+#: smalldialogs.cpp:469 optiondialog.cpp:972
+msgid "History entry start regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:477
+msgid "History sort key order:"
+msgstr ""
+
+#: smalldialogs.cpp:485
+msgid "Example history entry start line (without leading comment):"
+msgstr ""
+
+#: smalldialogs.cpp:487
+msgid ""
+"Copy a history entry start line as used in your files,\n"
+"but omit the leading comment."
+msgstr ""
+
+#: smalldialogs.cpp:501
+msgid "Sort key result:"
+msgstr ""
+
+#: smalldialogs.cpp:508
+msgid "OK"
+msgstr ""
+
+#: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583
+msgid "Match success."
+msgstr ""
+
+#: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589
+msgid "Match failed."
+msgstr ""
+
+#: smalldialogs.cpp:574
+msgid "Opening and closing parentheses do not match in regular expression."
+msgstr ""
+
+#: optiondialog.cpp:367
+msgid "Unicode, 8 bit"
+msgstr ""
+
+#: optiondialog.cpp:368
+msgid "Unicode"
+msgstr ""
+
+#: optiondialog.cpp:369
+msgid "Latin1"
+msgstr ""
+
+#: optiondialog.cpp:388
+msgid "Change this if non-ASCII characters are not displayed correctly."
+msgstr ""
+
+#: optiondialog.cpp:465
+#, fuzzy
+#| msgid "C&ontinue"
+msgid "Configure"
+msgstr "&تابع"
+
+#: optiondialog.cpp:531
+msgid "Font"
+msgstr ""
+
+#: optiondialog.cpp:532
+msgid "Editor & Diff Output Font"
+msgstr ""
+
+#: optiondialog.cpp:556
+msgid "Italic font for deltas"
+msgstr ""
+
+#: optiondialog.cpp:559
+msgid ""
+"Selects the italic version of the font for differences.\n"
+"If the font doesn't support italic characters, then this does nothing."
+msgstr ""
+
+#: optiondialog.cpp:568
+msgid "Color"
+msgstr ""
+
+#: optiondialog.cpp:569
+msgid "Colors Settings"
+msgstr ""
+
+#: optiondialog.cpp:588
+msgid "Editor and Diff Views:"
+msgstr ""
+
+#: optiondialog.cpp:596
+msgid "Foreground color:"
+msgstr ""
+
+#: optiondialog.cpp:603
+msgid "Background color:"
+msgstr ""
+
+#: optiondialog.cpp:612
+msgid "Diff background color:"
+msgstr ""
+
+#: optiondialog.cpp:620
+msgid "Color A:"
+msgstr ""
+
+#: optiondialog.cpp:628
+msgid "Color B:"
+msgstr ""
+
+#: optiondialog.cpp:636
+msgid "Color C:"
+msgstr ""
+
+#: optiondialog.cpp:643
+msgid "Conflict color:"
+msgstr ""
+
+#: optiondialog.cpp:651
+msgid "Current range background color:"
+msgstr ""
+
+#: optiondialog.cpp:659
+msgid "Current range diff background color:"
+msgstr ""
+
+#: optiondialog.cpp:666
+msgid "Color for manually aligned difference ranges:"
+msgstr ""
+
+#: optiondialog.cpp:672
+msgid "Directory Comparison View:"
+msgstr ""
+
+#: optiondialog.cpp:678
+msgid "Newest file color:"
+msgstr ""
+
+#: optiondialog.cpp:682
+msgid ""
+"Changing this color will only be effective when starting the next directory "
+"comparison."
+msgstr ""
+
+#: optiondialog.cpp:687
+msgid "Oldest file color:"
+msgstr ""
+
+#: optiondialog.cpp:695
+msgid "Middle age file color:"
+msgstr ""
+
+#: optiondialog.cpp:703
+msgid "Color for missing files:"
+msgstr ""
+
+#: optiondialog.cpp:717
+msgid "Editor"
+msgstr ""
+
+#: optiondialog.cpp:718
+msgid "Editor Behavior"
+msgstr ""
+
+#: optiondialog.cpp:732
+msgid "Tab inserts spaces"
+msgstr ""
+
+#: optiondialog.cpp:735
+msgid ""
+"On: Pressing tab generates the appropriate number of spaces.\n"
+"Off: A tab character will be inserted."
+msgstr ""
+
+#: optiondialog.cpp:741
+msgid "Tab size:"
+msgstr ""
+
+#: optiondialog.cpp:747
+msgid "Auto indentation"
+msgstr ""
+
+#: optiondialog.cpp:750
+msgid "On: The indentation of the previous line is used for a new line.\n"
+msgstr ""
+
+#: optiondialog.cpp:754
+msgid "Auto copy selection"
+msgstr ""
+
+#: optiondialog.cpp:757
+msgid ""
+"On: Any selection is immediately written to the clipboard.\n"
+"Off: You must explicitely copy e.g. via Ctrl-C."
+msgstr ""
+
+#: optiondialog.cpp:768
+msgid "Dos/Windows"
+msgstr ""
+
+#: optiondialog.cpp:769
+msgid "Autodetect"
+msgstr ""
+
+#: optiondialog.cpp:772
+msgid ""
+"Sets the line endings for when an edited file is saved.\n"
+"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A"
+msgstr ""
+
+#: optiondialog.cpp:784
+msgid "Diff"
+msgstr ""
+
+#: optiondialog.cpp:785
+msgid "Diff Settings"
+msgstr ""
+
+#: optiondialog.cpp:809
+msgid "Treat as white space."
+msgstr ""
+
+#: optiondialog.cpp:811
+msgid "Ignore numbers"
+msgstr ""
+
+#: optiondialog.cpp:814
+msgid ""
+"Ignore number characters during line matching phase. (Similar to Ignore "
+"white space.)\n"
+"Might help to compare files with numeric data."
+msgstr ""
+
+#: optiondialog.cpp:819
+msgid "Ignore C/C++ comments"
+msgstr ""
+
+#: optiondialog.cpp:821
+msgid "Treat C/C++ comments like white space."
+msgstr ""
+
+#: optiondialog.cpp:825
+msgid "Ignore case"
+msgstr ""
+
+#: optiondialog.cpp:828
+msgid "Treat case differences like white space changes. ('a'<=>'A')"
+msgstr ""
+
+#: optiondialog.cpp:832
+msgid "Preprocessor command:"
+msgstr ""
+
+#: optiondialog.cpp:836
+msgid "User defined pre-processing. (See the docs for details.)"
+msgstr ""
+
+#: optiondialog.cpp:839
+msgid "Line-matching preprocessor command:"
+msgstr ""
+
+#: optiondialog.cpp:843
+msgid ""
+"This pre-processor is only used during line matching.\n"
+"(See the docs for details.)"
+msgstr ""
+
+#: optiondialog.cpp:846
+msgid "Try hard (slower)"
+msgstr ""
+
+#: optiondialog.cpp:849
+msgid ""
+"Enables the --minimal option for the external diff.\n"
+"The analysis of big files will be much slower."
+msgstr ""
+
+#: optiondialog.cpp:854
+msgid "Align B and C for 3 input files"
+msgstr ""
+
+#: optiondialog.cpp:857
+msgid ""
+"Try to align B and C when comparing or merging three input files.\n"
+"Not recommended for merging because merge might get more complicated.\n"
+"(Default is off.)"
+msgstr ""
+
+#: optiondialog.cpp:870
+msgid "Merge Settings"
+msgstr ""
+
+#: optiondialog.cpp:885
+msgid "Auto advance delay (ms):"
+msgstr ""
+
+#: optiondialog.cpp:890
+msgid ""
+"When in Auto-Advance mode the result of the current selection is shown \n"
+"for the specified time, before jumping to the next conflict. Range: 0-2000 ms"
+msgstr ""
+
+#: optiondialog.cpp:895
+msgid "Show info dialogs"
+msgstr ""
+
+#: optiondialog.cpp:897
+msgid "Show a dialog with information about the number of conflicts."
+msgstr ""
+
+#: optiondialog.cpp:900
+msgid "White space 2-file merge default:"
+msgstr ""
+
+#: optiondialog.cpp:904 optiondialog.cpp:917
+msgid "Manual Choice"
+msgstr ""
+
+#: optiondialog.cpp:908 optiondialog.cpp:922
+msgid ""
+"Allow the merge algorithm to automatically select an input for white-space-"
+"only changes."
+msgstr ""
+
+#: optiondialog.cpp:913
+msgid "White space 3-file merge default:"
+msgstr ""
+
+#: optiondialog.cpp:927
+msgid "Automatic Merge Regular Expression"
+msgstr ""
+
+#: optiondialog.cpp:940
+msgid ""
+"Regular expression for lines where KDiff3 should automatically choose one "
+"source.\n"
+"When a line with a conflict matches the regular expression then\n"
+"- if available - C, otherwise B will be chosen."
+msgstr ""
+
+#: optiondialog.cpp:946
+msgid "Run regular expression auto merge on merge start"
+msgstr ""
+
+#: optiondialog.cpp:948
+msgid ""
+"Run the merge for auto merge regular expressions\n"
+"immediately when a merge starts.\n"
+msgstr ""
+
+#: optiondialog.cpp:953
+msgid "Version Control History Merging"
+msgstr ""
+
+#: optiondialog.cpp:966
+msgid ""
+"Regular expression for the start of the version control history entry.\n"
+"Usually this line contains the \"$Log$\" keyword.\n"
+"Default value: \".*\\$Log.*\\$.*\""
+msgstr ""
+
+#: optiondialog.cpp:984
+msgid ""
+"A version control history entry consists of several lines.\n"
+"Specify the regular expression to detect the first line (without the leading "
+"comment).\n"
+"Use parentheses to group the keys you want to use for sorting.\n"
+"If left empty, then KDiff3 assumes that empty lines separate history "
+"entries.\n"
+"See the documentation for details."
+msgstr ""
+
+#: optiondialog.cpp:992
+msgid "History merge sorting"
+msgstr ""
+
+#: optiondialog.cpp:994
+msgid "Sort version control history by a key."
+msgstr ""
+
+#: optiondialog.cpp:1004
+msgid "History entry start sort key order:"
+msgstr ""
+
+#: optiondialog.cpp:1008
+msgid ""
+"Each pair of parentheses used in the regular expression for the history "
+"start entry\n"
+"groups a key that can be used for sorting.\n"
+"Specify the list of keys (that are numbered in order of occurrence\n"
+"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n"
+"If left empty, then no sorting will be done.\n"
+"See the documentation for details."
+msgstr ""
+
+#: optiondialog.cpp:1019
+msgid "Merge version control history on merge start"
+msgstr ""
+
+#: optiondialog.cpp:1021
+msgid "Run version control history automerge on merge start."
+msgstr ""
+
+#: optiondialog.cpp:1025
+#, fuzzy
+msgid "Max number of history entries:"
+msgstr "عدد المجلّدات الفرعية:"
+
+#: optiondialog.cpp:1028
+msgid "Cut off after specified number. Use -1 for infinite number of entries."
+msgstr ""
+
+#: optiondialog.cpp:1032
+msgid "Test your regular expressions"
+msgstr ""
+
+#: optiondialog.cpp:1037
+msgid "Irrelevant merge command:"
+msgstr ""
+
+#: optiondialog.cpp:1041
+msgid ""
+"If specified this script is run after automerge\n"
+"when no other relevant changes were detected.\n"
+"Called with the parameters: filename1 filename2 filename3"
+msgstr ""
+
+#: optiondialog.cpp:1047
+msgid "Auto save and quit on merge without conflicts"
+msgstr ""
+
+#: optiondialog.cpp:1050
+msgid ""
+"If KDiff3 was started for a file-merge from the command line and all\n"
+"conflicts are solvable without user interaction then automatically save and "
+"quit.\n"
+"(Similar to command line option \"--auto\".)"
+msgstr ""
+
+#: optiondialog.cpp:1061 optiondialog.cpp:1062
+#, fuzzy
+#| msgid "Reading Directory A"
+msgid "Directory"
+msgstr "قراءة الدليل A"
+
+#: optiondialog.cpp:1075
+msgid "Recursive directories"
+msgstr ""
+
+#: optiondialog.cpp:1077
+msgid "Whether to analyze subdirectories or not."
+msgstr ""
+
+#: optiondialog.cpp:1079
+msgid "File pattern(s):"
+msgstr ""
+
+#: optiondialog.cpp:1084
+msgid ""
+"Pattern(s) of files to be analyzed. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1090
+msgid "File-anti-pattern(s):"
+msgstr ""
+
+#: optiondialog.cpp:1095
+msgid ""
+"Pattern(s) of files to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1101
+msgid "Dir-anti-pattern(s):"
+msgstr ""
+
+#: optiondialog.cpp:1106
+msgid ""
+"Pattern(s) of directories to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1112
+msgid "Use .cvsignore"
+msgstr ""
+
+#: optiondialog.cpp:1115
+msgid ""
+"Extends the antipattern to anything that would be ignored by CVS.\n"
+"Via local \".cvsignore\" files this can be directory specific."
+msgstr ""
+
+#: optiondialog.cpp:1120
+msgid "Find hidden files and directories"
+msgstr ""
+
+#: optiondialog.cpp:1123
+msgid "Finds files and directories with the hidden attribute."
+msgstr ""
+
+#: optiondialog.cpp:1125
+msgid "Finds files and directories starting with '.'."
+msgstr ""
+
+#: optiondialog.cpp:1129
+msgid "Follow file links"
+msgstr ""
+
+#: optiondialog.cpp:1132
+msgid ""
+"On: Compare the file the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+
+#: optiondialog.cpp:1137
+msgid "Follow directory links"
+msgstr ""
+
+#: optiondialog.cpp:1140
+msgid ""
+"On: Compare the directory the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+
+#: optiondialog.cpp:1156
+msgid "Case sensitive filename comparison"
+msgstr ""
+
+#: optiondialog.cpp:1159
+msgid ""
+"The directory comparison will compare files or directories when their names "
+"match.\n"
+"Set this option if the case of the names must match. (Default for Windows is "
+"off, otherwise on.)"
+msgstr ""
+
+#: optiondialog.cpp:1163
+msgid "File Comparison Mode"
+msgstr ""
+
+#: optiondialog.cpp:1169
+msgid "Binary comparison"
+msgstr ""
+
+#: optiondialog.cpp:1170
+msgid "Binary comparison of each file. (Default)"
+msgstr ""
+
+#: optiondialog.cpp:1173
+msgid "Full analysis"
+msgstr ""
+
+#: optiondialog.cpp:1174
+msgid ""
+"Do a full analysis and show statistics information in extra columns.\n"
+"(Slower than a binary comparison, much slower for binary files.)"
+msgstr ""
+
+#: optiondialog.cpp:1178
+msgid "Trust the size and modification date (unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1179
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"Files with equal contents but different modification dates will appear as "
+"different.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+
+#: optiondialog.cpp:1184
+msgid ""
+"Trust the size and date, but use binary comparison if date does not match "
+"(unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1185
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"If the dates are not equal but the sizes are, use binary comparison.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+
+#: optiondialog.cpp:1190
+msgid "Trust the size (unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1191
+msgid ""
+"Assume that files are equal if their file lengths are equal.\n"
+"Useful for big directories or slow networks when the date is modified during "
+"download."
+msgstr ""
+
+#: optiondialog.cpp:1199
+msgid "Synchronize directories"
+msgstr ""
+
+#: optiondialog.cpp:1202
+msgid ""
+"Offers to store files in both directories so that\n"
+"both directories are the same afterwards.\n"
+"Works only when comparing two directories without specifying a destination."
+msgstr ""
+
+#: optiondialog.cpp:1208
+msgid "White space differences considered equal"
+msgstr ""
+
+#: optiondialog.cpp:1211
+msgid ""
+"If files differ only by white space consider them equal.\n"
+"This is only active when full analysis is chosen."
+msgstr ""
+
+#: optiondialog.cpp:1217
+msgid "Copy newer instead of merging (unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1220
+msgid ""
+"Don't look inside, just take the newer file.\n"
+"(Use this only if you know what you are doing!)\n"
+"Only effective when comparing two directories."
+msgstr ""
+
+#: optiondialog.cpp:1225
+msgid "Backup files (.orig)"
+msgstr ""
+
+#: optiondialog.cpp:1228
+msgid ""
+"If a file would be saved over an old file, then the old file\n"
+"will be renamed with a '.orig' extension instead of being deleted."
+msgstr ""
+
+#: optiondialog.cpp:1301 optiondialog.cpp:1302
+msgid "Regional Settings"
+msgstr ""
+
+#: optiondialog.cpp:1402
+msgid "Language (restart required)"
+msgstr ""
+
+#: optiondialog.cpp:1445
+msgid ""
+"Choose the language of the GUI strings or \"Auto\".\n"
+"For a change of language to take place, quit and restart KDiff3."
+msgstr ""
+
+#: optiondialog.cpp:1463
+msgid "Use the same encoding for everything:"
+msgstr ""
+
+#: optiondialog.cpp:1466
+msgid ""
+"Enable this allows to change all encodings by changing the first only.\n"
+"Disable this if different individual settings are needed."
+msgstr ""
+
+#: optiondialog.cpp:1471
+msgid "Note: Local Encoding is "
+msgstr ""
+
+#: optiondialog.cpp:1475
+msgid "File Encoding for A:"
+msgstr ""
+
+#: optiondialog.cpp:1481
+msgid ""
+"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n"
+"If the file is not Unicode then the selected encoding will be used as "
+"fallback.\n"
+"(Unicode detection depends on the first bytes of a file.)"
+msgstr ""
+
+#: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503
+msgid "Auto Detect Unicode"
+msgstr ""
+
+#: optiondialog.cpp:1490
+msgid "File Encoding for B:"
+msgstr ""
+
+#: optiondialog.cpp:1499
+msgid "File Encoding for C:"
+msgstr ""
+
+#: optiondialog.cpp:1508
+msgid "File Encoding for Merge Output and Saving:"
+msgstr ""
+
+#: optiondialog.cpp:1512
+msgid "Auto Select"
+msgstr ""
+
+#: optiondialog.cpp:1515
+msgid ""
+"If enabled then the encoding from the input files is used.\n"
+"In ambiguous cases a dialog will ask the user to choose the encoding for "
+"saving."
+msgstr ""
+
+#: optiondialog.cpp:1519
+msgid "File Encoding for Preprocessor Files:"
+msgstr ""
+
+#: optiondialog.cpp:1530
+msgid "Right To Left Language"
+msgstr ""
+
+#: optiondialog.cpp:1533
+msgid ""
+"Some languages are read from right to left.\n"
+"This setting will change the viewer and editor accordingly."
+msgstr ""
+
+#: optiondialog.cpp:1548
+msgid "Integration"
+msgstr ""
+
+#: optiondialog.cpp:1549
+msgid "Integration Settings"
+msgstr ""
+
+#: optiondialog.cpp:1563
+msgid "Command line options to ignore:"
+msgstr ""
+
+#: optiondialog.cpp:1568
+msgid ""
+"List of command line options that should be ignored when KDiff3 is used by "
+"other tools.\n"
+"Several values can be specified if separated via ';'\n"
+"This will suppress the \"Unknown option\" error."
+msgstr ""
+
+#: optiondialog.cpp:1575
+msgid "Quit also via Escape key"
+msgstr ""
+
+#: optiondialog.cpp:1578
+msgid ""
+"Fast method to exit.\n"
+"For those who are used to using the Escape key."
+msgstr ""
+
+#: optiondialog.cpp:1583
+msgid "Integrate with ClearCase"
+msgstr ""
+
+#: optiondialog.cpp:1586
+msgid ""
+"Integrate with Rational ClearCase from IBM.\n"
+"Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n"
+"(Only enabled when ClearCase \"bin\" directory is in the path.)"
+msgstr ""
+
+#: optiondialog.cpp:1592
+msgid "Remove ClearCase Integration"
+msgstr ""
+
+#: optiondialog.cpp:1595
+msgid ""
+"Restore the old \"map\" file from before doing the ClearCase integration."
+msgstr ""
+
+#: optiondialog.cpp:1680
+msgid "Incompatible Font"
+msgstr ""
+
+#: optiondialog.cpp:1681
+msgid "Continue at Own Risk"
+msgstr ""
+
+#: optiondialog.cpp:1682
+msgid "Select Another Font"
+msgstr ""
+
+#: optiondialog.cpp:1717
+msgid "This resets all options. Not only those of the current topic."
+msgstr ""
+
+#: pdiff.cpp:260
+msgid "PreprocessorCmd: "
+msgstr ""
+
+#: pdiff.cpp:265
+msgid "The following option(s) you selected might change data:\n"
+msgstr ""
+
+#: pdiff.cpp:266
+msgid ""
+"\n"
+"Most likely this is not wanted during a merge.\n"
+"Do you want to disable these settings or continue with these settings active?"
+msgstr ""
+
+#: pdiff.cpp:268
+msgid "Option Unsafe for Merging"
+msgstr ""
+
+#: pdiff.cpp:269
+msgid "Use These Options During Merge"
+msgstr ""
+
+#: pdiff.cpp:270
+msgid "Disable Unsafe Options"
+msgstr ""
+
+#: pdiff.cpp:300
+msgid "Loading A"
+msgstr ""
+
+#: pdiff.cpp:304
+msgid "Loading B"
+msgstr ""
+
+#: pdiff.cpp:321 pdiff.cpp:347
+msgid "Diff: A <-> B"
+msgstr ""
+
+#: pdiff.cpp:327 pdiff.cpp:372
+msgid "Linediff: A <-> B"
+msgstr ""
+
+#: pdiff.cpp:338
+msgid "Loading C"
+msgstr ""
+
+#: pdiff.cpp:350
+msgid "Diff: B <-> C"
+msgstr ""
+
+#: pdiff.cpp:353
+msgid "Diff: A <-> C"
+msgstr ""
+
+#: pdiff.cpp:375
+msgid "Linediff: B <-> C"
+msgstr ""
+
+#: pdiff.cpp:378
+msgid "Linediff: A <-> C"
+msgstr ""
+
+#: pdiff.cpp:534
+msgid "All input files contain the same text, but are not binary equal."
+msgstr ""
+
+#: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541
+#, kde-format
+msgid "Files %1 and %2 have equal text, but are not binary equal. \n"
+msgstr ""
+
+#: pdiff.cpp:551
+msgid ""
+"Some inputfiles don't seem to be pure textfiles.\n"
+"Note that the KDiff3-merge was not meant for binary data.\n"
+"Continue at your own risk."
+msgstr ""
+
+#: pdiff.cpp:566
+#, kde-format
+msgid ""
+"Some input characters could not be converted to valid unicode.\n"
+"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n"
+"Don't save the result if unsure. Continue at your own risk.\n"
+"Affected input files are in %1."
+msgstr ""
+
+#: pdiff.cpp:1080
+msgid "Abort"
+msgstr ""
+
+#: pdiff.cpp:1087 pdiff.cpp:1175
+msgid "Opening files..."
+msgstr ""
+
+#: pdiff.cpp:1152 pdiff.cpp:1223
+msgid "File open error"
+msgstr ""
+
+#: pdiff.cpp:1255
+msgid "Cutting selection..."
+msgstr ""
+
+#: pdiff.cpp:1276
+msgid "Copying selection to clipboard..."
+msgstr ""
+
+#: pdiff.cpp:1292
+msgid "Inserting clipboard contents..."
+msgstr ""
+
+#: pdiff.cpp:1814
+msgid "Save && Continue"
+msgstr ""
+
+#: pdiff.cpp:1815
+msgid "Continue Without Saving"
+msgstr ""
+
+#: pdiff.cpp:2018
+msgid "Search complete."
+msgstr ""
+
+#: pdiff.cpp:2018
+msgid "Search Complete"
+msgstr ""
+
+#: pdiff.cpp:2252
+msgid "Nothing is selected in either diff input window."
+msgstr ""
+
+#: pdiff.cpp:2252
+msgid "Error while adding manual diff range"
+msgstr ""
+
+#: kdiff3_shell.cpp:76
+msgid ""
+"Could not initialize the KDiff3 part.\n"
+"This usually happens due to an installation problem. Please read the README-"
+"file in the source package for details."
+msgstr ""
+
+#: rc.cpp:1
+msgctxt "NAME OF TRANSLATORS"
+msgid "Your names"
+msgstr ""
+
+#: rc.cpp:2
+msgctxt "EMAIL OF TRANSLATORS"
+msgid "Your emails"
+msgstr ""
+
+#. i18n: file: kdiff3_part.rc:4
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:5
+msgid "&KDiff3"
+msgstr ""
+
+#. i18n: file: kdiff3_part.rc:13
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:8
+msgid "Configure KDiff3"
+msgstr ""
+
+#. i18n: file: kdiff3_part.rc:16
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:11
+msgid "KDiff3"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:106
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:38
+msgid "Main Toolbar"
+msgstr ""
+
+#~ msgid "C&ontinue"
+#~ msgstr "&تابع"
+
+#~ msgid ""
+#~ "_: NAME OF TRANSLATORS\n"
+#~ "Your names"
+#~ msgstr "Mohamed SAAD محمد سعد"
+
+#~ msgid ""
+#~ "_: EMAIL OF TRANSLATORS\n"
+#~ "Your emails"
+#~ msgstr "metehyi@free.fr"
diff --git a/po/bg/CMakeLists.txt b/po/bg/CMakeLists.txt
new file mode 100644 (file)
index 0000000..21e4c14
--- /dev/null
@@ -0,0 +1,2 @@
+file(GLOB _po_files *.po)
+GETTEXT_PROCESS_PO_FILES(bg ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
diff --git a/po/bg/kdiff3.po b/po/bg/kdiff3.po
new file mode 100644 (file)
index 0000000..c87a2d9
--- /dev/null
@@ -0,0 +1,3206 @@
+# translation of kdiff3.po to Bulgarian
+#
+# Zlatko Popov <zlatkopopov@fsa-bg.org>, 2006, 2007, 2008.
+# Yasen Pramatarov <yasen@lindeas.com>, 2009, 2010, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-07-13 17:47+0300\n"
+"Last-Translator: Yasen Pramatarov <yasen@lindeas.com>\n"
+"Language-Team: Bulgarian <dict@fsa-bg.org>\n"
+"Language: bg\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.2\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: kreplacements/kreplacements.h:105
+msgid "Continue"
+msgstr "Продължаване"
+
+#: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158
+#: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512
+msgid "Cancel"
+msgstr "Отказ"
+
+#: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631
+msgid "Quit"
+msgstr "Изход"
+
+#: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339
+msgid "Ok"
+msgstr "ОК"
+
+#: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715
+msgid "Help"
+msgstr "Помощ"
+
+#: kreplacements/kreplacements.cpp:185
+msgid "Defaults"
+msgstr "По подразбиране"
+
+#. i18n: file: kdiff3_shell.rc:4
+#. i18n: ectx: Menu (file)
+#: kreplacements/kreplacements.cpp:296 rc.cpp:14
+msgid "&File"
+msgstr "&Файл"
+
+#: kreplacements/kreplacements.cpp:297
+msgid "&Edit"
+msgstr "&Редактиране"
+
+#. i18n: file: kdiff3_shell.rc:7
+#. i18n: ectx: Menu (directory)
+#: kreplacements/kreplacements.cpp:298 rc.cpp:17
+msgid "&Directory"
+msgstr "&Директория"
+
+#. i18n: file: kdiff3_shell.rc:50
+#. i18n: ectx: Menu (movement)
+#: kreplacements/kreplacements.cpp:301 rc.cpp:26
+msgid "&Movement"
+msgstr "&Движение"
+
+#. i18n: file: kdiff3_shell.rc:61
+#. i18n: ectx: Menu (diff)
+#: kreplacements/kreplacements.cpp:302 rc.cpp:29
+msgid "D&iffview"
+msgstr "Изглед на раз&делител"
+
+#. i18n: file: kdiff3_shell.rc:73
+#. i18n: ectx: Menu (merge)
+#: kreplacements/kreplacements.cpp:303 rc.cpp:32
+msgid "&Merge"
+msgstr "&Сливане"
+
+#. i18n: file: kdiff3_shell.rc:95
+#. i18n: ectx: Menu (window)
+#: kreplacements/kreplacements.cpp:304 rc.cpp:35
+msgid "&Window"
+msgstr "&Прозорец"
+
+#: kreplacements/kreplacements.cpp:305
+msgid "&Settings"
+msgstr "&Настройки"
+
+#: kreplacements/kreplacements.cpp:306
+msgid "&Help"
+msgstr "&Помощ"
+
+#: kreplacements/kreplacements.cpp:353
+msgid "&About"
+msgstr "Пре&късване"
+
+#: kreplacements/kreplacements.cpp:369
+msgid "A&uthor"
+msgstr "А&втор"
+
+#: kreplacements/kreplacements.cpp:383
+msgid "&Thanks To"
+msgstr "&Благодарение на"
+
+#. i18n: file: kdiff3_shell.rc:30
+#. i18n: ectx: Menu (dir_current_merge_menu)
+#: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497
+#: rc.cpp:20
+msgid "Current Item Merge Operation"
+msgstr "Операция по сливане на текущия елемент"
+
+#. i18n: file: kdiff3_shell.rc:38
+#. i18n: ectx: Menu (dir_current_sync_menu)
+#: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498
+#: rc.cpp:23
+msgid "Current Item Sync Operation"
+msgstr "Операция по синхронизация на текущия елемент"
+
+#: kreplacements/kreplacements.cpp:597
+msgid "Open"
+msgstr "Отваряне"
+
+#: kreplacements/kreplacements.cpp:606
+msgid "Save"
+msgstr "Запазване"
+
+#: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720
+msgid "Save As..."
+msgstr "Запис като..."
+
+#: kreplacements/kreplacements.cpp:623
+msgid "Print..."
+msgstr "Отпечатване..."
+
+#: kreplacements/kreplacements.cpp:639
+msgid "Cut"
+msgstr "Изрязване"
+
+#: kreplacements/kreplacements.cpp:647
+msgid "Copy"
+msgstr "Копиране"
+
+#: kreplacements/kreplacements.cpp:655
+msgid "Paste"
+msgstr "Поставяне"
+
+#: kreplacements/kreplacements.cpp:663
+msgid "Select All"
+msgstr "Избиране на всичко"
+
+#: kreplacements/kreplacements.cpp:671
+msgid "Show Toolbar"
+msgstr "Показване на инструментите"
+
+#: kreplacements/kreplacements.cpp:679
+msgid "Show &Status Bar"
+msgstr "Показване на лентата за &състояние"
+
+#: kreplacements/kreplacements.cpp:687
+#, kde-format
+msgid "&Configure %1..."
+msgstr "&Настройване на %1..."
+
+#: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707
+msgid "About"
+msgstr "Относно"
+
+#: kreplacements/kreplacements.cpp:722
+msgid "Find"
+msgstr "Търсене"
+
+#: kreplacements/kreplacements.cpp:730
+msgid "Find Next"
+msgstr "Търсене на следващо"
+
+#: kreplacements/kreplacements.cpp:750
+msgid "Select Font"
+msgstr "Избор на шрифт"
+
+#: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676
+msgid ""
+"You selected a variable width font.\n"
+"\n"
+"Because this program doesn't handle variable width fonts\n"
+"correctly, you might experience problems while editing.\n"
+"\n"
+"Do you want to continue or do you want to select another font."
+msgstr ""
+"Избрали сте шрифт с променлива дължина.\n"
+"\n"
+"Тъй като тази програма не може да обработва такива шрифтове\n"
+"правилно, може да имате проблеми по време на редактиране.\n"
+"\n"
+"Искате ли да продължите или ще изберете друг шрифт?"
+
+#: kreplacements/kreplacements.cpp:792
+msgid "Incompatible font."
+msgstr "Несъвместим шрифт."
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Continue at my own risk"
+msgstr "Продължете на собствена отговорност."
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Select another font"
+msgstr "Изберете друг шрифт"
+
+#: kreplacements/kreplacements.cpp:1134
+msgid "For more documentation, see the help-menu or the subdirectory doc."
+msgstr ""
+"За повече документация вижте менюто за помощ или поддиректорията \"doc\"."
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "KDiff3-Usage"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Ignore"
+msgstr "Пренебрегване"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Exit"
+msgstr "Изход"
+
+#: diff.cpp:251
+msgid "Writing clipboard data to temp file failed."
+msgstr "Грешка при запис на системния буфер във временен файл."
+
+#: diff.cpp:255
+msgid "From Clipboard"
+msgstr "От системния буфер"
+
+#: diff.cpp:471
+msgid "Expecting space after closing quotation mark."
+msgstr "Очаква се интервал след затварящи кавички."
+
+#: diff.cpp:474
+msgid "Not matching quotation marks."
+msgstr "Несъвпадащи кавички."
+
+#: diff.cpp:496
+msgid "Unexpected quotation mark within argument."
+msgstr "Неочаквани кавички в аргумент"
+
+#: diff.cpp:503
+msgid "No program specified."
+msgstr "Не е указана програма."
+
+#: diff.cpp:605
+#, kde-format
+msgid ""
+"Preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The preprocessing command will be disabled now."
+msgstr ""
+"Възможно е предварителната обработка да е неуспешна. Проверете тази "
+"команда:\n"
+"\n"
+"  %1\n"
+"\n"
+"Командата за предварителна обработка ще бъде неактивна."
+
+#: diff.cpp:653
+#, kde-format
+msgid ""
+"The line-matching-preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The line-matching-preprocessing command will be disabled now."
+msgstr ""
+"Възможно е предварителната обработка за сравняване на редове да е неуспешна. "
+"Проверете тази команда:\n"
+"\n"
+"  %1\n"
+"\n"
+"Командата за предварителна обработка за сравняване на редове ще бъде "
+"неактивна."
+
+#: diff.cpp:1776 diff.cpp:1790
+msgid ""
+"Data loss error:\n"
+"If it is reproducible please contact the author.\n"
+msgstr ""
+"Грешка от загуба на данни:\n"
+"Ако продължава, моля, свържете се с автора.\n"
+
+#: diff.cpp:1778 diff.cpp:1792
+msgid "Severe Internal Error"
+msgstr "Сериозна вътрешна грешка"
+
+#: directorymergewindow.cpp:136
+msgid "Mix of links and normal files."
+msgstr "Комбинация от препратки и нормални файлове."
+
+#: directorymergewindow.cpp:143
+msgid "Link: "
+msgstr "Препратка: "
+
+#: directorymergewindow.cpp:151
+msgid "Size. "
+msgstr "Размер. "
+
+#: directorymergewindow.cpp:164 directorymergewindow.cpp:174
+msgid "Date & Size: "
+msgstr "Дата и размер: "
+
+#: directorymergewindow.cpp:184 directorymergewindow.cpp:190
+#, kde-format
+msgid "Creating temp copy of %1 failed."
+msgstr "Създаването на временно копие на %1 беше неуспешно."
+
+#: directorymergewindow.cpp:201 directorymergewindow.cpp:209
+#, kde-format
+msgid "Opening %1 failed."
+msgstr "Отварянето на %1 беше неуспешно."
+
+#: directorymergewindow.cpp:213
+msgid "Comparing file..."
+msgstr "Сравняване на файл..."
+
+#: directorymergewindow.cpp:223 directorymergewindow.cpp:229
+#, kde-format
+msgid "Error reading from %1"
+msgstr "Грешка по време на четене от %1"
+
+#: directorymergewindow.cpp:358
+msgid "Name"
+msgstr "Име"
+
+#: directorymergewindow.cpp:358
+msgid "Operation"
+msgstr "Действие"
+
+#: directorymergewindow.cpp:358
+msgid "Status"
+msgstr "Състояние"
+
+#: directorymergewindow.cpp:359
+msgid "Unsolved"
+msgstr "Нерешен"
+
+#: directorymergewindow.cpp:359
+msgid "Solved"
+msgstr "Решен"
+
+#: directorymergewindow.cpp:359
+msgid "Nonwhite"
+msgstr "Запълнено"
+
+#: directorymergewindow.cpp:359
+msgid "White"
+msgstr "Празно"
+
+#: directorymergewindow.cpp:388
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort "
+"the merge and rescan the directory?"
+msgstr ""
+"В момента извършвате сливане на директория. Сигурни ли сте, че искате да "
+"прекъснете сливането и да сканирате отново директорията?"
+
+#: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655
+#: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823
+msgid "Warning"
+msgstr "Предупреждение"
+
+#: directorymergewindow.cpp:390 directorymergewindow.cpp:2965
+msgid "Rescan"
+msgstr "Ново сканиране"
+
+#: directorymergewindow.cpp:391 pdiff.cpp:1081
+msgid "Continue Merging"
+msgstr "Продължение на сливането"
+
+#: directorymergewindow.cpp:548
+msgid "Opening of directories failed:"
+msgstr "Отварянето на директориите беше неуспешно:"
+
+#: directorymergewindow.cpp:551
+#, kde-format
+msgid "Dir A \"%1\" does not exist or is not a directory.\n"
+msgstr "Директория А \"%1\" не съществува или не е директория.\n"
+
+#: directorymergewindow.cpp:554
+#, kde-format
+msgid "Dir B \"%1\" does not exist or is not a directory.\n"
+msgstr "Директория Б \"%1\" не съществува или не е директория.\n"
+
+#: directorymergewindow.cpp:557
+#, kde-format
+msgid "Dir C \"%1\" does not exist or is not a directory.\n"
+msgstr "Директория В \"%1\" не съществува или не е директория.\n"
+
+#: directorymergewindow.cpp:559
+msgid "Directory Open Error"
+msgstr "Грешка при отваряне на директория"
+
+#: directorymergewindow.cpp:567
+msgid ""
+"The destination directory must not be the same as A or B when three "
+"directories are merged.\n"
+"Check again before continuing."
+msgstr ""
+"Когато се сливат три директории, отправната директория не трябва да бъде "
+"същата като А или Б.\n"
+"Проверете отново преди да продължите."
+
+#: directorymergewindow.cpp:569
+msgid "Parameter Warning"
+msgstr "Предупреждение за параметър"
+
+#: directorymergewindow.cpp:574
+msgid "Scanning directories..."
+msgstr "Сканиране на директориите..."
+
+#: directorymergewindow.cpp:607
+msgid "Reading Directory A"
+msgstr "Четене на директория А"
+
+#: directorymergewindow.cpp:629
+msgid "Reading Directory B"
+msgstr "Четене на директория Б"
+
+#: directorymergewindow.cpp:651
+msgid "Reading Directory C"
+msgstr "Четене на директория В"
+
+#: directorymergewindow.cpp:677
+msgid "Some subdirectories were not readable in"
+msgstr "Някои от поддиректориите са нечетими"
+
+#: directorymergewindow.cpp:682
+msgid "Check the permissions of the subdirectories."
+msgstr "Проверете правата на поддиректориите."
+
+#: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737
+#: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233
+#: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328
+msgid "Ready."
+msgstr "В готовност."
+
+#: directorymergewindow.cpp:735
+msgid "Directory Comparison Status"
+msgstr "Статус на сравняването на директории"
+
+#: directorymergewindow.cpp:736
+msgid "Number of subdirectories:"
+msgstr "Бройка на поддиректориите:"
+
+#: directorymergewindow.cpp:737
+msgid "Number of equal files:"
+msgstr "Бройка на еднаквите файлове:"
+
+#: directorymergewindow.cpp:738
+msgid "Number of different files:"
+msgstr "Бройка на различните файлове:"
+
+#: directorymergewindow.cpp:741
+msgid "Number of manual merges:"
+msgstr "Бройка на ръчните сливания:"
+
+#: directorymergewindow.cpp:912
+msgid "This affects all merge operations."
+msgstr "Това засяга всички операции по сливане."
+
+#: directorymergewindow.cpp:913
+msgid "Changing All Merge Operations"
+msgstr "Промяна на всички операции по сливане"
+
+#: directorymergewindow.cpp:1312
+msgid "Processing "
+msgstr "Обработка "
+
+#: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742
+msgid "To do."
+msgstr "Задача."
+
+#: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996
+msgid "Copy A to B"
+msgstr "Копиране на А в Б"
+
+#: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997
+msgid "Copy B to A"
+msgstr "Копиране на Б в А"
+
+#: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998
+msgid "Delete A"
+msgstr "Изтриване на А"
+
+#: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999
+msgid "Delete B"
+msgstr "Изтриване на Б"
+
+#: directorymergewindow.cpp:1814
+msgid "Delete A & B"
+msgstr "Изтриване на А и Б"
+
+#: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001
+msgid "Merge to A"
+msgstr "Сливане с А"
+
+#: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002
+msgid "Merge to B"
+msgstr "Сливане с Б"
+
+#: directorymergewindow.cpp:1817
+msgid "Merge to A & B"
+msgstr "Сливане с А и Б"
+
+#: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993
+msgid "Delete (if exists)"
+msgstr "Изтриване (ако съществува)"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+#: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869
+msgid "Merge"
+msgstr "Сливане"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+msgid "Merge (manual)"
+msgstr "Сливане (ръчно)"
+
+#: directorymergewindow.cpp:1824
+msgid "Error: Conflicting File Types"
+msgstr "Грешка: Конфликт в типовете на файлове"
+
+#: directorymergewindow.cpp:1825
+msgid "Error: Changed and Deleted"
+msgstr "Грешка: Променено и изтрито"
+
+#: directorymergewindow.cpp:1826
+msgid "Error: Dates are equal but files are not."
+msgstr "Грешка: Датите са еднакви, но файловете не са."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906
+msgid "This operation is currently not possible."
+msgstr "Това действие в момента не е възможно."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174
+msgid "Operation Not Possible"
+msgstr "Действието не е възможно"
+
+#: directorymergewindow.cpp:1945
+msgid ""
+"This should never happen: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"If you know how to reproduce this, please contact the program author."
+msgstr ""
+"Това не би трябвало да се случва: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"Ако знаете как да го направите отново, моля, свържете се с автора на "
+"програмата."
+
+#: directorymergewindow.cpp:1945
+msgid "Program Error"
+msgstr "Програмна грешка"
+
+#: directorymergewindow.cpp:1956
+msgid "An error occurred while copying.\n"
+msgstr "Възникна грешка по време на копирането.\n"
+
+#: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025
+#: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105
+#: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123
+#: directorymergewindow.cpp:2374
+msgid "Error"
+msgstr "Грешка"
+
+#: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375
+msgid "Merge Error"
+msgstr "Грешка при сливане"
+
+#: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380
+msgid "Error."
+msgstr "Грешка."
+
+#: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272
+#: directorymergewindow.cpp:2312
+msgid "Done."
+msgstr "Изпълнено."
+
+#: directorymergewindow.cpp:1990
+msgid "Not saved."
+msgstr "Не е записан."
+
+#: directorymergewindow.cpp:2025
+msgid "Unknown merge operation. (This must never happen!)"
+msgstr "Непозната операция за сливане. (Това не трябва да се случва никога!)"
+
+#: directorymergewindow.cpp:2057
+msgid "Unknown merge operation."
+msgstr "Непозната операция за сливане."
+
+#: directorymergewindow.cpp:2072
+msgid ""
+"The merge is about to begin.\n"
+"\n"
+"Choose \"Do it\" if you have read the instructions and know what you are "
+"doing.\n"
+"Choosing \"Simulate it\" will tell you what would happen.\n"
+"\n"
+"Be aware that this program still has beta status and there is NO WARRANTY "
+"whatsoever! Make backups of your vital data!"
+msgstr ""
+"Сливането ще започне всеки момент.\n"
+"\n"
+"Изберете \"Изпълнение\" ако сте прочел инструкциите и знаете какво правите.\n"
+"Изберете \"Симулация\" и ще разберете какво би се случило.\n"
+"\n"
+"Имайте предвид, че тази програма е все още бета версия и изобщо НЯМА "
+"ГАРАНЦИЯ! Правете резервни копия на важната информация!"
+
+#: directorymergewindow.cpp:2077
+msgid "Starting Merge"
+msgstr "Стартиране на сливането"
+
+#: directorymergewindow.cpp:2078
+msgid "Do It"
+msgstr "Изпълнение"
+
+#: directorymergewindow.cpp:2079
+msgid "Simulate It"
+msgstr "Симулация"
+
+#: directorymergewindow.cpp:2105
+msgid ""
+"The highlighted item has a different type in the different directories. "
+"Select what to do."
+msgstr ""
+"Осветеният елемент има различни типове в различните директории. Изберете "
+"какво да се направи."
+
+#: directorymergewindow.cpp:2114
+msgid ""
+"The modification dates of the file are equal but the files are not. Select "
+"what to do."
+msgstr ""
+"Датите на последна промяна на файловете са еднакви, но файловете не са. "
+"Изберете какво да се направи."
+
+#: directorymergewindow.cpp:2123
+msgid ""
+"The highlighted item was changed in one directory and deleted in the other. "
+"Select what to do."
+msgstr ""
+"Осветеният елемент е променен в една директория и е изтрит в друга. Изберете "
+"какво да се направи."
+
+#: directorymergewindow.cpp:2174
+msgid ""
+"This operation is currently not possible because directory merge is "
+"currently running."
+msgstr ""
+"В момента действието е невъзможно, тъй като тече процес на сливане на "
+"директории."
+
+#: directorymergewindow.cpp:2234
+msgid ""
+"There was an error in the last step.\n"
+"Do you want to continue with the item that caused the error or do you want "
+"to skip this item?"
+msgstr ""
+"Възникнала е грешка в последната стъпка.\n"
+"Искате ли да продължите с елемента, който е причинил тази грешка или ще го "
+"прескочите?"
+
+#: directorymergewindow.cpp:2236
+msgid "Continue merge after an error"
+msgstr "Продължаване на сливането след грешката"
+
+#: directorymergewindow.cpp:2237
+msgid "Continue With Last Item"
+msgstr "Продължаване с последния елемент"
+
+#: directorymergewindow.cpp:2238
+msgid "Skip Item"
+msgstr "Прескачане на елемент"
+
+#: directorymergewindow.cpp:2272
+msgid "Skipped."
+msgstr "Прескочен."
+
+#: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493
+msgid "In progress..."
+msgstr "Изпълнява се..."
+
+#: directorymergewindow.cpp:2327
+msgid "Merge operation complete."
+msgstr "Операцията по сливане завърши."
+
+#: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330
+msgid "Merge Complete"
+msgstr "Сливането завърши"
+
+#: directorymergewindow.cpp:2340
+msgid ""
+"Simulated merge complete: Check if you agree with the proposed operations."
+msgstr ""
+"Симулацията на сливане завърши: Проверете дали сте съгласни с предложените "
+"действия."
+
+#: directorymergewindow.cpp:2374
+msgid "An error occurred. Press OK to see detailed information.\n"
+msgstr ""
+"Възникнала е грешка. Натиснете \"ОК\", за да видите подробна информация.\n"
+
+#: directorymergewindow.cpp:2406
+#, kde-format
+msgid "Error: While deleting %1: Creating backup failed."
+msgstr ""
+"Грешка: По време на изтриването на %1: Създаването на резервно копие беше "
+"неуспешно."
+
+#: directorymergewindow.cpp:2413
+#, kde-format
+msgid "delete directory recursively( %1 )"
+msgstr "рекурсивно изтриване на директория( %1 )"
+
+#: directorymergewindow.cpp:2415
+#, kde-format
+msgid "delete( %1 )"
+msgstr "изтриване( %1 )"
+
+#: directorymergewindow.cpp:2430
+msgid "Error: delete dir operation failed while trying to read the directory."
+msgstr ""
+"Грешка: операцията по изтриване беше неуспешна при опит за четене на "
+"директорията."
+
+#: directorymergewindow.cpp:2449
+#, kde-format
+msgid "Error: rmdir( %1 ) operation failed."
+msgstr "Грешка: операцията по изтриване на директория( %1 ) беше неуспешна."
+
+#: directorymergewindow.cpp:2459
+msgid "Error: delete operation failed."
+msgstr "Грешка: операцията по изтриване беше неуспешна."
+
+#: directorymergewindow.cpp:2485
+#, kde-format
+msgid "manual merge( %1, %2, %3 -> %4)"
+msgstr "ръчно сливане( %1, %2, %3 -> %4)"
+
+#: directorymergewindow.cpp:2488
+msgid ""
+"     Note: After a manual merge the user should continue by pressing F7."
+msgstr ""
+"     Забележка: След ръчно сливане, потребителят трябва да натисне клавиш "
+"F7, за да продължи."
+
+#: directorymergewindow.cpp:2513
+#, kde-format
+msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed."
+msgstr ""
+"Грешка: копирането на ( %1 -> %2 ) беше неуспешно. Изтриването на "
+"съществуващото местоназначение е неуспешно."
+
+#: directorymergewindow.cpp:2522
+#, kde-format
+msgid "copyLink( %1 -> %2 )"
+msgstr "копиране на препратка( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2533
+msgid "Error: copyLink failed: Remote links are not yet supported."
+msgstr ""
+"Грешка: копирането на препратка беше неуспешно: Отдалечени препратки не се "
+"поддържат."
+
+#: directorymergewindow.cpp:2539
+msgid "Error: copyLink failed."
+msgstr "Грешка: копирането на препратка беше неуспешно."
+
+#: directorymergewindow.cpp:2564
+#, kde-format
+msgid "copy( %1 -> %2 )"
+msgstr "копиране( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2590
+#, kde-format
+msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination."
+msgstr ""
+"Грешка по време на преименуване( %1 -> %2 ): Изтриването на съществуващото "
+"местоназначение беше неуспешно."
+
+#: directorymergewindow.cpp:2596
+#, kde-format
+msgid "rename( %1 -> %2 )"
+msgstr "преименуване( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2605
+msgid "Error: Rename failed."
+msgstr "Грешка: Преименуването беше неуспешно."
+
+#: directorymergewindow.cpp:2623
+#, kde-format
+msgid "Error during makeDir of %1. Cannot delete existing file."
+msgstr ""
+"Грешка по време на създаване на директория %1. Не може да се изтрие "
+"съществуващ файл."
+
+#: directorymergewindow.cpp:2639
+#, kde-format
+msgid "makeDir( %1 )"
+msgstr "създаване на директория( %1 )"
+
+#: directorymergewindow.cpp:2649
+msgid "Error while creating directory."
+msgstr "Грешка по време на създаване на директория."
+
+#: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784
+msgid "Dest"
+msgstr "Местоназначение"
+
+#: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709
+msgid "Dir"
+msgstr "Директория"
+
+#: directorymergewindow.cpp:2678
+msgid "Type"
+msgstr "Вид"
+
+#: directorymergewindow.cpp:2678
+msgid "Size"
+msgstr "Размер"
+
+#: directorymergewindow.cpp:2679
+msgid "Attr"
+msgstr "Атрибути"
+
+#: directorymergewindow.cpp:2679
+msgid "Last Modification"
+msgstr "Последна промяна"
+
+#: directorymergewindow.cpp:2679
+msgid "Link-Destination"
+msgstr "Местоназначение на препратката"
+
+#: directorymergewindow.cpp:2709 difftextwindow.cpp:401
+msgid "File"
+msgstr "Файл"
+
+#: directorymergewindow.cpp:2726
+msgid "not available"
+msgstr "не е наличен"
+
+#: directorymergewindow.cpp:2746
+msgid "A (Dest): "
+msgstr "А (местоназначение): "
+
+#: directorymergewindow.cpp:2749
+msgid "A (Base): "
+msgstr "А (основно): "
+
+#: directorymergewindow.cpp:2755
+msgid "B (Dest): "
+msgstr "Б (местоназначение): "
+
+#: directorymergewindow.cpp:2763
+msgid "C (Dest): "
+msgstr "В (местоназначение): "
+
+#: directorymergewindow.cpp:2769
+msgid "Dest: "
+msgstr "Местоназначение: "
+
+#: directorymergewindow.cpp:2836
+msgid "Save Directory Merge State As..."
+msgstr "Запис състоянието при сливане като..."
+
+#: directorymergewindow.cpp:2959
+msgid "Start/Continue Directory Merge"
+msgstr "Стартиране/Продължение на сливането на директория"
+
+#: directorymergewindow.cpp:2960
+msgid "Run Operation for Current Item"
+msgstr "Стартиране на операцията за текущия елемент"
+
+#: directorymergewindow.cpp:2961
+msgid "Compare Selected File"
+msgstr "Сравняване на маркираните файлове"
+
+#: directorymergewindow.cpp:2962
+msgid "Merge Current File"
+msgstr "Сливане на текущия файл"
+
+#: directorymergewindow.cpp:2962
+msgid ""
+"Merge\n"
+"File"
+msgstr ""
+"Сливане\n"
+"на файл"
+
+#: directorymergewindow.cpp:2963
+msgid "Fold All Subdirs"
+msgstr "Скриване на всички поддиректории"
+
+#: directorymergewindow.cpp:2964
+msgid "Unfold All Subdirs"
+msgstr "Показване на всички поддиректории"
+
+#: directorymergewindow.cpp:2968
+msgid "Choose A for All Items"
+msgstr "Изберете А за всички елементи"
+
+#: directorymergewindow.cpp:2969
+msgid "Choose B for All Items"
+msgstr "Изберете Б за всички елементи"
+
+#: directorymergewindow.cpp:2970
+msgid "Choose C for All Items"
+msgstr "Изберете В за всички елементи"
+
+#: directorymergewindow.cpp:2971
+msgid "Auto-Choose Operation for All Items"
+msgstr "Автоматично избиране на операция за всички елементи"
+
+#: directorymergewindow.cpp:2972
+msgid "No Operation for All Items"
+msgstr "Без операция за всички елементи"
+
+#: directorymergewindow.cpp:2977
+msgid "Show Identical Files"
+msgstr "Показване на идентични файлове"
+
+#: directorymergewindow.cpp:2977
+msgid ""
+"Identical\n"
+"Files"
+msgstr ""
+"Идентични\n"
+"файлове"
+
+#: directorymergewindow.cpp:2978
+msgid "Show Different Files"
+msgstr "Показване на различните файлове"
+
+#: directorymergewindow.cpp:2979
+msgid "Show Files only in A"
+msgstr "Показване на файлове само в A"
+
+#: directorymergewindow.cpp:2979
+msgid ""
+"Files\n"
+"only in A"
+msgstr ""
+"Файлове\n"
+"само в A"
+
+#: directorymergewindow.cpp:2980
+msgid "Show Files only in B"
+msgstr "Показване на файлове само в B"
+
+#: directorymergewindow.cpp:2980
+msgid ""
+"Files\n"
+"only in B"
+msgstr ""
+"Файлове\n"
+"само в B"
+
+#: directorymergewindow.cpp:2981
+msgid "Show Files only in C"
+msgstr "Показване на файлове само в C"
+
+#: directorymergewindow.cpp:2981
+msgid ""
+"Files\n"
+"only in C"
+msgstr ""
+"Файлове\n"
+"само в C"
+
+#: directorymergewindow.cpp:2985
+msgid "Compare Explicitly Selected Files"
+msgstr "Сравняване на маркираните файлове"
+
+#: directorymergewindow.cpp:2986
+msgid "Merge Explicitly Selected Files"
+msgstr "Сливане на маркираните файлове"
+
+#: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995
+msgid "Do Nothing"
+msgstr "Да не се прави нищо"
+
+#: directorymergewindow.cpp:2989
+msgid "A"
+msgstr "А"
+
+#: directorymergewindow.cpp:2990
+msgid "B"
+msgstr "Б"
+
+#: directorymergewindow.cpp:2991
+msgid "C"
+msgstr "В"
+
+#: directorymergewindow.cpp:3000
+msgid "Delete A && B"
+msgstr "Изтриване на А и Б"
+
+#: directorymergewindow.cpp:3003
+msgid "Merge to A && B"
+msgstr "Сливане в А и Б"
+
+#: main.cpp:74 main.cpp:76
+msgid "Ignored. (User defined.)"
+msgstr "Пренебрегнато. (Задава се от потребителя.)"
+
+#: main.cpp:162
+msgid "kdiff3"
+msgstr "kdiff3"
+
+#: main.cpp:164
+msgid "Tool for Comparison and Merge of Files and Directories"
+msgstr "Инструмент за сравняване и сливане на файлове и директории"
+
+#: main.cpp:165
+msgid "(c) 2002-2011 Joachim Eibl"
+msgstr "(c) 2002-2011 Joachim Eibl"
+
+#: main.cpp:172 kdiff3_part.cpp:303
+msgid "Joachim Eibl"
+msgstr "Joachim Eibl"
+
+#: main.cpp:173
+msgid "Eike Sauer"
+msgstr "Eike Sauer"
+
+#: main.cpp:173
+msgid "Bugfixes, Debian package maintainer"
+msgstr "Поправки и поддръжка на пакета за Debian"
+
+#: main.cpp:174
+msgid "Sebastien Fricker"
+msgstr "Sebastien Fricker"
+
+#: main.cpp:174
+msgid "Windows installer"
+msgstr "Инсталатор за Windows"
+
+#: main.cpp:175
+msgid "Stephan Binner"
+msgstr "Stephan Binner"
+
+#: main.cpp:175
+msgid "i18n-help"
+msgstr "Помощ за преводите"
+
+#: main.cpp:176
+msgid "Stefan Partheymueller"
+msgstr "Stefan Partheymueller"
+
+#: main.cpp:176
+msgid "Clipboard-patch"
+msgstr "Кръпка за системния буфер"
+
+#: main.cpp:177
+msgid "David Faure"
+msgstr "David Faure"
+
+#: main.cpp:177
+msgid "KIO-Help"
+msgstr "Помощ за KIO"
+
+#: main.cpp:178
+msgid "Bernd Gehrmann"
+msgstr "Bernd Gehrmann"
+
+#: main.cpp:178
+msgid "Class CvsIgnoreList from Cervisia"
+msgstr "Клас CvsIgnoreList от Cervisia"
+
+#: main.cpp:179
+msgid "Andre Woebbeking"
+msgstr "Andre Woebbeking"
+
+#: main.cpp:179
+msgid "Class StringMatcher"
+msgstr "Клас StringMatcher"
+
+#: main.cpp:180
+msgid "Michael Denio"
+msgstr "Michael Denio"
+
+#: main.cpp:180
+msgid "Directory Equality-Coloring patch"
+msgstr "Кръпка за сравняване на директории"
+
+#: main.cpp:181
+msgid "Manfred Koehler"
+msgstr "Manfred Koehler"
+
+#: main.cpp:181
+msgid "Fix for slow startup on Windows"
+msgstr "Поправка за бавното зареждане под Windows"
+
+#: main.cpp:182
+msgid "Sergey Zorin"
+msgstr "Sergey Zorin"
+
+#: main.cpp:182
+msgid "Diff Ext for Windows"
+msgstr "Diff Ext за Windows"
+
+#: main.cpp:183
+msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+
+#: main.cpp:183
+msgid "GNU-Diffutils"
+msgstr "GNU-Diffutils"
+
+#: main.cpp:184
+msgid "Tino Boellsterling, Timothy Mee"
+msgstr "Tino Boellsterling, Timothy Mee"
+
+#: main.cpp:184
+msgid "Intensive test, use and feedback"
+msgstr "Изпробване, употреба и обратна връзка"
+
+#: main.cpp:185
+msgid "Michael Schmidt"
+msgstr "Michael Schmidt"
+
+#: main.cpp:185
+msgid "Mac support"
+msgstr "Поддръжка на Mac"
+
+#: main.cpp:186
+msgid "Valentin Rusu"
+msgstr "Valentin Rusu"
+
+#: main.cpp:186 main.cpp:187
+msgid "KDE4 porting"
+msgstr "Версия за KDE4"
+
+#: main.cpp:187
+msgid "Albert Astals Cid"
+msgstr "Albert Astals Cid"
+
+#: main.cpp:188
+msgid "Silvan Scherrer"
+msgstr "Silvan Scherrer"
+
+#: main.cpp:188
+msgid "OS2 port"
+msgstr "Версия за OS2"
+
+#: main.cpp:190
+msgid "+ Many thanks to those who reported bugs and contributed ideas!"
+msgstr ""
+"+ Много благодарности за тези, които се обадиха за грешките и имаха нови "
+"идеи!"
+
+#: main.cpp:196
+msgid "Merge the input."
+msgstr "Сливане на входа."
+
+#: main.cpp:197
+msgid "Explicit base file. For compatibility with certain tools."
+msgstr "Изричен основен файл. За съвместимост с някои инструменти."
+
+#: main.cpp:198
+msgid "Output file. Implies -m. E.g.: -o newfile.txt"
+msgstr "Изходен файл. Съдържа -m Например: -o newfile.txt"
+
+#: main.cpp:199
+msgid "Output file, again. (For compatibility with certain tools.)"
+msgstr "Отново изходен файл. (За съвместимост с някои инструменти)"
+
+#: main.cpp:200
+msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)"
+msgstr ""
+"Без графичен интерфейс, ако всички конфликти могат да се разрешат "
+"автоматично. (Нуждае се от -о файл)"
+
+#: main.cpp:201
+msgid "Don't solve conflicts automatically. (For compatibility...)"
+msgstr "Без автоматично разрешаване на конфликтите. (За съвместимост...)"
+
+#: main.cpp:202
+msgid "Visible name replacement for input file 1 (base)."
+msgstr "Видима размяна на имената на файловете за входен файл 1 (основен)."
+
+#: main.cpp:203
+msgid "Visible name replacement for input file 2."
+msgstr "Видима размяна на имената на файловете за входен файл 2."
+
+#: main.cpp:204
+msgid "Visible name replacement for input file 3."
+msgstr "Видима размяна на имената на файловете за входен файл 3."
+
+#: main.cpp:205
+msgid "Alternative visible name replacement. Supply this once for every input."
+msgstr ""
+"Алтернативна размяна на имената на файловете. Използвайте го веднъж за всеки "
+"вход."
+
+#: main.cpp:206
+msgid ""
+"Override a config setting. Use once for every setting. E.g.: --cs "
+"\"AutoAdvance=1\""
+msgstr ""
+"Пише върху настройките. Използвайте веднъж за всяка настройка. Например: --"
+"cs \"AutoAdvance=1\""
+
+#: main.cpp:207
+msgid "Show list of config settings and current values."
+msgstr "Показване на списък с настройки и текущи стойности."
+
+#: main.cpp:208
+msgid "Use a different config file."
+msgstr "Използване на различни конфигурационни файлове."
+
+#: main.cpp:211
+msgid "file1 to open (base, if not specified via --base)"
+msgstr "да се отвори файл 1 (основен, ако не е указан с --base)"
+
+#: main.cpp:212
+msgid "file2 to open"
+msgstr "да се отвори файл 2"
+
+#: main.cpp:213
+msgid "file3 to open"
+msgstr "да се отвори файл 3"
+
+#: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976
+#: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002
+#: mergeresultwindow.cpp:1014
+#, kde-format
+msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)"
+msgstr "Брой оставащи нерешени конфликти: %1 (от които %2 са интервали)"
+
+#: mergeresultwindow.cpp:303
+msgid ""
+"The output has been modified.\n"
+"If you continue your changes will be lost."
+msgstr ""
+"Изходът е променен.\n"
+"Ако продължите промените ще бъдат загубени."
+
+#: mergeresultwindow.cpp:834 pdiff.cpp:532
+msgid "All input files are binary equal."
+msgstr "Всички входни файлове са двоично еднакви."
+
+#: mergeresultwindow.cpp:836
+msgid "All input files contain the same text."
+msgstr "Входните файлове съдържат еднакъв текст."
+
+#: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840
+#: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540
+#, kde-format
+msgid "Files %1 and %2 are binary equal.\n"
+msgstr "Файлове %1 и %2 са двоично еднакви.\n"
+
+#: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841
+#: mergeresultwindow.cpp:843
+#, kde-format
+msgid "Files %1 and %2 have equal text.\n"
+msgstr "Файлове %1 и %2 съдържат еднакъв текст. \n"
+
+#: mergeresultwindow.cpp:849
+msgid "Total number of conflicts: "
+msgstr "Общ брой конфликти: "
+
+#: mergeresultwindow.cpp:850
+msgid ""
+"\n"
+"Nr of automatically solved conflicts: "
+msgstr ""
+"\n"
+"Брой автоматично решени конфликти: "
+
+#: mergeresultwindow.cpp:851
+msgid ""
+"\n"
+"Nr of unsolved conflicts: "
+msgstr ""
+"\n"
+"Брой нерешени конфликти: "
+
+#: mergeresultwindow.cpp:853
+msgid "Conflicts"
+msgstr "Конфликти"
+
+#: mergeresultwindow.cpp:1728
+msgid "<No src line>"
+msgstr "<Няма входен ред>"
+
+#: mergeresultwindow.cpp:1736
+msgid "<Merge Conflict (Whitespace only)>"
+msgstr "<Сливане на конфликт (Само интервали)>"
+
+#: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517
+msgid "<Merge Conflict>"
+msgstr "<Сливане на конфликт>"
+
+#: mergeresultwindow.cpp:2725
+msgid ""
+"Not all conflicts are solved yet.\n"
+"File not saved.\n"
+msgstr ""
+"Все още не всички конфликти са решени.\n"
+"Файлът не е записан.\n"
+
+#: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736
+msgid "Conflicts Left"
+msgstr "Оставащи конфликти"
+
+#: mergeresultwindow.cpp:2734
+msgid ""
+"There is a line end style conflict. Please choose the line end style "
+"manually.\n"
+"File not saved.\n"
+msgstr ""
+"Има конфликт във видовете край на ред. Изберете край на ред ръчно.\n"
+"Файлът не е запазен.\n"
+
+#: mergeresultwindow.cpp:2748
+msgid ""
+"\n"
+"\n"
+"Creating backup failed. File not saved."
+msgstr ""
+"\n"
+"\n"
+"Създаването на резервно копие беше неуспешно. Файлът не е записан."
+
+#: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792
+msgid "File Save Error"
+msgstr "Грешка при запис на файл"
+
+#: mergeresultwindow.cpp:2792
+msgid "Error while writing."
+msgstr "Грешка по време на запис."
+
+#: mergeresultwindow.cpp:3122
+msgid "Output"
+msgstr "Резултат"
+
+#: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314
+msgid "[Modified]"
+msgstr "[Променено]"
+
+#: mergeresultwindow.cpp:3141
+msgid "Encoding for saving"
+msgstr "Кодова таблица за запис"
+
+#: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737
+#: optiondialog.cpp:762
+msgid "Line end style:"
+msgstr "Край на ред:"
+
+#: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767
+msgid "Unix"
+msgstr "Unix"
+
+#: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737
+msgid "DOS"
+msgstr "DOS"
+
+#: mergeresultwindow.cpp:3229
+msgid "Conflict"
+msgstr "Конфликт"
+
+#: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263
+#: mergeresultwindow.cpp:3265
+msgid "Codec from"
+msgstr "Кодек от"
+
+#: kdiff3_part.cpp:157 kdiff3_part.cpp:234
+msgid "Couldn't find files for comparison."
+msgstr "Не са открити файлове за сравняване."
+
+#: kdiff3_part.cpp:302
+msgid "KDiff3Part"
+msgstr "KDiff3Part"
+
+#: fileaccess.cpp:612
+msgid ""
+"While trying to make a backup, deleting an older backup failed. \n"
+"Filename: "
+msgstr ""
+"В процеса на създаване на ново резервно копие, изтриването на по-старото "
+"беше неуспешно.\n"
+"Име на файл: "
+
+#: fileaccess.cpp:619
+msgid ""
+"While trying to make a backup, renaming failed. \n"
+"Filenames: "
+msgstr ""
+"В процеса на създаване на ново резервно копие, преименуването беше "
+"неуспешно.\n"
+"Имена на файлове: "
+
+#: fileaccess.cpp:643
+#, kde-format
+msgid "Getting file status: %1"
+msgstr "Вземане статуса на файл: %1"
+
+#: fileaccess.cpp:686
+#, kde-format
+msgid "Reading file: %1"
+msgstr "Чете на файл: %1"
+
+#: fileaccess.cpp:723
+#, kde-format
+msgid "Writing file: %1"
+msgstr "Запис на файл: %1"
+
+#: fileaccess.cpp:751
+msgid "Out of memory"
+msgstr "Няма памет"
+
+#: fileaccess.cpp:786
+#, kde-format
+msgid "Making directory: %1"
+msgstr "Създаване на директория: %1"
+
+#: fileaccess.cpp:806
+#, kde-format
+msgid "Removing directory: %1"
+msgstr "Премахване на директория: %1"
+
+#: fileaccess.cpp:821
+#, kde-format
+msgid "Removing file: %1"
+msgstr "Премахване на файл: %1"
+
+#: fileaccess.cpp:837
+#, kde-format
+msgid "Creating symbolic link: %1 -> %2"
+msgstr "Създаване на връзка към символи: %1 -> %2"
+
+#: fileaccess.cpp:864
+#, kde-format
+msgid "Renaming file: %1 -> %2"
+msgstr "Преименуване на файл: %1 -> %2"
+
+#: fileaccess.cpp:897
+#, kde-format
+msgid "Copying file: %1 -> %2"
+msgstr "Копиране на файл: %1 -> %2"
+
+#: fileaccess.cpp:911
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for reading failed. Filename: "
+"%1"
+msgstr ""
+"Грешка по време на копиране: Отварянето на файл за четене беше неуспешно. "
+"Име на файл: %1"
+
+#: fileaccess.cpp:917
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for writing failed. Filename: "
+"%1"
+msgstr ""
+"Грешка по време на копиране: Отварянето на файл за запис беше неуспешно. Име "
+"на файл: %1"
+
+#: fileaccess.cpp:932
+#, kde-format
+msgid "Error during file copy operation: Reading failed. Filename: %1"
+msgstr "Грешка по време на копиране: Четенето беше неуспешно. Име на файл: %1"
+
+#: fileaccess.cpp:941
+#, kde-format
+msgid "Error during file copy operation: Writing failed. Filename: %1"
+msgstr "Грешка по време на копиране: Записът беше неуспешен. Име на файл: %1"
+
+#: fileaccess.cpp:1231
+msgid "Reading directory: "
+msgstr "Четене на директория: "
+
+#: fileaccess.cpp:1355
+#, kde-format
+msgid "Listing directory: %1"
+msgstr "Списък на директория: %1"
+
+#: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396
+msgid "&Cancel"
+msgstr "&Отказ"
+
+#: difftextwindow.cpp:403
+msgid "Line"
+msgstr "Ред"
+
+#: difftextwindow.cpp:405
+msgid "Line not available"
+msgstr "Редът липсва"
+
+#: difftextwindow.cpp:1703 difftextwindow.cpp:1736
+msgid "Encoding:"
+msgstr "Кодова таблица:"
+
+#: difftextwindow.cpp:1759 kdiff3.cpp:831
+msgid "Top line"
+msgstr "Най-горен ред"
+
+#: difftextwindow.cpp:1769
+msgid "End"
+msgstr "Край"
+
+#: kdiff3.cpp:169
+msgid "Current Configuration:"
+msgstr "Текуща конфигурация:"
+
+#: kdiff3.cpp:174
+msgid "Config Option Error:"
+msgstr "Грешка на опция за конфигурация:"
+
+#: kdiff3.cpp:219
+msgid "Option --auto used, but no output file specified."
+msgstr "Използвана е настройка --auto, но не е указан изходен файл."
+
+#: kdiff3.cpp:369
+msgid "Option --auto ignored for directory comparison."
+msgstr "Игнорирана е настройка --auto за сравняване на директории."
+
+#: kdiff3.cpp:405
+msgid "Saving failed."
+msgstr "Записът беше неуспешен."
+
+#: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214
+msgid "Opening of these files failed:"
+msgstr "Отварянето на тези файлове беше неуспешно:"
+
+#: kdiff3.cpp:449
+msgid "File Open Error"
+msgstr "Грешка при отваряне на файл"
+
+#: kdiff3.cpp:477
+msgid "Opens documents for comparison..."
+msgstr "Отваря документ за сравняване..."
+
+#: kdiff3.cpp:479
+msgid "Reload"
+msgstr "Презареждане"
+
+#: kdiff3.cpp:482
+msgid "Saves the merge result. All conflicts must be solved!"
+msgstr ""
+"Запис на резултатът от сливането. Всички конфликти трябва да са решени!"
+
+#: kdiff3.cpp:484
+msgid "Saves the current document as..."
+msgstr "Запис на текущият документ като..."
+
+#: kdiff3.cpp:487
+msgid "Print the differences"
+msgstr "Отпечатване на разликите"
+
+#: kdiff3.cpp:490
+msgid "Quits the application"
+msgstr "Излиза от програмата"
+
+#: kdiff3.cpp:492
+msgid "Cuts the selected section and puts it to the clipboard"
+msgstr "Изрязва избраната област и я слага в системния буфер"
+
+#: kdiff3.cpp:494
+msgid "Copies the selected section to the clipboard"
+msgstr "Копира избраната област в системния буфер"
+
+#: kdiff3.cpp:496
+msgid "Pastes the clipboard contents to current position"
+msgstr "Поставяне съдържанието на системния буфер на посоченото място"
+
+#: kdiff3.cpp:498
+msgid "Select everything in current window"
+msgstr "Избиране на всичко в текущия прозорец"
+
+#: kdiff3.cpp:500
+msgid "Search for a string"
+msgstr "Търсене на низ"
+
+#: kdiff3.cpp:502
+msgid "Search again for the string"
+msgstr "Повторно търсене на низа"
+
+#: kdiff3.cpp:507
+msgid "Enables/disables the statusbar"
+msgstr "Включва/Изключва лентата за състоянието"
+
+#: kdiff3.cpp:511
+msgid "Configure KDiff3..."
+msgstr "Настройване на KDiff3..."
+
+#: kdiff3.cpp:532
+msgid "Go to Current Delta"
+msgstr "Отиване на текущата разлика"
+
+#: kdiff3.cpp:532
+msgid ""
+"Current\n"
+"Delta"
+msgstr ""
+"Текуща\n"
+"разлика"
+
+#: kdiff3.cpp:534
+msgid "Go to First Delta"
+msgstr "Отиване на първата разлика"
+
+#: kdiff3.cpp:534
+msgid ""
+"First\n"
+"Delta"
+msgstr ""
+"Първа\n"
+"разлика"
+
+#: kdiff3.cpp:536
+msgid "Go to Last Delta"
+msgstr "Отиване на последната разлика"
+
+#: kdiff3.cpp:536
+msgid ""
+"Last\n"
+"Delta"
+msgstr ""
+"Последна\n"
+"разлика"
+
+#: kdiff3.cpp:538
+msgid "(Skips white space differences when \"Show White Space\" is disabled.)"
+msgstr ""
+"(Прескача разликата в интервалите, когато настройката \"Показване на "
+"интервалите\" е изключена.)"
+
+#: kdiff3.cpp:539
+msgid ""
+"(Does not skip white space differences even when \"Show White Space\" is "
+"disabled.)"
+msgstr ""
+"(Прескача разликата в интервалите, дори когато настройката \"Показване на "
+"интервалите\" е изключена.)"
+
+#: kdiff3.cpp:540
+msgid "Go to Previous Delta"
+msgstr "Отиване на предишната разлика"
+
+#: kdiff3.cpp:540
+msgid ""
+"Prev\n"
+"Delta"
+msgstr ""
+"Предишна\n"
+"разлика"
+
+#: kdiff3.cpp:542
+msgid "Go to Next Delta"
+msgstr "Отиване на следващата разлика"
+
+#: kdiff3.cpp:542
+msgid ""
+"Next\n"
+"Delta"
+msgstr ""
+"Следваща\n"
+"разлика"
+
+#: kdiff3.cpp:544
+msgid "Go to Previous Conflict"
+msgstr "Отиване на предишния конфликт"
+
+#: kdiff3.cpp:544
+msgid ""
+"Prev\n"
+"Conflict"
+msgstr ""
+"Предишен\n"
+"конфликт"
+
+#: kdiff3.cpp:546
+msgid "Go to Next Conflict"
+msgstr "Отиване на следващия конфликт"
+
+#: kdiff3.cpp:546
+msgid ""
+"Next\n"
+"Conflict"
+msgstr ""
+"Следващ\n"
+"конфликт"
+
+#: kdiff3.cpp:548
+msgid "Go to Previous Unsolved Conflict"
+msgstr "Отиване на предишния неразрешен конфликт"
+
+#: kdiff3.cpp:548
+msgid ""
+"Prev\n"
+"Unsolved"
+msgstr ""
+"Предишен\n"
+"неразрешен"
+
+#: kdiff3.cpp:550
+msgid "Go to Next Unsolved Conflict"
+msgstr "Отиване на следващия неразрешен конфликт"
+
+#: kdiff3.cpp:550
+msgid ""
+"Next\n"
+"Unsolved"
+msgstr ""
+"Следващ\n"
+"неразрешен"
+
+#: kdiff3.cpp:552
+msgid "Select Line(s) From A"
+msgstr "Маркирайте ред(ове) от А"
+
+#: kdiff3.cpp:552
+msgid ""
+"Choose\n"
+"A"
+msgstr ""
+"Изберете\n"
+"А"
+
+#: kdiff3.cpp:553
+msgid "Select Line(s) From B"
+msgstr "Изберете ред(ове) от Б"
+
+#: kdiff3.cpp:553
+msgid ""
+"Choose\n"
+"B"
+msgstr ""
+"Изберете\n"
+"Б"
+
+#: kdiff3.cpp:554
+msgid "Select Line(s) From C"
+msgstr "Изберете ред(ове) от В"
+
+#: kdiff3.cpp:554
+msgid ""
+"Choose\n"
+"C"
+msgstr ""
+"Изберете\n"
+"В"
+
+#: kdiff3.cpp:555
+msgid "Automatically Go to Next Unsolved Conflict After Source Selection"
+msgstr ""
+"Автоматично прехвърляне към следващия нерешен конфликт, след избиране на "
+"източник"
+
+#: kdiff3.cpp:555
+msgid ""
+"Auto\n"
+"Next"
+msgstr ""
+"Автоматично\n"
+"средващо"
+
+#: kdiff3.cpp:557
+msgid "Show Space && Tabulator Characters for Differences"
+msgstr "Показване на символите за интервал и табулация за разлика"
+
+#: kdiff3.cpp:557
+msgid ""
+"White\n"
+"Characters"
+msgstr ""
+"Празни\n"
+"символи"
+
+#: kdiff3.cpp:558
+msgid "Show White Space"
+msgstr "Показване на интервалите"
+
+#: kdiff3.cpp:558
+msgid ""
+"White\n"
+"Deltas"
+msgstr ""
+"Разлики в\n"
+"интервалите"
+
+#: kdiff3.cpp:560
+msgid "Show Line Numbers"
+msgstr "Показване на номера на редове"
+
+#: kdiff3.cpp:560
+msgid ""
+"Line\n"
+"Numbers"
+msgstr ""
+"Номера на\n"
+"редовете"
+
+#: kdiff3.cpp:561
+msgid "Choose A Everywhere"
+msgstr "Избиране на А навсякъде"
+
+#: kdiff3.cpp:562
+msgid "Choose B Everywhere"
+msgstr "Избиране на Б навсякъде"
+
+#: kdiff3.cpp:563
+msgid "Choose C Everywhere"
+msgstr "Избиране на В навсякъде"
+
+#: kdiff3.cpp:564
+msgid "Choose A for All Unsolved Conflicts"
+msgstr "Избиране на А за всички нерешени конфликти"
+
+#: kdiff3.cpp:565
+msgid "Choose B for All Unsolved Conflicts"
+msgstr "Избиране на Б за всички нерешени конфликти"
+
+#: kdiff3.cpp:566
+msgid "Choose C for All Unsolved Conflicts"
+msgstr "Избиране на В за всички нерешени конфликти"
+
+#: kdiff3.cpp:567
+msgid "Choose A for All Unsolved Whitespace Conflicts"
+msgstr "Избиране на А за всички нерешени конфликти, свързани с интервали"
+
+#: kdiff3.cpp:568
+msgid "Choose B for All Unsolved Whitespace Conflicts"
+msgstr "Избиране на Б за всички нерешени конфликти, свързани с интервали"
+
+#: kdiff3.cpp:569
+msgid "Choose C for All Unsolved Whitespace Conflicts"
+msgstr "Избиране на В за всички нерешени конфликти, свързани с интервали"
+
+#: kdiff3.cpp:570
+msgid "Automatically Solve Simple Conflicts"
+msgstr "Автоматично разрешаване на простите конфликти"
+
+#: kdiff3.cpp:571
+msgid "Set Deltas to Conflicts"
+msgstr "Задаване на действията за конфликти"
+
+#: kdiff3.cpp:572
+msgid "Run Regular Expression Auto Merge"
+msgstr "Изпълнение на автосливане на регулярни изрази"
+
+#: kdiff3.cpp:573
+msgid "Automatically Solve History Conflicts"
+msgstr "Автоматично разрешаване на конфликтите в историята"
+
+#: kdiff3.cpp:574
+msgid "Split Diff At Selection"
+msgstr "Разделяне на разликата при избраното"
+
+#: kdiff3.cpp:575
+msgid "Join Selected Diffs"
+msgstr "Сливане на избраните разлики"
+
+#: kdiff3.cpp:577
+msgid "Show Window A"
+msgstr "Показване на прозорец А"
+
+#: kdiff3.cpp:578
+msgid "Show Window B"
+msgstr "Показване на прозорец Б"
+
+#: kdiff3.cpp:579
+msgid "Show Window C"
+msgstr "Показване на прозорец В"
+
+#: kdiff3.cpp:580 kdiff3.cpp:591
+msgid "Focus Next Window"
+msgstr "Фокусиране на следващия прозорец"
+
+#: kdiff3.cpp:582
+msgid "Normal Overview"
+msgstr "Нормален изглед"
+
+#: kdiff3.cpp:583
+msgid "A vs. B Overview"
+msgstr "Изглед на А срещу Б"
+
+#: kdiff3.cpp:584
+msgid "A vs. C Overview"
+msgstr "Изглед на А срещу В"
+
+#: kdiff3.cpp:585
+msgid "B vs. C Overview"
+msgstr "Изглед на Б срещу В"
+
+#: kdiff3.cpp:586
+msgid "Word Wrap Diff Windows"
+msgstr "Пренасяне на думите за различните прозорци"
+
+#: kdiff3.cpp:587
+msgid "Add Manual Diff Alignment"
+msgstr "Добавяне на ръчно подравняване на разликите"
+
+#: kdiff3.cpp:588
+msgid "Clear All Manual Diff Alignments"
+msgstr "Изчистване на на ръчно подравняване на разликите"
+
+#: kdiff3.cpp:593
+msgid "Focus Prev Window"
+msgstr "Фокусиране върху предишния прозорец"
+
+#: kdiff3.cpp:594
+msgid "Toggle Split Orientation"
+msgstr "Превключване към разделена подредба"
+
+#: kdiff3.cpp:596
+msgid "Dir && Text Split Screen View"
+msgstr "Разделен изглед на директория и текст"
+
+#: kdiff3.cpp:598
+msgid "Toggle Between Dir && Text View"
+msgstr "Превключване между изглед на директория и текст"
+
+#: kdiff3.cpp:654 pdiff.cpp:1812
+msgid "The merge result hasn't been saved."
+msgstr "Резултатът от сливането не е записан."
+
+#: kdiff3.cpp:656
+msgid "Save && Quit"
+msgstr "Запис и изход"
+
+#: kdiff3.cpp:657
+msgid "Quit Without Saving"
+msgstr "Изход без запис"
+
+#: kdiff3.cpp:665 pdiff.cpp:1823
+msgid "Saving the merge result failed."
+msgstr "Записът на резултата от сливането беше неуспешен."
+
+#: kdiff3.cpp:676 pdiff.cpp:1078
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort?"
+msgstr ""
+"В момента извършвате сливане на директории. Сигурни ли сте, че искате да го "
+"прекъснете?"
+
+#: kdiff3.cpp:701
+msgid "Saving file..."
+msgstr "Запис на файл..."
+
+#: kdiff3.cpp:718
+msgid "Saving file with a new filename..."
+msgstr "Запис на файл с ново име..."
+
+#: kdiff3.cpp:781
+msgid "Printing not implemented."
+msgstr "Отпечатването не е внедрено."
+
+#: kdiff3.cpp:815
+msgid "Printing..."
+msgstr "Отпечатване..."
+
+#: kdiff3.cpp:956
+msgid "Selection"
+msgstr "Избрано"
+
+#: kdiff3.cpp:982
+msgid "Printing completed."
+msgstr "Отпечатването приключи."
+
+#: kdiff3.cpp:986
+msgid "Printing aborted."
+msgstr "Отпечатването е прекъснато."
+
+#: kdiff3.cpp:993
+msgid "Exiting..."
+msgstr "Излизане..."
+
+#: kdiff3.cpp:1006
+msgid "Toggling toolbar..."
+msgstr "Превключване на лентата с инструменти..."
+
+#: kdiff3.cpp:1027
+msgid "Toggle the statusbar..."
+msgstr "Превключване на лентата за състоянието..."
+
+#: smalldialogs.cpp:58
+msgid "A (Base):"
+msgstr "А (основен):"
+
+#: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99
+#: smalldialogs.cpp:142
+msgid "File..."
+msgstr "Файл..."
+
+#: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101
+#: smalldialogs.cpp:144
+msgid "Dir..."
+msgstr "Директория..."
+
+#: smalldialogs.cpp:93
+msgid "C (Optional):"
+msgstr "В (по избор):"
+
+#: smalldialogs.cpp:116
+msgid "Swap/Copy Names ..."
+msgstr "Размяна/Копиране на имена ..."
+
+#: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123
+#, kde-format
+msgid "Swap %1<->%2"
+msgstr "Размяна: %1<->%2"
+
+#: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126
+#, kde-format
+msgid "Copy %1->Output"
+msgstr "Копиране: %1-> Изходни данни"
+
+#: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129
+#, kde-format
+msgid "Swap %1<->Output"
+msgstr "Размяна: %1 <-> Изходни данни"
+
+#: smalldialogs.cpp:136
+msgid "Output (optional):"
+msgstr "Резултат (по избор):"
+
+#: smalldialogs.cpp:168
+msgid "Configure..."
+msgstr "Настройване..."
+
+#: smalldialogs.cpp:174
+msgid "&OK"
+msgstr "&OK"
+
+#: smalldialogs.cpp:362
+msgid "Search text:"
+msgstr "Търсене на текст:"
+
+#: smalldialogs.cpp:369
+msgid "Case sensitive"
+msgstr "Чувствителен регистър"
+
+#: smalldialogs.cpp:372
+msgid "Search A"
+msgstr "Търсене в А"
+
+#: smalldialogs.cpp:377
+msgid "Search B"
+msgstr "Търсене в Б"
+
+#: smalldialogs.cpp:382
+msgid "Search C"
+msgstr "Търсене във В"
+
+#: smalldialogs.cpp:387
+msgid "Search output"
+msgstr "Резултат от търсенето"
+
+#: smalldialogs.cpp:392
+msgid "&Search"
+msgstr "&Търсене"
+
+#: smalldialogs.cpp:409
+msgid "Regular Expression Tester"
+msgstr "Изпробване за регулярни изрази"
+
+#: smalldialogs.cpp:414 optiondialog.cpp:936
+msgid "Auto merge regular expression:"
+msgstr "Автосливане на регулярни изрази:"
+
+#: smalldialogs.cpp:422
+msgid "Example auto merge line:"
+msgstr "Примерен ред за начало на автосливане:"
+
+#: smalldialogs.cpp:424
+msgid "To test auto merge, copy a line as used in your files."
+msgstr "За изпробване на автосливането копирайте ред от използваните файлове."
+
+#: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494
+msgid "Match result:"
+msgstr "Съвпадащ резултат:"
+
+#: smalldialogs.cpp:441 optiondialog.cpp:962
+msgid "History start regular expression:"
+msgstr "Регулярен израз за начало на история:"
+
+#: smalldialogs.cpp:449
+msgid "Example history start line (with leading comment):"
+msgstr "Ред за примерно стартиране на история (в водещ коментар):"
+
+#: smalldialogs.cpp:451
+msgid ""
+"Copy a history start line as used in your files,\n"
+"including the leading comment."
+msgstr ""
+"Копирайте ред на започване на история като във файловете,\n"
+"включително и водещия коментар."
+
+#: smalldialogs.cpp:469 optiondialog.cpp:972
+msgid "History entry start regular expression:"
+msgstr "Регулярен израз за начало на историята:"
+
+#: smalldialogs.cpp:477
+msgid "History sort key order:"
+msgstr "Ред за сортиращ ключ:"
+
+#: smalldialogs.cpp:485
+msgid "Example history entry start line (without leading comment):"
+msgstr "Примерен ред за стартиране на история (без водещ коментар):"
+
+#: smalldialogs.cpp:487
+msgid ""
+"Copy a history entry start line as used in your files,\n"
+"but omit the leading comment."
+msgstr ""
+"Копирайте реда за начало на история като във файловете,\n"
+"но пропуснете водещия коментар."
+
+#: smalldialogs.cpp:501
+msgid "Sort key result:"
+msgstr "Резултат от подреждането на ключове:"
+
+#: smalldialogs.cpp:508
+msgid "OK"
+msgstr "ОК"
+
+#: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583
+msgid "Match success."
+msgstr "Съвпадението е успешно."
+
+#: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589
+msgid "Match failed."
+msgstr "Съвпадението беше неуспешен."
+
+#: smalldialogs.cpp:574
+msgid "Opening and closing parentheses do not match in regular expression."
+msgstr "Отварящите и затварящи скоби не съвпадат в регулярния израз."
+
+#: optiondialog.cpp:367
+msgid "Unicode, 8 bit"
+msgstr "Unicode, 8 бита"
+
+#: optiondialog.cpp:368
+msgid "Unicode"
+msgstr "Unicode"
+
+#: optiondialog.cpp:369
+msgid "Latin1"
+msgstr "Latin1"
+
+#: optiondialog.cpp:388
+msgid "Change this if non-ASCII characters are not displayed correctly."
+msgstr "Променете това ако не-ASCII символите не се изобразяват правилно."
+
+#: optiondialog.cpp:465
+msgid "Configure"
+msgstr "Настройки"
+
+#: optiondialog.cpp:531
+msgid "Font"
+msgstr "Шрифт"
+
+#: optiondialog.cpp:532
+msgid "Editor & Diff Output Font"
+msgstr "Изходен шрифт за редактора и разделителя"
+
+#: optiondialog.cpp:556
+msgid "Italic font for deltas"
+msgstr "Наклонен шрифт за действията"
+
+#: optiondialog.cpp:559
+msgid ""
+"Selects the italic version of the font for differences.\n"
+"If the font doesn't support italic characters, then this does nothing."
+msgstr ""
+"Избира версията с наклонен шрифт за различаване.\n"
+"Ако шрифтът не поддържа наклонени символи, тогава не прави нищо."
+
+#: optiondialog.cpp:568
+msgid "Color"
+msgstr "Цвят"
+
+#: optiondialog.cpp:569
+msgid "Colors Settings"
+msgstr "Цветови настройки"
+
+#: optiondialog.cpp:588
+msgid "Editor and Diff Views:"
+msgstr "Редактор за преглед на разлики:"
+
+#: optiondialog.cpp:596
+msgid "Foreground color:"
+msgstr "Цвят на преден план:"
+
+#: optiondialog.cpp:603
+msgid "Background color:"
+msgstr "Цвят за фон:"
+
+#: optiondialog.cpp:612
+msgid "Diff background color:"
+msgstr "Различен цвят за фон:"
+
+#: optiondialog.cpp:620
+msgid "Color A:"
+msgstr "Цвят А:"
+
+#: optiondialog.cpp:628
+msgid "Color B:"
+msgstr "Цвят Б:"
+
+#: optiondialog.cpp:636
+msgid "Color C:"
+msgstr "Цвят В:"
+
+#: optiondialog.cpp:643
+msgid "Conflict color:"
+msgstr "Цвят за конфликт:"
+
+#: optiondialog.cpp:651
+msgid "Current range background color:"
+msgstr "Текущ обхват за цвета на фон:"
+
+#: optiondialog.cpp:659
+msgid "Current range diff background color:"
+msgstr "Текущ обхват за цвета на фон на разделител:"
+
+#: optiondialog.cpp:666
+msgid "Color for manually aligned difference ranges:"
+msgstr "Цвят на обхват за ръчно избрани разлики:"
+
+#: optiondialog.cpp:672
+msgid "Directory Comparison View:"
+msgstr "Преглед на сравняването на директории:"
+
+#: optiondialog.cpp:678
+msgid "Newest file color:"
+msgstr "Цвят на най-новия файл:"
+
+#: optiondialog.cpp:682
+msgid ""
+"Changing this color will only be effective when starting the next directory "
+"comparison."
+msgstr ""
+"Промяната на този цвят ще има ефект само при сравняване на следващата "
+"директория."
+
+#: optiondialog.cpp:687
+msgid "Oldest file color:"
+msgstr "Цвят на най-стария файл:"
+
+#: optiondialog.cpp:695
+msgid "Middle age file color:"
+msgstr "Цвят на средно стар файл:"
+
+#: optiondialog.cpp:703
+msgid "Color for missing files:"
+msgstr "Цвят на липсващи файлове:"
+
+#: optiondialog.cpp:717
+msgid "Editor"
+msgstr "Редактор"
+
+#: optiondialog.cpp:718
+msgid "Editor Behavior"
+msgstr "Поведение на редактора"
+
+#: optiondialog.cpp:732
+msgid "Tab inserts spaces"
+msgstr "Tab вмъква интервали"
+
+#: optiondialog.cpp:735
+msgid ""
+"On: Pressing tab generates the appropriate number of spaces.\n"
+"Off: A tab character will be inserted."
+msgstr ""
+"Включено: Натискането на табулация изписва подходящ брой интервали.\n"
+"Изключено: Ще бъде вмъкнат един символ за табулация."
+
+#: optiondialog.cpp:741
+msgid "Tab size:"
+msgstr "Големина на табулация:"
+
+#: optiondialog.cpp:747
+msgid "Auto indentation"
+msgstr "Автоматичен отстъп"
+
+#: optiondialog.cpp:750
+msgid "On: The indentation of the previous line is used for a new line.\n"
+msgstr "Включено: Отстъпа на предишния ред се използва за всеки нов.\n"
+
+#: optiondialog.cpp:754
+msgid "Auto copy selection"
+msgstr "Автоматично копиране на избраното"
+
+#: optiondialog.cpp:757
+msgid ""
+"On: Any selection is immediately written to the clipboard.\n"
+"Off: You must explicitely copy e.g. via Ctrl-C."
+msgstr ""
+"Включено: Всичко избрано се записва веднага в системния буфер.\n"
+"Изключено: Трябва изрично да копирате, например с Ctrl-C."
+
+#: optiondialog.cpp:768
+msgid "Dos/Windows"
+msgstr "Dos/Windows"
+
+#: optiondialog.cpp:769
+msgid "Autodetect"
+msgstr "Автоматично откриване"
+
+#: optiondialog.cpp:772
+msgid ""
+"Sets the line endings for when an edited file is saved.\n"
+"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A"
+msgstr ""
+"Задава края на реда, когато редактирания файл бива записан.\n"
+"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A"
+
+#: optiondialog.cpp:784
+msgid "Diff"
+msgstr "Разлика"
+
+#: optiondialog.cpp:785
+msgid "Diff Settings"
+msgstr "Настройки за разлика"
+
+#: optiondialog.cpp:809
+msgid "Treat as white space."
+msgstr "Третиране като интервали."
+
+#: optiondialog.cpp:811
+msgid "Ignore numbers"
+msgstr "Пренебрегване на числата"
+
+#: optiondialog.cpp:814
+msgid ""
+"Ignore number characters during line matching phase. (Similar to Ignore "
+"white space.)\n"
+"Might help to compare files with numeric data."
+msgstr ""
+"Пренебрегване на числата по време на фазата за съвпадение. (Подобно на "
+"пренебрегването на интервалите.)\n"
+"Може да помогне да се сравнят файлове с числова информация."
+
+#: optiondialog.cpp:819
+msgid "Ignore C/C++ comments"
+msgstr "Игнориране коментарите на С/С++"
+
+#: optiondialog.cpp:821
+msgid "Treat C/C++ comments like white space."
+msgstr "Третиране на С/С++ коментарите като интервали."
+
+#: optiondialog.cpp:825
+msgid "Ignore case"
+msgstr "Без разлика на главни и малки букви"
+
+#: optiondialog.cpp:828
+msgid "Treat case differences like white space changes. ('a'<=>'A')"
+msgstr ""
+"Третиране на разликата в регистъра като промяна в интервалите. (\"a\"<=>\"A"
+"\")"
+
+#: optiondialog.cpp:832
+msgid "Preprocessor command:"
+msgstr "Команда за предварителна обработка:"
+
+#: optiondialog.cpp:836
+msgid "User defined pre-processing. (See the docs for details.)"
+msgstr ""
+"Дефинирана от потребителя предварителна обработка. (Погледнете "
+"документацията за подробности.)"
+
+#: optiondialog.cpp:839
+msgid "Line-matching preprocessor command:"
+msgstr "Команда за предварителна обработка на съвпадение на редове:"
+
+#: optiondialog.cpp:843
+msgid ""
+"This pre-processor is only used during line matching.\n"
+"(See the docs for details.)"
+msgstr ""
+"Тази предварителна обработка се използва само при съвпадения на редове.\n"
+"(Вижте документацията за допълнителна информация.)"
+
+#: optiondialog.cpp:846
+msgid "Try hard (slower)"
+msgstr "Опитване по-усърдно (по-бавно)"
+
+#: optiondialog.cpp:849
+msgid ""
+"Enables the --minimal option for the external diff.\n"
+"The analysis of big files will be much slower."
+msgstr ""
+"Включва настройка --minimal за външното разделяне.\n"
+"Анализирането на големи файлове ще е много по-бавно."
+
+#: optiondialog.cpp:854
+msgid "Align B and C for 3 input files"
+msgstr ""
+
+#: optiondialog.cpp:857
+msgid ""
+"Try to align B and C when comparing or merging three input files.\n"
+"Not recommended for merging because merge might get more complicated.\n"
+"(Default is off.)"
+msgstr ""
+
+#: optiondialog.cpp:870
+msgid "Merge Settings"
+msgstr "Настройки за сливане"
+
+#: optiondialog.cpp:885
+msgid "Auto advance delay (ms):"
+msgstr "Забавяне на автоматичното придвижване (милисекунди):"
+
+#: optiondialog.cpp:890
+msgid ""
+"When in Auto-Advance mode the result of the current selection is shown \n"
+"for the specified time, before jumping to the next conflict. Range: 0-2000 ms"
+msgstr ""
+"Когато сте в режим на автоматично придвижване, резултатът на избраното се "
+"показва \n"
+"за определен период от време преди да се премине на следващ конфликт. "
+"Обхват: 0-2000 мсек"
+
+#: optiondialog.cpp:895
+msgid "Show info dialogs"
+msgstr "Показване на уведомления"
+
+#: optiondialog.cpp:897
+msgid "Show a dialog with information about the number of conflicts."
+msgstr "Показване на прозорец с данни за броя на конфликтите."
+
+#: optiondialog.cpp:900
+msgid "White space 2-file merge default:"
+msgstr "Интервал по подразбиране при сливане на 2 файла:"
+
+#: optiondialog.cpp:904 optiondialog.cpp:917
+msgid "Manual Choice"
+msgstr "Ръчен избор"
+
+#: optiondialog.cpp:908 optiondialog.cpp:922
+msgid ""
+"Allow the merge algorithm to automatically select an input for white-space-"
+"only changes."
+msgstr ""
+"Позволяване на сливащия алгоритъм автоматично да избира вход за промени от "
+"типа интервали."
+
+#: optiondialog.cpp:913
+msgid "White space 3-file merge default:"
+msgstr "Интервал по подразбиране при сливане на 3 файла:"
+
+#: optiondialog.cpp:927
+msgid "Automatic Merge Regular Expression"
+msgstr "Автоматично сливане на регулярни изрази"
+
+#: optiondialog.cpp:940
+msgid ""
+"Regular expression for lines where KDiff3 should automatically choose one "
+"source.\n"
+"When a line with a conflict matches the regular expression then\n"
+"- if available - C, otherwise B will be chosen."
+msgstr ""
+"Регулярните изрази за редовете, където KDiff3 трябва автоматично да избере "
+"източник.\n"
+"Когато някой ред с конфликт съвпадне с регулярния израз,\n"
+"тогава \"- if available - C\", иначе ще бъде избран B."
+
+#: optiondialog.cpp:946
+msgid "Run regular expression auto merge on merge start"
+msgstr "Изпълнение на автосливане на регулярни изрази при начало на сливането"
+
+#: optiondialog.cpp:948
+msgid ""
+"Run the merge for auto merge regular expressions\n"
+"immediately when a merge starts.\n"
+msgstr ""
+"Изпълнение на сливане за автосливане на регулярни изрази\n"
+"веднага след започване на сливане.\n"
+
+#: optiondialog.cpp:953
+msgid "Version Control History Merging"
+msgstr "Сливане историята на версиите"
+
+#: optiondialog.cpp:966
+msgid ""
+"Regular expression for the start of the version control history entry.\n"
+"Usually this line contains the \"$Log$\" keyword.\n"
+"Default value: \".*\\$Log.*\\$.*\""
+msgstr ""
+"Регулярен израз за начало на запис в историята на системи за контрол на "
+"версиите.\n"
+"Обикновено това съдържа ключова дума \"$Log$\".\n"
+"Стойност по подразбиране: \".*\\$Log.*\\$.*\""
+
+#: optiondialog.cpp:984
+msgid ""
+"A version control history entry consists of several lines.\n"
+"Specify the regular expression to detect the first line (without the leading "
+"comment).\n"
+"Use parentheses to group the keys you want to use for sorting.\n"
+"If left empty, then KDiff3 assumes that empty lines separate history "
+"entries.\n"
+"See the documentation for details."
+msgstr ""
+"Записът в историята на системи за контрол на версиите се състои от няколко "
+"реда.\n"
+"Посочете регулярния израз за определяне на първия ред (без началния "
+"коментар).\n"
+"Използвайте скоби за групиране на ключовете за сортиране.\n"
+"Ако е празно, тогава KDiff3 ще счита, че празните редове разделят записите.\n"
+"За повече подробности вижте документацията."
+
+#: optiondialog.cpp:992
+msgid "History merge sorting"
+msgstr "Подреждане сливането на историята"
+
+#: optiondialog.cpp:994
+msgid "Sort version control history by a key."
+msgstr "Подреждане на история на версиите по ключ."
+
+#: optiondialog.cpp:1004
+msgid "History entry start sort key order:"
+msgstr "Ред за сортиране на ключове за история:"
+
+#: optiondialog.cpp:1008
+msgid ""
+"Each pair of parentheses used in the regular expression for the history "
+"start entry\n"
+"groups a key that can be used for sorting.\n"
+"Specify the list of keys (that are numbered in order of occurrence\n"
+"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n"
+"If left empty, then no sorting will be done.\n"
+"See the documentation for details."
+msgstr ""
+"Всяка двойка използвани скоби в регулярния израз за начало на историята\n"
+"е група ключове, които могат да се използват за подреждане.\n"
+"Посочете списъка с ключове (подреждат се по реда на появяване,\n"
+"започвайки от 1), които поддържат \",\" като разделител (напр. "
+"\"4,5,6,1,2,3,7\").\n"
+"Ако е празно, няма да се прави подреждане.\n"
+"За повече информация вижте документацията."
+
+#: optiondialog.cpp:1019
+msgid "Merge version control history on merge start"
+msgstr "Сливане на историята за версии при стартиране"
+
+#: optiondialog.cpp:1021
+msgid "Run version control history automerge on merge start."
+msgstr "Автосливане на историята за версии при стартиране."
+
+#: optiondialog.cpp:1025
+msgid "Max number of history entries:"
+msgstr "Макс. брой записи в историята:"
+
+#: optiondialog.cpp:1028
+msgid "Cut off after specified number. Use -1 for infinite number of entries."
+msgstr "Отрязване след посочения брой. Използвайте -1 за \"безкрайно\"."
+
+#: optiondialog.cpp:1032
+msgid "Test your regular expressions"
+msgstr "Изпробване на регулярни изрази"
+
+#: optiondialog.cpp:1037
+msgid "Irrelevant merge command:"
+msgstr "Неподходяща команда за сливане:"
+
+#: optiondialog.cpp:1041
+msgid ""
+"If specified this script is run after automerge\n"
+"when no other relevant changes were detected.\n"
+"Called with the parameters: filename1 filename2 filename3"
+msgstr ""
+"Ако е зададен, този скрипт ще бъде изпълнен след автосливане\n"
+"при условие ,че не са открити други промени.\n"
+"Извикани с параметри: има на файл 1има на файл 2 име на файл 3"
+
+#: optiondialog.cpp:1047
+msgid "Auto save and quit on merge without conflicts"
+msgstr "Автозапис и изход ако сливането е без конфликти"
+
+#: optiondialog.cpp:1050
+msgid ""
+"If KDiff3 was started for a file-merge from the command line and all\n"
+"conflicts are solvable without user interaction then automatically save and "
+"quit.\n"
+"(Similar to command line option \"--auto\".)"
+msgstr ""
+"Ако KDiff3 е зареден за сливане на файлове от команден ред\n"
+"и всички конфликти са разрешими без намеса на потребителя,\n"
+"тогава следва автоматичен запис и изход.\n"
+"(Подобно на командата \"--auto\".)"
+
+#: optiondialog.cpp:1061 optiondialog.cpp:1062
+msgid "Directory"
+msgstr "Директория"
+
+#: optiondialog.cpp:1075
+msgid "Recursive directories"
+msgstr "Рекурсивни директории"
+
+#: optiondialog.cpp:1077
+msgid "Whether to analyze subdirectories or not."
+msgstr "Дали да се анализират или не поддиректориите."
+
+#: optiondialog.cpp:1079
+msgid "File pattern(s):"
+msgstr "Шаблон(и) за файл:"
+
+#: optiondialog.cpp:1084
+msgid ""
+"Pattern(s) of files to be analyzed. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Шаблони за файлове, които да се анализират. \n"
+"Wildcards: \"*\" and \"?\"\n"
+"Могат да се определят няколко шаблона чрез използване на разделителя: \";\""
+
+#: optiondialog.cpp:1090
+msgid "File-anti-pattern(s):"
+msgstr "Анти шаблон(и) за файл:"
+
+#: optiondialog.cpp:1095
+msgid ""
+"Pattern(s) of files to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Шаблони на файлове, които да се изпълнят от анализа. \n"
+"Wildcards: \"*\" and \"?\"\n"
+"Могат да се определят няколко шаблона чрез използване на разделителя: \";\""
+
+#: optiondialog.cpp:1101
+msgid "Dir-anti-pattern(s):"
+msgstr "Анти шаблон(и) за директория:"
+
+#: optiondialog.cpp:1106
+msgid ""
+"Pattern(s) of directories to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Шаблони на директории, които да се изпълнят от анализа. \n"
+"Wildcards: \"*\" and \"?\"\n"
+"Могат да се определят няколко шаблона чрез използване на разделителя: \";\""
+
+#: optiondialog.cpp:1112
+msgid "Use .cvsignore"
+msgstr "Използване на .cvsignore"
+
+#: optiondialog.cpp:1115
+msgid ""
+"Extends the antipattern to anything that would be ignored by CVS.\n"
+"Via local \".cvsignore\" files this can be directory specific."
+msgstr ""
+"Разширява антишаблона до нещо, което ще бъде пренебрегнато от CVS.\n"
+"Чрез локалните файлове \".cvsignore\", това може да се настройва за отделни "
+"директории."
+
+#: optiondialog.cpp:1120
+msgid "Find hidden files and directories"
+msgstr "Откриване на скрити файлове и директории"
+
+#: optiondialog.cpp:1123
+msgid "Finds files and directories with the hidden attribute."
+msgstr "Открива файлове и директории със скрит атрибут."
+
+#: optiondialog.cpp:1125
+msgid "Finds files and directories starting with '.'."
+msgstr "Открива файлове и директории, започващи с \".\"."
+
+#: optiondialog.cpp:1129
+msgid "Follow file links"
+msgstr "Проследяване на файловите препратки"
+
+#: optiondialog.cpp:1132
+msgid ""
+"On: Compare the file the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+"Включено: Сравнява файла, към който сочи препратката.\n"
+"Изключено: Сравнява препратките."
+
+#: optiondialog.cpp:1137
+msgid "Follow directory links"
+msgstr "Проследяване на препратките към директория"
+
+#: optiondialog.cpp:1140
+msgid ""
+"On: Compare the directory the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+"Включено: Сравнява директорията, към която сочи препратката.\n"
+"Изключено: Сравнява препратките."
+
+#: optiondialog.cpp:1156
+msgid "Case sensitive filename comparison"
+msgstr "Сравняване на имена, чувствително към регистър"
+
+#: optiondialog.cpp:1159
+msgid ""
+"The directory comparison will compare files or directories when their names "
+"match.\n"
+"Set this option if the case of the names must match. (Default for Windows is "
+"off, otherwise on.)"
+msgstr ""
+"Сравняването на директории ще сравни дали съвпадат имената на файлове или "
+"директории.\n"
+"включете тази опция, ако регистъра трябва да съвпада. (По подразбиране за "
+"Windows е изключено, иначе - включено.)"
+
+#: optiondialog.cpp:1163
+msgid "File Comparison Mode"
+msgstr "Режим \"сравняване на файлове\""
+
+#: optiondialog.cpp:1169
+msgid "Binary comparison"
+msgstr "Двоично сравнение"
+
+#: optiondialog.cpp:1170
+msgid "Binary comparison of each file. (Default)"
+msgstr "Двоично сравнение за всеки файл. (По подразбиране)"
+
+#: optiondialog.cpp:1173
+msgid "Full analysis"
+msgstr "Пълен анализ"
+
+#: optiondialog.cpp:1174
+msgid ""
+"Do a full analysis and show statistics information in extra columns.\n"
+"(Slower than a binary comparison, much slower for binary files.)"
+msgstr ""
+"Прави пълен анализ и показва статистическа информация в допълнителни "
+"колони.\n"
+"(По-бавно от двоичното сравнение, много по-бавно за двоични файлове.)"
+
+#: optiondialog.cpp:1178
+msgid "Trust the size and modification date (unsafe)"
+msgstr "Доверяване на размера и датата на промяна (опасно)"
+
+#: optiondialog.cpp:1179
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"Files with equal contents but different modification dates will appear as "
+"different.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"Приема се, че файловете са еднакви, ако датата на промяна и големината са "
+"еднакви.\n"
+"Файловете с еднакво съдържание, но с различна дата на промяна ще бъдат "
+"отчетени като различни.\n"
+"Може да се използва за големи директории или бавни мрежи."
+
+#: optiondialog.cpp:1184
+msgid ""
+"Trust the size and date, but use binary comparison if date does not match "
+"(unsafe)"
+msgstr ""
+"Доверяване на размера и датата, но използване на двоично сравнение, ако "
+"датата не съвпада (опасно)"
+
+#: optiondialog.cpp:1185
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"If the dates are not equal but the sizes are, use binary comparison.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"Приема се, че файловете са еднакви, ако датата на промяна и големината са "
+"еднакви.\n"
+"Ако датата не е еднаква, но размирите са, се използва двоично сравнение.\n"
+"Полезно за големи директории или бавни мрежи."
+
+#: optiondialog.cpp:1190
+msgid "Trust the size (unsafe)"
+msgstr "Доверяване на големината (опасно)"
+
+#: optiondialog.cpp:1191
+msgid ""
+"Assume that files are equal if their file lengths are equal.\n"
+"Useful for big directories or slow networks when the date is modified during "
+"download."
+msgstr ""
+"Приема се, че файловете са еднакви ако техните големини са еднакви.\n"
+"Полезно за големи директории или бавни мрежи, когато датата се променя по "
+"време на сваляне."
+
+#: optiondialog.cpp:1199
+msgid "Synchronize directories"
+msgstr "Синхронизиране на директории"
+
+#: optiondialog.cpp:1202
+msgid ""
+"Offers to store files in both directories so that\n"
+"both directories are the same afterwards.\n"
+"Works only when comparing two directories without specifying a destination."
+msgstr ""
+"Предлага да запише файловете и в двете директории така, че\n"
+"и двете директории след това да са едни и същи.\n"
+"Работи само, когато се сравняват две директории без определено "
+"местонахождение."
+
+#: optiondialog.cpp:1208
+msgid "White space differences considered equal"
+msgstr "Разликите в интервалите да се приемат за еднакви"
+
+#: optiondialog.cpp:1211
+msgid ""
+"If files differ only by white space consider them equal.\n"
+"This is only active when full analysis is chosen."
+msgstr ""
+"Файловете да се считат за еднакви, ако се различават само по интервалите.\n"
+"Това работи само ако е избран пълен анализ."
+
+#: optiondialog.cpp:1217
+msgid "Copy newer instead of merging (unsafe)"
+msgstr "Копиране на по-новите, вместо сливане (не е безопасно)"
+
+#: optiondialog.cpp:1220
+msgid ""
+"Don't look inside, just take the newer file.\n"
+"(Use this only if you know what you are doing!)\n"
+"Only effective when comparing two directories."
+msgstr ""
+"Да не се гледа вътре, а да се взима по-новия файл.\n"
+"(Използвайте го само ако знаете какво правите!)\n"
+"Ефективно е, само ако се сравняват две директории."
+
+#: optiondialog.cpp:1225
+msgid "Backup files (.orig)"
+msgstr "Резервни копия на файлове (.orig)"
+
+#: optiondialog.cpp:1228
+msgid ""
+"If a file would be saved over an old file, then the old file\n"
+"will be renamed with a '.orig' extension instead of being deleted."
+msgstr ""
+"Когато файл ще се записва върху стар файл, тогава старият файл\n"
+"ще бъде преименуван с разширение \".orig\", вместо да бъде изтрит."
+
+#: optiondialog.cpp:1301 optiondialog.cpp:1302
+msgid "Regional Settings"
+msgstr "Регионални настройки"
+
+#: optiondialog.cpp:1402
+msgid "Language (restart required)"
+msgstr "Език (нужно е рестартиране)"
+
+#: optiondialog.cpp:1445
+msgid ""
+"Choose the language of the GUI strings or \"Auto\".\n"
+"For a change of language to take place, quit and restart KDiff3."
+msgstr ""
+"Изберете език за графичния интерфейс или \"Автоматично\".\n"
+"За да се смени езикът, излезте от KDiff3 и я рестартирайте."
+
+#: optiondialog.cpp:1463
+msgid "Use the same encoding for everything:"
+msgstr "Използване на еднаква кодова таблица за всичко:"
+
+#: optiondialog.cpp:1466
+msgid ""
+"Enable this allows to change all encodings by changing the first only.\n"
+"Disable this if different individual settings are needed."
+msgstr ""
+"Включвайки това, можете да промените всички кодировки с промяната само на "
+"първата.\n"
+"Изключете са необходими различни индивидуални настройки."
+
+#: optiondialog.cpp:1471
+msgid "Note: Local Encoding is "
+msgstr "Забележка: Локалната кодова таблица е "
+
+#: optiondialog.cpp:1475
+msgid "File Encoding for A:"
+msgstr "Файлова кодова таблица за А:"
+
+#: optiondialog.cpp:1481
+msgid ""
+"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n"
+"If the file is not Unicode then the selected encoding will be used as "
+"fallback.\n"
+"(Unicode detection depends on the first bytes of a file.)"
+msgstr ""
+"Ако е включено, ще се открива Уникод (UTF-16 или UTF-8).\n"
+"Ако файлът не е в Уникод, като резервно ще бъде използвано указаното "
+"кодиране.\n"
+"(Намирането на Уникод зависи от първите байтове във файла.)"
+
+#: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503
+msgid "Auto Detect Unicode"
+msgstr "Автонамиране на Уникод"
+
+#: optiondialog.cpp:1490
+msgid "File Encoding for B:"
+msgstr "Файлова кодова таблица за Б:"
+
+#: optiondialog.cpp:1499
+msgid "File Encoding for C:"
+msgstr "Файлова кодова таблица за В:"
+
+#: optiondialog.cpp:1508
+msgid "File Encoding for Merge Output and Saving:"
+msgstr "Кодова таблица на файла за резултата от сливането и записване:"
+
+#: optiondialog.cpp:1512
+msgid "Auto Select"
+msgstr "Автоматично избиране"
+
+#: optiondialog.cpp:1515
+msgid ""
+"If enabled then the encoding from the input files is used.\n"
+"In ambiguous cases a dialog will ask the user to choose the encoding for "
+"saving."
+msgstr ""
+"Ако е включена тази отметка, тогава ще се използва кодирането на входящите "
+"файлове.\n"
+"Когато има нещо неясно, ще се появи прозорец , от където може да избере "
+"кодиране."
+
+#: optiondialog.cpp:1519
+msgid "File Encoding for Preprocessor Files:"
+msgstr "Кодова таблица на файл за файлове за предварителна обработка:"
+
+#: optiondialog.cpp:1530
+msgid "Right To Left Language"
+msgstr "Езици тип \"отдясно на ляво\""
+
+#: optiondialog.cpp:1533
+msgid ""
+"Some languages are read from right to left.\n"
+"This setting will change the viewer and editor accordingly."
+msgstr ""
+"Някои езици се четат отдясно наляво.\n"
+"Тази настройка ще промени съответно редактора и визуализатора."
+
+#: optiondialog.cpp:1548
+msgid "Integration"
+msgstr "Интеграция"
+
+#: optiondialog.cpp:1549
+msgid "Integration Settings"
+msgstr "Настройки на интеграцията"
+
+#: optiondialog.cpp:1563
+msgid "Command line options to ignore:"
+msgstr "Опции за команден ред, които да бъдат игнорирани:"
+
+#: optiondialog.cpp:1568
+msgid ""
+"List of command line options that should be ignored when KDiff3 is used by "
+"other tools.\n"
+"Several values can be specified if separated via ';'\n"
+"This will suppress the \"Unknown option\" error."
+msgstr ""
+"Показва опциите за команден ред, които трябва да бъдат пренебрегнати, когато "
+"KDiff3 се извиква от други инструменти.\n"
+"Могат да бъдат посочени няколко стойности, разделени с \";\" \n"
+"Това ще потисне съобщението \"Непозната грешка\"."
+
+#: optiondialog.cpp:1575
+msgid "Quit also via Escape key"
+msgstr "Излизане и с клавиша \"Escape\""
+
+#: optiondialog.cpp:1578
+msgid ""
+"Fast method to exit.\n"
+"For those who are used to using the Escape key."
+msgstr ""
+
+#: optiondialog.cpp:1583
+msgid "Integrate with ClearCase"
+msgstr "Интеграция с ClearCase"
+
+#: optiondialog.cpp:1586
+msgid ""
+"Integrate with Rational ClearCase from IBM.\n"
+"Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n"
+"(Only enabled when ClearCase \"bin\" directory is in the path.)"
+msgstr ""
+"Интеграция с Rational ClearCase на IBM.\n"
+"Променя \"map\" файла в поддиректорията \"lib/mgrs\" на ClearCase\n"
+"(Включено е само когато директорията \"bin\" на ClearCase е включена в пътя.)"
+
+#: optiondialog.cpp:1592
+msgid "Remove ClearCase Integration"
+msgstr "Премахване на интеграцията с ClearCase"
+
+#: optiondialog.cpp:1595
+msgid ""
+"Restore the old \"map\" file from before doing the ClearCase integration."
+msgstr ""
+"Възстановяване на стария \"map\" файл от преди интеграцията с ClearCase."
+
+#: optiondialog.cpp:1680
+msgid "Incompatible Font"
+msgstr "Несъвместими шрифтове"
+
+#: optiondialog.cpp:1681
+msgid "Continue at Own Risk"
+msgstr "Продължете на собствена отговорност"
+
+#: optiondialog.cpp:1682
+msgid "Select Another Font"
+msgstr "Изберете друг шрифт"
+
+#: optiondialog.cpp:1717
+msgid "This resets all options. Not only those of the current topic."
+msgstr "Това ще възстанови всички настройки. Не само тези в текущата тема."
+
+#: pdiff.cpp:260
+msgid "PreprocessorCmd: "
+msgstr "PreprocessorCmd: "
+
+#: pdiff.cpp:265
+msgid "The following option(s) you selected might change data:\n"
+msgstr "Следните настройки, които избрахте може да променят информация:\n"
+
+#: pdiff.cpp:266
+msgid ""
+"\n"
+"Most likely this is not wanted during a merge.\n"
+"Do you want to disable these settings or continue with these settings active?"
+msgstr ""
+"\n"
+"Най-вероятно това не е желателно по време на сливане.\n"
+"Искате ли да изключите тези настройки или ще продължите с тях?"
+
+#: pdiff.cpp:268
+msgid "Option Unsafe for Merging"
+msgstr "Опцията не е безопасна при сливане"
+
+#: pdiff.cpp:269
+msgid "Use These Options During Merge"
+msgstr "Използвайте тези опции при сливане"
+
+#: pdiff.cpp:270
+msgid "Disable Unsafe Options"
+msgstr "Изключване на опасните опции"
+
+#: pdiff.cpp:300
+msgid "Loading A"
+msgstr "Зареждане на А"
+
+#: pdiff.cpp:304
+msgid "Loading B"
+msgstr "Зареждане на Б"
+
+#: pdiff.cpp:321 pdiff.cpp:347
+msgid "Diff: A <-> B"
+msgstr "Разлика: A <-> Б"
+
+#: pdiff.cpp:327 pdiff.cpp:372
+msgid "Linediff: A <-> B"
+msgstr "Разлика на линия: A <-> Б"
+
+#: pdiff.cpp:338
+msgid "Loading C"
+msgstr "Зареждане на В"
+
+#: pdiff.cpp:350
+msgid "Diff: B <-> C"
+msgstr "Разлика: Б <-> B"
+
+#: pdiff.cpp:353
+msgid "Diff: A <-> C"
+msgstr "Разлика: А <-> B"
+
+#: pdiff.cpp:375
+msgid "Linediff: B <-> C"
+msgstr "Разлика на ред: Б <-> B"
+
+#: pdiff.cpp:378
+msgid "Linediff: A <-> C"
+msgstr "Разлика на ред: A <-> B"
+
+#: pdiff.cpp:534
+msgid "All input files contain the same text, but are not binary equal."
+msgstr "Входните файлове съдържат еднакъв текст, но не са двоично еднакви."
+
+#: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541
+#, kde-format
+msgid "Files %1 and %2 have equal text, but are not binary equal. \n"
+msgstr "Файлове %1 и %2 са с еднакъв текст, но не са двоично еднакви. \n"
+
+#: pdiff.cpp:551
+msgid ""
+"Some inputfiles don't seem to be pure textfiles.\n"
+"Note that the KDiff3-merge was not meant for binary data.\n"
+"Continue at your own risk."
+msgstr ""
+"Някои входни файлове не са чисти текстови файлове.\n"
+"Имайте предвид, че сливането на KDiff3 не е предназначено за двоична "
+"информация.\n"
+"Продължавате на собствена отговорност."
+
+#: pdiff.cpp:566
+#, kde-format
+msgid ""
+"Some input characters could not be converted to valid unicode.\n"
+"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n"
+"Don't save the result if unsure. Continue at your own risk.\n"
+"Affected input files are in %1."
+msgstr ""
+
+#: pdiff.cpp:1080
+msgid "Abort"
+msgstr "Прекъсване"
+
+#: pdiff.cpp:1087 pdiff.cpp:1175
+msgid "Opening files..."
+msgstr "Отваряне на файлове..."
+
+#: pdiff.cpp:1152 pdiff.cpp:1223
+msgid "File open error"
+msgstr "Грешка при отваряне на файл"
+
+#: pdiff.cpp:1255
+msgid "Cutting selection..."
+msgstr "Изрязване на избраното..."
+
+#: pdiff.cpp:1276
+msgid "Copying selection to clipboard..."
+msgstr "Копиране на избраното в системния буфер..."
+
+#: pdiff.cpp:1292
+msgid "Inserting clipboard contents..."
+msgstr "Вмъкване съдържанието на системния буфер..."
+
+#: pdiff.cpp:1814
+msgid "Save && Continue"
+msgstr "Запис и продължение"
+
+#: pdiff.cpp:1815
+msgid "Continue Without Saving"
+msgstr "Продължение без запис"
+
+#: pdiff.cpp:2018
+msgid "Search complete."
+msgstr "Търсенето завърши."
+
+#: pdiff.cpp:2018
+msgid "Search Complete"
+msgstr "Търсенето завърши"
+
+#: pdiff.cpp:2252
+msgid "Nothing is selected in either diff input window."
+msgstr "Нищо не е избрано в прозореца за разлики."
+
+#: pdiff.cpp:2252
+msgid "Error while adding manual diff range"
+msgstr "Грешка при ръчно добавяне на охват за разликите"
+
+#: kdiff3_shell.cpp:76
+msgid ""
+"Could not initialize the KDiff3 part.\n"
+"This usually happens due to an installation problem. Please read the README-"
+"file in the source package for details."
+msgstr ""
+"Грешка при зареждане на част от KDiff3\n"
+"Това обикновено се случва поради проблеми с инсталацията. За повече "
+"подробности прочетете файла README в инсталационния пакет."
+
+#: rc.cpp:1
+msgctxt "NAME OF TRANSLATORS"
+msgid "Your names"
+msgstr "Ясен Праматаров,Златко Попов"
+
+#: rc.cpp:2
+msgctxt "EMAIL OF TRANSLATORS"
+msgid "Your emails"
+msgstr "yasen@lindeas.com,zlatkopopov@fsa-bg.org"
+
+#. i18n: file: kdiff3_part.rc:4
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:5
+msgid "&KDiff3"
+msgstr "&KDiff3"
+
+#. i18n: file: kdiff3_part.rc:13
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:8
+msgid "Configure KDiff3"
+msgstr "Настройки на KDiff3"
+
+#. i18n: file: kdiff3_part.rc:16
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:11
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#. i18n: file: kdiff3_shell.rc:106
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:38
+msgid "Main Toolbar"
+msgstr "Главна лента с инструменти"
diff --git a/po/br/CMakeLists.txt b/po/br/CMakeLists.txt
new file mode 100644 (file)
index 0000000..3ad8d70
--- /dev/null
@@ -0,0 +1,2 @@
+file(GLOB _po_files *.po)
+GETTEXT_PROCESS_PO_FILES(br ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
diff --git a/po/br/kdiff3.po b/po/br/kdiff3.po
new file mode 100644 (file)
index 0000000..8eec5dd
--- /dev/null
@@ -0,0 +1,3016 @@
+# KDE breton translation
+# Thierry Vignaud <tvignaud@mandriva.com>, 2004-2005
+msgid ""
+msgstr ""
+"Project-Id-Version: kdeextragear-1/kdiff3.po\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2004-09-20 15:44+0200\n"
+"Last-Translator: Thierry Vignaud <tvignaud@mandriva.com>\n"
+"Language-Team: br <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: kreplacements/kreplacements.h:105
+#, fuzzy
+#| msgid "C&ontinue"
+msgid "Continue"
+msgstr "&Kenderc'hel"
+
+#: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158
+#: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512
+msgid "Cancel"
+msgstr ""
+
+#: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631
+msgid "Quit"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339
+msgid "Ok"
+msgstr "Mat eo"
+
+#: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715
+msgid "Help"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:185
+msgid "Defaults"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:4
+#. i18n: ectx: Menu (file)
+#: kreplacements/kreplacements.cpp:296 rc.cpp:14
+#, fuzzy
+#| msgid "File..."
+msgid "&File"
+msgstr "Restr ..."
+
+#: kreplacements/kreplacements.cpp:297
+#, fuzzy
+#| msgid "Editor"
+msgid "&Edit"
+msgstr "Aozer"
+
+#. i18n: file: kdiff3_shell.rc:7
+#. i18n: ectx: Menu (directory)
+#: kreplacements/kreplacements.cpp:298 rc.cpp:17
+msgid "&Directory"
+msgstr "&Renkell"
+
+#. i18n: file: kdiff3_shell.rc:50
+#. i18n: ectx: Menu (movement)
+#: kreplacements/kreplacements.cpp:301 rc.cpp:26
+msgid "&Movement"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:61
+#. i18n: ectx: Menu (diff)
+#: kreplacements/kreplacements.cpp:302 rc.cpp:29
+msgid "D&iffview"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:73
+#. i18n: ectx: Menu (merge)
+#: kreplacements/kreplacements.cpp:303 rc.cpp:32
+msgid "&Merge"
+msgstr "&Dastum"
+
+#. i18n: file: kdiff3_shell.rc:95
+#. i18n: ectx: Menu (window)
+#: kreplacements/kreplacements.cpp:304 rc.cpp:35
+msgid "&Window"
+msgstr "&Prenestr"
+
+#: kreplacements/kreplacements.cpp:305
+#, fuzzy
+msgid "&Settings"
+msgstr "Kefluniadur rann-vro"
+
+#: kreplacements/kreplacements.cpp:306
+msgid "&Help"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:353
+#, fuzzy
+#| msgid "Abort"
+msgid "&About"
+msgstr "Paouez"
+
+#: kreplacements/kreplacements.cpp:369
+msgid "A&uthor"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:383
+msgid "&Thanks To"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:30
+#. i18n: ectx: Menu (dir_current_merge_menu)
+#: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497
+#: rc.cpp:20
+msgid "Current Item Merge Operation"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:38
+#. i18n: ectx: Menu (dir_current_sync_menu)
+#: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498
+#: rc.cpp:23
+msgid "Current Item Sync Operation"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:597
+#, fuzzy
+#| msgid "Operation"
+msgid "Open"
+msgstr "Ober"
+
+#: kreplacements/kreplacements.cpp:606
+msgid "Save"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720
+msgid "Save As..."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:623
+#, fuzzy
+#| msgid "Printing..."
+msgid "Print..."
+msgstr "Emaon o voulañ ..."
+
+#: kreplacements/kreplacements.cpp:639
+msgid "Cut"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:647
+msgid "Copy"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:655
+msgid "Paste"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:663
+#, fuzzy
+#| msgid "Delete A"
+msgid "Select All"
+msgstr "Lemel A"
+
+#: kreplacements/kreplacements.cpp:671
+msgid "Show Toolbar"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:679
+msgid "Show &Status Bar"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:687
+#, fuzzy, kde-format
+#| msgid "Configure..."
+msgid "&Configure %1..."
+msgstr "Kefluniañ ..."
+
+#: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707
+#, fuzzy
+#| msgid "Abort"
+msgid "About"
+msgstr "Paouez"
+
+#: kreplacements/kreplacements.cpp:722
+msgid "Find"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:730
+msgid "Find Next"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:750
+#, fuzzy
+#| msgid "Selection"
+msgid "Select Font"
+msgstr "Diuzadenn"
+
+#: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676
+msgid ""
+"You selected a variable width font.\n"
+"\n"
+"Because this program doesn't handle variable width fonts\n"
+"correctly, you might experience problems while editing.\n"
+"\n"
+"Do you want to continue or do you want to select another font."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:792
+msgid "Incompatible font."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Continue at my own risk"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:793
+#, fuzzy
+#| msgid "Select Another Font"
+msgid "Select another font"
+msgstr "Dibab un nodrezh all"
+
+#: kreplacements/kreplacements.cpp:1134
+msgid "For more documentation, see the help-menu or the subdirectory doc."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1137
+#, fuzzy
+#| msgid "KDiff3"
+msgid "KDiff3-Usage"
+msgstr "KDiff3"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Ignore"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1137
+#, fuzzy
+#| msgid "Editor"
+msgid "Exit"
+msgstr "Aozer"
+
+#: diff.cpp:251
+msgid "Writing clipboard data to temp file failed."
+msgstr ""
+
+#: diff.cpp:255
+msgid "From Clipboard"
+msgstr "Eus ar golver"
+
+#: diff.cpp:471
+msgid "Expecting space after closing quotation mark."
+msgstr ""
+
+#: diff.cpp:474
+msgid "Not matching quotation marks."
+msgstr ""
+
+#: diff.cpp:496
+msgid "Unexpected quotation mark within argument."
+msgstr ""
+
+#: diff.cpp:503
+msgid "No program specified."
+msgstr ""
+
+#: diff.cpp:605
+#, kde-format
+msgid ""
+"Preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The preprocessing command will be disabled now."
+msgstr ""
+
+#: diff.cpp:653
+#, kde-format
+msgid ""
+"The line-matching-preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The line-matching-preprocessing command will be disabled now."
+msgstr ""
+
+#: diff.cpp:1776 diff.cpp:1790
+msgid ""
+"Data loss error:\n"
+"If it is reproducible please contact the author.\n"
+msgstr ""
+
+#: diff.cpp:1778 diff.cpp:1792
+msgid "Severe Internal Error"
+msgstr "Fazi diabarzh grevus"
+
+#: directorymergewindow.cpp:136
+msgid "Mix of links and normal files."
+msgstr ""
+
+#: directorymergewindow.cpp:143
+msgid "Link: "
+msgstr "Liamm : "
+
+#: directorymergewindow.cpp:151
+msgid "Size. "
+msgstr "Ment. "
+
+#: directorymergewindow.cpp:164 directorymergewindow.cpp:174
+msgid "Date & Size: "
+msgstr "Deiziad ha ment : "
+
+#: directorymergewindow.cpp:184 directorymergewindow.cpp:190
+#, kde-format
+msgid "Creating temp copy of %1 failed."
+msgstr ""
+
+#: directorymergewindow.cpp:201 directorymergewindow.cpp:209
+#, kde-format
+msgid "Opening %1 failed."
+msgstr "Sac'het eo digeiñ ar restr %1."
+
+#: directorymergewindow.cpp:213
+msgid "Comparing file..."
+msgstr ""
+
+#: directorymergewindow.cpp:223 directorymergewindow.cpp:229
+#, kde-format
+msgid "Error reading from %1"
+msgstr "Fazi en ur less eus %1."
+
+#: directorymergewindow.cpp:358
+msgid "Name"
+msgstr "Anv"
+
+#: directorymergewindow.cpp:358
+msgid "Operation"
+msgstr "Ober"
+
+#: directorymergewindow.cpp:358
+msgid "Status"
+msgstr "Stad"
+
+#: directorymergewindow.cpp:359
+msgid "Unsolved"
+msgstr ""
+
+#: directorymergewindow.cpp:359
+msgid "Solved"
+msgstr ""
+
+#: directorymergewindow.cpp:359
+msgid "Nonwhite"
+msgstr ""
+
+#: directorymergewindow.cpp:359
+msgid "White"
+msgstr "Gwenn"
+
+#: directorymergewindow.cpp:388
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort "
+"the merge and rescan the directory?"
+msgstr ""
+
+#: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655
+#: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823
+msgid "Warning"
+msgstr ""
+
+#: directorymergewindow.cpp:390 directorymergewindow.cpp:2965
+msgid "Rescan"
+msgstr ""
+
+#: directorymergewindow.cpp:391 pdiff.cpp:1081
+msgid "Continue Merging"
+msgstr ""
+
+#: directorymergewindow.cpp:548
+msgid "Opening of directories failed:"
+msgstr "Sac'het eo digeriñ ar renkelloù :"
+
+#: directorymergewindow.cpp:551
+#, kde-format
+msgid "Dir A \"%1\" does not exist or is not a directory.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:554
+#, kde-format
+msgid "Dir B \"%1\" does not exist or is not a directory.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:557
+#, kde-format
+msgid "Dir C \"%1\" does not exist or is not a directory.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:559
+msgid "Directory Open Error"
+msgstr "Fazi en ur zigeriñ ar renkell"
+
+#: directorymergewindow.cpp:567
+msgid ""
+"The destination directory must not be the same as A or B when three "
+"directories are merged.\n"
+"Check again before continuing."
+msgstr ""
+
+#: directorymergewindow.cpp:569
+msgid "Parameter Warning"
+msgstr ""
+
+#: directorymergewindow.cpp:574
+msgid "Scanning directories..."
+msgstr "Emaon o tielfennañ ar renkelloù ..."
+
+#: directorymergewindow.cpp:607
+msgid "Reading Directory A"
+msgstr "Emaon o lenn ar renkell A"
+
+#: directorymergewindow.cpp:629
+msgid "Reading Directory B"
+msgstr "Emaon o lenn ar renkell B"
+
+#: directorymergewindow.cpp:651
+msgid "Reading Directory C"
+msgstr "Emaon o lenn ar renkell C"
+
+#: directorymergewindow.cpp:677
+msgid "Some subdirectories were not readable in"
+msgstr ""
+
+#: directorymergewindow.cpp:682
+msgid "Check the permissions of the subdirectories."
+msgstr ""
+
+#: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737
+#: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233
+#: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328
+msgid "Ready."
+msgstr "Prest."
+
+#: directorymergewindow.cpp:735
+msgid "Directory Comparison Status"
+msgstr ""
+
+#: directorymergewindow.cpp:736
+msgid "Number of subdirectories:"
+msgstr "Niver a is-renkelloù :"
+
+#: directorymergewindow.cpp:737
+msgid "Number of equal files:"
+msgstr ""
+
+#: directorymergewindow.cpp:738
+msgid "Number of different files:"
+msgstr ""
+
+#: directorymergewindow.cpp:741
+msgid "Number of manual merges:"
+msgstr ""
+
+#: directorymergewindow.cpp:912
+msgid "This affects all merge operations."
+msgstr ""
+
+#: directorymergewindow.cpp:913
+msgid "Changing All Merge Operations"
+msgstr ""
+
+#: directorymergewindow.cpp:1312
+msgid "Processing "
+msgstr "O treterez "
+
+#: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742
+msgid "To do."
+msgstr "Traoù d'ober."
+
+#: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996
+msgid "Copy A to B"
+msgstr "Eilañ A da B"
+
+#: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997
+msgid "Copy B to A"
+msgstr "Eilañ B da A"
+
+#: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998
+msgid "Delete A"
+msgstr "Lemel A"
+
+#: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999
+msgid "Delete B"
+msgstr "Lemel B"
+
+#: directorymergewindow.cpp:1814
+msgid "Delete A & B"
+msgstr "Lemel A & B"
+
+#: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001
+msgid "Merge to A"
+msgstr ""
+
+#: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002
+msgid "Merge to B"
+msgstr ""
+
+#: directorymergewindow.cpp:1817
+msgid "Merge to A & B"
+msgstr ""
+
+#: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993
+msgid "Delete (if exists)"
+msgstr ""
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+#: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869
+msgid "Merge"
+msgstr "Dastum"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+msgid "Merge (manual)"
+msgstr ""
+
+#: directorymergewindow.cpp:1824
+msgid "Error: Conflicting File Types"
+msgstr ""
+
+#: directorymergewindow.cpp:1825
+msgid "Error: Changed and Deleted"
+msgstr ""
+
+#: directorymergewindow.cpp:1826
+msgid "Error: Dates are equal but files are not."
+msgstr ""
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906
+msgid "This operation is currently not possible."
+msgstr ""
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174
+msgid "Operation Not Possible"
+msgstr ""
+
+#: directorymergewindow.cpp:1945
+msgid ""
+"This should never happen: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"If you know how to reproduce this, please contact the program author."
+msgstr ""
+
+#: directorymergewindow.cpp:1945
+msgid "Program Error"
+msgstr "Fazi gant ar meziant"
+
+#: directorymergewindow.cpp:1956
+msgid "An error occurred while copying.\n"
+msgstr "Degouezhet ez eus ar fazi en ur eilañ.\n"
+
+#: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025
+#: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105
+#: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123
+#: directorymergewindow.cpp:2374
+#, fuzzy
+#| msgid "Error."
+msgid "Error"
+msgstr "Fazi."
+
+#: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375
+msgid "Merge Error"
+msgstr "Fazi en ur dastum"
+
+#: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380
+msgid "Error."
+msgstr "Fazi."
+
+#: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272
+#: directorymergewindow.cpp:2312
+msgid "Done."
+msgstr "Graet."
+
+#: directorymergewindow.cpp:1990
+msgid "Not saved."
+msgstr "N'eo ket enrollet."
+
+#: directorymergewindow.cpp:2025
+msgid "Unknown merge operation. (This must never happen!)"
+msgstr ""
+
+#: directorymergewindow.cpp:2057
+msgid "Unknown merge operation."
+msgstr ""
+
+#: directorymergewindow.cpp:2072
+msgid ""
+"The merge is about to begin.\n"
+"\n"
+"Choose \"Do it\" if you have read the instructions and know what you are "
+"doing.\n"
+"Choosing \"Simulate it\" will tell you what would happen.\n"
+"\n"
+"Be aware that this program still has beta status and there is NO WARRANTY "
+"whatsoever! Make backups of your vital data!"
+msgstr ""
+
+#: directorymergewindow.cpp:2077
+msgid "Starting Merge"
+msgstr ""
+
+#: directorymergewindow.cpp:2078
+msgid "Do It"
+msgstr ""
+
+#: directorymergewindow.cpp:2079
+msgid "Simulate It"
+msgstr ""
+
+#: directorymergewindow.cpp:2105
+msgid ""
+"The highlighted item has a different type in the different directories. "
+"Select what to do."
+msgstr ""
+
+#: directorymergewindow.cpp:2114
+msgid ""
+"The modification dates of the file are equal but the files are not. Select "
+"what to do."
+msgstr ""
+
+#: directorymergewindow.cpp:2123
+msgid ""
+"The highlighted item was changed in one directory and deleted in the other. "
+"Select what to do."
+msgstr ""
+
+#: directorymergewindow.cpp:2174
+msgid ""
+"This operation is currently not possible because directory merge is "
+"currently running."
+msgstr ""
+
+#: directorymergewindow.cpp:2234
+msgid ""
+"There was an error in the last step.\n"
+"Do you want to continue with the item that caused the error or do you want "
+"to skip this item?"
+msgstr ""
+
+#: directorymergewindow.cpp:2236
+msgid "Continue merge after an error"
+msgstr ""
+
+#: directorymergewindow.cpp:2237
+msgid "Continue With Last Item"
+msgstr ""
+
+#: directorymergewindow.cpp:2238
+msgid "Skip Item"
+msgstr "Tremen an dra"
+
+#: directorymergewindow.cpp:2272
+msgid "Skipped."
+msgstr "Tremenet."
+
+#: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493
+msgid "In progress..."
+msgstr "Ober a ran ..."
+
+#: directorymergewindow.cpp:2327
+msgid "Merge operation complete."
+msgstr ""
+
+#: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330
+msgid "Merge Complete"
+msgstr ""
+
+#: directorymergewindow.cpp:2340
+msgid ""
+"Simulated merge complete: Check if you agree with the proposed operations."
+msgstr ""
+
+#: directorymergewindow.cpp:2374
+msgid "An error occurred. Press OK to see detailed information.\n"
+msgstr "Degouezhet ez eus ar fazi. Gwaskit OK da welet an titouroù munut.\n"
+
+#: directorymergewindow.cpp:2406
+#, kde-format
+msgid "Error: While deleting %1: Creating backup failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2413
+#, kde-format
+msgid "delete directory recursively( %1 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2415
+#, kde-format
+msgid "delete( %1 )"
+msgstr "dilemel( %1 )"
+
+#: directorymergewindow.cpp:2430
+msgid "Error: delete dir operation failed while trying to read the directory."
+msgstr ""
+
+#: directorymergewindow.cpp:2449
+#, kde-format
+msgid "Error: rmdir( %1 ) operation failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2459
+msgid "Error: delete operation failed."
+msgstr "Fazi : sac'het eo lemel."
+
+#: directorymergewindow.cpp:2485
+#, kde-format
+msgid "manual merge( %1, %2, %3 -> %4)"
+msgstr ""
+
+#: directorymergewindow.cpp:2488
+msgid ""
+"     Note: After a manual merge the user should continue by pressing F7."
+msgstr ""
+
+#: directorymergewindow.cpp:2513
+#, kde-format
+msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2522
+#, kde-format
+msgid "copyLink( %1 -> %2 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2533
+msgid "Error: copyLink failed: Remote links are not yet supported."
+msgstr ""
+
+#: directorymergewindow.cpp:2539
+msgid "Error: copyLink failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2564
+#, kde-format
+msgid "copy( %1 -> %2 )"
+msgstr "eilañ( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2590
+#, kde-format
+msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination."
+msgstr ""
+
+#: directorymergewindow.cpp:2596
+#, kde-format
+msgid "rename( %1 -> %2 )"
+msgstr "adenvel( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2605
+msgid "Error: Rename failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2623
+#, kde-format
+msgid "Error during makeDir of %1. Cannot delete existing file."
+msgstr ""
+
+#: directorymergewindow.cpp:2639
+#, kde-format
+msgid "makeDir( %1 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2649
+msgid "Error while creating directory."
+msgstr "Fazi en ur c'hrouiñ ur renkell."
+
+#: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784
+msgid "Dest"
+msgstr "Dehaez."
+
+#: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709
+msgid "Dir"
+msgstr "Renkell"
+
+#: directorymergewindow.cpp:2678
+msgid "Type"
+msgstr "Seurt"
+
+#: directorymergewindow.cpp:2678
+msgid "Size"
+msgstr "Ment"
+
+#: directorymergewindow.cpp:2679
+msgid "Attr"
+msgstr ""
+
+#: directorymergewindow.cpp:2679
+msgid "Last Modification"
+msgstr "Kemm diwezhañ"
+
+#: directorymergewindow.cpp:2679
+msgid "Link-Destination"
+msgstr "Liamm dehaezadur"
+
+#: directorymergewindow.cpp:2709 difftextwindow.cpp:401
+#, fuzzy
+#| msgid "File..."
+msgid "File"
+msgstr "Restr ..."
+
+#: directorymergewindow.cpp:2726
+msgid "not available"
+msgstr "n'eo ket da gaout"
+
+#: directorymergewindow.cpp:2746
+msgid "A (Dest): "
+msgstr ""
+
+#: directorymergewindow.cpp:2749
+msgid "A (Base): "
+msgstr ""
+
+#: directorymergewindow.cpp:2755
+msgid "B (Dest): "
+msgstr ""
+
+#: directorymergewindow.cpp:2763
+msgid "C (Dest): "
+msgstr ""
+
+#: directorymergewindow.cpp:2769
+msgid "Dest: "
+msgstr "Dehaez. : "
+
+#: directorymergewindow.cpp:2836
+msgid "Save Directory Merge State As..."
+msgstr ""
+
+#: directorymergewindow.cpp:2959
+msgid "Start/Continue Directory Merge"
+msgstr ""
+
+#: directorymergewindow.cpp:2960
+msgid "Run Operation for Current Item"
+msgstr ""
+
+#: directorymergewindow.cpp:2961
+msgid "Compare Selected File"
+msgstr ""
+
+#: directorymergewindow.cpp:2962
+msgid "Merge Current File"
+msgstr ""
+
+#: directorymergewindow.cpp:2962
+#, fuzzy
+#| msgid "Merge"
+msgid ""
+"Merge\n"
+"File"
+msgstr "Dastum"
+
+#: directorymergewindow.cpp:2963
+msgid "Fold All Subdirs"
+msgstr ""
+
+#: directorymergewindow.cpp:2964
+msgid "Unfold All Subdirs"
+msgstr ""
+
+#: directorymergewindow.cpp:2968
+msgid "Choose A for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2969
+msgid "Choose B for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2970
+msgid "Choose C for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2971
+msgid "Auto-Choose Operation for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2972
+msgid "No Operation for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2977
+msgid "Show Identical Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2977
+msgid ""
+"Identical\n"
+"Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2978
+msgid "Show Different Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2979
+msgid "Show Files only in A"
+msgstr "Diskouez restroù a zo e A hepken"
+
+#: directorymergewindow.cpp:2979
+#, fuzzy
+#| msgid "Show Files only in A"
+msgid ""
+"Files\n"
+"only in A"
+msgstr "Diskouez restroù a zo e A hepken"
+
+#: directorymergewindow.cpp:2980
+msgid "Show Files only in B"
+msgstr "Diskouez restroù a zo e B hepken"
+
+#: directorymergewindow.cpp:2980
+#, fuzzy
+#| msgid "Show Files only in B"
+msgid ""
+"Files\n"
+"only in B"
+msgstr "Diskouez restroù a zo e B hepken"
+
+#: directorymergewindow.cpp:2981
+msgid "Show Files only in C"
+msgstr "Diskouez restroù a zo e C hepken"
+
+#: directorymergewindow.cpp:2981
+#, fuzzy
+#| msgid "Show Files only in C"
+msgid ""
+"Files\n"
+"only in C"
+msgstr "Diskouez restroù a zo e C hepken"
+
+#: directorymergewindow.cpp:2985
+msgid "Compare Explicitly Selected Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2986
+msgid "Merge Explicitly Selected Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995
+msgid "Do Nothing"
+msgstr "Ober netra"
+
+#: directorymergewindow.cpp:2989
+msgid "A"
+msgstr "A"
+
+#: directorymergewindow.cpp:2990
+msgid "B"
+msgstr "G"
+
+#: directorymergewindow.cpp:2991
+msgid "C"
+msgstr "C"
+
+#: directorymergewindow.cpp:3000
+msgid "Delete A && B"
+msgstr "Lemel A && B"
+
+#: directorymergewindow.cpp:3003
+msgid "Merge to A && B"
+msgstr ""
+
+#: main.cpp:74 main.cpp:76
+msgid "Ignored. (User defined.)"
+msgstr ""
+
+#: main.cpp:162
+#, fuzzy
+#| msgid "KDiff3"
+msgid "kdiff3"
+msgstr "KDiff3"
+
+#: main.cpp:164
+msgid "Tool for Comparison and Merge of Files and Directories"
+msgstr ""
+
+#: main.cpp:165
+msgid "(c) 2002-2011 Joachim Eibl"
+msgstr ""
+
+#: main.cpp:172 kdiff3_part.cpp:303
+msgid "Joachim Eibl"
+msgstr ""
+
+#: main.cpp:173
+msgid "Eike Sauer"
+msgstr ""
+
+#: main.cpp:173
+msgid "Bugfixes, Debian package maintainer"
+msgstr ""
+
+#: main.cpp:174
+msgid "Sebastien Fricker"
+msgstr ""
+
+#: main.cpp:174
+msgid "Windows installer"
+msgstr ""
+
+#: main.cpp:175
+msgid "Stephan Binner"
+msgstr ""
+
+#: main.cpp:175
+msgid "i18n-help"
+msgstr ""
+
+#: main.cpp:176
+msgid "Stefan Partheymueller"
+msgstr ""
+
+#: main.cpp:176
+#, fuzzy
+#| msgid "From Clipboard"
+msgid "Clipboard-patch"
+msgstr "Eus ar golver"
+
+#: main.cpp:177
+msgid "David Faure"
+msgstr ""
+
+#: main.cpp:177
+msgid "KIO-Help"
+msgstr ""
+
+#: main.cpp:178
+msgid "Bernd Gehrmann"
+msgstr ""
+
+#: main.cpp:178
+msgid "Class CvsIgnoreList from Cervisia"
+msgstr ""
+
+#: main.cpp:179
+msgid "Andre Woebbeking"
+msgstr ""
+
+#: main.cpp:179
+msgid "Class StringMatcher"
+msgstr ""
+
+#: main.cpp:180
+msgid "Michael Denio"
+msgstr ""
+
+#: main.cpp:180
+msgid "Directory Equality-Coloring patch"
+msgstr ""
+
+#: main.cpp:181
+msgid "Manfred Koehler"
+msgstr ""
+
+#: main.cpp:181
+msgid "Fix for slow startup on Windows"
+msgstr ""
+
+#: main.cpp:182
+#, fuzzy
+#| msgid "Merge Error"
+msgid "Sergey Zorin"
+msgstr "Fazi en ur dastum"
+
+#: main.cpp:182
+msgid "Diff Ext for Windows"
+msgstr ""
+
+#: main.cpp:183
+msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+msgstr ""
+
+#: main.cpp:183
+msgid "GNU-Diffutils"
+msgstr ""
+
+#: main.cpp:184
+msgid "Tino Boellsterling, Timothy Mee"
+msgstr ""
+
+#: main.cpp:184
+msgid "Intensive test, use and feedback"
+msgstr ""
+
+#: main.cpp:185
+msgid "Michael Schmidt"
+msgstr ""
+
+#: main.cpp:185
+msgid "Mac support"
+msgstr ""
+
+#: main.cpp:186
+msgid "Valentin Rusu"
+msgstr ""
+
+#: main.cpp:186 main.cpp:187
+#, fuzzy
+#| msgid "Do Nothing"
+msgid "KDE4 porting"
+msgstr "Ober netra"
+
+#: main.cpp:187
+msgid "Albert Astals Cid"
+msgstr ""
+
+#: main.cpp:188
+msgid "Silvan Scherrer"
+msgstr ""
+
+#: main.cpp:188
+msgid "OS2 port"
+msgstr ""
+
+#: main.cpp:190
+msgid "+ Many thanks to those who reported bugs and contributed ideas!"
+msgstr ""
+
+#: main.cpp:196
+msgid "Merge the input."
+msgstr ""
+
+#: main.cpp:197
+msgid "Explicit base file. For compatibility with certain tools."
+msgstr ""
+
+#: main.cpp:198
+msgid "Output file. Implies -m. E.g.: -o newfile.txt"
+msgstr ""
+
+#: main.cpp:199
+msgid "Output file, again. (For compatibility with certain tools.)"
+msgstr ""
+
+#: main.cpp:200
+msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)"
+msgstr ""
+
+#: main.cpp:201
+msgid "Don't solve conflicts automatically. (For compatibility...)"
+msgstr ""
+
+#: main.cpp:202
+msgid "Visible name replacement for input file 1 (base)."
+msgstr ""
+
+#: main.cpp:203
+msgid "Visible name replacement for input file 2."
+msgstr ""
+
+#: main.cpp:204
+msgid "Visible name replacement for input file 3."
+msgstr ""
+
+#: main.cpp:205
+msgid "Alternative visible name replacement. Supply this once for every input."
+msgstr ""
+
+#: main.cpp:206
+msgid ""
+"Override a config setting. Use once for every setting. E.g.: --cs "
+"\"AutoAdvance=1\""
+msgstr ""
+
+#: main.cpp:207
+msgid "Show list of config settings and current values."
+msgstr ""
+
+#: main.cpp:208
+msgid "Use a different config file."
+msgstr ""
+
+#: main.cpp:211
+msgid "file1 to open (base, if not specified via --base)"
+msgstr ""
+
+#: main.cpp:212
+msgid "file2 to open"
+msgstr "restr2 da zigeriñ"
+
+#: main.cpp:213
+msgid "file3 to open"
+msgstr "restr3 da zigeriñ"
+
+#: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976
+#: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002
+#: mergeresultwindow.cpp:1014
+#, kde-format
+msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)"
+msgstr ""
+
+#: mergeresultwindow.cpp:303
+msgid ""
+"The output has been modified.\n"
+"If you continue your changes will be lost."
+msgstr ""
+
+#: mergeresultwindow.cpp:834 pdiff.cpp:532
+msgid "All input files are binary equal."
+msgstr ""
+
+#: mergeresultwindow.cpp:836
+msgid "All input files contain the same text."
+msgstr ""
+
+#: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840
+#: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540
+#, kde-format
+msgid "Files %1 and %2 are binary equal.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841
+#: mergeresultwindow.cpp:843
+#, kde-format
+msgid "Files %1 and %2 have equal text.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:849
+msgid "Total number of conflicts: "
+msgstr ""
+
+#: mergeresultwindow.cpp:850
+msgid ""
+"\n"
+"Nr of automatically solved conflicts: "
+msgstr ""
+
+#: mergeresultwindow.cpp:851
+msgid ""
+"\n"
+"Nr of unsolved conflicts: "
+msgstr ""
+
+#: mergeresultwindow.cpp:853
+msgid "Conflicts"
+msgstr ""
+
+#: mergeresultwindow.cpp:1728
+msgid "<No src line>"
+msgstr ""
+
+#: mergeresultwindow.cpp:1736
+msgid "<Merge Conflict (Whitespace only)>"
+msgstr ""
+
+#: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517
+msgid "<Merge Conflict>"
+msgstr ""
+
+#: mergeresultwindow.cpp:2725
+msgid ""
+"Not all conflicts are solved yet.\n"
+"File not saved.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736
+msgid "Conflicts Left"
+msgstr ""
+
+#: mergeresultwindow.cpp:2734
+msgid ""
+"There is a line end style conflict. Please choose the line end style "
+"manually.\n"
+"File not saved.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:2748
+msgid ""
+"\n"
+"\n"
+"Creating backup failed. File not saved."
+msgstr ""
+
+#: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792
+msgid "File Save Error"
+msgstr ""
+
+#: mergeresultwindow.cpp:2792
+msgid "Error while writing."
+msgstr "Fazi en ur skrivañ."
+
+#: mergeresultwindow.cpp:3122
+msgid "Output"
+msgstr "Ezkas"
+
+#: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314
+msgid "[Modified]"
+msgstr "[Kemmet]"
+
+#: mergeresultwindow.cpp:3141
+msgid "Encoding for saving"
+msgstr ""
+
+#: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737
+#: optiondialog.cpp:762
+msgid "Line end style:"
+msgstr ""
+
+#: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767
+msgid "Unix"
+msgstr ""
+
+#: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737
+msgid "DOS"
+msgstr ""
+
+#: mergeresultwindow.cpp:3229
+msgid "Conflict"
+msgstr ""
+
+#: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263
+#: mergeresultwindow.cpp:3265
+msgid "Codec from"
+msgstr ""
+
+#: kdiff3_part.cpp:157 kdiff3_part.cpp:234
+msgid "Couldn't find files for comparison."
+msgstr ""
+
+#: kdiff3_part.cpp:302
+msgid "KDiff3Part"
+msgstr "KDiff3Part"
+
+#: fileaccess.cpp:612
+msgid ""
+"While trying to make a backup, deleting an older backup failed. \n"
+"Filename: "
+msgstr ""
+
+#: fileaccess.cpp:619
+msgid ""
+"While trying to make a backup, renaming failed. \n"
+"Filenames: "
+msgstr ""
+
+#: fileaccess.cpp:643
+#, kde-format
+msgid "Getting file status: %1"
+msgstr ""
+
+#: fileaccess.cpp:686
+#, kde-format
+msgid "Reading file: %1"
+msgstr "Emaon o lenn ar restr : %1"
+
+#: fileaccess.cpp:723
+#, kde-format
+msgid "Writing file: %1"
+msgstr "Emaon o skrivañ ar restr : %1"
+
+#: fileaccess.cpp:751
+msgid "Out of memory"
+msgstr "Memor ebet"
+
+#: fileaccess.cpp:786
+#, kde-format
+msgid "Making directory: %1"
+msgstr "Oc'h oberiañ ar renkell : %1"
+
+#: fileaccess.cpp:806
+#, kde-format
+msgid "Removing directory: %1"
+msgstr "Emaon o tilemel ar renkell : %1"
+
+#: fileaccess.cpp:821
+#, kde-format
+msgid "Removing file: %1"
+msgstr "Emaon o tilemel ar restr : %1"
+
+#: fileaccess.cpp:837
+#, kde-format
+msgid "Creating symbolic link: %1 -> %2"
+msgstr ""
+
+#: fileaccess.cpp:864
+#, kde-format
+msgid "Renaming file: %1 -> %2"
+msgstr "Emaon oc'h adenvel ar restr : %1 -> %2"
+
+#: fileaccess.cpp:897
+#, kde-format
+msgid "Copying file: %1 -> %2"
+msgstr "Emaon oc'h eilañ ar restr : %1 -> %2"
+
+#: fileaccess.cpp:911
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for reading failed. Filename: "
+"%1"
+msgstr ""
+
+#: fileaccess.cpp:917
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for writing failed. Filename: "
+"%1"
+msgstr ""
+
+#: fileaccess.cpp:932
+#, kde-format
+msgid "Error during file copy operation: Reading failed. Filename: %1"
+msgstr ""
+
+#: fileaccess.cpp:941
+#, kde-format
+msgid "Error during file copy operation: Writing failed. Filename: %1"
+msgstr ""
+
+#: fileaccess.cpp:1231
+msgid "Reading directory: "
+msgstr "Emaon o lenn ar renkell :"
+
+#: fileaccess.cpp:1355
+#, kde-format
+msgid "Listing directory: %1"
+msgstr ""
+
+#: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396
+msgid "&Cancel"
+msgstr ""
+
+#: difftextwindow.cpp:403
+#, fuzzy
+#| msgid "Link: "
+msgid "Line"
+msgstr "Liamm : "
+
+#: difftextwindow.cpp:405
+#, fuzzy
+#| msgid "not available"
+msgid "Line not available"
+msgstr "n'eo ket da gaout"
+
+#: difftextwindow.cpp:1703 difftextwindow.cpp:1736
+msgid "Encoding:"
+msgstr ""
+
+#: difftextwindow.cpp:1759 kdiff3.cpp:831
+msgid "Top line"
+msgstr ""
+
+#: difftextwindow.cpp:1769
+msgid "End"
+msgstr "Dibenn"
+
+#: kdiff3.cpp:169
+msgid "Current Configuration:"
+msgstr ""
+
+#: kdiff3.cpp:174
+msgid "Config Option Error:"
+msgstr "Fazi er dibarzh kefluniañ :"
+
+#: kdiff3.cpp:219
+msgid "Option --auto used, but no output file specified."
+msgstr ""
+
+#: kdiff3.cpp:369
+msgid "Option --auto ignored for directory comparison."
+msgstr ""
+
+#: kdiff3.cpp:405
+msgid "Saving failed."
+msgstr "Fazi en ur enrollañ."
+
+#: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214
+msgid "Opening of these files failed:"
+msgstr ""
+
+#: kdiff3.cpp:449
+msgid "File Open Error"
+msgstr "Fazi en ur zigeriñ ar restr"
+
+#: kdiff3.cpp:477
+msgid "Opens documents for comparison..."
+msgstr ""
+
+#: kdiff3.cpp:479
+#, fuzzy
+#| msgid "Ready."
+msgid "Reload"
+msgstr "Prest."
+
+#: kdiff3.cpp:482
+msgid "Saves the merge result. All conflicts must be solved!"
+msgstr ""
+
+#: kdiff3.cpp:484
+msgid "Saves the current document as..."
+msgstr "Enrollañ a ra an teul red e ..."
+
+#: kdiff3.cpp:487
+msgid "Print the differences"
+msgstr ""
+
+#: kdiff3.cpp:490
+msgid "Quits the application"
+msgstr "Kuitaat a ra ar meziant"
+
+#: kdiff3.cpp:492
+msgid "Cuts the selected section and puts it to the clipboard"
+msgstr ""
+
+#: kdiff3.cpp:494
+msgid "Copies the selected section to the clipboard"
+msgstr "Eilañ a ra an dachenn dibabet er golver"
+
+#: kdiff3.cpp:496
+msgid "Pastes the clipboard contents to current position"
+msgstr ""
+
+#: kdiff3.cpp:498
+msgid "Select everything in current window"
+msgstr ""
+
+#: kdiff3.cpp:500
+msgid "Search for a string"
+msgstr ""
+
+#: kdiff3.cpp:502
+msgid "Search again for the string"
+msgstr ""
+
+#: kdiff3.cpp:507
+msgid "Enables/disables the statusbar"
+msgstr "Kuzhat/Diskouez ar varenn stad"
+
+#: kdiff3.cpp:511
+msgid "Configure KDiff3..."
+msgstr "Kefluniañ KDiff3 ..."
+
+#: kdiff3.cpp:532
+msgid "Go to Current Delta"
+msgstr ""
+
+#: kdiff3.cpp:532
+msgid ""
+"Current\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:534
+msgid "Go to First Delta"
+msgstr ""
+
+#: kdiff3.cpp:534
+msgid ""
+"First\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:536
+msgid "Go to Last Delta"
+msgstr ""
+
+#: kdiff3.cpp:536
+msgid ""
+"Last\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:538
+msgid "(Skips white space differences when \"Show White Space\" is disabled.)"
+msgstr ""
+
+#: kdiff3.cpp:539
+msgid ""
+"(Does not skip white space differences even when \"Show White Space\" is "
+"disabled.)"
+msgstr ""
+
+#: kdiff3.cpp:540
+msgid "Go to Previous Delta"
+msgstr ""
+
+#: kdiff3.cpp:540
+msgid ""
+"Prev\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:542
+msgid "Go to Next Delta"
+msgstr ""
+
+#: kdiff3.cpp:542
+msgid ""
+"Next\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:544
+msgid "Go to Previous Conflict"
+msgstr ""
+
+#: kdiff3.cpp:544
+msgid ""
+"Prev\n"
+"Conflict"
+msgstr ""
+
+#: kdiff3.cpp:546
+msgid "Go to Next Conflict"
+msgstr ""
+
+#: kdiff3.cpp:546
+msgid ""
+"Next\n"
+"Conflict"
+msgstr ""
+
+#: kdiff3.cpp:548
+msgid "Go to Previous Unsolved Conflict"
+msgstr ""
+
+#: kdiff3.cpp:548
+msgid ""
+"Prev\n"
+"Unsolved"
+msgstr ""
+
+#: kdiff3.cpp:550
+msgid "Go to Next Unsolved Conflict"
+msgstr ""
+
+#: kdiff3.cpp:550
+msgid ""
+"Next\n"
+"Unsolved"
+msgstr ""
+
+#: kdiff3.cpp:552
+msgid "Select Line(s) From A"
+msgstr ""
+
+#: kdiff3.cpp:552
+msgid ""
+"Choose\n"
+"A"
+msgstr ""
+
+#: kdiff3.cpp:553
+msgid "Select Line(s) From B"
+msgstr ""
+
+#: kdiff3.cpp:553
+msgid ""
+"Choose\n"
+"B"
+msgstr ""
+
+#: kdiff3.cpp:554
+msgid "Select Line(s) From C"
+msgstr ""
+
+#: kdiff3.cpp:554
+msgid ""
+"Choose\n"
+"C"
+msgstr ""
+
+#: kdiff3.cpp:555
+msgid "Automatically Go to Next Unsolved Conflict After Source Selection"
+msgstr ""
+
+#: kdiff3.cpp:555
+#, fuzzy
+#| msgid "Auto Select"
+msgid ""
+"Auto\n"
+"Next"
+msgstr "Dibab ent emgefreek"
+
+#: kdiff3.cpp:557
+msgid "Show Space && Tabulator Characters for Differences"
+msgstr ""
+
+#: kdiff3.cpp:557
+msgid ""
+"White\n"
+"Characters"
+msgstr ""
+
+#: kdiff3.cpp:558
+msgid "Show White Space"
+msgstr ""
+
+#: kdiff3.cpp:558
+msgid ""
+"White\n"
+"Deltas"
+msgstr ""
+
+#: kdiff3.cpp:560
+msgid "Show Line Numbers"
+msgstr "Diskouez niverennoù linenn"
+
+#: kdiff3.cpp:560
+#, fuzzy
+#| msgid "Show Line Numbers"
+msgid ""
+"Line\n"
+"Numbers"
+msgstr "Diskouez niverennoù linenn"
+
+#: kdiff3.cpp:561
+msgid "Choose A Everywhere"
+msgstr ""
+
+#: kdiff3.cpp:562
+msgid "Choose B Everywhere"
+msgstr ""
+
+#: kdiff3.cpp:563
+msgid "Choose C Everywhere"
+msgstr ""
+
+#: kdiff3.cpp:564
+msgid "Choose A for All Unsolved Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:565
+msgid "Choose B for All Unsolved Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:566
+msgid "Choose C for All Unsolved Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:567
+msgid "Choose A for All Unsolved Whitespace Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:568
+msgid "Choose B for All Unsolved Whitespace Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:569
+msgid "Choose C for All Unsolved Whitespace Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:570
+msgid "Automatically Solve Simple Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:571
+msgid "Set Deltas to Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:572
+msgid "Run Regular Expression Auto Merge"
+msgstr ""
+
+#: kdiff3.cpp:573
+msgid "Automatically Solve History Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:574
+msgid "Split Diff At Selection"
+msgstr ""
+
+#: kdiff3.cpp:575
+msgid "Join Selected Diffs"
+msgstr ""
+
+#: kdiff3.cpp:577
+msgid "Show Window A"
+msgstr "Diskouez ar prenestr A"
+
+#: kdiff3.cpp:578
+msgid "Show Window B"
+msgstr "Diskouez ar prenestr B"
+
+#: kdiff3.cpp:579
+msgid "Show Window C"
+msgstr "Diskouez ar prenestr C"
+
+#: kdiff3.cpp:580 kdiff3.cpp:591
+msgid "Focus Next Window"
+msgstr "Fokuz ouzh ar brenestr a-heul"
+
+#: kdiff3.cpp:582
+msgid "Normal Overview"
+msgstr ""
+
+#: kdiff3.cpp:583
+msgid "A vs. B Overview"
+msgstr ""
+
+#: kdiff3.cpp:584
+msgid "A vs. C Overview"
+msgstr ""
+
+#: kdiff3.cpp:585
+msgid "B vs. C Overview"
+msgstr ""
+
+#: kdiff3.cpp:586
+msgid "Word Wrap Diff Windows"
+msgstr ""
+
+#: kdiff3.cpp:587
+msgid "Add Manual Diff Alignment"
+msgstr ""
+
+#: kdiff3.cpp:588
+msgid "Clear All Manual Diff Alignments"
+msgstr ""
+
+#: kdiff3.cpp:593
+msgid "Focus Prev Window"
+msgstr "Fokuz ouzh ar brenestr diaraok"
+
+#: kdiff3.cpp:594
+msgid "Toggle Split Orientation"
+msgstr ""
+
+#: kdiff3.cpp:596
+msgid "Dir && Text Split Screen View"
+msgstr ""
+
+#: kdiff3.cpp:598
+msgid "Toggle Between Dir && Text View"
+msgstr ""
+
+#: kdiff3.cpp:654 pdiff.cpp:1812
+msgid "The merge result hasn't been saved."
+msgstr ""
+
+#: kdiff3.cpp:656
+msgid "Save && Quit"
+msgstr "Enrollañ && kuitaat"
+
+#: kdiff3.cpp:657
+msgid "Quit Without Saving"
+msgstr "Kuitaat hep enrollañ"
+
+#: kdiff3.cpp:665 pdiff.cpp:1823
+msgid "Saving the merge result failed."
+msgstr ""
+
+#: kdiff3.cpp:676 pdiff.cpp:1078
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort?"
+msgstr ""
+
+#: kdiff3.cpp:701
+msgid "Saving file..."
+msgstr "Emaon oc'h enrollañ ar restr ..."
+
+#: kdiff3.cpp:718
+msgid "Saving file with a new filename..."
+msgstr "Oc'h enrollañ ar restr gant un anv restr nevez ..."
+
+#: kdiff3.cpp:781
+#, fuzzy
+#| msgid "Printing completed."
+msgid "Printing not implemented."
+msgstr "Echu eo moulañ."
+
+#: kdiff3.cpp:815
+#, fuzzy
+#| msgid "Printing..."
+msgid "Printing..."
+msgstr "Emaon o voulañ ..."
+
+#: kdiff3.cpp:956
+#, fuzzy
+#| msgid "Selection"
+msgid "Selection"
+msgstr "Diuzadenn"
+
+#: kdiff3.cpp:982
+msgid "Printing completed."
+msgstr "Echu eo moulañ."
+
+#: kdiff3.cpp:986
+msgid "Printing aborted."
+msgstr "Nullet eo ar voulañ."
+
+#: kdiff3.cpp:993
+msgid "Exiting..."
+msgstr "Emaon o kuitaat ..."
+
+#: kdiff3.cpp:1006
+msgid "Toggling toolbar..."
+msgstr "Emaon o kuzhat/diskouez ar varenn ostilh ..."
+
+#: kdiff3.cpp:1027
+msgid "Toggle the statusbar..."
+msgstr "Diskouez/Kuzhat ar varenn stad ..."
+
+#: smalldialogs.cpp:58
+msgid "A (Base):"
+msgstr ""
+
+#: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99
+#: smalldialogs.cpp:142
+msgid "File..."
+msgstr "Restr ..."
+
+#: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101
+#: smalldialogs.cpp:144
+msgid "Dir..."
+msgstr "Renkell ..."
+
+#: smalldialogs.cpp:93
+msgid "C (Optional):"
+msgstr ""
+
+#: smalldialogs.cpp:116
+msgid "Swap/Copy Names ..."
+msgstr ""
+
+#: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123
+#, kde-format
+msgid "Swap %1<->%2"
+msgstr ""
+
+#: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126
+#, kde-format
+msgid "Copy %1->Output"
+msgstr ""
+
+#: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129
+#, kde-format
+msgid "Swap %1<->Output"
+msgstr ""
+
+#: smalldialogs.cpp:136
+msgid "Output (optional):"
+msgstr ""
+
+#: smalldialogs.cpp:168
+msgid "Configure..."
+msgstr "Kefluniañ ..."
+
+#: smalldialogs.cpp:174
+msgid "&OK"
+msgstr ""
+
+#: smalldialogs.cpp:362
+msgid "Search text:"
+msgstr "Skrid klasket :"
+
+#: smalldialogs.cpp:369
+msgid "Case sensitive"
+msgstr "Evezhiek ouzh ar c'hef"
+
+#: smalldialogs.cpp:372
+msgid "Search A"
+msgstr "Klask A"
+
+#: smalldialogs.cpp:377
+msgid "Search B"
+msgstr "Klask B"
+
+#: smalldialogs.cpp:382
+msgid "Search C"
+msgstr "Klask C"
+
+#: smalldialogs.cpp:387
+msgid "Search output"
+msgstr ""
+
+#: smalldialogs.cpp:392
+msgid "&Search"
+msgstr "&Klask"
+
+#: smalldialogs.cpp:409
+msgid "Regular Expression Tester"
+msgstr ""
+
+#: smalldialogs.cpp:414 optiondialog.cpp:936
+msgid "Auto merge regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:422
+msgid "Example auto merge line:"
+msgstr ""
+
+#: smalldialogs.cpp:424
+msgid "To test auto merge, copy a line as used in your files."
+msgstr ""
+
+#: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494
+msgid "Match result:"
+msgstr ""
+
+#: smalldialogs.cpp:441 optiondialog.cpp:962
+msgid "History start regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:449
+msgid "Example history start line (with leading comment):"
+msgstr ""
+
+#: smalldialogs.cpp:451
+msgid ""
+"Copy a history start line as used in your files,\n"
+"including the leading comment."
+msgstr ""
+
+#: smalldialogs.cpp:469 optiondialog.cpp:972
+msgid "History entry start regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:477
+msgid "History sort key order:"
+msgstr ""
+
+#: smalldialogs.cpp:485
+msgid "Example history entry start line (without leading comment):"
+msgstr ""
+
+#: smalldialogs.cpp:487
+msgid ""
+"Copy a history entry start line as used in your files,\n"
+"but omit the leading comment."
+msgstr ""
+
+#: smalldialogs.cpp:501
+msgid "Sort key result:"
+msgstr ""
+
+#: smalldialogs.cpp:508
+msgid "OK"
+msgstr ""
+
+#: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583
+msgid "Match success."
+msgstr ""
+
+#: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589
+msgid "Match failed."
+msgstr ""
+
+#: smalldialogs.cpp:574
+msgid "Opening and closing parentheses do not match in regular expression."
+msgstr ""
+
+#: optiondialog.cpp:367
+msgid "Unicode, 8 bit"
+msgstr "Unicode, 8 bit"
+
+#: optiondialog.cpp:368
+msgid "Unicode"
+msgstr "Unicode"
+
+#: optiondialog.cpp:369
+msgid "Latin1"
+msgstr "Latin1"
+
+#: optiondialog.cpp:388
+msgid "Change this if non-ASCII characters are not displayed correctly."
+msgstr ""
+
+#: optiondialog.cpp:465
+#, fuzzy
+#| msgid "Configure..."
+msgid "Configure"
+msgstr "Kefluniañ ..."
+
+#: optiondialog.cpp:531
+msgid "Font"
+msgstr ""
+
+#: optiondialog.cpp:532
+msgid "Editor & Diff Output Font"
+msgstr ""
+
+#: optiondialog.cpp:556
+msgid "Italic font for deltas"
+msgstr ""
+
+#: optiondialog.cpp:559
+msgid ""
+"Selects the italic version of the font for differences.\n"
+"If the font doesn't support italic characters, then this does nothing."
+msgstr ""
+
+#: optiondialog.cpp:568
+msgid "Color"
+msgstr "Liv"
+
+#: optiondialog.cpp:569
+msgid "Colors Settings"
+msgstr "Kefluniadur al livioù"
+
+#: optiondialog.cpp:588
+msgid "Editor and Diff Views:"
+msgstr ""
+
+#: optiondialog.cpp:596
+msgid "Foreground color:"
+msgstr "Liv war-c'horre :"
+
+#: optiondialog.cpp:603
+msgid "Background color:"
+msgstr "Liv an drekleur :"
+
+#: optiondialog.cpp:612
+msgid "Diff background color:"
+msgstr ""
+
+#: optiondialog.cpp:620
+msgid "Color A:"
+msgstr "Liv A :"
+
+#: optiondialog.cpp:628
+msgid "Color B:"
+msgstr "Liv B :"
+
+#: optiondialog.cpp:636
+msgid "Color C:"
+msgstr "Liv C :"
+
+#: optiondialog.cpp:643
+msgid "Conflict color:"
+msgstr ""
+
+#: optiondialog.cpp:651
+msgid "Current range background color:"
+msgstr ""
+
+#: optiondialog.cpp:659
+msgid "Current range diff background color:"
+msgstr ""
+
+#: optiondialog.cpp:666
+msgid "Color for manually aligned difference ranges:"
+msgstr ""
+
+#: optiondialog.cpp:672
+msgid "Directory Comparison View:"
+msgstr ""
+
+#: optiondialog.cpp:678
+msgid "Newest file color:"
+msgstr ""
+
+#: optiondialog.cpp:682
+msgid ""
+"Changing this color will only be effective when starting the next directory "
+"comparison."
+msgstr ""
+
+#: optiondialog.cpp:687
+msgid "Oldest file color:"
+msgstr ""
+
+#: optiondialog.cpp:695
+msgid "Middle age file color:"
+msgstr ""
+
+#: optiondialog.cpp:703
+msgid "Color for missing files:"
+msgstr ""
+
+#: optiondialog.cpp:717
+msgid "Editor"
+msgstr "Aozer"
+
+#: optiondialog.cpp:718
+msgid "Editor Behavior"
+msgstr "Emzalc'h an aozer"
+
+#: optiondialog.cpp:732
+msgid "Tab inserts spaces"
+msgstr ""
+
+#: optiondialog.cpp:735
+msgid ""
+"On: Pressing tab generates the appropriate number of spaces.\n"
+"Off: A tab character will be inserted."
+msgstr ""
+
+#: optiondialog.cpp:741
+msgid "Tab size:"
+msgstr "Ment ar bevennig :"
+
+#: optiondialog.cpp:747
+msgid "Auto indentation"
+msgstr "Emgeflosk"
+
+#: optiondialog.cpp:750
+msgid "On: The indentation of the previous line is used for a new line.\n"
+msgstr ""
+
+#: optiondialog.cpp:754
+msgid "Auto copy selection"
+msgstr ""
+
+#: optiondialog.cpp:757
+msgid ""
+"On: Any selection is immediately written to the clipboard.\n"
+"Off: You must explicitely copy e.g. via Ctrl-C."
+msgstr ""
+
+#: optiondialog.cpp:768
+#, fuzzy
+#| msgid "&Window"
+msgid "Dos/Windows"
+msgstr "&Prenestr"
+
+#: optiondialog.cpp:769
+#, fuzzy
+#| msgid "Auto Select"
+msgid "Autodetect"
+msgstr "Dibab ent emgefreek"
+
+#: optiondialog.cpp:772
+msgid ""
+"Sets the line endings for when an edited file is saved.\n"
+"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A"
+msgstr ""
+
+#: optiondialog.cpp:784
+msgid "Diff"
+msgstr "Diff"
+
+#: optiondialog.cpp:785
+#, fuzzy
+msgid "Diff Settings"
+msgstr "Kefluniadur rann-vro"
+
+#: optiondialog.cpp:809
+msgid "Treat as white space."
+msgstr ""
+
+#: optiondialog.cpp:811
+msgid "Ignore numbers"
+msgstr ""
+
+#: optiondialog.cpp:814
+msgid ""
+"Ignore number characters during line matching phase. (Similar to Ignore "
+"white space.)\n"
+"Might help to compare files with numeric data."
+msgstr ""
+
+#: optiondialog.cpp:819
+msgid "Ignore C/C++ comments"
+msgstr ""
+
+#: optiondialog.cpp:821
+msgid "Treat C/C++ comments like white space."
+msgstr ""
+
+#: optiondialog.cpp:825
+msgid "Ignore case"
+msgstr ""
+
+#: optiondialog.cpp:828
+msgid "Treat case differences like white space changes. ('a'<=>'A')"
+msgstr ""
+
+#: optiondialog.cpp:832
+msgid "Preprocessor command:"
+msgstr ""
+
+#: optiondialog.cpp:836
+msgid "User defined pre-processing. (See the docs for details.)"
+msgstr ""
+
+#: optiondialog.cpp:839
+msgid "Line-matching preprocessor command:"
+msgstr ""
+
+#: optiondialog.cpp:843
+msgid ""
+"This pre-processor is only used during line matching.\n"
+"(See the docs for details.)"
+msgstr ""
+
+#: optiondialog.cpp:846
+msgid "Try hard (slower)"
+msgstr ""
+
+#: optiondialog.cpp:849
+msgid ""
+"Enables the --minimal option for the external diff.\n"
+"The analysis of big files will be much slower."
+msgstr ""
+
+#: optiondialog.cpp:854
+msgid "Align B and C for 3 input files"
+msgstr ""
+
+#: optiondialog.cpp:857
+msgid ""
+"Try to align B and C when comparing or merging three input files.\n"
+"Not recommended for merging because merge might get more complicated.\n"
+"(Default is off.)"
+msgstr ""
+
+#: optiondialog.cpp:870
+#, fuzzy
+msgid "Merge Settings"
+msgstr "Kefluniadur rann-vro"
+
+#: optiondialog.cpp:885
+msgid "Auto advance delay (ms):"
+msgstr ""
+
+#: optiondialog.cpp:890
+msgid ""
+"When in Auto-Advance mode the result of the current selection is shown \n"
+"for the specified time, before jumping to the next conflict. Range: 0-2000 ms"
+msgstr ""
+
+#: optiondialog.cpp:895
+#, fuzzy
+#| msgid "Show Window A"
+msgid "Show info dialogs"
+msgstr "Diskouez ar prenestr A"
+
+#: optiondialog.cpp:897
+msgid "Show a dialog with information about the number of conflicts."
+msgstr ""
+
+#: optiondialog.cpp:900
+msgid "White space 2-file merge default:"
+msgstr ""
+
+#: optiondialog.cpp:904 optiondialog.cpp:917
+msgid "Manual Choice"
+msgstr "Choazh diwar zorn"
+
+#: optiondialog.cpp:908 optiondialog.cpp:922
+msgid ""
+"Allow the merge algorithm to automatically select an input for white-space-"
+"only changes."
+msgstr ""
+
+#: optiondialog.cpp:913
+msgid "White space 3-file merge default:"
+msgstr ""
+
+#: optiondialog.cpp:927
+msgid "Automatic Merge Regular Expression"
+msgstr ""
+
+#: optiondialog.cpp:940
+msgid ""
+"Regular expression for lines where KDiff3 should automatically choose one "
+"source.\n"
+"When a line with a conflict matches the regular expression then\n"
+"- if available - C, otherwise B will be chosen."
+msgstr ""
+
+#: optiondialog.cpp:946
+msgid "Run regular expression auto merge on merge start"
+msgstr ""
+
+#: optiondialog.cpp:948
+msgid ""
+"Run the merge for auto merge regular expressions\n"
+"immediately when a merge starts.\n"
+msgstr ""
+
+#: optiondialog.cpp:953
+msgid "Version Control History Merging"
+msgstr ""
+
+#: optiondialog.cpp:966
+msgid ""
+"Regular expression for the start of the version control history entry.\n"
+"Usually this line contains the \"$Log$\" keyword.\n"
+"Default value: \".*\\$Log.*\\$.*\""
+msgstr ""
+
+#: optiondialog.cpp:984
+msgid ""
+"A version control history entry consists of several lines.\n"
+"Specify the regular expression to detect the first line (without the leading "
+"comment).\n"
+"Use parentheses to group the keys you want to use for sorting.\n"
+"If left empty, then KDiff3 assumes that empty lines separate history "
+"entries.\n"
+"See the documentation for details."
+msgstr ""
+
+#: optiondialog.cpp:992
+msgid "History merge sorting"
+msgstr ""
+
+#: optiondialog.cpp:994
+msgid "Sort version control history by a key."
+msgstr ""
+
+#: optiondialog.cpp:1004
+msgid "History entry start sort key order:"
+msgstr ""
+
+#: optiondialog.cpp:1008
+msgid ""
+"Each pair of parentheses used in the regular expression for the history "
+"start entry\n"
+"groups a key that can be used for sorting.\n"
+"Specify the list of keys (that are numbered in order of occurrence\n"
+"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n"
+"If left empty, then no sorting will be done.\n"
+"See the documentation for details."
+msgstr ""
+
+#: optiondialog.cpp:1019
+msgid "Merge version control history on merge start"
+msgstr ""
+
+#: optiondialog.cpp:1021
+msgid "Run version control history automerge on merge start."
+msgstr ""
+
+#: optiondialog.cpp:1025
+#, fuzzy
+msgid "Max number of history entries:"
+msgstr "Niver a is-renkelloù :"
+
+#: optiondialog.cpp:1028
+msgid "Cut off after specified number. Use -1 for infinite number of entries."
+msgstr ""
+
+#: optiondialog.cpp:1032
+msgid "Test your regular expressions"
+msgstr ""
+
+#: optiondialog.cpp:1037
+msgid "Irrelevant merge command:"
+msgstr ""
+
+#: optiondialog.cpp:1041
+msgid ""
+"If specified this script is run after automerge\n"
+"when no other relevant changes were detected.\n"
+"Called with the parameters: filename1 filename2 filename3"
+msgstr ""
+
+#: optiondialog.cpp:1047
+msgid "Auto save and quit on merge without conflicts"
+msgstr ""
+
+#: optiondialog.cpp:1050
+msgid ""
+"If KDiff3 was started for a file-merge from the command line and all\n"
+"conflicts are solvable without user interaction then automatically save and "
+"quit.\n"
+"(Similar to command line option \"--auto\".)"
+msgstr ""
+
+#: optiondialog.cpp:1061 optiondialog.cpp:1062
+#, fuzzy
+#| msgid "&Directory"
+msgid "Directory"
+msgstr "&Renkell"
+
+#: optiondialog.cpp:1075
+msgid "Recursive directories"
+msgstr ""
+
+#: optiondialog.cpp:1077
+msgid "Whether to analyze subdirectories or not."
+msgstr ""
+
+#: optiondialog.cpp:1079
+msgid "File pattern(s):"
+msgstr "Sil(où) restr :"
+
+#: optiondialog.cpp:1084
+msgid ""
+"Pattern(s) of files to be analyzed. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1090
+msgid "File-anti-pattern(s):"
+msgstr ""
+
+#: optiondialog.cpp:1095
+msgid ""
+"Pattern(s) of files to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1101
+msgid "Dir-anti-pattern(s):"
+msgstr ""
+
+#: optiondialog.cpp:1106
+msgid ""
+"Pattern(s) of directories to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1112
+msgid "Use .cvsignore"
+msgstr "Implijit .cvsignore"
+
+#: optiondialog.cpp:1115
+msgid ""
+"Extends the antipattern to anything that would be ignored by CVS.\n"
+"Via local \".cvsignore\" files this can be directory specific."
+msgstr ""
+
+#: optiondialog.cpp:1120
+msgid "Find hidden files and directories"
+msgstr ""
+
+#: optiondialog.cpp:1123
+msgid "Finds files and directories with the hidden attribute."
+msgstr ""
+
+#: optiondialog.cpp:1125
+msgid "Finds files and directories starting with '.'."
+msgstr ""
+
+#: optiondialog.cpp:1129
+msgid "Follow file links"
+msgstr "Heuliañ liammoù ar retroù"
+
+#: optiondialog.cpp:1132
+msgid ""
+"On: Compare the file the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+
+#: optiondialog.cpp:1137
+msgid "Follow directory links"
+msgstr "Heuliañ liammoù ar renkelloù"
+
+#: optiondialog.cpp:1140
+msgid ""
+"On: Compare the directory the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+
+#: optiondialog.cpp:1156
+msgid "Case sensitive filename comparison"
+msgstr ""
+
+#: optiondialog.cpp:1159
+msgid ""
+"The directory comparison will compare files or directories when their names "
+"match.\n"
+"Set this option if the case of the names must match. (Default for Windows is "
+"off, otherwise on.)"
+msgstr ""
+
+#: optiondialog.cpp:1163
+msgid "File Comparison Mode"
+msgstr ""
+
+#: optiondialog.cpp:1169
+msgid "Binary comparison"
+msgstr ""
+
+#: optiondialog.cpp:1170
+msgid "Binary comparison of each file. (Default)"
+msgstr ""
+
+#: optiondialog.cpp:1173
+msgid "Full analysis"
+msgstr ""
+
+#: optiondialog.cpp:1174
+msgid ""
+"Do a full analysis and show statistics information in extra columns.\n"
+"(Slower than a binary comparison, much slower for binary files.)"
+msgstr ""
+
+#: optiondialog.cpp:1178
+msgid "Trust the size and modification date (unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1179
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"Files with equal contents but different modification dates will appear as "
+"different.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+
+#: optiondialog.cpp:1184
+msgid ""
+"Trust the size and date, but use binary comparison if date does not match "
+"(unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1185
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"If the dates are not equal but the sizes are, use binary comparison.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+
+#: optiondialog.cpp:1190
+msgid "Trust the size (unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1191
+msgid ""
+"Assume that files are equal if their file lengths are equal.\n"
+"Useful for big directories or slow networks when the date is modified during "
+"download."
+msgstr ""
+
+#: optiondialog.cpp:1199
+msgid "Synchronize directories"
+msgstr ""
+
+#: optiondialog.cpp:1202
+msgid ""
+"Offers to store files in both directories so that\n"
+"both directories are the same afterwards.\n"
+"Works only when comparing two directories without specifying a destination."
+msgstr ""
+
+#: optiondialog.cpp:1208
+msgid "White space differences considered equal"
+msgstr ""
+
+#: optiondialog.cpp:1211
+msgid ""
+"If files differ only by white space consider them equal.\n"
+"This is only active when full analysis is chosen."
+msgstr ""
+
+#: optiondialog.cpp:1217
+msgid "Copy newer instead of merging (unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1220
+msgid ""
+"Don't look inside, just take the newer file.\n"
+"(Use this only if you know what you are doing!)\n"
+"Only effective when comparing two directories."
+msgstr ""
+
+#: optiondialog.cpp:1225
+msgid "Backup files (.orig)"
+msgstr ""
+
+#: optiondialog.cpp:1228
+msgid ""
+"If a file would be saved over an old file, then the old file\n"
+"will be renamed with a '.orig' extension instead of being deleted."
+msgstr ""
+
+#: optiondialog.cpp:1301 optiondialog.cpp:1302
+msgid "Regional Settings"
+msgstr "Kefluniadur rann-vro"
+
+#: optiondialog.cpp:1402
+msgid "Language (restart required)"
+msgstr ""
+
+#: optiondialog.cpp:1445
+msgid ""
+"Choose the language of the GUI strings or \"Auto\".\n"
+"For a change of language to take place, quit and restart KDiff3."
+msgstr ""
+
+#: optiondialog.cpp:1463
+msgid "Use the same encoding for everything:"
+msgstr ""
+
+#: optiondialog.cpp:1466
+msgid ""
+"Enable this allows to change all encodings by changing the first only.\n"
+"Disable this if different individual settings are needed."
+msgstr ""
+
+#: optiondialog.cpp:1471
+msgid "Note: Local Encoding is "
+msgstr ""
+
+#: optiondialog.cpp:1475
+msgid "File Encoding for A:"
+msgstr ""
+
+#: optiondialog.cpp:1481
+msgid ""
+"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n"
+"If the file is not Unicode then the selected encoding will be used as "
+"fallback.\n"
+"(Unicode detection depends on the first bytes of a file.)"
+msgstr ""
+
+#: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503
+msgid "Auto Detect Unicode"
+msgstr ""
+
+#: optiondialog.cpp:1490
+msgid "File Encoding for B:"
+msgstr ""
+
+#: optiondialog.cpp:1499
+msgid "File Encoding for C:"
+msgstr ""
+
+#: optiondialog.cpp:1508
+msgid "File Encoding for Merge Output and Saving:"
+msgstr ""
+
+#: optiondialog.cpp:1512
+msgid "Auto Select"
+msgstr "Dibab ent emgefreek"
+
+#: optiondialog.cpp:1515
+msgid ""
+"If enabled then the encoding from the input files is used.\n"
+"In ambiguous cases a dialog will ask the user to choose the encoding for "
+"saving."
+msgstr ""
+
+#: optiondialog.cpp:1519
+msgid "File Encoding for Preprocessor Files:"
+msgstr ""
+
+#: optiondialog.cpp:1530
+msgid "Right To Left Language"
+msgstr ""
+
+#: optiondialog.cpp:1533
+msgid ""
+"Some languages are read from right to left.\n"
+"This setting will change the viewer and editor accordingly."
+msgstr ""
+
+#: optiondialog.cpp:1548
+msgid "Integration"
+msgstr ""
+
+#: optiondialog.cpp:1549
+msgid "Integration Settings"
+msgstr ""
+
+#: optiondialog.cpp:1563
+msgid "Command line options to ignore:"
+msgstr ""
+
+#: optiondialog.cpp:1568
+msgid ""
+"List of command line options that should be ignored when KDiff3 is used by "
+"other tools.\n"
+"Several values can be specified if separated via ';'\n"
+"This will suppress the \"Unknown option\" error."
+msgstr ""
+
+#: optiondialog.cpp:1575
+msgid "Quit also via Escape key"
+msgstr ""
+
+#: optiondialog.cpp:1578
+msgid ""
+"Fast method to exit.\n"
+"For those who are used to using the Escape key."
+msgstr ""
+
+#: optiondialog.cpp:1583
+msgid "Integrate with ClearCase"
+msgstr ""
+
+#: optiondialog.cpp:1586
+msgid ""
+"Integrate with Rational ClearCase from IBM.\n"
+"Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n"
+"(Only enabled when ClearCase \"bin\" directory is in the path.)"
+msgstr ""
+
+#: optiondialog.cpp:1592
+msgid "Remove ClearCase Integration"
+msgstr ""
+
+#: optiondialog.cpp:1595
+msgid ""
+"Restore the old \"map\" file from before doing the ClearCase integration."
+msgstr ""
+
+#: optiondialog.cpp:1680
+msgid "Incompatible Font"
+msgstr ""
+
+#: optiondialog.cpp:1681
+msgid "Continue at Own Risk"
+msgstr ""
+
+#: optiondialog.cpp:1682
+msgid "Select Another Font"
+msgstr "Dibab un nodrezh all"
+
+#: optiondialog.cpp:1717
+msgid "This resets all options. Not only those of the current topic."
+msgstr ""
+
+#: pdiff.cpp:260
+msgid "PreprocessorCmd: "
+msgstr ""
+
+#: pdiff.cpp:265
+msgid "The following option(s) you selected might change data:\n"
+msgstr ""
+
+#: pdiff.cpp:266
+msgid ""
+"\n"
+"Most likely this is not wanted during a merge.\n"
+"Do you want to disable these settings or continue with these settings active?"
+msgstr ""
+
+#: pdiff.cpp:268
+msgid "Option Unsafe for Merging"
+msgstr ""
+
+#: pdiff.cpp:269
+msgid "Use These Options During Merge"
+msgstr ""
+
+#: pdiff.cpp:270
+msgid "Disable Unsafe Options"
+msgstr ""
+
+#: pdiff.cpp:300
+msgid "Loading A"
+msgstr "Emaon o kargañ A"
+
+#: pdiff.cpp:304
+msgid "Loading B"
+msgstr "Emaon o kargañ B"
+
+#: pdiff.cpp:321 pdiff.cpp:347
+msgid "Diff: A <-> B"
+msgstr ""
+
+#: pdiff.cpp:327 pdiff.cpp:372
+msgid "Linediff: A <-> B"
+msgstr ""
+
+#: pdiff.cpp:338
+msgid "Loading C"
+msgstr "Emaon o kargañ C"
+
+#: pdiff.cpp:350
+msgid "Diff: B <-> C"
+msgstr ""
+
+#: pdiff.cpp:353
+msgid "Diff: A <-> C"
+msgstr ""
+
+#: pdiff.cpp:375
+msgid "Linediff: B <-> C"
+msgstr ""
+
+#: pdiff.cpp:378
+msgid "Linediff: A <-> C"
+msgstr ""
+
+#: pdiff.cpp:534
+msgid "All input files contain the same text, but are not binary equal."
+msgstr ""
+
+#: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541
+#, kde-format
+msgid "Files %1 and %2 have equal text, but are not binary equal. \n"
+msgstr ""
+
+#: pdiff.cpp:551
+msgid ""
+"Some inputfiles don't seem to be pure textfiles.\n"
+"Note that the KDiff3-merge was not meant for binary data.\n"
+"Continue at your own risk."
+msgstr ""
+
+#: pdiff.cpp:566
+#, kde-format
+msgid ""
+"Some input characters could not be converted to valid unicode.\n"
+"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n"
+"Don't save the result if unsure. Continue at your own risk.\n"
+"Affected input files are in %1."
+msgstr ""
+
+#: pdiff.cpp:1080
+msgid "Abort"
+msgstr "Paouez"
+
+#: pdiff.cpp:1087 pdiff.cpp:1175
+msgid "Opening files..."
+msgstr "Emaon o tigeriñ ar restroù ..."
+
+#: pdiff.cpp:1152 pdiff.cpp:1223
+msgid "File open error"
+msgstr "Fazi en ur zigeriñ ar restr"
+
+#: pdiff.cpp:1255
+msgid "Cutting selection..."
+msgstr "O troc'hañ an dibab ..."
+
+#: pdiff.cpp:1276
+msgid "Copying selection to clipboard..."
+msgstr "Oc'h eilañ an dibab d'ar golver ..."
+
+#: pdiff.cpp:1292
+msgid "Inserting clipboard contents..."
+msgstr ""
+
+#: pdiff.cpp:1814
+msgid "Save && Continue"
+msgstr "Enrollañ && Kenderc'hel"
+
+#: pdiff.cpp:1815
+msgid "Continue Without Saving"
+msgstr ""
+
+#: pdiff.cpp:2018
+msgid "Search complete."
+msgstr "Echu eo ar glask."
+
+#: pdiff.cpp:2018
+msgid "Search Complete"
+msgstr ""
+
+#: pdiff.cpp:2252
+msgid "Nothing is selected in either diff input window."
+msgstr ""
+
+#: pdiff.cpp:2252
+msgid "Error while adding manual diff range"
+msgstr ""
+
+#: kdiff3_shell.cpp:76
+msgid ""
+"Could not initialize the KDiff3 part.\n"
+"This usually happens due to an installation problem. Please read the README-"
+"file in the source package for details."
+msgstr ""
+
+#: rc.cpp:1
+msgctxt "NAME OF TRANSLATORS"
+msgid "Your names"
+msgstr ""
+
+#: rc.cpp:2
+msgctxt "EMAIL OF TRANSLATORS"
+msgid "Your emails"
+msgstr ""
+
+#. i18n: file: kdiff3_part.rc:4
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:5
+msgid "&KDiff3"
+msgstr "&KDiff3"
+
+#. i18n: file: kdiff3_part.rc:13
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:8
+msgid "Configure KDiff3"
+msgstr "Kefluniañ KDiff3"
+
+#. i18n: file: kdiff3_part.rc:16
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:11
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#. i18n: file: kdiff3_shell.rc:106
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:38
+msgid "Main Toolbar"
+msgstr ""
+
+#~ msgid "C&ontinue"
+#~ msgstr "&Kenderc'hel"
+
+#~ msgid ""
+#~ "_: NAME OF TRANSLATORS\n"
+#~ "Your names"
+#~ msgstr "Thierry Vignaud, Jañ-Mai Drapier"
+
+#~ msgid ""
+#~ "_: EMAIL OF TRANSLATORS\n"
+#~ "Your emails"
+#~ msgstr "tvignaud@mandriva.com, jdrapier@club-internet.fr"
+
+#~ msgid "Enables/disables the toolbar"
+#~ msgstr "Diskouez/Kuzhat ar varrenn &ostilhoù"
+
+#~ msgid "Swap"
+#~ msgstr "Disloañ"
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "File not saved."
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "N'eo ket enrollet ar restr."
+
+#~ msgid "Delete A and B"
+#~ msgstr "Lemel A ha B"
diff --git a/po/bs/CMakeLists.txt b/po/bs/CMakeLists.txt
new file mode 100644 (file)
index 0000000..975b740
--- /dev/null
@@ -0,0 +1,2 @@
+file(GLOB _po_files *.po)
+GETTEXT_PROCESS_PO_FILES(bs ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
diff --git a/po/bs/kdiff3.po b/po/bs/kdiff3.po
new file mode 100644 (file)
index 0000000..a23980d
--- /dev/null
@@ -0,0 +1,3239 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-01-05 10:55+0100\n"
+"Last-Translator: Samir Ribić <megaribi@epn.ba>\n"
+"Language-Team: Bosnian\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.9.1\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+
+#: kreplacements/kreplacements.h:105
+#, fuzzy
+msgid "Continue"
+msgstr "&Nastavi"
+
+#: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158
+#: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512
+msgid "Cancel"
+msgstr ""
+
+#: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631
+msgid "Quit"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339
+msgid "Ok"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715
+msgid "Help"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:185
+msgid "Defaults"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:4
+#. i18n: ectx: Menu (file)
+#: kreplacements/kreplacements.cpp:296 rc.cpp:14
+#, fuzzy
+msgid "&File"
+msgstr "Datoteka..."
+
+#: kreplacements/kreplacements.cpp:297
+#, fuzzy
+msgid "&Edit"
+msgstr "Editor"
+
+#. i18n: file: kdiff3_shell.rc:7
+#. i18n: ectx: Menu (directory)
+#: kreplacements/kreplacements.cpp:298 rc.cpp:17
+msgid "&Directory"
+msgstr "&Direktorij"
+
+#. i18n: file: kdiff3_shell.rc:50
+#. i18n: ectx: Menu (movement)
+#: kreplacements/kreplacements.cpp:301 rc.cpp:26
+msgid "&Movement"
+msgstr "&Kretanje"
+
+#. i18n: file: kdiff3_shell.rc:61
+#. i18n: ectx: Menu (diff)
+#: kreplacements/kreplacements.cpp:302 rc.cpp:29
+msgid "D&iffview"
+msgstr "D&iff prikaz"
+
+#. i18n: file: kdiff3_shell.rc:73
+#. i18n: ectx: Menu (merge)
+#: kreplacements/kreplacements.cpp:303 rc.cpp:32
+msgid "&Merge"
+msgstr "&Stopi"
+
+#. i18n: file: kdiff3_shell.rc:95
+#. i18n: ectx: Menu (window)
+#: kreplacements/kreplacements.cpp:304 rc.cpp:35
+msgid "&Window"
+msgstr "P&rozor"
+
+#: kreplacements/kreplacements.cpp:305
+#, fuzzy
+msgid "&Settings"
+msgstr "Postavke boja"
+
+#: kreplacements/kreplacements.cpp:306
+msgid "&Help"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:353
+#, fuzzy
+msgid "&About"
+msgstr "Prekini"
+
+#: kreplacements/kreplacements.cpp:369
+msgid "A&uthor"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:383
+msgid "&Thanks To"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:30
+#. i18n: ectx: Menu (dir_current_merge_menu)
+#: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497
+#: rc.cpp:20
+msgid "Current Item Merge Operation"
+msgstr "Operacija stapanja trenutne stavke"
+
+#. i18n: file: kdiff3_shell.rc:38
+#. i18n: ectx: Menu (dir_current_sync_menu)
+#: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498
+#: rc.cpp:23
+msgid "Current Item Sync Operation"
+msgstr "Operacija sinh. trenutne stavke"
+
+#: kreplacements/kreplacements.cpp:597
+#, fuzzy
+msgid "Open"
+msgstr "Operacija"
+
+#: kreplacements/kreplacements.cpp:606
+#, fuzzy
+msgid "Save"
+msgstr "Riješen"
+
+#: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720
+msgid "Save As..."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:623
+#, fuzzy
+msgid "Print..."
+msgstr "Štampam..."
+
+#: kreplacements/kreplacements.cpp:639
+msgid "Cut"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:647
+msgid "Copy"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:655
+msgid "Paste"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:663
+#, fuzzy
+msgid "Select All"
+msgstr "Obriši A"
+
+#: kreplacements/kreplacements.cpp:671
+msgid "Show Toolbar"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:679
+msgid "Show &Status Bar"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:687
+#, fuzzy, kde-format
+msgid "&Configure %1..."
+msgstr "Podesi..."
+
+#: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707
+#, fuzzy
+msgid "About"
+msgstr "Prekini"
+
+#: kreplacements/kreplacements.cpp:722
+msgid "Find"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:730
+msgid "Find Next"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:750
+#, fuzzy
+msgid "Select Font"
+msgstr "Odabir"
+
+#: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676
+msgid ""
+"You selected a variable width font.\n"
+"\n"
+"Because this program doesn't handle variable width fonts\n"
+"correctly, you might experience problems while editing.\n"
+"\n"
+"Do you want to continue or do you want to select another font."
+msgstr ""
+"Izabrali ste font promjenjive širine.\n"
+"\n"
+"Pošto što ovaj program ne rukuje ispravno fontovima promenjive\n"
+"širine, možete iskusiti probleme u toku uređivanja.\n"
+"\n"
+"Želite li da nastavite ili ćete odabrati drugi font?"
+
+#: kreplacements/kreplacements.cpp:792
+#, fuzzy
+msgid "Incompatible font."
+msgstr "Nekompatibilan font"
+
+#: kreplacements/kreplacements.cpp:793
+#, fuzzy
+msgid "Continue at my own risk"
+msgstr "Nastavite na sopstveni rizik"
+
+#: kreplacements/kreplacements.cpp:793
+#, fuzzy
+msgid "Select another font"
+msgstr "Odaberite drugi font"
+
+#: kreplacements/kreplacements.cpp:1134
+msgid "For more documentation, see the help-menu or the subdirectory doc."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1137
+#, fuzzy
+msgid "KDiff3-Usage"
+msgstr "KDiff3"
+
+#: kreplacements/kreplacements.cpp:1137
+#, fuzzy
+msgid "Ignore"
+msgstr "Ignoriši veličinu slova"
+
+#: kreplacements/kreplacements.cpp:1137
+#, fuzzy
+msgid "Exit"
+msgstr "Editor"
+
+#: diff.cpp:251
+msgid "Writing clipboard data to temp file failed."
+msgstr "Upisivanje podataka iz clipboarda u privremenu datoteku nije uspjelo."
+
+#: diff.cpp:255
+msgid "From Clipboard"
+msgstr "Iz clipboarda"
+
+#: diff.cpp:471
+msgid "Expecting space after closing quotation mark."
+msgstr ""
+
+#: diff.cpp:474
+msgid "Not matching quotation marks."
+msgstr ""
+
+#: diff.cpp:496
+msgid "Unexpected quotation mark within argument."
+msgstr ""
+
+#: diff.cpp:503
+msgid "No program specified."
+msgstr ""
+
+#: diff.cpp:605
+#, kde-format
+msgid ""
+"Preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The preprocessing command will be disabled now."
+msgstr ""
+"Predobrada vjerovatno nije uspjela. Provjerite ovu naredbu:\n"
+"\n"
+"  %1\n"
+"\n"
+"Naredba predobrade će sada biti isključena."
+
+#: diff.cpp:653
+#, kde-format
+msgid ""
+"The line-matching-preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The line-matching-preprocessing command will be disabled now."
+msgstr ""
+"Predobrada usklađivanja linija vjerovatno nije uspjela. Provjerite ovu "
+"naredbu:\n"
+"\n"
+"  %1\n"
+"\n"
+"Predobrada usklađivanja linija će sada biti isključena."
+
+#: diff.cpp:1776 diff.cpp:1790
+#, fuzzy
+msgid ""
+"Data loss error:\n"
+"If it is reproducible please contact the author.\n"
+msgstr ""
+"Greška, gubitak podataka:\n"
+"Ako je možete obnoviti, kontaktirajte autora.\n"
+
+#: diff.cpp:1778 diff.cpp:1792
+msgid "Severe Internal Error"
+msgstr "Ozbiljna unutrašnja greška"
+
+#: directorymergewindow.cpp:136
+msgid "Mix of links and normal files."
+msgstr "Mješavina veza i normalnih datoteka."
+
+#: directorymergewindow.cpp:143
+msgid "Link: "
+msgstr "Veza: "
+
+#: directorymergewindow.cpp:151
+msgid "Size. "
+msgstr "Veličina."
+
+#: directorymergewindow.cpp:164 directorymergewindow.cpp:174
+msgid "Date & Size: "
+msgstr "Datum i veličina: "
+
+#: directorymergewindow.cpp:184 directorymergewindow.cpp:190
+#, kde-format
+msgid "Creating temp copy of %1 failed."
+msgstr "Stvaranje privremene kopije datoteke %1 nije uspjelo."
+
+#: directorymergewindow.cpp:201 directorymergewindow.cpp:209
+#, kde-format
+msgid "Opening %1 failed."
+msgstr "Otvaranje datoteke %1 nije uspjelo."
+
+#: directorymergewindow.cpp:213
+msgid "Comparing file..."
+msgstr "Upoređujem datoteku..."
+
+#: directorymergewindow.cpp:223 directorymergewindow.cpp:229
+#, kde-format
+msgid "Error reading from %1"
+msgstr "Greška pri čitanju iz %1"
+
+#: directorymergewindow.cpp:358
+msgid "Name"
+msgstr "Naziv"
+
+#: directorymergewindow.cpp:358
+msgid "Operation"
+msgstr "Operacija"
+
+#: directorymergewindow.cpp:358
+msgid "Status"
+msgstr "Status"
+
+#: directorymergewindow.cpp:359
+msgid "Unsolved"
+msgstr "Neriješen"
+
+#: directorymergewindow.cpp:359
+msgid "Solved"
+msgstr "Riješen"
+
+#: directorymergewindow.cpp:359
+msgid "Nonwhite"
+msgstr "Ne-bijelo"
+
+#: directorymergewindow.cpp:359
+msgid "White"
+msgstr "Bijelo"
+
+#: directorymergewindow.cpp:388
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort "
+"the merge and rescan the directory?"
+msgstr ""
+"Trenutno stapate direktorije. Da li ste sigurni da želite prekinuti stapanje "
+"i ponovo skenirati direktorij?"
+
+#: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655
+#: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823
+msgid "Warning"
+msgstr ""
+
+#: directorymergewindow.cpp:390 directorymergewindow.cpp:2965
+msgid "Rescan"
+msgstr "Ponovo skeniraj"
+
+#: directorymergewindow.cpp:391 pdiff.cpp:1081
+msgid "Continue Merging"
+msgstr "Nastavi stapanje"
+
+#: directorymergewindow.cpp:548
+msgid "Opening of directories failed:"
+msgstr "Otvaranje direktorija nije uspjelo:"
+
+#: directorymergewindow.cpp:551
+#, kde-format
+msgid "Dir A \"%1\" does not exist or is not a directory.\n"
+msgstr "Direktorij A \"%1\" ne postoji ili nije direktorij.\n"
+
+#: directorymergewindow.cpp:554
+#, kde-format
+msgid "Dir B \"%1\" does not exist or is not a directory.\n"
+msgstr "Direktorij B \"%1\" ne postoji ili nije direktorij.\n"
+
+#: directorymergewindow.cpp:557
+#, kde-format
+msgid "Dir C \"%1\" does not exist or is not a directory.\n"
+msgstr "Direktorij C \"%1\" ne postoji ili nije direktorij.\n"
+
+#: directorymergewindow.cpp:559
+msgid "Directory Open Error"
+msgstr "Greška pri otvaranju direktorij"
+
+#: directorymergewindow.cpp:567
+msgid ""
+"The destination directory must not be the same as A or B when three "
+"directories are merged.\n"
+"Check again before continuing."
+msgstr ""
+"Odredišni direktorij ne smije biti isti kao A ili B kada se stapaju tri "
+"direktorija.\n"
+"Provjerite ponovo prije nego nastavite."
+
+#: directorymergewindow.cpp:569
+msgid "Parameter Warning"
+msgstr "Upozorenje o parametrima"
+
+#: directorymergewindow.cpp:574
+msgid "Scanning directories..."
+msgstr "Skeniram direktorije..."
+
+#: directorymergewindow.cpp:607
+msgid "Reading Directory A"
+msgstr "Čitam direktorij A"
+
+#: directorymergewindow.cpp:629
+msgid "Reading Directory B"
+msgstr "Čitam direktorij B"
+
+#: directorymergewindow.cpp:651
+msgid "Reading Directory C"
+msgstr "Čitam direktorij C"
+
+#: directorymergewindow.cpp:677
+msgid "Some subdirectories were not readable in"
+msgstr "Neki poddirektoriji nisu bili čitljivi u"
+
+#: directorymergewindow.cpp:682
+msgid "Check the permissions of the subdirectories."
+msgstr "Provjerite dozvole poddirektorija."
+
+#: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737
+#: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233
+#: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328
+msgid "Ready."
+msgstr "Spreman."
+
+#: directorymergewindow.cpp:735
+msgid "Directory Comparison Status"
+msgstr "Status poređenja direktorija"
+
+#: directorymergewindow.cpp:736
+msgid "Number of subdirectories:"
+msgstr "Broj poddirektorija:"
+
+#: directorymergewindow.cpp:737
+msgid "Number of equal files:"
+msgstr "Broj jednakih datoteka:"
+
+#: directorymergewindow.cpp:738
+msgid "Number of different files:"
+msgstr "Broj različitih datoteka:"
+
+#: directorymergewindow.cpp:741
+msgid "Number of manual merges:"
+msgstr "Broj ručnih stapanja:"
+
+#: directorymergewindow.cpp:912
+msgid "This affects all merge operations."
+msgstr "Ovo utiče na sve operacije stapanja."
+
+#: directorymergewindow.cpp:913
+msgid "Changing All Merge Operations"
+msgstr "Mijenjam sve operacije stapanja"
+
+#: directorymergewindow.cpp:1312
+msgid "Processing "
+msgstr "Obrađujem "
+
+#: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742
+msgid "To do."
+msgstr "Uraditi."
+
+#: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996
+msgid "Copy A to B"
+msgstr "Kopiraj A u B"
+
+#: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997
+msgid "Copy B to A"
+msgstr "Kopiraj B u A"
+
+#: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998
+msgid "Delete A"
+msgstr "Obriši A"
+
+#: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999
+msgid "Delete B"
+msgstr "Obriši B"
+
+#: directorymergewindow.cpp:1814
+msgid "Delete A & B"
+msgstr "Obriši A i B"
+
+#: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001
+msgid "Merge to A"
+msgstr "Stopi u A"
+
+#: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002
+msgid "Merge to B"
+msgstr "Stopi u B"
+
+#: directorymergewindow.cpp:1817
+msgid "Merge to A & B"
+msgstr "Stopi A i B"
+
+#: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993
+msgid "Delete (if exists)"
+msgstr "Obriši (ako postoji)"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+#: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869
+msgid "Merge"
+msgstr "Stopi"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+msgid "Merge (manual)"
+msgstr "Stopi (ručno)"
+
+#: directorymergewindow.cpp:1824
+msgid "Error: Conflicting File Types"
+msgstr "Greška: Sukobljeni tipovi datoteka"
+
+#: directorymergewindow.cpp:1825
+msgid "Error: Changed and Deleted"
+msgstr ""
+
+#: directorymergewindow.cpp:1826
+msgid "Error: Dates are equal but files are not."
+msgstr "Greška: Datumi su jednaki ali datoteke nisu."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906
+msgid "This operation is currently not possible."
+msgstr "Ova operacija trenutno nije moguća."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174
+msgid "Operation Not Possible"
+msgstr "Operacija nije moguća"
+
+#: directorymergewindow.cpp:1945
+msgid ""
+"This should never happen: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"If you know how to reproduce this, please contact the program author."
+msgstr ""
+"Ovo nikada ne bi trebalo da se desi: \n"
+"\n"
+"Ako znate kako ovo da obnovite, molimo kontaktirajte autora programa."
+
+#: directorymergewindow.cpp:1945
+msgid "Program Error"
+msgstr "Programska greška"
+
+#: directorymergewindow.cpp:1956
+msgid "An error occurred while copying.\n"
+msgstr "Došlo je do greške u toku kopiranja.\n"
+
+#: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025
+#: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105
+#: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123
+#: directorymergewindow.cpp:2374
+#, fuzzy
+msgid "Error"
+msgstr "Greška."
+
+#: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375
+msgid "Merge Error"
+msgstr "Greška stapanja"
+
+#: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380
+msgid "Error."
+msgstr "Greška."
+
+#: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272
+#: directorymergewindow.cpp:2312
+msgid "Done."
+msgstr "Gotovo."
+
+#: directorymergewindow.cpp:1990
+msgid "Not saved."
+msgstr "Nije snimljeno."
+
+#: directorymergewindow.cpp:2025
+msgid "Unknown merge operation. (This must never happen!)"
+msgstr "Nepoznata operacija stapanja. (Ovo nikad ne smije da se desi!)"
+
+#: directorymergewindow.cpp:2057
+msgid "Unknown merge operation."
+msgstr "Nepoznata operacija stapanja."
+
+#: directorymergewindow.cpp:2072
+msgid ""
+"The merge is about to begin.\n"
+"\n"
+"Choose \"Do it\" if you have read the instructions and know what you are "
+"doing.\n"
+"Choosing \"Simulate it\" will tell you what would happen.\n"
+"\n"
+"Be aware that this program still has beta status and there is NO WARRANTY "
+"whatsoever! Make backups of your vital data!"
+msgstr ""
+"Stapanje će upravo početi.\n"
+"\n"
+"Izaberite \"Uradi\" ako ste pročitali instrukcije i znate šta radite.\n"
+"Izaberite \"Simuliraj\" ako želite da vidite šta bi se desilo.\n"
+"\n"
+"Znajte da ovaj program još uvijek ima beta status i nema NIKAKVIH GARANCIJA "
+"uopšte! Napravite rezervu svojih najvažnijih podataka!"
+
+#: directorymergewindow.cpp:2077
+msgid "Starting Merge"
+msgstr "Počinjem stapanje"
+
+#: directorymergewindow.cpp:2078
+msgid "Do It"
+msgstr "Uradi"
+
+#: directorymergewindow.cpp:2079
+msgid "Simulate It"
+msgstr "Simuliraj"
+
+#: directorymergewindow.cpp:2105
+msgid ""
+"The highlighted item has a different type in the different directories. "
+"Select what to do."
+msgstr ""
+"Istaknuta stavka različitog je tipa u različitim direktorijima. Odaberite "
+"šta činiti."
+
+#: directorymergewindow.cpp:2114
+msgid ""
+"The modification dates of the file are equal but the files are not. Select "
+"what to do."
+msgstr ""
+"Datumi izmjene datoteke su jednaki ali datoteke nisu. Odaberite šta činiti."
+
+#: directorymergewindow.cpp:2123
+#, fuzzy
+msgid ""
+"The highlighted item was changed in one directory and deleted in the other. "
+"Select what to do."
+msgstr ""
+"Istaknuta stavka različitog je tipa u različitim direktorijima. Odaberite "
+"šta činiti."
+
+#: directorymergewindow.cpp:2174
+msgid ""
+"This operation is currently not possible because directory merge is "
+"currently running."
+msgstr ""
+"Ova operacija trenutno nije moguća zato što je stapanje direktorija u toku."
+
+#: directorymergewindow.cpp:2234
+msgid ""
+"There was an error in the last step.\n"
+"Do you want to continue with the item that caused the error or do you want "
+"to skip this item?"
+msgstr ""
+"Došlo je do greške u posljednjem koraku.\n"
+"Želite li da nastavite sa stavkom koja je izazvala grešku ili želite da je "
+"preskočite?"
+
+#: directorymergewindow.cpp:2236
+msgid "Continue merge after an error"
+msgstr "Nastavi stapanje poslije greške"
+
+#: directorymergewindow.cpp:2237
+msgid "Continue With Last Item"
+msgstr "Nastavi sa posljednjom stavkom"
+
+#: directorymergewindow.cpp:2238
+msgid "Skip Item"
+msgstr "Preskoči stavku"
+
+#: directorymergewindow.cpp:2272
+msgid "Skipped."
+msgstr "Preskočeno."
+
+#: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493
+msgid "In progress..."
+msgstr "U toku..."
+
+#: directorymergewindow.cpp:2327
+msgid "Merge operation complete."
+msgstr "Operacija stapanja je završena."
+
+#: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330
+msgid "Merge Complete"
+msgstr "Stapanje je završeno"
+
+#: directorymergewindow.cpp:2340
+msgid ""
+"Simulated merge complete: Check if you agree with the proposed operations."
+msgstr ""
+"Simulirano stapanje je završeno: Provjerite da li se slažete sa predloženim "
+"operacijama."
+
+#: directorymergewindow.cpp:2374
+msgid "An error occurred. Press OK to see detailed information.\n"
+msgstr ""
+"Došlo je do greške. Pritisnite \"U redu\" da biste vidjeli detaljne "
+"informacije.\n"
+
+#: directorymergewindow.cpp:2406
+#, kde-format
+msgid "Error: While deleting %1: Creating backup failed."
+msgstr "Greška: U toku brisanja %1: Stvaranje rezerve nije uspjelo."
+
+#: directorymergewindow.cpp:2413
+#, kde-format
+msgid "delete directory recursively( %1 )"
+msgstr "obriši direktorij rekurzivno( %1 )"
+
+#: directorymergewindow.cpp:2415
+#, kde-format
+msgid "delete( %1 )"
+msgstr "obriši( %1 )"
+
+#: directorymergewindow.cpp:2430
+msgid "Error: delete dir operation failed while trying to read the directory."
+msgstr ""
+"Greška: Operacija brisanja direktorija nije uspjela u toku pokušaja da se "
+"direktorij pročita."
+
+#: directorymergewindow.cpp:2449
+#, kde-format
+msgid "Error: rmdir( %1 ) operation failed."
+msgstr "Greška: Operacija rmdir( %1 ) nije uspjela."
+
+#: directorymergewindow.cpp:2459
+msgid "Error: delete operation failed."
+msgstr "Greška: Operacija brisanja nije uspjela."
+
+#: directorymergewindow.cpp:2485
+#, kde-format
+msgid "manual merge( %1, %2, %3 -> %4)"
+msgstr "ručno stapanje( %1, %2, %3 -> %4)"
+
+#: directorymergewindow.cpp:2488
+msgid ""
+"     Note: After a manual merge the user should continue by pressing F7."
+msgstr ""
+"     Napomena: Poslije ručnog stapanja korisnik bi trebalo da nastavi pomoću "
+"F7."
+
+#: directorymergewindow.cpp:2513
+#, kde-format
+msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed."
+msgstr ""
+"Greška: Kopiranje( %1 -> %2 ) nije uspjelo. Brisanje postojećeg odredišta "
+"nije uspjelo."
+
+#: directorymergewindow.cpp:2522
+#, kde-format
+msgid "copyLink( %1 -> %2 )"
+msgstr "kopiranje veze( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2533
+msgid "Error: copyLink failed: Remote links are not yet supported."
+msgstr ""
+"Greška: Kopiranje veze nije uspjelo: Udaljene veze još uvijek nisu podržane."
+
+#: directorymergewindow.cpp:2539
+msgid "Error: copyLink failed."
+msgstr "Greška: Kopiranje veze nije uspjelo."
+
+#: directorymergewindow.cpp:2564
+#, kde-format
+msgid "copy( %1 -> %2 )"
+msgstr "kopiraj( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2590
+#, kde-format
+msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination."
+msgstr ""
+"Greška u toku preimenovanja( %1 -> %2 ): Ne mogu da obrišem postojeće "
+"odredište."
+
+#: directorymergewindow.cpp:2596
+#, kde-format
+msgid "rename( %1 -> %2 )"
+msgstr "preimenuj( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2605
+msgid "Error: Rename failed."
+msgstr "Greška: Preimenovanje nije uspjelo."
+
+#: directorymergewindow.cpp:2623
+#, kde-format
+msgid "Error during makeDir of %1. Cannot delete existing file."
+msgstr ""
+"Greška u toku pravljenja direktorija %1. Ne mogu da obrišem postojeću "
+"datoteku."
+
+#: directorymergewindow.cpp:2639
+#, kde-format
+msgid "makeDir( %1 )"
+msgstr "napravi direktorij( %1 )"
+
+#: directorymergewindow.cpp:2649
+msgid "Error while creating directory."
+msgstr "Greška u toku stvaranja direktorija."
+
+#: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784
+msgid "Dest"
+msgstr "Odr."
+
+#: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709
+msgid "Dir"
+msgstr "Dir."
+
+#: directorymergewindow.cpp:2678
+msgid "Type"
+msgstr "Tip"
+
+#: directorymergewindow.cpp:2678
+msgid "Size"
+msgstr "Vel."
+
+#: directorymergewindow.cpp:2679
+msgid "Attr"
+msgstr "Atr."
+
+#: directorymergewindow.cpp:2679
+msgid "Last Modification"
+msgstr "Posljednja izmjena"
+
+#: directorymergewindow.cpp:2679
+msgid "Link-Destination"
+msgstr "Veza-odredište"
+
+#: directorymergewindow.cpp:2709 difftextwindow.cpp:401
+#, fuzzy
+msgid "File"
+msgstr "Datoteka..."
+
+#: directorymergewindow.cpp:2726
+msgid "not available"
+msgstr "nije dostupno"
+
+#: directorymergewindow.cpp:2746
+msgid "A (Dest): "
+msgstr "A (odr.): "
+
+#: directorymergewindow.cpp:2749
+msgid "A (Base): "
+msgstr "A (baza): "
+
+#: directorymergewindow.cpp:2755
+msgid "B (Dest): "
+msgstr "B (odr.): "
+
+#: directorymergewindow.cpp:2763
+msgid "C (Dest): "
+msgstr "C (odr.): "
+
+#: directorymergewindow.cpp:2769
+msgid "Dest: "
+msgstr "Odr.: "
+
+#: directorymergewindow.cpp:2836
+msgid "Save Directory Merge State As..."
+msgstr "Snimi stanje stapanja direktorija kao..."
+
+#: directorymergewindow.cpp:2959
+msgid "Start/Continue Directory Merge"
+msgstr "Pokreni/nastavi stapanje direktorija"
+
+#: directorymergewindow.cpp:2960
+msgid "Run Operation for Current Item"
+msgstr "Pokreni operaciju za trenutnu stavku"
+
+#: directorymergewindow.cpp:2961
+msgid "Compare Selected File"
+msgstr "Uporedi odabranu datoteku"
+
+#: directorymergewindow.cpp:2962
+msgid "Merge Current File"
+msgstr "Stopi trenutnu datoteku"
+
+#: directorymergewindow.cpp:2962
+#, fuzzy
+msgid ""
+"Merge\n"
+"File"
+msgstr "Stopi"
+
+#: directorymergewindow.cpp:2963
+msgid "Fold All Subdirs"
+msgstr "Sažmi sve poddirektorije"
+
+#: directorymergewindow.cpp:2964
+msgid "Unfold All Subdirs"
+msgstr "Raširi sve poddirektorije"
+
+#: directorymergewindow.cpp:2968
+msgid "Choose A for All Items"
+msgstr "Izaberi A za sve stavke"
+
+#: directorymergewindow.cpp:2969
+msgid "Choose B for All Items"
+msgstr "Izaberi B za sve stavke"
+
+#: directorymergewindow.cpp:2970
+msgid "Choose C for All Items"
+msgstr "Izaberi C za sve stavke"
+
+#: directorymergewindow.cpp:2971
+msgid "Auto-Choose Operation for All Items"
+msgstr "Automatski izaberi operaciju za sve stavke"
+
+#: directorymergewindow.cpp:2972
+msgid "No Operation for All Items"
+msgstr "Nema operacije za sve stavke"
+
+#: directorymergewindow.cpp:2977
+msgid "Show Identical Files"
+msgstr "Prikaži identične datoteke"
+
+#: directorymergewindow.cpp:2977
+#, fuzzy
+msgid ""
+"Identical\n"
+"Files"
+msgstr "Prikaži identične datoteke"
+
+#: directorymergewindow.cpp:2978
+msgid "Show Different Files"
+msgstr "Prikaži različite datoteke"
+
+#: directorymergewindow.cpp:2979
+msgid "Show Files only in A"
+msgstr "Prikaži datoteke samo u A"
+
+#: directorymergewindow.cpp:2979
+#, fuzzy
+msgid ""
+"Files\n"
+"only in A"
+msgstr "Prikaži datoteke samo u A"
+
+#: directorymergewindow.cpp:2980
+msgid "Show Files only in B"
+msgstr "Prikaži datoteke samo u B"
+
+#: directorymergewindow.cpp:2980
+#, fuzzy
+msgid ""
+"Files\n"
+"only in B"
+msgstr "Prikaži datoteke samo u B"
+
+#: directorymergewindow.cpp:2981
+msgid "Show Files only in C"
+msgstr "Prikaži datoteke samo u C"
+
+#: directorymergewindow.cpp:2981
+#, fuzzy
+msgid ""
+"Files\n"
+"only in C"
+msgstr "Prikaži datoteke samo u C"
+
+#: directorymergewindow.cpp:2985
+msgid "Compare Explicitly Selected Files"
+msgstr "Uporedi eksplicitno odabrane datoteke"
+
+#: directorymergewindow.cpp:2986
+msgid "Merge Explicitly Selected Files"
+msgstr "Stopi eksplicitno odabrane datoteke"
+
+#: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995
+msgid "Do Nothing"
+msgstr "Ne čini ništa"
+
+#: directorymergewindow.cpp:2989
+msgid "A"
+msgstr "A"
+
+#: directorymergewindow.cpp:2990
+msgid "B"
+msgstr "B"
+
+#: directorymergewindow.cpp:2991
+msgid "C"
+msgstr "C"
+
+#: directorymergewindow.cpp:3000
+msgid "Delete A && B"
+msgstr "Obriši A i B"
+
+#: directorymergewindow.cpp:3003
+msgid "Merge to A && B"
+msgstr "Stopi u A i B"
+
+#: main.cpp:74 main.cpp:76
+msgid "Ignored. (User defined.)"
+msgstr "Ignorisano. (Korisnički definisano)."
+
+#: main.cpp:162
+#, fuzzy
+msgid "kdiff3"
+msgstr "KDiff3"
+
+#: main.cpp:164
+msgid "Tool for Comparison and Merge of Files and Directories"
+msgstr "Alat za upoređivanje i stapanje datoteka i direktorija"
+
+#: main.cpp:165
+msgid "(c) 2002-2011 Joachim Eibl"
+msgstr ""
+
+#: main.cpp:172 kdiff3_part.cpp:303
+msgid "Joachim Eibl"
+msgstr ""
+
+#: main.cpp:173
+msgid "Eike Sauer"
+msgstr ""
+
+#: main.cpp:173
+msgid "Bugfixes, Debian package maintainer"
+msgstr ""
+
+#: main.cpp:174
+msgid "Sebastien Fricker"
+msgstr ""
+
+#: main.cpp:174
+msgid "Windows installer"
+msgstr ""
+
+#: main.cpp:175
+msgid "Stephan Binner"
+msgstr ""
+
+#: main.cpp:175
+msgid "i18n-help"
+msgstr ""
+
+#: main.cpp:176
+msgid "Stefan Partheymueller"
+msgstr ""
+
+#: main.cpp:176
+#, fuzzy
+msgid "Clipboard-patch"
+msgstr "Iz clipboarda"
+
+#: main.cpp:177
+msgid "David Faure"
+msgstr ""
+
+#: main.cpp:177
+msgid "KIO-Help"
+msgstr ""
+
+#: main.cpp:178
+msgid "Bernd Gehrmann"
+msgstr ""
+
+#: main.cpp:178
+msgid "Class CvsIgnoreList from Cervisia"
+msgstr ""
+
+#: main.cpp:179
+msgid "Andre Woebbeking"
+msgstr ""
+
+#: main.cpp:179
+msgid "Class StringMatcher"
+msgstr ""
+
+#: main.cpp:180
+msgid "Michael Denio"
+msgstr ""
+
+#: main.cpp:180
+#, fuzzy
+msgid "Directory Equality-Coloring patch"
+msgstr "Status poređenja direktorija"
+
+#: main.cpp:181
+msgid "Manfred Koehler"
+msgstr ""
+
+#: main.cpp:181
+msgid "Fix for slow startup on Windows"
+msgstr ""
+
+#: main.cpp:182
+#, fuzzy
+msgid "Sergey Zorin"
+msgstr "Greška stapanja"
+
+#: main.cpp:182
+msgid "Diff Ext for Windows"
+msgstr ""
+
+#: main.cpp:183
+msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+msgstr ""
+
+#: main.cpp:183
+msgid "GNU-Diffutils"
+msgstr ""
+
+#: main.cpp:184
+msgid "Tino Boellsterling, Timothy Mee"
+msgstr ""
+
+#: main.cpp:184
+msgid "Intensive test, use and feedback"
+msgstr ""
+
+#: main.cpp:185
+msgid "Michael Schmidt"
+msgstr ""
+
+#: main.cpp:185
+msgid "Mac support"
+msgstr ""
+
+#: main.cpp:186
+msgid "Valentin Rusu"
+msgstr ""
+
+#: main.cpp:186 main.cpp:187
+#, fuzzy
+msgid "KDE4 porting"
+msgstr "Ne čini ništa"
+
+#: main.cpp:187
+msgid "Albert Astals Cid"
+msgstr ""
+
+#: main.cpp:188
+msgid "Silvan Scherrer"
+msgstr ""
+
+#: main.cpp:188
+msgid "OS2 port"
+msgstr ""
+
+#: main.cpp:190
+msgid "+ Many thanks to those who reported bugs and contributed ideas!"
+msgstr ""
+"+ Mnogo hvala onima koji su prijavljivali greške i doprinijeli svojim "
+"idejama!"
+
+#: main.cpp:196
+msgid "Merge the input."
+msgstr "Stopi ulaz."
+
+#: main.cpp:197
+msgid "Explicit base file. For compatibility with certain tools."
+msgstr "Eksplicitna bazna datoteka. Za kompatibilnost sa određenim alatima."
+
+#: main.cpp:198
+msgid "Output file. Implies -m. E.g.: -o newfile.txt"
+msgstr "Izlazna datoteka. Implicira -m. Npr.: -o newfile.txt"
+
+#: main.cpp:199
+msgid "Output file, again. (For compatibility with certain tools.)"
+msgstr "Izlazna datoteka, ponovo. (Za kompatibilnost sa određenim alatima.)"
+
+#: main.cpp:200
+msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)"
+msgstr "Bez GUI-ja ako su svi sukobi automatski rješivi. (Zahtjeva -o file)"
+
+#: main.cpp:201
+msgid "Don't solve conflicts automatically. (For compatibility...)"
+msgstr "Ne rješavaj sukobe automatski. (Za kompatibilnost...)"
+
+#: main.cpp:202
+msgid "Visible name replacement for input file 1 (base)."
+msgstr "Vidljiva zamjena naziva za ulaznu datoteku 1 (bazna)."
+
+#: main.cpp:203
+msgid "Visible name replacement for input file 2."
+msgstr "Vidljiva zamjena naziva za ulaznu datoteku 2."
+
+#: main.cpp:204
+msgid "Visible name replacement for input file 3."
+msgstr "Vidljiva zamjena naziva za ulaznu datoteku 3."
+
+#: main.cpp:205
+msgid "Alternative visible name replacement. Supply this once for every input."
+msgstr ""
+"Alternativa vidljivoj zamijeni naziva. Dobavite ovo jednom za svaki ulaz."
+
+#: main.cpp:206
+msgid ""
+"Override a config setting. Use once for every setting. E.g.: --cs "
+"\"AutoAdvance=1\""
+msgstr ""
+"Prespoji postavku konfiguracije. Koristi jednom za svaku postavku. Npr.: --"
+"cs \"AutoAdvance=1\""
+
+#: main.cpp:207
+msgid "Show list of config settings and current values."
+msgstr "Prikaži listu postavki konfiguracije i trenutnih vrijednosti."
+
+#: main.cpp:208
+msgid "Use a different config file."
+msgstr "Koristi drugačiju konfiguracionu datoteku."
+
+#: main.cpp:211
+msgid "file1 to open (base, if not specified via --base)"
+msgstr "datoteka 1 za otvaranje (bazna, ako nije naveden preko --base)"
+
+#: main.cpp:212
+msgid "file2 to open"
+msgstr "datoteka 2 za otvaranje"
+
+#: main.cpp:213
+msgid "file3 to open"
+msgstr "datoteka 3 za otvaranje"
+
+#: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976
+#: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002
+#: mergeresultwindow.cpp:1014
+#, kde-format
+msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)"
+msgstr "Broj preostalih neriješenih sukoba: %1 (od kojih su %2 blanko znaci)"
+
+#: mergeresultwindow.cpp:303
+msgid ""
+"The output has been modified.\n"
+"If you continue your changes will be lost."
+msgstr ""
+"Izlaz je izmijenjen.\n"
+"Ako nastavite, vaše izmjene će biti izgubljene."
+
+#: mergeresultwindow.cpp:834 pdiff.cpp:532
+msgid "All input files are binary equal."
+msgstr "Sve ulazne datoteke su binarno jednake."
+
+#: mergeresultwindow.cpp:836
+msgid "All input files contain the same text."
+msgstr "Sve ulazne datoteke sadrže isti tekst."
+
+#: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840
+#: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540
+#, kde-format
+msgid "Files %1 and %2 are binary equal.\n"
+msgstr "Datoteke %1 i %2 su binarno jednake.\n"
+
+#: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841
+#: mergeresultwindow.cpp:843
+#, fuzzy, kde-format
+msgid "Files %1 and %2 have equal text.\n"
+msgstr "Datoteke A i B imaju jednak tekst.\n"
+
+#: mergeresultwindow.cpp:849
+msgid "Total number of conflicts: "
+msgstr "Ukupan broj sukoba: "
+
+#: mergeresultwindow.cpp:850
+msgid ""
+"\n"
+"Nr of automatically solved conflicts: "
+msgstr ""
+"\n"
+"Broj automatski riješenih sukoba: "
+
+#: mergeresultwindow.cpp:851
+msgid ""
+"\n"
+"Nr of unsolved conflicts: "
+msgstr ""
+"\n"
+"Broj neriješenih sukoba: "
+
+#: mergeresultwindow.cpp:853
+msgid "Conflicts"
+msgstr "Sukobi"
+
+#: mergeresultwindow.cpp:1728
+msgid "<No src line>"
+msgstr "<Nema izv. linije>"
+
+#: mergeresultwindow.cpp:1736
+msgid "<Merge Conflict (Whitespace only)>"
+msgstr "<Sukob u stapanju (samo blanko znaci)>"
+
+#: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517
+msgid "<Merge Conflict>"
+msgstr "<Sukob u stapanju>"
+
+#: mergeresultwindow.cpp:2725
+msgid ""
+"Not all conflicts are solved yet.\n"
+"File not saved.\n"
+msgstr ""
+"Još uvijek nisu riješeni svi sukobi.\n"
+"Datoteka nije snimljena.\n"
+
+#: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736
+msgid "Conflicts Left"
+msgstr "Preostali sukobi"
+
+#: mergeresultwindow.cpp:2734
+msgid ""
+"There is a line end style conflict. Please choose the line end style "
+"manually.\n"
+"File not saved.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:2748
+msgid ""
+"\n"
+"\n"
+"Creating backup failed. File not saved."
+msgstr ""
+"\n"
+"\n"
+"Stvaranje rezerve nije uspjelo. Datoteka nije snimljena."
+
+#: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792
+msgid "File Save Error"
+msgstr "Greška u snimanju datoteke"
+
+#: mergeresultwindow.cpp:2792
+msgid "Error while writing."
+msgstr "Greška prilikom pisanja."
+
+#: mergeresultwindow.cpp:3122
+msgid "Output"
+msgstr "Izlaz"
+
+#: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314
+msgid "[Modified]"
+msgstr "[Izmijenjen]"
+
+#: mergeresultwindow.cpp:3141
+#, fuzzy
+msgid "Encoding for saving"
+msgstr "Kodiranje datoteke za A:"
+
+#: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737
+#: optiondialog.cpp:762
+msgid "Line end style:"
+msgstr "Stil završetka linije:"
+
+#: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767
+msgid "Unix"
+msgstr ""
+
+#: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737
+msgid "DOS"
+msgstr ""
+
+#: mergeresultwindow.cpp:3229
+#, fuzzy
+msgid "Conflict"
+msgstr "Sukobi"
+
+#: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263
+#: mergeresultwindow.cpp:3265
+msgid "Codec from"
+msgstr ""
+
+#: kdiff3_part.cpp:157 kdiff3_part.cpp:234
+msgid "Couldn't find files for comparison."
+msgstr "Nisam mogao pronaći datoteke za poređenje."
+
+#: kdiff3_part.cpp:302
+msgid "KDiff3Part"
+msgstr "KDiff3Dio"
+
+#: fileaccess.cpp:612
+msgid ""
+"While trying to make a backup, deleting an older backup failed. \n"
+"Filename: "
+msgstr ""
+"U toku pokušaja da se napravi rezerva, brisanje starije rezerve nije "
+"uspjelo.\n"
+"Naziv datoteke: "
+
+#: fileaccess.cpp:619
+msgid ""
+"While trying to make a backup, renaming failed. \n"
+"Filenames: "
+msgstr ""
+"U toku pokušaja da se napravi rezerva, preimenovanje nije uspjelo.\n"
+"Nazivi datoteka: "
+
+#: fileaccess.cpp:643
+#, kde-format
+msgid "Getting file status: %1"
+msgstr "Dobavljam status datoteke: %1"
+
+#: fileaccess.cpp:686
+#, kde-format
+msgid "Reading file: %1"
+msgstr "Čitam datoteku: %1"
+
+#: fileaccess.cpp:723
+#, kde-format
+msgid "Writing file: %1"
+msgstr "Pišem datoteku: %1"
+
+#: fileaccess.cpp:751
+msgid "Out of memory"
+msgstr "Nema memorije"
+
+#: fileaccess.cpp:786
+#, kde-format
+msgid "Making directory: %1"
+msgstr "Pravim direktorij: %1"
+
+#: fileaccess.cpp:806
+#, kde-format
+msgid "Removing directory: %1"
+msgstr "Uklanjam direktorij: %1"
+
+#: fileaccess.cpp:821
+#, kde-format
+msgid "Removing file: %1"
+msgstr "Uklanjam datoteku: %1"
+
+#: fileaccess.cpp:837
+#, kde-format
+msgid "Creating symbolic link: %1 -> %2"
+msgstr "Stvaram simboličku vezu: %1 -> %2"
+
+#: fileaccess.cpp:864
+#, kde-format
+msgid "Renaming file: %1 -> %2"
+msgstr "Mijenjam naziv datoteke: %1 -> %2"
+
+#: fileaccess.cpp:897
+#, kde-format
+msgid "Copying file: %1 -> %2"
+msgstr "Kopiram datoteku: %1 -> %2"
+
+#: fileaccess.cpp:911
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for reading failed. Filename: "
+"%1"
+msgstr ""
+"Greška tokom operacije kopiranja datoteka: Otvaranje datoteke za čitanje "
+"nije uspjelo. Naziv datoteke: %1"
+
+#: fileaccess.cpp:917
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for writing failed. Filename: "
+"%1"
+msgstr ""
+"Greška tokom operacije kopiranja datoteka: Otvaranje datoteke za pisanje "
+"nije uspjelo. Naziv datoteke: %1"
+
+#: fileaccess.cpp:932
+#, kde-format
+msgid "Error during file copy operation: Reading failed. Filename: %1"
+msgstr ""
+"Greška tokom operacije kopiranja datoteka: Čitanje nije uspjelo. Naziv "
+"datoteke: %1"
+
+#: fileaccess.cpp:941
+#, kde-format
+msgid "Error during file copy operation: Writing failed. Filename: %1"
+msgstr ""
+"Greška tokom operacije kopiranja datoteka: Pisanje nije uspjelo. Naziv "
+"datoteke: %1"
+
+#: fileaccess.cpp:1231
+msgid "Reading directory: "
+msgstr "Čitam direktorij: "
+
+#: fileaccess.cpp:1355
+#, kde-format
+msgid "Listing directory: %1"
+msgstr "Listam direktorij: %1"
+
+#: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396
+msgid "&Cancel"
+msgstr ""
+
+#: difftextwindow.cpp:403
+#, fuzzy
+msgid "Line"
+msgstr "Latin1"
+
+#: difftextwindow.cpp:405
+#, fuzzy
+msgid "Line not available"
+msgstr "nije dostupno"
+
+#: difftextwindow.cpp:1703 difftextwindow.cpp:1736
+#, fuzzy
+msgid "Encoding:"
+msgstr "Kodiranje datoteke za A:"
+
+#: difftextwindow.cpp:1759 kdiff3.cpp:831
+msgid "Top line"
+msgstr "Gornja linija"
+
+#: difftextwindow.cpp:1769
+msgid "End"
+msgstr "Kraj"
+
+#: kdiff3.cpp:169
+msgid "Current Configuration:"
+msgstr "Trenutna konfiguracija:"
+
+#: kdiff3.cpp:174
+msgid "Config Option Error:"
+msgstr "Greška konfiguracione opcije:"
+
+#: kdiff3.cpp:219
+msgid "Option --auto used, but no output file specified."
+msgstr "Opcija --auto je upotrijebljena, ali nije navedena izlazna datoteka."
+
+#: kdiff3.cpp:369
+msgid "Option --auto ignored for directory comparison."
+msgstr "Opcija --auto se ignoriše za poređenje direktorija."
+
+#: kdiff3.cpp:405
+msgid "Saving failed."
+msgstr "Snimanje nije uspjelo."
+
+#: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214
+msgid "Opening of these files failed:"
+msgstr "Otvaranje ovih datoteka nije uspjelo:"
+
+#: kdiff3.cpp:449
+msgid "File Open Error"
+msgstr "Greška pri otvaranju datoteke"
+
+#: kdiff3.cpp:477
+msgid "Opens documents for comparison..."
+msgstr "Otvara dokumente za poređenje..."
+
+#: kdiff3.cpp:479
+#, fuzzy
+msgid "Reload"
+msgstr "Spreman."
+
+#: kdiff3.cpp:482
+msgid "Saves the merge result. All conflicts must be solved!"
+msgstr "Snima rezultat stapanja. Svi sukobi moraju biti riješeni!"
+
+#: kdiff3.cpp:484
+msgid "Saves the current document as..."
+msgstr "Snima trenutne dokumente kao..."
+
+#: kdiff3.cpp:487
+msgid "Print the differences"
+msgstr "Štampaj razlike"
+
+#: kdiff3.cpp:490
+msgid "Quits the application"
+msgstr "Izlazi iz aplikacije"
+
+#: kdiff3.cpp:492
+msgid "Cuts the selected section and puts it to the clipboard"
+msgstr "Isjeca odabrani odjeljak i stavlja ga u clipboard"
+
+#: kdiff3.cpp:494
+msgid "Copies the selected section to the clipboard"
+msgstr "Kopira odabrani odjeljak u clipboard"
+
+#: kdiff3.cpp:496
+#, fuzzy
+msgid "Pastes the clipboard contents to current position"
+msgstr "Prenosi sadržaje clipboarda na stvarnu poziciju"
+
+#: kdiff3.cpp:498
+msgid "Select everything in current window"
+msgstr "Odaberi sve u trenutnom prozoru"
+
+#: kdiff3.cpp:500
+msgid "Search for a string"
+msgstr "Potraži znakovni niz"
+
+#: kdiff3.cpp:502
+msgid "Search again for the string"
+msgstr "Ponovo potraži znakovni niz"
+
+#: kdiff3.cpp:507
+msgid "Enables/disables the statusbar"
+msgstr "Uključuje/isključuje statusnu traku"
+
+#: kdiff3.cpp:511
+msgid "Configure KDiff3..."
+msgstr "Podesi KDiff3..."
+
+#: kdiff3.cpp:532
+msgid "Go to Current Delta"
+msgstr "Idi na trenutnu deltu"
+
+#: kdiff3.cpp:532
+#, fuzzy
+msgid ""
+"Current\n"
+"Delta"
+msgstr "Idi na trenutnu deltu"
+
+#: kdiff3.cpp:534
+msgid "Go to First Delta"
+msgstr "Idi na prvu deltu"
+
+#: kdiff3.cpp:534
+#, fuzzy
+msgid ""
+"First\n"
+"Delta"
+msgstr "Idi na prvu deltu"
+
+#: kdiff3.cpp:536
+msgid "Go to Last Delta"
+msgstr "Idi na posljednju deltu"
+
+#: kdiff3.cpp:536
+#, fuzzy
+msgid ""
+"Last\n"
+"Delta"
+msgstr "Idi na posljednju deltu"
+
+#: kdiff3.cpp:538
+msgid "(Skips white space differences when \"Show White Space\" is disabled.)"
+msgstr ""
+"(Preskače razlike u blanko znacima kada je \"Prikaži blanko znake\" "
+"isključeno.)"
+
+#: kdiff3.cpp:539
+msgid ""
+"(Does not skip white space differences even when \"Show White Space\" is "
+"disabled.)"
+msgstr ""
+"(Ne preskače razlike u blanko znacima čak i kada je \"Prikaži blanko znake\" "
+"isključeno.)"
+
+#: kdiff3.cpp:540
+msgid "Go to Previous Delta"
+msgstr "Idi na prethodnu deltu"
+
+#: kdiff3.cpp:540
+#, fuzzy
+msgid ""
+"Prev\n"
+"Delta"
+msgstr "Idi na prethodnu deltu"
+
+#: kdiff3.cpp:542
+msgid "Go to Next Delta"
+msgstr "Idi na slijedeću deltu"
+
+#: kdiff3.cpp:542
+#, fuzzy
+msgid ""
+"Next\n"
+"Delta"
+msgstr "Idi na slijedeću deltu"
+
+#: kdiff3.cpp:544
+msgid "Go to Previous Conflict"
+msgstr "Idi na prethodni sukob"
+
+#: kdiff3.cpp:544
+#, fuzzy
+msgid ""
+"Prev\n"
+"Conflict"
+msgstr "Sukobi"
+
+#: kdiff3.cpp:546
+msgid "Go to Next Conflict"
+msgstr "Idi na slijedeći sukob"
+
+#: kdiff3.cpp:546
+#, fuzzy
+msgid ""
+"Next\n"
+"Conflict"
+msgstr "Idi na slijedeći sukob"
+
+#: kdiff3.cpp:548
+msgid "Go to Previous Unsolved Conflict"
+msgstr "Idi na prethodni neriješeni sukob"
+
+#: kdiff3.cpp:548
+#, fuzzy
+msgid ""
+"Prev\n"
+"Unsolved"
+msgstr "Neriješen"
+
+#: kdiff3.cpp:550
+msgid "Go to Next Unsolved Conflict"
+msgstr "Idi na slijedeći neriješeni sukob"
+
+#: kdiff3.cpp:550
+#, fuzzy
+msgid ""
+"Next\n"
+"Unsolved"
+msgstr "Neriješen"
+
+#: kdiff3.cpp:552
+msgid "Select Line(s) From A"
+msgstr "Odaberite liniju/linije iz A"
+
+#: kdiff3.cpp:552
+msgid ""
+"Choose\n"
+"A"
+msgstr ""
+
+#: kdiff3.cpp:553
+msgid "Select Line(s) From B"
+msgstr "Odaberite liniju/linije iz B"
+
+#: kdiff3.cpp:553
+msgid ""
+"Choose\n"
+"B"
+msgstr ""
+
+#: kdiff3.cpp:554
+msgid "Select Line(s) From C"
+msgstr "Odaberite liniju/linije iz C"
+
+#: kdiff3.cpp:554
+msgid ""
+"Choose\n"
+"C"
+msgstr ""
+
+#: kdiff3.cpp:555
+msgid "Automatically Go to Next Unsolved Conflict After Source Selection"
+msgstr "Automatski idi na slijedeći neriješeni sukob nakon izbora izvora"
+
+#: kdiff3.cpp:555
+msgid ""
+"Auto\n"
+"Next"
+msgstr ""
+
+#: kdiff3.cpp:557
+msgid "Show Space && Tabulator Characters for Differences"
+msgstr "Prikaži znakove razmaka i tabulatora za razlike"
+
+#: kdiff3.cpp:557
+msgid ""
+"White\n"
+"Characters"
+msgstr ""
+
+#: kdiff3.cpp:558
+msgid "Show White Space"
+msgstr "Prikaži blanko znak"
+
+#: kdiff3.cpp:558
+msgid ""
+"White\n"
+"Deltas"
+msgstr ""
+
+#: kdiff3.cpp:560
+msgid "Show Line Numbers"
+msgstr "Prikaži brojeve linija"
+
+#: kdiff3.cpp:560
+#, fuzzy
+msgid ""
+"Line\n"
+"Numbers"
+msgstr "Prikaži brojeve linija"
+
+#: kdiff3.cpp:561
+msgid "Choose A Everywhere"
+msgstr "Svuda izaberi A"
+
+#: kdiff3.cpp:562
+msgid "Choose B Everywhere"
+msgstr "Svuda izaberi B"
+
+#: kdiff3.cpp:563
+msgid "Choose C Everywhere"
+msgstr "Svuda izaberi C"
+
+#: kdiff3.cpp:564
+msgid "Choose A for All Unsolved Conflicts"
+msgstr "Izaberi A za sve neriješene sukobe"
+
+#: kdiff3.cpp:565
+msgid "Choose B for All Unsolved Conflicts"
+msgstr "Izaberi B za sve neriješene sukobe"
+
+#: kdiff3.cpp:566
+msgid "Choose C for All Unsolved Conflicts"
+msgstr "Izaberi C za sve neriješene sukobe"
+
+#: kdiff3.cpp:567
+msgid "Choose A for All Unsolved Whitespace Conflicts"
+msgstr "Izaberi A za sve neriješene sukobe blanko znakova"
+
+#: kdiff3.cpp:568
+msgid "Choose B for All Unsolved Whitespace Conflicts"
+msgstr "Izaberi B za sve neriješene sukobe blanko znakova"
+
+#: kdiff3.cpp:569
+msgid "Choose C for All Unsolved Whitespace Conflicts"
+msgstr "Izaberi C za sve neriješene sukobe blanko znakova"
+
+#: kdiff3.cpp:570
+msgid "Automatically Solve Simple Conflicts"
+msgstr "Automatski riješi jednostavne sukobe"
+
+#: kdiff3.cpp:571
+msgid "Set Deltas to Conflicts"
+msgstr "Postavi delte na sukobe"
+
+#: kdiff3.cpp:572
+msgid "Run Regular Expression Auto Merge"
+msgstr "Pokreni auto-stapanje regularnih izraza"
+
+#: kdiff3.cpp:573
+msgid "Automatically Solve History Conflicts"
+msgstr "Automatski riješi sukobe historije"
+
+#: kdiff3.cpp:574
+msgid "Split Diff At Selection"
+msgstr "Razdvoji razlike pri odabiru"
+
+#: kdiff3.cpp:575
+msgid "Join Selected Diffs"
+msgstr "Sjedini odabrane razlike"
+
+#: kdiff3.cpp:577
+msgid "Show Window A"
+msgstr "Prikaži prozor A"
+
+#: kdiff3.cpp:578
+msgid "Show Window B"
+msgstr "Prikaži prozor B"
+
+#: kdiff3.cpp:579
+msgid "Show Window C"
+msgstr "Prikaži prozor C"
+
+#: kdiff3.cpp:580 kdiff3.cpp:591
+msgid "Focus Next Window"
+msgstr "Fokusiraj slijedeći prozor"
+
+#: kdiff3.cpp:582
+msgid "Normal Overview"
+msgstr "Normalan pregled"
+
+#: kdiff3.cpp:583
+msgid "A vs. B Overview"
+msgstr "Pregled A prema B"
+
+#: kdiff3.cpp:584
+msgid "A vs. C Overview"
+msgstr "Pregled A prema C"
+
+#: kdiff3.cpp:585
+msgid "B vs. C Overview"
+msgstr "Pregled B prema C"
+
+#: kdiff3.cpp:586
+msgid "Word Wrap Diff Windows"
+msgstr "Prozori razlika omota riječi"
+
+#: kdiff3.cpp:587
+msgid "Add Manual Diff Alignment"
+msgstr "Dodaj ručno poravnanje razlika"
+
+#: kdiff3.cpp:588
+msgid "Clear All Manual Diff Alignments"
+msgstr "Izbriši sva ručna poravnanja razlika"
+
+#: kdiff3.cpp:593
+msgid "Focus Prev Window"
+msgstr "Fokusiraj prethodni prozor"
+
+#: kdiff3.cpp:594
+msgid "Toggle Split Orientation"
+msgstr "Prebaci orijentaciju razdvajanja"
+
+#: kdiff3.cpp:596
+msgid "Dir && Text Split Screen View"
+msgstr "Podijeljeni prikaz ekrana za dir. i tekst"
+
+#: kdiff3.cpp:598
+msgid "Toggle Between Dir && Text View"
+msgstr "Prebaci između dir. i tekst. prikaza"
+
+#: kdiff3.cpp:654 pdiff.cpp:1812
+msgid "The merge result hasn't been saved."
+msgstr "Rezultat stapanja nije snimljen."
+
+#: kdiff3.cpp:656
+msgid "Save && Quit"
+msgstr "Snimi i izađi"
+
+#: kdiff3.cpp:657
+msgid "Quit Without Saving"
+msgstr "Izađi bez snimanja"
+
+#: kdiff3.cpp:665 pdiff.cpp:1823
+msgid "Saving the merge result failed."
+msgstr "Snimanje rezultata stapanja nije uspjelo."
+
+#: kdiff3.cpp:676 pdiff.cpp:1078
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort?"
+msgstr "Trenutno stapate direktorije. Da li ste sigurni da želite prekinuti?"
+
+#: kdiff3.cpp:701
+msgid "Saving file..."
+msgstr "Snimam datoteku..."
+
+#: kdiff3.cpp:718
+msgid "Saving file with a new filename..."
+msgstr "Snimam datoteku pod novim nazivom..."
+
+#: kdiff3.cpp:781
+#, fuzzy
+#| msgid "Printing completed."
+msgid "Printing not implemented."
+msgstr "Štampanje završeno."
+
+#: kdiff3.cpp:815
+msgid "Printing..."
+msgstr "Štampam..."
+
+#: kdiff3.cpp:956
+msgid "Selection"
+msgstr "Odabir"
+
+#: kdiff3.cpp:982
+msgid "Printing completed."
+msgstr "Štampanje završeno."
+
+#: kdiff3.cpp:986
+msgid "Printing aborted."
+msgstr "Štampanje prekinuto."
+
+#: kdiff3.cpp:993
+msgid "Exiting..."
+msgstr "Izlazim..."
+
+#: kdiff3.cpp:1006
+msgid "Toggling toolbar..."
+msgstr "Prebacujem traku sa alatom..."
+
+#: kdiff3.cpp:1027
+msgid "Toggle the statusbar..."
+msgstr "Prebaci statusnu traku..."
+
+#: smalldialogs.cpp:58
+msgid "A (Base):"
+msgstr "A (baza):"
+
+#: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99
+#: smalldialogs.cpp:142
+msgid "File..."
+msgstr "Datoteka..."
+
+#: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101
+#: smalldialogs.cpp:144
+msgid "Dir..."
+msgstr "Dir..."
+
+#: smalldialogs.cpp:93
+msgid "C (Optional):"
+msgstr "C (opcionalno):"
+
+#: smalldialogs.cpp:116
+msgid "Swap/Copy Names ..."
+msgstr "Razmijeni/Kopiraj nazive ..."
+
+#: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123
+#, kde-format
+msgid "Swap %1<->%2"
+msgstr "Razmijeni %1<->%2"
+
+#: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126
+#, kde-format
+msgid "Copy %1->Output"
+msgstr "Kopiraj %1->Izlaz"
+
+#: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129
+#, kde-format
+msgid "Swap %1<->Output"
+msgstr "Razmijeni %1<->Izlaz"
+
+#: smalldialogs.cpp:136
+msgid "Output (optional):"
+msgstr "Izlaz (opcionalno):"
+
+#: smalldialogs.cpp:168
+msgid "Configure..."
+msgstr "Podesi..."
+
+#: smalldialogs.cpp:174
+msgid "&OK"
+msgstr ""
+
+#: smalldialogs.cpp:362
+msgid "Search text:"
+msgstr "Tekst za pretragu:"
+
+#: smalldialogs.cpp:369
+msgid "Case sensitive"
+msgstr "Razlikuje veličinu slova"
+
+#: smalldialogs.cpp:372
+msgid "Search A"
+msgstr "Pretraži A"
+
+#: smalldialogs.cpp:377
+msgid "Search B"
+msgstr "Pretraži B"
+
+#: smalldialogs.cpp:382
+msgid "Search C"
+msgstr "Pretraži C"
+
+#: smalldialogs.cpp:387
+msgid "Search output"
+msgstr "Izlaz pretrage"
+
+#: smalldialogs.cpp:392
+msgid "&Search"
+msgstr "&Traži"
+
+#: smalldialogs.cpp:409
+msgid "Regular Expression Tester"
+msgstr "Ispitivač regularnih izraza"
+
+#: smalldialogs.cpp:414 optiondialog.cpp:936
+msgid "Auto merge regular expression:"
+msgstr "Regularni izraz auto-stapanja:"
+
+#: smalldialogs.cpp:422
+msgid "Example auto merge line:"
+msgstr "Primjer linije auto-stapanja:"
+
+#: smalldialogs.cpp:424
+#, fuzzy
+msgid "To test auto merge, copy a line as used in your files."
+msgstr ""
+"Za test auto-stapanja kopirajte liniju kao što je to korišteno u Vašim "
+"datotekama."
+
+#: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494
+msgid "Match result:"
+msgstr "Rezultat usklađivanja:"
+
+#: smalldialogs.cpp:441 optiondialog.cpp:962
+msgid "History start regular expression:"
+msgstr "Regularni izraz početka historije:"
+
+#: smalldialogs.cpp:449
+msgid "Example history start line (with leading comment):"
+msgstr "Primjer početne linije historije (sa glavnim komentarom):"
+
+#: smalldialogs.cpp:451
+msgid ""
+"Copy a history start line as used in your files,\n"
+"including the leading comment."
+msgstr ""
+"Kopirajte početnu liniju historije kao što je to korišteno u Vašim "
+"datotekama,\n"
+"uključujući glavni komentar."
+
+#: smalldialogs.cpp:469 optiondialog.cpp:972
+msgid "History entry start regular expression:"
+msgstr "Regularni izraz početka zapisa historije:"
+
+#: smalldialogs.cpp:477
+msgid "History sort key order:"
+msgstr "Poredak tipki za sortiranje historije:"
+
+#: smalldialogs.cpp:485
+msgid "Example history entry start line (without leading comment):"
+msgstr "Primjer početne linije zapisa historije (bez glavnog komentara):"
+
+#: smalldialogs.cpp:487
+msgid ""
+"Copy a history entry start line as used in your files,\n"
+"but omit the leading comment."
+msgstr ""
+"Kopirajte početnu liniju zapisa historije kao što je to korišteno u Vašim "
+"datotekama,\n"
+"ali izostavite glavni komentar."
+
+#: smalldialogs.cpp:501
+msgid "Sort key result:"
+msgstr "Rezultat tipki za sortiranje:"
+
+#: smalldialogs.cpp:508
+msgid "OK"
+msgstr ""
+
+#: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583
+msgid "Match success."
+msgstr "Usklađivanje uspjelo."
+
+#: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589
+msgid "Match failed."
+msgstr "Usklađivanje nije uspjelo."
+
+#: smalldialogs.cpp:574
+#, fuzzy
+msgid "Opening and closing parentheses do not match in regular expression."
+msgstr "Otvorene i zatvorene zagrade se ne podudaraju u regularnom izrazu."
+
+#: optiondialog.cpp:367
+msgid "Unicode, 8 bit"
+msgstr "Unicode, 8-bitni"
+
+#: optiondialog.cpp:368
+msgid "Unicode"
+msgstr "Unicode"
+
+#: optiondialog.cpp:369
+msgid "Latin1"
+msgstr "Latin1"
+
+#: optiondialog.cpp:388
+msgid "Change this if non-ASCII characters are not displayed correctly."
+msgstr "Izmijenite ovo ako se znakovi koji nisu ASCII ne prikazuju ispravno."
+
+#: optiondialog.cpp:465
+#, fuzzy
+msgid "Configure"
+msgstr "Podesi..."
+
+#: optiondialog.cpp:531
+msgid "Font"
+msgstr ""
+
+#: optiondialog.cpp:532
+msgid "Editor & Diff Output Font"
+msgstr "Font editora i raz. izlaza"
+
+#: optiondialog.cpp:556
+msgid "Italic font for deltas"
+msgstr "Kurzivni font za delte"
+
+#: optiondialog.cpp:559
+msgid ""
+"Selects the italic version of the font for differences.\n"
+"If the font doesn't support italic characters, then this does nothing."
+msgstr ""
+"Bira kurzivnu verziju fonta za razlike.\n"
+"Ako font ne podržava kurzivne znakove, onda ovo ne radi ništa."
+
+#: optiondialog.cpp:568
+msgid "Color"
+msgstr "Boja"
+
+#: optiondialog.cpp:569
+msgid "Colors Settings"
+msgstr "Postavke boja"
+
+#: optiondialog.cpp:588
+msgid "Editor and Diff Views:"
+msgstr "Prikazi editora i razlika:"
+
+#: optiondialog.cpp:596
+msgid "Foreground color:"
+msgstr "Boja iscrtavanja:"
+
+#: optiondialog.cpp:603
+msgid "Background color:"
+msgstr "Boja pozadine:"
+
+#: optiondialog.cpp:612
+msgid "Diff background color:"
+msgstr "Boja pozadine razlika:"
+
+#: optiondialog.cpp:620
+msgid "Color A:"
+msgstr "Boja A:"
+
+#: optiondialog.cpp:628
+msgid "Color B:"
+msgstr "Boja B:"
+
+#: optiondialog.cpp:636
+msgid "Color C:"
+msgstr "Boja C:"
+
+#: optiondialog.cpp:643
+msgid "Conflict color:"
+msgstr "Boja sukoba:"
+
+#: optiondialog.cpp:651
+msgid "Current range background color:"
+msgstr "Pozadinska boja trenutnog opsega:"
+
+#: optiondialog.cpp:659
+msgid "Current range diff background color:"
+msgstr "Pozadinska boja trenutnog opsega razlika:"
+
+#: optiondialog.cpp:666
+msgid "Color for manually aligned difference ranges:"
+msgstr "Boja za ručno poravnate opsege razlika:"
+
+#: optiondialog.cpp:672
+msgid "Directory Comparison View:"
+msgstr "Prikaz poređenja direktorija:"
+
+#: optiondialog.cpp:678
+msgid "Newest file color:"
+msgstr "Boja najnovije datoteke:"
+
+#: optiondialog.cpp:682
+msgid ""
+"Changing this color will only be effective when starting the next directory "
+"comparison."
+msgstr ""
+"Izmjena ove boje će biti djelotvorna samo kod pokretanja slijedeće usporedbe "
+"direktorija."
+
+#: optiondialog.cpp:687
+msgid "Oldest file color:"
+msgstr "Boja najstarije datoteke:"
+
+#: optiondialog.cpp:695
+msgid "Middle age file color:"
+msgstr "Boja srednjovječne datoteke:"
+
+#: optiondialog.cpp:703
+msgid "Color for missing files:"
+msgstr "Boja za nestale datoteke:"
+
+#: optiondialog.cpp:717
+msgid "Editor"
+msgstr "Editor"
+
+#: optiondialog.cpp:718
+msgid "Editor Behavior"
+msgstr "Ponašanje editora"
+
+#: optiondialog.cpp:732
+msgid "Tab inserts spaces"
+msgstr "Tabulator ubacuje razmake"
+
+#: optiondialog.cpp:735
+#, fuzzy
+msgid ""
+"On: Pressing tab generates the appropriate number of spaces.\n"
+"Off: A tab character will be inserted."
+msgstr ""
+"Uključeno: Pritiskom na tabulator generiše se odgovarajući broj razmaka.\n"
+"Isključeno: Znak tabulatora će biti ubačen."
+
+#: optiondialog.cpp:741
+msgid "Tab size:"
+msgstr "Veličina tabulatora:"
+
+#: optiondialog.cpp:747
+msgid "Auto indentation"
+msgstr "Automatsko uvlačenje"
+
+#: optiondialog.cpp:750
+msgid "On: The indentation of the previous line is used for a new line.\n"
+msgstr "Uključeno: Uvlačenje prethodne linije koristi se za novu liniju.\n"
+
+#: optiondialog.cpp:754
+msgid "Auto copy selection"
+msgstr "Automatsko kopiranje izbora"
+
+#: optiondialog.cpp:757
+msgid ""
+"On: Any selection is immediately written to the clipboard.\n"
+"Off: You must explicitely copy e.g. via Ctrl-C."
+msgstr ""
+"Uključeno: Svaki izbor se odmah upisuje u clipboard.\n"
+"Isključeno: Morate eksplicitno kopirati, nrp. preko Ctrl+C."
+
+#: optiondialog.cpp:768
+#, fuzzy
+#| msgid "&Window"
+msgid "Dos/Windows"
+msgstr "P&rozor"
+
+#: optiondialog.cpp:769
+#, fuzzy
+msgid "Autodetect"
+msgstr "Automatsko kopiranje izbora"
+
+#: optiondialog.cpp:772
+msgid ""
+"Sets the line endings for when an edited file is saved.\n"
+"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A"
+msgstr ""
+"Postavlja završetke linija kada se izmijenjena datoteka snima.\n"
+"DOS/Windows: CR+LF; Unix: LF; sa CR=0D, LF=0A"
+
+#: optiondialog.cpp:784
+#, fuzzy
+msgid "Diff"
+msgstr "KDiff3"
+
+#: optiondialog.cpp:785
+#, fuzzy
+msgid "Diff Settings"
+msgstr "Postavke za razlike i stapanje"
+
+#: optiondialog.cpp:809
+#, fuzzy
+msgid "Treat as white space."
+msgstr "Tretiraj C/C++ komentare kao blanko znake."
+
+#: optiondialog.cpp:811
+msgid "Ignore numbers"
+msgstr "Ignoriši brojeve"
+
+#: optiondialog.cpp:814
+msgid ""
+"Ignore number characters during line matching phase. (Similar to Ignore "
+"white space.)\n"
+"Might help to compare files with numeric data."
+msgstr ""
+"Ignoriši brojevne znakove tokom faze usklađivanja linija. (Slično "
+"ignorisanju blanko znakova.)\n"
+"Može pomoći pri uspoređivanju datoteka sa numeričkim podacima."
+
+#: optiondialog.cpp:819
+msgid "Ignore C/C++ comments"
+msgstr "Ignoriši C/C++ komentare"
+
+#: optiondialog.cpp:821
+msgid "Treat C/C++ comments like white space."
+msgstr "Tretiraj C/C++ komentare kao blanko znake."
+
+#: optiondialog.cpp:825
+msgid "Ignore case"
+msgstr "Ignoriši veličinu slova"
+
+#: optiondialog.cpp:828
+msgid "Treat case differences like white space changes. ('a'<=>'A')"
+msgstr ""
+"Tretira razliku u veličini slova kao promjene blanko znakova. ('a'<=>'A')"
+
+#: optiondialog.cpp:832
+msgid "Preprocessor command:"
+msgstr "Predobradna naredba:"
+
+#: optiondialog.cpp:836
+msgid "User defined pre-processing. (See the docs for details.)"
+msgstr ""
+"Korisnički definisana predobrada. (Pogledajte dokumentaciju radi detalja.)"
+
+#: optiondialog.cpp:839
+msgid "Line-matching preprocessor command:"
+msgstr "Predobradna naredba za usklađivanje linija:"
+
+#: optiondialog.cpp:843
+msgid ""
+"This pre-processor is only used during line matching.\n"
+"(See the docs for details.)"
+msgstr ""
+"Ova predobrada se koristi samo tokom usklađivanja linija.\n"
+"(Pogledajte dokumentaciju radi detalja.)"
+
+#: optiondialog.cpp:846
+msgid "Try hard (slower)"
+msgstr "Potrudi se (sporije)"
+
+#: optiondialog.cpp:849
+msgid ""
+"Enables the --minimal option for the external diff.\n"
+"The analysis of big files will be much slower."
+msgstr ""
+"Uključuje opciju --minimal za spoljašnje razlikovanje.\n"
+"Analiza velikih datoteka će biti mnogo sporija."
+
+#: optiondialog.cpp:854
+msgid "Align B and C for 3 input files"
+msgstr ""
+
+#: optiondialog.cpp:857
+msgid ""
+"Try to align B and C when comparing or merging three input files.\n"
+"Not recommended for merging because merge might get more complicated.\n"
+"(Default is off.)"
+msgstr ""
+
+#: optiondialog.cpp:870
+#, fuzzy
+msgid "Merge Settings"
+msgstr "Postavke za razlike i stapanje"
+
+#: optiondialog.cpp:885
+msgid "Auto advance delay (ms):"
+msgstr "Zastoj automatskog napredovanja (ms):"
+
+#: optiondialog.cpp:890
+msgid ""
+"When in Auto-Advance mode the result of the current selection is shown \n"
+"for the specified time, before jumping to the next conflict. Range: 0-2000 ms"
+msgstr ""
+"U režimu automatskog napredovanja rezultat trenutnog izbora prikazuje se \n"
+"za navedeno vrijeme, prije skoka na slijedeći sukob. Opseg: 0-2000 ms"
+
+#: optiondialog.cpp:895
+#, fuzzy
+msgid "Show info dialogs"
+msgstr "Prikaži prozor A"
+
+#: optiondialog.cpp:897
+msgid "Show a dialog with information about the number of conflicts."
+msgstr ""
+
+#: optiondialog.cpp:900
+msgid "White space 2-file merge default:"
+msgstr "Podrazumjevano stapanje blanko znakova dvije datoteke:"
+
+#: optiondialog.cpp:904 optiondialog.cpp:917
+msgid "Manual Choice"
+msgstr "Ručni izbor"
+
+#: optiondialog.cpp:908 optiondialog.cpp:922
+msgid ""
+"Allow the merge algorithm to automatically select an input for white-space-"
+"only changes."
+msgstr ""
+"Dozvoljava algoritmu stapanja da automatski odabere ulaz za izmjene samo u "
+"blanko znakovima."
+
+#: optiondialog.cpp:913
+msgid "White space 3-file merge default:"
+msgstr "Podrazumjevano stapanje blanko znakova tri datoteke:"
+
+#: optiondialog.cpp:927
+msgid "Automatic Merge Regular Expression"
+msgstr "Regularni izraz automatskog stapanja"
+
+#: optiondialog.cpp:940
+msgid ""
+"Regular expression for lines where KDiff3 should automatically choose one "
+"source.\n"
+"When a line with a conflict matches the regular expression then\n"
+"- if available - C, otherwise B will be chosen."
+msgstr ""
+"Regularni izraz za linije gdje bi KDiff3 automatski trebao odabrati jedan "
+"izvor.\n"
+"Kada linija sa sukobom odgovara regularnom izrazu onda\n"
+"- ako je dostupan - C, u protivnom će B biti izabran."
+
+#: optiondialog.cpp:946
+msgid "Run regular expression auto merge on merge start"
+msgstr "Pokreni auto-stapanje regularnih izraza na početku stapanja"
+
+#: optiondialog.cpp:948
+msgid ""
+"Run the merge for auto merge regular expressions\n"
+"immediately when a merge starts.\n"
+msgstr ""
+"Pokreni stapanje za regularne izraze auto-stapanja\n"
+"odmah kada stapanje počne.\n"
+
+#: optiondialog.cpp:953
+msgid "Version Control History Merging"
+msgstr "Stapanje historije kontrola verzije"
+
+#: optiondialog.cpp:966
+#, fuzzy
+msgid ""
+"Regular expression for the start of the version control history entry.\n"
+"Usually this line contains the \"$Log$\" keyword.\n"
+"Default value: \".*\\$Log.*\\$.*\""
+msgstr ""
+"Regularni izraz za početak zapisa historije kontrola verzije.\n"
+"Obično ova linija sadrži ključnu riječ \"$Log$\".\n"
+"Podrazumjevana vrijednost: \".*\\$Log.*\\$.*\""
+
+#: optiondialog.cpp:984
+msgid ""
+"A version control history entry consists of several lines.\n"
+"Specify the regular expression to detect the first line (without the leading "
+"comment).\n"
+"Use parentheses to group the keys you want to use for sorting.\n"
+"If left empty, then KDiff3 assumes that empty lines separate history "
+"entries.\n"
+"See the documentation for details."
+msgstr ""
+"Zapis historije kontrola verzije sastoji se od nekoliko linija.\n"
+"Navedite regularni izraz da bi ustanovili prvu liniju (bez glavnog "
+"komentara).\n"
+"Koristite okrugle zagrade da bi grupisali tipke koje želite koristiti za "
+"sortiranje.\n"
+"U slučaju da ostane prazno, tada KDiff3 smatra da prazne linije razdvajaju "
+"zapise historije.\n"
+"Pogledati dokumentaciju radi detalja."
+
+#: optiondialog.cpp:992
+msgid "History merge sorting"
+msgstr "Sortiranje stapanja historije"
+
+#: optiondialog.cpp:994
+msgid "Sort version control history by a key."
+msgstr "Sortiraj historiju kontrola verzije pomoću tipke."
+
+#: optiondialog.cpp:1004
+msgid "History entry start sort key order:"
+msgstr "Poredak tipki za sortiranje početka zapisa historije:"
+
+#: optiondialog.cpp:1008
+#, fuzzy
+msgid ""
+"Each pair of parentheses used in the regular expression for the history "
+"start entry\n"
+"groups a key that can be used for sorting.\n"
+"Specify the list of keys (that are numbered in order of occurrence\n"
+"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n"
+"If left empty, then no sorting will be done.\n"
+"See the documentation for details."
+msgstr ""
+"Svaka okrugla zagrada korištena u regularnom izrazu za početni zapis "
+"historije\n"
+"grupiše tipku koja može biti korištena za sortiranje.\n"
+"Navedite listu tipki (koje su numerisane po slučajnom poretku\n"
+"počevši sa 1) koristeći ',' kao razdjelnik (npr. \"4,5,6,1,2,3,7\").\n"
+"U slučaju da ostane prazno, tada se neće izvršiti sortiranje.\n"
+"Pogledati dokumentaciju radi detalja."
+
+#: optiondialog.cpp:1019
+msgid "Merge version control history on merge start"
+msgstr "Stopi historiju kontrola verzije na početku stapanja"
+
+#: optiondialog.cpp:1021
+msgid "Run version control history automerge on merge start."
+msgstr "Pokreni auto-stapanje historije kontrola verzije na početku stapanja."
+
+#: optiondialog.cpp:1025
+#, fuzzy
+msgid "Max number of history entries:"
+msgstr "Broj poddirektorija:"
+
+#: optiondialog.cpp:1028
+msgid "Cut off after specified number. Use -1 for infinite number of entries."
+msgstr ""
+
+#: optiondialog.cpp:1032
+msgid "Test your regular expressions"
+msgstr "Testirajte svoje regularne izraze"
+
+#: optiondialog.cpp:1037
+msgid "Irrelevant merge command:"
+msgstr "Nevažna naredba stapanja:"
+
+#: optiondialog.cpp:1041
+msgid ""
+"If specified this script is run after automerge\n"
+"when no other relevant changes were detected.\n"
+"Called with the parameters: filename1 filename2 filename3"
+msgstr ""
+"U slučaju da je naznačeno ova skripta se pokreće nakon auto-stapanja\n"
+"kada nisu ustanovljene nikakve druge važne promjene.\n"
+"Pozvana parametrima: filename1 filename2 filename3"
+
+#: optiondialog.cpp:1047
+msgid "Auto save and quit on merge without conflicts"
+msgstr ""
+
+#: optiondialog.cpp:1050
+msgid ""
+"If KDiff3 was started for a file-merge from the command line and all\n"
+"conflicts are solvable without user interaction then automatically save and "
+"quit.\n"
+"(Similar to command line option \"--auto\".)"
+msgstr ""
+
+#: optiondialog.cpp:1061 optiondialog.cpp:1062
+#, fuzzy
+msgid "Directory"
+msgstr "&Direktorij"
+
+#: optiondialog.cpp:1075
+msgid "Recursive directories"
+msgstr "Rekurzivni direktoriji"
+
+#: optiondialog.cpp:1077
+msgid "Whether to analyze subdirectories or not."
+msgstr "Bilo da se analiziraju poddirektoriji ili ne."
+
+#: optiondialog.cpp:1079
+msgid "File pattern(s):"
+msgstr "Uzorak/uzorci datoteka:"
+
+#: optiondialog.cpp:1084
+msgid ""
+"Pattern(s) of files to be analyzed. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Uzorak/uzorci datoteka koje treba analizirati.\n"
+"Zamjenski znaci: '*' i '?'\n"
+"Više uzoraka može biti navedeno upotrebom razdjelnika: ';'"
+
+#: optiondialog.cpp:1090
+msgid "File-anti-pattern(s):"
+msgstr "Anti-uzorak/uzorci datoteka:"
+
+#: optiondialog.cpp:1095
+msgid ""
+"Pattern(s) of files to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Uzorak/uzorci datoteka koje treba isključiti iz analize.\n"
+"Zamjenski znaci: '*' i '?'\n"
+"Više uzoraka može biti navedeno upotrebom razdjelnika: ';'"
+
+#: optiondialog.cpp:1101
+msgid "Dir-anti-pattern(s):"
+msgstr "Anti-uzorak/uzorci direktorija:"
+
+#: optiondialog.cpp:1106
+msgid ""
+"Pattern(s) of directories to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Uzorak/uzorci direktorija koje treba isključiti iz analize.\n"
+"Zamjenski znaci: '*' i '?'\n"
+"Više uzoraka može biti navedeno upotrebom razdjelnika: ';'"
+
+#: optiondialog.cpp:1112
+msgid "Use .cvsignore"
+msgstr "Koristi datoteku .cvsignore"
+
+#: optiondialog.cpp:1115
+#, fuzzy
+msgid ""
+"Extends the antipattern to anything that would be ignored by CVS.\n"
+"Via local \".cvsignore\" files this can be directory specific."
+msgstr ""
+"Proširuje anti-uzorak na sve što bi CVS ignorisao.\n"
+"Preko lokalnih datoteka \".cvsignore\" ovo može biti posebno po direktoriju."
+
+#: optiondialog.cpp:1120
+msgid "Find hidden files and directories"
+msgstr "Pronađi skrivene datoteke i direktorije"
+
+#: optiondialog.cpp:1123
+msgid "Finds files and directories with the hidden attribute."
+msgstr "Nalazi datoteke i direktorije sa atributom skrivenih."
+
+#: optiondialog.cpp:1125
+msgid "Finds files and directories starting with '.'."
+msgstr "Nalazi datoteke i direktorije koji počinju sa '.'."
+
+#: optiondialog.cpp:1129
+msgid "Follow file links"
+msgstr "Prati veze datoteka"
+
+#: optiondialog.cpp:1132
+msgid ""
+"On: Compare the file the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+"Uključeno: Uporedi datoteku na koju pokazuje veza.\n"
+"Isključeno: Uporedi veze."
+
+#: optiondialog.cpp:1137
+msgid "Follow directory links"
+msgstr "Prati veze direktorija"
+
+#: optiondialog.cpp:1140
+msgid ""
+"On: Compare the directory the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+"Uključeno: Uporedi direktorij na koji pokazuje veza.\n"
+"Isključeno: Uporedi veze."
+
+#: optiondialog.cpp:1156
+msgid "Case sensitive filename comparison"
+msgstr "Poređenje datoteka po nazivu koje razlikuje veličinu slova"
+
+#: optiondialog.cpp:1159
+msgid ""
+"The directory comparison will compare files or directories when their names "
+"match.\n"
+"Set this option if the case of the names must match. (Default for Windows is "
+"off, otherwise on.)"
+msgstr ""
+"Poređenje direktorija će porediti datoteke ili direktorije kada se "
+"podudaraju po nazivu.\n"
+"Postavi ovu opciju ako se veličine slova za nazive moraju podudarati. "
+"(Podrazumjevano za Windows je isključeno, u protivnom uključeno.)"
+
+#: optiondialog.cpp:1163
+msgid "File Comparison Mode"
+msgstr "Režim poređenja datoteka"
+
+#: optiondialog.cpp:1169
+msgid "Binary comparison"
+msgstr "Binarno poređenje"
+
+#: optiondialog.cpp:1170
+msgid "Binary comparison of each file. (Default)"
+msgstr "Binarno poređenje za svaku datoteku. (Podrazumjevano)"
+
+#: optiondialog.cpp:1173
+msgid "Full analysis"
+msgstr "Puna analiza"
+
+#: optiondialog.cpp:1174
+msgid ""
+"Do a full analysis and show statistics information in extra columns.\n"
+"(Slower than a binary comparison, much slower for binary files.)"
+msgstr ""
+"Obavi punu analizu i prikaži statističke podatke u dodatnim kolonama.\n"
+"(Sporije nego binarno poređenje, mnogo sporije za binarne datoteke.)"
+
+#: optiondialog.cpp:1178
+#, fuzzy
+msgid "Trust the size and modification date (unsafe)"
+msgstr "Čuvaj datum izmjene (nesigurno)"
+
+#: optiondialog.cpp:1179
+#, fuzzy
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"Files with equal contents but different modification dates will appear as "
+"different.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"Pretpostavi da su datoteke jednake ako su datum izmjene i dužina datoteke "
+"jednaki.\n"
+"Korisno za velike direktorije ili spore mreže."
+
+#: optiondialog.cpp:1184
+msgid ""
+"Trust the size and date, but use binary comparison if date does not match "
+"(unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1185
+#, fuzzy
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"If the dates are not equal but the sizes are, use binary comparison.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"Pretpostavi da su datoteke jednake ako su datum izmjene i dužina datoteke "
+"jednaki.\n"
+"Korisno za velike direktorije ili spore mreže."
+
+#: optiondialog.cpp:1190
+msgid "Trust the size (unsafe)"
+msgstr "Čuvaj veličinu (nesigurno)"
+
+#: optiondialog.cpp:1191
+msgid ""
+"Assume that files are equal if their file lengths are equal.\n"
+"Useful for big directories or slow networks when the date is modified during "
+"download."
+msgstr ""
+"Pretpostavi da su datoteke jednake ako su njihove dužine jednake.\n"
+"Korisno za velike direktorije ili spore mreže kada je datum izmijenjen u "
+"toku preuzimanja."
+
+#: optiondialog.cpp:1199
+msgid "Synchronize directories"
+msgstr "Sinhronizuj direktorije"
+
+#: optiondialog.cpp:1202
+msgid ""
+"Offers to store files in both directories so that\n"
+"both directories are the same afterwards.\n"
+"Works only when comparing two directories without specifying a destination."
+msgstr ""
+"Nudi da skladišti datoteke u oba direktorija tako\n"
+"da su oba direktorija nakon toga ista.\n"
+"Radi samo kada se porede dva direktorija bez navođenja odredišta."
+
+#: optiondialog.cpp:1208
+msgid "White space differences considered equal"
+msgstr "Razlike blanko znakova smatraju se jednakim"
+
+#: optiondialog.cpp:1211
+msgid ""
+"If files differ only by white space consider them equal.\n"
+"This is only active when full analysis is chosen."
+msgstr ""
+"Ako se datoteke razlikuju samo po blanko znacima, smatraj ih jednakim.\n"
+"Ovo je aktivno samo kada je odabrana puna analiza."
+
+#: optiondialog.cpp:1217
+msgid "Copy newer instead of merging (unsafe)"
+msgstr "Kopiraj noviji umjesto stapanja (nesigurno)"
+
+#: optiondialog.cpp:1220
+msgid ""
+"Don't look inside, just take the newer file.\n"
+"(Use this only if you know what you are doing!)\n"
+"Only effective when comparing two directories."
+msgstr ""
+"Ne gledaj unutra, samo uzmi noviju datoteku.\n"
+"(Koristite ovo samo ako znate šta radite!)\n"
+"Djelotvorno samo kada se porede dva direktorija."
+
+#: optiondialog.cpp:1225
+msgid "Backup files (.orig)"
+msgstr "Napravi rezerve datoteka (.orig)"
+
+#: optiondialog.cpp:1228
+#, fuzzy
+msgid ""
+"If a file would be saved over an old file, then the old file\n"
+"will be renamed with a '.orig' extension instead of being deleted."
+msgstr ""
+"Kada se datoteka snima preko stare datoteke, stara datoteka\n"
+"će biti preimenovana sa nastavkom '.orig' umjesto da bude obrisana."
+
+#: optiondialog.cpp:1301 optiondialog.cpp:1302
+msgid "Regional Settings"
+msgstr "Regionalne postavke"
+
+#: optiondialog.cpp:1402
+msgid "Language (restart required)"
+msgstr "Jezik (zahtijeva se ponovno pokretanje)"
+
+#: optiondialog.cpp:1445
+#, fuzzy
+msgid ""
+"Choose the language of the GUI strings or \"Auto\".\n"
+"For a change of language to take place, quit and restart KDiff3."
+msgstr ""
+"Izaberite jezik za ispise u GUI-u ili \"Auto\".\n"
+"Da bi se izmjena jezika desila, zatvorite i ponovo pokrenite KDiff3."
+
+#: optiondialog.cpp:1463
+msgid "Use the same encoding for everything:"
+msgstr "Koristi isto kodiranje za sve:"
+
+#: optiondialog.cpp:1466
+msgid ""
+"Enable this allows to change all encodings by changing the first only.\n"
+"Disable this if different individual settings are needed."
+msgstr ""
+"Uključivanjem ovog možete promijeniti sva kodiranja promjenom samo prvog.\n"
+"Isključite ovo ako su potrebne različite zasebne postavke."
+
+#: optiondialog.cpp:1471
+msgid "Note: Local Encoding is "
+msgstr "Napomna: Lokalno kodiranje je "
+
+#: optiondialog.cpp:1475
+msgid "File Encoding for A:"
+msgstr "Kodiranje datoteke za A:"
+
+#: optiondialog.cpp:1481
+msgid ""
+"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n"
+"If the file is not Unicode then the selected encoding will be used as "
+"fallback.\n"
+"(Unicode detection depends on the first bytes of a file.)"
+msgstr ""
+
+#: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503
+msgid "Auto Detect Unicode"
+msgstr ""
+
+#: optiondialog.cpp:1490
+msgid "File Encoding for B:"
+msgstr "Kodiranje datoteke za B:"
+
+#: optiondialog.cpp:1499
+msgid "File Encoding for C:"
+msgstr "Kodiranje datoteke za C:"
+
+#: optiondialog.cpp:1508
+msgid "File Encoding for Merge Output and Saving:"
+msgstr "Kodiranje datoteke za stapanje izlaza i snimanje:"
+
+#: optiondialog.cpp:1512
+#, fuzzy
+msgid "Auto Select"
+msgstr "Automatsko kopiranje izbora"
+
+#: optiondialog.cpp:1515
+msgid ""
+"If enabled then the encoding from the input files is used.\n"
+"In ambiguous cases a dialog will ask the user to choose the encoding for "
+"saving."
+msgstr ""
+
+#: optiondialog.cpp:1519
+msgid "File Encoding for Preprocessor Files:"
+msgstr "Kodiranje datoteke za preprocesorke datoteke:"
+
+#: optiondialog.cpp:1530
+msgid "Right To Left Language"
+msgstr "Jezik s desna na lijevo"
+
+#: optiondialog.cpp:1533
+msgid ""
+"Some languages are read from right to left.\n"
+"This setting will change the viewer and editor accordingly."
+msgstr ""
+"Neki jezici se čitaju s desna na lijevo.\n"
+"Ova postavka će prilagoditi tome prikazivač i editor."
+
+#: optiondialog.cpp:1548
+msgid "Integration"
+msgstr "Uklapanje"
+
+#: optiondialog.cpp:1549
+msgid "Integration Settings"
+msgstr "Postavke uklapanja"
+
+#: optiondialog.cpp:1563
+msgid "Command line options to ignore:"
+msgstr "Opcije komandne linije koje treba ignorisati:"
+
+#: optiondialog.cpp:1568
+#, fuzzy
+msgid ""
+"List of command line options that should be ignored when KDiff3 is used by "
+"other tools.\n"
+"Several values can be specified if separated via ';'\n"
+"This will suppress the \"Unknown option\" error."
+msgstr ""
+"Lista opcija komandne linije koje bi trebale biti ignorisane kada je KDiff3 "
+"korišten od strane drugih alata.\n"
+"Nekoliko vrijednosti se može navesti ako su razdvojene preko ';'\n"
+"Ovo će izostaviti grešku \"Nepoznata opcija\"."
+
+#: optiondialog.cpp:1575
+msgid "Quit also via Escape key"
+msgstr ""
+
+#: optiondialog.cpp:1578
+msgid ""
+"Fast method to exit.\n"
+"For those who are used to using the Escape key."
+msgstr ""
+
+#: optiondialog.cpp:1583
+msgid "Integrate with ClearCase"
+msgstr ""
+
+#: optiondialog.cpp:1586
+msgid ""
+"Integrate with Rational ClearCase from IBM.\n"
+"Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n"
+"(Only enabled when ClearCase \"bin\" directory is in the path.)"
+msgstr ""
+
+#: optiondialog.cpp:1592
+msgid "Remove ClearCase Integration"
+msgstr ""
+
+#: optiondialog.cpp:1595
+msgid ""
+"Restore the old \"map\" file from before doing the ClearCase integration."
+msgstr ""
+
+#: optiondialog.cpp:1680
+msgid "Incompatible Font"
+msgstr "Nekompatibilan font"
+
+#: optiondialog.cpp:1681
+msgid "Continue at Own Risk"
+msgstr "Nastavite na sopstveni rizik"
+
+#: optiondialog.cpp:1682
+msgid "Select Another Font"
+msgstr "Odaberite drugi font"
+
+#: optiondialog.cpp:1717
+msgid "This resets all options. Not only those of the current topic."
+msgstr "Ovo poništava sve opcije. Ne samo one na trenutnoj temi."
+
+#: pdiff.cpp:260
+msgid "PreprocessorCmd: "
+msgstr "Preprocesorka naredba: "
+
+#: pdiff.cpp:265
+msgid "The following option(s) you selected might change data:\n"
+msgstr "Slijedeće opcije koje ste izabrali mogu izmijeniti podatke:\n"
+
+#: pdiff.cpp:266
+msgid ""
+"\n"
+"Most likely this is not wanted during a merge.\n"
+"Do you want to disable these settings or continue with these settings active?"
+msgstr ""
+"\n"
+"Po svoj prilici ovo nije poželjno prilikom stapanja.\n"
+"Želite li da isključite ove postavke ili da nastavite dalje sa njima?"
+
+#: pdiff.cpp:268
+msgid "Option Unsafe for Merging"
+msgstr "Opcija nije sigurna za stapanje"
+
+#: pdiff.cpp:269
+msgid "Use These Options During Merge"
+msgstr "Koristi ove opcije prilikom stapanja"
+
+#: pdiff.cpp:270
+msgid "Disable Unsafe Options"
+msgstr "Isključi nesigurne opcije"
+
+#: pdiff.cpp:300
+msgid "Loading A"
+msgstr "Učitavam A"
+
+#: pdiff.cpp:304
+msgid "Loading B"
+msgstr "Učitavam B"
+
+#: pdiff.cpp:321 pdiff.cpp:347
+msgid "Diff: A <-> B"
+msgstr "Raz.: A <-> B"
+
+#: pdiff.cpp:327 pdiff.cpp:372
+msgid "Linediff: A <-> B"
+msgstr "Raz.lin.: A <-> B"
+
+#: pdiff.cpp:338
+msgid "Loading C"
+msgstr "Učitavam C"
+
+#: pdiff.cpp:350
+msgid "Diff: B <-> C"
+msgstr "Raz.: B <-> C"
+
+#: pdiff.cpp:353
+msgid "Diff: A <-> C"
+msgstr "Raz.: A <-> C"
+
+#: pdiff.cpp:375
+msgid "Linediff: B <-> C"
+msgstr "Raz.lin.: B <-> C"
+
+#: pdiff.cpp:378
+msgid "Linediff: A <-> C"
+msgstr "Raz.lin.: A <-> C"
+
+#: pdiff.cpp:534
+msgid "All input files contain the same text, but are not binary equal."
+msgstr "Sve ulazne datoteke sadrže isti tekst, ali nisu binarno jednake."
+
+#: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541
+#, kde-format
+msgid "Files %1 and %2 have equal text, but are not binary equal. \n"
+msgstr "Datoteke %1 i %2 imaju jednak tekst, ali nisu binarno jednake.\n"
+
+#: pdiff.cpp:551
+msgid ""
+"Some inputfiles don't seem to be pure textfiles.\n"
+"Note that the KDiff3-merge was not meant for binary data.\n"
+"Continue at your own risk."
+msgstr ""
+"Izgleda da neke ulazne datoteke nisu čisto tekstualne.\n"
+"Imajte na umu da KDiff3-stapanje nije namijenjeno binarnim podacima.\n"
+"Nastavite na sopstveni rizik."
+
+#: pdiff.cpp:566
+#, kde-format
+msgid ""
+"Some input characters could not be converted to valid unicode.\n"
+"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n"
+"Don't save the result if unsure. Continue at your own risk.\n"
+"Affected input files are in %1."
+msgstr ""
+
+#: pdiff.cpp:1080
+msgid "Abort"
+msgstr "Prekini"
+
+#: pdiff.cpp:1087 pdiff.cpp:1175
+msgid "Opening files..."
+msgstr "Otvaram datoteke..."
+
+#: pdiff.cpp:1152 pdiff.cpp:1223
+msgid "File open error"
+msgstr "Greška pri otvaranju datoteke"
+
+#: pdiff.cpp:1255
+msgid "Cutting selection..."
+msgstr "Isjecam odabrano..."
+
+#: pdiff.cpp:1276
+msgid "Copying selection to clipboard..."
+msgstr "Kopiram odabrano u clipboard..."
+
+#: pdiff.cpp:1292
+msgid "Inserting clipboard contents..."
+msgstr "Ubacujem sadržaje clipboarda..."
+
+#: pdiff.cpp:1814
+msgid "Save && Continue"
+msgstr "Snimi i nastavi"
+
+#: pdiff.cpp:1815
+msgid "Continue Without Saving"
+msgstr "Nastavi bez snimanja"
+
+#: pdiff.cpp:2018
+msgid "Search complete."
+msgstr "Pretraga je završena."
+
+#: pdiff.cpp:2018
+msgid "Search Complete"
+msgstr "Pretraga je gotova"
+
+#: pdiff.cpp:2252
+msgid "Nothing is selected in either diff input window."
+msgstr "Ništa nije odabrano niti u jednom ulaznom prozoru razlika."
+
+#: pdiff.cpp:2252
+msgid "Error while adding manual diff range"
+msgstr "Greška u toku dodavanja ručnog opsega razlika"
+
+#: kdiff3_shell.cpp:76
+#, fuzzy
+msgid ""
+"Could not initialize the KDiff3 part.\n"
+"This usually happens due to an installation problem. Please read the README-"
+"file in the source package for details."
+msgstr ""
+"Nisam mogao pronaći naš dio!\n"
+"Ovo se obično dešava zbog instalacionog problema. Pročitajte datoteku "
+"\"README\" u izvornom paketu za detalje."
+
+#: rc.cpp:1
+msgctxt "NAME OF TRANSLATORS"
+msgid "Your names"
+msgstr ""
+
+#: rc.cpp:2
+msgctxt "EMAIL OF TRANSLATORS"
+msgid "Your emails"
+msgstr ""
+
+#. i18n: file: kdiff3_part.rc:4
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:5
+msgid "&KDiff3"
+msgstr "&KDiff3"
+
+#. i18n: file: kdiff3_part.rc:13
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:8
+msgid "Configure KDiff3"
+msgstr "Podesi KDiff3"
+
+#. i18n: file: kdiff3_part.rc:16
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:11
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#. i18n: file: kdiff3_shell.rc:106
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:38
+msgid "Main Toolbar"
+msgstr ""
+
+#~ msgid "Diff and Merge"
+#~ msgstr "Razlikuj i stopi"
+
+#~ msgid "Directory Merge"
+#~ msgstr "Stapanje direktorija"
+
+#~ msgid "Enables/disables the toolbar"
+#~ msgstr "Uključuje/isključuje traku sa alatima"
+
+#~ msgid "Files A and B are binary equal.\n"
+#~ msgstr "Datoteke A i B su binarno jednake.\n"
+
+#~ msgid "Files A and C are binary equal.\n"
+#~ msgstr "Datoteke A i C su binarno jednake.\n"
+
+#~ msgid "Files A and C have equal text. \n"
+#~ msgstr "Datoteke A i C imaju jednak tekst.\n"
+
+#~ msgid "Files B and C are binary equal.\n"
+#~ msgstr "Datoteke B i C su binarno jednake.\n"
+
+#~ msgid "Files B and C have equal text. \n"
+#~ msgstr "Datoteke B i C imaju jednak tekst.\n"
+
+#~ msgid "Preserve carriage return"
+#~ msgstr "Očuvaj CR"
+
+#~ msgid ""
+#~ "Show carriage return characters '\\r' if they exist.\n"
+#~ "Helps to compare files that were modified under different operating "
+#~ "systems."
+#~ msgstr ""
+#~ "Prikaži CR znakove \"\\r' ako postoje.\n"
+#~ "Pomaže da se uporede datoteke koje su mijenjane pod različitim "
+#~ "operativnim sistemima."
+
+#~ msgid ""
+#~ "_: EMAIL OF TRANSLATORS\n"
+#~ "Your emails"
+#~ msgstr "caslav.ilic@gmx.nit,simicsl@verat.nit,nemir29@hotmail.com"
+
+#~ msgid ""
+#~ "_: NAME OF TRANSLATORS\n"
+#~ "Your names"
+#~ msgstr "Časlav Ilić, Slobodan Simić, Emir Nalčadžić"
diff --git a/po/bs/kdiff3fileitemactionplugin.po b/po/bs/kdiff3fileitemactionplugin.po
new file mode 100644 (file)
index 0000000..cc200a0
--- /dev/null
@@ -0,0 +1,86 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR This_file_is_part_of_KDE
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <megaribi@epn.ba>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3fileitemactionplugin.po\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-05-13 22:35+0200\n"
+"Last-Translator: Samir Ribic <megaribi@epn.ba>\n"
+"Language-Team: bs <bs@kde.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+
+#: kdiff3fileitemaction.cpp:94
+msgid "KDiff3 ..."
+msgstr "KDiff3 ..."
+
+#: kdiff3fileitemaction.cpp:125
+#, kde-format
+msgid "Compare with %1"
+msgstr "Poredi sa %1"
+
+#: kdiff3fileitemaction.cpp:131
+#, kde-format
+msgid "Merge with %1"
+msgstr "Spoji sa %1"
+
+#: kdiff3fileitemaction.cpp:137
+#, kde-format
+msgid "Save '%1' for later"
+msgstr "Snimi '%1' za kasnije"
+
+#: kdiff3fileitemaction.cpp:143
+msgid "3-way merge with base"
+msgstr ""
+
+#: kdiff3fileitemaction.cpp:150
+msgid "Compare with ..."
+msgstr ""
+
+#: kdiff3fileitemaction.cpp:162
+msgid "Clear list"
+msgstr ""
+
+#: kdiff3fileitemaction.cpp:170
+msgid "Compare"
+msgstr ""
+
+#: kdiff3fileitemaction.cpp:176
+msgid "3 way comparison"
+msgstr ""
+
+#: kdiff3fileitemaction.cpp:180
+msgid "About KDiff3 menu plugin ..."
+msgstr ""
+
+#: kdiff3fileitemaction.cpp:284
+msgid ""
+"KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+
+#: kdiff3fileitemaction.cpp:286
+msgid ""
+"Using the contextmenu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else \"Save\" the first file for later. It "
+"will appear in the \"Compare With ...\" submenu. Then use \"Compare With\" "
+"on second file.\n"
+"For a 3-way merge first \"Save\" the base file, then the branch to merge and "
+"choose \"3-way merge with base\" on the other branch which will be used as "
+"destination.\n"
+"Same also applies to directory comparison and merge."
+msgstr ""
+
+#: kdiff3fileitemaction.cpp:294
+msgid "About KDiff3 File Item Action Plugin"
+msgstr ""
diff --git a/po/bs/kdiff3plugin.po b/po/bs/kdiff3plugin.po
new file mode 100644 (file)
index 0000000..10a5653
--- /dev/null
@@ -0,0 +1,86 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR This_file_is_part_of_KDE
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <megaribi@epn.ba>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3plugin.po\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-05-13 22:35+0200\n"
+"Last-Translator: Samir Ribic <megaribi@epn.ba>\n"
+"Language-Team: bs <bs@kde.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+
+#: kdiff3plugin.cpp:107
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#: kdiff3plugin.cpp:114
+#, kde-format
+msgid "Compare with %1"
+msgstr "Poredi sa %1"
+
+#: kdiff3plugin.cpp:120
+#, kde-format
+msgid "Merge with %1"
+msgstr "Spoji sa %1"
+
+#: kdiff3plugin.cpp:126
+#, kde-format
+msgid "Save '%1' for later"
+msgstr "Snimi '%1' za kasnije"
+
+#: kdiff3plugin.cpp:132
+msgid "3-way merge with base"
+msgstr "trostrano spajanje s osnovom"
+
+#: kdiff3plugin.cpp:139
+msgid "Compare with ..."
+msgstr "Poredi sa..."
+
+#: kdiff3plugin.cpp:149
+msgid "Clear list"
+msgstr "Očisti listu"
+
+#: kdiff3plugin.cpp:157
+msgid "Compare"
+msgstr "Poredi"
+
+#: kdiff3plugin.cpp:163
+msgid "3 way comparison"
+msgstr "Trostrano poređenje"
+
+#: kdiff3plugin.cpp:167
+msgid "About KDiff3 menu plugin ..."
+msgstr ""
+
+#: kdiff3plugin.cpp:269
+msgid ""
+"KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+
+#: kdiff3plugin.cpp:271
+msgid ""
+"Using the context menu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else, \"Save\" the first file for later, and "
+"it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With"
+"\" on the second file.\n"
+"For a 3-way merge first, \"Save\" the base file, then the branch to merge, "
+"and then \"3-way merge with base\" on the other branch which will be used as "
+"the destination.\n"
+"The same also applies to directory comparison and merge."
+msgstr ""
+
+#: kdiff3plugin.cpp:279
+msgid "About KDiff3 Menu Plugin"
+msgstr ""
diff --git a/po/ca/CMakeLists.txt b/po/ca/CMakeLists.txt
new file mode 100644 (file)
index 0000000..bc9c07c
--- /dev/null
@@ -0,0 +1,2 @@
+file(GLOB _po_files *.po)
+GETTEXT_PROCESS_PO_FILES(ca ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
diff --git a/po/ca/kdiff3.po b/po/ca/kdiff3.po
new file mode 100644 (file)
index 0000000..1062791
--- /dev/null
@@ -0,0 +1,3228 @@
+# Translation of kdiff3.po to Catalan
+# Copyright (C) 2011 This_file_is_part_of_KDE
+# This file is distributed under the license LGPL version 2 or later
+#
+# Joan Maspons <joanmaspons@gmail.com>, 2011.
+# Josep Ma. Ferrer <txemaq@gmail.com>, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-07-26 22:05+0200\n"
+"Last-Translator: Joan Maspons <joanmaspons@gmail.com>\n"
+"Language-Team: Catalan <kde-i18n-ca@kde.org>\n"
+"Language: ca\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.2\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Accelerator-Marker: &\n"
+
+#: kreplacements/kreplacements.h:105
+msgid "Continue"
+msgstr "Continua"
+
+#: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158
+#: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512
+msgid "Cancel"
+msgstr "Cancel·la"
+
+#: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631
+msgid "Quit"
+msgstr "Surt"
+
+#: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339
+msgid "Ok"
+msgstr "D'acord"
+
+#: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715
+msgid "Help"
+msgstr "Ajuda"
+
+#: kreplacements/kreplacements.cpp:185
+msgid "Defaults"
+msgstr "Valors per defecte"
+
+#. i18n: file: kdiff3_shell.rc:4
+#. i18n: ectx: Menu (file)
+#: kreplacements/kreplacements.cpp:296 rc.cpp:14
+msgid "&File"
+msgstr "&Fitxer"
+
+#: kreplacements/kreplacements.cpp:297
+msgid "&Edit"
+msgstr "&Edita"
+
+#. i18n: file: kdiff3_shell.rc:7
+#. i18n: ectx: Menu (directory)
+#: kreplacements/kreplacements.cpp:298 rc.cpp:17
+msgid "&Directory"
+msgstr "&Directori"
+
+#. i18n: file: kdiff3_shell.rc:50
+#. i18n: ectx: Menu (movement)
+#: kreplacements/kreplacements.cpp:301 rc.cpp:26
+msgid "&Movement"
+msgstr "&Moviment"
+
+#. i18n: file: kdiff3_shell.rc:61
+#. i18n: ectx: Menu (diff)
+#: kreplacements/kreplacements.cpp:302 rc.cpp:29
+msgid "D&iffview"
+msgstr "Vista de d&iferències"
+
+#. i18n: file: kdiff3_shell.rc:73
+#. i18n: ectx: Menu (merge)
+#: kreplacements/kreplacements.cpp:303 rc.cpp:32
+msgid "&Merge"
+msgstr "&Fusió"
+
+#. i18n: file: kdiff3_shell.rc:95
+#. i18n: ectx: Menu (window)
+#: kreplacements/kreplacements.cpp:304 rc.cpp:35
+msgid "&Window"
+msgstr "&Finestra"
+
+#: kreplacements/kreplacements.cpp:305
+msgid "&Settings"
+msgstr "A&rranjament"
+
+#: kreplacements/kreplacements.cpp:306
+msgid "&Help"
+msgstr "A&juda"
+
+#: kreplacements/kreplacements.cpp:353
+msgid "&About"
+msgstr "&Quant a"
+
+#: kreplacements/kreplacements.cpp:369
+msgid "A&uthor"
+msgstr "A&utor"
+
+#: kreplacements/kreplacements.cpp:383
+msgid "&Thanks To"
+msgstr "&Gràcies a"
+
+#. i18n: file: kdiff3_shell.rc:30
+#. i18n: ectx: Menu (dir_current_merge_menu)
+#: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497
+#: rc.cpp:20
+msgid "Current Item Merge Operation"
+msgstr "Operació de fusió de l'element actual"
+
+#. i18n: file: kdiff3_shell.rc:38
+#. i18n: ectx: Menu (dir_current_sync_menu)
+#: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498
+#: rc.cpp:23
+msgid "Current Item Sync Operation"
+msgstr "Operació de sincronització de l'element actual"
+
+#: kreplacements/kreplacements.cpp:597
+msgid "Open"
+msgstr "Obre"
+
+#: kreplacements/kreplacements.cpp:606
+msgid "Save"
+msgstr "Desa"
+
+#: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720
+msgid "Save As..."
+msgstr "Desa com a..."
+
+#: kreplacements/kreplacements.cpp:623
+msgid "Print..."
+msgstr "Imprimeix..."
+
+#: kreplacements/kreplacements.cpp:639
+msgid "Cut"
+msgstr "Talla"
+
+#: kreplacements/kreplacements.cpp:647
+msgid "Copy"
+msgstr "Copia"
+
+#: kreplacements/kreplacements.cpp:655
+msgid "Paste"
+msgstr "Enganxa"
+
+#: kreplacements/kreplacements.cpp:663
+msgid "Select All"
+msgstr "Selecciona-ho tot"
+
+#: kreplacements/kreplacements.cpp:671
+msgid "Show Toolbar"
+msgstr "Mostra barra d'eines"
+
+#: kreplacements/kreplacements.cpp:679
+msgid "Show &Status Bar"
+msgstr "&Mostra la barra d'estat"
+
+#: kreplacements/kreplacements.cpp:687
+#, kde-format
+msgid "&Configure %1..."
+msgstr "&Configura %1..."
+
+#: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707
+msgid "About"
+msgstr "Quant a"
+
+#: kreplacements/kreplacements.cpp:722
+msgid "Find"
+msgstr "Cerca"
+
+#: kreplacements/kreplacements.cpp:730
+msgid "Find Next"
+msgstr "Cerca el següent"
+
+#: kreplacements/kreplacements.cpp:750
+msgid "Select Font"
+msgstr "Tria el tipus de lletra"
+
+#: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676
+msgid ""
+"You selected a variable width font.\n"
+"\n"
+"Because this program doesn't handle variable width fonts\n"
+"correctly, you might experience problems while editing.\n"
+"\n"
+"Do you want to continue or do you want to select another font."
+msgstr ""
+"Heu seleccionat un tipus de lletra d'amplada variable.\n"
+"\n"
+"Com que aquest programa no usa correctament tipus de lletra\n"
+"d'amplada variable, podríeu experimentar problemes mentre editeu.\n"
+"\n"
+"Voleu continuar o seleccionar un altre tipus de lletra?"
+
+#: kreplacements/kreplacements.cpp:792
+msgid "Incompatible font."
+msgstr "Tipus de lletra incompatible."
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Continue at my own risk"
+msgstr "Continua sota la meva responsabilitat"
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Select another font"
+msgstr "Tria un altre tipus de lletra"
+
+#: kreplacements/kreplacements.cpp:1134
+msgid "For more documentation, see the help-menu or the subdirectory doc."
+msgstr "Per més documentació, vegeu el menú «Ajuda» o el subdirectori doc."
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "KDiff3-Usage"
+msgstr "Ús del KDiff3"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Ignore"
+msgstr "Ignora"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Exit"
+msgstr "Surt"
+
+#: diff.cpp:251
+msgid "Writing clipboard data to temp file failed."
+msgstr "Ha fallat l'escriptura de dades del porta-retalls al fitxer temporal."
+
+#: diff.cpp:255
+msgid "From Clipboard"
+msgstr "Des del porta-retalls"
+
+#: diff.cpp:471
+msgid "Expecting space after closing quotation mark."
+msgstr "S'esperava un espai després de tancar la marca de cometes."
+
+#: diff.cpp:474
+msgid "Not matching quotation marks."
+msgstr "Les marques de cometes no coincideixen."
+
+#: diff.cpp:496
+msgid "Unexpected quotation mark within argument."
+msgstr "Marca de cometes inesperada en l'argument."
+
+#: diff.cpp:503
+msgid "No program specified."
+msgstr "No s'ha especificat cap programa."
+
+#: diff.cpp:605
+#, kde-format
+msgid ""
+"Preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The preprocessing command will be disabled now."
+msgstr ""
+"Pot ser que el preprocessament hagi fallat. Comproveu aquesta ordre:\n"
+"\n"
+"  %1\n"
+"\n"
+"L'ordre de preprocessament es deshabilitarà ara."
+
+#: diff.cpp:653
+#, kde-format
+msgid ""
+"The line-matching-preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The line-matching-preprocessing command will be disabled now."
+msgstr ""
+"Pot ser que el preprocessament de l'encaix de línies hagi fallat. Comproveu "
+"aquesta ordre:\n"
+"\n"
+"  %1\n"
+"\n"
+"Ara es deshabilitarà l'ordre de preprocessament d'encaix de línies."
+
+#: diff.cpp:1776 diff.cpp:1790
+msgid ""
+"Data loss error:\n"
+"If it is reproducible please contact the author.\n"
+msgstr ""
+"Error de pèrdua de dades:\n"
+"Si us plau, si és replicable contacteu amb l'autor.\n"
+
+#: diff.cpp:1778 diff.cpp:1792
+msgid "Severe Internal Error"
+msgstr "Error intern sever"
+
+#: directorymergewindow.cpp:136
+msgid "Mix of links and normal files."
+msgstr "Barreja d'enllaços i fitxers normals."
+
+#: directorymergewindow.cpp:143
+msgid "Link: "
+msgstr "Enllaç: "
+
+#: directorymergewindow.cpp:151
+msgid "Size. "
+msgstr "Mida. "
+
+#: directorymergewindow.cpp:164 directorymergewindow.cpp:174
+msgid "Date & Size: "
+msgstr "Data i mida: "
+
+#: directorymergewindow.cpp:184 directorymergewindow.cpp:190
+#, kde-format
+msgid "Creating temp copy of %1 failed."
+msgstr "Ha fallat la creació de la copia temporal de %1."
+
+#: directorymergewindow.cpp:201 directorymergewindow.cpp:209
+#, kde-format
+msgid "Opening %1 failed."
+msgstr "Ha fallat l'obertura de %1."
+
+#: directorymergewindow.cpp:213
+msgid "Comparing file..."
+msgstr "S'està comparant el fitxer..."
+
+#: directorymergewindow.cpp:223 directorymergewindow.cpp:229
+#, kde-format
+msgid "Error reading from %1"
+msgstr "Error llegint des de %1"
+
+#: directorymergewindow.cpp:358
+msgid "Name"
+msgstr "Nom"
+
+#: directorymergewindow.cpp:358
+msgid "Operation"
+msgstr "Operació"
+
+#: directorymergewindow.cpp:358
+msgid "Status"
+msgstr "Estat"
+
+#: directorymergewindow.cpp:359
+msgid "Unsolved"
+msgstr "No resolt"
+
+#: directorymergewindow.cpp:359
+msgid "Solved"
+msgstr "Resolt"
+
+#: directorymergewindow.cpp:359
+msgid "Nonwhite"
+msgstr "No blanc"
+
+#: directorymergewindow.cpp:359
+msgid "White"
+msgstr "Blanc"
+
+#: directorymergewindow.cpp:388
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort "
+"the merge and rescan the directory?"
+msgstr ""
+"Actualment esteu fent una fusió de directoris. Segur que voleu interrompre "
+"la fusió i tornar a explorar el directori?"
+
+#: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655
+#: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823
+msgid "Warning"
+msgstr "Atenció"
+
+#: directorymergewindow.cpp:390 directorymergewindow.cpp:2965
+msgid "Rescan"
+msgstr "Torna a explorar"
+
+#: directorymergewindow.cpp:391 pdiff.cpp:1081
+msgid "Continue Merging"
+msgstr "Continua fusionant"
+
+#: directorymergewindow.cpp:548
+msgid "Opening of directories failed:"
+msgstr "Ha fallat l'obertura dels directoris:"
+
+#: directorymergewindow.cpp:551
+#, kde-format
+msgid "Dir A \"%1\" does not exist or is not a directory.\n"
+msgstr "El directori A «%1» no existeix o no és un directori.\n"
+
+#: directorymergewindow.cpp:554
+#, kde-format
+msgid "Dir B \"%1\" does not exist or is not a directory.\n"
+msgstr "El directori B «%1» no existeix o no és un directori.\n"
+
+#: directorymergewindow.cpp:557
+#, kde-format
+msgid "Dir C \"%1\" does not exist or is not a directory.\n"
+msgstr "El directori C «%1» no existeix o no és un directori.\n"
+
+#: directorymergewindow.cpp:559
+msgid "Directory Open Error"
+msgstr "Error en obrir el directori"
+
+#: directorymergewindow.cpp:567
+msgid ""
+"The destination directory must not be the same as A or B when three "
+"directories are merged.\n"
+"Check again before continuing."
+msgstr ""
+"Quan es fusionen tres directoris, el directori de destí ha de ser diferent "
+"que l'A o el B.\n"
+"Torneu-ho a comprovar avanç de continuar."
+
+#: directorymergewindow.cpp:569
+msgid "Parameter Warning"
+msgstr "Alerta de paràmetres"
+
+#: directorymergewindow.cpp:574
+msgid "Scanning directories..."
+msgstr "S'estan explorant el directoris..."
+
+#: directorymergewindow.cpp:607
+msgid "Reading Directory A"
+msgstr "S'està llegint el directori A"
+
+#: directorymergewindow.cpp:629
+msgid "Reading Directory B"
+msgstr "S'està llegint el directori B"
+
+#: directorymergewindow.cpp:651
+msgid "Reading Directory C"
+msgstr "S'està llegint el directori C"
+
+#: directorymergewindow.cpp:677
+msgid "Some subdirectories were not readable in"
+msgstr "Alguns subdirectoris no eren llegibles a"
+
+#: directorymergewindow.cpp:682
+msgid "Check the permissions of the subdirectories."
+msgstr "Comproveu els permisos dels subdirectoris."
+
+#: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737
+#: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233
+#: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328
+msgid "Ready."
+msgstr "Preparat."
+
+#: directorymergewindow.cpp:735
+msgid "Directory Comparison Status"
+msgstr "Estat de la comparació de carpetes"
+
+#: directorymergewindow.cpp:736
+msgid "Number of subdirectories:"
+msgstr "Nombre de subdirectoris:"
+
+#: directorymergewindow.cpp:737
+msgid "Number of equal files:"
+msgstr "Nombre de fitxers iguals:"
+
+#: directorymergewindow.cpp:738
+msgid "Number of different files:"
+msgstr "Nombre de fitxers diferents:"
+
+#: directorymergewindow.cpp:741
+msgid "Number of manual merges:"
+msgstr "Nombre de fusions manuals:"
+
+#: directorymergewindow.cpp:912
+msgid "This affects all merge operations."
+msgstr "Això afecta totes les operacions de fusió."
+
+#: directorymergewindow.cpp:913
+msgid "Changing All Merge Operations"
+msgstr "S'estan canviant totes les operacions de fusionat"
+
+#: directorymergewindow.cpp:1312
+msgid "Processing "
+msgstr "S'està processant "
+
+#: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742
+msgid "To do."
+msgstr "Pendent."
+
+#: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996
+msgid "Copy A to B"
+msgstr "Copia A a B"
+
+#: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997
+msgid "Copy B to A"
+msgstr "Copia B a A"
+
+#: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998
+msgid "Delete A"
+msgstr "Esborra A"
+
+#: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999
+msgid "Delete B"
+msgstr "Esborra B"
+
+#: directorymergewindow.cpp:1814
+msgid "Delete A & B"
+msgstr "Esborra A i B"
+
+#: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001
+msgid "Merge to A"
+msgstr "Fusiona a A"
+
+#: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002
+msgid "Merge to B"
+msgstr "Fusiona a B"
+
+#: directorymergewindow.cpp:1817
+msgid "Merge to A & B"
+msgstr "Fusiona a A i B"
+
+#: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993
+msgid "Delete (if exists)"
+msgstr "Esborra (si existeix)"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+#: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869
+msgid "Merge"
+msgstr "Fusiona"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+msgid "Merge (manual)"
+msgstr "Fusiona (manualment)"
+
+#: directorymergewindow.cpp:1824
+msgid "Error: Conflicting File Types"
+msgstr "Error: tipus de fitxer en conflicte"
+
+#: directorymergewindow.cpp:1825
+msgid "Error: Changed and Deleted"
+msgstr "Error: canviat i esborrat"
+
+#: directorymergewindow.cpp:1826
+msgid "Error: Dates are equal but files are not."
+msgstr "Error: les dates són iguals però els fitxers no."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906
+msgid "This operation is currently not possible."
+msgstr "Actualment aquesta opció no és possible."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174
+msgid "Operation Not Possible"
+msgstr "Operació no possible"
+
+#: directorymergewindow.cpp:1945
+msgid ""
+"This should never happen: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"If you know how to reproduce this, please contact the program author."
+msgstr ""
+"Això no hauria de passar mai: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"Si us plau, si sabeu com replicar això contacteu amb l'autor del programa."
+
+#: directorymergewindow.cpp:1945
+msgid "Program Error"
+msgstr "Error del programa"
+
+#: directorymergewindow.cpp:1956
+msgid "An error occurred while copying.\n"
+msgstr "Hi ha hagut un error en copiar.\n"
+
+#: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025
+#: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105
+#: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123
+#: directorymergewindow.cpp:2374
+msgid "Error"
+msgstr "Error"
+
+#: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375
+msgid "Merge Error"
+msgstr "Error de fusionat"
+
+#: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380
+msgid "Error."
+msgstr "Error."
+
+#: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272
+#: directorymergewindow.cpp:2312
+msgid "Done."
+msgstr "Fet."
+
+#: directorymergewindow.cpp:1990
+msgid "Not saved."
+msgstr "No desat."
+
+#: directorymergewindow.cpp:2025
+msgid "Unknown merge operation. (This must never happen!)"
+msgstr "Operació de fusionat desconeguda. (Això no hauria de passar mai!)"
+
+#: directorymergewindow.cpp:2057
+msgid "Unknown merge operation."
+msgstr "Operació de fusionat desconeguda."
+
+#: directorymergewindow.cpp:2072
+msgid ""
+"The merge is about to begin.\n"
+"\n"
+"Choose \"Do it\" if you have read the instructions and know what you are "
+"doing.\n"
+"Choosing \"Simulate it\" will tell you what would happen.\n"
+"\n"
+"Be aware that this program still has beta status and there is NO WARRANTY "
+"whatsoever! Make backups of your vital data!"
+msgstr ""
+"La fusió està a punt de començar.\n"
+"\n"
+"Escolliu «Fes-ho» si heu llegit les instruccions i sabeu que esteu fent.\n"
+"Si escolliu «Simula-ho» veureu què passaria.\n"
+"\n"
+"Sigueu conscient que aquest programa encara està en fase de proves i no hi "
+"ha CAP GARANTIA! Feu copies de seguretat de les vostres dades vitals!"
+
+#: directorymergewindow.cpp:2077
+msgid "Starting Merge"
+msgstr "S'està iniciant la fusió"
+
+#: directorymergewindow.cpp:2078
+msgid "Do It"
+msgstr "Fes-ho"
+
+#: directorymergewindow.cpp:2079
+msgid "Simulate It"
+msgstr "Simula-ho"
+
+#: directorymergewindow.cpp:2105
+msgid ""
+"The highlighted item has a different type in the different directories. "
+"Select what to do."
+msgstr ""
+"L'element ressaltat té un tipus diferent als diferents directoris. "
+"Seleccioneu què fer."
+
+#: directorymergewindow.cpp:2114
+msgid ""
+"The modification dates of the file are equal but the files are not. Select "
+"what to do."
+msgstr ""
+"Les dates de modificació dels fitxers són iguals però els fitxers no ho són. "
+"Seleccioneu què fer."
+
+#: directorymergewindow.cpp:2123
+msgid ""
+"The highlighted item was changed in one directory and deleted in the other. "
+"Select what to do."
+msgstr ""
+"L'element ressaltat va ser canviat en un directori i esborrat a l'altre. "
+"Seleccioneu què fer."
+
+#: directorymergewindow.cpp:2174
+msgid ""
+"This operation is currently not possible because directory merge is "
+"currently running."
+msgstr ""
+"Actualment aquesta operació no és possible perquè s'està a mig procés de "
+"fusió."
+
+#: directorymergewindow.cpp:2234
+msgid ""
+"There was an error in the last step.\n"
+"Do you want to continue with the item that caused the error or do you want "
+"to skip this item?"
+msgstr ""
+"Hi ha hagut un error en l'últim pas.\n"
+"Voleu continuar amb l'element que ha causat l'error o voleu ometre'l?"
+
+#: directorymergewindow.cpp:2236
+msgid "Continue merge after an error"
+msgstr "Després d'un error continua fusionant"
+
+#: directorymergewindow.cpp:2237
+msgid "Continue With Last Item"
+msgstr "Continua amb l'últim element"
+
+#: directorymergewindow.cpp:2238
+msgid "Skip Item"
+msgstr "Omet l'element"
+
+#: directorymergewindow.cpp:2272
+msgid "Skipped."
+msgstr "S'ha omès."
+
+#: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493
+msgid "In progress..."
+msgstr "En curs..."
+
+#: directorymergewindow.cpp:2327
+msgid "Merge operation complete."
+msgstr "Operació de fusionat completada."
+
+#: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330
+msgid "Merge Complete"
+msgstr "Fusió completada"
+
+#: directorymergewindow.cpp:2340
+msgid ""
+"Simulated merge complete: Check if you agree with the proposed operations."
+msgstr ""
+"Simulació de fusió completada: comproveu si esteu d'acord amb les operacions "
+"proposades."
+
+#: directorymergewindow.cpp:2374
+msgid "An error occurred. Press OK to see detailed information.\n"
+msgstr "Hi ha hagut un error. Per veure informació detallada premeu d'acord.\n"
+
+#: directorymergewindow.cpp:2406
+#, kde-format
+msgid "Error: While deleting %1: Creating backup failed."
+msgstr "Error: en esborrar %1: ha fallat en crear una còpia de seguretat."
+
+#: directorymergewindow.cpp:2413
+#, kde-format
+msgid "delete directory recursively( %1 )"
+msgstr "esborra el directori recursivament( %1 )"
+
+#: directorymergewindow.cpp:2415
+#, kde-format
+msgid "delete( %1 )"
+msgstr "esborra( %1 )"
+
+#: directorymergewindow.cpp:2430
+msgid "Error: delete dir operation failed while trying to read the directory."
+msgstr ""
+"Error: l'operació d'esborrar el directori ha fallat en intentar llegir-lo."
+
+#: directorymergewindow.cpp:2449
+#, kde-format
+msgid "Error: rmdir( %1 ) operation failed."
+msgstr "Error: ha fallat l'operació d'eliminar carpeta ( %1 )."
+
+#: directorymergewindow.cpp:2459
+msgid "Error: delete operation failed."
+msgstr "Error: ha fallat l'operació d'esborrat."
+
+#: directorymergewindow.cpp:2485
+#, kde-format
+msgid "manual merge( %1, %2, %3 -> %4)"
+msgstr "fusió manual ( %1, %2, %3 -> %4)"
+
+#: directorymergewindow.cpp:2488
+msgid ""
+"     Note: After a manual merge the user should continue by pressing F7."
+msgstr ""
+"     Nota: avanç de fusionar manualment, l'usuari ha de continuar prement F7."
+
+#: directorymergewindow.cpp:2513
+#, kde-format
+msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed."
+msgstr ""
+"Error: ha fallat la copia ( %1 -> %2 ). L'esborrat de la destinació existent "
+"ha fallat."
+
+#: directorymergewindow.cpp:2522
+#, kde-format
+msgid "copyLink( %1 -> %2 )"
+msgstr "copia enllaç ( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2533
+msgid "Error: copyLink failed: Remote links are not yet supported."
+msgstr ""
+"Error: ha fallat la copia d'enllaç: els enllaços remots encara no estan "
+"implementats."
+
+#: directorymergewindow.cpp:2539
+msgid "Error: copyLink failed."
+msgstr "Error: ha fallat la copia d'enllaç."
+
+#: directorymergewindow.cpp:2564
+#, kde-format
+msgid "copy( %1 -> %2 )"
+msgstr "copia( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2590
+#, kde-format
+msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination."
+msgstr ""
+"Error en reanomenar( %1 -> %2 ): no es pot esborrar la destinació existent."
+
+#: directorymergewindow.cpp:2596
+#, kde-format
+msgid "rename( %1 -> %2 )"
+msgstr "reanomena( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2605
+msgid "Error: Rename failed."
+msgstr "Error: el canvi de nom ha fallat."
+
+#: directorymergewindow.cpp:2623
+#, kde-format
+msgid "Error during makeDir of %1. Cannot delete existing file."
+msgstr "Error en crear fitxer de %1. No es pot esborrar el fitxer existent."
+
+#: directorymergewindow.cpp:2639
+#, kde-format
+msgid "makeDir( %1 )"
+msgstr "crea directori( %1 )"
+
+#: directorymergewindow.cpp:2649
+msgid "Error while creating directory."
+msgstr "Error en crear el directori."
+
+#: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784
+msgid "Dest"
+msgstr "Destí"
+
+#: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709
+msgid "Dir"
+msgstr "Directori"
+
+#: directorymergewindow.cpp:2678
+msgid "Type"
+msgstr "Tipus"
+
+#: directorymergewindow.cpp:2678
+msgid "Size"
+msgstr "Mida"
+
+#: directorymergewindow.cpp:2679
+msgid "Attr"
+msgstr "Atributs"
+
+#: directorymergewindow.cpp:2679
+msgid "Last Modification"
+msgstr "Darrera modificació"
+
+#: directorymergewindow.cpp:2679
+msgid "Link-Destination"
+msgstr "Destí de l'enllaç"
+
+#: directorymergewindow.cpp:2709 difftextwindow.cpp:401
+msgid "File"
+msgstr "Fitxer"
+
+#: directorymergewindow.cpp:2726
+msgid "not available"
+msgstr "no disponible"
+
+#: directorymergewindow.cpp:2746
+msgid "A (Dest): "
+msgstr "A (Destí): "
+
+#: directorymergewindow.cpp:2749
+msgid "A (Base): "
+msgstr "A (Base): "
+
+#: directorymergewindow.cpp:2755
+msgid "B (Dest): "
+msgstr "B (Destí): "
+
+#: directorymergewindow.cpp:2763
+msgid "C (Dest): "
+msgstr "C (Destí): "
+
+#: directorymergewindow.cpp:2769
+msgid "Dest: "
+msgstr "Destí: "
+
+#: directorymergewindow.cpp:2836
+msgid "Save Directory Merge State As..."
+msgstr "Desa l'estat de fusió de directoris com a..."
+
+#: directorymergewindow.cpp:2959
+msgid "Start/Continue Directory Merge"
+msgstr "Comença/Continua la fusió de directoris"
+
+#: directorymergewindow.cpp:2960
+msgid "Run Operation for Current Item"
+msgstr "Executa l'operació per l'element actual"
+
+#: directorymergewindow.cpp:2961
+msgid "Compare Selected File"
+msgstr "Compara el fitxer seleccionat"
+
+#: directorymergewindow.cpp:2962
+msgid "Merge Current File"
+msgstr "Fusiona el fitxer actual"
+
+#: directorymergewindow.cpp:2962
+msgid ""
+"Merge\n"
+"File"
+msgstr ""
+"Fitxer\n"
+"Fusionat"
+
+#: directorymergewindow.cpp:2963
+msgid "Fold All Subdirs"
+msgstr "Plega tots els subdirectoris"
+
+#: directorymergewindow.cpp:2964
+msgid "Unfold All Subdirs"
+msgstr "Desplega tots els subdirectoris"
+
+#: directorymergewindow.cpp:2968
+msgid "Choose A for All Items"
+msgstr "Tria A per tots els elements"
+
+#: directorymergewindow.cpp:2969
+msgid "Choose B for All Items"
+msgstr "Tria B per tots els elements"
+
+#: directorymergewindow.cpp:2970
+msgid "Choose C for All Items"
+msgstr "Tria C per tots els elements"
+
+#: directorymergewindow.cpp:2971
+msgid "Auto-Choose Operation for All Items"
+msgstr "Tria automàticament l'operació per tots els elements"
+
+#: directorymergewindow.cpp:2972
+msgid "No Operation for All Items"
+msgstr "No hi ha cap operació per tots els elements"
+
+#: directorymergewindow.cpp:2977
+msgid "Show Identical Files"
+msgstr "Mostra els fitxers idèntics"
+
+#: directorymergewindow.cpp:2977
+msgid ""
+"Identical\n"
+"Files"
+msgstr ""
+"Fitxers\n"
+"Idèntics"
+
+#: directorymergewindow.cpp:2978
+msgid "Show Different Files"
+msgstr "Mostra els fitxers diferents"
+
+#: directorymergewindow.cpp:2979
+msgid "Show Files only in A"
+msgstr "Mostra els fitxers que només són a A"
+
+#: directorymergewindow.cpp:2979
+msgid ""
+"Files\n"
+"only in A"
+msgstr ""
+"Fitxers\n"
+"que només són a A"
+
+#: directorymergewindow.cpp:2980
+msgid "Show Files only in B"
+msgstr "Mostra els fitxers que només són a B"
+
+#: directorymergewindow.cpp:2980
+msgid ""
+"Files\n"
+"only in B"
+msgstr ""
+"Fitxers\n"
+"que només són a B"
+
+#: directorymergewindow.cpp:2981
+msgid "Show Files only in C"
+msgstr "Mostra els fitxers que només són a C"
+
+#: directorymergewindow.cpp:2981
+msgid ""
+"Files\n"
+"only in C"
+msgstr ""
+"Fitxers\n"
+"que només són a C"
+
+#: directorymergewindow.cpp:2985
+msgid "Compare Explicitly Selected Files"
+msgstr "Compara els fitxers seleccionats explícitament"
+
+#: directorymergewindow.cpp:2986
+msgid "Merge Explicitly Selected Files"
+msgstr "Fusiona els fitxers seleccionats explícitament"
+
+#: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995
+msgid "Do Nothing"
+msgstr "No facis res"
+
+#: directorymergewindow.cpp:2989
+msgid "A"
+msgstr "A"
+
+#: directorymergewindow.cpp:2990
+msgid "B"
+msgstr "B"
+
+#: directorymergewindow.cpp:2991
+msgid "C"
+msgstr "C"
+
+#: directorymergewindow.cpp:3000
+msgid "Delete A && B"
+msgstr "Esborra A i B"
+
+#: directorymergewindow.cpp:3003
+msgid "Merge to A && B"
+msgstr "Fusiona a A i B"
+
+#: main.cpp:74 main.cpp:76
+msgid "Ignored. (User defined.)"
+msgstr "Ignorat. (Definit per l'usuari)"
+
+#: main.cpp:162
+msgid "kdiff3"
+msgstr "kdiff3"
+
+#: main.cpp:164
+msgid "Tool for Comparison and Merge of Files and Directories"
+msgstr "Eina per comparar i fusionar fitxers i directoris"
+
+#: main.cpp:165
+msgid "(c) 2002-2011 Joachim Eibl"
+msgstr "(c) 2002-2011 Joachim Eibl"
+
+#: main.cpp:172 kdiff3_part.cpp:303
+msgid "Joachim Eibl"
+msgstr "Joachim Eibl"
+
+#: main.cpp:173
+msgid "Eike Sauer"
+msgstr "Eike Sauer"
+
+#: main.cpp:173
+msgid "Bugfixes, Debian package maintainer"
+msgstr "Correcció d'errades, mantenidor del paquet de Debian"
+
+#: main.cpp:174
+msgid "Sebastien Fricker"
+msgstr "Sebastien Fricker"
+
+#: main.cpp:174
+msgid "Windows installer"
+msgstr "Instal·lador de Windows"
+
+#: main.cpp:175
+msgid "Stephan Binner"
+msgstr "Stephan Binner"
+
+#: main.cpp:175
+msgid "i18n-help"
+msgstr "Ajuda amb l'i18n"
+
+#: main.cpp:176
+msgid "Stefan Partheymueller"
+msgstr "Stefan Partheymueller"
+
+#: main.cpp:176
+msgid "Clipboard-patch"
+msgstr "Pedaç del porta-retalls"
+
+#: main.cpp:177
+msgid "David Faure"
+msgstr "David Faure"
+
+#: main.cpp:177
+msgid "KIO-Help"
+msgstr "Ajuda amb KIO"
+
+#: main.cpp:178
+msgid "Bernd Gehrmann"
+msgstr "Bernd Gehrmann"
+
+#: main.cpp:178
+msgid "Class CvsIgnoreList from Cervisia"
+msgstr "Classe CvsIgnoreList del Cervisia"
+
+#: main.cpp:179
+msgid "Andre Woebbeking"
+msgstr "Andre Woebbeking"
+
+#: main.cpp:179
+msgid "Class StringMatcher"
+msgstr "Classe StringMatcher"
+
+#: main.cpp:180
+msgid "Michael Denio"
+msgstr "Michael Denio"
+
+#: main.cpp:180
+msgid "Directory Equality-Coloring patch"
+msgstr "Pedaç per acolorir les igualtats de directoris"
+
+#: main.cpp:181
+msgid "Manfred Koehler"
+msgstr "Manfred Koehler"
+
+#: main.cpp:181
+msgid "Fix for slow startup on Windows"
+msgstr "Solució a l'inici lent en Windows"
+
+#: main.cpp:182
+msgid "Sergey Zorin"
+msgstr "Sergey Zorin"
+
+#: main.cpp:182
+msgid "Diff Ext for Windows"
+msgstr "Diff Ext per Windows"
+
+#: main.cpp:183
+msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+
+#: main.cpp:183
+msgid "GNU-Diffutils"
+msgstr "GNU-Diffutils"
+
+#: main.cpp:184
+msgid "Tino Boellsterling, Timothy Mee"
+msgstr "Tino Boellsterling, Timothy Mee"
+
+#: main.cpp:184
+msgid "Intensive test, use and feedback"
+msgstr "Proves intensives, ús i comentaris"
+
+#: main.cpp:185
+msgid "Michael Schmidt"
+msgstr "Michael Schmidt"
+
+#: main.cpp:185
+msgid "Mac support"
+msgstr "Compatibilitat amb Mac"
+
+#: main.cpp:186
+msgid "Valentin Rusu"
+msgstr "Valentin Rusu"
+
+#: main.cpp:186 main.cpp:187
+msgid "KDE4 porting"
+msgstr "Adaptació al KDE 4"
+
+#: main.cpp:187
+msgid "Albert Astals Cid"
+msgstr "Albert Astals Cid"
+
+#: main.cpp:188
+msgid "Silvan Scherrer"
+msgstr "Silvan Scherrer"
+
+#: main.cpp:188
+msgid "OS2 port"
+msgstr "Port a OS2"
+
+#: main.cpp:190
+msgid "+ Many thanks to those who reported bugs and contributed ideas!"
+msgstr "+ Moltes gràcies a tothom qui ha informat d'errors i ha aportat idees!"
+
+#: main.cpp:196
+msgid "Merge the input."
+msgstr "Fusiona l'entrada."
+
+#: main.cpp:197
+msgid "Explicit base file. For compatibility with certain tools."
+msgstr "Fitxer base explicit. Per compatibilitat amb certes eines."
+
+#: main.cpp:198
+msgid "Output file. Implies -m. E.g.: -o newfile.txt"
+msgstr "Fitxer de sortida. Implica -m P. ex.: -o fitxernou.txt"
+
+#: main.cpp:199
+msgid "Output file, again. (For compatibility with certain tools.)"
+msgstr "Fitxer de sortida, un altre cop. (Per compatibilitat amb certes eines)"
+
+#: main.cpp:200
+msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)"
+msgstr ""
+"Sense IGU si tots els conflictes es poden resoldre automàticament. (Cal -o "
+"fitxer)"
+
+#: main.cpp:201
+msgid "Don't solve conflicts automatically. (For compatibility...)"
+msgstr "No resolguis els conflictes automàticament. (Per compatibilitat...)"
+
+#: main.cpp:202
+msgid "Visible name replacement for input file 1 (base)."
+msgstr "Reemplaçament de nom visible pel fitxer de sortida 1 (base)."
+
+#: main.cpp:203
+msgid "Visible name replacement for input file 2."
+msgstr "Reemplaçament de nom visible pel fitxer de sortida 2."
+
+#: main.cpp:204
+msgid "Visible name replacement for input file 3."
+msgstr "Reemplaçament de nom visible pel fitxer de sortida 3."
+
+#: main.cpp:205
+msgid "Alternative visible name replacement. Supply this once for every input."
+msgstr ""
+"Reemplaçament de nom visible alternatiu. Proporcioneu-lo per cada sortida."
+
+#: main.cpp:206
+msgid ""
+"Override a config setting. Use once for every setting. E.g.: --cs "
+"\"AutoAdvance=1\""
+msgstr ""
+"Sobreescriu l'arranjament de la configuració. Useu-ho per cada arranjament. "
+"P. ex.: --cs \"AutoAdvance=1\""
+
+#: main.cpp:207
+msgid "Show list of config settings and current values."
+msgstr "Mostra una llista d'arranjaments de configuració i el valor actual."
+
+#: main.cpp:208
+msgid "Use a different config file."
+msgstr "Usa un fitxer de configuració diferent."
+
+#: main.cpp:211
+msgid "file1 to open (base, if not specified via --base)"
+msgstr "fitxer 1 a obrir (base, si no s'especifica via --base)"
+
+#: main.cpp:212
+msgid "file2 to open"
+msgstr "fitxer 2 a obrir"
+
+#: main.cpp:213
+msgid "file3 to open"
+msgstr "fitxer 3 a obrir"
+
+#: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976
+#: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002
+#: mergeresultwindow.cpp:1014
+#, kde-format
+msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)"
+msgstr ""
+"Número de conflictes sense resoldre pendents: %1 (dels quals %2 són espais "
+"en blanc)"
+
+#: mergeresultwindow.cpp:303
+msgid ""
+"The output has been modified.\n"
+"If you continue your changes will be lost."
+msgstr ""
+"S'ha modificat la sortida.\n"
+"Si continueu es perdran els canvis."
+
+#: mergeresultwindow.cpp:834 pdiff.cpp:532
+msgid "All input files are binary equal."
+msgstr "Tots els fitxers d'entrada són binàriament iguals."
+
+#: mergeresultwindow.cpp:836
+msgid "All input files contain the same text."
+msgstr "Tots els fitxers d'entrada contenen el mateix text."
+
+#: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840
+#: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540
+#, kde-format
+msgid "Files %1 and %2 are binary equal.\n"
+msgstr "Els fitxers %1 i %2 són binàriament iguals.\n"
+
+#: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841
+#: mergeresultwindow.cpp:843
+#, kde-format
+msgid "Files %1 and %2 have equal text.\n"
+msgstr "Els fitxers %1 i %2 tenen el mateix text.\n"
+
+#: mergeresultwindow.cpp:849
+msgid "Total number of conflicts: "
+msgstr "Nombre total de conflictes: "
+
+#: mergeresultwindow.cpp:850
+msgid ""
+"\n"
+"Nr of automatically solved conflicts: "
+msgstr ""
+"\n"
+"Núm. de conflictes resolts automàticament: "
+
+#: mergeresultwindow.cpp:851
+msgid ""
+"\n"
+"Nr of unsolved conflicts: "
+msgstr ""
+"\n"
+"Núm. de conflictes no resolts: "
+
+#: mergeresultwindow.cpp:853
+msgid "Conflicts"
+msgstr "Conflictes"
+
+#: mergeresultwindow.cpp:1728
+msgid "<No src line>"
+msgstr "<La línia no és codi>"
+
+#: mergeresultwindow.cpp:1736
+msgid "<Merge Conflict (Whitespace only)>"
+msgstr "<Conflicte de fusió (només espais en blanc)>"
+
+#: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517
+msgid "<Merge Conflict>"
+msgstr "<Conflicte de fusió>"
+
+#: mergeresultwindow.cpp:2725
+msgid ""
+"Not all conflicts are solved yet.\n"
+"File not saved.\n"
+msgstr ""
+"Encara no s'han resolt tots els conflictes.\n"
+"El fitxer no s'ha desat.\n"
+
+#: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736
+msgid "Conflicts Left"
+msgstr "Conflictes pendents"
+
+#: mergeresultwindow.cpp:2734
+msgid ""
+"There is a line end style conflict. Please choose the line end style "
+"manually.\n"
+"File not saved.\n"
+msgstr ""
+"Hi ha un conflicte d'estil de finals de línia. Escolliu manualment l'estil "
+"de salt de línia.\n"
+"El fitxer no s'ha desat.\n"
+
+#: mergeresultwindow.cpp:2748
+msgid ""
+"\n"
+"\n"
+"Creating backup failed. File not saved."
+msgstr ""
+"\n"
+"\n"
+"Ha fallat la creació de la còpia de seguretat. El fitxer no s'ha desat."
+
+#: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792
+msgid "File Save Error"
+msgstr "Error en desar el fitxer"
+
+#: mergeresultwindow.cpp:2792
+msgid "Error while writing."
+msgstr "Error en escriure."
+
+#: mergeresultwindow.cpp:3122
+msgid "Output"
+msgstr "Sortida"
+
+#: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314
+msgid "[Modified]"
+msgstr "[Modificat]"
+
+#: mergeresultwindow.cpp:3141
+msgid "Encoding for saving"
+msgstr "Codificació per desar"
+
+#: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737
+#: optiondialog.cpp:762
+msgid "Line end style:"
+msgstr "Estil de salt de línia:"
+
+#: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767
+msgid "Unix"
+msgstr "Unix"
+
+#: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737
+msgid "DOS"
+msgstr "DOS"
+
+#: mergeresultwindow.cpp:3229
+msgid "Conflict"
+msgstr "Conflicte"
+
+#: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263
+#: mergeresultwindow.cpp:3265
+msgid "Codec from"
+msgstr "Còdec de"
+
+#: kdiff3_part.cpp:157 kdiff3_part.cpp:234
+msgid "Couldn't find files for comparison."
+msgstr "No s'han trobat fitxers per comparar."
+
+#: kdiff3_part.cpp:302
+msgid "KDiff3Part"
+msgstr "KDiff3Part"
+
+#: fileaccess.cpp:612
+msgid ""
+"While trying to make a backup, deleting an older backup failed. \n"
+"Filename: "
+msgstr ""
+"Ha fallat en esborrar una còpia de seguretat quan s'intentava fer-ne una de "
+"nova.\n"
+"Nom de fitxer: "
+
+#: fileaccess.cpp:619
+msgid ""
+"While trying to make a backup, renaming failed. \n"
+"Filenames: "
+msgstr ""
+"Ha fallat el reanomenament en intentar fer una còpia de seguretat. \n"
+"Noms de fitxer: "
+
+#: fileaccess.cpp:643
+#, kde-format
+msgid "Getting file status: %1"
+msgstr "S'està obtenint l'estat del fitxer: %1"
+
+#: fileaccess.cpp:686
+#, kde-format
+msgid "Reading file: %1"
+msgstr "S'està llegint el fitxer: %1"
+
+#: fileaccess.cpp:723
+#, kde-format
+msgid "Writing file: %1"
+msgstr "S'està escrivint el fitxer: %1"
+
+#: fileaccess.cpp:751
+msgid "Out of memory"
+msgstr "Sense memòria"
+
+#: fileaccess.cpp:786
+#, kde-format
+msgid "Making directory: %1"
+msgstr "S'està creant el directori: %1"
+
+#: fileaccess.cpp:806
+#, kde-format
+msgid "Removing directory: %1"
+msgstr "S'està eliminant el directori: %1"
+
+#: fileaccess.cpp:821
+#, kde-format
+msgid "Removing file: %1"
+msgstr "S'està eliminant el fitxer: %1"
+
+#: fileaccess.cpp:837
+#, kde-format
+msgid "Creating symbolic link: %1 -> %2"
+msgstr "S'està creant l'enllaç simbòlic: %1 -> %2"
+
+#: fileaccess.cpp:864
+#, kde-format
+msgid "Renaming file: %1 -> %2"
+msgstr "S'està reanomenant el fitxer: %1 -> %2"
+
+#: fileaccess.cpp:897
+#, kde-format
+msgid "Copying file: %1 -> %2"
+msgstr "S'està copiant el fitxer: %1 -> %2"
+
+#: fileaccess.cpp:911
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for reading failed. Filename: "
+"%1"
+msgstr ""
+"Error durant l'operació de còpia de fitxer: ha fallat en obrir el fitxer per "
+"llegir-lo. Nom de fitxer: %1"
+
+#: fileaccess.cpp:917
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for writing failed. Filename: "
+"%1"
+msgstr ""
+"Error durant l'operació de còpia de fitxer: ha fallat en obrir el fitxer per "
+"escriure-hi. Nom de fitxer: %1"
+
+#: fileaccess.cpp:932
+#, kde-format
+msgid "Error during file copy operation: Reading failed. Filename: %1"
+msgstr ""
+"Error durant l'operació de còpia de fitxer: ha fallat en llegir. Nom de "
+"fitxer: %1"
+
+#: fileaccess.cpp:941
+#, kde-format
+msgid "Error during file copy operation: Writing failed. Filename: %1"
+msgstr ""
+"Error durant l'operació de còpia de fitxer: ha fallat en escriure. Nom de "
+"fitxer: %1"
+
+#: fileaccess.cpp:1231
+msgid "Reading directory: "
+msgstr "S'està llegint el directori: "
+
+#: fileaccess.cpp:1355
+#, kde-format
+msgid "Listing directory: %1"
+msgstr "S'està llistant el directori: %1"
+
+#: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396
+msgid "&Cancel"
+msgstr "&Cancel·la"
+
+#: difftextwindow.cpp:403
+msgid "Line"
+msgstr "Línia"
+
+#: difftextwindow.cpp:405
+msgid "Line not available"
+msgstr "Línia no disponible"
+
+#: difftextwindow.cpp:1703 difftextwindow.cpp:1736
+msgid "Encoding:"
+msgstr "Codificació:"
+
+#: difftextwindow.cpp:1759 kdiff3.cpp:831
+msgid "Top line"
+msgstr "Línia superior"
+
+#: difftextwindow.cpp:1769
+msgid "End"
+msgstr "Final"
+
+#: kdiff3.cpp:169
+msgid "Current Configuration:"
+msgstr "Configuració actual:"
+
+#: kdiff3.cpp:174
+msgid "Config Option Error:"
+msgstr "Error de l'opció de configuració:"
+
+#: kdiff3.cpp:219
+msgid "Option --auto used, but no output file specified."
+msgstr ""
+"Heu usat l'opció --auto, però no heu especificat cap fitxer de sortida."
+
+#: kdiff3.cpp:369
+msgid "Option --auto ignored for directory comparison."
+msgstr "L'opció --auto s'ignora en comparar directoris."
+
+#: kdiff3.cpp:405
+msgid "Saving failed."
+msgstr "Ha fallat el desat."
+
+#: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214
+msgid "Opening of these files failed:"
+msgstr "Ha fallat en obrir aquests fitxers:"
+
+#: kdiff3.cpp:449
+msgid "File Open Error"
+msgstr "S'ha produït un error en obrir el fitxer"
+
+#: kdiff3.cpp:477
+msgid "Opens documents for comparison..."
+msgstr "Obra documents per comparar-los..."
+
+#: kdiff3.cpp:479
+msgid "Reload"
+msgstr "Recarrega"
+
+#: kdiff3.cpp:482
+msgid "Saves the merge result. All conflicts must be solved!"
+msgstr "Desa el resultat de la fusió. S'han de resoldre tots els conflictes!"
+
+#: kdiff3.cpp:484
+msgid "Saves the current document as..."
+msgstr "Desa el document actual com a..."
+
+#: kdiff3.cpp:487
+msgid "Print the differences"
+msgstr "Imprimeix les diferències"
+
+#: kdiff3.cpp:490
+msgid "Quits the application"
+msgstr "Surt de l'aplicació"
+
+#: kdiff3.cpp:492
+msgid "Cuts the selected section and puts it to the clipboard"
+msgstr "Talla la secció seleccionada i la posa al porta-retalls"
+
+#: kdiff3.cpp:494
+msgid "Copies the selected section to the clipboard"
+msgstr "Copia la secció seleccionada al porta-retalls"
+
+#: kdiff3.cpp:496
+msgid "Pastes the clipboard contents to current position"
+msgstr "Enganxa el contingut del porta-retalls a la posició actual"
+
+#: kdiff3.cpp:498
+msgid "Select everything in current window"
+msgstr "Selecciona tot el què hi ha a la finestra actual"
+
+#: kdiff3.cpp:500
+msgid "Search for a string"
+msgstr "Cerca una cadena"
+
+#: kdiff3.cpp:502
+msgid "Search again for the string"
+msgstr "Torna a cercar la cadena"
+
+#: kdiff3.cpp:507
+msgid "Enables/disables the statusbar"
+msgstr "Habilita/deshabilita la barra d'estat"
+
+#: kdiff3.cpp:511
+msgid "Configure KDiff3..."
+msgstr "Configura el KDiff3..."
+
+#: kdiff3.cpp:532
+msgid "Go to Current Delta"
+msgstr "Vés a la diferència actual"
+
+#: kdiff3.cpp:532
+msgid ""
+"Current\n"
+"Delta"
+msgstr ""
+"Diferència\n"
+"actual"
+
+#: kdiff3.cpp:534
+msgid "Go to First Delta"
+msgstr "Vés a la primera diferència"
+
+#: kdiff3.cpp:534
+msgid ""
+"First\n"
+"Delta"
+msgstr ""
+"Primera\n"
+"diferència"
+
+#: kdiff3.cpp:536
+msgid "Go to Last Delta"
+msgstr "Vés a l'última diferència"
+
+#: kdiff3.cpp:536
+msgid ""
+"Last\n"
+"Delta"
+msgstr ""
+"Última\n"
+"diferència"
+
+#: kdiff3.cpp:538
+msgid "(Skips white space differences when \"Show White Space\" is disabled.)"
+msgstr ""
+"(Se salten les diferències d'espais en blanc quan «Mostra espais en blanc» "
+"està deshabilitat)."
+
+#: kdiff3.cpp:539
+msgid ""
+"(Does not skip white space differences even when \"Show White Space\" is "
+"disabled.)"
+msgstr ""
+"(No se salten les diferències d'espais en blanc quan «Mostra espais en "
+"blanc» està deshabilitat)."
+
+#: kdiff3.cpp:540
+msgid "Go to Previous Delta"
+msgstr "Vés a la diferència anterior"
+
+#: kdiff3.cpp:540
+msgid ""
+"Prev\n"
+"Delta"
+msgstr ""
+"Diferència\n"
+"anterior"
+
+#: kdiff3.cpp:542
+msgid "Go to Next Delta"
+msgstr "Vés a diferència següent"
+
+#: kdiff3.cpp:542
+msgid ""
+"Next\n"
+"Delta"
+msgstr ""
+"Diferència\n"
+"següent"
+
+#: kdiff3.cpp:544
+msgid "Go to Previous Conflict"
+msgstr "Vés al conflicte anterior"
+
+#: kdiff3.cpp:544
+msgid ""
+"Prev\n"
+"Conflict"
+msgstr ""
+"Conflicte\n"
+"anterior"
+
+#: kdiff3.cpp:546
+msgid "Go to Next Conflict"
+msgstr "Vés al conflicte següent"
+
+#: kdiff3.cpp:546
+msgid ""
+"Next\n"
+"Conflict"
+msgstr ""
+"Conflicte\n"
+"següent"
+
+#: kdiff3.cpp:548
+msgid "Go to Previous Unsolved Conflict"
+msgstr "Vés al conflicte no resolt anterior"
+
+#: kdiff3.cpp:548
+msgid ""
+"Prev\n"
+"Unsolved"
+msgstr ""
+"No resolt\n"
+"anterior"
+
+#: kdiff3.cpp:550
+msgid "Go to Next Unsolved Conflict"
+msgstr "Vés al conflicte no resolt següent"
+
+#: kdiff3.cpp:550
+msgid ""
+"Next\n"
+"Unsolved"
+msgstr ""
+"No resolt\n"
+"següent"
+
+#: kdiff3.cpp:552
+msgid "Select Line(s) From A"
+msgstr "Selecciona línies d'A"
+
+#: kdiff3.cpp:552
+msgid ""
+"Choose\n"
+"A"
+msgstr ""
+"Escull\n"
+"A"
+
+#: kdiff3.cpp:553
+msgid "Select Line(s) From B"
+msgstr "Seleccion línies de B"
+
+#: kdiff3.cpp:553
+msgid ""
+"Choose\n"
+"B"
+msgstr ""
+"Escull\n"
+"B"
+
+#: kdiff3.cpp:554
+msgid "Select Line(s) From C"
+msgstr "Seleccion línies de C"
+
+#: kdiff3.cpp:554
+msgid ""
+"Choose\n"
+"C"
+msgstr ""
+"Escull\n"
+"C"
+
+#: kdiff3.cpp:555
+msgid "Automatically Go to Next Unsolved Conflict After Source Selection"
+msgstr ""
+"Vés automàticament al conflicte no resolt següent després de seleccionar una "
+"font"
+
+#: kdiff3.cpp:555
+msgid ""
+"Auto\n"
+"Next"
+msgstr ""
+"Automàticament\n"
+"al següent"
+
+#: kdiff3.cpp:557
+msgid "Show Space && Tabulator Characters for Differences"
+msgstr ""
+"Mostra com a diferències els caràcters d'espai en blanc i els de tabulador "
+
+#: kdiff3.cpp:557
+msgid ""
+"White\n"
+"Characters"
+msgstr ""
+"Caràcters\n"
+"en blanc"
+
+#: kdiff3.cpp:558
+msgid "Show White Space"
+msgstr "Mostra els espais en blanc"
+
+#: kdiff3.cpp:558
+msgid ""
+"White\n"
+"Deltas"
+msgstr ""
+"Diferències\n"
+"d'espais"
+
+#: kdiff3.cpp:560
+msgid "Show Line Numbers"
+msgstr "Mostra els números de les línies"
+
+#: kdiff3.cpp:560
+msgid ""
+"Line\n"
+"Numbers"
+msgstr ""
+"Números\n"
+"de línia"
+
+#: kdiff3.cpp:561
+msgid "Choose A Everywhere"
+msgstr "Escull A a tot arreu"
+
+#: kdiff3.cpp:562
+msgid "Choose B Everywhere"
+msgstr "Escull B a tot arreu"
+
+#: kdiff3.cpp:563
+msgid "Choose C Everywhere"
+msgstr "Escull C a tot arreu"
+
+#: kdiff3.cpp:564
+msgid "Choose A for All Unsolved Conflicts"
+msgstr "Escull A a tots els conflictes no resolts"
+
+#: kdiff3.cpp:565
+msgid "Choose B for All Unsolved Conflicts"
+msgstr "Escull B a tots els conflictes no resolts"
+
+#: kdiff3.cpp:566
+msgid "Choose C for All Unsolved Conflicts"
+msgstr "Escull C a tots els conflictes no resolts"
+
+#: kdiff3.cpp:567
+msgid "Choose A for All Unsolved Whitespace Conflicts"
+msgstr "Escull A a tots els conflictes d'espais en blanc no resolts"
+
+#: kdiff3.cpp:568
+msgid "Choose B for All Unsolved Whitespace Conflicts"
+msgstr "Escull B a tots els conflictes d'espais en blanc no resolts"
+
+#: kdiff3.cpp:569
+msgid "Choose C for All Unsolved Whitespace Conflicts"
+msgstr "Escull C a tots els conflictes d'espais en blanc no resolts"
+
+#: kdiff3.cpp:570
+msgid "Automatically Solve Simple Conflicts"
+msgstr "Resol automàticament els conflictes senzills"
+
+#: kdiff3.cpp:571
+msgid "Set Deltas to Conflicts"
+msgstr "Estableix les diferències com a conflictes"
+
+#: kdiff3.cpp:572
+msgid "Run Regular Expression Auto Merge"
+msgstr "Executa la fusió automàtica d'expressions regulars"
+
+#: kdiff3.cpp:573
+msgid "Automatically Solve History Conflicts"
+msgstr "Resol automàticament els conflictes cronològics"
+
+#: kdiff3.cpp:574
+msgid "Split Diff At Selection"
+msgstr "Divideix les diferències a la selecció"
+
+#: kdiff3.cpp:575
+msgid "Join Selected Diffs"
+msgstr "Uneix les diferències seleccionades"
+
+#: kdiff3.cpp:577
+msgid "Show Window A"
+msgstr "Mostra la finestra A"
+
+#: kdiff3.cpp:578
+msgid "Show Window B"
+msgstr "Mostra la finestra B"
+
+#: kdiff3.cpp:579
+msgid "Show Window C"
+msgstr "Mostra la finestra C"
+
+#: kdiff3.cpp:580 kdiff3.cpp:591
+msgid "Focus Next Window"
+msgstr "Focus a la finestra següent"
+
+#: kdiff3.cpp:582
+msgid "Normal Overview"
+msgstr "Resum normal"
+
+#: kdiff3.cpp:583
+msgid "A vs. B Overview"
+msgstr "Resum d'A contra B"
+
+#: kdiff3.cpp:584
+msgid "A vs. C Overview"
+msgstr "Resum d'A contra C"
+
+#: kdiff3.cpp:585
+msgid "B vs. C Overview"
+msgstr "Resum de B contra C"
+
+#: kdiff3.cpp:586
+msgid "Word Wrap Diff Windows"
+msgstr "Ajusta les línies de les finestres de diferències"
+
+#: kdiff3.cpp:587
+msgid "Add Manual Diff Alignment"
+msgstr "Afegeix alineació manual de les diferències"
+
+#: kdiff3.cpp:588
+msgid "Clear All Manual Diff Alignments"
+msgstr "Treu totes les alineacions manuals de les diferències"
+
+#: kdiff3.cpp:593
+msgid "Focus Prev Window"
+msgstr "Focus a la finestra anterior"
+
+#: kdiff3.cpp:594
+msgid "Toggle Split Orientation"
+msgstr "Commuta l'orientació de les divisions"
+
+#: kdiff3.cpp:596
+msgid "Dir && Text Split Screen View"
+msgstr "Vista de pantalla dividida en text i directoris"
+
+#: kdiff3.cpp:598
+msgid "Toggle Between Dir && Text View"
+msgstr "Commuta entre la vista de directoris i text"
+
+#: kdiff3.cpp:654 pdiff.cpp:1812
+msgid "The merge result hasn't been saved."
+msgstr "El resultat de la fusió no s'ha desat."
+
+#: kdiff3.cpp:656
+msgid "Save && Quit"
+msgstr "Desa i surt"
+
+#: kdiff3.cpp:657
+msgid "Quit Without Saving"
+msgstr "Surt sense desar"
+
+#: kdiff3.cpp:665 pdiff.cpp:1823
+msgid "Saving the merge result failed."
+msgstr "Ha fallat en desar el resultat de la fusió."
+
+#: kdiff3.cpp:676 pdiff.cpp:1078
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort?"
+msgstr ""
+"Actualment esteu fent una fusió de directoris. Segur que la voleu "
+"interrompre?"
+
+#: kdiff3.cpp:701
+msgid "Saving file..."
+msgstr "S'està desant el fitxer..."
+
+#: kdiff3.cpp:718
+msgid "Saving file with a new filename..."
+msgstr "S'està desant el fitxer amb un nom nou..."
+
+#: kdiff3.cpp:781
+msgid "Printing not implemented."
+msgstr "Impressió no implementada."
+
+#: kdiff3.cpp:815
+msgid "Printing..."
+msgstr "S'està imprimint..."
+
+#: kdiff3.cpp:956
+msgid "Selection"
+msgstr "Selecció"
+
+#: kdiff3.cpp:982
+msgid "Printing completed."
+msgstr "Impressió completada."
+
+#: kdiff3.cpp:986
+msgid "Printing aborted."
+msgstr "S'ha interromput la impressió."
+
+#: kdiff3.cpp:993
+msgid "Exiting..."
+msgstr "S'està sortint..."
+
+#: kdiff3.cpp:1006
+msgid "Toggling toolbar..."
+msgstr "S'està commutant la barra d'eines..."
+
+#: kdiff3.cpp:1027
+msgid "Toggle the statusbar..."
+msgstr "Commuta la barra d'estat..."
+
+#: smalldialogs.cpp:58
+msgid "A (Base):"
+msgstr "A (Base):"
+
+#: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99
+#: smalldialogs.cpp:142
+msgid "File..."
+msgstr "Fitxer..."
+
+#: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101
+#: smalldialogs.cpp:144
+msgid "Dir..."
+msgstr "Directori..."
+
+#: smalldialogs.cpp:93
+msgid "C (Optional):"
+msgstr "C (opcional):"
+
+#: smalldialogs.cpp:116
+msgid "Swap/Copy Names ..."
+msgstr "Intercanvia/Copia els noms..."
+
+#: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123
+#, kde-format
+msgid "Swap %1<->%2"
+msgstr "Intercanvia %1<->%2"
+
+#: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126
+#, kde-format
+msgid "Copy %1->Output"
+msgstr "Copia %1 ->Sortida"
+
+#: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129
+#, kde-format
+msgid "Swap %1<->Output"
+msgstr "Intercanvia %1<->Sortida"
+
+#: smalldialogs.cpp:136
+msgid "Output (optional):"
+msgstr "Sortida (opcional):"
+
+#: smalldialogs.cpp:168
+msgid "Configure..."
+msgstr "Configura..."
+
+#: smalldialogs.cpp:174
+msgid "&OK"
+msgstr "&D'acord"
+
+#: smalldialogs.cpp:362
+msgid "Search text:"
+msgstr "Cerca el text:"
+
+#: smalldialogs.cpp:369
+msgid "Case sensitive"
+msgstr "Sensible a majúscules"
+
+#: smalldialogs.cpp:372
+msgid "Search A"
+msgstr "Cerca A"
+
+#: smalldialogs.cpp:377
+msgid "Search B"
+msgstr "Cerca B"
+
+#: smalldialogs.cpp:382
+msgid "Search C"
+msgstr "Cerca C"
+
+#: smalldialogs.cpp:387
+msgid "Search output"
+msgstr "Cerca la sortida"
+
+#: smalldialogs.cpp:392
+msgid "&Search"
+msgstr "&Cerca"
+
+#: smalldialogs.cpp:409
+msgid "Regular Expression Tester"
+msgstr "Provador d'expressions regulars"
+
+#: smalldialogs.cpp:414 optiondialog.cpp:936
+msgid "Auto merge regular expression:"
+msgstr "Fusiona automàticament les expressions regulars:"
+
+#: smalldialogs.cpp:422
+msgid "Example auto merge line:"
+msgstr "Exemple de línia de fusió automàtica:"
+
+#: smalldialogs.cpp:424
+msgid "To test auto merge, copy a line as used in your files."
+msgstr ""
+"Per testar la fusió automàtica, copieu una línia com les dels vostres "
+"fitxers."
+
+#: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494
+msgid "Match result:"
+msgstr "Resultat coincident:"
+
+#: smalldialogs.cpp:441 optiondialog.cpp:962
+msgid "History start regular expression:"
+msgstr "Expressió regular d'inici d'historial:"
+
+#: smalldialogs.cpp:449
+msgid "Example history start line (with leading comment):"
+msgstr "Exemple de línia d'inici d'historial (amb el comentari inicial):"
+
+#: smalldialogs.cpp:451
+msgid ""
+"Copy a history start line as used in your files,\n"
+"including the leading comment."
+msgstr ""
+"Copieu una línia d'inici d'historial com les dels vostres fitxers,\n"
+"incloent el comentari inicial."
+
+#: smalldialogs.cpp:469 optiondialog.cpp:972
+msgid "History entry start regular expression:"
+msgstr "Expressió regular d'inici d'entrada d'historial:"
+
+#: smalldialogs.cpp:477
+msgid "History sort key order:"
+msgstr "Criteri d'ordenació de les claus de l'historial:"
+
+#: smalldialogs.cpp:485
+msgid "Example history entry start line (without leading comment):"
+msgstr ""
+"Exemple d'inici de línia d'entrada d'historial (sense el comentari inicial):"
+
+#: smalldialogs.cpp:487
+msgid ""
+"Copy a history entry start line as used in your files,\n"
+"but omit the leading comment."
+msgstr ""
+"Copieu una entrada de línia d'inici d'historial com les dels vostres "
+"fitxers,\n"
+"sense incloure el comentari inicial."
+
+#: smalldialogs.cpp:501
+msgid "Sort key result:"
+msgstr "Resultat de la clau d'ordenació:"
+
+# PERFER: alineament?
+#: smalldialogs.cpp:508
+msgid "OK"
+msgstr "D'acord"
+
+# PERFER: alineament?
+#: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583
+msgid "Match success."
+msgstr "Encaix correcte."
+
+#: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589
+msgid "Match failed."
+msgstr "Ha fallat l'encaix. "
+
+#: smalldialogs.cpp:574
+msgid "Opening and closing parentheses do not match in regular expression."
+msgstr ""
+"L'obertura i tancament de parèntesis no encaixa en l'expressió regular."
+
+#: optiondialog.cpp:367
+msgid "Unicode, 8 bit"
+msgstr "Unicode, 8 bits"
+
+#: optiondialog.cpp:368
+msgid "Unicode"
+msgstr "Unicode"
+
+#: optiondialog.cpp:369
+msgid "Latin1"
+msgstr "Latin1"
+
+#: optiondialog.cpp:388
+msgid "Change this if non-ASCII characters are not displayed correctly."
+msgstr "Canvia això si els caràcters no ASCII no es mostren correctament."
+
+#: optiondialog.cpp:465
+msgid "Configure"
+msgstr "Configura"
+
+#: optiondialog.cpp:531
+msgid "Font"
+msgstr "Tipus de lletra"
+
+#: optiondialog.cpp:532
+msgid "Editor & Diff Output Font"
+msgstr "Tipus de lletra de l'editor i sortida de diferències"
+
+#: optiondialog.cpp:556
+msgid "Italic font for deltas"
+msgstr "Tipus de lletra cursiva per les diferències"
+
+#: optiondialog.cpp:559
+msgid ""
+"Selects the italic version of the font for differences.\n"
+"If the font doesn't support italic characters, then this does nothing."
+msgstr ""
+"Per les diferències, selecciona la versió en cursiva del tipus de lletra.\n"
+"Si el tipus de lletra no implementa caràcters en cursiva, això no tindrà "
+"efecte."
+
+#: optiondialog.cpp:568
+msgid "Color"
+msgstr "Color"
+
+#: optiondialog.cpp:569
+msgid "Colors Settings"
+msgstr "Arranjament de colors"
+
+#: optiondialog.cpp:588
+msgid "Editor and Diff Views:"
+msgstr "vistes de l'editor i diferències:"
+
+#: optiondialog.cpp:596
+msgid "Foreground color:"
+msgstr "Color de primer pla:"
+
+#: optiondialog.cpp:603
+msgid "Background color:"
+msgstr "Color de fons:"
+
+#: optiondialog.cpp:612
+msgid "Diff background color:"
+msgstr "Color de fons de les diferències:"
+
+#: optiondialog.cpp:620
+msgid "Color A:"
+msgstr "Color A:"
+
+#: optiondialog.cpp:628
+msgid "Color B:"
+msgstr "Color B:"
+
+#: optiondialog.cpp:636
+msgid "Color C:"
+msgstr "Color C:"
+
+#: optiondialog.cpp:643
+msgid "Conflict color:"
+msgstr "Conflicte de color:"
+
+#: optiondialog.cpp:651
+msgid "Current range background color:"
+msgstr "Color de fons del rang actual:"
+
+#: optiondialog.cpp:659
+msgid "Current range diff background color:"
+msgstr "Color de fons de les diferències del rang actual:"
+
+#: optiondialog.cpp:666
+msgid "Color for manually aligned difference ranges:"
+msgstr "Color pels rangs de diferències alineades manualment:"
+
+#: optiondialog.cpp:672
+msgid "Directory Comparison View:"
+msgstr "Vista de la comparació de directoris:"
+
+#: optiondialog.cpp:678
+msgid "Newest file color:"
+msgstr "Color del fitxer més nou:"
+
+#: optiondialog.cpp:682
+msgid ""
+"Changing this color will only be effective when starting the next directory "
+"comparison."
+msgstr ""
+"El canvi d'aquest color només serà efectiu quan es comenci la propera "
+"comparació de directoris."
+
+#: optiondialog.cpp:687
+msgid "Oldest file color:"
+msgstr "Color del fitxer més antic:"
+
+#: optiondialog.cpp:695
+msgid "Middle age file color:"
+msgstr "Color del fitxer d'edat intermèdia:"
+
+#: optiondialog.cpp:703
+msgid "Color for missing files:"
+msgstr "Color dels fitxer no disponibles:"
+
+#: optiondialog.cpp:717
+msgid "Editor"
+msgstr "Editor"
+
+#: optiondialog.cpp:718
+msgid "Editor Behavior"
+msgstr "Comportament de l'editor"
+
+#: optiondialog.cpp:732
+msgid "Tab inserts spaces"
+msgstr "El tabulador insereix espais"
+
+#: optiondialog.cpp:735
+msgid ""
+"On: Pressing tab generates the appropriate number of spaces.\n"
+"Off: A tab character will be inserted."
+msgstr ""
+"Activat: en prémer el tabulador es generaran el nombre apropat d'espais en "
+"blanc.\n"
+"Desactivat: s'inserirà un caràcter de tabulació."
+
+#: optiondialog.cpp:741
+msgid "Tab size:"
+msgstr "Mida de la tabulació:"
+
+#: optiondialog.cpp:747
+msgid "Auto indentation"
+msgstr "Sagnat automàtic"
+
+#: optiondialog.cpp:750
+msgid "On: The indentation of the previous line is used for a new line.\n"
+msgstr "Activat: s'usarà el sagnat de la línia prèvia per les línies noves.\n"
+
+#: optiondialog.cpp:754
+msgid "Auto copy selection"
+msgstr "Copia la selecció automàticament"
+
+#: optiondialog.cpp:757
+msgid ""
+"On: Any selection is immediately written to the clipboard.\n"
+"Off: You must explicitely copy e.g. via Ctrl-C."
+msgstr ""
+"Activat: totes les seleccions es desaran al porta-retalls.\n"
+"Desactivat: haureu de copiar explícitament, p. ex. mitjançant Ctrl-C."
+
+#: optiondialog.cpp:768
+msgid "Dos/Windows"
+msgstr "Dos/Windows"
+
+#: optiondialog.cpp:769
+msgid "Autodetect"
+msgstr "Autodetecta"
+
+#: optiondialog.cpp:772
+msgid ""
+"Sets the line endings for when an edited file is saved.\n"
+"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A"
+msgstr ""
+"Estableix els finals de línia quan es desin els fitxers editats.\n"
+"Dos/Windows: CR+LF; UNIX: LF; amb CR=0D, LF=0A"
+
+#: optiondialog.cpp:784
+msgid "Diff"
+msgstr "Diferència"
+
+#: optiondialog.cpp:785
+msgid "Diff Settings"
+msgstr "Arranjament de les diferències "
+
+#: optiondialog.cpp:809
+msgid "Treat as white space."
+msgstr "Tracta-ho com a espais en blanc."
+
+#: optiondialog.cpp:811
+msgid "Ignore numbers"
+msgstr "Ignora els números"
+
+#: optiondialog.cpp:814
+msgid ""
+"Ignore number characters during line matching phase. (Similar to Ignore "
+"white space.)\n"
+"Might help to compare files with numeric data."
+msgstr ""
+"Ignora els caràcters numèrics durant la fase de d'encaix de línies. "
+"(Semblant a ignorar espais en blanc).\n"
+"Pot ajudar a comparar fitxers amb dades numèriques."
+
+#: optiondialog.cpp:819
+msgid "Ignore C/C++ comments"
+msgstr "Ignora els comentaris de C/C++"
+
+#: optiondialog.cpp:821
+msgid "Treat C/C++ comments like white space."
+msgstr "Tracta els comentaris de C/C++ com si fossin espais en blanc."
+
+#: optiondialog.cpp:825
+msgid "Ignore case"
+msgstr "Ignora majúscules/minúscules"
+
+#: optiondialog.cpp:828
+msgid "Treat case differences like white space changes. ('a'<=>'A')"
+msgstr ""
+"Tracta les diferències de caixa com si fossin canvis d'espais en blanc(«a» "
+"<=> «A»)"
+
+#: optiondialog.cpp:832
+msgid "Preprocessor command:"
+msgstr "Ordre del preprocessador:"
+
+#: optiondialog.cpp:836
+msgid "User defined pre-processing. (See the docs for details.)"
+msgstr ""
+"Preprocessament definit per l'usuari. (Vegeu la documentació pels detalls)."
+
+#: optiondialog.cpp:839
+msgid "Line-matching preprocessor command:"
+msgstr "Ordre del preprocessador d'encaix de línies:"
+
+#: optiondialog.cpp:843
+msgid ""
+"This pre-processor is only used during line matching.\n"
+"(See the docs for details.)"
+msgstr ""
+"Aquest preprocessador només s'usa durant l'encaix de línies.\n"
+"(Per més detalls vegeu la documentació)."
+
+#: optiondialog.cpp:846
+msgid "Try hard (slower)"
+msgstr "Esforçat-hi (més lent)"
+
+#: optiondialog.cpp:849
+msgid ""
+"Enables the --minimal option for the external diff.\n"
+"The analysis of big files will be much slower."
+msgstr ""
+"Habilita l'opció --minimal pel diff extern.\n"
+"L'anàlisi de fitxers grans serà encara més lenta."
+
+#: optiondialog.cpp:854
+msgid "Align B and C for 3 input files"
+msgstr "Alinea B i C per 3 fitxers d'entrada"
+
+#: optiondialog.cpp:857
+msgid ""
+"Try to align B and C when comparing or merging three input files.\n"
+"Not recommended for merging because merge might get more complicated.\n"
+"(Default is off.)"
+msgstr ""
+"Intenta alinear B i C quan es comparin o fusionin tres fitxers d'entrada.\n"
+"No recomanat per fusionar ja que pot ser més complicat.\n"
+"(Deshabilitat per defecte)"
+
+#: optiondialog.cpp:870
+msgid "Merge Settings"
+msgstr "Arranjaments de fusió"
+
+#: optiondialog.cpp:885
+msgid "Auto advance delay (ms):"
+msgstr "Retard de l'avanç automàtic (ms):"
+
+#: optiondialog.cpp:890
+msgid ""
+"When in Auto-Advance mode the result of the current selection is shown \n"
+"for the specified time, before jumping to the next conflict. Range: 0-2000 ms"
+msgstr ""
+"Quan el mode d'avanç automàtic estigui activat es mostrarà el resultat de la "
+"selecció \n"
+"actual durant el temps especificat, avanç de saltar al conflicte següent. "
+"Rang: 0-2000 ms"
+
+#: optiondialog.cpp:895
+msgid "Show info dialogs"
+msgstr "Mostra els diàlegs d'informació"
+
+#: optiondialog.cpp:897
+msgid "Show a dialog with information about the number of conflicts."
+msgstr "Mostra un diàleg amb informació sobre el nombre de conflictes."
+
+#: optiondialog.cpp:900
+msgid "White space 2-file merge default:"
+msgstr "Opció per defecte dels espais en blanc en la fusió de 2 fitxers:"
+
+#: optiondialog.cpp:904 optiondialog.cpp:917
+msgid "Manual Choice"
+msgstr "Selecció manual"
+
+#: optiondialog.cpp:908 optiondialog.cpp:922
+msgid ""
+"Allow the merge algorithm to automatically select an input for white-space-"
+"only changes."
+msgstr ""
+"Permet que l'algoritme de fusió seleccioni automàticament una entrada pels "
+"canvis d'espais en blanc."
+
+#: optiondialog.cpp:913
+msgid "White space 3-file merge default:"
+msgstr "Opció per defecte dels espais en blanc en la fusió de 2 fitxers:"
+
+#: optiondialog.cpp:927
+msgid "Automatic Merge Regular Expression"
+msgstr "Fusió automàticament les expressions regulars"
+
+#: optiondialog.cpp:940
+msgid ""
+"Regular expression for lines where KDiff3 should automatically choose one "
+"source.\n"
+"When a line with a conflict matches the regular expression then\n"
+"- if available - C, otherwise B will be chosen."
+msgstr ""
+"Expressió regular per les línies en què el KDiff3 hauria d'escollir una font "
+"automàticament.\n"
+"Quan una línia amb un conflicte concorda amb l'expressió regular aleshores\n"
+"- si està disponible - s'escollirà C, si no, B."
+
+#: optiondialog.cpp:946
+msgid "Run regular expression auto merge on merge start"
+msgstr ""
+"Executa la fusió automàtica d'expressions regulars a l'inici de la fusió"
+
+#: optiondialog.cpp:948
+msgid ""
+"Run the merge for auto merge regular expressions\n"
+"immediately when a merge starts.\n"
+msgstr ""
+"Fusiona automàticament les expressions regulars\n"
+"just en començar la fusió.\n"
+
+#: optiondialog.cpp:953
+msgid "Version Control History Merging"
+msgstr "Fusió d'historial del control de versions"
+
+#: optiondialog.cpp:966
+msgid ""
+"Regular expression for the start of the version control history entry.\n"
+"Usually this line contains the \"$Log$\" keyword.\n"
+"Default value: \".*\\$Log.*\\$.*\""
+msgstr ""
+"Expressió regular per l'inici de les entrades de l'historial del control de "
+"versions.\n"
+"Normalment aquesta línia conté la paraula clau «$Log$».\n"
+"Valor per defecte: «.*\\$Log.*\\$.*»"
+
+#: optiondialog.cpp:984
+msgid ""
+"A version control history entry consists of several lines.\n"
+"Specify the regular expression to detect the first line (without the leading "
+"comment).\n"
+"Use parentheses to group the keys you want to use for sorting.\n"
+"If left empty, then KDiff3 assumes that empty lines separate history "
+"entries.\n"
+"See the documentation for details."
+msgstr ""
+"Les entrades de l'historial del control de versions consten de varies "
+"línies.\n"
+"Especifiqueu l'expressió regular per detectar la primera línia (sense el "
+"comentari inicial).\n"
+"Useu parèntesis per agrupar les claus que vulgueu usar per ordenar-les.\n"
+"Si es deixa en blanc, el KDiff3 assumeix que les línies en blanc separen les "
+"entrades de l'historial.\n"
+"Per més detalls, vegeu la documentació."
+
+#: optiondialog.cpp:992
+msgid "History merge sorting"
+msgstr "Ordenació de la fusió d'historials"
+
+#: optiondialog.cpp:994
+msgid "Sort version control history by a key."
+msgstr "Ordena l'historial del control de versions per una clau."
+
+#: optiondialog.cpp:1004
+msgid "History entry start sort key order:"
+msgstr ""
+"Criteri d'ordenació de les claus de l'inici de les entrades d'historial:"
+
+#: optiondialog.cpp:1008
+msgid ""
+"Each pair of parentheses used in the regular expression for the history "
+"start entry\n"
+"groups a key that can be used for sorting.\n"
+"Specify the list of keys (that are numbered in order of occurrence\n"
+"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n"
+"If left empty, then no sorting will be done.\n"
+"See the documentation for details."
+msgstr ""
+"Cada parell de parèntesis usats en l'expressió regular per l'inici de "
+"l'entrada de l'historial\n"
+"agrupa una clau que es pot usar per ordenar.\n"
+"Especifica la llista de claus (que estan numerades en ordre d'ocurrència\n"
+"començant per 1) usant «,» com a separador (p. ex. «4,5,6,1,2,3,7»).\n"
+"Si es deixa en blanc, no s'ordenarà.\n"
+"Per més detalls, vegeu la documentació."
+
+#: optiondialog.cpp:1019
+msgid "Merge version control history on merge start"
+msgstr "Fusiona l'historial del control de versions quan es comenci a fusionar"
+
+#: optiondialog.cpp:1021
+msgid "Run version control history automerge on merge start."
+msgstr ""
+"Executa la fusió automàtica de l'historial del control de versions quan es "
+"comenci a fusionar."
+
+#: optiondialog.cpp:1025
+msgid "Max number of history entries:"
+msgstr "Nombre màxim d'entrades d'historial:"
+
+#: optiondialog.cpp:1028
+msgid "Cut off after specified number. Use -1 for infinite number of entries."
+msgstr ""
+"Talla a partir d'un número especificat. Useu -1 per un nombre infinit "
+"d'entrades."
+
+#: optiondialog.cpp:1032
+msgid "Test your regular expressions"
+msgstr "Comproveu les vostres expressions regulars"
+
+#: optiondialog.cpp:1037
+msgid "Irrelevant merge command:"
+msgstr "Ordre de fusió irrellevant:"
+
+#: optiondialog.cpp:1041
+msgid ""
+"If specified this script is run after automerge\n"
+"when no other relevant changes were detected.\n"
+"Called with the parameters: filename1 filename2 filename3"
+msgstr ""
+"Si s'especifica, aquest script s'executarà després de la fusió automàtica\n"
+"quan no s'hagin detectats altres canvis apropiats.\n"
+"Cridat amb els paràmetres: nomdefitxer1 nomdefitxer2 nomdefitxer3"
+
+#: optiondialog.cpp:1047
+msgid "Auto save and quit on merge without conflicts"
+msgstr "En les fusions sense conflictes desa i surt automàticament"
+
+#: optiondialog.cpp:1050
+msgid ""
+"If KDiff3 was started for a file-merge from the command line and all\n"
+"conflicts are solvable without user interaction then automatically save and "
+"quit.\n"
+"(Similar to command line option \"--auto\".)"
+msgstr ""
+"Si el KDiff3 s'inicia des de la línia d'ordres per fusionar fitxers i tots\n"
+"els conflictes es poden resoldre sense la interacció de l'usuari, desa i "
+"surt.\n"
+"(Similar a l'opció de la línia de comandes «--auto»)."
+
+#: optiondialog.cpp:1061 optiondialog.cpp:1062
+msgid "Directory"
+msgstr "Directori"
+
+#: optiondialog.cpp:1075
+msgid "Recursive directories"
+msgstr "Directoris recursius"
+
+#: optiondialog.cpp:1077
+msgid "Whether to analyze subdirectories or not."
+msgstr "Si analitzar els subdirectoris o no"
+
+#: optiondialog.cpp:1079
+msgid "File pattern(s):"
+msgstr "Patró dels fitxers:"
+
+#: optiondialog.cpp:1084
+msgid ""
+"Pattern(s) of files to be analyzed. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Patró dels fitxers a analitzar.\n"
+"Comodins: «*» i «?»\n"
+"Es poden especificar diversos patrons separant-los amb: «;»"
+
+#: optiondialog.cpp:1090
+msgid "File-anti-pattern(s):"
+msgstr "Negatiu del patró dels fitxers:"
+
+#: optiondialog.cpp:1095
+msgid ""
+"Pattern(s) of files to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Patró dels fitxers a excloure de l'anàlisi. \n"
+"Comodins: «*» i «?»\n"
+"Es poden especificar diversos patrons separant-los amb: «;»"
+
+#: optiondialog.cpp:1101
+msgid "Dir-anti-pattern(s):"
+msgstr "Negatiu del patró dels directoris:"
+
+#: optiondialog.cpp:1106
+msgid ""
+"Pattern(s) of directories to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Patró dels directoris a excloure de l'anàlisi. \n"
+"Comodins: «*» i «?»\n"
+"Es poden especificar diversos patrons separant-los amb: «;»"
+
+#: optiondialog.cpp:1112
+msgid "Use .cvsignore"
+msgstr "Usa .cvsignore"
+
+#: optiondialog.cpp:1115
+msgid ""
+"Extends the antipattern to anything that would be ignored by CVS.\n"
+"Via local \".cvsignore\" files this can be directory specific."
+msgstr ""
+"Estén el negatiu del patró a tot el què ignora el CVS.\n"
+"Per mitjà dels fitxers «.cvsignore» locals això pot ser específic de cada "
+"directori."
+
+#: optiondialog.cpp:1120
+msgid "Find hidden files and directories"
+msgstr "Cerca fitxers i directoris ocults"
+
+#: optiondialog.cpp:1123
+msgid "Finds files and directories with the hidden attribute."
+msgstr "Cerca fitxers i directoris l'atribut ocult."
+
+#: optiondialog.cpp:1125
+msgid "Finds files and directories starting with '.'."
+msgstr "Cerca fitxers i directoris que comencin amb «.»."
+
+#: optiondialog.cpp:1129
+msgid "Follow file links"
+msgstr "Segueix els enllaços de fitxer"
+
+#: optiondialog.cpp:1132
+msgid ""
+"On: Compare the file the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+"Activat: compara el fitxer al què apunta l'enllaç.\n"
+"Desactivat: compara els enllaços."
+
+#: optiondialog.cpp:1137
+msgid "Follow directory links"
+msgstr "Segueix els enllaços de directori"
+
+#: optiondialog.cpp:1140
+msgid ""
+"On: Compare the directory the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+"Activat: compara el directori al què apunta l'enllaç.\n"
+"Desactivat: compara els enllaços."
+
+#: optiondialog.cpp:1156
+msgid "Case sensitive filename comparison"
+msgstr "Comparació de noms de fitxers sensible a majúscules i minúscules"
+
+#: optiondialog.cpp:1159
+msgid ""
+"The directory comparison will compare files or directories when their names "
+"match.\n"
+"Set this option if the case of the names must match. (Default for Windows is "
+"off, otherwise on.)"
+msgstr ""
+"La comparació de directoris compararà fitxers o directoris que coincideixin "
+"en nom.\n"
+"Activeu aquesta opció si la caixa dels noms ha de coincidir. (Per defecte en "
+"Windows està desactivat, en altres entorns està activat)."
+
+#: optiondialog.cpp:1163
+msgid "File Comparison Mode"
+msgstr "Mode de comparació de fitxers"
+
+#: optiondialog.cpp:1169
+msgid "Binary comparison"
+msgstr "Comparació binària"
+
+#: optiondialog.cpp:1170
+msgid "Binary comparison of each file. (Default)"
+msgstr "Comparació binària de cada fitxer. (Per defecte)"
+
+#: optiondialog.cpp:1173
+msgid "Full analysis"
+msgstr "Anàlisi complet"
+
+#: optiondialog.cpp:1174
+msgid ""
+"Do a full analysis and show statistics information in extra columns.\n"
+"(Slower than a binary comparison, much slower for binary files.)"
+msgstr ""
+"Fes un anàlisi complet i mostra informació estadística en columnes "
+"addicionals.\n"
+"(Més lent que una comparació binària, més lent encara per fitxers binaris)."
+
+#: optiondialog.cpp:1178
+msgid "Trust the size and modification date (unsafe)"
+msgstr "Confia en la mida i la data de modificació (insegur)"
+
+#: optiondialog.cpp:1179
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"Files with equal contents but different modification dates will appear as "
+"different.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"Assumeix que els fitxers són iguals si la data de modificació i la mida del "
+"fitxer coincideixen.\n"
+"Els fitxers amb continguts iguals però diferents dates de modificació es "
+"mostraran com si fossin diferents.\n"
+"Útil per directoris grans o xarxes lentes."
+
+#: optiondialog.cpp:1184
+msgid ""
+"Trust the size and date, but use binary comparison if date does not match "
+"(unsafe)"
+msgstr ""
+"Confia en la mida i data dels fitxers però compara binàriament si les dates "
+"no concorden (insegur)"
+
+#: optiondialog.cpp:1185
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"If the dates are not equal but the sizes are, use binary comparison.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"Assumeix que els fitxers són iguals si les dates de modificació i les mides "
+"dels fitxers coincideixen.\n"
+"Si les dates no són iguals però les mides si, usa la comparació binària.\n"
+"Útil per directoris grans o xarxes lentes."
+
+#: optiondialog.cpp:1190
+msgid "Trust the size (unsafe)"
+msgstr "Confia en la mida (insegur)"
+
+#: optiondialog.cpp:1191
+msgid ""
+"Assume that files are equal if their file lengths are equal.\n"
+"Useful for big directories or slow networks when the date is modified during "
+"download."
+msgstr ""
+"Assumeix que els fitxers són iguals si la mida dels fitxer coincideixen.\n"
+"Útil per directoris grans o xarxes lentes quan la data es modifica durant la "
+"descarrega."
+
+#: optiondialog.cpp:1199
+msgid "Synchronize directories"
+msgstr "Sincronitza directoris"
+
+#: optiondialog.cpp:1202
+msgid ""
+"Offers to store files in both directories so that\n"
+"both directories are the same afterwards.\n"
+"Works only when comparing two directories without specifying a destination."
+msgstr ""
+"Ofereix emmagatzemar fitxers als dos directoris de manera que\n"
+"després els dos directoris siguin iguals.\n"
+"Només funciona quan es comparen dos directoris sense especificar una "
+"destinació."
+
+#: optiondialog.cpp:1208
+msgid "White space differences considered equal"
+msgstr "Les diferències d'espais en blanc no es consideren"
+
+#: optiondialog.cpp:1211
+msgid ""
+"If files differ only by white space consider them equal.\n"
+"This is only active when full analysis is chosen."
+msgstr ""
+"Si els fitxers difereixen en només un espai en blanc considera'ls iguals.\n"
+"Això només és actiu quan s'escull l'anàlisi complet."
+
+#: optiondialog.cpp:1217
+msgid "Copy newer instead of merging (unsafe)"
+msgstr "Copia el més nou en comptes de fusionar-los (insegur)"
+
+#: optiondialog.cpp:1220
+msgid ""
+"Don't look inside, just take the newer file.\n"
+"(Use this only if you know what you are doing!)\n"
+"Only effective when comparing two directories."
+msgstr ""
+"No miris dins, simplement tria el fitxer més nou.\n"
+"(Useu això només si sabeu el què esteu fent).\n"
+"Només és efectiu quan es comparen dos directoris."
+
+#: optiondialog.cpp:1225
+msgid "Backup files (.orig)"
+msgstr "Fitxers de la còpia de seguretat (.orig)"
+
+#: optiondialog.cpp:1228
+msgid ""
+"If a file would be saved over an old file, then the old file\n"
+"will be renamed with a '.orig' extension instead of being deleted."
+msgstr ""
+"Si un fitxer es guarda sobre un fitxer més antic, llavors el fitxer antic\n"
+"es reanomenara amb una extensió «.orig» en comptes de ser esborrat."
+
+#: optiondialog.cpp:1301 optiondialog.cpp:1302
+msgid "Regional Settings"
+msgstr "Arranjament regional"
+
+#: optiondialog.cpp:1402
+msgid "Language (restart required)"
+msgstr "Idioma (cal reiniciar)"
+
+#: optiondialog.cpp:1445
+msgid ""
+"Choose the language of the GUI strings or \"Auto\".\n"
+"For a change of language to take place, quit and restart KDiff3."
+msgstr ""
+"Escull l'idioma de les cadenes de la IGU o «Automàtic».\n"
+"Per què el canvi d'idioma tingui efecte, sortiu i reinicieu el KDiff3."
+
+#: optiondialog.cpp:1463
+msgid "Use the same encoding for everything:"
+msgstr "Usa la mateixa codificació a tot arreu:"
+
+#: optiondialog.cpp:1466
+msgid ""
+"Enable this allows to change all encodings by changing the first only.\n"
+"Disable this if different individual settings are needed."
+msgstr ""
+"Habilitar això permet canviar totes les codificacions canviant només la "
+"primera.\n"
+"Deshabiliteu-ho si necessiteu arranjaments diferents per cada fitxer."
+
+#: optiondialog.cpp:1471
+msgid "Note: Local Encoding is "
+msgstr "Nota: la codificació local és "
+
+#: optiondialog.cpp:1475
+msgid "File Encoding for A:"
+msgstr "Codificació pel fitxer A:"
+
+#: optiondialog.cpp:1481
+msgid ""
+"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n"
+"If the file is not Unicode then the selected encoding will be used as "
+"fallback.\n"
+"(Unicode detection depends on the first bytes of a file.)"
+msgstr ""
+"Si està habilitat es detectaran les codificacions Unicode (UTF-16 o UTF-8).\n"
+"Si el fitxer no és Unicode s'usarà la codificació seleccionada com a "
+"alternativa\n"
+"(la detecció de l'Unicode depèn dels primers bytes dels fitxers)."
+
+#: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503
+msgid "Auto Detect Unicode"
+msgstr "Detecta automàticament l'Unicode"
+
+#: optiondialog.cpp:1490
+msgid "File Encoding for B:"
+msgstr "Codificació pel fitxer B:"
+
+#: optiondialog.cpp:1499
+msgid "File Encoding for C:"
+msgstr "Codificació pel fitxer C:"
+
+#: optiondialog.cpp:1508
+msgid "File Encoding for Merge Output and Saving:"
+msgstr "Codificació des fitxers de sortida d'una fusió i en desar:"
+
+#: optiondialog.cpp:1512
+msgid "Auto Select"
+msgstr "Selecciona automàticament"
+
+#: optiondialog.cpp:1515
+msgid ""
+"If enabled then the encoding from the input files is used.\n"
+"In ambiguous cases a dialog will ask the user to choose the encoding for "
+"saving."
+msgstr ""
+"Si està habilitat s'usarà la codificació dels fitxers d'entrada.\n"
+"En els casos ambigus un diàleg demanarà a l'usuari que esculli la "
+"codificació a usar per desar."
+
+#: optiondialog.cpp:1519
+msgid "File Encoding for Preprocessor Files:"
+msgstr "Codificació dels fitxers del preprocessador:"
+
+#: optiondialog.cpp:1530
+msgid "Right To Left Language"
+msgstr "Idioma de dreta a esquerra"
+
+#: optiondialog.cpp:1533
+msgid ""
+"Some languages are read from right to left.\n"
+"This setting will change the viewer and editor accordingly."
+msgstr ""
+"Alguns idiomes es llegeixen de dreta a esquerra.\n"
+"Aquest arranjament canviarà el visor i l'editor per adaptar-s'hi."
+
+#: optiondialog.cpp:1548
+msgid "Integration"
+msgstr "Integració"
+
+#: optiondialog.cpp:1549
+msgid "Integration Settings"
+msgstr "Arranjaments d'integració"
+
+#: optiondialog.cpp:1563
+msgid "Command line options to ignore:"
+msgstr "Opcions de la línia d'ordres a ignorar:"
+
+#: optiondialog.cpp:1568
+msgid ""
+"List of command line options that should be ignored when KDiff3 is used by "
+"other tools.\n"
+"Several values can be specified if separated via ';'\n"
+"This will suppress the \"Unknown option\" error."
+msgstr ""
+"Llista d'opcions de la línia d'ordres que s'ignoraran quan el KDiff3 sigui "
+"usat per altres eines.\n"
+"Es poden especificar varis valors separant-los amb «;».\n"
+"Això solucionarà l'error «Opció desconeguda»."
+
+#: optiondialog.cpp:1575
+msgid "Quit also via Escape key"
+msgstr "Surt també en prémer la tecla d'escapada"
+
+#: optiondialog.cpp:1578
+msgid ""
+"Fast method to exit.\n"
+"For those who are used to using the Escape key."
+msgstr ""
+"Mètode ràpid per sortir.\n"
+"Pels qui estigueu acostumats a usar la tecla d'escapada."
+
+#: optiondialog.cpp:1583
+msgid "Integrate with ClearCase"
+msgstr "Integra amb ClearCase"
+
+#: optiondialog.cpp:1586
+msgid ""
+"Integrate with Rational ClearCase from IBM.\n"
+"Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n"
+"(Only enabled when ClearCase \"bin\" directory is in the path.)"
+msgstr ""
+"Integra amb Rational ClearCase d'IBM.\n"
+"Modifica el fitxer «map» del subdirectori de ClearCase «lib/mgrs»\n"
+"(només s'activa quan directori «bin» de ClearCase estigui al camí)."
+
+#: optiondialog.cpp:1592
+msgid "Remove ClearCase Integration"
+msgstr "Elimina la integració amb ClearCase"
+
+#: optiondialog.cpp:1595
+msgid ""
+"Restore the old \"map\" file from before doing the ClearCase integration."
+msgstr ""
+"Restaura el fitxer «map» antic d'avanç de fer la integració de ClearCase."
+
+#: optiondialog.cpp:1680
+msgid "Incompatible Font"
+msgstr "Tipus de lletra incompatible"
+
+#: optiondialog.cpp:1681
+msgid "Continue at Own Risk"
+msgstr "Continua sota la meva responsabilitat"
+
+#: optiondialog.cpp:1682
+msgid "Select Another Font"
+msgstr "Tria un altre tipus de lletra"
+
+#: optiondialog.cpp:1717
+msgid "This resets all options. Not only those of the current topic."
+msgstr "Això restableix totes les opcions, no només les del tema actual."
+
+#: pdiff.cpp:260
+msgid "PreprocessorCmd: "
+msgstr "OrdreDePreprosessador: "
+
+#: pdiff.cpp:265
+msgid "The following option(s) you selected might change data:\n"
+msgstr "Les següents opcions que heu seleccionat poden canviar dades:\n"
+
+#: pdiff.cpp:266
+msgid ""
+"\n"
+"Most likely this is not wanted during a merge.\n"
+"Do you want to disable these settings or continue with these settings active?"
+msgstr ""
+"\n"
+"Probablement, durant una fusió no voldreu això.\n"
+"Voleu deshabilitar aquests arranjaments o continuar amb aquests arranjaments "
+"activats?"
+
+#: pdiff.cpp:268
+msgid "Option Unsafe for Merging"
+msgstr "Opció insegura per fusionar"
+
+#: pdiff.cpp:269
+msgid "Use These Options During Merge"
+msgstr "Usa aquestes opcions en fusionar"
+
+#: pdiff.cpp:270
+msgid "Disable Unsafe Options"
+msgstr "Deshabilita les opcions insegures"
+
+#: pdiff.cpp:300
+msgid "Loading A"
+msgstr "S'està carregant A"
+
+#: pdiff.cpp:304
+msgid "Loading B"
+msgstr "S'està carregant B"
+
+#: pdiff.cpp:321 pdiff.cpp:347
+msgid "Diff: A <-> B"
+msgstr "Dif: A <-> B"
+
+#: pdiff.cpp:327 pdiff.cpp:372
+msgid "Linediff: A <-> B"
+msgstr "Diferència de línia: A <-> B"
+
+#: pdiff.cpp:338
+msgid "Loading C"
+msgstr "S'està carregant C"
+
+#: pdiff.cpp:350
+msgid "Diff: B <-> C"
+msgstr "Dif: B <-> C"
+
+#: pdiff.cpp:353
+msgid "Diff: A <-> C"
+msgstr "Dif: A <-> C"
+
+#: pdiff.cpp:375
+msgid "Linediff: B <-> C"
+msgstr "Diferència de línia: B <-> C"
+
+#: pdiff.cpp:378
+msgid "Linediff: A <-> C"
+msgstr "Diferència de línia: A <-> C"
+
+#: pdiff.cpp:534
+msgid "All input files contain the same text, but are not binary equal."
+msgstr ""
+"Tots els fitxers d'entrada contenen el mateix text però no són binàriament "
+"iguals."
+
+#: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541
+#, kde-format
+msgid "Files %1 and %2 have equal text, but are not binary equal. \n"
+msgstr ""
+"Els fitxers %1 i %2 tenen el mateix text, però binàriament no són iguals. \n"
+
+#: pdiff.cpp:551
+msgid ""
+"Some inputfiles don't seem to be pure textfiles.\n"
+"Note that the KDiff3-merge was not meant for binary data.\n"
+"Continue at your own risk."
+msgstr ""
+"Alguns fitxers d'entrada no semblen fitxers de text pur.\n"
+"Noteu que la fusió del KDiff3 no està pensada per dades binàries.\n"
+"Continueu sota la vostra responsabilitat."
+
+#: pdiff.cpp:566
+#, kde-format
+msgid ""
+"Some input characters could not be converted to valid unicode.\n"
+"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n"
+"Don't save the result if unsure. Continue at your own risk.\n"
+"Affected input files are in %1."
+msgstr ""
+"Alguns caràcters d'entrada no es poden convertir a caràcters unicode "
+"vàlids.\n"
+"Deveu estar usant un còdec equivocat (ex. UTF-8 per fitxers no UTF-8).\n"
+"No deseu el resultat si no n'esteu segurs. Continueu sota la vostra "
+"responsabilitat.\n"
+"Els fitxers d'entrada afectats són a %1."
+
+#: pdiff.cpp:1080
+msgid "Abort"
+msgstr "Interromp"
+
+#: pdiff.cpp:1087 pdiff.cpp:1175
+msgid "Opening files..."
+msgstr "S'estan obrint els fitxers..."
+
+#: pdiff.cpp:1152 pdiff.cpp:1223
+msgid "File open error"
+msgstr "S'ha produït un error en obrir el fitxer"
+
+#: pdiff.cpp:1255
+msgid "Cutting selection..."
+msgstr "S'està retallant la selecció..."
+
+#: pdiff.cpp:1276
+msgid "Copying selection to clipboard..."
+msgstr "S'està copiant la selecció al porta-retalls..."
+
+#: pdiff.cpp:1292
+msgid "Inserting clipboard contents..."
+msgstr "S'està inserint el contingut del porta-retalls..."
+
+#: pdiff.cpp:1814
+msgid "Save && Continue"
+msgstr "Desa i continua"
+
+#: pdiff.cpp:1815
+msgid "Continue Without Saving"
+msgstr "Continua sense desar"
+
+#: pdiff.cpp:2018
+msgid "Search complete."
+msgstr "Cerca completa."
+
+#: pdiff.cpp:2018
+msgid "Search Complete"
+msgstr "Cerca completa"
+
+#: pdiff.cpp:2252
+msgid "Nothing is selected in either diff input window."
+msgstr "No hi ha res seleccionat en cap de les finestres de diferències."
+
+#: pdiff.cpp:2252
+msgid "Error while adding manual diff range"
+msgstr "Error en afegir un rang manual de diferències"
+
+#: kdiff3_shell.cpp:76
+msgid ""
+"Could not initialize the KDiff3 part.\n"
+"This usually happens due to an installation problem. Please read the README-"
+"file in the source package for details."
+msgstr ""
+"No s'ha pogut inicialitzar el component KDiff.\n"
+"Això sol ser degut a problemes d'instal·lació. Per més detalls, llegiu el "
+"fitxer README del paquet de codi."
+
+#: rc.cpp:1
+msgctxt "NAME OF TRANSLATORS"
+msgid "Your names"
+msgstr "Joan Maspons Ventura"
+
+#: rc.cpp:2
+msgctxt "EMAIL OF TRANSLATORS"
+msgid "Your emails"
+msgstr "joanmaspons@gmail.com"
+
+#. i18n: file: kdiff3_part.rc:4
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:5
+msgid "&KDiff3"
+msgstr "&KDiff3"
+
+#. i18n: file: kdiff3_part.rc:13
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:8
+msgid "Configure KDiff3"
+msgstr "Configura el KDiff3"
+
+#. i18n: file: kdiff3_part.rc:16
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:11
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#. i18n: file: kdiff3_shell.rc:106
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:38
+msgid "Main Toolbar"
+msgstr "Barra d'eines principal"
diff --git a/po/ca/kdiff3fileitemactionplugin.po b/po/ca/kdiff3fileitemactionplugin.po
new file mode 100644 (file)
index 0000000..6ed8692
--- /dev/null
@@ -0,0 +1,98 @@
+# Translation of kdiff3fileitemactionplugin.po to Catalan
+# Copyright (C) 2011 This_file_is_part_of_KDE
+# This file is distributed under the license LGPL version 2 or later.
+#
+# Joan Maspons <joanmaspons@gmail.com>, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-07-29 00:17+0200\n"
+"Last-Translator: Joan Maspons <joanmaspons@gmail.com>\n"
+"Language-Team: Catalan <kde-i18n-ca@kde.org>\n"
+"Language: ca\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.2\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: kdiff3fileitemaction.cpp:94
+msgid "KDiff3 ..."
+msgstr "KDiff3 ..."
+
+#: kdiff3fileitemaction.cpp:125
+#, kde-format
+msgid "Compare with %1"
+msgstr "Compara amb %1"
+
+#: kdiff3fileitemaction.cpp:131
+#, kde-format
+msgid "Merge with %1"
+msgstr "Fusiona amb %1"
+
+#: kdiff3fileitemaction.cpp:137
+#, kde-format
+msgid "Save '%1' for later"
+msgstr "Desa «%1» per després"
+
+#: kdiff3fileitemaction.cpp:143
+msgid "3-way merge with base"
+msgstr "Fusió a tres bandes amb base"
+
+#: kdiff3fileitemaction.cpp:150
+msgid "Compare with ..."
+msgstr "Compara amb ..."
+
+#: kdiff3fileitemaction.cpp:162
+msgid "Clear list"
+msgstr "Neteja la llista"
+
+#: kdiff3fileitemaction.cpp:170
+msgid "Compare"
+msgstr "Compara"
+
+#: kdiff3fileitemaction.cpp:176
+msgid "3 way comparison"
+msgstr "Comparació a 3 bandes"
+
+#: kdiff3fileitemaction.cpp:180
+msgid "About KDiff3 menu plugin ..."
+msgstr "Quant al connector del menú del KDiff3 ..."
+
+#: kdiff3fileitemaction.cpp:284
+msgid ""
+"KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+"Connector d'accions de fitxer del KDiff3: Copyright (C) 2011 Joachim Eibl\n"
+"Lloc web del KDiff3: http://kdiff3.sourceforge.net\n"
+"\n"
+
+#: kdiff3fileitemaction.cpp:286
+msgid ""
+"Using the contextmenu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else \"Save\" the first file for later. It "
+"will appear in the \"Compare With ...\" submenu. Then use \"Compare With\" "
+"on second file.\n"
+"For a 3-way merge first \"Save\" the base file, then the branch to merge and "
+"choose \"3-way merge with base\" on the other branch which will be used as "
+"destination.\n"
+"Same also applies to directory comparison and merge."
+msgstr ""
+"Ús de l'extensió de menú contextual:\n"
+"Per una comparació simple de dos fitxers seleccionats escolliu «Compara».\n"
+"Si l'altre fitxer és en algun altra lloc, «Desa» el primer fitxer per "
+"després. Apareixerà al submenú «Compara amb ...». Després useu «Compara amb» "
+"al segon fitxer.\n"
+"Per una fusió a tres bandes, primer «Desa» el fitxer base, després la branca "
+"a fusionar i després «Fusió a tres bandes amb base» a l'altra branca que "
+"s'usarà com a destinació.\n"
+"El mateix també s'aplica a la comparació i fusió de directoris."
+
+#: kdiff3fileitemaction.cpp:294
+msgid "About KDiff3 File Item Action Plugin"
+msgstr "Quant al connector d'accions de fitxer del KDiff3"
diff --git a/po/ca/kdiff3plugin.po b/po/ca/kdiff3plugin.po
new file mode 100644 (file)
index 0000000..42edf20
--- /dev/null
@@ -0,0 +1,99 @@
+# Translation of kdiff3plugin.po to Catalan
+# Copyright (C) 2011 This_file_is_part_of_KDE
+# This file is distributed under the license LGPL version 2 or later
+#
+# Joan Maspons <joanmaspons@gmail.com>, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-07-26 22:06+0200\n"
+"Last-Translator: Joan Maspons <joanmaspons@gmail.com>\n"
+"Language-Team: Catalan <kde-i18n-ca@kde.org>\n"
+"Language: ca\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.2\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Accelerator-Marker: &\n"
+
+#: kdiff3plugin.cpp:107
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#: kdiff3plugin.cpp:114
+#, kde-format
+msgid "Compare with %1"
+msgstr "Compara amb %1"
+
+#: kdiff3plugin.cpp:120
+#, kde-format
+msgid "Merge with %1"
+msgstr "Fusiona amb %1"
+
+#: kdiff3plugin.cpp:126
+#, kde-format
+msgid "Save '%1' for later"
+msgstr "Desa «%1» per després"
+
+#: kdiff3plugin.cpp:132
+msgid "3-way merge with base"
+msgstr "Fusió a tres bandes amb base"
+
+#: kdiff3plugin.cpp:139
+msgid "Compare with ..."
+msgstr "Compara amb..."
+
+#: kdiff3plugin.cpp:149
+msgid "Clear list"
+msgstr "Neteja la llista"
+
+#: kdiff3plugin.cpp:157
+msgid "Compare"
+msgstr "Compara"
+
+#: kdiff3plugin.cpp:163
+msgid "3 way comparison"
+msgstr "Comparació a 3 bandes"
+
+#: kdiff3plugin.cpp:167
+msgid "About KDiff3 menu plugin ..."
+msgstr "Quant al connector del menú del KDiff3..."
+
+#: kdiff3plugin.cpp:269
+msgid ""
+"KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+"Connector del menú del KDiff3: Copyright (C) 2008 Joachim Eibl\n"
+"Lloc web del KDiff3: http://kdiff3.sourceforge.net\n"
+"\n"
+
+#: kdiff3plugin.cpp:271
+msgid ""
+"Using the context menu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else, \"Save\" the first file for later, and "
+"it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With"
+"\" on the second file.\n"
+"For a 3-way merge first, \"Save\" the base file, then the branch to merge, "
+"and then \"3-way merge with base\" on the other branch which will be used as "
+"the destination.\n"
+"The same also applies to directory comparison and merge."
+msgstr ""
+"Ús de l'extensió de menú contextual:\n"
+"Per una comparació simple de dos fitxers seleccionats escolliu «Compara».\n"
+"Si l'altre fitxer és en algun altra lloc, «Desa» el primer fitxer per "
+"després i apareixerà al submenú «Compara amb...». Després, useu «Compara "
+"amb» al segon fitxer.\n"
+"Per una fusió a tres bandes, primer «Desa» el fitxer base, després la branca "
+"a fusionar, i després «Fusió a tres bandes» a l'altra branca que s'usarà com "
+"a destinació.\n"
+"El mateix també s'aplica a la comparació i fusió de directoris."
+
+#: kdiff3plugin.cpp:279
+msgid "About KDiff3 Menu Plugin"
+msgstr "Quant al connector del menú del KDiff3"
diff --git a/po/ca@valencia/CMakeLists.txt b/po/ca@valencia/CMakeLists.txt
new file mode 100644 (file)
index 0000000..756e315
--- /dev/null
@@ -0,0 +1,2 @@
+file(GLOB _po_files *.po)
+GETTEXT_PROCESS_PO_FILES(ca@valencia ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
diff --git a/po/ca@valencia/kdiff3.po b/po/ca@valencia/kdiff3.po
new file mode 100644 (file)
index 0000000..0f579e9
--- /dev/null
@@ -0,0 +1,3233 @@
+# Translation of kdiff3.po to Catalan
+# Copyright (C) 2011 This_file_is_part_of_KDE
+# This file is distributed under the license LGPL version 2 or later
+#
+# Joan Maspons <joanmaspons@gmail.com>, 2011.
+# Josep Ma. Ferrer <txemaq@gmail.com>, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-03-07 01:12+0100\n"
+"Last-Translator: Joan Maspons <joanmaspons@gmail.com>\n"
+"Language-Team: Catalan <kde-i18n-ca@kde.org>\n"
+"Language: ca\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.2\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Accelerator-Marker: &\n"
+
+#: kreplacements/kreplacements.h:105
+msgid "Continue"
+msgstr "Continua"
+
+#: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158
+#: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512
+msgid "Cancel"
+msgstr "Cancel·la"
+
+#: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631
+msgid "Quit"
+msgstr "Ix"
+
+#: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339
+msgid "Ok"
+msgstr "D'acord"
+
+#: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715
+msgid "Help"
+msgstr "Ajuda"
+
+#: kreplacements/kreplacements.cpp:185
+msgid "Defaults"
+msgstr "Valors per defecte"
+
+#. i18n: file: kdiff3_shell.rc:4
+#. i18n: ectx: Menu (file)
+#: kreplacements/kreplacements.cpp:296 rc.cpp:14
+msgid "&File"
+msgstr "&Fitxer"
+
+#: kreplacements/kreplacements.cpp:297
+msgid "&Edit"
+msgstr "&Edita"
+
+#. i18n: file: kdiff3_shell.rc:7
+#. i18n: ectx: Menu (directory)
+#: kreplacements/kreplacements.cpp:298 rc.cpp:17
+msgid "&Directory"
+msgstr "&Directori"
+
+#. i18n: file: kdiff3_shell.rc:50
+#. i18n: ectx: Menu (movement)
+#: kreplacements/kreplacements.cpp:301 rc.cpp:26
+msgid "&Movement"
+msgstr "&Moviment"
+
+#. i18n: file: kdiff3_shell.rc:61
+#. i18n: ectx: Menu (diff)
+#: kreplacements/kreplacements.cpp:302 rc.cpp:29
+msgid "D&iffview"
+msgstr "Vista de d&iferències"
+
+#. i18n: file: kdiff3_shell.rc:73
+#. i18n: ectx: Menu (merge)
+#: kreplacements/kreplacements.cpp:303 rc.cpp:32
+msgid "&Merge"
+msgstr "&Fusió"
+
+#. i18n: file: kdiff3_shell.rc:95
+#. i18n: ectx: Menu (window)
+#: kreplacements/kreplacements.cpp:304 rc.cpp:35
+msgid "&Window"
+msgstr "&Finestra"
+
+#: kreplacements/kreplacements.cpp:305
+msgid "&Settings"
+msgstr "A&rranjament"
+
+#: kreplacements/kreplacements.cpp:306
+msgid "&Help"
+msgstr "A&juda"
+
+#: kreplacements/kreplacements.cpp:353
+msgid "&About"
+msgstr "&Quant a"
+
+#: kreplacements/kreplacements.cpp:369
+msgid "A&uthor"
+msgstr "A&utor"
+
+#: kreplacements/kreplacements.cpp:383
+msgid "&Thanks To"
+msgstr "&Gràcies a"
+
+#. i18n: file: kdiff3_shell.rc:30
+#. i18n: ectx: Menu (dir_current_merge_menu)
+#: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497
+#: rc.cpp:20
+msgid "Current Item Merge Operation"
+msgstr "Operació de fusió de l'element actual"
+
+#. i18n: file: kdiff3_shell.rc:38
+#. i18n: ectx: Menu (dir_current_sync_menu)
+#: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498
+#: rc.cpp:23
+msgid "Current Item Sync Operation"
+msgstr "Operació de sincronització de l'element actual"
+
+#: kreplacements/kreplacements.cpp:597
+msgid "Open"
+msgstr "Obri"
+
+#: kreplacements/kreplacements.cpp:606
+msgid "Save"
+msgstr "Alça"
+
+#: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720
+msgid "Save As..."
+msgstr "Alça com a..."
+
+#: kreplacements/kreplacements.cpp:623
+msgid "Print..."
+msgstr "Imprimeix..."
+
+#: kreplacements/kreplacements.cpp:639
+msgid "Cut"
+msgstr "Talla"
+
+#: kreplacements/kreplacements.cpp:647
+msgid "Copy"
+msgstr "Copia"
+
+#: kreplacements/kreplacements.cpp:655
+msgid "Paste"
+msgstr "Enganxa"
+
+#: kreplacements/kreplacements.cpp:663
+msgid "Select All"
+msgstr "Selecciona-ho tot"
+
+#: kreplacements/kreplacements.cpp:671
+msgid "Show Toolbar"
+msgstr "Mostra barra d'eines"
+
+#: kreplacements/kreplacements.cpp:679
+msgid "Show &Status Bar"
+msgstr "&Mostra la barra d'estat"
+
+#: kreplacements/kreplacements.cpp:687
+#, kde-format
+msgid "&Configure %1..."
+msgstr "&Configura %1..."
+
+#: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707
+msgid "About"
+msgstr "Quant a"
+
+#: kreplacements/kreplacements.cpp:722
+msgid "Find"
+msgstr "Cerca"
+
+#: kreplacements/kreplacements.cpp:730
+msgid "Find Next"
+msgstr "Cerca el següent"
+
+#: kreplacements/kreplacements.cpp:750
+msgid "Select Font"
+msgstr "Tria el tipus de lletra"
+
+#: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676
+msgid ""
+"You selected a variable width font.\n"
+"\n"
+"Because this program doesn't handle variable width fonts\n"
+"correctly, you might experience problems while editing.\n"
+"\n"
+"Do you want to continue or do you want to select another font."
+msgstr ""
+"Heu seleccionat un tipus de lletra d'amplada variable.\n"
+"\n"
+"Com que este programa no usa correctament tipus de lletra\n"
+"d'amplada variable, podríeu experimentar problemes mentre editeu.\n"
+"\n"
+"Voleu continuar o seleccionar un altre tipus de lletra?"
+
+#: kreplacements/kreplacements.cpp:792
+msgid "Incompatible font."
+msgstr "Tipus de lletra incompatible."
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Continue at my own risk"
+msgstr "Continua sota la meua responsabilitat"
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Select another font"
+msgstr "Tria un altre tipus de lletra"
+
+#: kreplacements/kreplacements.cpp:1134
+msgid "For more documentation, see the help-menu or the subdirectory doc."
+msgstr "Per més documentació, vegeu el menú «Ajuda» o el subdirectori doc."
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "KDiff3-Usage"
+msgstr "Ús del KDiff3"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Ignore"
+msgstr "Ignora"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Exit"
+msgstr "Ix"
+
+#: diff.cpp:251
+msgid "Writing clipboard data to temp file failed."
+msgstr "Ha fallat l'escriptura de dades del porta-retalls al fitxer temporal."
+
+#: diff.cpp:255
+msgid "From Clipboard"
+msgstr "Des del porta-retalls"
+
+#: diff.cpp:471
+msgid "Expecting space after closing quotation mark."
+msgstr ""
+
+#: diff.cpp:474
+msgid "Not matching quotation marks."
+msgstr ""
+
+#: diff.cpp:496
+msgid "Unexpected quotation mark within argument."
+msgstr ""
+
+#: diff.cpp:503
+msgid "No program specified."
+msgstr ""
+
+#: diff.cpp:605
+#, kde-format
+msgid ""
+"Preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The preprocessing command will be disabled now."
+msgstr ""
+"Pot ser que el preprocessament haja fallat. Comproveu esta orde:\n"
+"\n"
+"  %1\n"
+"\n"
+"L'orde de preprocessament es deshabilitarà ara."
+
+#: diff.cpp:653
+#, kde-format
+msgid ""
+"The line-matching-preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The line-matching-preprocessing command will be disabled now."
+msgstr ""
+"Pot ser que el preprocessament de l'encaix de línies haja fallat. Comproveu "
+"esta orde:\n"
+"\n"
+"  %1\n"
+"\n"
+"Ara es deshabilitarà l'orde de preprocessament d'encaix de línies."
+
+#: diff.cpp:1776 diff.cpp:1790
+msgid ""
+"Data loss error:\n"
+"If it is reproducible please contact the author.\n"
+msgstr ""
+"Error de pèrdua de dades:\n"
+"Per favor, si és replicable contacteu amb l'autor.\n"
+
+#: diff.cpp:1778 diff.cpp:1792
+msgid "Severe Internal Error"
+msgstr "Error intern sever"
+
+#: directorymergewindow.cpp:136
+msgid "Mix of links and normal files."
+msgstr "Barreja d'enllaços i fitxers normals."
+
+#: directorymergewindow.cpp:143
+msgid "Link: "
+msgstr "Enllaç: "
+
+#: directorymergewindow.cpp:151
+msgid "Size. "
+msgstr "Mida. "
+
+#: directorymergewindow.cpp:164 directorymergewindow.cpp:174
+msgid "Date & Size: "
+msgstr "Data i mida: "
+
+#: directorymergewindow.cpp:184 directorymergewindow.cpp:190
+#, kde-format
+msgid "Creating temp copy of %1 failed."
+msgstr "Ha fallat la creació de la copia temporal de %1."
+
+#: directorymergewindow.cpp:201 directorymergewindow.cpp:209
+#, kde-format
+msgid "Opening %1 failed."
+msgstr "Ha fallat l'obertura de %1."
+
+#: directorymergewindow.cpp:213
+msgid "Comparing file..."
+msgstr "S'està comparant el fitxer..."
+
+#: directorymergewindow.cpp:223 directorymergewindow.cpp:229
+#, kde-format
+msgid "Error reading from %1"
+msgstr "Error llegint des de %1"
+
+#: directorymergewindow.cpp:358
+msgid "Name"
+msgstr "Nom"
+
+#: directorymergewindow.cpp:358
+msgid "Operation"
+msgstr "Operació"
+
+#: directorymergewindow.cpp:358
+msgid "Status"
+msgstr "Estat"
+
+#: directorymergewindow.cpp:359
+msgid "Unsolved"
+msgstr "No resolt"
+
+#: directorymergewindow.cpp:359
+msgid "Solved"
+msgstr "Resolt"
+
+#: directorymergewindow.cpp:359
+msgid "Nonwhite"
+msgstr "No blanc"
+
+#: directorymergewindow.cpp:359
+msgid "White"
+msgstr "Blanc"
+
+#: directorymergewindow.cpp:388
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort "
+"the merge and rescan the directory?"
+msgstr ""
+"Actualment esteu fent una fusió de directoris. Segur que voleu interrompre "
+"la fusió i tornar a explorar el directori?"
+
+#: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655
+#: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823
+msgid "Warning"
+msgstr "Atenció"
+
+#: directorymergewindow.cpp:390 directorymergewindow.cpp:2965
+msgid "Rescan"
+msgstr "Torna a explorar"
+
+#: directorymergewindow.cpp:391 pdiff.cpp:1081
+msgid "Continue Merging"
+msgstr "Continua fusionant"
+
+#: directorymergewindow.cpp:548
+msgid "Opening of directories failed:"
+msgstr "Ha fallat l'obertura dels directoris:"
+
+#: directorymergewindow.cpp:551
+#, kde-format
+msgid "Dir A \"%1\" does not exist or is not a directory.\n"
+msgstr "El directori A «%1» no existeix o no és un directori.\n"
+
+#: directorymergewindow.cpp:554
+#, kde-format
+msgid "Dir B \"%1\" does not exist or is not a directory.\n"
+msgstr "El directori B «%1» no existeix o no és un directori.\n"
+
+#: directorymergewindow.cpp:557
+#, kde-format
+msgid "Dir C \"%1\" does not exist or is not a directory.\n"
+msgstr "El directori C «%1» no existeix o no és un directori.\n"
+
+#: directorymergewindow.cpp:559
+msgid "Directory Open Error"
+msgstr "Error en obrir el directori"
+
+#: directorymergewindow.cpp:567
+msgid ""
+"The destination directory must not be the same as A or B when three "
+"directories are merged.\n"
+"Check again before continuing."
+msgstr ""
+"Quan es fusionen tres directoris, el directori de destí ha de ser diferent "
+"que l'A o el B.\n"
+"Torneu-ho a comprovar avanç de continuar."
+
+#: directorymergewindow.cpp:569
+msgid "Parameter Warning"
+msgstr "Alerta de paràmetres"
+
+#: directorymergewindow.cpp:574
+msgid "Scanning directories..."
+msgstr "S'estan explorant el directoris..."
+
+#: directorymergewindow.cpp:607
+msgid "Reading Directory A"
+msgstr "S'està llegint el directori A"
+
+#: directorymergewindow.cpp:629
+msgid "Reading Directory B"
+msgstr "S'està llegint el directori B"
+
+#: directorymergewindow.cpp:651
+msgid "Reading Directory C"
+msgstr "S'està llegint el directori C"
+
+#: directorymergewindow.cpp:677
+msgid "Some subdirectories were not readable in"
+msgstr "Alguns subdirectoris no eren llegibles a"
+
+#: directorymergewindow.cpp:682
+msgid "Check the permissions of the subdirectories."
+msgstr "Comproveu els permisos dels subdirectoris."
+
+#: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737
+#: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233
+#: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328
+msgid "Ready."
+msgstr "Preparat."
+
+#: directorymergewindow.cpp:735
+msgid "Directory Comparison Status"
+msgstr "Estat de la comparació de carpetes"
+
+#: directorymergewindow.cpp:736
+msgid "Number of subdirectories:"
+msgstr "Nombre de subdirectoris:"
+
+#: directorymergewindow.cpp:737
+msgid "Number of equal files:"
+msgstr "Nombre de fitxers iguals:"
+
+#: directorymergewindow.cpp:738
+msgid "Number of different files:"
+msgstr "Nombre de fitxers diferents:"
+
+#: directorymergewindow.cpp:741
+msgid "Number of manual merges:"
+msgstr "Nombre de fusions manuals:"
+
+#: directorymergewindow.cpp:912
+msgid "This affects all merge operations."
+msgstr "Això afecta totes les operacions de fusió."
+
+#: directorymergewindow.cpp:913
+msgid "Changing All Merge Operations"
+msgstr "S'estan canviant totes les operacions de fusionat"
+
+#: directorymergewindow.cpp:1312
+msgid "Processing "
+msgstr "S'està processant "
+
+#: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742
+msgid "To do."
+msgstr "Pendent."
+
+#: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996
+msgid "Copy A to B"
+msgstr "Copia A a B"
+
+#: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997
+msgid "Copy B to A"
+msgstr "Copia B a A"
+
+#: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998
+msgid "Delete A"
+msgstr "Esborra A"
+
+#: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999
+msgid "Delete B"
+msgstr "Esborra B"
+
+#: directorymergewindow.cpp:1814
+msgid "Delete A & B"
+msgstr "Esborra A i B"
+
+#: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001
+msgid "Merge to A"
+msgstr "Fusiona a A"
+
+#: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002
+msgid "Merge to B"
+msgstr "Fusiona a B"
+
+#: directorymergewindow.cpp:1817
+msgid "Merge to A & B"
+msgstr "Fusiona a A i B"
+
+#: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993
+msgid "Delete (if exists)"
+msgstr "Esborra (si existeix)"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+#: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869
+msgid "Merge"
+msgstr "Fusiona"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+msgid "Merge (manual)"
+msgstr "Fusiona (manualment)"
+
+#: directorymergewindow.cpp:1824
+msgid "Error: Conflicting File Types"
+msgstr "Error: tipus de fitxer en conflicte"
+
+#: directorymergewindow.cpp:1825
+msgid "Error: Changed and Deleted"
+msgstr "Error: canviat i esborrat"
+
+#: directorymergewindow.cpp:1826
+msgid "Error: Dates are equal but files are not."
+msgstr "Error: les dates són iguals però els fitxers no."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906
+msgid "This operation is currently not possible."
+msgstr "Actualment esta opció no és possible."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174
+msgid "Operation Not Possible"
+msgstr "Operació no possible"
+
+#: directorymergewindow.cpp:1945
+msgid ""
+"This should never happen: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"If you know how to reproduce this, please contact the program author."
+msgstr ""
+"Això no hauria de passar mai: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"Per favor, si sabeu com replicar això contacteu amb l'autor del programa."
+
+#: directorymergewindow.cpp:1945
+msgid "Program Error"
+msgstr "Error del programa"
+
+#: directorymergewindow.cpp:1956
+msgid "An error occurred while copying.\n"
+msgstr "Hi ha hagut un error en copiar.\n"
+
+#: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025
+#: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105
+#: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123
+#: directorymergewindow.cpp:2374
+msgid "Error"
+msgstr "Error"
+
+#: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375
+msgid "Merge Error"
+msgstr "Error de fusionat"
+
+#: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380
+msgid "Error."
+msgstr "Error."
+
+#: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272
+#: directorymergewindow.cpp:2312
+msgid "Done."
+msgstr "Fet."
+
+#: directorymergewindow.cpp:1990
+msgid "Not saved."
+msgstr "No alçat."
+
+#: directorymergewindow.cpp:2025
+msgid "Unknown merge operation. (This must never happen!)"
+msgstr "Operació de fusionat desconeguda. (Això no hauria de passar mai!)"
+
+#: directorymergewindow.cpp:2057
+msgid "Unknown merge operation."
+msgstr "Operació de fusionat desconeguda."
+
+#: directorymergewindow.cpp:2072
+msgid ""
+"The merge is about to begin.\n"
+"\n"
+"Choose \"Do it\" if you have read the instructions and know what you are "
+"doing.\n"
+"Choosing \"Simulate it\" will tell you what would happen.\n"
+"\n"
+"Be aware that this program still has beta status and there is NO WARRANTY "
+"whatsoever! Make backups of your vital data!"
+msgstr ""
+"La fusió està a punt de començar.\n"
+"\n"
+"Escolliu «Fes-ho» si heu llegit les instruccions i sabeu que esteu fent.\n"
+"Si escolliu «Simula-ho» veureu què passaria.\n"
+"\n"
+"Sigueu conscient que este programa encara està en fase de proves i no hi ha "
+"CAP GARANTIA! Feu copies de seguretat de les vostres dades vitals!"
+
+#: directorymergewindow.cpp:2077
+msgid "Starting Merge"
+msgstr "S'està iniciant la fusió"
+
+#: directorymergewindow.cpp:2078
+msgid "Do It"
+msgstr "Fes-ho"
+
+#: directorymergewindow.cpp:2079
+msgid "Simulate It"
+msgstr "Simula-ho"
+
+#: directorymergewindow.cpp:2105
+msgid ""
+"The highlighted item has a different type in the different directories. "
+"Select what to do."
+msgstr ""
+"L'element ressaltat té un tipus diferent als diferents directoris. "
+"Seleccioneu què fer."
+
+#: directorymergewindow.cpp:2114
+msgid ""
+"The modification dates of the file are equal but the files are not. Select "
+"what to do."
+msgstr ""
+"Les dates de modificació dels fitxers són iguals però els fitxers no ho són. "
+"Seleccioneu què fer."
+
+#: directorymergewindow.cpp:2123
+msgid ""
+"The highlighted item was changed in one directory and deleted in the other. "
+"Select what to do."
+msgstr ""
+"L'element ressaltat va ser canviat en un directori i esborrat a l'altre. "
+"Seleccioneu què fer."
+
+#: directorymergewindow.cpp:2174
+msgid ""
+"This operation is currently not possible because directory merge is "
+"currently running."
+msgstr ""
+"Actualment esta operació no és possible perquè s'està a mig procés de fusió."
+
+#: directorymergewindow.cpp:2234
+msgid ""
+"There was an error in the last step.\n"
+"Do you want to continue with the item that caused the error or do you want "
+"to skip this item?"
+msgstr ""
+"Hi ha hagut un error en l'últim pas.\n"
+"Voleu continuar amb l'element que ha causat l'error o voleu ometre'l?"
+
+#: directorymergewindow.cpp:2236
+msgid "Continue merge after an error"
+msgstr "Després d'un error continua fusionant"
+
+#: directorymergewindow.cpp:2237
+msgid "Continue With Last Item"
+msgstr "Continua amb l'últim element"
+
+#: directorymergewindow.cpp:2238
+msgid "Skip Item"
+msgstr "Omet l'element"
+
+#: directorymergewindow.cpp:2272
+msgid "Skipped."
+msgstr "S'ha omés."
+
+#: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493
+msgid "In progress..."
+msgstr "En curs..."
+
+#: directorymergewindow.cpp:2327
+msgid "Merge operation complete."
+msgstr "Operació de fusionat completada."
+
+#: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330
+msgid "Merge Complete"
+msgstr "Fusió completada"
+
+#: directorymergewindow.cpp:2340
+msgid ""
+"Simulated merge complete: Check if you agree with the proposed operations."
+msgstr ""
+"Simulació de fusió completada: comproveu si esteu d'acord amb les operacions "
+"proposades."
+
+#: directorymergewindow.cpp:2374
+msgid "An error occurred. Press OK to see detailed information.\n"
+msgstr "Hi ha hagut un error. Per veure informació detallada premeu d'acord.\n"
+
+#: directorymergewindow.cpp:2406
+#, kde-format
+msgid "Error: While deleting %1: Creating backup failed."
+msgstr "Error: en esborrar %1: ha fallat en crear una còpia de seguretat."
+
+#: directorymergewindow.cpp:2413
+#, kde-format
+msgid "delete directory recursively( %1 )"
+msgstr "esborra el directori recursivament( %1 )"
+
+#: directorymergewindow.cpp:2415
+#, kde-format
+msgid "delete( %1 )"
+msgstr "esborra( %1 )"
+
+#: directorymergewindow.cpp:2430
+msgid "Error: delete dir operation failed while trying to read the directory."
+msgstr ""
+"Error: l'operació d'esborrar el directori ha fallat en intentar llegir-lo."
+
+#: directorymergewindow.cpp:2449
+#, kde-format
+msgid "Error: rmdir( %1 ) operation failed."
+msgstr "Error: ha fallat l'operació d'eliminar carpeta ( %1 )."
+
+#: directorymergewindow.cpp:2459
+msgid "Error: delete operation failed."
+msgstr "Error: ha fallat l'operació d'esborrat."
+
+#: directorymergewindow.cpp:2485
+#, kde-format
+msgid "manual merge( %1, %2, %3 -> %4)"
+msgstr "fusió manual ( %1, %2, %3 -> %4)"
+
+#: directorymergewindow.cpp:2488
+msgid ""
+"     Note: After a manual merge the user should continue by pressing F7."
+msgstr ""
+"     Nota: avanç de fusionar manualment, l'usuari ha de continuar prement F7."
+
+#: directorymergewindow.cpp:2513
+#, kde-format
+msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed."
+msgstr ""
+"Error: ha fallat la copia ( %1 -> %2 ). L'esborrat de la destinació existent "
+"ha fallat."
+
+#: directorymergewindow.cpp:2522
+#, kde-format
+msgid "copyLink( %1 -> %2 )"
+msgstr "copia enllaç ( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2533
+msgid "Error: copyLink failed: Remote links are not yet supported."
+msgstr ""
+"Error: ha fallat la copia d'enllaç: els enllaços remots encara no estan "
+"implementats."
+
+#: directorymergewindow.cpp:2539
+msgid "Error: copyLink failed."
+msgstr "Error: ha fallat la copia d'enllaç."
+
+#: directorymergewindow.cpp:2564
+#, kde-format
+msgid "copy( %1 -> %2 )"
+msgstr "copia( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2590
+#, kde-format
+msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination."
+msgstr ""
+"Error en reanomenar( %1 -> %2 ): no es pot esborrar la destinació existent."
+
+#: directorymergewindow.cpp:2596
+#, kde-format
+msgid "rename( %1 -> %2 )"
+msgstr "reanomena( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2605
+msgid "Error: Rename failed."
+msgstr "Error: el canvi de nom ha fallat."
+
+#: directorymergewindow.cpp:2623
+#, kde-format
+msgid "Error during makeDir of %1. Cannot delete existing file."
+msgstr "Error en crear fitxer de %1. No es pot esborrar el fitxer existent."
+
+#: directorymergewindow.cpp:2639
+#, kde-format
+msgid "makeDir( %1 )"
+msgstr "crea directori( %1 )"
+
+#: directorymergewindow.cpp:2649
+msgid "Error while creating directory."
+msgstr "Error en crear el directori."
+
+#: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784
+msgid "Dest"
+msgstr "Destí"
+
+#: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709
+msgid "Dir"
+msgstr "Directori"
+
+#: directorymergewindow.cpp:2678
+msgid "Type"
+msgstr "Tipus"
+
+#: directorymergewindow.cpp:2678
+msgid "Size"
+msgstr "Mida"
+
+#: directorymergewindow.cpp:2679
+msgid "Attr"
+msgstr "Atributs"
+
+#: directorymergewindow.cpp:2679
+msgid "Last Modification"
+msgstr "Darrera modificació"
+
+#: directorymergewindow.cpp:2679
+msgid "Link-Destination"
+msgstr "Destí de l'enllaç"
+
+#: directorymergewindow.cpp:2709 difftextwindow.cpp:401
+msgid "File"
+msgstr "Fitxer"
+
+#: directorymergewindow.cpp:2726
+msgid "not available"
+msgstr "no disponible"
+
+#: directorymergewindow.cpp:2746
+msgid "A (Dest): "
+msgstr "A (Destí): "
+
+#: directorymergewindow.cpp:2749
+msgid "A (Base): "
+msgstr "A (Base): "
+
+#: directorymergewindow.cpp:2755
+msgid "B (Dest): "
+msgstr "B (Destí): "
+
+#: directorymergewindow.cpp:2763
+msgid "C (Dest): "
+msgstr "C (Destí): "
+
+#: directorymergewindow.cpp:2769
+msgid "Dest: "
+msgstr "Destí: "
+
+#: directorymergewindow.cpp:2836
+msgid "Save Directory Merge State As..."
+msgstr "Alça l'estat de fusió de directoris com a..."
+
+#: directorymergewindow.cpp:2959
+msgid "Start/Continue Directory Merge"
+msgstr "Comença/Continua la fusió de directoris"
+
+#: directorymergewindow.cpp:2960
+msgid "Run Operation for Current Item"
+msgstr "Executa l'operació per l'element actual"
+
+#: directorymergewindow.cpp:2961
+msgid "Compare Selected File"
+msgstr "Compara el fitxer seleccionat"
+
+#: directorymergewindow.cpp:2962
+msgid "Merge Current File"
+msgstr "Fusiona el fitxer actual"
+
+#: directorymergewindow.cpp:2962
+msgid ""
+"Merge\n"
+"File"
+msgstr ""
+"Fitxer\n"
+"Fusionat"
+
+#: directorymergewindow.cpp:2963
+msgid "Fold All Subdirs"
+msgstr "Plega tots els subdirectoris"
+
+#: directorymergewindow.cpp:2964
+msgid "Unfold All Subdirs"
+msgstr "Desplega tots els subdirectoris"
+
+#: directorymergewindow.cpp:2968
+msgid "Choose A for All Items"
+msgstr "Tria A per tots els elements"
+
+#: directorymergewindow.cpp:2969
+msgid "Choose B for All Items"
+msgstr "Tria B per tots els elements"
+
+#: directorymergewindow.cpp:2970
+msgid "Choose C for All Items"
+msgstr "Tria C per tots els elements"
+
+#: directorymergewindow.cpp:2971
+msgid "Auto-Choose Operation for All Items"
+msgstr "Tria automàticament l'operació per tots els elements"
+
+#: directorymergewindow.cpp:2972
+msgid "No Operation for All Items"
+msgstr "No hi ha cap operació per tots els elements"
+
+#: directorymergewindow.cpp:2977
+msgid "Show Identical Files"
+msgstr "Mostra els fitxers idèntics"
+
+#: directorymergewindow.cpp:2977
+msgid ""
+"Identical\n"
+"Files"
+msgstr ""
+"Fitxers\n"
+"Idèntics"
+
+#: directorymergewindow.cpp:2978
+msgid "Show Different Files"
+msgstr "Mostra els fitxers diferents"
+
+#: directorymergewindow.cpp:2979
+msgid "Show Files only in A"
+msgstr "Mostra els fitxers que només són a A"
+
+#: directorymergewindow.cpp:2979
+msgid ""
+"Files\n"
+"only in A"
+msgstr ""
+"Fitxers\n"
+"que només són a A"
+
+#: directorymergewindow.cpp:2980
+msgid "Show Files only in B"
+msgstr "Mostra els fitxers que només són a B"
+
+#: directorymergewindow.cpp:2980
+msgid ""
+"Files\n"
+"only in B"
+msgstr ""
+"Fitxers\n"
+"que només són a B"
+
+#: directorymergewindow.cpp:2981
+msgid "Show Files only in C"
+msgstr "Mostra els fitxers que només són a C"
+
+#: directorymergewindow.cpp:2981
+msgid ""
+"Files\n"
+"only in C"
+msgstr ""
+"Fitxers\n"
+"que només són a C"
+
+#: directorymergewindow.cpp:2985
+msgid "Compare Explicitly Selected Files"
+msgstr "Compara els fitxers seleccionats explícitament"
+
+#: directorymergewindow.cpp:2986
+msgid "Merge Explicitly Selected Files"
+msgstr "Fusiona els fitxers seleccionats explícitament"
+
+#: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995
+msgid "Do Nothing"
+msgstr "No faces res"
+
+#: directorymergewindow.cpp:2989
+msgid "A"
+msgstr "A"
+
+#: directorymergewindow.cpp:2990
+msgid "B"
+msgstr "B"
+
+#: directorymergewindow.cpp:2991
+msgid "C"
+msgstr "C"
+
+#: directorymergewindow.cpp:3000
+msgid "Delete A && B"
+msgstr "Esborra A i B"
+
+#: directorymergewindow.cpp:3003
+msgid "Merge to A && B"
+msgstr "Fusiona a A i B"
+
+#: main.cpp:74 main.cpp:76
+msgid "Ignored. (User defined.)"
+msgstr "Ignorat. (Definit per l'usuari)"
+
+#: main.cpp:162
+msgid "kdiff3"
+msgstr "kdiff3"
+
+#: main.cpp:164
+msgid "Tool for Comparison and Merge of Files and Directories"
+msgstr "Eina per comparar i fusionar fitxers i directoris"
+
+#: main.cpp:165
+#, fuzzy
+#| msgid "(c) 2002-2009 Joachim Eibl"
+msgid "(c) 2002-2011 Joachim Eibl"
+msgstr "(c) 2002-2009 Joachim Eibl"
+
+#: main.cpp:172 kdiff3_part.cpp:303
+msgid "Joachim Eibl"
+msgstr "Joachim Eibl"
+
+#: main.cpp:173
+msgid "Eike Sauer"
+msgstr "Eike Sauer"
+
+#: main.cpp:173
+msgid "Bugfixes, Debian package maintainer"
+msgstr "Correcció d'errades, mantenidor del paquet de Debian"
+
+#: main.cpp:174
+msgid "Sebastien Fricker"
+msgstr "Sebastien Fricker"
+
+#: main.cpp:174
+msgid "Windows installer"
+msgstr "Instal·lador de Windows"
+
+#: main.cpp:175
+msgid "Stephan Binner"
+msgstr "Stephan Binner"
+
+#: main.cpp:175
+msgid "i18n-help"
+msgstr "Ajuda amb l'i18n"
+
+#: main.cpp:176
+msgid "Stefan Partheymueller"
+msgstr "Stefan Partheymueller"
+
+#: main.cpp:176
+msgid "Clipboard-patch"
+msgstr "Pedaç del porta-retalls"
+
+#: main.cpp:177
+msgid "David Faure"
+msgstr "David Faure"
+
+#: main.cpp:177
+msgid "KIO-Help"
+msgstr "Ajuda amb KIO"
+
+#: main.cpp:178
+msgid "Bernd Gehrmann"
+msgstr "Bernd Gehrmann"
+
+#: main.cpp:178
+msgid "Class CvsIgnoreList from Cervisia"
+msgstr "Classe CvsIgnoreList del Cervisia"
+
+#: main.cpp:179
+msgid "Andre Woebbeking"
+msgstr "Andre Woebbeking"
+
+#: main.cpp:179
+msgid "Class StringMatcher"
+msgstr "Classe StringMatcher"
+
+#: main.cpp:180
+msgid "Michael Denio"
+msgstr "Michael Denio"
+
+#: main.cpp:180
+msgid "Directory Equality-Coloring patch"
+msgstr "Pedaç per acolorir les igualtats de directoris"
+
+#: main.cpp:181
+msgid "Manfred Koehler"
+msgstr "Manfred Koehler"
+
+#: main.cpp:181
+msgid "Fix for slow startup on Windows"
+msgstr "Solució a l'inici lent en Windows"
+
+#: main.cpp:182
+msgid "Sergey Zorin"
+msgstr "Sergey Zorin"
+
+#: main.cpp:182
+msgid "Diff Ext for Windows"
+msgstr "Diff Ext per Windows"
+
+#: main.cpp:183
+msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+
+#: main.cpp:183
+msgid "GNU-Diffutils"
+msgstr "GNU-Diffutils"
+
+#: main.cpp:184
+msgid "Tino Boellsterling, Timothy Mee"
+msgstr "Tino Boellsterling, Timothy Mee"
+
+#: main.cpp:184
+msgid "Intensive test, use and feedback"
+msgstr "Proves intensives, ús i comentaris"
+
+#: main.cpp:185
+msgid "Michael Schmidt"
+msgstr "Michael Schmidt"
+
+#: main.cpp:185
+msgid "Mac support"
+msgstr "Compatibilitat amb Mac"
+
+#: main.cpp:186
+msgid "Valentin Rusu"
+msgstr "Valentin Rusu"
+
+#: main.cpp:186 main.cpp:187
+msgid "KDE4 porting"
+msgstr "Adaptació al KDE 4"
+
+#: main.cpp:187
+msgid "Albert Astals Cid"
+msgstr "Albert Astals Cid"
+
+#: main.cpp:188
+msgid "Silvan Scherrer"
+msgstr ""
+
+#: main.cpp:188
+msgid "OS2 port"
+msgstr ""
+
+#: main.cpp:190
+msgid "+ Many thanks to those who reported bugs and contributed ideas!"
+msgstr "+ Moltes gràcies a tothom qui ha informat d'errors i ha aportat idees!"
+
+#: main.cpp:196
+msgid "Merge the input."
+msgstr "Fusiona l'entrada."
+
+#: main.cpp:197
+msgid "Explicit base file. For compatibility with certain tools."
+msgstr "Fitxer base explicit. Per compatibilitat amb certes eines."
+
+#: main.cpp:198
+msgid "Output file. Implies -m. E.g.: -o newfile.txt"
+msgstr "Fitxer d'eixida. Implica -m P. ex.: -o fitxernou.txt"
+
+#: main.cpp:199
+msgid "Output file, again. (For compatibility with certain tools.)"
+msgstr "Fitxer d'eixida, un altre cop. (Per compatibilitat amb certes eines)"
+
+#: main.cpp:200
+msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)"
+msgstr ""
+"Sense IGU si tots els conflictes es poden resoldre automàticament. (Cal -o "
+"fitxer)"
+
+#: main.cpp:201
+msgid "Don't solve conflicts automatically. (For compatibility...)"
+msgstr "No resolguis els conflictes automàticament. (Per compatibilitat...)"
+
+#: main.cpp:202
+msgid "Visible name replacement for input file 1 (base)."
+msgstr "Reemplaçament de nom visible pel fitxer d'eixida 1 (base)."
+
+#: main.cpp:203
+msgid "Visible name replacement for input file 2."
+msgstr "Reemplaçament de nom visible pel fitxer d'eixida 2."
+
+#: main.cpp:204
+msgid "Visible name replacement for input file 3."
+msgstr "Reemplaçament de nom visible pel fitxer d'eixida 3."
+
+#: main.cpp:205
+msgid "Alternative visible name replacement. Supply this once for every input."
+msgstr ""
+"Reemplaçament de nom visible alternatiu. Proporcioneu-lo per cada eixida."
+
+#: main.cpp:206
+msgid ""
+"Override a config setting. Use once for every setting. E.g.: --cs "
+"\"AutoAdvance=1\""
+msgstr ""
+"Sobreescriu l'arranjament de la configuració. Useu-ho per cada arranjament. "
+"P. ex.: --cs \"AutoAdvance=1\""
+
+#: main.cpp:207
+msgid "Show list of config settings and current values."
+msgstr "Mostra una llista d'arranjaments de configuració i el valor actual."
+
+#: main.cpp:208
+msgid "Use a different config file."
+msgstr "Usa un fitxer de configuració diferent."
+
+#: main.cpp:211
+msgid "file1 to open (base, if not specified via --base)"
+msgstr "fitxer 1 a obrir (base, si no s'especifica via --base)"
+
+#: main.cpp:212
+msgid "file2 to open"
+msgstr "fitxer 2 a obrir"
+
+#: main.cpp:213
+msgid "file3 to open"
+msgstr "fitxer 3 a obrir"
+
+#: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976
+#: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002
+#: mergeresultwindow.cpp:1014
+#, kde-format
+msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)"
+msgstr ""
+"Número de conflictes sense resoldre pendents: %1 (dels quals %2 són espais "
+"en blanc)"
+
+#: mergeresultwindow.cpp:303
+msgid ""
+"The output has been modified.\n"
+"If you continue your changes will be lost."
+msgstr ""
+"S'ha modificat l'eixida.\n"
+"Si continueu es perdran els canvis."
+
+#: mergeresultwindow.cpp:834 pdiff.cpp:532
+msgid "All input files are binary equal."
+msgstr "Tots els fitxers d'entrada són binàriament iguals."
+
+#: mergeresultwindow.cpp:836
+msgid "All input files contain the same text."
+msgstr "Tots els fitxers d'entrada contenen el mateix text."
+
+#: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840
+#: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540
+#, kde-format
+msgid "Files %1 and %2 are binary equal.\n"
+msgstr "Els fitxers %1 i %2 són binàriament iguals.\n"
+
+#: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841
+#: mergeresultwindow.cpp:843
+#, kde-format
+msgid "Files %1 and %2 have equal text.\n"
+msgstr "Els fitxers %1 i %2 tenen el mateix text.\n"
+
+#: mergeresultwindow.cpp:849
+msgid "Total number of conflicts: "
+msgstr "Nombre total de conflictes: "
+
+#: mergeresultwindow.cpp:850
+msgid ""
+"\n"
+"Nr of automatically solved conflicts: "
+msgstr ""
+"\n"
+"Núm. de conflictes resolts automàticament: "
+
+#: mergeresultwindow.cpp:851
+msgid ""
+"\n"
+"Nr of unsolved conflicts: "
+msgstr ""
+"\n"
+"Núm. de conflictes no resolts: "
+
+#: mergeresultwindow.cpp:853
+msgid "Conflicts"
+msgstr "Conflictes"
+
+#: mergeresultwindow.cpp:1728
+msgid "<No src line>"
+msgstr "<La línia no és codi>"
+
+#: mergeresultwindow.cpp:1736
+msgid "<Merge Conflict (Whitespace only)>"
+msgstr "<Conflicte de fusió (només espais en blanc)>"
+
+#: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517
+msgid "<Merge Conflict>"
+msgstr "<Conflicte de fusió>"
+
+#: mergeresultwindow.cpp:2725
+msgid ""
+"Not all conflicts are solved yet.\n"
+"File not saved.\n"
+msgstr ""
+"Encara no s'han resolt tots els conflictes.\n"
+"El fitxer no s'ha alçat.\n"
+
+#: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736
+msgid "Conflicts Left"
+msgstr "Conflictes pendents"
+
+#: mergeresultwindow.cpp:2734
+msgid ""
+"There is a line end style conflict. Please choose the line end style "
+"manually.\n"
+"File not saved.\n"
+msgstr ""
+"Hi ha un conflicte d'estil de finals de línia. Escolliu manualment l'estil "
+"de salt de línia.\n"
+"El fitxer no s'ha alçat.\n"
+
+#: mergeresultwindow.cpp:2748
+msgid ""
+"\n"
+"\n"
+"Creating backup failed. File not saved."
+msgstr ""
+"\n"
+"\n"
+"Ha fallat la creació de la còpia de seguretat. El fitxer no s'ha alçat."
+
+#: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792
+msgid "File Save Error"
+msgstr "Error en alçar el fitxer"
+
+#: mergeresultwindow.cpp:2792
+msgid "Error while writing."
+msgstr "Error en escriure."
+
+#: mergeresultwindow.cpp:3122
+msgid "Output"
+msgstr "Eixida"
+
+#: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314
+msgid "[Modified]"
+msgstr "[Modificat]"
+
+#: mergeresultwindow.cpp:3141
+msgid "Encoding for saving"
+msgstr "Codificació per alçar"
+
+#: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737
+#: optiondialog.cpp:762
+msgid "Line end style:"
+msgstr "Estil de salt de línia:"
+
+#: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767
+msgid "Unix"
+msgstr "Unix"
+
+#: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737
+msgid "DOS"
+msgstr "DOS"
+
+#: mergeresultwindow.cpp:3229
+msgid "Conflict"
+msgstr "Conflicte"
+
+#: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263
+#: mergeresultwindow.cpp:3265
+msgid "Codec from"
+msgstr "Còdec de"
+
+#: kdiff3_part.cpp:157 kdiff3_part.cpp:234
+msgid "Couldn't find files for comparison."
+msgstr "No s'han trobat fitxers per comparar."
+
+#: kdiff3_part.cpp:302
+msgid "KDiff3Part"
+msgstr "KDiff3Part"
+
+#: fileaccess.cpp:612
+msgid ""
+"While trying to make a backup, deleting an older backup failed. \n"
+"Filename: "
+msgstr ""
+"Ha fallat en esborrar una còpia de seguretat quan s'intentava fer-ne una de "
+"nova.\n"
+"Nom de fitxer: "
+
+#: fileaccess.cpp:619
+msgid ""
+"While trying to make a backup, renaming failed. \n"
+"Filenames: "
+msgstr ""
+"Ha fallat el reanomenament en intentar fer una còpia de seguretat. \n"
+"Noms de fitxer: "
+
+#: fileaccess.cpp:643
+#, kde-format
+msgid "Getting file status: %1"
+msgstr "S'està obtenint l'estat del fitxer: %1"
+
+#: fileaccess.cpp:686
+#, kde-format
+msgid "Reading file: %1"
+msgstr "S'està llegint el fitxer: %1"
+
+#: fileaccess.cpp:723
+#, kde-format
+msgid "Writing file: %1"
+msgstr "S'està escrivint el fitxer: %1"
+
+#: fileaccess.cpp:751
+msgid "Out of memory"
+msgstr "Sense memòria"
+
+#: fileaccess.cpp:786
+#, kde-format
+msgid "Making directory: %1"
+msgstr "S'està creant el directori: %1"
+
+#: fileaccess.cpp:806
+#, kde-format
+msgid "Removing directory: %1"
+msgstr "S'està eliminant el directori: %1"
+
+#: fileaccess.cpp:821
+#, kde-format
+msgid "Removing file: %1"
+msgstr "S'està eliminant el fitxer: %1"
+
+#: fileaccess.cpp:837
+#, kde-format
+msgid "Creating symbolic link: %1 -> %2"
+msgstr "S'està creant l'enllaç simbòlic: %1 -> %2"
+
+#: fileaccess.cpp:864
+#, kde-format
+msgid "Renaming file: %1 -> %2"
+msgstr "S'està reanomenant el fitxer: %1 -> %2"
+
+#: fileaccess.cpp:897
+#, kde-format
+msgid "Copying file: %1 -> %2"
+msgstr "S'està copiant el fitxer: %1 -> %2"
+
+#: fileaccess.cpp:911
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for reading failed. Filename: "
+"%1"
+msgstr ""
+"Error durant l'operació de còpia de fitxer: ha fallat en obrir el fitxer per "
+"llegir-lo. Nom de fitxer: %1"
+
+#: fileaccess.cpp:917
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for writing failed. Filename: "
+"%1"
+msgstr ""
+"Error durant l'operació de còpia de fitxer: ha fallat en obrir el fitxer per "
+"escriure-hi. Nom de fitxer: %1"
+
+#: fileaccess.cpp:932
+#, kde-format
+msgid "Error during file copy operation: Reading failed. Filename: %1"
+msgstr ""
+"Error durant l'operació de còpia de fitxer: ha fallat en llegir. Nom de "
+"fitxer: %1"
+
+#: fileaccess.cpp:941
+#, kde-format
+msgid "Error during file copy operation: Writing failed. Filename: %1"
+msgstr ""
+"Error durant l'operació de còpia de fitxer: ha fallat en escriure. Nom de "
+"fitxer: %1"
+
+#: fileaccess.cpp:1231
+msgid "Reading directory: "
+msgstr "S'està llegint el directori: "
+
+#: fileaccess.cpp:1355
+#, kde-format
+msgid "Listing directory: %1"
+msgstr "S'està llistant el directori: %1"
+
+#: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396
+msgid "&Cancel"
+msgstr "&Cancel·la"
+
+#: difftextwindow.cpp:403
+msgid "Line"
+msgstr "Línia"
+
+#: difftextwindow.cpp:405
+msgid "Line not available"
+msgstr "Línia no disponible"
+
+#: difftextwindow.cpp:1703 difftextwindow.cpp:1736
+msgid "Encoding:"
+msgstr "Codificació:"
+
+#: difftextwindow.cpp:1759 kdiff3.cpp:831
+msgid "Top line"
+msgstr "Línia superior"
+
+#: difftextwindow.cpp:1769
+msgid "End"
+msgstr "Final"
+
+#: kdiff3.cpp:169
+msgid "Current Configuration:"
+msgstr "Configuració actual:"
+
+#: kdiff3.cpp:174
+msgid "Config Option Error:"
+msgstr "Error de l'opció de configuració:"
+
+#: kdiff3.cpp:219
+msgid "Option --auto used, but no output file specified."
+msgstr "Heu usat l'opció --auto, però no heu especificat cap fitxer d'eixida."
+
+#: kdiff3.cpp:369
+msgid "Option --auto ignored for directory comparison."
+msgstr "L'opció --auto s'ignora en comparar directoris."
+
+#: kdiff3.cpp:405
+msgid "Saving failed."
+msgstr "Ha fallat l'alçat."
+
+#: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214
+msgid "Opening of these files failed:"
+msgstr "Ha fallat en obrir estos fitxers:"
+
+#: kdiff3.cpp:449
+msgid "File Open Error"
+msgstr "S'ha produït un error en obrir el fitxer"
+
+#: kdiff3.cpp:477
+msgid "Opens documents for comparison..."
+msgstr "Obra documents per comparar-los..."
+
+#: kdiff3.cpp:479
+msgid "Reload"
+msgstr "Recarrega"
+
+#: kdiff3.cpp:482
+msgid "Saves the merge result. All conflicts must be solved!"
+msgstr "Alça el resultat de la fusió. S'han de resoldre tots els conflictes!"
+
+#: kdiff3.cpp:484
+msgid "Saves the current document as..."
+msgstr "Alça el document actual com a..."
+
+#: kdiff3.cpp:487
+msgid "Print the differences"
+msgstr "Imprimeix les diferències"
+
+#: kdiff3.cpp:490
+msgid "Quits the application"
+msgstr "Ix de l'aplicació"
+
+#: kdiff3.cpp:492
+msgid "Cuts the selected section and puts it to the clipboard"
+msgstr "Talla la secció seleccionada i la posa al porta-retalls"
+
+#: kdiff3.cpp:494
+msgid "Copies the selected section to the clipboard"
+msgstr "Copia la secció seleccionada al porta-retalls"
+
+#: kdiff3.cpp:496
+msgid "Pastes the clipboard contents to current position"
+msgstr "Enganxa el contingut del porta-retalls a la posició actual"
+
+#: kdiff3.cpp:498
+msgid "Select everything in current window"
+msgstr "Selecciona tot el què hi ha a la finestra actual"
+
+#: kdiff3.cpp:500
+msgid "Search for a string"
+msgstr "Cerca una cadena"
+
+#: kdiff3.cpp:502
+msgid "Search again for the string"
+msgstr "Torna a cercar la cadena"
+
+#: kdiff3.cpp:507
+msgid "Enables/disables the statusbar"
+msgstr "Habilita/deshabilita la barra d'estat"
+
+#: kdiff3.cpp:511
+msgid "Configure KDiff3..."
+msgstr "Configura el KDiff3..."
+
+#: kdiff3.cpp:532
+msgid "Go to Current Delta"
+msgstr "Vés a la diferència actual"
+
+#: kdiff3.cpp:532
+msgid ""
+"Current\n"
+"Delta"
+msgstr ""
+"Diferència\n"
+"actual"
+
+#: kdiff3.cpp:534
+msgid "Go to First Delta"
+msgstr "Vés a la primera diferència"
+
+#: kdiff3.cpp:534
+msgid ""
+"First\n"
+"Delta"
+msgstr ""
+"Primera\n"
+"diferència"
+
+#: kdiff3.cpp:536
+msgid "Go to Last Delta"
+msgstr "Vés a l'última diferència"
+
+#: kdiff3.cpp:536
+msgid ""
+"Last\n"
+"Delta"
+msgstr ""
+"Última\n"
+"diferència"
+
+#: kdiff3.cpp:538
+msgid "(Skips white space differences when \"Show White Space\" is disabled.)"
+msgstr ""
+"(Se salten les diferències d'espais en blanc quan «Mostra espais en blanc» "
+"està deshabilitat)."
+
+#: kdiff3.cpp:539
+msgid ""
+"(Does not skip white space differences even when \"Show White Space\" is "
+"disabled.)"
+msgstr ""
+"(No se salten les diferències d'espais en blanc quan «Mostra espais en "
+"blanc» està deshabilitat)."
+
+#: kdiff3.cpp:540
+msgid "Go to Previous Delta"
+msgstr "Vés a la diferència anterior"
+
+#: kdiff3.cpp:540
+msgid ""
+"Prev\n"
+"Delta"
+msgstr ""
+"Diferència\n"
+"anterior"
+
+#: kdiff3.cpp:542
+msgid "Go to Next Delta"
+msgstr "Vés a diferència següent"
+
+#: kdiff3.cpp:542
+msgid ""
+"Next\n"
+"Delta"
+msgstr ""
+"Diferència\n"
+"següent"
+
+#: kdiff3.cpp:544
+msgid "Go to Previous Conflict"
+msgstr "Vés al conflicte anterior"
+
+#: kdiff3.cpp:544
+msgid ""
+"Prev\n"
+"Conflict"
+msgstr ""
+"Conflicte\n"
+"anterior"
+
+#: kdiff3.cpp:546
+msgid "Go to Next Conflict"
+msgstr "Vés al conflicte següent"
+
+#: kdiff3.cpp:546
+msgid ""
+"Next\n"
+"Conflict"
+msgstr ""
+"Conflicte\n"
+"següent"
+
+#: kdiff3.cpp:548
+msgid "Go to Previous Unsolved Conflict"
+msgstr "Vés al conflicte no resolt anterior"
+
+#: kdiff3.cpp:548
+msgid ""
+"Prev\n"
+"Unsolved"
+msgstr ""
+"No resolt\n"
+"anterior"
+
+#: kdiff3.cpp:550
+msgid "Go to Next Unsolved Conflict"
+msgstr "Vés al conflicte no resolt següent"
+
+#: kdiff3.cpp:550
+msgid ""
+"Next\n"
+"Unsolved"
+msgstr ""
+"No resolt\n"
+"següent"
+
+#: kdiff3.cpp:552
+msgid "Select Line(s) From A"
+msgstr "Selecciona línies d'A"
+
+#: kdiff3.cpp:552
+msgid ""
+"Choose\n"
+"A"
+msgstr ""
+"Trieu\n"
+"A"
+
+#: kdiff3.cpp:553
+msgid "Select Line(s) From B"
+msgstr "Seleccion línies de B"
+
+#: kdiff3.cpp:553
+msgid ""
+"Choose\n"
+"B"
+msgstr ""
+"Trieu\n"
+"B"
+
+#: kdiff3.cpp:554
+msgid "Select Line(s) From C"
+msgstr "Seleccion línies de C"
+
+#: kdiff3.cpp:554
+msgid ""
+"Choose\n"
+"C"
+msgstr ""
+"Trieu\n"
+"C"
+
+#: kdiff3.cpp:555
+msgid "Automatically Go to Next Unsolved Conflict After Source Selection"
+msgstr ""
+"Vés automàticament al conflicte no resolt següent després de seleccionar una "
+"font"
+
+#: kdiff3.cpp:555
+msgid ""
+"Auto\n"
+"Next"
+msgstr ""
+"Automàticament\n"
+"al següent"
+
+#: kdiff3.cpp:557
+msgid "Show Space && Tabulator Characters for Differences"
+msgstr ""
+"Mostra com a diferències els caràcters d'espai en blanc i els de tabulador "
+
+#: kdiff3.cpp:557
+msgid ""
+"White\n"
+"Characters"
+msgstr ""
+"Caràcters\n"
+"en blanc"
+
+#: kdiff3.cpp:558
+msgid "Show White Space"
+msgstr "Mostra els espais en blanc"
+
+#: kdiff3.cpp:558
+msgid ""
+"White\n"
+"Deltas"
+msgstr ""
+"Diferències\n"
+"d'espais"
+
+#: kdiff3.cpp:560
+msgid "Show Line Numbers"
+msgstr "Mostra els números de les línies"
+
+#: kdiff3.cpp:560
+msgid ""
+"Line\n"
+"Numbers"
+msgstr ""
+"Números\n"
+"de línia"
+
+#: kdiff3.cpp:561
+msgid "Choose A Everywhere"
+msgstr "Trieu A a tot arreu"
+
+#: kdiff3.cpp:562
+msgid "Choose B Everywhere"
+msgstr "Trieu B a tot arreu"
+
+#: kdiff3.cpp:563
+msgid "Choose C Everywhere"
+msgstr "Trieu C a tot arreu"
+
+#: kdiff3.cpp:564
+msgid "Choose A for All Unsolved Conflicts"
+msgstr "Trieu A a tots els conflictes no resolts"
+
+#: kdiff3.cpp:565
+msgid "Choose B for All Unsolved Conflicts"
+msgstr "Trieu B a tots els conflictes no resolts"
+
+#: kdiff3.cpp:566
+msgid "Choose C for All Unsolved Conflicts"
+msgstr "Trieu C a tots els conflictes no resolts"
+
+#: kdiff3.cpp:567
+msgid "Choose A for All Unsolved Whitespace Conflicts"
+msgstr "Trieu A a tots els conflictes d'espais en blanc no resolts"
+
+#: kdiff3.cpp:568
+msgid "Choose B for All Unsolved Whitespace Conflicts"
+msgstr "Trieu B a tots els conflictes d'espais en blanc no resolts"
+
+#: kdiff3.cpp:569
+msgid "Choose C for All Unsolved Whitespace Conflicts"
+msgstr "Trieu C a tots els conflictes d'espais en blanc no resolts"
+
+#: kdiff3.cpp:570
+msgid "Automatically Solve Simple Conflicts"
+msgstr "Resol automàticament els conflictes senzills"
+
+#: kdiff3.cpp:571
+msgid "Set Deltas to Conflicts"
+msgstr "Estableix les diferències com a conflictes"
+
+#: kdiff3.cpp:572
+msgid "Run Regular Expression Auto Merge"
+msgstr "Executa la fusió automàtica d'expressions regulars"
+
+#: kdiff3.cpp:573
+msgid "Automatically Solve History Conflicts"
+msgstr "Resol automàticament els conflictes cronològics"
+
+#: kdiff3.cpp:574
+msgid "Split Diff At Selection"
+msgstr "Divideix les diferències a la selecció"
+
+#: kdiff3.cpp:575
+msgid "Join Selected Diffs"
+msgstr "Uneix les diferències seleccionades"
+
+#: kdiff3.cpp:577
+msgid "Show Window A"
+msgstr "Mostra la finestra A"
+
+#: kdiff3.cpp:578
+msgid "Show Window B"
+msgstr "Mostra la finestra B"
+
+#: kdiff3.cpp:579
+msgid "Show Window C"
+msgstr "Mostra la finestra C"
+
+#: kdiff3.cpp:580 kdiff3.cpp:591
+msgid "Focus Next Window"
+msgstr "Focus a la finestra següent"
+
+#: kdiff3.cpp:582
+msgid "Normal Overview"
+msgstr "Resum normal"
+
+#: kdiff3.cpp:583
+msgid "A vs. B Overview"
+msgstr "Resum d'A contra B"
+
+#: kdiff3.cpp:584
+msgid "A vs. C Overview"
+msgstr "Resum d'A contra C"
+
+#: kdiff3.cpp:585
+msgid "B vs. C Overview"
+msgstr "Resum de B contra C"
+
+#: kdiff3.cpp:586
+msgid "Word Wrap Diff Windows"
+msgstr "Ajusta les línies de les finestres de diferències"
+
+#: kdiff3.cpp:587
+msgid "Add Manual Diff Alignment"
+msgstr "Afig alineació manual de les diferències"
+
+#: kdiff3.cpp:588
+msgid "Clear All Manual Diff Alignments"
+msgstr "Treu totes les alineacions manuals de les diferències"
+
+#: kdiff3.cpp:593
+msgid "Focus Prev Window"
+msgstr "Focus a la finestra anterior"
+
+#: kdiff3.cpp:594
+msgid "Toggle Split Orientation"
+msgstr "Commuta l'orientació de les divisions"
+
+#: kdiff3.cpp:596
+msgid "Dir && Text Split Screen View"
+msgstr "Vista de pantalla dividida en text i directoris"
+
+#: kdiff3.cpp:598
+msgid "Toggle Between Dir && Text View"
+msgstr "Commuta entre la vista de directoris i text"
+
+#: kdiff3.cpp:654 pdiff.cpp:1812
+msgid "The merge result hasn't been saved."
+msgstr "El resultat de la fusió no s'ha alçat."
+
+#: kdiff3.cpp:656
+msgid "Save && Quit"
+msgstr "Alça i ix"
+
+#: kdiff3.cpp:657
+msgid "Quit Without Saving"
+msgstr "Ix sense alçar"
+
+#: kdiff3.cpp:665 pdiff.cpp:1823
+msgid "Saving the merge result failed."
+msgstr "Ha fallat en alçar el resultat de la fusió."
+
+#: kdiff3.cpp:676 pdiff.cpp:1078
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort?"
+msgstr ""
+"Actualment esteu fent una fusió de directoris. Segur que la voleu "
+"interrompre?"
+
+#: kdiff3.cpp:701
+msgid "Saving file..."
+msgstr "S'està alçant el fitxer..."
+
+#: kdiff3.cpp:718
+msgid "Saving file with a new filename..."
+msgstr "S'està alçant el fitxer amb un nom nou..."
+
+#: kdiff3.cpp:781
+#, fuzzy
+#| msgid "Printing completed."
+msgid "Printing not implemented."
+msgstr "Impressió completada."
+
+#: kdiff3.cpp:815
+msgid "Printing..."
+msgstr "S'està imprimint..."
+
+#: kdiff3.cpp:956
+msgid "Selection"
+msgstr "Selecció"
+
+#: kdiff3.cpp:982
+msgid "Printing completed."
+msgstr "Impressió completada."
+
+#: kdiff3.cpp:986
+msgid "Printing aborted."
+msgstr "S'ha interromput la impressió."
+
+#: kdiff3.cpp:993
+msgid "Exiting..."
+msgstr "S'està eixint..."
+
+#: kdiff3.cpp:1006
+msgid "Toggling toolbar..."
+msgstr "S'està commutant la barra d'eines..."
+
+#: kdiff3.cpp:1027
+msgid "Toggle the statusbar..."
+msgstr "Commuta la barra d'estat..."
+
+#: smalldialogs.cpp:58
+msgid "A (Base):"
+msgstr "A (Base):"
+
+#: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99
+#: smalldialogs.cpp:142
+msgid "File..."
+msgstr "Fitxer..."
+
+#: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101
+#: smalldialogs.cpp:144
+msgid "Dir..."
+msgstr "Directori..."
+
+#: smalldialogs.cpp:93
+msgid "C (Optional):"
+msgstr "C (opcional):"
+
+#: smalldialogs.cpp:116
+msgid "Swap/Copy Names ..."
+msgstr "Intercanvia/Copia els noms..."
+
+#: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123
+#, kde-format
+msgid "Swap %1<->%2"
+msgstr "Intercanvia %1<->%2"
+
+#: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126
+#, kde-format
+msgid "Copy %1->Output"
+msgstr "Copia %1 ->Eixida"
+
+#: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129
+#, kde-format
+msgid "Swap %1<->Output"
+msgstr "Intercanvia %1<->Eixida"
+
+#: smalldialogs.cpp:136
+msgid "Output (optional):"
+msgstr "Eixida (opcional):"
+
+#: smalldialogs.cpp:168
+msgid "Configure..."
+msgstr "Configura..."
+
+#: smalldialogs.cpp:174
+msgid "&OK"
+msgstr "&D'acord"
+
+#: smalldialogs.cpp:362
+msgid "Search text:"
+msgstr "Cerca el text:"
+
+#: smalldialogs.cpp:369
+msgid "Case sensitive"
+msgstr "Sensible a majúscules"
+
+#: smalldialogs.cpp:372
+msgid "Search A"
+msgstr "Cerca A"
+
+#: smalldialogs.cpp:377
+msgid "Search B"
+msgstr "Cerca B"
+
+#: smalldialogs.cpp:382
+msgid "Search C"
+msgstr "Cerca C"
+
+#: smalldialogs.cpp:387
+msgid "Search output"
+msgstr "Cerca l'eixida"
+
+#: smalldialogs.cpp:392
+msgid "&Search"
+msgstr "&Cerca"
+
+#: smalldialogs.cpp:409
+msgid "Regular Expression Tester"
+msgstr "Provador d'expressions regulars"
+
+#: smalldialogs.cpp:414 optiondialog.cpp:936
+msgid "Auto merge regular expression:"
+msgstr "Fusiona automàticament les expressions regulars:"
+
+#: smalldialogs.cpp:422
+msgid "Example auto merge line:"
+msgstr "Exemple de línia de fusió automàtica:"
+
+#: smalldialogs.cpp:424
+msgid "To test auto merge, copy a line as used in your files."
+msgstr ""
+"Per testar la fusió automàtica, copieu una línia com les dels vostres "
+"fitxers."
+
+#: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494
+msgid "Match result:"
+msgstr "Resultat coincident:"
+
+#: smalldialogs.cpp:441 optiondialog.cpp:962
+msgid "History start regular expression:"
+msgstr "Expressió regular d'inici d'historial:"
+
+#: smalldialogs.cpp:449
+msgid "Example history start line (with leading comment):"
+msgstr "Exemple de línia d'inici d'historial (amb el comentari inicial):"
+
+#: smalldialogs.cpp:451
+msgid ""
+"Copy a history start line as used in your files,\n"
+"including the leading comment."
+msgstr ""
+"Copieu una línia d'inici d'historial com les dels vostres fitxers,\n"
+"incloent el comentari inicial."
+
+#: smalldialogs.cpp:469 optiondialog.cpp:972
+msgid "History entry start regular expression:"
+msgstr "Expressió regular d'inici d'entrada d'historial:"
+
+#: smalldialogs.cpp:477
+msgid "History sort key order:"
+msgstr "Criteri d'ordenació de les claus de l'historial:"
+
+#: smalldialogs.cpp:485
+msgid "Example history entry start line (without leading comment):"
+msgstr ""
+"Exemple d'inici de línia d'entrada d'historial (sense el comentari inicial):"
+
+#: smalldialogs.cpp:487
+msgid ""
+"Copy a history entry start line as used in your files,\n"
+"but omit the leading comment."
+msgstr ""
+"Copieu una entrada de línia d'inici d'historial com les dels vostres "
+"fitxers,\n"
+"sense incloure el comentari inicial."
+
+#: smalldialogs.cpp:501
+msgid "Sort key result:"
+msgstr "Resultat de la clau d'ordenació:"
+
+# PERFER: alineament?
+#: smalldialogs.cpp:508
+msgid "OK"
+msgstr "D'acord"
+
+# PERFER: alineament?
+#: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583
+msgid "Match success."
+msgstr "Encaix correcte."
+
+#: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589
+msgid "Match failed."
+msgstr "Ha fallat l'encaix. "
+
+#: smalldialogs.cpp:574
+msgid "Opening and closing parentheses do not match in regular expression."
+msgstr ""
+"L'obertura i tancament de parèntesis no encaixa en l'expressió regular."
+
+#: optiondialog.cpp:367
+msgid "Unicode, 8 bit"
+msgstr "Unicode, 8 bits"
+
+#: optiondialog.cpp:368
+msgid "Unicode"
+msgstr "Unicode"
+
+#: optiondialog.cpp:369
+msgid "Latin1"
+msgstr "Latin1"
+
+#: optiondialog.cpp:388
+msgid "Change this if non-ASCII characters are not displayed correctly."
+msgstr "Canvia això si els caràcters no ASCII no es mostren correctament."
+
+#: optiondialog.cpp:465
+msgid "Configure"
+msgstr "Configura"
+
+#: optiondialog.cpp:531
+msgid "Font"
+msgstr "Tipus de lletra"
+
+#: optiondialog.cpp:532
+msgid "Editor & Diff Output Font"
+msgstr "Tipus de lletra de l'editor i eixida de diferències"
+
+#: optiondialog.cpp:556
+msgid "Italic font for deltas"
+msgstr "Tipus de lletra cursiva per les diferències"
+
+#: optiondialog.cpp:559
+msgid ""
+"Selects the italic version of the font for differences.\n"
+"If the font doesn't support italic characters, then this does nothing."
+msgstr ""
+"Per les diferències, selecciona la versió en cursiva del tipus de lletra.\n"
+"Si el tipus de lletra no implementa caràcters en cursiva, això no tindrà "
+"efecte."
+
+#: optiondialog.cpp:568
+msgid "Color"
+msgstr "Color"
+
+#: optiondialog.cpp:569
+msgid "Colors Settings"
+msgstr "Arranjament de colors"
+
+#: optiondialog.cpp:588
+msgid "Editor and Diff Views:"
+msgstr "vistes de l'editor i diferències:"
+
+#: optiondialog.cpp:596
+msgid "Foreground color:"
+msgstr "Color de primer pla:"
+
+#: optiondialog.cpp:603
+msgid "Background color:"
+msgstr "Color de fons:"
+
+#: optiondialog.cpp:612
+msgid "Diff background color:"
+msgstr "Color de fons de les diferències:"
+
+#: optiondialog.cpp:620
+msgid "Color A:"
+msgstr "Color A:"
+
+#: optiondialog.cpp:628
+msgid "Color B:"
+msgstr "Color B:"
+
+#: optiondialog.cpp:636
+msgid "Color C:"
+msgstr "Color C:"
+
+#: optiondialog.cpp:643
+msgid "Conflict color:"
+msgstr "Conflicte de color:"
+
+#: optiondialog.cpp:651
+msgid "Current range background color:"
+msgstr "Color de fons del rang actual:"
+
+#: optiondialog.cpp:659
+msgid "Current range diff background color:"
+msgstr "Color de fons de les diferències del rang actual:"
+
+#: optiondialog.cpp:666
+msgid "Color for manually aligned difference ranges:"
+msgstr "Color pels rangs de diferències alineades manualment:"
+
+#: optiondialog.cpp:672
+msgid "Directory Comparison View:"
+msgstr "Vista de la comparació de directoris:"
+
+#: optiondialog.cpp:678
+msgid "Newest file color:"
+msgstr "Color del fitxer més nou:"
+
+#: optiondialog.cpp:682
+msgid ""
+"Changing this color will only be effective when starting the next directory "
+"comparison."
+msgstr ""
+"El canvi d'este color només serà efectiu quan es comence la propera "
+"comparació de directoris."
+
+#: optiondialog.cpp:687
+msgid "Oldest file color:"
+msgstr "Color del fitxer més antic:"
+
+#: optiondialog.cpp:695
+msgid "Middle age file color:"
+msgstr "Color del fitxer d'edat intermèdia:"
+
+#: optiondialog.cpp:703
+msgid "Color for missing files:"
+msgstr "Color dels fitxer no disponibles:"
+
+#: optiondialog.cpp:717
+msgid "Editor"
+msgstr "Editor"
+
+#: optiondialog.cpp:718
+msgid "Editor Behavior"
+msgstr "Comportament de l'editor"
+
+#: optiondialog.cpp:732
+msgid "Tab inserts spaces"
+msgstr "El tabulador insereix espais"
+
+#: optiondialog.cpp:735
+msgid ""
+"On: Pressing tab generates the appropriate number of spaces.\n"
+"Off: A tab character will be inserted."
+msgstr ""
+"Activat: en prémer el tabulador es generaran el nombre apropat d'espais en "
+"blanc.\n"
+"Desactivat: s'inserirà un caràcter de tabulació."
+
+#: optiondialog.cpp:741
+msgid "Tab size:"
+msgstr "Mida de la tabulació:"
+
+#: optiondialog.cpp:747
+msgid "Auto indentation"
+msgstr "Sagnat automàtic"
+
+#: optiondialog.cpp:750
+msgid "On: The indentation of the previous line is used for a new line.\n"
+msgstr "Activat: s'usarà el sagnat de la línia prèvia per les línies noves.\n"
+
+#: optiondialog.cpp:754
+msgid "Auto copy selection"
+msgstr "Copia la selecció automàticament"
+
+#: optiondialog.cpp:757
+msgid ""
+"On: Any selection is immediately written to the clipboard.\n"
+"Off: You must explicitely copy e.g. via Ctrl-C."
+msgstr ""
+"Activat: totes les seleccions s'alçaran al porta-retalls.\n"
+"Desactivat: haureu de copiar explícitament, p. ex. mitjançant Ctrl-C."
+
+#: optiondialog.cpp:768
+#, fuzzy
+#| msgid "&Window"
+msgid "Dos/Windows"
+msgstr "&Finestra"
+
+#: optiondialog.cpp:769
+#, fuzzy
+#| msgid "Auto Select"
+msgid "Autodetect"
+msgstr "Selecciona automàticament"
+
+#: optiondialog.cpp:772
+msgid ""
+"Sets the line endings for when an edited file is saved.\n"
+"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A"
+msgstr ""
+"Estableix els finals de línia quan s'alcen els fitxers editats.\n"
+"Dos/Windows: CR+LF; UNIX: LF; amb CR=0D, LF=0A"
+
+#: optiondialog.cpp:784
+msgid "Diff"
+msgstr "Diferència"
+
+#: optiondialog.cpp:785
+msgid "Diff Settings"
+msgstr "Arranjament de les diferències "
+
+#: optiondialog.cpp:809
+msgid "Treat as white space."
+msgstr "Tracta-ho com a espais en blanc."
+
+#: optiondialog.cpp:811
+msgid "Ignore numbers"
+msgstr "Ignora els números"
+
+#: optiondialog.cpp:814
+msgid ""
+"Ignore number characters during line matching phase. (Similar to Ignore "
+"white space.)\n"
+"Might help to compare files with numeric data."
+msgstr ""
+"Ignora els caràcters numèrics durant la fase de d'encaix de línies. "
+"(Semblant a ignorar espais en blanc).\n"
+"Pot ajudar a comparar fitxers amb dades numèriques."
+
+#: optiondialog.cpp:819
+msgid "Ignore C/C++ comments"
+msgstr "Ignora els comentaris de C/C++"
+
+#: optiondialog.cpp:821
+msgid "Treat C/C++ comments like white space."
+msgstr "Tracta els comentaris de C/C++ com si fossin espais en blanc."
+
+#: optiondialog.cpp:825
+msgid "Ignore case"
+msgstr "Ignora majúscules/minúscules"
+
+#: optiondialog.cpp:828
+msgid "Treat case differences like white space changes. ('a'<=>'A')"
+msgstr ""
+"Tracta les diferències de caixa com si fossin canvis d'espais en blanc(«a» "
+"<=> «A»)"
+
+#: optiondialog.cpp:832
+msgid "Preprocessor command:"
+msgstr "Orde del preprocessador:"
+
+#: optiondialog.cpp:836
+msgid "User defined pre-processing. (See the docs for details.)"
+msgstr ""
+"Preprocessament definit per l'usuari. (Vegeu la documentació pels detalls)."
+
+#: optiondialog.cpp:839
+msgid "Line-matching preprocessor command:"
+msgstr "Orde del preprocessador d'encaix de línies:"
+
+#: optiondialog.cpp:843
+msgid ""
+"This pre-processor is only used during line matching.\n"
+"(See the docs for details.)"
+msgstr ""
+"Este preprocessador només s'usa durant l'encaix de línies.\n"
+"(Per més detalls vegeu la documentació)."
+
+#: optiondialog.cpp:846
+msgid "Try hard (slower)"
+msgstr "Esforçat-hi (més lent)"
+
+#: optiondialog.cpp:849
+msgid ""
+"Enables the --minimal option for the external diff.\n"
+"The analysis of big files will be much slower."
+msgstr ""
+"Habilita l'opció --minimal pel diff extern.\n"
+"L'anàlisi de fitxers grans serà encara més lenta."
+
+#: optiondialog.cpp:854
+msgid "Align B and C for 3 input files"
+msgstr "Alinea B i C per 3 fitxers d'entrada"
+
+#: optiondialog.cpp:857
+msgid ""
+"Try to align B and C when comparing or merging three input files.\n"
+"Not recommended for merging because merge might get more complicated.\n"
+"(Default is off.)"
+msgstr ""
+"Intenta alinear B i C quan es comparin o fusionin tres fitxers d'entrada.\n"
+"No recomanat per fusionar ja que pot ser més complicat.\n"
+"(Deshabilitat per defecte)"
+
+#: optiondialog.cpp:870
+msgid "Merge Settings"
+msgstr "Arranjaments de fusió"
+
+#: optiondialog.cpp:885
+msgid "Auto advance delay (ms):"
+msgstr "Retard de l'avanç automàtic (ms):"
+
+#: optiondialog.cpp:890
+msgid ""
+"When in Auto-Advance mode the result of the current selection is shown \n"
+"for the specified time, before jumping to the next conflict. Range: 0-2000 ms"
+msgstr ""
+"Quan el mode d'avanç automàtic estiga activat es mostrarà el resultat de la "
+"selecció \n"
+"actual durant el temps especificat, avanç de saltar al conflicte següent. "
+"Rang: 0-2000 ms"
+
+#: optiondialog.cpp:895
+msgid "Show info dialogs"
+msgstr "Mostra els diàlegs d'informació"
+
+#: optiondialog.cpp:897
+msgid "Show a dialog with information about the number of conflicts."
+msgstr "Mostra un diàleg amb informació sobre el nombre de conflictes."
+
+#: optiondialog.cpp:900
+msgid "White space 2-file merge default:"
+msgstr "Opció per defecte dels espais en blanc en la fusió de 2 fitxers:"
+
+#: optiondialog.cpp:904 optiondialog.cpp:917
+msgid "Manual Choice"
+msgstr "Selecció manual"
+
+#: optiondialog.cpp:908 optiondialog.cpp:922
+msgid ""
+"Allow the merge algorithm to automatically select an input for white-space-"
+"only changes."
+msgstr ""
+"Permet que l'algoritme de fusió seleccioni automàticament una entrada pels "
+"canvis d'espais en blanc."
+
+#: optiondialog.cpp:913
+msgid "White space 3-file merge default:"
+msgstr "Opció per defecte dels espais en blanc en la fusió de 2 fitxers:"
+
+#: optiondialog.cpp:927
+msgid "Automatic Merge Regular Expression"
+msgstr "Fusió automàticament les expressions regulars"
+
+#: optiondialog.cpp:940
+msgid ""
+"Regular expression for lines where KDiff3 should automatically choose one "
+"source.\n"
+"When a line with a conflict matches the regular expression then\n"
+"- if available - C, otherwise B will be chosen."
+msgstr ""
+"Expressió regular per les línies en què el KDiff3 hauria d'escollir una font "
+"automàticament.\n"
+"Quan una línia amb un conflicte concorda amb l'expressió regular aleshores\n"
+"- si està disponible - s'escollirà C, si no, B."
+
+#: optiondialog.cpp:946
+msgid "Run regular expression auto merge on merge start"
+msgstr ""
+"Executa la fusió automàtica d'expressions regulars a l'inici de la fusió"
+
+#: optiondialog.cpp:948
+msgid ""
+"Run the merge for auto merge regular expressions\n"
+"immediately when a merge starts.\n"
+msgstr ""
+"Fusiona automàticament les expressions regulars\n"
+"just en començar la fusió.\n"
+
+#: optiondialog.cpp:953
+msgid "Version Control History Merging"
+msgstr "Fusió d'historial del control de versions"
+
+#: optiondialog.cpp:966
+msgid ""
+"Regular expression for the start of the version control history entry.\n"
+"Usually this line contains the \"$Log$\" keyword.\n"
+"Default value: \".*\\$Log.*\\$.*\""
+msgstr ""
+"Expressió regular per l'inici de les entrades de l'historial del control de "
+"versions.\n"
+"Normalment esta línia conté la paraula clau «$Log$».\n"
+"Valor per defecte: «.*\\$Log.*\\$.*»"
+
+#: optiondialog.cpp:984
+msgid ""
+"A version control history entry consists of several lines.\n"
+"Specify the regular expression to detect the first line (without the leading "
+"comment).\n"
+"Use parentheses to group the keys you want to use for sorting.\n"
+"If left empty, then KDiff3 assumes that empty lines separate history "
+"entries.\n"
+"See the documentation for details."
+msgstr ""
+"Les entrades de l'historial del control de versions consten de varies "
+"línies.\n"
+"Especifiqueu l'expressió regular per detectar la primera línia (sense el "
+"comentari inicial).\n"
+"Useu parèntesis per agrupar les claus que vulgueu usar per ordenar-les.\n"
+"Si es deixa en blanc, el KDiff3 assumeix que les línies en blanc separen les "
+"entrades de l'historial.\n"
+"Per més detalls, vegeu la documentació."
+
+#: optiondialog.cpp:992
+msgid "History merge sorting"
+msgstr "Ordenació de la fusió d'historials"
+
+#: optiondialog.cpp:994
+msgid "Sort version control history by a key."
+msgstr "Ordena l'historial del control de versions per una clau."
+
+#: optiondialog.cpp:1004
+msgid "History entry start sort key order:"
+msgstr ""
+"Criteri d'ordenació de les claus de l'inici de les entrades d'historial:"
+
+#: optiondialog.cpp:1008
+msgid ""
+"Each pair of parentheses used in the regular expression for the history "
+"start entry\n"
+"groups a key that can be used for sorting.\n"
+"Specify the list of keys (that are numbered in order of occurrence\n"
+"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n"
+"If left empty, then no sorting will be done.\n"
+"See the documentation for details."
+msgstr ""
+"Cada parell de parèntesis usats en l'expressió regular per l'inici de "
+"l'entrada de l'historial\n"
+"agrupa una clau que es pot usar per ordenar.\n"
+"Especifica la llista de claus (que estan numerades en orde d'ocurrència\n"
+"començant per 1) usant «,» com a separador (p. ex. «4,5,6,1,2,3,7»).\n"
+"Si es deixa en blanc, no s'ordenarà.\n"
+"Per més detalls, vegeu la documentació."
+
+#: optiondialog.cpp:1019
+msgid "Merge version control history on merge start"
+msgstr "Fusiona l'historial del control de versions quan es comence a fusionar"
+
+#: optiondialog.cpp:1021
+msgid "Run version control history automerge on merge start."
+msgstr ""
+"Executa la fusió automàtica de l'historial del control de versions quan es "
+"comence a fusionar."
+
+#: optiondialog.cpp:1025
+msgid "Max number of history entries:"
+msgstr "Nombre màxim d'entrades d'historial:"
+
+#: optiondialog.cpp:1028
+msgid "Cut off after specified number. Use -1 for infinite number of entries."
+msgstr ""
+"Talla a partir d'un número especificat. Useu -1 per un nombre infinit "
+"d'entrades."
+
+#: optiondialog.cpp:1032
+msgid "Test your regular expressions"
+msgstr "Comproveu les vostres expressions regulars"
+
+#: optiondialog.cpp:1037
+msgid "Irrelevant merge command:"
+msgstr "Orde de fusió irrellevant:"
+
+#: optiondialog.cpp:1041
+msgid ""
+"If specified this script is run after automerge\n"
+"when no other relevant changes were detected.\n"
+"Called with the parameters: filename1 filename2 filename3"
+msgstr ""
+"Si s'especifica, este script s'executarà després de la fusió automàtica\n"
+"quan no s'hagen detectats altres canvis apropiats.\n"
+"Cridat amb els paràmetres: nomdefitxer1 nomdefitxer2 nomdefitxer3"
+
+#: optiondialog.cpp:1047
+msgid "Auto save and quit on merge without conflicts"
+msgstr "En les fusions sense conflictes alça i ix automàticament"
+
+#: optiondialog.cpp:1050
+msgid ""
+"If KDiff3 was started for a file-merge from the command line and all\n"
+"conflicts are solvable without user interaction then automatically save and "
+"quit.\n"
+"(Similar to command line option \"--auto\".)"
+msgstr ""
+"Si el KDiff3 s'inicia des de la línia d'ordes per fusionar fitxers i tots\n"
+"els conflictes es poden resoldre sense la interacció de l'usuari, alça i "
+"ix.\n"
+"(Similar a l'opció de la línia de comandes «--auto»)."
+
+#: optiondialog.cpp:1061 optiondialog.cpp:1062
+msgid "Directory"
+msgstr "Directori"
+
+#: optiondialog.cpp:1075
+msgid "Recursive directories"
+msgstr "Directoris recursius"
+
+#: optiondialog.cpp:1077
+msgid "Whether to analyze subdirectories or not."
+msgstr "Si analitzar els subdirectoris o no"
+
+#: optiondialog.cpp:1079
+msgid "File pattern(s):"
+msgstr "Patró dels fitxers:"
+
+#: optiondialog.cpp:1084
+msgid ""
+"Pattern(s) of files to be analyzed. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Patró dels fitxers a analitzar.\n"
+"Comodins: «*» i «?»\n"
+"Es poden especificar diversos patrons separant-los amb: «;»"
+
+#: optiondialog.cpp:1090
+msgid "File-anti-pattern(s):"
+msgstr "Negatiu del patró dels fitxers:"
+
+#: optiondialog.cpp:1095
+msgid ""
+"Pattern(s) of files to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Patró dels fitxers a excloure de l'anàlisi. \n"
+"Comodins: «*» i «?»\n"
+"Es poden especificar diversos patrons separant-los amb: «;»"
+
+#: optiondialog.cpp:1101
+msgid "Dir-anti-pattern(s):"
+msgstr "Negatiu del patró dels directoris:"
+
+#: optiondialog.cpp:1106
+msgid ""
+"Pattern(s) of directories to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Patró dels directoris a excloure de l'anàlisi. \n"
+"Comodins: «*» i «?»\n"
+"Es poden especificar diversos patrons separant-los amb: «;»"
+
+#: optiondialog.cpp:1112
+msgid "Use .cvsignore"
+msgstr "Usa .cvsignore"
+
+#: optiondialog.cpp:1115
+msgid ""
+"Extends the antipattern to anything that would be ignored by CVS.\n"
+"Via local \".cvsignore\" files this can be directory specific."
+msgstr ""
+"Estén el negatiu del patró a tot el què ignora el CVS.\n"
+"Per mitjà dels fitxers «.cvsignore» locals això pot ser específic de cada "
+"directori."
+
+#: optiondialog.cpp:1120
+msgid "Find hidden files and directories"
+msgstr "Cerca fitxers i directoris ocults"
+
+#: optiondialog.cpp:1123
+msgid "Finds files and directories with the hidden attribute."
+msgstr "Cerca fitxers i directoris l'atribut ocult."
+
+#: optiondialog.cpp:1125
+msgid "Finds files and directories starting with '.'."
+msgstr "Cerca fitxers i directoris que comencen amb «.»."
+
+#: optiondialog.cpp:1129
+msgid "Follow file links"
+msgstr "Segueix els enllaços de fitxer"
+
+#: optiondialog.cpp:1132
+msgid ""
+"On: Compare the file the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+"Activat: compara el fitxer al què apunta l'enllaç.\n"
+"Desactivat: compara els enllaços."
+
+#: optiondialog.cpp:1137
+msgid "Follow directory links"
+msgstr "Segueix els enllaços de directori"
+
+#: optiondialog.cpp:1140
+msgid ""
+"On: Compare the directory the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+"Activat: compara el directori al què apunta l'enllaç.\n"
+"Desactivat: compara els enllaços."
+
+#: optiondialog.cpp:1156
+msgid "Case sensitive filename comparison"
+msgstr "Comparació de noms de fitxers sensible a majúscules i minúscules"
+
+#: optiondialog.cpp:1159
+msgid ""
+"The directory comparison will compare files or directories when their names "
+"match.\n"
+"Set this option if the case of the names must match. (Default for Windows is "
+"off, otherwise on.)"
+msgstr ""
+"La comparació de directoris compararà fitxers o directoris que coincidisquen "
+"en nom.\n"
+"Activeu esta opció si la caixa dels noms ha de coincidir. (Per defecte en "
+"Windows està desactivat, en altres entorns està activat)."
+
+#: optiondialog.cpp:1163
+msgid "File Comparison Mode"
+msgstr "Mode de comparació de fitxers"
+
+#: optiondialog.cpp:1169
+msgid "Binary comparison"
+msgstr "Comparació binària"
+
+#: optiondialog.cpp:1170
+msgid "Binary comparison of each file. (Default)"
+msgstr "Comparació binària de cada fitxer. (Per defecte)"
+
+#: optiondialog.cpp:1173
+msgid "Full analysis"
+msgstr "Anàlisi complet"
+
+#: optiondialog.cpp:1174
+msgid ""
+"Do a full analysis and show statistics information in extra columns.\n"
+"(Slower than a binary comparison, much slower for binary files.)"
+msgstr ""
+"Fes un anàlisi complet i mostra informació estadística en columnes "
+"addicionals.\n"
+"(Més lent que una comparació binària, més lent encara per fitxers binaris)."
+
+#: optiondialog.cpp:1178
+msgid "Trust the size and modification date (unsafe)"
+msgstr "Confia en la mida i la data de modificació (insegur)"
+
+#: optiondialog.cpp:1179
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"Files with equal contents but different modification dates will appear as "
+"different.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"Assumeix que els fitxers són iguals si la data de modificació i la mida del "
+"fitxer coincideixen.\n"
+"Els fitxers amb continguts iguals però diferents dates de modificació es "
+"mostraran com si fossin diferents.\n"
+"Útil per directoris grans o xarxes lentes."
+
+#: optiondialog.cpp:1184
+msgid ""
+"Trust the size and date, but use binary comparison if date does not match "
+"(unsafe)"
+msgstr ""
+"Confia en la mida i data dels fitxers però compara binàriament si les dates "
+"no concorden (insegur)"
+
+#: optiondialog.cpp:1185
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"If the dates are not equal but the sizes are, use binary comparison.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"Assumeix que els fitxers són iguals si les dates de modificació i les mides "
+"dels fitxers coincideixen.\n"
+"Si les dates no són iguals però les mides si, usa la comparació binària.\n"
+"Útil per directoris grans o xarxes lentes."
+
+#: optiondialog.cpp:1190
+msgid "Trust the size (unsafe)"
+msgstr "Confia en la mida (insegur)"
+
+#: optiondialog.cpp:1191
+msgid ""
+"Assume that files are equal if their file lengths are equal.\n"
+"Useful for big directories or slow networks when the date is modified during "
+"download."
+msgstr ""
+"Assumeix que els fitxers són iguals si la mida dels fitxer coincideixen.\n"
+"Útil per directoris grans o xarxes lentes quan la data es modifica durant la "
+"descarrega."
+
+#: optiondialog.cpp:1199
+msgid "Synchronize directories"
+msgstr "Sincronitza directoris"
+
+#: optiondialog.cpp:1202
+msgid ""
+"Offers to store files in both directories so that\n"
+"both directories are the same afterwards.\n"
+"Works only when comparing two directories without specifying a destination."
+msgstr ""
+"Ofereix emmagatzemar fitxers als dos directoris de manera que\n"
+"després els dos directoris siguen iguals.\n"
+"Només funciona quan es comparen dos directoris sense especificar una "
+"destinació."
+
+#: optiondialog.cpp:1208
+msgid "White space differences considered equal"
+msgstr "Les diferències d'espais en blanc no es consideren"
+
+#: optiondialog.cpp:1211
+msgid ""
+"If files differ only by white space consider them equal.\n"
+"This is only active when full analysis is chosen."
+msgstr ""
+"Si els fitxers difereixen en només un espai en blanc considera'ls iguals.\n"
+"Això només és actiu quan s'trieu l'anàlisi complet."
+
+#: optiondialog.cpp:1217
+msgid "Copy newer instead of merging (unsafe)"
+msgstr "Copia el més nou en comptes de fusionar-los (insegur)"
+
+#: optiondialog.cpp:1220
+msgid ""
+"Don't look inside, just take the newer file.\n"
+"(Use this only if you know what you are doing!)\n"
+"Only effective when comparing two directories."
+msgstr ""
+"No miris dins, simplement tria el fitxer més nou.\n"
+"(Useu això només si sabeu el què esteu fent).\n"
+"Només és efectiu quan es comparen dos directoris."
+
+#: optiondialog.cpp:1225
+msgid "Backup files (.orig)"
+msgstr "Fitxers de la còpia de seguretat (.orig)"
+
+#: optiondialog.cpp:1228
+msgid ""
+"If a file would be saved over an old file, then the old file\n"
+"will be renamed with a '.orig' extension instead of being deleted."
+msgstr ""
+"Si un fitxer es guarda sobre un fitxer més antic, llavors el fitxer antic\n"
+"es reanomenara amb una extensió «.orig» en comptes de ser esborrat."
+
+#: optiondialog.cpp:1301 optiondialog.cpp:1302
+msgid "Regional Settings"
+msgstr "Arranjament regional"
+
+#: optiondialog.cpp:1402
+msgid "Language (restart required)"
+msgstr "Idioma (cal reiniciar)"
+
+#: optiondialog.cpp:1445
+msgid ""
+"Choose the language of the GUI strings or \"Auto\".\n"
+"For a change of language to take place, quit and restart KDiff3."
+msgstr ""
+"Trieu l'idioma de les cadenes de la IGU o «Automàtic».\n"
+"Per què el canvi d'idioma tinga efecte, eixiu i reinicieu el KDiff3."
+
+#: optiondialog.cpp:1463
+msgid "Use the same encoding for everything:"
+msgstr "Usa la mateixa configuració a tot arreu:"
+
+#: optiondialog.cpp:1466
+msgid ""
+"Enable this allows to change all encodings by changing the first only.\n"
+"Disable this if different individual settings are needed."
+msgstr ""
+"Habilitar això permet canviar totes les codificacions canviant només la "
+"primera.\n"
+"Deshabiliteu-ho si necessiteu arranjaments diferents per cada fitxer."
+
+#: optiondialog.cpp:1471
+msgid "Note: Local Encoding is "
+msgstr "Nota: la codificació local és "
+
+#: optiondialog.cpp:1475
+msgid "File Encoding for A:"
+msgstr "Codificació pel fitxer A:"
+
+#: optiondialog.cpp:1481
+msgid ""
+"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n"
+"If the file is not Unicode then the selected encoding will be used as "
+"fallback.\n"
+"(Unicode detection depends on the first bytes of a file.)"
+msgstr ""
+"Si està habilitat es detectaran les codificacions Unicode (UTF-16 o UTF-8).\n"
+"Si el fitxer no és Unicode s'usarà la codificació seleccionada com a "
+"alternativa\n"
+"(la detecció de l'Unicode depèn dels primers bytes dels fitxers)."
+
+#: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503
+msgid "Auto Detect Unicode"
+msgstr "Detecta automàticament l'Unicode"
+
+#: optiondialog.cpp:1490
+msgid "File Encoding for B:"
+msgstr "Codificació pel fitxer B:"
+
+#: optiondialog.cpp:1499
+msgid "File Encoding for C:"
+msgstr "Codificació pel fitxer C:"
+
+#: optiondialog.cpp:1508
+msgid "File Encoding for Merge Output and Saving:"
+msgstr "Codificació des fitxers d'eixida d'una fusió i en alçar:"
+
+#: optiondialog.cpp:1512
+msgid "Auto Select"
+msgstr "Selecciona automàticament"
+
+#: optiondialog.cpp:1515
+msgid ""
+"If enabled then the encoding from the input files is used.\n"
+"In ambiguous cases a dialog will ask the user to choose the encoding for "
+"saving."
+msgstr ""
+"Si està habilitat s'usarà la codificació dels fitxers d'entrada.\n"
+"En els casos ambigus un diàleg demanarà a l'usuari que esculli la "
+"codificació a usar per alçar."
+
+#: optiondialog.cpp:1519
+msgid "File Encoding for Preprocessor Files:"
+msgstr "Codificació dels fitxers del preprocessador:"
+
+#: optiondialog.cpp:1530
+msgid "Right To Left Language"
+msgstr "Idioma de dreta a esquerra"
+
+#: optiondialog.cpp:1533
+msgid ""
+"Some languages are read from right to left.\n"
+"This setting will change the viewer and editor accordingly."
+msgstr ""
+"Alguns idiomes es lligen de dreta a esquerra.\n"
+"Este arranjament canviarà el visor i l'editor per adaptar-s'hi."
+
+#: optiondialog.cpp:1548
+msgid "Integration"
+msgstr "Integració"
+
+#: optiondialog.cpp:1549
+msgid "Integration Settings"
+msgstr "Arranjaments d'integració"
+
+#: optiondialog.cpp:1563
+msgid "Command line options to ignore:"
+msgstr "Opcions de la línia d'ordes a ignorar:"
+
+#: optiondialog.cpp:1568
+msgid ""
+"List of command line options that should be ignored when KDiff3 is used by "
+"other tools.\n"
+"Several values can be specified if separated via ';'\n"
+"This will suppress the \"Unknown option\" error."
+msgstr ""
+"Llista d'opcions de la línia d'ordes que s'ignoraran quan el KDiff3 siga "
+"usat per altres eines.\n"
+"Es poden especificar varis valors separant-los amb «;».\n"
+"Això solucionarà l'error «Opció desconeguda»."
+
+#: optiondialog.cpp:1575
+msgid "Quit also via Escape key"
+msgstr "Ix també en prémer la tecla d'escapada"
+
+#: optiondialog.cpp:1578
+msgid ""
+"Fast method to exit.\n"
+"For those who are used to using the Escape key."
+msgstr ""
+"Mètode ràpid per eixir.\n"
+"Pels qui estigueu acostumats a usar la tecla d'escapada."
+
+#: optiondialog.cpp:1583
+msgid "Integrate with ClearCase"
+msgstr "Integra amb ClearCase"
+
+#: optiondialog.cpp:1586
+msgid ""
+"Integrate with Rational ClearCase from IBM.\n"
+"Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n"
+"(Only enabled when ClearCase \"bin\" directory is in the path.)"
+msgstr ""
+"Integra amb Rational ClearCase d'IBM.\n"
+"Modifica el fitxer «map» del subdirectori de ClearCase «lib/mgrs»\n"
+"(només s'activa quan directori «bin» de ClearCase estiga al camí)."
+
+#: optiondialog.cpp:1592
+msgid "Remove ClearCase Integration"
+msgstr "Elimina la integració amb ClearCase"
+
+#: optiondialog.cpp:1595
+msgid ""
+"Restore the old \"map\" file from before doing the ClearCase integration."
+msgstr ""
+"Restaura el fitxer «map» antic d'avanç de fer la integració de ClearCase."
+
+#: optiondialog.cpp:1680
+msgid "Incompatible Font"
+msgstr "Tipus de lletra incompatible"
+
+#: optiondialog.cpp:1681
+msgid "Continue at Own Risk"
+msgstr "Continua sota la meua responsabilitat"
+
+#: optiondialog.cpp:1682
+msgid "Select Another Font"
+msgstr "Tria un altre tipus de lletra"
+
+#: optiondialog.cpp:1717
+msgid "This resets all options. Not only those of the current topic."
+msgstr "Això restableix totes les opcions, no només les del tema actual."
+
+#: pdiff.cpp:260
+msgid "PreprocessorCmd: "
+msgstr "OrdreDePreprosessador: "
+
+#: pdiff.cpp:265
+msgid "The following option(s) you selected might change data:\n"
+msgstr "Les següents opcions que heu seleccionat poden canviar dades:\n"
+
+#: pdiff.cpp:266
+msgid ""
+"\n"
+"Most likely this is not wanted during a merge.\n"
+"Do you want to disable these settings or continue with these settings active?"
+msgstr ""
+"\n"
+"Probablement, durant una fusió no voldreu això.\n"
+"Voleu deshabilitar estos arranjaments o continuar amb estos arranjaments "
+"activats?"
+
+#: pdiff.cpp:268
+msgid "Option Unsafe for Merging"
+msgstr "Opció insegura per fusionar"
+
+#: pdiff.cpp:269
+msgid "Use These Options During Merge"
+msgstr "Usa estes opcions en fusionar"
+
+#: pdiff.cpp:270
+msgid "Disable Unsafe Options"
+msgstr "Deshabilita les opcions insegures"
+
+#: pdiff.cpp:300
+msgid "Loading A"
+msgstr "S'està carregant A"
+
+#: pdiff.cpp:304
+msgid "Loading B"
+msgstr "S'està carregant B"
+
+#: pdiff.cpp:321 pdiff.cpp:347
+msgid "Diff: A <-> B"
+msgstr "Dif: A <-> B"
+
+#: pdiff.cpp:327 pdiff.cpp:372
+msgid "Linediff: A <-> B"
+msgstr "Diferència de línia: A <-> B"
+
+#: pdiff.cpp:338
+msgid "Loading C"
+msgstr "S'està carregant C"
+
+#: pdiff.cpp:350
+msgid "Diff: B <-> C"
+msgstr "Dif: B <-> C"
+
+#: pdiff.cpp:353
+msgid "Diff: A <-> C"
+msgstr "Dif: A <-> C"
+
+#: pdiff.cpp:375
+msgid "Linediff: B <-> C"
+msgstr "Diferència de línia: B <-> C"
+
+#: pdiff.cpp:378
+msgid "Linediff: A <-> C"
+msgstr "Diferència de línia: A <-> C"
+
+#: pdiff.cpp:534
+msgid "All input files contain the same text, but are not binary equal."
+msgstr ""
+"Tots els fitxers d'entrada contenen el mateix text però no són binàriament "
+"iguals."
+
+#: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541
+#, kde-format
+msgid "Files %1 and %2 have equal text, but are not binary equal. \n"
+msgstr ""
+"Els fitxers %1 i %2 tenen el mateix text, però binàriament no són iguals. \n"
+
+#: pdiff.cpp:551
+msgid ""
+"Some inputfiles don't seem to be pure textfiles.\n"
+"Note that the KDiff3-merge was not meant for binary data.\n"
+"Continue at your own risk."
+msgstr ""
+"Alguns fitxers d'entrada no pareixen fitxers de text pur.\n"
+"Noteu que la fusió del KDiff3 no està pensada per dades binàries.\n"
+"Continueu sota la vostra responsabilitat."
+
+#: pdiff.cpp:566
+#, kde-format
+msgid ""
+"Some input characters could not be converted to valid unicode.\n"
+"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n"
+"Don't save the result if unsure. Continue at your own risk.\n"
+"Affected input files are in %1."
+msgstr ""
+
+#: pdiff.cpp:1080
+msgid "Abort"
+msgstr "Interromp"
+
+#: pdiff.cpp:1087 pdiff.cpp:1175
+msgid "Opening files..."
+msgstr "S'estan obrint els fitxers..."
+
+#: pdiff.cpp:1152 pdiff.cpp:1223
+msgid "File open error"
+msgstr "S'ha produït un error en obrir el fitxer"
+
+#: pdiff.cpp:1255
+msgid "Cutting selection..."
+msgstr "S'està retallant la selecció..."
+
+#: pdiff.cpp:1276
+msgid "Copying selection to clipboard..."
+msgstr "S'està copiant la selecció al porta-retalls..."
+
+#: pdiff.cpp:1292
+msgid "Inserting clipboard contents..."
+msgstr "S'està inserint el contingut del porta-retalls..."
+
+#: pdiff.cpp:1814
+msgid "Save && Continue"
+msgstr "Alça i continua"
+
+#: pdiff.cpp:1815
+msgid "Continue Without Saving"
+msgstr "Continua sense alçar"
+
+#: pdiff.cpp:2018
+msgid "Search complete."
+msgstr "Cerca completa."
+
+#: pdiff.cpp:2018
+msgid "Search Complete"
+msgstr "Cerca completa"
+
+#: pdiff.cpp:2252
+msgid "Nothing is selected in either diff input window."
+msgstr "No hi ha res seleccionat en cap de les finestres de diferències."
+
+#: pdiff.cpp:2252
+msgid "Error while adding manual diff range"
+msgstr "Error en afegir un rang manual de diferències"
+
+#: kdiff3_shell.cpp:76
+#, fuzzy
+#| msgid ""
+#| "Could not initialize the KDiff part.\n"
+#| "This usually happens due to an installation problem. Please read the "
+#| "README-file in the source package for details."
+msgid ""
+"Could not initialize the KDiff3 part.\n"
+"This usually happens due to an installation problem. Please read the README-"
+"file in the source package for details."
+msgstr ""
+"No s'ha pogut inicialitzar el component KDiff.\n"
+"Això sol ser degut a problemes d'instal·lació. Per més detalls, llegiu el "
+"fitxer README del paquet de codi."
+
+#: rc.cpp:1
+msgctxt "NAME OF TRANSLATORS"
+msgid "Your names"
+msgstr "Joan Maspons Ventura"
+
+#: rc.cpp:2
+msgctxt "EMAIL OF TRANSLATORS"
+msgid "Your emails"
+msgstr "joanmaspons@gmail.com"
+
+#. i18n: file: kdiff3_part.rc:4
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:5
+msgid "&KDiff3"
+msgstr "&KDiff3"
+
+#. i18n: file: kdiff3_part.rc:13
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:8
+msgid "Configure KDiff3"
+msgstr "Configura el KDiff3"
+
+#. i18n: file: kdiff3_part.rc:16
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:11
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#. i18n: file: kdiff3_shell.rc:106
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:38
+msgid "Main Toolbar"
+msgstr "Barra d'eines principal"
diff --git a/po/ca@valencia/kdiff3plugin.po b/po/ca@valencia/kdiff3plugin.po
new file mode 100644 (file)
index 0000000..8772ed0
--- /dev/null
@@ -0,0 +1,101 @@
+# Translation of kdiff3plugin.po to Catalan
+# Copyright (C) 2011 This_file_is_part_of_KDE
+# This file is distributed under the license LGPL version 2 or later
+#
+# Joan Maspons <joanmaspons@gmail.com>, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-03-07 01:44+0100\n"
+"Last-Translator: Joan Maspons <joanmaspons@gmail.com>\n"
+"Language-Team: Catalan <kde-i18n-ca@kde.org>\n"
+"Language: ca\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.2\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Accelerator-Marker: &\n"
+
+#: kdiff3plugin.cpp:107
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#: kdiff3plugin.cpp:114
+#, kde-format
+msgid "Compare with %1"
+msgstr "Compara amb %1"
+
+#: kdiff3plugin.cpp:120
+#, kde-format
+msgid "Merge with %1"
+msgstr "Fusiona amb %1"
+
+#: kdiff3plugin.cpp:126
+#, kde-format
+msgid "Save '%1' for later"
+msgstr "Alça «%1» per després"
+
+#: kdiff3plugin.cpp:132
+msgid "3-way merge with base"
+msgstr "Fusió a tres bandes amb base"
+
+#: kdiff3plugin.cpp:139
+msgid "Compare with ..."
+msgstr "Compara amb..."
+
+#: kdiff3plugin.cpp:149
+msgid "Clear list"
+msgstr "Neteja la llista"
+
+#: kdiff3plugin.cpp:157
+msgid "Compare"
+msgstr "Compara"
+
+#: kdiff3plugin.cpp:163
+msgid "3 way comparison"
+msgstr "Comparació a 3 bandes"
+
+#: kdiff3plugin.cpp:167
+msgid "About KDiff3 menu plugin ..."
+msgstr "Quant al connector del menú del KDiff3..."
+
+#: kdiff3plugin.cpp:269
+msgid ""
+"KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+"Connector del menú del KDiff3: Copyright (C) 2008 Joachim Eibl\n"
+"Lloc web del KDiff3: http://kdiff3.sourceforge.net\n"
+"\n"
+
+#: kdiff3plugin.cpp:271
+msgid ""
+"Using the context menu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else, \"Save\" the first file for later, and "
+"it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With"
+"\" on the second file.\n"
+"For a 3-way merge first, \"Save\" the base file, then the branch to merge, "
+"and then \"3-way merge with base\" on the other branch which will be used as "
+"the destination.\n"
+"The same also applies to directory comparison and merge."
+msgstr ""
+"Ús de l'extensió de menú contextual:\n"
+"Per una comparació simple de dos fitxers seleccionats escolliu «Compara».\n"
+"Si l'altre fitxer és en algun altra lloc, «Alça» el primer fitxer per "
+"després i apareixerà al submenú «Compara amb...». Després, useu «Compara "
+"amb» al segon fitxer.\n"
+"Per una fusió a tres bandes, primer «Alça» el fitxer base, després la branca "
+"a fusionar, i després «Fusió a tres bandes» a l'altra branca que s'usarà com "
+"a destinació.\n"
+"El mateix també s'aplica a la comparació i fusió de directoris."
+
+#: kdiff3plugin.cpp:279
+#, fuzzy
+#| msgid "About KDiff3 menu plugin ..."
+msgid "About KDiff3 Menu Plugin"
+msgstr "Quant al connector del menú del KDiff3..."
diff --git a/po/create_qm_files b/po/create_qm_files
new file mode 100644 (file)
index 0000000..4d9cf8d
--- /dev/null
@@ -0,0 +1,50 @@
+# Copyright (C) 2009 by Joachim Eibl
+# Licence: GPL V2
+#   GNU GENERAL PUBLIC LICENSE, Version 2, June 1991
+#   This program is free software; you can redistribute it and/or modify
+#   it under the terms of the GNU General Public License as published by
+#   the Free Software Foundation; either version 2 of the License, or
+#   (at your option) any later version.
+#
+#   This program is distributed in the hope that it will be useful,
+#   but WITHOUT ANY WARRANTY; without even the implied warranty of
+#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#   GNU General Public License for more details.
+#
+#   You should have received a copy of the GNU General Public License
+#   along with this program; if not, write to the Free Software
+#   Foundation, Inc., 51 Franklin Steet, Fifth Floor, Boston, MA  02111-1307  USA
+#
+#   For details see file "COPYING".
+
+# create_qm_files: 
+# Create translation files needed by qt-only version.
+# Requirements: lconvert from qt4 (Thanks to Richard Hoyle for that tip)
+export LANG=en_US.UTF-8
+echo "Create qm files (KDiff3 translation files for the qt-only version)"
+if [ "$1" = "local" ]; then
+   if ["$2" = ""]; then
+      path=.
+   else
+      path=$2
+   fi
+   echo "destination: $path"
+
+   for i in `ls ` ; do
+      if [ -s $i/kdiff3.po ]; then
+         echo Creating ./kdiff3_$i.qm
+         lconvert -if po -of qm -o $path/kdiff3_$i.qm $i/kdiff3.po
+      fi
+   done
+elif [ "$1" = "install" ]; then
+   for i in `ls` ; do
+      if [ -s $i/kdiff3.po ]; then
+         echo Installing /usr/share/locale/$i/LC_MESSAGES/kdiff3.qm
+         sudo lconvert -if po -of qm -o /usr/share/locale/$i/LC_MESSAGES/kdiff3.qm $i/kdiff3.po
+      fi
+   done
+else
+   echo "Usage 1: sh create_qm_files local <destination> (if empty current is used)"
+   echo "Usage 2: sh create_qm_files install"
+fi
+
diff --git a/po/cs/CMakeLists.txt b/po/cs/CMakeLists.txt
new file mode 100644 (file)
index 0000000..88522fd
--- /dev/null
@@ -0,0 +1,2 @@
+file(GLOB _po_files *.po)
+GETTEXT_PROCESS_PO_FILES(cs ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
diff --git a/po/cs/kdiff3.po b/po/cs/kdiff3.po
new file mode 100644 (file)
index 0000000..2076e86
--- /dev/null
@@ -0,0 +1,3174 @@
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# Vít Pelčák <vit@pelcak.org>, 2010, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: trunk_kdiff3\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-06-27 14:28+0200\n"
+"Last-Translator: Vít Pelčák <vit@pelcak.org>\n"
+"Language-Team: Czech <kde-i18n-doc@kde.org>\n"
+"Language: cs\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
+"X-Generator: Lokalize 1.2\n"
+
+#: kreplacements/kreplacements.h:105
+msgid "Continue"
+msgstr "Pokračovat"
+
+#: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158
+#: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512
+msgid "Cancel"
+msgstr "Zrušit"
+
+#: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631
+msgid "Quit"
+msgstr "Ukončit"
+
+#: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339
+msgid "Ok"
+msgstr "Ok"
+
+#: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715
+msgid "Help"
+msgstr "Nápověda"
+
+#: kreplacements/kreplacements.cpp:185
+msgid "Defaults"
+msgstr "Výchozí"
+
+#. i18n: file: kdiff3_shell.rc:4
+#. i18n: ectx: Menu (file)
+#: kreplacements/kreplacements.cpp:296 rc.cpp:14
+msgid "&File"
+msgstr "S&oubor"
+
+#: kreplacements/kreplacements.cpp:297
+msgid "&Edit"
+msgstr "Ú&pravy"
+
+#. i18n: file: kdiff3_shell.rc:7
+#. i18n: ectx: Menu (directory)
+#: kreplacements/kreplacements.cpp:298 rc.cpp:17
+msgid "&Directory"
+msgstr "&Adresář"
+
+#. i18n: file: kdiff3_shell.rc:50
+#. i18n: ectx: Menu (movement)
+#: kreplacements/kreplacements.cpp:301 rc.cpp:26
+msgid "&Movement"
+msgstr "&Přejít"
+
+#. i18n: file: kdiff3_shell.rc:61
+#. i18n: ectx: Menu (diff)
+#: kreplacements/kreplacements.cpp:302 rc.cpp:29
+msgid "D&iffview"
+msgstr "&Zobrazit rozdíly"
+
+#. i18n: file: kdiff3_shell.rc:73
+#. i18n: ectx: Menu (merge)
+#: kreplacements/kreplacements.cpp:303 rc.cpp:32
+msgid "&Merge"
+msgstr "Slouč&it"
+
+#. i18n: file: kdiff3_shell.rc:95
+#. i18n: ectx: Menu (window)
+#: kreplacements/kreplacements.cpp:304 rc.cpp:35
+msgid "&Window"
+msgstr "O&kno"
+
+#: kreplacements/kreplacements.cpp:305
+msgid "&Settings"
+msgstr "Na&stavení"
+
+#: kreplacements/kreplacements.cpp:306
+msgid "&Help"
+msgstr "Nápo&věda"
+
+#: kreplacements/kreplacements.cpp:353
+msgid "&About"
+msgstr "O progr&amu"
+
+#: kreplacements/kreplacements.cpp:369
+msgid "A&uthor"
+msgstr "A&utor"
+
+#: kreplacements/kreplacements.cpp:383
+msgid "&Thanks To"
+msgstr "Díky pa&tří"
+
+#. i18n: file: kdiff3_shell.rc:30
+#. i18n: ectx: Menu (dir_current_merge_menu)
+#: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497
+#: rc.cpp:20
+msgid "Current Item Merge Operation"
+msgstr "Operace sloučení aktuální položky"
+
+#. i18n: file: kdiff3_shell.rc:38
+#. i18n: ectx: Menu (dir_current_sync_menu)
+#: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498
+#: rc.cpp:23
+msgid "Current Item Sync Operation"
+msgstr "Operace synchronizace aktuální položky"
+
+#: kreplacements/kreplacements.cpp:597
+msgid "Open"
+msgstr "Otevřít"
+
+#: kreplacements/kreplacements.cpp:606
+msgid "Save"
+msgstr "Uložit"
+
+#: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720
+msgid "Save As..."
+msgstr "Uložit jako..."
+
+#: kreplacements/kreplacements.cpp:623
+msgid "Print..."
+msgstr "Tisk..."
+
+#: kreplacements/kreplacements.cpp:639
+msgid "Cut"
+msgstr "Vyjmout"
+
+#: kreplacements/kreplacements.cpp:647
+msgid "Copy"
+msgstr "Kopírovat"
+
+#: kreplacements/kreplacements.cpp:655
+msgid "Paste"
+msgstr "Vložit"
+
+#: kreplacements/kreplacements.cpp:663
+msgid "Select All"
+msgstr "Vybrat vše"
+
+#: kreplacements/kreplacements.cpp:671
+msgid "Show Toolbar"
+msgstr "Zobrazit panel nástrojů"
+
+#: kreplacements/kreplacements.cpp:679
+msgid "Show &Status Bar"
+msgstr "Zobrazit &stavový řádek"
+
+#: kreplacements/kreplacements.cpp:687
+#, kde-format
+msgid "&Configure %1..."
+msgstr "&Nastavit %1..."
+
+#: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707
+msgid "About"
+msgstr "O programu"
+
+#: kreplacements/kreplacements.cpp:722
+msgid "Find"
+msgstr "Najít"
+
+#: kreplacements/kreplacements.cpp:730
+msgid "Find Next"
+msgstr "Najít další"
+
+#: kreplacements/kreplacements.cpp:750
+msgid "Select Font"
+msgstr "Zvolit písmo"
+
+#: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676
+msgid ""
+"You selected a variable width font.\n"
+"\n"
+"Because this program doesn't handle variable width fonts\n"
+"correctly, you might experience problems while editing.\n"
+"\n"
+"Do you want to continue or do you want to select another font."
+msgstr ""
+"Zvolili jste proměnnou šířku písma.\n"
+"\n"
+"Jelikož tento program nepracuje správně s písmem s proměnnou\n"
+"šířkou, můžete zkusit vyřešit problém při editaci.\n"
+"\n"
+"Chcete pokračovat, nebo zvolit jiné písmo?"
+
+#: kreplacements/kreplacements.cpp:792
+msgid "Incompatible font."
+msgstr "Nekompatibilní písmo."
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Continue at my own risk"
+msgstr "Pokračovat na vlastní riziko"
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Select another font"
+msgstr "Vybrat jiné písmo"
+
+#: kreplacements/kreplacements.cpp:1134
+msgid "For more documentation, see the help-menu or the subdirectory doc."
+msgstr ""
+"Další dokumentaci naleznete v nabídce Nápověda, nebo v podadresáři doc."
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "KDiff3-Usage"
+msgstr "Použití KDiff3"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Ignore"
+msgstr "Ignorovat"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Exit"
+msgstr "Ukončit"
+
+#: diff.cpp:251
+msgid "Writing clipboard data to temp file failed."
+msgstr "Zápis dat schránky do dočasného souboru selhal."
+
+#: diff.cpp:255
+msgid "From Clipboard"
+msgstr "Ze schránky"
+
+#: diff.cpp:471
+msgid "Expecting space after closing quotation mark."
+msgstr ""
+
+#: diff.cpp:474
+msgid "Not matching quotation marks."
+msgstr ""
+
+#: diff.cpp:496
+msgid "Unexpected quotation mark within argument."
+msgstr "Neočekávaná uvozovka uvnitř argumentu"
+
+#: diff.cpp:503
+msgid "No program specified."
+msgstr "Nebyl zadán program."
+
+#: diff.cpp:605
+#, kde-format
+msgid ""
+"Preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The preprocessing command will be disabled now."
+msgstr ""
+"Předběžné zpracování zřejmě selhalo. Zkontrolujte příkaz:\n"
+"\n"
+" %1\n"
+"\n"
+"Příkaz předběžného zpracování bude nyní vypnut."
+
+#: diff.cpp:653
+#, kde-format
+msgid ""
+"The line-matching-preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The line-matching-preprocessing command will be disabled now."
+msgstr ""
+"Předběžné zpracování shody řádku zřejmě selhalo. Zkontrolujte příkaz:\n"
+"\n"
+" %1\n"
+"\n"
+"Příkaz předběžného zpracování shody řádku bude nyní vypnut."
+
+#: diff.cpp:1776 diff.cpp:1790
+msgid ""
+"Data loss error:\n"
+"If it is reproducible please contact the author.\n"
+msgstr ""
+"Chyba ztráty dat:\n"
+"Pokud lze chybu reprodukovat, kontaktujte autora.\n"
+
+#: diff.cpp:1778 diff.cpp:1792
+msgid "Severe Internal Error"
+msgstr "Závažná interní chyba"
+
+#: directorymergewindow.cpp:136
+msgid "Mix of links and normal files."
+msgstr "Směs odkazů a běžných souborů."
+
+#: directorymergewindow.cpp:143
+msgid "Link: "
+msgstr "Odkaz: "
+
+#: directorymergewindow.cpp:151
+msgid "Size. "
+msgstr "Velikost"
+
+#: directorymergewindow.cpp:164 directorymergewindow.cpp:174
+msgid "Date & Size: "
+msgstr "Datum a velikost: "
+
+#: directorymergewindow.cpp:184 directorymergewindow.cpp:190
+#, kde-format
+msgid "Creating temp copy of %1 failed."
+msgstr "Vytváření dočasné kopie %1 selhalo."
+
+#: directorymergewindow.cpp:201 directorymergewindow.cpp:209
+#, kde-format
+msgid "Opening %1 failed."
+msgstr "Otevření %1 selhalo."
+
+#: directorymergewindow.cpp:213
+msgid "Comparing file..."
+msgstr "Porovnávám soubory..."
+
+#: directorymergewindow.cpp:223 directorymergewindow.cpp:229
+#, kde-format
+msgid "Error reading from %1"
+msgstr "Chyba načítání z %1"
+
+#: directorymergewindow.cpp:358
+msgid "Name"
+msgstr "Jméno"
+
+#: directorymergewindow.cpp:358
+msgid "Operation"
+msgstr "Operace"
+
+#: directorymergewindow.cpp:358
+msgid "Status"
+msgstr "Stav"
+
+#: directorymergewindow.cpp:359
+msgid "Unsolved"
+msgstr "Nevyřešeno"
+
+#: directorymergewindow.cpp:359
+msgid "Solved"
+msgstr "Vyřešeno"
+
+#: directorymergewindow.cpp:359
+msgid "Nonwhite"
+msgstr "Nebílý"
+
+#: directorymergewindow.cpp:359
+msgid "White"
+msgstr "Bílá"
+
+#: directorymergewindow.cpp:388
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort "
+"the merge and rescan the directory?"
+msgstr ""
+"Právě probíhá slučování adresářů. Opravdu chcete slučování ukončit a znovu "
+"prohledat adresář?"
+
+#: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655
+#: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823
+msgid "Warning"
+msgstr "Upozornění"
+
+#: directorymergewindow.cpp:390 directorymergewindow.cpp:2965
+msgid "Rescan"
+msgstr "Znovu prohledat"
+
+#: directorymergewindow.cpp:391 pdiff.cpp:1081
+msgid "Continue Merging"
+msgstr "Pokračovat se slučováním"
+
+#: directorymergewindow.cpp:548
+msgid "Opening of directories failed:"
+msgstr "Otevírání adresářů selhalo:"
+
+#: directorymergewindow.cpp:551
+#, kde-format
+msgid "Dir A \"%1\" does not exist or is not a directory.\n"
+msgstr "Adresář A \"%1\" neexistuje nebo není adresářem.\n"
+
+#: directorymergewindow.cpp:554
+#, kde-format
+msgid "Dir B \"%1\" does not exist or is not a directory.\n"
+msgstr "Adresář B \"%1\" neexistuje nebo není adresářem.\n"
+
+#: directorymergewindow.cpp:557
+#, kde-format
+msgid "Dir C \"%1\" does not exist or is not a directory.\n"
+msgstr "Adresář C \"%1\" neexistuje nebo není adresářem.\n"
+
+#: directorymergewindow.cpp:559
+msgid "Directory Open Error"
+msgstr "Chyba otvírání adresáře"
+
+#: directorymergewindow.cpp:567
+msgid ""
+"The destination directory must not be the same as A or B when three "
+"directories are merged.\n"
+"Check again before continuing."
+msgstr ""
+"Cílový adresář nesmí být při slučování tří adresářů shodný s A nebo B.\n"
+"Před pokračováním proveďte kontrolu."
+
+#: directorymergewindow.cpp:569
+msgid "Parameter Warning"
+msgstr "Varování - parametr"
+
+#: directorymergewindow.cpp:574
+msgid "Scanning directories..."
+msgstr "Prohledávání adresářů..."
+
+#: directorymergewindow.cpp:607
+msgid "Reading Directory A"
+msgstr "Načítání adresáře A"
+
+#: directorymergewindow.cpp:629
+msgid "Reading Directory B"
+msgstr "Načítání adresáře B"
+
+#: directorymergewindow.cpp:651
+msgid "Reading Directory C"
+msgstr "Načítání adresáře C"
+
+#: directorymergewindow.cpp:677
+msgid "Some subdirectories were not readable in"
+msgstr "Některé podadresáře byly nečitelné v"
+
+#: directorymergewindow.cpp:682
+msgid "Check the permissions of the subdirectories."
+msgstr "Zkontrolujte oprávnění podadresářů."
+
+#: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737
+#: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233
+#: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328
+msgid "Ready."
+msgstr "Připraven."
+
+#: directorymergewindow.cpp:735
+msgid "Directory Comparison Status"
+msgstr "Stav porovnání adresářů"
+
+#: directorymergewindow.cpp:736
+msgid "Number of subdirectories:"
+msgstr "Počet podadresářů:"
+
+#: directorymergewindow.cpp:737
+msgid "Number of equal files:"
+msgstr "Počet shodných souborů:"
+
+#: directorymergewindow.cpp:738
+msgid "Number of different files:"
+msgstr "Počet rozdílných souborů:"
+
+#: directorymergewindow.cpp:741
+msgid "Number of manual merges:"
+msgstr "Počet ručních sloučení:"
+
+#: directorymergewindow.cpp:912
+msgid "This affects all merge operations."
+msgstr "Toto ovlivňuje všechny operace slučování."
+
+#: directorymergewindow.cpp:913
+msgid "Changing All Merge Operations"
+msgstr "Změna všech operací sloučení"
+
+#: directorymergewindow.cpp:1312
+msgid "Processing "
+msgstr "Probíhá zpracování "
+
+#: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742
+msgid "To do."
+msgstr "Udělat."
+
+#: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996
+msgid "Copy A to B"
+msgstr "Zkopírovat A do B"
+
+#: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997
+msgid "Copy B to A"
+msgstr "Zkopírovat B do A"
+
+#: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998
+msgid "Delete A"
+msgstr "Smazat A"
+
+#: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999
+msgid "Delete B"
+msgstr "Smazat B"
+
+#: directorymergewindow.cpp:1814
+msgid "Delete A & B"
+msgstr "Smazat A a B"
+
+#: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001
+msgid "Merge to A"
+msgstr "Sloučit do A"
+
+#: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002
+msgid "Merge to B"
+msgstr "Sloučit do B"
+
+#: directorymergewindow.cpp:1817
+msgid "Merge to A & B"
+msgstr "Sloučit do A a B"
+
+#: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993
+msgid "Delete (if exists)"
+msgstr "Smazat (pokud existuje)"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+#: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869
+msgid "Merge"
+msgstr "Sloučení"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+msgid "Merge (manual)"
+msgstr "Sloučit (ručně)"
+
+#: directorymergewindow.cpp:1824
+msgid "Error: Conflicting File Types"
+msgstr "Chyba: Konflikt typů souborů"
+
+#: directorymergewindow.cpp:1825
+msgid "Error: Changed and Deleted"
+msgstr "Chyba: Změněno a smazáno"
+
+#: directorymergewindow.cpp:1826
+msgid "Error: Dates are equal but files are not."
+msgstr "Chyba: Data jsou shodná, ale soubory nikoliv."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906
+msgid "This operation is currently not possible."
+msgstr "Tuto operaci nelze nyní provést."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174
+msgid "Operation Not Possible"
+msgstr "Operaci nelze provést"
+
+#: directorymergewindow.cpp:1945
+msgid ""
+"This should never happen: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"If you know how to reproduce this, please contact the program author."
+msgstr ""
+"Toto by se nemělo nikdy stát:\n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"Pokud tuto situaci umíte reprodukovat, kontaktujte prosím autora programu."
+
+#: directorymergewindow.cpp:1945
+msgid "Program Error"
+msgstr "Chyba programu"
+
+#: directorymergewindow.cpp:1956
+msgid "An error occurred while copying.\n"
+msgstr "Během kopírování se stala chyba.\n"
+
+#: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025
+#: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105
+#: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123
+#: directorymergewindow.cpp:2374
+msgid "Error"
+msgstr "Chyba"
+
+#: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375
+msgid "Merge Error"
+msgstr "Chyba slučování"
+
+#: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380
+msgid "Error."
+msgstr "Chyba."
+
+#: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272
+#: directorymergewindow.cpp:2312
+msgid "Done."
+msgstr "Hotovo."
+
+#: directorymergewindow.cpp:1990
+msgid "Not saved."
+msgstr "Neuloženo."
+
+#: directorymergewindow.cpp:2025
+msgid "Unknown merge operation. (This must never happen!)"
+msgstr "Neznámá slučovací operace. (Toto se nesmí nikdy stát!)"
+
+#: directorymergewindow.cpp:2057
+msgid "Unknown merge operation."
+msgstr "Neznámá slučovací operace."
+
+#: directorymergewindow.cpp:2072
+msgid ""
+"The merge is about to begin.\n"
+"\n"
+"Choose \"Do it\" if you have read the instructions and know what you are "
+"doing.\n"
+"Choosing \"Simulate it\" will tell you what would happen.\n"
+"\n"
+"Be aware that this program still has beta status and there is NO WARRANTY "
+"whatsoever! Make backups of your vital data!"
+msgstr ""
+"Sloučení může začít.\n"
+"\n"
+"Zvolte \"Provést\" pokud jste si přečetli instrukce a máte dělat.\n"
+"Zvolením \"Simulovat\" vám bude sděleno, co by se mělo stát.\n"
+"\n"
+"Uvědomte si, že tento program je stále ve stavu beta a proto není vůbec "
+"žádná ZÁRUKA! Vaše důležitá data si zazálohujte!"
+
+#: directorymergewindow.cpp:2077
+msgid "Starting Merge"
+msgstr "Spouští se sloučení"
+
+#: directorymergewindow.cpp:2078
+msgid "Do It"
+msgstr "Provést"
+
+#: directorymergewindow.cpp:2079
+msgid "Simulate It"
+msgstr "Simulovat"
+
+#: directorymergewindow.cpp:2105
+msgid ""
+"The highlighted item has a different type in the different directories. "
+"Select what to do."
+msgstr "Zvýrazněná položka je jiného typu v jiném adresáři. Zvolte co udělat."
+
+#: directorymergewindow.cpp:2114
+msgid ""
+"The modification dates of the file are equal but the files are not. Select "
+"what to do."
+msgstr "Datum změny souboru je shodné, soubory však nikoliv. Zvolte co udělat."
+
+#: directorymergewindow.cpp:2123
+msgid ""
+"The highlighted item was changed in one directory and deleted in the other. "
+"Select what to do."
+msgstr ""
+"Zvýrazněná položka byla pozměněna v jednom adresáři a v druhém byla smazána. "
+"Zvolte co udělat."
+
+#: directorymergewindow.cpp:2174
+msgid ""
+"This operation is currently not possible because directory merge is "
+"currently running."
+msgstr ""
+"Tato operace není nyní možná, protože slučování adresáře právě probíhá."
+
+#: directorymergewindow.cpp:2234
+msgid ""
+"There was an error in the last step.\n"
+"Do you want to continue with the item that caused the error or do you want "
+"to skip this item?"
+msgstr ""
+"V posledním kroku došlo k chybě.\n"
+"Chcete pokračovat s položkou, která chybu způsobila, nebo si přejete položku "
+"přeskočit?"
+
+#: directorymergewindow.cpp:2236
+msgid "Continue merge after an error"
+msgstr "Pokračovat se slučováním po chybě"
+
+#: directorymergewindow.cpp:2237
+msgid "Continue With Last Item"
+msgstr "Pokračovat s poslední položkou"
+
+#: directorymergewindow.cpp:2238
+msgid "Skip Item"
+msgstr "Přeskočit položku"
+
+#: directorymergewindow.cpp:2272
+msgid "Skipped."
+msgstr "Přeskočeno."
+
+#: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493
+msgid "In progress..."
+msgstr "Probíhá..."
+
+#: directorymergewindow.cpp:2327
+msgid "Merge operation complete."
+msgstr "Operace sloučení dokončena."
+
+#: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330
+msgid "Merge Complete"
+msgstr "Slučování dokončeno"
+
+#: directorymergewindow.cpp:2340
+msgid ""
+"Simulated merge complete: Check if you agree with the proposed operations."
+msgstr ""
+"Simulované sloučení dokončeno: Ověřte si, zda souhlasíte s navrženými "
+"operacemi."
+
+#: directorymergewindow.cpp:2374
+msgid "An error occurred. Press OK to see detailed information.\n"
+msgstr "Vyskytla se chyba. Detailní informace uvidíte po stisknutí OK.\n"
+
+#: directorymergewindow.cpp:2406
+#, kde-format
+msgid "Error: While deleting %1: Creating backup failed."
+msgstr "Chyba: při mazání %1: Vytvoření zálohy selhalo."
+
+#: directorymergewindow.cpp:2413
+#, kde-format
+msgid "delete directory recursively( %1 )"
+msgstr "smazat adresář rekurzivně( %1 )"
+
+#: directorymergewindow.cpp:2415
+#, kde-format
+msgid "delete( %1 )"
+msgstr "odstranit( %1)"
+
+#: directorymergewindow.cpp:2430
+msgid "Error: delete dir operation failed while trying to read the directory."
+msgstr "Chyba: operace mazání adresáře selhala při pokusu načítání adresáře."
+
+#: directorymergewindow.cpp:2449
+#, kde-format
+msgid "Error: rmdir( %1 ) operation failed."
+msgstr "Chyba: operace smazat adresář( %1 ) selhala."
+
+#: directorymergewindow.cpp:2459
+msgid "Error: delete operation failed."
+msgstr "Chyba: operace mazání selhala."
+
+#: directorymergewindow.cpp:2485
+#, kde-format
+msgid "manual merge( %1, %2, %3 -> %4)"
+msgstr "ručně sloučit( %1, %2, %3 -> %4)"
+
+#: directorymergewindow.cpp:2488
+msgid ""
+"     Note: After a manual merge the user should continue by pressing F7."
+msgstr "Pozn.: Po ručním slučování by měl uživatel pokračovat stiskem F7."
+
+#: directorymergewindow.cpp:2513
+#, kde-format
+msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed."
+msgstr ""
+"Chyba: Kopírování ( %1 -> %2 ) selhalo. Existující cíl nelze odstranit."
+
+#: directorymergewindow.cpp:2522
+#, kde-format
+msgid "copyLink( %1 -> %2 )"
+msgstr "Kopírovat odkaz ( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2533
+msgid "Error: copyLink failed: Remote links are not yet supported."
+msgstr ""
+"Chyba: kopírování odkazu selhalo: Vzdálené odkazy nejsou nyní podporovány."
+
+#: directorymergewindow.cpp:2539
+msgid "Error: copyLink failed."
+msgstr "Chyba: kopírování odkazu selhalo."
+
+#: directorymergewindow.cpp:2564
+#, kde-format
+msgid "copy( %1 -> %2 )"
+msgstr "kopírovat( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2590
+#, kde-format
+msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination."
+msgstr "Chyba při přejmenování ( %1 -> %2 ): Existující cíl nelze odstranit."
+
+#: directorymergewindow.cpp:2596
+#, kde-format
+msgid "rename( %1 -> %2 )"
+msgstr "přejmenovat( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2605
+msgid "Error: Rename failed."
+msgstr "Chyba: Přejmenování selhalo."
+
+#: directorymergewindow.cpp:2623
+#, kde-format
+msgid "Error during makeDir of %1. Cannot delete existing file."
+msgstr "Chyba při vytvoření adresáře %1. Nelze odstranit existující soubor."
+
+#: directorymergewindow.cpp:2639
+#, kde-format
+msgid "makeDir( %1 )"
+msgstr "Vytvořit adresář ( %1 )"
+
+#: directorymergewindow.cpp:2649
+msgid "Error while creating directory."
+msgstr "Chyba při vytvoření adresáře."
+
+#: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784
+msgid "Dest"
+msgstr "Cíl"
+
+#: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709
+msgid "Dir"
+msgstr "Adresář"
+
+#: directorymergewindow.cpp:2678
+msgid "Type"
+msgstr "Typ"
+
+#: directorymergewindow.cpp:2678
+msgid "Size"
+msgstr "Velikost"
+
+#: directorymergewindow.cpp:2679
+msgid "Attr"
+msgstr "Atributy"
+
+#: directorymergewindow.cpp:2679
+msgid "Last Modification"
+msgstr "Poslední změna"
+
+#: directorymergewindow.cpp:2679
+msgid "Link-Destination"
+msgstr "Cíl odkazu"
+
+#: directorymergewindow.cpp:2709 difftextwindow.cpp:401
+msgid "File"
+msgstr "Soubor"
+
+#: directorymergewindow.cpp:2726
+msgid "not available"
+msgstr "nedostupný"
+
+#: directorymergewindow.cpp:2746
+msgid "A (Dest): "
+msgstr "A (cíl): "
+
+#: directorymergewindow.cpp:2749
+msgid "A (Base): "
+msgstr "A (základní): "
+
+#: directorymergewindow.cpp:2755
+msgid "B (Dest): "
+msgstr "B (cíl): "
+
+#: directorymergewindow.cpp:2763
+msgid "C (Dest): "
+msgstr "C (cíl): "
+
+#: directorymergewindow.cpp:2769
+msgid "Dest: "
+msgstr "Cíl: "
+
+#: directorymergewindow.cpp:2836
+msgid "Save Directory Merge State As..."
+msgstr "Uložit stav sloučení adresáře jako..."
+
+#: directorymergewindow.cpp:2959
+msgid "Start/Continue Directory Merge"
+msgstr "Spustit / pokračovat ve sloučení adresářů"
+
+#: directorymergewindow.cpp:2960
+msgid "Run Operation for Current Item"
+msgstr "Spustit operaci pro aktuální položku"
+
+#: directorymergewindow.cpp:2961
+msgid "Compare Selected File"
+msgstr "Porovnat vybraný soubor"
+
+#: directorymergewindow.cpp:2962
+msgid "Merge Current File"
+msgstr "Sloučit aktuální soubory"
+
+#: directorymergewindow.cpp:2962
+msgid ""
+"Merge\n"
+"File"
+msgstr ""
+"Sloučit\n"
+"Soubor"
+
+#: directorymergewindow.cpp:2963
+msgid "Fold All Subdirs"
+msgstr "Sbalit všechny podadresáře"
+
+#: directorymergewindow.cpp:2964
+msgid "Unfold All Subdirs"
+msgstr "Rozbalit všechny podadresáře"
+
+#: directorymergewindow.cpp:2968
+msgid "Choose A for All Items"
+msgstr "Zvolit A pro všechny položky"
+
+#: directorymergewindow.cpp:2969
+msgid "Choose B for All Items"
+msgstr "Zvolit B pro všechny položky"
+
+#: directorymergewindow.cpp:2970
+msgid "Choose C for All Items"
+msgstr "Zvolit C pro všechny položky"
+
+#: directorymergewindow.cpp:2971
+msgid "Auto-Choose Operation for All Items"
+msgstr "Automaticky zvolit operaci pro všechny položky"
+
+#: directorymergewindow.cpp:2972
+msgid "No Operation for All Items"
+msgstr "Žádná operace pro všechny položky"
+
+#: directorymergewindow.cpp:2977
+msgid "Show Identical Files"
+msgstr "Zobrazit identické soubory"
+
+#: directorymergewindow.cpp:2977
+msgid ""
+"Identical\n"
+"Files"
+msgstr ""
+"Shodné\n"
+"Soubory"
+
+#: directorymergewindow.cpp:2978
+msgid "Show Different Files"
+msgstr "Zobrazit rozdílné soubory"
+
+#: directorymergewindow.cpp:2979
+msgid "Show Files only in A"
+msgstr "Zobrazit soubory pouze v A"
+
+#: directorymergewindow.cpp:2979
+msgid ""
+"Files\n"
+"only in A"
+msgstr ""
+"Soubory\n"
+"pouze v A"
+
+#: directorymergewindow.cpp:2980
+msgid "Show Files only in B"
+msgstr "Zobrazit soubory pouze v B"
+
+#: directorymergewindow.cpp:2980
+msgid ""
+"Files\n"
+"only in B"
+msgstr ""
+"Soubory\n"
+"pouze v B"
+
+#: directorymergewindow.cpp:2981
+msgid "Show Files only in C"
+msgstr "Zobrazit soubory pouze v C"
+
+#: directorymergewindow.cpp:2981
+msgid ""
+"Files\n"
+"only in C"
+msgstr ""
+"Soubory\n"
+"pouze v C"
+
+#: directorymergewindow.cpp:2985
+msgid "Compare Explicitly Selected Files"
+msgstr "Porovnat výlučně vybrané soubory"
+
+#: directorymergewindow.cpp:2986
+msgid "Merge Explicitly Selected Files"
+msgstr "Sloučit výlučně vybrané soubory"
+
+#: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995
+msgid "Do Nothing"
+msgstr "Nedělat nic"
+
+#: directorymergewindow.cpp:2989
+msgid "A"
+msgstr "A"
+
+#: directorymergewindow.cpp:2990
+msgid "B"
+msgstr "B"
+
+#: directorymergewindow.cpp:2991
+msgid "C"
+msgstr "C"
+
+#: directorymergewindow.cpp:3000
+msgid "Delete A && B"
+msgstr "Smazat A a B"
+
+#: directorymergewindow.cpp:3003
+msgid "Merge to A && B"
+msgstr "Sloučit do A a B"
+
+#: main.cpp:74 main.cpp:76
+msgid "Ignored. (User defined.)"
+msgstr "Ignorováno (Nastaveno uživatelem)"
+
+#: main.cpp:162
+msgid "kdiff3"
+msgstr "kdiff3"
+
+#: main.cpp:164
+msgid "Tool for Comparison and Merge of Files and Directories"
+msgstr "Nástroj pro porovnávání a slučování souborů a adresářů"
+
+#: main.cpp:165
+msgid "(c) 2002-2011 Joachim Eibl"
+msgstr "(c) 2002-2011 Joachim Eibl"
+
+#: main.cpp:172 kdiff3_part.cpp:303
+msgid "Joachim Eibl"
+msgstr "Joachim Eibl"
+
+#: main.cpp:173
+msgid "Eike Sauer"
+msgstr "Eike Sauer"
+
+#: main.cpp:173
+msgid "Bugfixes, Debian package maintainer"
+msgstr "Oprava chyb, hlavní správce balíčků Debian"
+
+#: main.cpp:174
+msgid "Sebastien Fricker"
+msgstr "Sebastien Fricker"
+
+#: main.cpp:174
+msgid "Windows installer"
+msgstr "Instalátor Windows"
+
+#: main.cpp:175
+msgid "Stephan Binner"
+msgstr "Stephan Binner"
+
+#: main.cpp:175
+msgid "i18n-help"
+msgstr "i18n-help"
+
+#: main.cpp:176
+msgid "Stefan Partheymueller"
+msgstr "Stefan Partheymueller"
+
+#: main.cpp:176
+msgid "Clipboard-patch"
+msgstr "Patch schránky"
+
+#: main.cpp:177
+msgid "David Faure"
+msgstr "David Faure"
+
+#: main.cpp:177
+msgid "KIO-Help"
+msgstr "Nápověda KIO"
+
+#: main.cpp:178
+msgid "Bernd Gehrmann"
+msgstr "Bernd Gehrmann"
+
+#: main.cpp:178
+msgid "Class CvsIgnoreList from Cervisia"
+msgstr "Třída CvsIgnoreList od Cervisia"
+
+#: main.cpp:179
+msgid "Andre Woebbeking"
+msgstr "Andre Woebbeking"
+
+#: main.cpp:179
+msgid "Class StringMatcher"
+msgstr "Třída StringMatcher"
+
+#: main.cpp:180
+msgid "Michael Denio"
+msgstr "Michael Denio"
+
+#: main.cpp:180
+msgid "Directory Equality-Coloring patch"
+msgstr "Patch pro barevné rozlišení při porovnávání adresářů"
+
+#: main.cpp:181
+msgid "Manfred Koehler"
+msgstr "Manfred Koehler"
+
+#: main.cpp:181
+msgid "Fix for slow startup on Windows"
+msgstr "Oprava pomalého spuštění ve Windows"
+
+#: main.cpp:182
+msgid "Sergey Zorin"
+msgstr "Sergej Zorin"
+
+#: main.cpp:182
+msgid "Diff Ext for Windows"
+msgstr "Externí Diff pro Windows"
+
+#: main.cpp:183
+msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+
+#: main.cpp:183
+msgid "GNU-Diffutils"
+msgstr "GNU-Diffutils"
+
+#: main.cpp:184
+msgid "Tino Boellsterling, Timothy Mee"
+msgstr "Tino Boellsterling, Timothy Mee"
+
+#: main.cpp:184
+msgid "Intensive test, use and feedback"
+msgstr "Intenzivní testování, používání a zpětné informace"
+
+#: main.cpp:185
+msgid "Michael Schmidt"
+msgstr "Michael Schmidt"
+
+#: main.cpp:185
+msgid "Mac support"
+msgstr "Podpora pro Mac"
+
+#: main.cpp:186
+msgid "Valentin Rusu"
+msgstr "Valentin Rusu"
+
+#: main.cpp:186 main.cpp:187
+msgid "KDE4 porting"
+msgstr "Portování na KDE4"
+
+#: main.cpp:187
+msgid "Albert Astals Cid"
+msgstr "Albert Astals Cid"
+
+#: main.cpp:188
+msgid "Silvan Scherrer"
+msgstr "Silvan Scherrer"
+
+#: main.cpp:188
+msgid "OS2 port"
+msgstr "Port na OS2"
+
+#: main.cpp:190
+msgid "+ Many thanks to those who reported bugs and contributed ideas!"
+msgstr "+Poděkování všem, kteří hlásili chyby a přispívali nápady!"
+
+#: main.cpp:196
+msgid "Merge the input."
+msgstr "Sloučit vstup."
+
+#: main.cpp:197
+msgid "Explicit base file. For compatibility with certain tools."
+msgstr "Výhradně základní soubor. Pro kompatibilitu s některými nástroji."
+
+#: main.cpp:198
+msgid "Output file. Implies -m. E.g.: -o newfile.txt"
+msgstr "Název výstupního souboru. Např.: -o novysoubor.txt"
+
+#: main.cpp:199
+msgid "Output file, again. (For compatibility with certain tools.)"
+msgstr "Výstupní soubor znovu. (Kvůli kompatibilitě s určitými nástroji.)"
+
+#: main.cpp:200
+msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)"
+msgstr ""
+"Nezobrazovat GUI, pokud jsou všechny konflikty řešitelné automaticky. "
+"(Potřebuje -o soubor)"
+
+#: main.cpp:201
+msgid "Don't solve conflicts automatically. (For compatibility...)"
+msgstr "Neřešit problémy automaticky. (Kvůli kompatibilitě...)"
+
+#: main.cpp:202
+msgid "Visible name replacement for input file 1 (base)."
+msgstr "Náhradní název pro vstupní soubor 1 (základní)."
+
+#: main.cpp:203
+msgid "Visible name replacement for input file 2."
+msgstr "Náhradní název pro vstupní soubor 2."
+
+#: main.cpp:204
+msgid "Visible name replacement for input file 3."
+msgstr "Náhradní název pro vstupní soubor 3."
+
+#: main.cpp:205
+msgid "Alternative visible name replacement. Supply this once for every input."
+msgstr "Alternativa náhradního názvu. Tato možnost se nabízí pro každý vstup."
+
+#: main.cpp:206
+msgid ""
+"Override a config setting. Use once for every setting. E.g.: --cs "
+"\"AutoAdvance=1\""
+msgstr ""
+"Přepsat konfiguraci. Použít pro každé nastavení. Např.: --cs "
+"\"AutoAdvance=1\""
+
+#: main.cpp:207
+msgid "Show list of config settings and current values."
+msgstr "Zobrazit seznam všech nastavení a aktuálních hodnot."
+
+#: main.cpp:208
+msgid "Use a different config file."
+msgstr "Použít rozdílný konfigurační soubor."
+
+#: main.cpp:211
+msgid "file1 to open (base, if not specified via --base)"
+msgstr "první soubor k otevření (základní, pokud není zadáno pomocí --base)"
+
+#: main.cpp:212
+msgid "file2 to open"
+msgstr "druhý soubor k otevření"
+
+#: main.cpp:213
+msgid "file3 to open"
+msgstr "třetí soubor k otevření"
+
+#: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976
+#: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002
+#: mergeresultwindow.cpp:1014
+#, kde-format
+msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)"
+msgstr ""
+"Počet zbývajících nevyřešených konfliktů: %1 (z nichž počet mezer je %2)"
+
+#: mergeresultwindow.cpp:303
+msgid ""
+"The output has been modified.\n"
+"If you continue your changes will be lost."
+msgstr ""
+"Výstup byl poměněn.\n"
+"Pokud budete pokračovat, vaše změny budou ztraceny."
+
+#: mergeresultwindow.cpp:834 pdiff.cpp:532
+msgid "All input files are binary equal."
+msgstr "Všechny vstupní soubory jsou binárně shodné."
+
+#: mergeresultwindow.cpp:836
+msgid "All input files contain the same text."
+msgstr "Všechny vstupní soubory obsahují shodný text."
+
+#: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840
+#: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540
+#, kde-format
+msgid "Files %1 and %2 are binary equal.\n"
+msgstr "Soubor %1 a %2 je binárně shodný.\n"
+
+#: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841
+#: mergeresultwindow.cpp:843
+#, kde-format
+msgid "Files %1 and %2 have equal text.\n"
+msgstr "Soubory %1 a %2 mají shodný text.\n"
+
+#: mergeresultwindow.cpp:849
+msgid "Total number of conflicts: "
+msgstr "Celkový počet konfliktů: "
+
+#: mergeresultwindow.cpp:850
+msgid ""
+"\n"
+"Nr of automatically solved conflicts: "
+msgstr ""
+"\n"
+"Počet automaticky vyřešených konfliktů: "
+
+#: mergeresultwindow.cpp:851
+msgid ""
+"\n"
+"Nr of unsolved conflicts: "
+msgstr ""
+"\n"
+"Počet nevyřešených konfliktů: "
+
+#: mergeresultwindow.cpp:853
+msgid "Conflicts"
+msgstr "Konflikty"
+
+#: mergeresultwindow.cpp:1728
+msgid "<No src line>"
+msgstr "<Žádný řádek ve frontě>"
+
+#: mergeresultwindow.cpp:1736
+msgid "<Merge Conflict (Whitespace only)>"
+msgstr "<Konflikt sloučení (pouze mezery)>"
+
+#: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517
+msgid "<Merge Conflict>"
+msgstr "<Konflikt sloučení>"
+
+#: mergeresultwindow.cpp:2725
+msgid ""
+"Not all conflicts are solved yet.\n"
+"File not saved.\n"
+msgstr ""
+"Všechny konflikty nejsou vyřešeny.\n"
+"Soubor nebyl uložen.\n"
+
+#: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736
+msgid "Conflicts Left"
+msgstr "Zbývající konflikty"
+
+#: mergeresultwindow.cpp:2734
+msgid ""
+"There is a line end style conflict. Please choose the line end style "
+"manually.\n"
+"File not saved.\n"
+msgstr ""
+"Konflikt druhu konce řádku. Zvolte prosím druh konce řádku ručně.\n"
+"Soubor nebyl uložen.\n"
+
+#: mergeresultwindow.cpp:2748
+msgid ""
+"\n"
+"\n"
+"Creating backup failed. File not saved."
+msgstr ""
+"\n"
+"\n"
+"Vytvoření zálohy selhalo. Soubor nebyl uložen."
+
+#: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792
+msgid "File Save Error"
+msgstr "Chyba ukládání souboru"
+
+#: mergeresultwindow.cpp:2792
+msgid "Error while writing."
+msgstr "Chyba při zápisu."
+
+#: mergeresultwindow.cpp:3122
+msgid "Output"
+msgstr "Výstup"
+
+#: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314
+msgid "[Modified]"
+msgstr "[Pozměněno]"
+
+#: mergeresultwindow.cpp:3141
+msgid "Encoding for saving"
+msgstr "Kódování pro uložení"
+
+#: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737
+#: optiondialog.cpp:762
+msgid "Line end style:"
+msgstr "Styl konce řádku:"
+
+#: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767
+msgid "Unix"
+msgstr "Unix"
+
+#: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737
+msgid "DOS"
+msgstr "DOS"
+
+#: mergeresultwindow.cpp:3229
+msgid "Conflict"
+msgstr "Konflikt"
+
+#: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263
+#: mergeresultwindow.cpp:3265
+msgid "Codec from"
+msgstr "Kodek od"
+
+#: kdiff3_part.cpp:157 kdiff3_part.cpp:234
+msgid "Couldn't find files for comparison."
+msgstr "Nelze nalézt soubory k porovnání."
+
+#: kdiff3_part.cpp:302
+msgid "KDiff3Part"
+msgstr "Komponenty KDiff3"
+
+#: fileaccess.cpp:612
+msgid ""
+"While trying to make a backup, deleting an older backup failed. \n"
+"Filename: "
+msgstr ""
+"Při pokusu o vytvoření zálohy selhalo odstraňování staré zálohy. \n"
+"Název souboru: "
+
+#: fileaccess.cpp:619
+msgid ""
+"While trying to make a backup, renaming failed. \n"
+"Filenames: "
+msgstr ""
+"Při pokusu o vytvoření zálohy selhalo přejmenování. \n"
+"Název souboru: "
+
+#: fileaccess.cpp:643
+#, kde-format
+msgid "Getting file status: %1"
+msgstr "Získávám stav souboru: %1"
+
+#: fileaccess.cpp:686
+#, kde-format
+msgid "Reading file: %1"
+msgstr "Načítám soubor: %1"
+
+#: fileaccess.cpp:723
+#, kde-format
+msgid "Writing file: %1"
+msgstr "Zapisuji soubor: %1"
+
+#: fileaccess.cpp:751
+msgid "Out of memory"
+msgstr "Nedostatek paměti"
+
+#: fileaccess.cpp:786
+#, kde-format
+msgid "Making directory: %1"
+msgstr "Vytvářím adresář: %1"
+
+#: fileaccess.cpp:806
+#, kde-format
+msgid "Removing directory: %1"
+msgstr "Odstraňuji adresář: %1"
+
+#: fileaccess.cpp:821
+#, kde-format
+msgid "Removing file: %1"
+msgstr "Odstraňuji soubor: %1"
+
+#: fileaccess.cpp:837
+#, kde-format
+msgid "Creating symbolic link: %1 -> %2"
+msgstr "Vytvářím symbolický odkaz: %1 -> %2"
+
+#: fileaccess.cpp:864
+#, kde-format
+msgid "Renaming file: %1 -> %2"
+msgstr "Přejmenovávám soubor: %1 -> %2"
+
+#: fileaccess.cpp:897
+#, kde-format
+msgid "Copying file: %1 -> %2"
+msgstr "Kopíruji soubor: %1 -> %2"
+
+#: fileaccess.cpp:911
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for reading failed. Filename: "
+"%1"
+msgstr ""
+"Chyba při operaci kopírování souboru: Otevírání souboru pro čtení selhalo. "
+"Název souboru: %1"
+
+#: fileaccess.cpp:917
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for writing failed. Filename: "
+"%1"
+msgstr ""
+"Chyba při operaci kopírování souboru: Otevírání souboru pro zápis selhalo. "
+"Název souboru: %1"
+
+#: fileaccess.cpp:932
+#, kde-format
+msgid "Error during file copy operation: Reading failed. Filename: %1"
+msgstr ""
+"Chyba při operaci kopírování souboru: Načítání selhalo. Název souboru: %1"
+
+#: fileaccess.cpp:941
+#, kde-format
+msgid "Error during file copy operation: Writing failed. Filename: %1"
+msgstr "Chyba při operaci kopírování souboru: Zápis selhal. Název souboru: %1"
+
+#: fileaccess.cpp:1231
+msgid "Reading directory: "
+msgstr "Načítám adresář: "
+
+#: fileaccess.cpp:1355
+#, kde-format
+msgid "Listing directory: %1"
+msgstr "Výpis adresáře: %1"
+
+#: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396
+msgid "&Cancel"
+msgstr "Z&rušit"
+
+#: difftextwindow.cpp:403
+msgid "Line"
+msgstr "Řádek"
+
+#: difftextwindow.cpp:405
+msgid "Line not available"
+msgstr "Řádek není dostupný"
+
+#: difftextwindow.cpp:1703 difftextwindow.cpp:1736
+msgid "Encoding:"
+msgstr "Kódování:"
+
+#: difftextwindow.cpp:1759 kdiff3.cpp:831
+msgid "Top line"
+msgstr "Horní řádek"
+
+#: difftextwindow.cpp:1769
+msgid "End"
+msgstr "Konec"
+
+#: kdiff3.cpp:169
+msgid "Current Configuration:"
+msgstr "Aktuální nastavení:"
+
+#: kdiff3.cpp:174
+msgid "Config Option Error:"
+msgstr "Chyba volby nastavení:"
+
+#: kdiff3.cpp:219
+msgid "Option --auto used, but no output file specified."
+msgstr "Je použit parametr --auto, ale není zadán výstupní soubor."
+
+#: kdiff3.cpp:369
+msgid "Option --auto ignored for directory comparison."
+msgstr "Parametr --auto je při porovnávání adresářů ignorován."
+
+#: kdiff3.cpp:405
+msgid "Saving failed."
+msgstr "Ukládání selhalo."
+
+#: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214
+msgid "Opening of these files failed:"
+msgstr "Otevření těchto souborů selhalo:"
+
+#: kdiff3.cpp:449
+msgid "File Open Error"
+msgstr "Chyba otevírání souboru"
+
+#: kdiff3.cpp:477
+msgid "Opens documents for comparison..."
+msgstr "Otevře dokumenty pro porovnání..."
+
+#: kdiff3.cpp:479
+msgid "Reload"
+msgstr "Obnovit"
+
+#: kdiff3.cpp:482
+msgid "Saves the merge result. All conflicts must be solved!"
+msgstr "Uloží výsledek sloučení. Musí být vyřešeny všechny konflikty!"
+
+#: kdiff3.cpp:484
+msgid "Saves the current document as..."
+msgstr "Uloží aktuální dokument jako..."
+
+#: kdiff3.cpp:487
+msgid "Print the differences"
+msgstr "Vytisknout rozdíly"
+
+#: kdiff3.cpp:490
+msgid "Quits the application"
+msgstr "Ukončí aplikaci"
+
+#: kdiff3.cpp:492
+msgid "Cuts the selected section and puts it to the clipboard"
+msgstr "Vyjme současný výběr a umístí jej do schránky"
+
+#: kdiff3.cpp:494
+msgid "Copies the selected section to the clipboard"
+msgstr "Zkopíruje vybranou sekci do schránky"
+
+#: kdiff3.cpp:496
+msgid "Pastes the clipboard contents to current position"
+msgstr "Vloží současný obsah schránky na aktuální pozici"
+
+#: kdiff3.cpp:498
+msgid "Select everything in current window"
+msgstr "Vybrat vše v aktuálním okně"
+
+#: kdiff3.cpp:500
+msgid "Search for a string"
+msgstr "Hledání řetězce"
+
+#: kdiff3.cpp:502
+msgid "Search again for the string"
+msgstr "Další hledání řetězce"
+
+#: kdiff3.cpp:507
+msgid "Enables/disables the statusbar"
+msgstr "Povolí/zakáže stavovou lištu"
+
+#: kdiff3.cpp:511
+msgid "Configure KDiff3..."
+msgstr "Nastavit: KDiff3..."
+
+#: kdiff3.cpp:532
+msgid "Go to Current Delta"
+msgstr "Přejít na aktuální rozdíl"
+
+#: kdiff3.cpp:532
+msgid ""
+"Current\n"
+"Delta"
+msgstr ""
+"Aktuální\n"
+"rozdíl"
+
+#: kdiff3.cpp:534
+msgid "Go to First Delta"
+msgstr "Přejít na první rozdíl"
+
+#: kdiff3.cpp:534
+msgid ""
+"First\n"
+"Delta"
+msgstr ""
+"První\n"
+"rozdíl"
+
+#: kdiff3.cpp:536
+msgid "Go to Last Delta"
+msgstr "Přejít na poslední rozdíl"
+
+#: kdiff3.cpp:536
+msgid ""
+"Last\n"
+"Delta"
+msgstr ""
+"Poslední\n"
+"rozdíl"
+
+#: kdiff3.cpp:538
+msgid "(Skips white space differences when \"Show White Space\" is disabled.)"
+msgstr ""
+"(Přeskočí rozdíly v mezerách pokud je vypnuta volba \"Zobrazit mezery\".)"
+
+#: kdiff3.cpp:539
+msgid ""
+"(Does not skip white space differences even when \"Show White Space\" is "
+"disabled.)"
+msgstr ""
+"(Nepřeskočí rozdíly v mezerách ani pokud je vypnuta volba \"Zobrazit mezery"
+"\".)"
+
+#: kdiff3.cpp:540
+msgid "Go to Previous Delta"
+msgstr "Přejít na předchozí rozdíl"
+
+#: kdiff3.cpp:540
+msgid ""
+"Prev\n"
+"Delta"
+msgstr ""
+"Předchozí\n"
+"rozdíl"
+
+#: kdiff3.cpp:542
+msgid "Go to Next Delta"
+msgstr "Přejít na další rozdíl"
+
+#: kdiff3.cpp:542
+msgid ""
+"Next\n"
+"Delta"
+msgstr ""
+"Další\n"
+"rozdíl"
+
+#: kdiff3.cpp:544
+msgid "Go to Previous Conflict"
+msgstr "Přejít na předchozí konflikt"
+
+#: kdiff3.cpp:544
+msgid ""
+"Prev\n"
+"Conflict"
+msgstr ""
+"Předchozí\n"
+"Konflikt"
+
+#: kdiff3.cpp:546
+msgid "Go to Next Conflict"
+msgstr "Přejít na další konflikt"
+
+#: kdiff3.cpp:546
+msgid ""
+"Next\n"
+"Conflict"
+msgstr ""
+"Další\n"
+"Konflikt"
+
+#: kdiff3.cpp:548
+msgid "Go to Previous Unsolved Conflict"
+msgstr "Přejít na předchozí nevyřešený konflikt"
+
+#: kdiff3.cpp:548
+msgid ""
+"Prev\n"
+"Unsolved"
+msgstr ""
+"Předchozí\n"
+"Nevyřešeno"
+
+#: kdiff3.cpp:550
+msgid "Go to Next Unsolved Conflict"
+msgstr "Přejít na další nevyřešený konflikt"
+
+#: kdiff3.cpp:550
+msgid ""
+"Next\n"
+"Unsolved"
+msgstr ""
+"Další\n"
+"Nevyřešeno"
+
+#: kdiff3.cpp:552
+msgid "Select Line(s) From A"
+msgstr "Vybrat řádky z A"
+
+#: kdiff3.cpp:552
+msgid ""
+"Choose\n"
+"A"
+msgstr ""
+"Zvolit\n"
+"A"
+
+#: kdiff3.cpp:553
+msgid "Select Line(s) From B"
+msgstr "Vybrat řádky z B"
+
+#: kdiff3.cpp:553
+msgid ""
+"Choose\n"
+"B"
+msgstr ""
+"Zvolit\n"
+"B"
+
+#: kdiff3.cpp:554
+msgid "Select Line(s) From C"
+msgstr "Vybrat řádky z C"
+
+#: kdiff3.cpp:554
+msgid ""
+"Choose\n"
+"C"
+msgstr ""
+"Zvolit\n"
+"C"
+
+#: kdiff3.cpp:555
+msgid "Automatically Go to Next Unsolved Conflict After Source Selection"
+msgstr "Po výběru zdroje automaticky přejít na další nevyřešený konflikt"
+
+#: kdiff3.cpp:555
+msgid ""
+"Auto\n"
+"Next"
+msgstr ""
+"Automaticky\n"
+"Další"
+
+#: kdiff3.cpp:557
+msgid "Show Space && Tabulator Characters for Differences"
+msgstr "Zobrazit znaky mezer a tabulátorů v rozdílech"
+
+#: kdiff3.cpp:557
+msgid ""
+"White\n"
+"Characters"
+msgstr ""
+"Bílé\n"
+"znaky"
+
+#: kdiff3.cpp:558
+msgid "Show White Space"
+msgstr "Zobrazit mezery"
+
+#: kdiff3.cpp:558
+msgid ""
+"White\n"
+"Deltas"
+msgstr ""
+"Mezery\n"
+"rozdíly"
+
+#: kdiff3.cpp:560
+msgid "Show Line Numbers"
+msgstr "Zobrazit čísla řádků"
+
+#: kdiff3.cpp:560
+msgid ""
+"Line\n"
+"Numbers"
+msgstr ""
+"Řádky\n"
+"čísla"
+
+#: kdiff3.cpp:561
+msgid "Choose A Everywhere"
+msgstr "Všude zvolit A"
+
+#: kdiff3.cpp:562
+msgid "Choose B Everywhere"
+msgstr "Všude zvolit B"
+
+#: kdiff3.cpp:563
+msgid "Choose C Everywhere"
+msgstr "Všude zvolit C"
+
+#: kdiff3.cpp:564
+msgid "Choose A for All Unsolved Conflicts"
+msgstr "Zvolit A pro všechny nevyřešené konflikty"
+
+#: kdiff3.cpp:565
+msgid "Choose B for All Unsolved Conflicts"
+msgstr "Zvolit B pro všechny nevyřešené konflikty"
+
+#: kdiff3.cpp:566
+msgid "Choose C for All Unsolved Conflicts"
+msgstr "Zvolit C pro všechny nevyřešené konflikty"
+
+#: kdiff3.cpp:567
+msgid "Choose A for All Unsolved Whitespace Conflicts"
+msgstr "Zvolit A pro všechny nevyřešené konflikty s mezerami"
+
+#: kdiff3.cpp:568
+msgid "Choose B for All Unsolved Whitespace Conflicts"
+msgstr "Zvolit B pro všechny nevyřešené konflikty s mezerami"
+
+#: kdiff3.cpp:569
+msgid "Choose C for All Unsolved Whitespace Conflicts"
+msgstr "Zvolit C pro všechny nevyřešené konflikty s mezerami"
+
+#: kdiff3.cpp:570
+msgid "Automatically Solve Simple Conflicts"
+msgstr "Automaticky vyřešit jednoduché konflikty"
+
+#: kdiff3.cpp:571
+msgid "Set Deltas to Conflicts"
+msgstr "Všechny rozdíly považovat za konflikty"
+
+#: kdiff3.cpp:572
+msgid "Run Regular Expression Auto Merge"
+msgstr "Spustit regulární výraz automatického sloučení"
+
+#: kdiff3.cpp:573
+msgid "Automatically Solve History Conflicts"
+msgstr "Automaticky vyřešit historii konfliktů"
+
+#: kdiff3.cpp:574
+msgid "Split Diff At Selection"
+msgstr "Rozdělit rozdíl ve výběru"
+
+#: kdiff3.cpp:575
+msgid "Join Selected Diffs"
+msgstr "Sloučit vybrané rozdíly"
+
+#: kdiff3.cpp:577
+msgid "Show Window A"
+msgstr "Zobrazit okno A"
+
+#: kdiff3.cpp:578
+msgid "Show Window B"
+msgstr "Zobrazit okno B"
+
+#: kdiff3.cpp:579
+msgid "Show Window C"
+msgstr "Zobrazit okno C"
+
+#: kdiff3.cpp:580 kdiff3.cpp:591
+msgid "Focus Next Window"
+msgstr "Zaostřit další okno"
+
+#: kdiff3.cpp:582
+msgid "Normal Overview"
+msgstr "Normální přehled"
+
+#: kdiff3.cpp:583
+msgid "A vs. B Overview"
+msgstr "Přehled A proti B"
+
+#: kdiff3.cpp:584
+msgid "A vs. C Overview"
+msgstr "Přehled A proti C"
+
+#: kdiff3.cpp:585
+msgid "B vs. C Overview"
+msgstr "Přehled B proti C"
+
+#: kdiff3.cpp:586
+msgid "Word Wrap Diff Windows"
+msgstr "Zalamovat řádky v porovnávacích oknech"
+
+#: kdiff3.cpp:587
+msgid "Add Manual Diff Alignment"
+msgstr "Ručně přidat zarovnání"
+
+#: kdiff3.cpp:588
+msgid "Clear All Manual Diff Alignments"
+msgstr "Odstranit všechna ručně přidaná zarovnání"
+
+#: kdiff3.cpp:593
+msgid "Focus Prev Window"
+msgstr "Zaostřit předchozí okno"
+
+#: kdiff3.cpp:594
+msgid "Toggle Split Orientation"
+msgstr "Přepnout orientaci rozdělení"
+
+#: kdiff3.cpp:596
+msgid "Dir && Text Split Screen View"
+msgstr "Zobrazit rozdělení obrazovky na adresáře a text"
+
+#: kdiff3.cpp:598
+msgid "Toggle Between Dir && Text View"
+msgstr "Přepnout mezi zobrazením adresáře  textu"
+
+#: kdiff3.cpp:654 pdiff.cpp:1812
+msgid "The merge result hasn't been saved."
+msgstr "Výsledek sloučení nebyl uložen."
+
+#: kdiff3.cpp:656
+msgid "Save && Quit"
+msgstr "Uložit a ukončit"
+
+#: kdiff3.cpp:657
+msgid "Quit Without Saving"
+msgstr "Ukončit bez uložení"
+
+#: kdiff3.cpp:665 pdiff.cpp:1823
+msgid "Saving the merge result failed."
+msgstr "Uložení výsledku sloučení selhalo."
+
+#: kdiff3.cpp:676 pdiff.cpp:1078
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort?"
+msgstr "Právě probíhá sloučení adresářů. Opravdu jej chcete ukončit?"
+
+#: kdiff3.cpp:701
+msgid "Saving file..."
+msgstr "Ukládám soubor..."
+
+#: kdiff3.cpp:718
+msgid "Saving file with a new filename..."
+msgstr "Ukládám soubor pod jiným názvem..."
+
+#: kdiff3.cpp:781
+msgid "Printing not implemented."
+msgstr "Tisk neimplementován"
+
+#: kdiff3.cpp:815
+msgid "Printing..."
+msgstr "Tisknu..."
+
+#: kdiff3.cpp:956
+msgid "Selection"
+msgstr "Výběr"
+
+#: kdiff3.cpp:982
+msgid "Printing completed."
+msgstr "Tisk dokončen."
+
+#: kdiff3.cpp:986
+msgid "Printing aborted."
+msgstr "Tisk přerušen."
+
+#: kdiff3.cpp:993
+msgid "Exiting..."
+msgstr "Ukončuji..."
+
+#: kdiff3.cpp:1006
+msgid "Toggling toolbar..."
+msgstr "Přepínání panelu nástrojů..."
+
+#: kdiff3.cpp:1027
+msgid "Toggle the statusbar..."
+msgstr "Přepnout stavovou lištu..."
+
+#: smalldialogs.cpp:58
+msgid "A (Base):"
+msgstr "A (základní):"
+
+#: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99
+#: smalldialogs.cpp:142
+msgid "File..."
+msgstr "Soubor..."
+
+#: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101
+#: smalldialogs.cpp:144
+msgid "Dir..."
+msgstr "Adresář..."
+
+#: smalldialogs.cpp:93
+msgid "C (Optional):"
+msgstr "C (nepovinné):"
+
+#: smalldialogs.cpp:116
+msgid "Swap/Copy Names ..."
+msgstr "Prohodit/kopírovat názvy ..."
+
+#: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123
+#, kde-format
+msgid "Swap %1<->%2"
+msgstr "Prohodit %1<->%2"
+
+#: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126
+#, kde-format
+msgid "Copy %1->Output"
+msgstr "Kopírovat %1->Výstup"
+
+#: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129
+#, kde-format
+msgid "Swap %1<->Output"
+msgstr "Prohodit %1<->Výstup"
+
+#: smalldialogs.cpp:136
+msgid "Output (optional):"
+msgstr "Výstup (nepovinné):"
+
+#: smalldialogs.cpp:168
+msgid "Configure..."
+msgstr "Nastavit..."
+
+#: smalldialogs.cpp:174
+msgid "&OK"
+msgstr "&OK"
+
+#: smalldialogs.cpp:362
+msgid "Search text:"
+msgstr "Hledat text:"
+
+#: smalldialogs.cpp:369
+msgid "Case sensitive"
+msgstr "Rozlišovat VELKÁ/malá"
+
+#: smalldialogs.cpp:372
+msgid "Search A"
+msgstr "Prohledat A"
+
+#: smalldialogs.cpp:377
+msgid "Search B"
+msgstr "Prohledat B"
+
+#: smalldialogs.cpp:382
+msgid "Search C"
+msgstr "Prohledat C"
+
+#: smalldialogs.cpp:387
+msgid "Search output"
+msgstr "Prohledat výstup"
+
+#: smalldialogs.cpp:392
+msgid "&Search"
+msgstr "&Hledat"
+
+#: smalldialogs.cpp:409
+msgid "Regular Expression Tester"
+msgstr "Testovat regulární výraz"
+
+#: smalldialogs.cpp:414 optiondialog.cpp:936
+msgid "Auto merge regular expression:"
+msgstr "Automaticky sloučit regulární výraz:"
+
+#: smalldialogs.cpp:422
+msgid "Example auto merge line:"
+msgstr "Příklad řádku automatického sloučení:"
+
+#: smalldialogs.cpp:424
+msgid "To test auto merge, copy a line as used in your files."
+msgstr ""
+"Pro vyzkoušení automatického sloučení zkopírujte řádek z vašeho souboru."
+
+#: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494
+msgid "Match result:"
+msgstr "Výsledek shody:"
+
+#: smalldialogs.cpp:441 optiondialog.cpp:962
+msgid "History start regular expression:"
+msgstr "Historie spuštění regulárních výrazů:"
+
+#: smalldialogs.cpp:449
+msgid "Example history start line (with leading comment):"
+msgstr "Příklad počátečního řádku historie (včetně úvodního komentáře):"
+
+#: smalldialogs.cpp:451
+msgid ""
+"Copy a history start line as used in your files,\n"
+"including the leading comment."
+msgstr ""
+"Zkopírujte úvodní řádek historie z vašeho souboru\n"
+"včetně úvodního komentáře."
+
+#: smalldialogs.cpp:469 optiondialog.cpp:972
+msgid "History entry start regular expression:"
+msgstr "Regulární výraz pro záznamy historie spouštění:"
+
+#: smalldialogs.cpp:477
+msgid "History sort key order:"
+msgstr "Klíč k setřídění historie:"
+
+#: smalldialogs.cpp:485
+msgid "Example history entry start line (without leading comment):"
+msgstr "Příklad počátečního řádku záznamů historie (bez úvodního komentáře):"
+
+#: smalldialogs.cpp:487
+msgid ""
+"Copy a history entry start line as used in your files,\n"
+"but omit the leading comment."
+msgstr ""
+"Zkopírujte úvodní řádek záznamů historie z vašeho souboru,\n"
+"avšak vynechte úvodní komentář."
+
+#: smalldialogs.cpp:501
+msgid "Sort key result:"
+msgstr "Výsledek klíče k setřídění:"
+
+#: smalldialogs.cpp:508
+msgid "OK"
+msgstr "OK"
+
+#: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583
+msgid "Match success."
+msgstr "Shoda úspěšná."
+
+#: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589
+msgid "Match failed."
+msgstr "Shoda selhala."
+
+#: smalldialogs.cpp:574
+msgid "Opening and closing parentheses do not match in regular expression."
+msgstr "Levé a pravé závorky se do regulárního výrazu nehodí."
+
+#: optiondialog.cpp:367
+msgid "Unicode, 8 bit"
+msgstr "Unicode, 8 bit"
+
+#: optiondialog.cpp:368
+msgid "Unicode"
+msgstr "Unicode"
+
+#: optiondialog.cpp:369
+msgid "Latin1"
+msgstr "Latin1"
+
+#: optiondialog.cpp:388
+msgid "Change this if non-ASCII characters are not displayed correctly."
+msgstr ""
+"Pokud nejsou jiné než ASCII znaky správně zobrazeny, změňte tuto hodnotu."
+
+#: optiondialog.cpp:465
+msgid "Configure"
+msgstr "Nastavit"
+
+#: optiondialog.cpp:531
+msgid "Font"
+msgstr "Písmo"
+
+#: optiondialog.cpp:532
+msgid "Editor & Diff Output Font"
+msgstr "Výstupní písmo editoru & porovnávání"
+
+#: optiondialog.cpp:556
+msgid "Italic font for deltas"
+msgstr "Zobrazit rozdíly kurzívou"
+
+#: optiondialog.cpp:559
+msgid ""
+"Selects the italic version of the font for differences.\n"
+"If the font doesn't support italic characters, then this does nothing."
+msgstr ""
+"Pro rozdíly zvolí styl písma Kurzíva.\n"
+"Pokud písmo kurzívu nepodporuje, pak se nic nezmění."
+
+#: optiondialog.cpp:568
+msgid "Color"
+msgstr "Barva"
+
+#: optiondialog.cpp:569
+msgid "Colors Settings"
+msgstr "Nastavení barev"
+
+#: optiondialog.cpp:588
+msgid "Editor and Diff Views:"
+msgstr "Zobrazení editoru a porovnávání:"
+
+#: optiondialog.cpp:596
+msgid "Foreground color:"
+msgstr "Barva popředí:"
+
+#: optiondialog.cpp:603
+msgid "Background color:"
+msgstr "Barva pozadí:"
+
+#: optiondialog.cpp:612
+msgid "Diff background color:"
+msgstr "Barva pozadí rozdílů:"
+
+#: optiondialog.cpp:620
+msgid "Color A:"
+msgstr "Barva A:"
+
+#: optiondialog.cpp:628
+msgid "Color B:"
+msgstr "Barva B:"
+
+#: optiondialog.cpp:636
+msgid "Color C:"
+msgstr "Barva C:"
+
+#: optiondialog.cpp:643
+msgid "Conflict color:"
+msgstr "Barva konfliktů:"
+
+#: optiondialog.cpp:651
+msgid "Current range background color:"
+msgstr "Barva pozadí rozdílů v aktuální oblasti:"
+
+#: optiondialog.cpp:659
+msgid "Current range diff background color:"
+msgstr "Barva pozadí aktuální oblasti:"
+
+#: optiondialog.cpp:666
+msgid "Color for manually aligned difference ranges:"
+msgstr "Barva pro ručně upravené rozdíly oblasti:"
+
+#: optiondialog.cpp:672
+msgid "Directory Comparison View:"
+msgstr "Zobrazení porovnání adresářů:"
+
+#: optiondialog.cpp:678
+msgid "Newest file color:"
+msgstr "Barva nejnovějšího souboru:"
+
+#: optiondialog.cpp:682
+msgid ""
+"Changing this color will only be effective when starting the next directory "
+"comparison."
+msgstr ""
+"Změna této barvy je účinná pouze při spuštění porovnávání dalšího adresáře."
+
+#: optiondialog.cpp:687
+msgid "Oldest file color:"
+msgstr "Barva nejstaršího souboru:"
+
+#: optiondialog.cpp:695
+msgid "Middle age file color:"
+msgstr "Barva středně starého souboru:"
+
+#: optiondialog.cpp:703
+msgid "Color for missing files:"
+msgstr "Barva chybějících souborů:"
+
+#: optiondialog.cpp:717
+msgid "Editor"
+msgstr "Editor"
+
+#: optiondialog.cpp:718
+msgid "Editor Behavior"
+msgstr "Chování editoru"
+
+#: optiondialog.cpp:732
+msgid "Tab inserts spaces"
+msgstr "Tabulátor vloží mezery"
+
+#: optiondialog.cpp:735
+msgid ""
+"On: Pressing tab generates the appropriate number of spaces.\n"
+"Off: A tab character will be inserted."
+msgstr ""
+"Vyp: Stisknutí tabulátoru vygeneruje příslušný počet míst.\n"
+"Vyp: Bude vložen znak tabulátoru."
+
+#: optiondialog.cpp:741
+msgid "Tab size:"
+msgstr "Velikost tabulátoru:"
+
+#: optiondialog.cpp:747
+msgid "Auto indentation"
+msgstr "Automaticky odsadit"
+
+#: optiondialog.cpp:750
+msgid "On: The indentation of the previous line is used for a new line.\n"
+msgstr "Zap: Odsazení z předchozího řádku bude použito pro nový řádek.\n"
+
+#: optiondialog.cpp:754
+msgid "Auto copy selection"
+msgstr "Automaticky zkopírovat výběr"
+
+#: optiondialog.cpp:757
+msgid ""
+"On: Any selection is immediately written to the clipboard.\n"
+"Off: You must explicitely copy e.g. via Ctrl-C."
+msgstr ""
+"Zap: Celý výběr je ihned vložen do schránky.\n"
+"Vyp: Výběr musíte zkopírovat např.: pomocí Ctrl-C."
+
+#: optiondialog.cpp:768
+msgid "Dos/Windows"
+msgstr "Dos/Windows"
+
+#: optiondialog.cpp:769
+msgid "Autodetect"
+msgstr "Automaticky detekovat"
+
+#: optiondialog.cpp:772
+msgid ""
+"Sets the line endings for when an edited file is saved.\n"
+"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A"
+msgstr ""
+"Zvolte kódování konce řádku při uložení editovaného souboru.\n"
+"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A"
+
+#: optiondialog.cpp:784
+msgid "Diff"
+msgstr "Porovnávání"
+
+#: optiondialog.cpp:785
+msgid "Diff Settings"
+msgstr "Nastavení porovnávání"
+
+#: optiondialog.cpp:809
+msgid "Treat as white space."
+msgstr "Zacházet jako s prázdným místem."
+
+#: optiondialog.cpp:811
+msgid "Ignore numbers"
+msgstr "Ignorovat čísla"
+
+#: optiondialog.cpp:814
+msgid ""
+"Ignore number characters during line matching phase. (Similar to Ignore "
+"white space.)\n"
+"Might help to compare files with numeric data."
+msgstr ""
+"Během průběhu srovnávání řádků ignoruje číselné znaky. (Podobné jako "
+"Ignorovat prázdná místa.)\n"
+"Může pomoci porovnávat soubory s číselnými znaky."
+
+#: optiondialog.cpp:819
+msgid "Ignore C/C++ comments"
+msgstr "Ignorovat komentáře C/C++"
+
+#: optiondialog.cpp:821
+msgid "Treat C/C++ comments like white space."
+msgstr "Považuje komentáře C/C++ za prázdné místo."
+
+#: optiondialog.cpp:825
+msgid "Ignore case"
+msgstr "Ignorovat velikost písmen"
+
+#: optiondialog.cpp:828
+msgid "Treat case differences like white space changes. ('a'<=>'A')"
+msgstr ""
+"Nakládá s rozdíly malých a VELKÝCH písmen jako se změnami prázdných míst. "
+"('a'<=>'A')"
+
+#: optiondialog.cpp:832
+msgid "Preprocessor command:"
+msgstr "Příkaz předběžného zpracování:"
+
+#: optiondialog.cpp:836
+msgid "User defined pre-processing. (See the docs for details.)"
+msgstr ""
+"Uživatelsky nastavené předběžné zpracování. (Podrobnosti získáte v "
+"dokumentaci.)"
+
+#: optiondialog.cpp:839
+msgid "Line-matching preprocessor command:"
+msgstr "Příkaz předběžného zpracování shody řádku:"
+
+#: optiondialog.cpp:843
+msgid ""
+"This pre-processor is only used during line matching.\n"
+"(See the docs for details.)"
+msgstr ""
+"Toto předběžné zpracování je použito pouze při shodě řádku.\n"
+"(Podrobnosti získáte v dokumentaci.)"
+
+#: optiondialog.cpp:846
+msgid "Try hard (slower)"
+msgstr "Důkladné hledání (pomalejší)"
+
+#: optiondialog.cpp:849
+msgid ""
+"Enables the --minimal option for the external diff.\n"
+"The analysis of big files will be much slower."
+msgstr ""
+"Pro externí porovnávání přidá parametr --minimal.\n"
+"Analýza velkých souborů bude mnohem pomalejší."
+
+#: optiondialog.cpp:854
+msgid "Align B and C for 3 input files"
+msgstr "Přizpůsobit B a C pro 3 vstupní soubory"
+
+#: optiondialog.cpp:857
+msgid ""
+"Try to align B and C when comparing or merging three input files.\n"
+"Not recommended for merging because merge might get more complicated.\n"
+"(Default is off.)"
+msgstr ""
+"Zkusí přizpůsobit B a C při porovnávání nebo slučování třech vstupních "
+"souborů.\n"
+"Pro slučování se nedoporučuje, protože sloučení může způsobit více "
+"komplikací.\n"
+"(Výchozí ve vypnuto.)"
+
+#: optiondialog.cpp:870
+msgid "Merge Settings"
+msgstr "Nastavení sloučení"
+
+#: optiondialog.cpp:885
+msgid "Auto advance delay (ms):"
+msgstr "Zpoždění pro automatický posun:"
+
+#: optiondialog.cpp:890
+msgid ""
+"When in Auto-Advance mode the result of the current selection is shown \n"
+"for the specified time, before jumping to the next conflict. Range: 0-2000 ms"
+msgstr ""
+"V režimu automatického posunu bude před přechodem na další konflikt \n"
+"zobrazen aktuální výběr po zadaný počet sekund. Rozsah: 0-2000ms"
+
+#: optiondialog.cpp:895
+msgid "Show info dialogs"
+msgstr "Zobrazit informační dialogy"
+
+#: optiondialog.cpp:897
+msgid "Show a dialog with information about the number of conflicts."
+msgstr "Zobrazí dialog s informacemi o počtu konfliktů."
+
+#: optiondialog.cpp:900
+msgid "White space 2-file merge default:"
+msgstr "Výchozí (hodnota) pro mezery při sloučení dvou souborů:"
+
+#: optiondialog.cpp:904 optiondialog.cpp:917
+msgid "Manual Choice"
+msgstr "Zvolit ručně"
+
+#: optiondialog.cpp:908 optiondialog.cpp:922
+msgid ""
+"Allow the merge algorithm to automatically select an input for white-space-"
+"only changes."
+msgstr ""
+"Umožní slučovacímu algoritmu automaticky zvolit vstup pouze pro změny "
+"prázdných míst."
+
+#: optiondialog.cpp:913
+msgid "White space 3-file merge default:"
+msgstr "Výchozí (hodnota) pro mezery při sloučení třech souborů:"
+
+#: optiondialog.cpp:927
+msgid "Automatic Merge Regular Expression"
+msgstr "Automatické sloučení regulárních výrazů"
+
+#: optiondialog.cpp:940
+msgid ""
+"Regular expression for lines where KDiff3 should automatically choose one "
+"source.\n"
+"When a line with a conflict matches the regular expression then\n"
+"- if available - C, otherwise B will be chosen."
+msgstr ""
+"Regulární výraz pro řádky, kde by měl KDiff3 automaticky zvolit zdroj.\n"
+"Pokud řádek s konfliktem odpovídá regulárnímu výrazu, pak bude vybrán C,\n"
+"pokud je dostupný, v opačném případě B."
+
+#: optiondialog.cpp:946
+msgid "Run regular expression auto merge on merge start"
+msgstr "Spustit regulární výraz automatického sloučení při spuštění sloučení"
+
+#: optiondialog.cpp:948
+msgid ""
+"Run the merge for auto merge regular expressions\n"
+"immediately when a merge starts.\n"
+msgstr ""
+"Spustí automatické sloučení regulárních výrazů\n"
+"ihned při spuštění sloučení.\n"
+
+#: optiondialog.cpp:953
+msgid "Version Control History Merging"
+msgstr "Sloučení historie správy verzí"
+
+#: optiondialog.cpp:966
+msgid ""
+"Regular expression for the start of the version control history entry.\n"
+"Usually this line contains the \"$Log$\" keyword.\n"
+"Default value: \".*\\$Log.*\\$.*\""
+msgstr ""
+"Regulární výraz pro spuštění záznamů historie správy verzí.\n"
+"Obvykle tento řádek obsahuje klíčové slovo \"$Log$\".\n"
+"Výchozí hodnota: \".*\\$Log.*\\$.*\""
+
+#: optiondialog.cpp:984
+msgid ""
+"A version control history entry consists of several lines.\n"
+"Specify the regular expression to detect the first line (without the leading "
+"comment).\n"
+"Use parentheses to group the keys you want to use for sorting.\n"
+"If left empty, then KDiff3 assumes that empty lines separate history "
+"entries.\n"
+"See the documentation for details."
+msgstr ""
+"Záznamy historie správy verzí se skládají z několika řádků.\n"
+"Zadejte regulární výraz k rozeznání prvního řádku (bez úvodního komentáře).\n"
+"Pro seskupení klíčů, které zvolíte k setřídění použijte závorky.\n"
+"Pokud zůstane prázdné, předpokládá KDiff3, že prázdné řádky oddělují záznamy "
+"historie.\n"
+"Podrobnosti získáte v dokumentaci."
+
+#: optiondialog.cpp:992
+msgid "History merge sorting"
+msgstr "Třídit historii sloučení"
+
+#: optiondialog.cpp:994
+msgid "Sort version control history by a key."
+msgstr "Setřídit historii správy verzí podle klíče."
+
+#: optiondialog.cpp:1004
+msgid "History entry start sort key order:"
+msgstr "Klíč k setřídění záznamů historie spuštění:"
+
+#: optiondialog.cpp:1008
+msgid ""
+"Each pair of parentheses used in the regular expression for the history "
+"start entry\n"
+"groups a key that can be used for sorting.\n"
+"Specify the list of keys (that are numbered in order of occurrence\n"
+"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n"
+"If left empty, then no sorting will be done.\n"
+"See the documentation for details."
+msgstr ""
+"Každý pár závorek použitých v regulárním výrazu pro záznam historie "
+"spuštění\n"
+"seskupuje klíč, který lze použít pro setřídění.\n"
+"Zadejte seznam klíčů (číslovaný dle počtu výskytů začínající od 1)\n"
+" oddělený ',' (např. \"4,5,6,1,2,3,7\").\n"
+"Pokud zůstane prázdné, potom k setřídění nedojde.\n"
+"Podrobnosti získáte v dokumentaci."
+
+#: optiondialog.cpp:1019
+msgid "Merge version control history on merge start"
+msgstr "Při spuštění sloučení sloučit historii správy verzí"
+
+#: optiondialog.cpp:1021
+msgid "Run version control history automerge on merge start."
+msgstr ""
+"Při spuštění sloučení spustí automatické sloučení historie správy verzí."
+
+#: optiondialog.cpp:1025
+msgid "Max number of history entries:"
+msgstr "Maximální počet záznamů historie:"
+
+#: optiondialog.cpp:1028
+msgid "Cut off after specified number. Use -1 for infinite number of entries."
+msgstr "Po zadaném čísle odstřihnout. Číslo -1 znamená nekonečno položek."
+
+#: optiondialog.cpp:1032
+msgid "Test your regular expressions"
+msgstr "Vyzkoušet vaše regulární výrazy"
+
+#: optiondialog.cpp:1037
+msgid "Irrelevant merge command:"
+msgstr "Příkaz při irelevantním sloučení:"
+
+#: optiondialog.cpp:1041
+msgid ""
+"If specified this script is run after automerge\n"
+"when no other relevant changes were detected.\n"
+"Called with the parameters: filename1 filename2 filename3"
+msgstr ""
+"Při zvolení bude po automatickém sloučení spuštěn tento skript,\n"
+"pokud nebudou zjištěny další relevantní změny.\n"
+"Voláno s parametry: NázevSouboru1 NázevSouboru3 NázevSouboru3"
+
+#: optiondialog.cpp:1047
+msgid "Auto save and quit on merge without conflicts"
+msgstr "Automaticky uložit a ukončit při sloučení bez konfliktů"
+
+#: optiondialog.cpp:1050
+msgid ""
+"If KDiff3 was started for a file-merge from the command line and all\n"
+"conflicts are solvable without user interaction then automatically save and "
+"quit.\n"
+"(Similar to command line option \"--auto\".)"
+msgstr ""
+"Pokud je KDiff3 pro sloučení souboru spuštěn z příkazového řádku a všechny\n"
+"konflikty jsou vyřešeny bez zásahu uživatele, pak bude uložení a ukončení "
+"automatické.\n"
+"(Podobně jako volba příkazového řádku \"--auto\".)"
+
+#: optiondialog.cpp:1061 optiondialog.cpp:1062
+msgid "Directory"
+msgstr "Adresář"
+
+#: optiondialog.cpp:1075
+msgid "Recursive directories"
+msgstr "Rekurzivní adresáře"
+
+#: optiondialog.cpp:1077
+msgid "Whether to analyze subdirectories or not."
+msgstr "Zda analyzovat podadresáře, nebo nikoliv."
+
+#: optiondialog.cpp:1079
+msgid "File pattern(s):"
+msgstr "Maska souborů:"
+
+#: optiondialog.cpp:1084
+msgid ""
+"Pattern(s) of files to be analyzed. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Maska souborů, které mají být analyzovány.\n"
+"Zástupné znaky: '*' a '?'\n"
+" Více šablon lze zadat při použití oddělovače: ';'"
+
+#: optiondialog.cpp:1090
+msgid "File-anti-pattern(s):"
+msgstr "Anti-maska souborů:"
+
+#: optiondialog.cpp:1095
+msgid ""
+"Pattern(s) of files to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Maska souborů, které mají být vyloučeny z analýzy.\n"
+"Zástupné znaky: '*' a '?'\n"
+" Více šablon lze zadat při použití oddělovače: ';'"
+
+#: optiondialog.cpp:1101
+msgid "Dir-anti-pattern(s):"
+msgstr "Anti-maska adresářů:"
+
+#: optiondialog.cpp:1106
+msgid ""
+"Pattern(s) of directories to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Maska adresářů, které mají být vyloučeny z analýzy.\n"
+"Zástupné znaky: '*' a '?'\n"
+" Více šablon lze zadat při použití oddělovače: ';'"
+
+#: optiondialog.cpp:1112
+msgid "Use .cvsignore"
+msgstr "Použít .cvsignore"
+
+#: optiondialog.cpp:1115
+msgid ""
+"Extends the antipattern to anything that would be ignored by CVS.\n"
+"Via local \".cvsignore\" files this can be directory specific."
+msgstr ""
+"Rozšiřuje anti-masku na vše co by CVS ignoroval.\n"
+"Pomocí souborů  \".cvsignore\" může být zvolen adresář."
+
+#: optiondialog.cpp:1120
+msgid "Find hidden files and directories"
+msgstr "Prohledat skryté soubory a adresáře"
+
+#: optiondialog.cpp:1123
+msgid "Finds files and directories with the hidden attribute."
+msgstr "Prohledá soubory a adresáře s atributem Skrytý."
+
+#: optiondialog.cpp:1125
+msgid "Finds files and directories starting with '.'."
+msgstr "Prohledá soubory a adresáře začínající tečkou."
+
+#: optiondialog.cpp:1129
+msgid "Follow file links"
+msgstr "Sledovat odkazy souborů"
+
+#: optiondialog.cpp:1132
+msgid ""
+"On: Compare the file the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+"Zap: Porovná soubor na který odkaz ukazuje.\n"
+"Vyp: Porovná odkazy."
+
+#: optiondialog.cpp:1137
+msgid "Follow directory links"
+msgstr "Sledovat odkazy adresářů"
+
+#: optiondialog.cpp:1140
+msgid ""
+"On: Compare the directory the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+"Zap: Porovná adresář na který odkaz ukazuje.\n"
+"Vyp: Porovná odkazy."
+
+#: optiondialog.cpp:1156
+msgid "Case sensitive filename comparison"
+msgstr "Při porovnávání rozlišovat VELKÁ/malá písmena v názvu souboru"
+
+#: optiondialog.cpp:1159
+msgid ""
+"The directory comparison will compare files or directories when their names "
+"match.\n"
+"Set this option if the case of the names must match. (Default for Windows is "
+"off, otherwise on.)"
+msgstr ""
+"Porovnávání adresářů bude porovnávat soubory a adresáře v případě, že se "
+"jejich názvy shodují.\n"
+"Volbu nastavte, pokud se názvy musí shodovat. (Výchozí pro Windows je Vyp., "
+"v ostatních případech Zap.)"
+
+#: optiondialog.cpp:1163
+msgid "File Comparison Mode"
+msgstr "Režim porovnávání souborů"
+
+#: optiondialog.cpp:1169
+msgid "Binary comparison"
+msgstr "Binární porovnávání"
+
+#: optiondialog.cpp:1170
+msgid "Binary comparison of each file. (Default)"
+msgstr "Binárně porovnává každý soubor. (Výchozí)"
+
+#: optiondialog.cpp:1173
+msgid "Full analysis"
+msgstr "Důkladná analýza"
+
+#: optiondialog.cpp:1174
+msgid ""
+"Do a full analysis and show statistics information in extra columns.\n"
+"(Slower than a binary comparison, much slower for binary files.)"
+msgstr ""
+"Provede důkladnou analýzu a zobrazí statistické informace ve zvláštních "
+"sloupcích.\n"
+"(Pomalejší než binární porovnávání, mnohem pomalejší pro binární soubory.)"
+
+#: optiondialog.cpp:1178
+msgid "Trust the size and modification date (unsafe)"
+msgstr "Důvěřovat velikosti a datu změny (nejisté)"
+
+#: optiondialog.cpp:1179
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"Files with equal contents but different modification dates will appear as "
+"different.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"Předpokládá se, že soubory jsou shodné, pokud se shoduje jejich datum změny "
+"a velikost.\n"
+"Soubory se stejným obsahem, ale rozdílným datumem změny. budou považovány za "
+"rozdílné.\n"
+"Vhodné pro velké adresáře, nebo pomalé sítě."
+
+#: optiondialog.cpp:1184
+msgid ""
+"Trust the size and date, but use binary comparison if date does not match "
+"(unsafe)"
+msgstr ""
+"Důvěřovat velikosti a datu, ale pokud se datum neshoduje, porovnat binárně "
+"(nejisté)"
+
+#: optiondialog.cpp:1185
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"If the dates are not equal but the sizes are, use binary comparison.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"Předpokládá se, že soubory jsou shodné, pokud se shoduje jejich délka a "
+"datum změny.\n"
+"Pokud se datumy neshodují, ale velikost ano, bude použito binární "
+"porovnávání.\n"
+"Vhodné pro velké adresáře, nebo pomalé sítě."
+
+#: optiondialog.cpp:1190
+msgid "Trust the size (unsafe)"
+msgstr "Důvěřovat velikosti (nejisté)"
+
+#: optiondialog.cpp:1191
+msgid ""
+"Assume that files are equal if their file lengths are equal.\n"
+"Useful for big directories or slow networks when the date is modified during "
+"download."
+msgstr ""
+"Předpokládá se, že soubory jsou shodné, pokud je shodná jejich délka.\n"
+"Vhodné pro velké adresáře, nebo pomalé sítě, pokud bude datum upraven při "
+"stahování."
+
+#: optiondialog.cpp:1199
+msgid "Synchronize directories"
+msgstr "Synchronizovat adresáře"
+
+#: optiondialog.cpp:1202
+msgid ""
+"Offers to store files in both directories so that\n"
+"both directories are the same afterwards.\n"
+"Works only when comparing two directories without specifying a destination."
+msgstr ""
+"Nabízí uložení souborů v obou adresářích,\n"
+"takže jsou potom oba adresáře stejné.\n"
+"Funguje pouze při porovnávání dvou adresářů bez určení cíle."
+
+#: optiondialog.cpp:1208
+msgid "White space differences considered equal"
+msgstr "Při rozdílech v mezerách pokládat za shodné"
+
+#: optiondialog.cpp:1211
+msgid ""
+"If files differ only by white space consider them equal.\n"
+"This is only active when full analysis is chosen."
+msgstr ""
+"Pokud se soubory liší pouze v mezerách, považují se za shodné.\n"
+"Aktivní pouze pokud je vybrána volba Důkladná analýza."
+
+#: optiondialog.cpp:1217
+msgid "Copy newer instead of merging (unsafe)"
+msgstr "Kopírovat novější namísto sloučení (nejisté)"
+
+#: optiondialog.cpp:1220
+msgid ""
+"Don't look inside, just take the newer file.\n"
+"(Use this only if you know what you are doing!)\n"
+"Only effective when comparing two directories."
+msgstr ""
+"Nedívá se dovnitř souboru, ale použije novější soubor.\n"
+"(Použít jen pokud víte co děláte!)\n"
+"Účinné pouze při porovnávání dvou adresářů."
+
+#: optiondialog.cpp:1225
+msgid "Backup files (.orig)"
+msgstr "Zálohovat soubory (.orig)"
+
+#: optiondialog.cpp:1228
+msgid ""
+"If a file would be saved over an old file, then the old file\n"
+"will be renamed with a '.orig' extension instead of being deleted."
+msgstr ""
+"Pokud by byl soubor uložen přes starý soubor, pak bude původní soubor\n"
+"uložen s příponou '.orig' místo toho, aby byl smazán."
+
+#: optiondialog.cpp:1301 optiondialog.cpp:1302
+msgid "Regional Settings"
+msgstr "Místní nastavení"
+
+#: optiondialog.cpp:1402
+msgid "Language (restart required)"
+msgstr "Jazyk (požadován restart)"
+
+#: optiondialog.cpp:1445
+msgid ""
+"Choose the language of the GUI strings or \"Auto\".\n"
+"For a change of language to take place, quit and restart KDiff3."
+msgstr ""
+"Zvolte jazyk pro GUI, nebo \"Automaticky\".\n"
+"Změny se projeví po příštím spuštění KDiff3."
+
+#: optiondialog.cpp:1463
+msgid "Use the same encoding for everything:"
+msgstr "Použít stejné kódování pro všechny:"
+
+#: optiondialog.cpp:1466
+msgid ""
+"Enable this allows to change all encodings by changing the first only.\n"
+"Disable this if different individual settings are needed."
+msgstr ""
+"Zapnout, pokud chcete změnit všechna kódování pouze podle změny prvního.\n"
+"Vypnout, pokud je požadováno rozdílné nastavení."
+
+#: optiondialog.cpp:1471
+msgid "Note: Local Encoding is "
+msgstr "Pozn.: Místní kódování je "
+
+#: optiondialog.cpp:1475
+msgid "File Encoding for A:"
+msgstr "Kódování souboru A:"
+
+#: optiondialog.cpp:1481
+msgid ""
+"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n"
+"If the file is not Unicode then the selected encoding will be used as "
+"fallback.\n"
+"(Unicode detection depends on the first bytes of a file.)"
+msgstr ""
+"Pokud je volba zapnuta, bude rozeznáno kódování Unicode (UTF-16 a UTF-8).\n"
+"Pokud není soubor Unicode, pak bude vybrané kódování použito jako náhradní.\n"
+"(Detekce Unicode závisí na prvním bajtu souboru.)"
+
+#: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503
+msgid "Auto Detect Unicode"
+msgstr "Automaticky rozeznat Unicode"
+
+#: optiondialog.cpp:1490
+msgid "File Encoding for B:"
+msgstr "Kódování souboru B:"
+
+#: optiondialog.cpp:1499
+msgid "File Encoding for C:"
+msgstr "Kódování souboru C:"
+
+#: optiondialog.cpp:1508
+msgid "File Encoding for Merge Output and Saving:"
+msgstr "Kódování souboru pro výstup sloučení a uložení:"
+
+#: optiondialog.cpp:1512
+msgid "Auto Select"
+msgstr "Automaticky vybrat"
+
+#: optiondialog.cpp:1515
+msgid ""
+"If enabled then the encoding from the input files is used.\n"
+"In ambiguous cases a dialog will ask the user to choose the encoding for "
+"saving."
+msgstr ""
+"Pokud je volba zapnuta, bude použito kódování ze vstupního souboru.\n"
+"V nejasných případech bude uživatel dotázán dialogem na výběr kódování pro "
+"uložení."
+
+#: optiondialog.cpp:1519
+msgid "File Encoding for Preprocessor Files:"
+msgstr "Kódování souboru pro soubory předběžného zpracování:"
+
+#: optiondialog.cpp:1530
+msgid "Right To Left Language"
+msgstr "Jazyky čtené zprava doleva"
+
+#: optiondialog.cpp:1533
+msgid ""
+"Some languages are read from right to left.\n"
+"This setting will change the viewer and editor accordingly."
+msgstr ""
+"Některé jazyky se čtou zprava doleva.\n"
+"Tato volba podle toho upraví prohlížeč a editor."
+
+#: optiondialog.cpp:1548
+msgid "Integration"
+msgstr "Integrace"
+
+#: optiondialog.cpp:1549
+msgid "Integration Settings"
+msgstr "Nastavení integrace"
+
+#: optiondialog.cpp:1563
+msgid "Command line options to ignore:"
+msgstr "Ignorovat volby příkazového řádku:"
+
+#: optiondialog.cpp:1568
+msgid ""
+"List of command line options that should be ignored when KDiff3 is used by "
+"other tools.\n"
+"Several values can be specified if separated via ';'\n"
+"This will suppress the \"Unknown option\" error."
+msgstr ""
+"Seznam voleb příkazového řádku, které by měly být ignorovány, pokud je "
+"KDiff3 používán jinými nástroji.\n"
+"Může být použito několik hodnot pokud jsou odděleny ';'\n"
+"Tímto bude potlačena chyba  \"Unknown option\"."
+
+#: optiondialog.cpp:1575
+msgid "Quit also via Escape key"
+msgstr "Ukončit také klávesou Escape"
+
+#: optiondialog.cpp:1578
+msgid ""
+"Fast method to exit.\n"
+"For those who are used to using the Escape key."
+msgstr ""
+"Rychlý způsob ukončení.\n"
+"Pro ty, kteří jsou zvyklí používat klávesu Escape."
+
+#: optiondialog.cpp:1583
+msgid "Integrate with ClearCase"
+msgstr "Integrovat s ClearCase"
+
+#: optiondialog.cpp:1586
+msgid ""
+"Integrate with Rational ClearCase from IBM.\n"
+"Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n"
+"(Only enabled when ClearCase \"bin\" directory is in the path.)"
+msgstr ""
+"Integruje s inteligentním ClearCase od IBM.\n"
+"Pozmění soubos s \"mapou\" v podadresáři ClearCase \"lib/mgrs\"\n"
+"(Povoleno pouze pokud je pro adresář ClearCase \"bin\" zadána cesta \"path"
+"\".)"
+
+#: optiondialog.cpp:1592
+msgid "Remove ClearCase Integration"
+msgstr "Odstranit integraci ClearCase"
+
+#: optiondialog.cpp:1595
+msgid ""
+"Restore the old \"map\" file from before doing the ClearCase integration."
+msgstr ""
+"Obnoví soubor se starou \"mapou\" z dříve provedené integrace ClearCase."
+
+#: optiondialog.cpp:1680
+msgid "Incompatible Font"
+msgstr "Nekompatibilní písmo"
+
+#: optiondialog.cpp:1681
+msgid "Continue at Own Risk"
+msgstr "Pokračovat na vlastní nebezpečí"
+
+#: optiondialog.cpp:1682
+msgid "Select Another Font"
+msgstr "Zvolte jiné písmo"
+
+#: optiondialog.cpp:1717
+msgid "This resets all options. Not only those of the current topic."
+msgstr "Budou obnovena všechna nastavení, nikoliv pouze aktuální téma."
+
+#: pdiff.cpp:260
+msgid "PreprocessorCmd: "
+msgstr "Příkaz předběžného zpracování: "
+
+#: pdiff.cpp:265
+msgid "The following option(s) you selected might change data:\n"
+msgstr "Následující vámi vybraná volba může změnit data:\n"
+
+#: pdiff.cpp:266
+msgid ""
+"\n"
+"Most likely this is not wanted during a merge.\n"
+"Do you want to disable these settings or continue with these settings active?"
+msgstr ""
+"\n"
+"Pravděpodobně není během slučování požadováno.\n"
+"Chcete toto nastavení vypnout, nebo pokračovat s tímto nastavením aktivním?"
+
+#: pdiff.cpp:268
+msgid "Option Unsafe for Merging"
+msgstr "Volba je pro slučování nejistá"
+
+#: pdiff.cpp:269
+msgid "Use These Options During Merge"
+msgstr "Použít tuto volbu během slučování"
+
+#: pdiff.cpp:270
+msgid "Disable Unsafe Options"
+msgstr "Zakázat nebezpečné volby"
+
+#: pdiff.cpp:300
+msgid "Loading A"
+msgstr "Načítám A"
+
+#: pdiff.cpp:304
+msgid "Loading B"
+msgstr "Načítám B"
+
+#: pdiff.cpp:321 pdiff.cpp:347
+msgid "Diff: A <-> B"
+msgstr "Rozdíly: A <-> B"
+
+#: pdiff.cpp:327 pdiff.cpp:372
+msgid "Linediff: A <-> B"
+msgstr "Rozdíly řádků: A <-> B"
+
+#: pdiff.cpp:338
+msgid "Loading C"
+msgstr "Načítám C"
+
+#: pdiff.cpp:350
+msgid "Diff: B <-> C"
+msgstr "Rozdíly: B <-> C"
+
+#: pdiff.cpp:353
+msgid "Diff: A <-> C"
+msgstr "Rozdíly: A <-> C"
+
+#: pdiff.cpp:375
+msgid "Linediff: B <-> C"
+msgstr "Rozdíly řádků: B <-> C"
+
+#: pdiff.cpp:378
+msgid "Linediff: A <-> C"
+msgstr "Rozdíly řádků: A <-> C"
+
+#: pdiff.cpp:534
+msgid "All input files contain the same text, but are not binary equal."
+msgstr ""
+"Všechny vstupní soubory obsahují stejný text, ale nejsou binárně shodné."
+
+#: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541
+#, kde-format
+msgid "Files %1 and %2 have equal text, but are not binary equal. \n"
+msgstr "Soubor %1 a %2 obsahuje stejný text, ale není binárně shodný. \n"
+
+#: pdiff.cpp:551
+msgid ""
+"Some inputfiles don't seem to be pure textfiles.\n"
+"Note that the KDiff3-merge was not meant for binary data.\n"
+"Continue at your own risk."
+msgstr ""
+"Některé vstupní soubory nevypadají jako čistě textové soubory.\n"
+"Vezměte na vědomí, že slučování v KDiff3 nebylo myšleno pro binární data.\n"
+"Pokračování na vlastní riziko."
+
+#: pdiff.cpp:566
+#, kde-format
+msgid ""
+"Some input characters could not be converted to valid unicode.\n"
+"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n"
+"Don't save the result if unsure. Continue at your own risk.\n"
+"Affected input files are in %1."
+msgstr ""
+
+#: pdiff.cpp:1080
+msgid "Abort"
+msgstr "Přerušit"
+
+#: pdiff.cpp:1087 pdiff.cpp:1175
+msgid "Opening files..."
+msgstr "Otevírám soubory..."
+
+#: pdiff.cpp:1152 pdiff.cpp:1223
+msgid "File open error"
+msgstr "Chyba otevírání souboru"
+
+#: pdiff.cpp:1255
+msgid "Cutting selection..."
+msgstr "Vyjímám výběr..."
+
+#: pdiff.cpp:1276
+msgid "Copying selection to clipboard..."
+msgstr "Kopíruji výběr do schránky..."
+
+#: pdiff.cpp:1292
+msgid "Inserting clipboard contents..."
+msgstr "Vkládám obsah schránky..."
+
+#: pdiff.cpp:1814
+msgid "Save && Continue"
+msgstr "Uložit a pokračovat"
+
+#: pdiff.cpp:1815
+msgid "Continue Without Saving"
+msgstr "Pokračovat bez ukládání"
+
+#: pdiff.cpp:2018
+msgid "Search complete."
+msgstr "Vyhledávání dokončeno."
+
+#: pdiff.cpp:2018
+msgid "Search Complete"
+msgstr "Vyhledávání dokončeno"
+
+#: pdiff.cpp:2252
+msgid "Nothing is selected in either diff input window."
+msgstr "Není nic vybráno v žádném vstupním okně rozdílů."
+
+#: pdiff.cpp:2252
+msgid "Error while adding manual diff range"
+msgstr "Chyba ručního přidávání rozsahu k porovnání"
+
+#: kdiff3_shell.cpp:76
+msgid ""
+"Could not initialize the KDiff3 part.\n"
+"This usually happens due to an installation problem. Please read the README-"
+"file in the source package for details."
+msgstr ""
+"Nelze inicializovat úlohu KDiff3.\n"
+"To je obvykle způsobeno problémem při instalaci. Podrobnosti si prosím "
+"přečtěte v souboru README v balíčku se zdroji."
+
+#: rc.cpp:1
+msgctxt "NAME OF TRANSLATORS"
+msgid "Your names"
+msgstr "Zdeněk Pech"
+
+#: rc.cpp:2
+msgctxt "EMAIL OF TRANSLATORS"
+msgid "Your emails"
+msgstr "dom.toretto@seznam.cz"
+
+#. i18n: file: kdiff3_part.rc:4
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:5
+msgid "&KDiff3"
+msgstr "&KDiff3"
+
+#. i18n: file: kdiff3_part.rc:13
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:8
+msgid "Configure KDiff3"
+msgstr "Nastavit: KDiff3"
+
+#. i18n: file: kdiff3_part.rc:16
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:11
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#. i18n: file: kdiff3_shell.rc:106
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:38
+msgid "Main Toolbar"
+msgstr "Hlavní nástrojová lišta"
diff --git a/po/cs/kdiff3fileitemactionplugin.po b/po/cs/kdiff3fileitemactionplugin.po
new file mode 100644 (file)
index 0000000..c391162
--- /dev/null
@@ -0,0 +1,85 @@
+# Copyright (C) YEAR This_file_is_part_of_KDE
+# This file is distributed under the same license as the PACKAGE package.
+# Vít Pelčák <vit@pelcak.org>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-06-27 14:29+0200\n"
+"Last-Translator: Vít Pelčák <vit@pelcak.org>\n"
+"Language-Team: Czech <kde-i18n-doc@kde.org>\n"
+"Language: cs\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.2\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
+
+#: kdiff3fileitemaction.cpp:94
+msgid "KDiff3 ..."
+msgstr "KDiff3 ..."
+
+#: kdiff3fileitemaction.cpp:125
+#, kde-format
+msgid "Compare with %1"
+msgstr "Porovnat s %1"
+
+#: kdiff3fileitemaction.cpp:131
+#, kde-format
+msgid "Merge with %1"
+msgstr "Sloučit s %1"
+
+#: kdiff3fileitemaction.cpp:137
+#, kde-format
+msgid "Save '%1' for later"
+msgstr "Uložit '%1' na později"
+
+#: kdiff3fileitemaction.cpp:143
+msgid "3-way merge with base"
+msgstr ""
+
+#: kdiff3fileitemaction.cpp:150
+msgid "Compare with ..."
+msgstr "Porovnat s..."
+
+#: kdiff3fileitemaction.cpp:162
+msgid "Clear list"
+msgstr "Vymazat seznam"
+
+#: kdiff3fileitemaction.cpp:170
+msgid "Compare"
+msgstr "Porovnat"
+
+#: kdiff3fileitemaction.cpp:176
+msgid "3 way comparison"
+msgstr "Trojcestné porovnání"
+
+#: kdiff3fileitemaction.cpp:180
+msgid "About KDiff3 menu plugin ..."
+msgstr ""
+
+#: kdiff3fileitemaction.cpp:284
+msgid ""
+"KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+
+#: kdiff3fileitemaction.cpp:286
+msgid ""
+"Using the contextmenu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else \"Save\" the first file for later. It "
+"will appear in the \"Compare With ...\" submenu. Then use \"Compare With\" "
+"on second file.\n"
+"For a 3-way merge first \"Save\" the base file, then the branch to merge and "
+"choose \"3-way merge with base\" on the other branch which will be used as "
+"destination.\n"
+"Same also applies to directory comparison and merge."
+msgstr ""
+
+#: kdiff3fileitemaction.cpp:294
+msgid "About KDiff3 File Item Action Plugin"
+msgstr ""
diff --git a/po/cs/kdiff3plugin.po b/po/cs/kdiff3plugin.po
new file mode 100644 (file)
index 0000000..d73d428
--- /dev/null
@@ -0,0 +1,84 @@
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# Vít Pelčák <vit@pelcak.org>, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3plugin\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2009-01-29 10:02+0100\n"
+"Last-Translator: Vít Pelčák <vit@pelcak.org>\n"
+"Language-Team: Czech <kde-i18n-doc@lists.kde.org>\n"
+"Language: csX-Generator: Lokalize 1.1\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
+
+#: kdiff3plugin.cpp:107
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#: kdiff3plugin.cpp:114
+#, kde-format
+msgid "Compare with %1"
+msgstr "Porovnat s %1"
+
+#: kdiff3plugin.cpp:120
+#, kde-format
+msgid "Merge with %1"
+msgstr "Sloučit s %1"
+
+#: kdiff3plugin.cpp:126
+#, kde-format
+msgid "Save '%1' for later"
+msgstr "Uložit '%1' na později"
+
+#: kdiff3plugin.cpp:132
+msgid "3-way merge with base"
+msgstr ""
+
+#: kdiff3plugin.cpp:139
+msgid "Compare with ..."
+msgstr "Porovnat s..."
+
+#: kdiff3plugin.cpp:149
+msgid "Clear list"
+msgstr "Vyčistit seznam"
+
+#: kdiff3plugin.cpp:157
+msgid "Compare"
+msgstr "Porovnat"
+
+#: kdiff3plugin.cpp:163
+msgid "3 way comparison"
+msgstr "Trojcestné porovnání"
+
+#: kdiff3plugin.cpp:167
+msgid "About KDiff3 menu plugin ..."
+msgstr ""
+
+#: kdiff3plugin.cpp:269
+msgid ""
+"KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+
+#: kdiff3plugin.cpp:271
+msgid ""
+"Using the context menu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else, \"Save\" the first file for later, and "
+"it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With"
+"\" on the second file.\n"
+"For a 3-way merge first, \"Save\" the base file, then the branch to merge, "
+"and then \"3-way merge with base\" on the other branch which will be used as "
+"the destination.\n"
+"The same also applies to directory comparison and merge."
+msgstr ""
+
+#: kdiff3plugin.cpp:279
+msgid "About KDiff3 Menu Plugin"
+msgstr ""
diff --git a/po/cy/CMakeLists.txt b/po/cy/CMakeLists.txt
new file mode 100644 (file)
index 0000000..1a2d089
--- /dev/null
@@ -0,0 +1,2 @@
+file(GLOB _po_files *.po)
+GETTEXT_PROCESS_PO_FILES(cy ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
diff --git a/po/cy/kdiff3.po b/po/cy/kdiff3.po
new file mode 100644 (file)
index 0000000..5264b8a
--- /dev/null
@@ -0,0 +1,2991 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: ../cy/messages//kdeextragear-1/kdiff3.po\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2004-09-20 15:44+0200\n"
+"Last-Translator: Thierry Vignaud <tvignaud@mandrakesoft.com>\n"
+"Language-Team: cy <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: kreplacements/kreplacements.h:105
+#, fuzzy
+#| msgid "C&ontinue"
+msgid "Continue"
+msgstr "&Mynd ymlaen"
+
+#: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158
+#: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512
+msgid "Cancel"
+msgstr ""
+
+#: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631
+msgid "Quit"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339
+msgid "Ok"
+msgstr "Iawn"
+
+#: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715
+msgid "Help"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:185
+msgid "Defaults"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:4
+#. i18n: ectx: Menu (file)
+#: kreplacements/kreplacements.cpp:296 rc.cpp:14
+#, fuzzy
+#| msgid "File..."
+msgid "&File"
+msgstr "Ffeil..."
+
+#: kreplacements/kreplacements.cpp:297
+#, fuzzy
+#| msgid "Editor"
+msgid "&Edit"
+msgstr "Golygydd"
+
+#. i18n: file: kdiff3_shell.rc:7
+#. i18n: ectx: Menu (directory)
+#: kreplacements/kreplacements.cpp:298 rc.cpp:17
+msgid "&Directory"
+msgstr "&Cyfeiriadur"
+
+#. i18n: file: kdiff3_shell.rc:50
+#. i18n: ectx: Menu (movement)
+#: kreplacements/kreplacements.cpp:301 rc.cpp:26
+msgid "&Movement"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:61
+#. i18n: ectx: Menu (diff)
+#: kreplacements/kreplacements.cpp:302 rc.cpp:29
+msgid "D&iffview"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:73
+#. i18n: ectx: Menu (merge)
+#: kreplacements/kreplacements.cpp:303 rc.cpp:32
+msgid "&Merge"
+msgstr "&Cyfuno"
+
+#. i18n: file: kdiff3_shell.rc:95
+#. i18n: ectx: Menu (window)
+#: kreplacements/kreplacements.cpp:304 rc.cpp:35
+msgid "&Window"
+msgstr "&Ffenestr"
+
+#: kreplacements/kreplacements.cpp:305
+#, fuzzy
+msgid "&Settings"
+msgstr "Gosodiadau Rhanbarthol"
+
+#: kreplacements/kreplacements.cpp:306
+msgid "&Help"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:353
+#, fuzzy
+#| msgid "Abort"
+msgid "&About"
+msgstr "Erthylu"
+
+#: kreplacements/kreplacements.cpp:369
+msgid "A&uthor"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:383
+msgid "&Thanks To"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:30
+#. i18n: ectx: Menu (dir_current_merge_menu)
+#: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497
+#: rc.cpp:20
+msgid "Current Item Merge Operation"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:38
+#. i18n: ectx: Menu (dir_current_sync_menu)
+#: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498
+#: rc.cpp:23
+msgid "Current Item Sync Operation"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:597
+#, fuzzy
+#| msgid "Operation"
+msgid "Open"
+msgstr "Gweithrediad"
+
+#: kreplacements/kreplacements.cpp:606
+msgid "Save"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720
+msgid "Save As..."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:623
+#, fuzzy
+#| msgid "Printing..."
+msgid "Print..."
+msgstr "Argraffu..."
+
+#: kreplacements/kreplacements.cpp:639
+msgid "Cut"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:647
+msgid "Copy"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:655
+msgid "Paste"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:663
+#, fuzzy
+#| msgid "Selection"
+msgid "Select All"
+msgstr "Dewisiad"
+
+#: kreplacements/kreplacements.cpp:671
+msgid "Show Toolbar"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:679
+msgid "Show &Status Bar"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:687
+#, fuzzy, kde-format
+#| msgid "Configure..."
+msgid "&Configure %1..."
+msgstr "Ffurfweddu..."
+
+#: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707
+#, fuzzy
+#| msgid "Abort"
+msgid "About"
+msgstr "Erthylu"
+
+#: kreplacements/kreplacements.cpp:722
+msgid "Find"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:730
+msgid "Find Next"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:750
+#, fuzzy
+#| msgid "Selection"
+msgid "Select Font"
+msgstr "Dewisiad"
+
+#: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676
+msgid ""
+"You selected a variable width font.\n"
+"\n"
+"Because this program doesn't handle variable width fonts\n"
+"correctly, you might experience problems while editing.\n"
+"\n"
+"Do you want to continue or do you want to select another font."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:792
+msgid "Incompatible font."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Continue at my own risk"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Select another font"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1134
+msgid "For more documentation, see the help-menu or the subdirectory doc."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "KDiff3-Usage"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Ignore"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1137
+#, fuzzy
+#| msgid "Editor"
+msgid "Exit"
+msgstr "Golygydd"
+
+#: diff.cpp:251
+msgid "Writing clipboard data to temp file failed."
+msgstr ""
+
+#: diff.cpp:255
+msgid "From Clipboard"
+msgstr ""
+
+#: diff.cpp:471
+msgid "Expecting space after closing quotation mark."
+msgstr ""
+
+#: diff.cpp:474
+msgid "Not matching quotation marks."
+msgstr ""
+
+#: diff.cpp:496
+msgid "Unexpected quotation mark within argument."
+msgstr ""
+
+#: diff.cpp:503
+msgid "No program specified."
+msgstr ""
+
+#: diff.cpp:605
+#, kde-format
+msgid ""
+"Preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The preprocessing command will be disabled now."
+msgstr ""
+
+#: diff.cpp:653
+#, kde-format
+msgid ""
+"The line-matching-preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The line-matching-preprocessing command will be disabled now."
+msgstr ""
+
+#: diff.cpp:1776 diff.cpp:1790
+msgid ""
+"Data loss error:\n"
+"If it is reproducible please contact the author.\n"
+msgstr ""
+
+#: diff.cpp:1778 diff.cpp:1792
+msgid "Severe Internal Error"
+msgstr ""
+
+#: directorymergewindow.cpp:136
+msgid "Mix of links and normal files."
+msgstr ""
+
+#: directorymergewindow.cpp:143
+msgid "Link: "
+msgstr "Cyswllt : "
+
+#: directorymergewindow.cpp:151
+msgid "Size. "
+msgstr ""
+
+#: directorymergewindow.cpp:164 directorymergewindow.cpp:174
+msgid "Date & Size: "
+msgstr ""
+
+#: directorymergewindow.cpp:184 directorymergewindow.cpp:190
+#, kde-format
+msgid "Creating temp copy of %1 failed."
+msgstr ""
+
+#: directorymergewindow.cpp:201 directorymergewindow.cpp:209
+#, kde-format
+msgid "Opening %1 failed."
+msgstr ""
+
+#: directorymergewindow.cpp:213
+#, fuzzy
+msgid "Comparing file..."
+msgstr "Yn cadw ffeil..."
+
+#: directorymergewindow.cpp:223 directorymergewindow.cpp:229
+#, kde-format
+msgid "Error reading from %1"
+msgstr ""
+
+#: directorymergewindow.cpp:358
+msgid "Name"
+msgstr "Enw"
+
+#: directorymergewindow.cpp:358
+msgid "Operation"
+msgstr "Gweithrediad"
+
+#: directorymergewindow.cpp:358
+msgid "Status"
+msgstr "Cyflwr"
+
+#: directorymergewindow.cpp:359
+msgid "Unsolved"
+msgstr ""
+
+#: directorymergewindow.cpp:359
+msgid "Solved"
+msgstr ""
+
+#: directorymergewindow.cpp:359
+msgid "Nonwhite"
+msgstr ""
+
+#: directorymergewindow.cpp:359
+msgid "White"
+msgstr "Gwyn"
+
+#: directorymergewindow.cpp:388
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort "
+"the merge and rescan the directory?"
+msgstr ""
+
+#: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655
+#: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823
+msgid "Warning"
+msgstr ""
+
+#: directorymergewindow.cpp:390 directorymergewindow.cpp:2965
+msgid "Rescan"
+msgstr "Ailsyllu"
+
+#: directorymergewindow.cpp:391 pdiff.cpp:1081
+msgid "Continue Merging"
+msgstr ""
+
+#: directorymergewindow.cpp:548
+msgid "Opening of directories failed:"
+msgstr ""
+
+#: directorymergewindow.cpp:551
+#, kde-format
+msgid "Dir A \"%1\" does not exist or is not a directory.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:554
+#, kde-format
+msgid "Dir B \"%1\" does not exist or is not a directory.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:557
+#, kde-format
+msgid "Dir C \"%1\" does not exist or is not a directory.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:559
+msgid "Directory Open Error"
+msgstr ""
+
+#: directorymergewindow.cpp:567
+msgid ""
+"The destination directory must not be the same as A or B when three "
+"directories are merged.\n"
+"Check again before continuing."
+msgstr ""
+
+#: directorymergewindow.cpp:569
+msgid "Parameter Warning"
+msgstr ""
+
+#: directorymergewindow.cpp:574
+msgid "Scanning directories..."
+msgstr ""
+
+#: directorymergewindow.cpp:607
+msgid "Reading Directory A"
+msgstr ""
+
+#: directorymergewindow.cpp:629
+msgid "Reading Directory B"
+msgstr ""
+
+#: directorymergewindow.cpp:651
+msgid "Reading Directory C"
+msgstr ""
+
+#: directorymergewindow.cpp:677
+msgid "Some subdirectories were not readable in"
+msgstr ""
+
+#: directorymergewindow.cpp:682
+msgid "Check the permissions of the subdirectories."
+msgstr ""
+
+#: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737
+#: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233
+#: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328
+msgid "Ready."
+msgstr "Parod."
+
+#: directorymergewindow.cpp:735
+msgid "Directory Comparison Status"
+msgstr ""
+
+#: directorymergewindow.cpp:736
+msgid "Number of subdirectories:"
+msgstr ""
+
+#: directorymergewindow.cpp:737
+msgid "Number of equal files:"
+msgstr ""
+
+#: directorymergewindow.cpp:738
+msgid "Number of different files:"
+msgstr ""
+
+#: directorymergewindow.cpp:741
+msgid "Number of manual merges:"
+msgstr ""
+
+#: directorymergewindow.cpp:912
+msgid "This affects all merge operations."
+msgstr ""
+
+#: directorymergewindow.cpp:913
+msgid "Changing All Merge Operations"
+msgstr ""
+
+#: directorymergewindow.cpp:1312
+msgid "Processing "
+msgstr ""
+
+#: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742
+msgid "To do."
+msgstr ""
+
+#: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996
+msgid "Copy A to B"
+msgstr ""
+
+#: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997
+msgid "Copy B to A"
+msgstr ""
+
+#: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998
+msgid "Delete A"
+msgstr ""
+
+#: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999
+msgid "Delete B"
+msgstr ""
+
+#: directorymergewindow.cpp:1814
+msgid "Delete A & B"
+msgstr ""
+
+#: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001
+msgid "Merge to A"
+msgstr ""
+
+#: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002
+msgid "Merge to B"
+msgstr ""
+
+#: directorymergewindow.cpp:1817
+msgid "Merge to A & B"
+msgstr ""
+
+#: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993
+msgid "Delete (if exists)"
+msgstr ""
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+#: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869
+msgid "Merge"
+msgstr "Cyfuno"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+msgid "Merge (manual)"
+msgstr ""
+
+#: directorymergewindow.cpp:1824
+msgid "Error: Conflicting File Types"
+msgstr ""
+
+#: directorymergewindow.cpp:1825
+msgid "Error: Changed and Deleted"
+msgstr ""
+
+#: directorymergewindow.cpp:1826
+msgid "Error: Dates are equal but files are not."
+msgstr ""
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906
+msgid "This operation is currently not possible."
+msgstr ""
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174
+msgid "Operation Not Possible"
+msgstr ""
+
+#: directorymergewindow.cpp:1945
+msgid ""
+"This should never happen: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"If you know how to reproduce this, please contact the program author."
+msgstr ""
+
+#: directorymergewindow.cpp:1945
+msgid "Program Error"
+msgstr ""
+
+#: directorymergewindow.cpp:1956
+msgid "An error occurred while copying.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025
+#: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105
+#: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123
+#: directorymergewindow.cpp:2374
+#, fuzzy
+#| msgid "Error."
+msgid "Error"
+msgstr "Gwall."
+
+#: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375
+msgid "Merge Error"
+msgstr ""
+
+#: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380
+msgid "Error."
+msgstr "Gwall."
+
+#: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272
+#: directorymergewindow.cpp:2312
+msgid "Done."
+msgstr "Wedi'i wneud."
+
+#: directorymergewindow.cpp:1990
+msgid "Not saved."
+msgstr ""
+
+#: directorymergewindow.cpp:2025
+msgid "Unknown merge operation. (This must never happen!)"
+msgstr ""
+
+#: directorymergewindow.cpp:2057
+msgid "Unknown merge operation."
+msgstr ""
+
+#: directorymergewindow.cpp:2072
+msgid ""
+"The merge is about to begin.\n"
+"\n"
+"Choose \"Do it\" if you have read the instructions and know what you are "
+"doing.\n"
+"Choosing \"Simulate it\" will tell you what would happen.\n"
+"\n"
+"Be aware that this program still has beta status and there is NO WARRANTY "
+"whatsoever! Make backups of your vital data!"
+msgstr ""
+
+#: directorymergewindow.cpp:2077
+msgid "Starting Merge"
+msgstr ""
+
+#: directorymergewindow.cpp:2078
+msgid "Do It"
+msgstr ""
+
+#: directorymergewindow.cpp:2079
+msgid "Simulate It"
+msgstr ""
+
+#: directorymergewindow.cpp:2105
+msgid ""
+"The highlighted item has a different type in the different directories. "
+"Select what to do."
+msgstr ""
+
+#: directorymergewindow.cpp:2114
+msgid ""
+"The modification dates of the file are equal but the files are not. Select "
+"what to do."
+msgstr ""
+
+#: directorymergewindow.cpp:2123
+msgid ""
+"The highlighted item was changed in one directory and deleted in the other. "
+"Select what to do."
+msgstr ""
+
+#: directorymergewindow.cpp:2174
+msgid ""
+"This operation is currently not possible because directory merge is "
+"currently running."
+msgstr ""
+
+#: directorymergewindow.cpp:2234
+msgid ""
+"There was an error in the last step.\n"
+"Do you want to continue with the item that caused the error or do you want "
+"to skip this item?"
+msgstr ""
+
+#: directorymergewindow.cpp:2236
+msgid "Continue merge after an error"
+msgstr ""
+
+#: directorymergewindow.cpp:2237
+msgid "Continue With Last Item"
+msgstr ""
+
+#: directorymergewindow.cpp:2238
+msgid "Skip Item"
+msgstr ""
+
+#: directorymergewindow.cpp:2272
+msgid "Skipped."
+msgstr ""
+
+#: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493
+msgid "In progress..."
+msgstr ""
+
+#: directorymergewindow.cpp:2327
+msgid "Merge operation complete."
+msgstr ""
+
+#: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330
+msgid "Merge Complete"
+msgstr ""
+
+#: directorymergewindow.cpp:2340
+msgid ""
+"Simulated merge complete: Check if you agree with the proposed operations."
+msgstr ""
+
+#: directorymergewindow.cpp:2374
+msgid "An error occurred. Press OK to see detailed information.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:2406
+#, kde-format
+msgid "Error: While deleting %1: Creating backup failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2413
+#, kde-format
+msgid "delete directory recursively( %1 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2415
+#, kde-format
+msgid "delete( %1 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2430
+msgid "Error: delete dir operation failed while trying to read the directory."
+msgstr ""
+
+#: directorymergewindow.cpp:2449
+#, kde-format
+msgid "Error: rmdir( %1 ) operation failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2459
+msgid "Error: delete operation failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2485
+#, kde-format
+msgid "manual merge( %1, %2, %3 -> %4)"
+msgstr ""
+
+#: directorymergewindow.cpp:2488
+msgid ""
+"     Note: After a manual merge the user should continue by pressing F7."
+msgstr ""
+
+#: directorymergewindow.cpp:2513
+#, kde-format
+msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2522
+#, kde-format
+msgid "copyLink( %1 -> %2 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2533
+msgid "Error: copyLink failed: Remote links are not yet supported."
+msgstr ""
+
+#: directorymergewindow.cpp:2539
+msgid "Error: copyLink failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2564
+#, kde-format
+msgid "copy( %1 -> %2 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2590
+#, kde-format
+msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination."
+msgstr ""
+
+#: directorymergewindow.cpp:2596
+#, kde-format
+msgid "rename( %1 -> %2 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2605
+msgid "Error: Rename failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2623
+#, kde-format
+msgid "Error during makeDir of %1. Cannot delete existing file."
+msgstr ""
+
+#: directorymergewindow.cpp:2639
+#, kde-format
+msgid "makeDir( %1 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2649
+msgid "Error while creating directory."
+msgstr ""
+
+#: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784
+msgid "Dest"
+msgstr ""
+
+#: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709
+msgid "Dir"
+msgstr ""
+
+#: directorymergewindow.cpp:2678
+msgid "Type"
+msgstr "Math"
+
+#: directorymergewindow.cpp:2678
+msgid "Size"
+msgstr "Maint"
+
+#: directorymergewindow.cpp:2679
+msgid "Attr"
+msgstr ""
+
+#: directorymergewindow.cpp:2679
+msgid "Last Modification"
+msgstr ""
+
+#: directorymergewindow.cpp:2679
+msgid "Link-Destination"
+msgstr ""
+
+#: directorymergewindow.cpp:2709 difftextwindow.cpp:401
+#, fuzzy
+#| msgid "File..."
+msgid "File"
+msgstr "Ffeil..."
+
+#: directorymergewindow.cpp:2726
+msgid "not available"
+msgstr "dim ar gael"
+
+#: directorymergewindow.cpp:2746
+msgid "A (Dest): "
+msgstr ""
+
+#: directorymergewindow.cpp:2749
+msgid "A (Base): "
+msgstr ""
+
+#: directorymergewindow.cpp:2755
+msgid "B (Dest): "
+msgstr ""
+
+#: directorymergewindow.cpp:2763
+msgid "C (Dest): "
+msgstr ""
+
+#: directorymergewindow.cpp:2769
+msgid "Dest: "
+msgstr ""
+
+#: directorymergewindow.cpp:2836
+msgid "Save Directory Merge State As..."
+msgstr ""
+
+#: directorymergewindow.cpp:2959
+msgid "Start/Continue Directory Merge"
+msgstr ""
+
+#: directorymergewindow.cpp:2960
+msgid "Run Operation for Current Item"
+msgstr ""
+
+#: directorymergewindow.cpp:2961
+msgid "Compare Selected File"
+msgstr ""
+
+#: directorymergewindow.cpp:2962
+msgid "Merge Current File"
+msgstr ""
+
+#: directorymergewindow.cpp:2962
+#, fuzzy
+#| msgid "Merge"
+msgid ""
+"Merge\n"
+"File"
+msgstr "Cyfuno"
+
+#: directorymergewindow.cpp:2963
+msgid "Fold All Subdirs"
+msgstr ""
+
+#: directorymergewindow.cpp:2964
+msgid "Unfold All Subdirs"
+msgstr ""
+
+#: directorymergewindow.cpp:2968
+msgid "Choose A for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2969
+msgid "Choose B for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2970
+msgid "Choose C for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2971
+msgid "Auto-Choose Operation for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2972
+msgid "No Operation for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2977
+msgid "Show Identical Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2977
+msgid ""
+"Identical\n"
+"Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2978
+msgid "Show Different Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2979
+msgid "Show Files only in A"
+msgstr ""
+
+#: directorymergewindow.cpp:2979
+msgid ""
+"Files\n"
+"only in A"
+msgstr ""
+
+#: directorymergewindow.cpp:2980
+msgid "Show Files only in B"
+msgstr ""
+
+#: directorymergewindow.cpp:2980
+msgid ""
+"Files\n"
+"only in B"
+msgstr ""
+
+#: directorymergewindow.cpp:2981
+msgid "Show Files only in C"
+msgstr ""
+
+#: directorymergewindow.cpp:2981
+msgid ""
+"Files\n"
+"only in C"
+msgstr ""
+
+#: directorymergewindow.cpp:2985
+msgid "Compare Explicitly Selected Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2986
+msgid "Merge Explicitly Selected Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995
+msgid "Do Nothing"
+msgstr ""
+
+#: directorymergewindow.cpp:2989
+msgid "A"
+msgstr "A"
+
+#: directorymergewindow.cpp:2990
+msgid "B"
+msgstr "B"
+
+#: directorymergewindow.cpp:2991
+msgid "C"
+msgstr "C"
+
+#: directorymergewindow.cpp:3000
+msgid "Delete A && B"
+msgstr ""
+
+#: directorymergewindow.cpp:3003
+msgid "Merge to A && B"
+msgstr ""
+
+#: main.cpp:74 main.cpp:76
+msgid "Ignored. (User defined.)"
+msgstr ""
+
+#: main.cpp:162
+msgid "kdiff3"
+msgstr ""
+
+#: main.cpp:164
+msgid "Tool for Comparison and Merge of Files and Directories"
+msgstr ""
+
+#: main.cpp:165
+msgid "(c) 2002-2011 Joachim Eibl"
+msgstr ""
+
+#: main.cpp:172 kdiff3_part.cpp:303
+msgid "Joachim Eibl"
+msgstr ""
+
+#: main.cpp:173
+msgid "Eike Sauer"
+msgstr ""
+
+#: main.cpp:173
+msgid "Bugfixes, Debian package maintainer"
+msgstr ""
+
+#: main.cpp:174
+msgid "Sebastien Fricker"
+msgstr ""
+
+#: main.cpp:174
+msgid "Windows installer"
+msgstr ""
+
+#: main.cpp:175
+msgid "Stephan Binner"
+msgstr ""
+
+#: main.cpp:175
+msgid "i18n-help"
+msgstr ""
+
+#: main.cpp:176
+msgid "Stefan Partheymueller"
+msgstr ""
+
+#: main.cpp:176
+msgid "Clipboard-patch"
+msgstr ""
+
+#: main.cpp:177
+msgid "David Faure"
+msgstr ""
+
+#: main.cpp:177
+msgid "KIO-Help"
+msgstr ""
+
+#: main.cpp:178
+msgid "Bernd Gehrmann"
+msgstr ""
+
+#: main.cpp:178
+msgid "Class CvsIgnoreList from Cervisia"
+msgstr ""
+
+#: main.cpp:179
+msgid "Andre Woebbeking"
+msgstr ""
+
+#: main.cpp:179
+msgid "Class StringMatcher"
+msgstr ""
+
+#: main.cpp:180
+msgid "Michael Denio"
+msgstr ""
+
+#: main.cpp:180
+msgid "Directory Equality-Coloring patch"
+msgstr ""
+
+#: main.cpp:181
+msgid "Manfred Koehler"
+msgstr ""
+
+#: main.cpp:181
+msgid "Fix for slow startup on Windows"
+msgstr ""
+
+#: main.cpp:182
+msgid "Sergey Zorin"
+msgstr ""
+
+#: main.cpp:182
+msgid "Diff Ext for Windows"
+msgstr ""
+
+#: main.cpp:183
+msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+msgstr ""
+
+#: main.cpp:183
+msgid "GNU-Diffutils"
+msgstr ""
+
+#: main.cpp:184
+msgid "Tino Boellsterling, Timothy Mee"
+msgstr ""
+
+#: main.cpp:184
+msgid "Intensive test, use and feedback"
+msgstr ""
+
+#: main.cpp:185
+msgid "Michael Schmidt"
+msgstr ""
+
+#: main.cpp:185
+msgid "Mac support"
+msgstr ""
+
+#: main.cpp:186
+msgid "Valentin Rusu"
+msgstr ""
+
+#: main.cpp:186 main.cpp:187
+msgid "KDE4 porting"
+msgstr ""
+
+#: main.cpp:187
+msgid "Albert Astals Cid"
+msgstr ""
+
+#: main.cpp:188
+msgid "Silvan Scherrer"
+msgstr ""
+
+#: main.cpp:188
+msgid "OS2 port"
+msgstr ""
+
+#: main.cpp:190
+msgid "+ Many thanks to those who reported bugs and contributed ideas!"
+msgstr ""
+
+#: main.cpp:196
+msgid "Merge the input."
+msgstr ""
+
+#: main.cpp:197
+msgid "Explicit base file. For compatibility with certain tools."
+msgstr ""
+
+#: main.cpp:198
+msgid "Output file. Implies -m. E.g.: -o newfile.txt"
+msgstr ""
+
+#: main.cpp:199
+msgid "Output file, again. (For compatibility with certain tools.)"
+msgstr ""
+
+#: main.cpp:200
+msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)"
+msgstr ""
+
+#: main.cpp:201
+msgid "Don't solve conflicts automatically. (For compatibility...)"
+msgstr ""
+
+#: main.cpp:202
+msgid "Visible name replacement for input file 1 (base)."
+msgstr ""
+
+#: main.cpp:203
+msgid "Visible name replacement for input file 2."
+msgstr ""
+
+#: main.cpp:204
+msgid "Visible name replacement for input file 3."
+msgstr ""
+
+#: main.cpp:205
+msgid "Alternative visible name replacement. Supply this once for every input."
+msgstr ""
+
+#: main.cpp:206
+msgid ""
+"Override a config setting. Use once for every setting. E.g.: --cs "
+"\"AutoAdvance=1\""
+msgstr ""
+
+#: main.cpp:207
+msgid "Show list of config settings and current values."
+msgstr ""
+
+#: main.cpp:208
+msgid "Use a different config file."
+msgstr ""
+
+#: main.cpp:211
+msgid "file1 to open (base, if not specified via --base)"
+msgstr ""
+
+#: main.cpp:212
+msgid "file2 to open"
+msgstr ""
+
+#: main.cpp:213
+msgid "file3 to open"
+msgstr ""
+
+#: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976
+#: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002
+#: mergeresultwindow.cpp:1014
+#, kde-format
+msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)"
+msgstr ""
+
+#: mergeresultwindow.cpp:303
+msgid ""
+"The output has been modified.\n"
+"If you continue your changes will be lost."
+msgstr ""
+
+#: mergeresultwindow.cpp:834 pdiff.cpp:532
+msgid "All input files are binary equal."
+msgstr ""
+
+#: mergeresultwindow.cpp:836
+msgid "All input files contain the same text."
+msgstr ""
+
+#: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840
+#: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540
+#, kde-format
+msgid "Files %1 and %2 are binary equal.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841
+#: mergeresultwindow.cpp:843
+#, kde-format
+msgid "Files %1 and %2 have equal text.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:849
+msgid "Total number of conflicts: "
+msgstr ""
+
+#: mergeresultwindow.cpp:850
+msgid ""
+"\n"
+"Nr of automatically solved conflicts: "
+msgstr ""
+
+#: mergeresultwindow.cpp:851
+msgid ""
+"\n"
+"Nr of unsolved conflicts: "
+msgstr ""
+
+#: mergeresultwindow.cpp:853
+msgid "Conflicts"
+msgstr "Gwrthdrawiadau"
+
+#: mergeresultwindow.cpp:1728
+msgid "<No src line>"
+msgstr ""
+
+#: mergeresultwindow.cpp:1736
+msgid "<Merge Conflict (Whitespace only)>"
+msgstr ""
+
+#: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517
+msgid "<Merge Conflict>"
+msgstr ""
+
+#: mergeresultwindow.cpp:2725
+msgid ""
+"Not all conflicts are solved yet.\n"
+"File not saved.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736
+msgid "Conflicts Left"
+msgstr ""
+
+#: mergeresultwindow.cpp:2734
+msgid ""
+"There is a line end style conflict. Please choose the line end style "
+"manually.\n"
+"File not saved.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:2748
+msgid ""
+"\n"
+"\n"
+"Creating backup failed. File not saved."
+msgstr ""
+
+#: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792
+msgid "File Save Error"
+msgstr ""
+
+#: mergeresultwindow.cpp:2792
+msgid "Error while writing."
+msgstr ""
+
+#: mergeresultwindow.cpp:3122
+msgid "Output"
+msgstr "Allbwn"
+
+#: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314
+msgid "[Modified]"
+msgstr ""
+
+#: mergeresultwindow.cpp:3141
+msgid "Encoding for saving"
+msgstr ""
+
+#: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737
+#: optiondialog.cpp:762
+msgid "Line end style:"
+msgstr "Arddull pen y llinell:"
+
+#: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767
+msgid "Unix"
+msgstr ""
+
+#: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737
+msgid "DOS"
+msgstr ""
+
+#: mergeresultwindow.cpp:3229
+#, fuzzy
+#| msgid "Conflicts"
+msgid "Conflict"
+msgstr "Gwrthdrawiadau"
+
+#: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263
+#: mergeresultwindow.cpp:3265
+msgid "Codec from"
+msgstr ""
+
+#: kdiff3_part.cpp:157 kdiff3_part.cpp:234
+msgid "Couldn't find files for comparison."
+msgstr ""
+
+#: kdiff3_part.cpp:302
+msgid "KDiff3Part"
+msgstr ""
+
+#: fileaccess.cpp:612
+msgid ""
+"While trying to make a backup, deleting an older backup failed. \n"
+"Filename: "
+msgstr ""
+
+#: fileaccess.cpp:619
+msgid ""
+"While trying to make a backup, renaming failed. \n"
+"Filenames: "
+msgstr ""
+
+#: fileaccess.cpp:643
+#, kde-format
+msgid "Getting file status: %1"
+msgstr ""
+
+#: fileaccess.cpp:686
+#, kde-format
+msgid "Reading file: %1"
+msgstr ""
+
+#: fileaccess.cpp:723
+#, kde-format
+msgid "Writing file: %1"
+msgstr ""
+
+#: fileaccess.cpp:751
+msgid "Out of memory"
+msgstr "Allan o Gof."
+
+#: fileaccess.cpp:786
+#, kde-format
+msgid "Making directory: %1"
+msgstr ""
+
+#: fileaccess.cpp:806
+#, kde-format
+msgid "Removing directory: %1"
+msgstr ""
+
+#: fileaccess.cpp:821
+#, kde-format
+msgid "Removing file: %1"
+msgstr ""
+
+#: fileaccess.cpp:837
+#, kde-format
+msgid "Creating symbolic link: %1 -> %2"
+msgstr ""
+
+#: fileaccess.cpp:864
+#, kde-format
+msgid "Renaming file: %1 -> %2"
+msgstr ""
+
+#: fileaccess.cpp:897
+#, kde-format
+msgid "Copying file: %1 -> %2"
+msgstr ""
+
+#: fileaccess.cpp:911
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for reading failed. Filename: "
+"%1"
+msgstr ""
+
+#: fileaccess.cpp:917
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for writing failed. Filename: "
+"%1"
+msgstr ""
+
+#: fileaccess.cpp:932
+#, kde-format
+msgid "Error during file copy operation: Reading failed. Filename: %1"
+msgstr ""
+
+#: fileaccess.cpp:941
+#, kde-format
+msgid "Error during file copy operation: Writing failed. Filename: %1"
+msgstr ""
+
+#: fileaccess.cpp:1231
+msgid "Reading directory: "
+msgstr ""
+
+#: fileaccess.cpp:1355
+#, kde-format
+msgid "Listing directory: %1"
+msgstr ""
+
+#: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396
+msgid "&Cancel"
+msgstr ""
+
+#: difftextwindow.cpp:403
+#, fuzzy
+#| msgid "Link: "
+msgid "Line"
+msgstr "Cyswllt : "
+
+#: difftextwindow.cpp:405
+#, fuzzy
+#| msgid "not available"
+msgid "Line not available"
+msgstr "dim ar gael"
+
+#: difftextwindow.cpp:1703 difftextwindow.cpp:1736
+msgid "Encoding:"
+msgstr ""
+
+#: difftextwindow.cpp:1759 kdiff3.cpp:831
+msgid "Top line"
+msgstr ""
+
+#: difftextwindow.cpp:1769
+msgid "End"
+msgstr "Diwedd"
+
+#: kdiff3.cpp:169
+msgid "Current Configuration:"
+msgstr ""
+
+#: kdiff3.cpp:174
+#, fuzzy
+msgid "Config Option Error:"
+msgstr "Gwall agor ffeil"
+
+#: kdiff3.cpp:219
+msgid "Option --auto used, but no output file specified."
+msgstr ""
+
+#: kdiff3.cpp:369
+msgid "Option --auto ignored for directory comparison."
+msgstr ""
+
+#: kdiff3.cpp:405
+msgid "Saving failed."
+msgstr ""
+
+#: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214
+msgid "Opening of these files failed:"
+msgstr ""
+
+#: kdiff3.cpp:449
+msgid "File Open Error"
+msgstr "Gwall agor ffeil"
+
+#: kdiff3.cpp:477
+msgid "Opens documents for comparison..."
+msgstr ""
+
+#: kdiff3.cpp:479
+#, fuzzy
+#| msgid "Ready."
+msgid "Reload"
+msgstr "Parod."
+
+#: kdiff3.cpp:482
+msgid "Saves the merge result. All conflicts must be solved!"
+msgstr ""
+
+#: kdiff3.cpp:484
+msgid "Saves the current document as..."
+msgstr ""
+
+#: kdiff3.cpp:487
+msgid "Print the differences"
+msgstr ""
+
+#: kdiff3.cpp:490
+msgid "Quits the application"
+msgstr "Terfynu'r cymhwysiad"
+
+#: kdiff3.cpp:492
+msgid "Cuts the selected section and puts it to the clipboard"
+msgstr "Torri'r adran dewisiedig a'i roi ar y gludfwrdd"
+
+#: kdiff3.cpp:494
+msgid "Copies the selected section to the clipboard"
+msgstr "Copïo'r adran dewisiedig i'r gludfwrdd"
+
+#: kdiff3.cpp:496
+#, fuzzy
+#| msgid "Pastes the clipboard contents to actual position"
+msgid "Pastes the clipboard contents to current position"
+msgstr "Gludo cynnwys y gludfwrdd i'r fan wirioneddol"
+
+#: kdiff3.cpp:498
+msgid "Select everything in current window"
+msgstr ""
+
+#: kdiff3.cpp:500
+msgid "Search for a string"
+msgstr ""
+
+#: kdiff3.cpp:502
+msgid "Search again for the string"
+msgstr ""
+
+#: kdiff3.cpp:507
+msgid "Enables/disables the statusbar"
+msgstr "Galluogi/analluogi'r bar cyflwr"
+
+#: kdiff3.cpp:511
+msgid "Configure KDiff3..."
+msgstr ""
+
+#: kdiff3.cpp:532
+msgid "Go to Current Delta"
+msgstr ""
+
+#: kdiff3.cpp:532
+msgid ""
+"Current\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:534
+msgid "Go to First Delta"
+msgstr ""
+
+#: kdiff3.cpp:534
+msgid ""
+"First\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:536
+msgid "Go to Last Delta"
+msgstr ""
+
+#: kdiff3.cpp:536
+msgid ""
+"Last\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:538
+msgid "(Skips white space differences when \"Show White Space\" is disabled.)"
+msgstr ""
+
+#: kdiff3.cpp:539
+msgid ""
+"(Does not skip white space differences even when \"Show White Space\" is "
+"disabled.)"
+msgstr ""
+
+#: kdiff3.cpp:540
+msgid "Go to Previous Delta"
+msgstr ""
+
+#: kdiff3.cpp:540
+msgid ""
+"Prev\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:542
+msgid "Go to Next Delta"
+msgstr ""
+
+#: kdiff3.cpp:542
+msgid ""
+"Next\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:544
+msgid "Go to Previous Conflict"
+msgstr ""
+
+#: kdiff3.cpp:544
+#, fuzzy
+#| msgid "Conflicts"
+msgid ""
+"Prev\n"
+"Conflict"
+msgstr "Gwrthdrawiadau"
+
+#: kdiff3.cpp:546
+msgid "Go to Next Conflict"
+msgstr ""
+
+#: kdiff3.cpp:546
+#, fuzzy
+#| msgid "Conflicts"
+msgid ""
+"Next\n"
+"Conflict"
+msgstr "Gwrthdrawiadau"
+
+#: kdiff3.cpp:548
+msgid "Go to Previous Unsolved Conflict"
+msgstr ""
+
+#: kdiff3.cpp:548
+msgid ""
+"Prev\n"
+"Unsolved"
+msgstr ""
+
+#: kdiff3.cpp:550
+msgid "Go to Next Unsolved Conflict"
+msgstr ""
+
+#: kdiff3.cpp:550
+msgid ""
+"Next\n"
+"Unsolved"
+msgstr ""
+
+#: kdiff3.cpp:552
+msgid "Select Line(s) From A"
+msgstr ""
+
+#: kdiff3.cpp:552
+msgid ""
+"Choose\n"
+"A"
+msgstr ""
+
+#: kdiff3.cpp:553
+msgid "Select Line(s) From B"
+msgstr ""
+
+#: kdiff3.cpp:553
+msgid ""
+"Choose\n"
+"B"
+msgstr ""
+
+#: kdiff3.cpp:554
+msgid "Select Line(s) From C"
+msgstr ""
+
+#: kdiff3.cpp:554
+msgid ""
+"Choose\n"
+"C"
+msgstr ""
+
+#: kdiff3.cpp:555
+msgid "Automatically Go to Next Unsolved Conflict After Source Selection"
+msgstr ""
+
+#: kdiff3.cpp:555
+#, fuzzy
+msgid ""
+"Auto\n"
+"Next"
+msgstr "dim detholiad"
+
+#: kdiff3.cpp:557
+msgid "Show Space && Tabulator Characters for Differences"
+msgstr ""
+
+#: kdiff3.cpp:557
+msgid ""
+"White\n"
+"Characters"
+msgstr ""
+
+#: kdiff3.cpp:558
+msgid "Show White Space"
+msgstr ""
+
+#: kdiff3.cpp:558
+msgid ""
+"White\n"
+"Deltas"
+msgstr ""
+
+#: kdiff3.cpp:560
+msgid "Show Line Numbers"
+msgstr ""
+
+#: kdiff3.cpp:560
+msgid ""
+"Line\n"
+"Numbers"
+msgstr ""
+
+#: kdiff3.cpp:561
+msgid "Choose A Everywhere"
+msgstr ""
+
+#: kdiff3.cpp:562
+msgid "Choose B Everywhere"
+msgstr ""
+
+#: kdiff3.cpp:563
+msgid "Choose C Everywhere"
+msgstr ""
+
+#: kdiff3.cpp:564
+msgid "Choose A for All Unsolved Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:565
+msgid "Choose B for All Unsolved Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:566
+msgid "Choose C for All Unsolved Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:567
+msgid "Choose A for All Unsolved Whitespace Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:568
+msgid "Choose B for All Unsolved Whitespace Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:569
+msgid "Choose C for All Unsolved Whitespace Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:570
+msgid "Automatically Solve Simple Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:571
+msgid "Set Deltas to Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:572
+msgid "Run Regular Expression Auto Merge"
+msgstr ""
+
+#: kdiff3.cpp:573
+msgid "Automatically Solve History Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:574
+msgid "Split Diff At Selection"
+msgstr ""
+
+#: kdiff3.cpp:575
+msgid "Join Selected Diffs"
+msgstr ""
+
+#: kdiff3.cpp:577
+msgid "Show Window A"
+msgstr ""
+
+#: kdiff3.cpp:578
+msgid "Show Window B"
+msgstr ""
+
+#: kdiff3.cpp:579
+msgid "Show Window C"
+msgstr ""
+
+#: kdiff3.cpp:580 kdiff3.cpp:591
+msgid "Focus Next Window"
+msgstr ""
+
+#: kdiff3.cpp:582
+msgid "Normal Overview"
+msgstr ""
+
+#: kdiff3.cpp:583
+msgid "A vs. B Overview"
+msgstr ""
+
+#: kdiff3.cpp:584
+msgid "A vs. C Overview"
+msgstr ""
+
+#: kdiff3.cpp:585
+msgid "B vs. C Overview"
+msgstr ""
+
+#: kdiff3.cpp:586
+msgid "Word Wrap Diff Windows"
+msgstr ""
+
+#: kdiff3.cpp:587
+msgid "Add Manual Diff Alignment"
+msgstr ""
+
+#: kdiff3.cpp:588
+msgid "Clear All Manual Diff Alignments"
+msgstr ""
+
+#: kdiff3.cpp:593
+msgid "Focus Prev Window"
+msgstr ""
+
+#: kdiff3.cpp:594
+msgid "Toggle Split Orientation"
+msgstr ""
+
+#: kdiff3.cpp:596
+msgid "Dir && Text Split Screen View"
+msgstr ""
+
+#: kdiff3.cpp:598
+msgid "Toggle Between Dir && Text View"
+msgstr ""
+
+#: kdiff3.cpp:654 pdiff.cpp:1812
+msgid "The merge result hasn't been saved."
+msgstr ""
+
+#: kdiff3.cpp:656
+msgid "Save && Quit"
+msgstr ""
+
+#: kdiff3.cpp:657
+msgid "Quit Without Saving"
+msgstr "Gorffen heb gadw"
+
+#: kdiff3.cpp:665 pdiff.cpp:1823
+msgid "Saving the merge result failed."
+msgstr ""
+
+#: kdiff3.cpp:676 pdiff.cpp:1078
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort?"
+msgstr ""
+
+#: kdiff3.cpp:701
+msgid "Saving file..."
+msgstr "Yn cadw ffeil..."
+
+#: kdiff3.cpp:718
+msgid "Saving file with a new filename..."
+msgstr ""
+
+#: kdiff3.cpp:781
+msgid "Printing not implemented."
+msgstr ""
+
+#: kdiff3.cpp:815
+#, fuzzy
+#| msgid "Printing..."
+msgid "Printing..."
+msgstr "Argraffu..."
+
+#: kdiff3.cpp:956
+#, fuzzy
+#| msgid "Selection"
+msgid "Selection"
+msgstr "Dewisiad"
+
+#: kdiff3.cpp:982
+msgid "Printing completed."
+msgstr ""
+
+#: kdiff3.cpp:986
+msgid "Printing aborted."
+msgstr ""
+
+#: kdiff3.cpp:993
+msgid "Exiting..."
+msgstr "Terfynu..."
+
+#: kdiff3.cpp:1006
+msgid "Toggling toolbar..."
+msgstr "Dangos/cuddio'r bar offer..."
+
+#: kdiff3.cpp:1027
+msgid "Toggle the statusbar..."
+msgstr "Dangos/cuddio'r bar cyflwr..."
+
+#: smalldialogs.cpp:58
+msgid "A (Base):"
+msgstr ""
+
+#: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99
+#: smalldialogs.cpp:142
+msgid "File..."
+msgstr "Ffeil..."
+
+#: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101
+#: smalldialogs.cpp:144
+msgid "Dir..."
+msgstr ""
+
+#: smalldialogs.cpp:93
+msgid "C (Optional):"
+msgstr ""
+
+#: smalldialogs.cpp:116
+msgid "Swap/Copy Names ..."
+msgstr ""
+
+#: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123
+#, kde-format
+msgid "Swap %1<->%2"
+msgstr ""
+
+#: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126
+#, kde-format
+msgid "Copy %1->Output"
+msgstr ""
+
+#: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129
+#, kde-format
+msgid "Swap %1<->Output"
+msgstr ""
+
+#: smalldialogs.cpp:136
+msgid "Output (optional):"
+msgstr ""
+
+#: smalldialogs.cpp:168
+msgid "Configure..."
+msgstr "Ffurfweddu..."
+
+#: smalldialogs.cpp:174
+msgid "&OK"
+msgstr ""
+
+#: smalldialogs.cpp:362
+#, fuzzy
+msgid "Search text:"
+msgstr " &Chwilio"
+
+#: smalldialogs.cpp:369
+msgid "Case sensitive"
+msgstr "Llythrennau mawr/bach o bwys"
+
+#: smalldialogs.cpp:372
+msgid "Search A"
+msgstr ""
+
+#: smalldialogs.cpp:377
+msgid "Search B"
+msgstr ""
+
+#: smalldialogs.cpp:382
+msgid "Search C"
+msgstr ""
+
+#: smalldialogs.cpp:387
+msgid "Search output"
+msgstr ""
+
+#: smalldialogs.cpp:392
+msgid "&Search"
+msgstr " &Chwilio"
+
+#: smalldialogs.cpp:409
+msgid "Regular Expression Tester"
+msgstr ""
+
+#: smalldialogs.cpp:414 optiondialog.cpp:936
+msgid "Auto merge regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:422
+msgid "Example auto merge line:"
+msgstr ""
+
+#: smalldialogs.cpp:424
+msgid "To test auto merge, copy a line as used in your files."
+msgstr ""
+
+#: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494
+msgid "Match result:"
+msgstr ""
+
+#: smalldialogs.cpp:441 optiondialog.cpp:962
+msgid "History start regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:449
+msgid "Example history start line (with leading comment):"
+msgstr ""
+
+#: smalldialogs.cpp:451
+msgid ""
+"Copy a history start line as used in your files,\n"
+"including the leading comment."
+msgstr ""
+
+#: smalldialogs.cpp:469 optiondialog.cpp:972
+msgid "History entry start regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:477
+msgid "History sort key order:"
+msgstr ""
+
+#: smalldialogs.cpp:485
+msgid "Example history entry start line (without leading comment):"
+msgstr ""
+
+#: smalldialogs.cpp:487
+msgid ""
+"Copy a history entry start line as used in your files,\n"
+"but omit the leading comment."
+msgstr ""
+
+#: smalldialogs.cpp:501
+msgid "Sort key result:"
+msgstr ""
+
+#: smalldialogs.cpp:508
+msgid "OK"
+msgstr ""
+
+#: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583
+msgid "Match success."
+msgstr ""
+
+#: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589
+msgid "Match failed."
+msgstr ""
+
+#: smalldialogs.cpp:574
+msgid "Opening and closing parentheses do not match in regular expression."
+msgstr ""
+
+#: optiondialog.cpp:367
+msgid "Unicode, 8 bit"
+msgstr ""
+
+#: optiondialog.cpp:368
+msgid "Unicode"
+msgstr "Ungôd"
+
+#: optiondialog.cpp:369
+msgid "Latin1"
+msgstr "Lladin1"
+
+#: optiondialog.cpp:388
+msgid "Change this if non-ASCII characters are not displayed correctly."
+msgstr ""
+
+#: optiondialog.cpp:465
+#, fuzzy
+#| msgid "Configure..."
+msgid "Configure"
+msgstr "Ffurfweddu..."
+
+#: optiondialog.cpp:531
+msgid "Font"
+msgstr ""
+
+#: optiondialog.cpp:532
+msgid "Editor & Diff Output Font"
+msgstr ""
+
+#: optiondialog.cpp:556
+msgid "Italic font for deltas"
+msgstr ""
+
+#: optiondialog.cpp:559
+msgid ""
+"Selects the italic version of the font for differences.\n"
+"If the font doesn't support italic characters, then this does nothing."
+msgstr ""
+
+#: optiondialog.cpp:568
+msgid "Color"
+msgstr "Lliw"
+
+#: optiondialog.cpp:569
+#, fuzzy
+msgid "Colors Settings"
+msgstr "Gosodiadau Rhanbarthol"
+
+#: optiondialog.cpp:588
+msgid "Editor and Diff Views:"
+msgstr ""
+
+#: optiondialog.cpp:596
+msgid "Foreground color:"
+msgstr "Lliw blaendir:"
+
+#: optiondialog.cpp:603
+msgid "Background color:"
+msgstr "Lliw'r cefndir:"
+
+#: optiondialog.cpp:612
+msgid "Diff background color:"
+msgstr ""
+
+#: optiondialog.cpp:620
+msgid "Color A:"
+msgstr ""
+
+#: optiondialog.cpp:628
+msgid "Color B:"
+msgstr ""
+
+#: optiondialog.cpp:636
+msgid "Color C:"
+msgstr ""
+
+#: optiondialog.cpp:643
+msgid "Conflict color:"
+msgstr ""
+
+#: optiondialog.cpp:651
+msgid "Current range background color:"
+msgstr ""
+
+#: optiondialog.cpp:659
+msgid "Current range diff background color:"
+msgstr ""
+
+#: optiondialog.cpp:666
+msgid "Color for manually aligned difference ranges:"
+msgstr ""
+
+#: optiondialog.cpp:672
+msgid "Directory Comparison View:"
+msgstr ""
+
+#: optiondialog.cpp:678
+msgid "Newest file color:"
+msgstr ""
+
+#: optiondialog.cpp:682
+msgid ""
+"Changing this color will only be effective when starting the next directory "
+"comparison."
+msgstr ""
+
+#: optiondialog.cpp:687
+msgid "Oldest file color:"
+msgstr ""
+
+#: optiondialog.cpp:695
+msgid "Middle age file color:"
+msgstr ""
+
+#: optiondialog.cpp:703
+msgid "Color for missing files:"
+msgstr ""
+
+#: optiondialog.cpp:717
+msgid "Editor"
+msgstr "Golygydd"
+
+#: optiondialog.cpp:718
+msgid "Editor Behavior"
+msgstr ""
+
+#: optiondialog.cpp:732
+msgid "Tab inserts spaces"
+msgstr ""
+
+#: optiondialog.cpp:735
+msgid ""
+"On: Pressing tab generates the appropriate number of spaces.\n"
+"Off: A tab character will be inserted."
+msgstr ""
+
+#: optiondialog.cpp:741
+msgid "Tab size:"
+msgstr "Maint tab:"
+
+#: optiondialog.cpp:747
+msgid "Auto indentation"
+msgstr ""
+
+#: optiondialog.cpp:750
+msgid "On: The indentation of the previous line is used for a new line.\n"
+msgstr ""
+
+#: optiondialog.cpp:754
+msgid "Auto copy selection"
+msgstr ""
+
+#: optiondialog.cpp:757
+msgid ""
+"On: Any selection is immediately written to the clipboard.\n"
+"Off: You must explicitely copy e.g. via Ctrl-C."
+msgstr ""
+
+#: optiondialog.cpp:768
+#, fuzzy
+#| msgid "&Window"
+msgid "Dos/Windows"
+msgstr "&Ffenestr"
+
+#: optiondialog.cpp:769
+#, fuzzy
+msgid "Autodetect"
+msgstr "dim detholiad"
+
+#: optiondialog.cpp:772
+msgid ""
+"Sets the line endings for when an edited file is saved.\n"
+"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A"
+msgstr ""
+
+#: optiondialog.cpp:784
+msgid "Diff"
+msgstr ""
+
+#: optiondialog.cpp:785
+#, fuzzy
+msgid "Diff Settings"
+msgstr "Gosodiadau Rhanbarthol"
+
+#: optiondialog.cpp:809
+msgid "Treat as white space."
+msgstr ""
+
+#: optiondialog.cpp:811
+msgid "Ignore numbers"
+msgstr ""
+
+#: optiondialog.cpp:814
+msgid ""
+"Ignore number characters during line matching phase. (Similar to Ignore "
+"white space.)\n"
+"Might help to compare files with numeric data."
+msgstr ""
+
+#: optiondialog.cpp:819
+msgid "Ignore C/C++ comments"
+msgstr ""
+
+#: optiondialog.cpp:821
+msgid "Treat C/C++ comments like white space."
+msgstr ""
+
+#: optiondialog.cpp:825
+msgid "Ignore case"
+msgstr ""
+
+#: optiondialog.cpp:828
+msgid "Treat case differences like white space changes. ('a'<=>'A')"
+msgstr ""
+
+#: optiondialog.cpp:832
+msgid "Preprocessor command:"
+msgstr ""
+
+#: optiondialog.cpp:836
+msgid "User defined pre-processing. (See the docs for details.)"
+msgstr ""
+
+#: optiondialog.cpp:839
+msgid "Line-matching preprocessor command:"
+msgstr ""
+
+#: optiondialog.cpp:843
+msgid ""
+"This pre-processor is only used during line matching.\n"
+"(See the docs for details.)"
+msgstr ""
+
+#: optiondialog.cpp:846
+msgid "Try hard (slower)"
+msgstr ""
+
+#: optiondialog.cpp:849
+msgid ""
+"Enables the --minimal option for the external diff.\n"
+"The analysis of big files will be much slower."
+msgstr ""
+
+#: optiondialog.cpp:854
+msgid "Align B and C for 3 input files"
+msgstr ""
+
+#: optiondialog.cpp:857
+msgid ""
+"Try to align B and C when comparing or merging three input files.\n"
+"Not recommended for merging because merge might get more complicated.\n"
+"(Default is off.)"
+msgstr ""
+
+#: optiondialog.cpp:870
+#, fuzzy
+msgid "Merge Settings"
+msgstr "Gosodiadau Rhanbarthol"
+
+#: optiondialog.cpp:885
+msgid "Auto advance delay (ms):"
+msgstr ""
+
+#: optiondialog.cpp:890
+msgid ""
+"When in Auto-Advance mode the result of the current selection is shown \n"
+"for the specified time, before jumping to the next conflict. Range: 0-2000 ms"
+msgstr ""
+
+#: optiondialog.cpp:895
+msgid "Show info dialogs"
+msgstr ""
+
+#: optiondialog.cpp:897
+msgid "Show a dialog with information about the number of conflicts."
+msgstr ""
+
+#: optiondialog.cpp:900
+msgid "White space 2-file merge default:"
+msgstr ""
+
+#: optiondialog.cpp:904 optiondialog.cpp:917
+msgid "Manual Choice"
+msgstr "Dewis gyda llaw"
+
+#: optiondialog.cpp:908 optiondialog.cpp:922
+msgid ""
+"Allow the merge algorithm to automatically select an input for white-space-"
+"only changes."
+msgstr ""
+
+#: optiondialog.cpp:913
+msgid "White space 3-file merge default:"
+msgstr ""
+
+#: optiondialog.cpp:927
+msgid "Automatic Merge Regular Expression"
+msgstr ""
+
+#: optiondialog.cpp:940
+msgid ""
+"Regular expression for lines where KDiff3 should automatically choose one "
+"source.\n"
+"When a line with a conflict matches the regular expression then\n"
+"- if available - C, otherwise B will be chosen."
+msgstr ""
+
+#: optiondialog.cpp:946
+msgid "Run regular expression auto merge on merge start"
+msgstr ""
+
+#: optiondialog.cpp:948
+msgid ""
+"Run the merge for auto merge regular expressions\n"
+"immediately when a merge starts.\n"
+msgstr ""
+
+#: optiondialog.cpp:953
+msgid "Version Control History Merging"
+msgstr ""
+
+#: optiondialog.cpp:966
+msgid ""
+"Regular expression for the start of the version control history entry.\n"
+"Usually this line contains the \"$Log$\" keyword.\n"
+"Default value: \".*\\$Log.*\\$.*\""
+msgstr ""
+
+#: optiondialog.cpp:984
+msgid ""
+"A version control history entry consists of several lines.\n"
+"Specify the regular expression to detect the first line (without the leading "
+"comment).\n"
+"Use parentheses to group the keys you want to use for sorting.\n"
+"If left empty, then KDiff3 assumes that empty lines separate history "
+"entries.\n"
+"See the documentation for details."
+msgstr ""
+
+#: optiondialog.cpp:992
+msgid "History merge sorting"
+msgstr ""
+
+#: optiondialog.cpp:994
+msgid "Sort version control history by a key."
+msgstr ""
+
+#: optiondialog.cpp:1004
+msgid "History entry start sort key order:"
+msgstr ""
+
+#: optiondialog.cpp:1008
+msgid ""
+"Each pair of parentheses used in the regular expression for the history "
+"start entry\n"
+"groups a key that can be used for sorting.\n"
+"Specify the list of keys (that are numbered in order of occurrence\n"
+"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n"
+"If left empty, then no sorting will be done.\n"
+"See the documentation for details."
+msgstr ""
+
+#: optiondialog.cpp:1019
+msgid "Merge version control history on merge start"
+msgstr ""
+
+#: optiondialog.cpp:1021
+msgid "Run version control history automerge on merge start."
+msgstr ""
+
+#: optiondialog.cpp:1025
+msgid "Max number of history entries:"
+msgstr ""
+
+#: optiondialog.cpp:1028
+msgid "Cut off after specified number. Use -1 for infinite number of entries."
+msgstr ""
+
+#: optiondialog.cpp:1032
+msgid "Test your regular expressions"
+msgstr ""
+
+#: optiondialog.cpp:1037
+msgid "Irrelevant merge command:"
+msgstr ""
+
+#: optiondialog.cpp:1041
+msgid ""
+"If specified this script is run after automerge\n"
+"when no other relevant changes were detected.\n"
+"Called with the parameters: filename1 filename2 filename3"
+msgstr ""
+
+#: optiondialog.cpp:1047
+msgid "Auto save and quit on merge without conflicts"
+msgstr ""
+
+#: optiondialog.cpp:1050
+msgid ""
+"If KDiff3 was started for a file-merge from the command line and all\n"
+"conflicts are solvable without user interaction then automatically save and "
+"quit.\n"
+"(Similar to command line option \"--auto\".)"
+msgstr ""
+
+#: optiondialog.cpp:1061 optiondialog.cpp:1062
+#, fuzzy
+#| msgid "&Directory"
+msgid "Directory"
+msgstr "&Cyfeiriadur"
+
+#: optiondialog.cpp:1075
+msgid "Recursive directories"
+msgstr ""
+
+#: optiondialog.cpp:1077
+msgid "Whether to analyze subdirectories or not."
+msgstr ""
+
+#: optiondialog.cpp:1079
+msgid "File pattern(s):"
+msgstr ""
+
+#: optiondialog.cpp:1084
+msgid ""
+"Pattern(s) of files to be analyzed. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1090
+msgid "File-anti-pattern(s):"
+msgstr ""
+
+#: optiondialog.cpp:1095
+msgid ""
+"Pattern(s) of files to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1101
+msgid "Dir-anti-pattern(s):"
+msgstr ""
+
+#: optiondialog.cpp:1106
+msgid ""
+"Pattern(s) of directories to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1112
+msgid "Use .cvsignore"
+msgstr ""
+
+#: optiondialog.cpp:1115
+msgid ""
+"Extends the antipattern to anything that would be ignored by CVS.\n"
+"Via local \".cvsignore\" files this can be directory specific."
+msgstr ""
+
+#: optiondialog.cpp:1120
+msgid "Find hidden files and directories"
+msgstr ""
+
+#: optiondialog.cpp:1123
+msgid "Finds files and directories with the hidden attribute."
+msgstr ""
+
+#: optiondialog.cpp:1125
+msgid "Finds files and directories starting with '.'."
+msgstr ""
+
+#: optiondialog.cpp:1129
+msgid "Follow file links"
+msgstr ""
+
+#: optiondialog.cpp:1132
+msgid ""
+"On: Compare the file the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+
+#: optiondialog.cpp:1137
+msgid "Follow directory links"
+msgstr ""
+
+#: optiondialog.cpp:1140
+msgid ""
+"On: Compare the directory the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+
+#: optiondialog.cpp:1156
+msgid "Case sensitive filename comparison"
+msgstr ""
+
+#: optiondialog.cpp:1159
+msgid ""
+"The directory comparison will compare files or directories when their names "
+"match.\n"
+"Set this option if the case of the names must match. (Default for Windows is "
+"off, otherwise on.)"
+msgstr ""
+
+#: optiondialog.cpp:1163
+msgid "File Comparison Mode"
+msgstr ""
+
+#: optiondialog.cpp:1169
+msgid "Binary comparison"
+msgstr ""
+
+#: optiondialog.cpp:1170
+msgid "Binary comparison of each file. (Default)"
+msgstr ""
+
+#: optiondialog.cpp:1173
+msgid "Full analysis"
+msgstr ""
+
+#: optiondialog.cpp:1174
+msgid ""
+"Do a full analysis and show statistics information in extra columns.\n"
+"(Slower than a binary comparison, much slower for binary files.)"
+msgstr ""
+
+#: optiondialog.cpp:1178
+msgid "Trust the size and modification date (unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1179
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"Files with equal contents but different modification dates will appear as "
+"different.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+
+#: optiondialog.cpp:1184
+msgid ""
+"Trust the size and date, but use binary comparison if date does not match "
+"(unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1185
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"If the dates are not equal but the sizes are, use binary comparison.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+
+#: optiondialog.cpp:1190
+msgid "Trust the size (unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1191
+msgid ""
+"Assume that files are equal if their file lengths are equal.\n"
+"Useful for big directories or slow networks when the date is modified during "
+"download."
+msgstr ""
+
+#: optiondialog.cpp:1199
+msgid "Synchronize directories"
+msgstr ""
+
+#: optiondialog.cpp:1202
+msgid ""
+"Offers to store files in both directories so that\n"
+"both directories are the same afterwards.\n"
+"Works only when comparing two directories without specifying a destination."
+msgstr ""
+
+#: optiondialog.cpp:1208
+msgid "White space differences considered equal"
+msgstr ""
+
+#: optiondialog.cpp:1211
+msgid ""
+"If files differ only by white space consider them equal.\n"
+"This is only active when full analysis is chosen."
+msgstr ""
+
+#: optiondialog.cpp:1217
+msgid "Copy newer instead of merging (unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1220
+msgid ""
+"Don't look inside, just take the newer file.\n"
+"(Use this only if you know what you are doing!)\n"
+"Only effective when comparing two directories."
+msgstr ""
+
+#: optiondialog.cpp:1225
+msgid "Backup files (.orig)"
+msgstr ""
+
+#: optiondialog.cpp:1228
+msgid ""
+"If a file would be saved over an old file, then the old file\n"
+"will be renamed with a '.orig' extension instead of being deleted."
+msgstr ""
+
+#: optiondialog.cpp:1301 optiondialog.cpp:1302
+msgid "Regional Settings"
+msgstr "Gosodiadau Rhanbarthol"
+
+#: optiondialog.cpp:1402
+msgid "Language (restart required)"
+msgstr ""
+
+#: optiondialog.cpp:1445
+msgid ""
+"Choose the language of the GUI strings or \"Auto\".\n"
+"For a change of language to take place, quit and restart KDiff3."
+msgstr ""
+
+#: optiondialog.cpp:1463
+msgid "Use the same encoding for everything:"
+msgstr ""
+
+#: optiondialog.cpp:1466
+msgid ""
+"Enable this allows to change all encodings by changing the first only.\n"
+"Disable this if different individual settings are needed."
+msgstr ""
+
+#: optiondialog.cpp:1471
+msgid "Note: Local Encoding is "
+msgstr ""
+
+#: optiondialog.cpp:1475
+msgid "File Encoding for A:"
+msgstr ""
+
+#: optiondialog.cpp:1481
+msgid ""
+"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n"
+"If the file is not Unicode then the selected encoding will be used as "
+"fallback.\n"
+"(Unicode detection depends on the first bytes of a file.)"
+msgstr ""
+
+#: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503
+msgid "Auto Detect Unicode"
+msgstr ""
+
+#: optiondialog.cpp:1490
+msgid "File Encoding for B:"
+msgstr ""
+
+#: optiondialog.cpp:1499
+msgid "File Encoding for C:"
+msgstr ""
+
+#: optiondialog.cpp:1508
+msgid "File Encoding for Merge Output and Saving:"
+msgstr ""
+
+#: optiondialog.cpp:1512
+#, fuzzy
+msgid "Auto Select"
+msgstr "dim detholiad"
+
+#: optiondialog.cpp:1515
+msgid ""
+"If enabled then the encoding from the input files is used.\n"
+"In ambiguous cases a dialog will ask the user to choose the encoding for "
+"saving."
+msgstr ""
+
+#: optiondialog.cpp:1519
+msgid "File Encoding for Preprocessor Files:"
+msgstr ""
+
+#: optiondialog.cpp:1530
+msgid "Right To Left Language"
+msgstr ""
+
+#: optiondialog.cpp:1533
+msgid ""
+"Some languages are read from right to left.\n"
+"This setting will change the viewer and editor accordingly."
+msgstr ""
+
+#: optiondialog.cpp:1548
+#, fuzzy
+msgid "Integration"
+msgstr "Gweithrediad"
+
+#: optiondialog.cpp:1549
+#, fuzzy
+msgid "Integration Settings"
+msgstr "Gosodiadau Rhanbarthol"
+
+#: optiondialog.cpp:1563
+msgid "Command line options to ignore:"
+msgstr ""
+
+#: optiondialog.cpp:1568
+msgid ""
+"List of command line options that should be ignored when KDiff3 is used by "
+"other tools.\n"
+"Several values can be specified if separated via ';'\n"
+"This will suppress the \"Unknown option\" error."
+msgstr ""
+
+#: optiondialog.cpp:1575
+msgid "Quit also via Escape key"
+msgstr ""
+
+#: optiondialog.cpp:1578
+msgid ""
+"Fast method to exit.\n"
+"For those who are used to using the Escape key."
+msgstr ""
+
+#: optiondialog.cpp:1583
+msgid "Integrate with ClearCase"
+msgstr ""
+
+#: optiondialog.cpp:1586
+msgid ""
+"Integrate with Rational ClearCase from IBM.\n"
+"Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n"
+"(Only enabled when ClearCase \"bin\" directory is in the path.)"
+msgstr ""
+
+#: optiondialog.cpp:1592
+msgid "Remove ClearCase Integration"
+msgstr ""
+
+#: optiondialog.cpp:1595
+msgid ""
+"Restore the old \"map\" file from before doing the ClearCase integration."
+msgstr ""
+
+#: optiondialog.cpp:1680
+msgid "Incompatible Font"
+msgstr ""
+
+#: optiondialog.cpp:1681
+msgid "Continue at Own Risk"
+msgstr ""
+
+#: optiondialog.cpp:1682
+msgid "Select Another Font"
+msgstr ""
+
+#: optiondialog.cpp:1717
+msgid "This resets all options. Not only those of the current topic."
+msgstr ""
+
+#: pdiff.cpp:260
+msgid "PreprocessorCmd: "
+msgstr ""
+
+#: pdiff.cpp:265
+msgid "The following option(s) you selected might change data:\n"
+msgstr ""
+
+#: pdiff.cpp:266
+msgid ""
+"\n"
+"Most likely this is not wanted during a merge.\n"
+"Do you want to disable these settings or continue with these settings active?"
+msgstr ""
+
+#: pdiff.cpp:268
+msgid "Option Unsafe for Merging"
+msgstr ""
+
+#: pdiff.cpp:269
+msgid "Use These Options During Merge"
+msgstr ""
+
+#: pdiff.cpp:270
+msgid "Disable Unsafe Options"
+msgstr ""
+
+#: pdiff.cpp:300
+msgid "Loading A"
+msgstr ""
+
+#: pdiff.cpp:304
+msgid "Loading B"
+msgstr ""
+
+#: pdiff.cpp:321 pdiff.cpp:347
+msgid "Diff: A <-> B"
+msgstr ""
+
+#: pdiff.cpp:327 pdiff.cpp:372
+msgid "Linediff: A <-> B"
+msgstr ""
+
+#: pdiff.cpp:338
+msgid "Loading C"
+msgstr ""
+
+#: pdiff.cpp:350
+msgid "Diff: B <-> C"
+msgstr ""
+
+#: pdiff.cpp:353
+msgid "Diff: A <-> C"
+msgstr ""
+
+#: pdiff.cpp:375
+msgid "Linediff: B <-> C"
+msgstr ""
+
+#: pdiff.cpp:378
+msgid "Linediff: A <-> C"
+msgstr ""
+
+#: pdiff.cpp:534
+msgid "All input files contain the same text, but are not binary equal."
+msgstr ""
+
+#: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541
+#, kde-format
+msgid "Files %1 and %2 have equal text, but are not binary equal. \n"
+msgstr ""
+
+#: pdiff.cpp:551
+msgid ""
+"Some inputfiles don't seem to be pure textfiles.\n"
+"Note that the KDiff3-merge was not meant for binary data.\n"
+"Continue at your own risk."
+msgstr ""
+
+#: pdiff.cpp:566
+#, kde-format
+msgid ""
+"Some input characters could not be converted to valid unicode.\n"
+"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n"
+"Don't save the result if unsure. Continue at your own risk.\n"
+"Affected input files are in %1."
+msgstr ""
+
+#: pdiff.cpp:1080
+msgid "Abort"
+msgstr "Erthylu"
+
+#: pdiff.cpp:1087 pdiff.cpp:1175
+msgid "Opening files..."
+msgstr ""
+
+#: pdiff.cpp:1152 pdiff.cpp:1223
+msgid "File open error"
+msgstr "Gwall agor ffeil"
+
+#: pdiff.cpp:1255
+msgid "Cutting selection..."
+msgstr "Yn torri'r dewisiad..."
+
+#: pdiff.cpp:1276
+msgid "Copying selection to clipboard..."
+msgstr "Yn copïo'r dewisiad i'r clipfwrdd..."
+
+#: pdiff.cpp:1292
+msgid "Inserting clipboard contents..."
+msgstr "Yn mewnosod cynnwys y clipfwrdd..."
+
+#: pdiff.cpp:1814
+msgid "Save && Continue"
+msgstr ""
+
+#: pdiff.cpp:1815
+msgid "Continue Without Saving"
+msgstr ""
+
+#: pdiff.cpp:2018
+msgid "Search complete."
+msgstr ""
+
+#: pdiff.cpp:2018
+msgid "Search Complete"
+msgstr ""
+
+#: pdiff.cpp:2252
+msgid "Nothing is selected in either diff input window."
+msgstr ""
+
+#: pdiff.cpp:2252
+msgid "Error while adding manual diff range"
+msgstr ""
+
+#: kdiff3_shell.cpp:76
+msgid ""
+"Could not initialize the KDiff3 part.\n"
+"This usually happens due to an installation problem. Please read the README-"
+"file in the source package for details."
+msgstr ""
+
+#: rc.cpp:1
+msgctxt "NAME OF TRANSLATORS"
+msgid "Your names"
+msgstr ""
+
+#: rc.cpp:2
+msgctxt "EMAIL OF TRANSLATORS"
+msgid "Your emails"
+msgstr ""
+
+#. i18n: file: kdiff3_part.rc:4
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:5
+msgid "&KDiff3"
+msgstr ""
+
+#. i18n: file: kdiff3_part.rc:13
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:8
+msgid "Configure KDiff3"
+msgstr ""
+
+#. i18n: file: kdiff3_part.rc:16
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:11
+msgid "KDiff3"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:106
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:38
+msgid "Main Toolbar"
+msgstr ""
+
+#~ msgid "C&ontinue"
+#~ msgstr "&Mynd ymlaen"
+
+#~ msgid ""
+#~ "_: NAME OF TRANSLATORS\n"
+#~ "Your names"
+#~ msgstr "KD wrth KGyfieithu"
+
+#~ msgid ""
+#~ "_: EMAIL OF TRANSLATORS\n"
+#~ "Your emails"
+#~ msgstr "kyfieithu@dotmon.com"
+
+#~ msgid "Enables/disables the toolbar"
+#~ msgstr "Galluogi/analluogi'r bar offer"
+
+#, fuzzy
+#~ msgid "Manually match lines"
+#~ msgstr "Dewis gyda llaw"
diff --git a/po/da/CMakeLists.txt b/po/da/CMakeLists.txt
new file mode 100644 (file)
index 0000000..c870c51
--- /dev/null
@@ -0,0 +1,2 @@
+file(GLOB _po_files *.po)
+GETTEXT_PROCESS_PO_FILES(da ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
diff --git a/po/da/kdiff3.po b/po/da/kdiff3.po
new file mode 100644 (file)
index 0000000..1fb55d4
--- /dev/null
@@ -0,0 +1,3208 @@
+# translation of kdiff3.po to
+# Danish translation of kdiff3
+# Copyright (C).
+#
+# Erik Kjær Pedersen <erik@binghamton.edu>, 2003, 2004, 2005, 2006, 2007.
+# Martin Schlander <suse@linuxin.dk>, 2008.
+# Martin Schlander <mschlander@opensuse.org>, 2009, 2010, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-05-08 11:25+0200\n"
+"Last-Translator: Martin Schlander <mschlander@opensuse.org>\n"
+"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
+"Language: da\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.2\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: kreplacements/kreplacements.h:105
+msgid "Continue"
+msgstr "Fortsæt"
+
+#: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158
+#: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512
+msgid "Cancel"
+msgstr "Annullér"
+
+#: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631
+msgid "Quit"
+msgstr "Afslut"
+
+#: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339
+msgid "Ok"
+msgstr "O.k."
+
+#: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715
+msgid "Help"
+msgstr "Hjælp"
+
+#: kreplacements/kreplacements.cpp:185
+msgid "Defaults"
+msgstr "Standardindstillinger"
+
+#. i18n: file: kdiff3_shell.rc:4
+#. i18n: ectx: Menu (file)
+#: kreplacements/kreplacements.cpp:296 rc.cpp:14
+msgid "&File"
+msgstr "&Fil"
+
+#: kreplacements/kreplacements.cpp:297
+msgid "&Edit"
+msgstr "&Redigér"
+
+#. i18n: file: kdiff3_shell.rc:7
+#. i18n: ectx: Menu (directory)
+#: kreplacements/kreplacements.cpp:298 rc.cpp:17
+msgid "&Directory"
+msgstr "&Mappe"
+
+#. i18n: file: kdiff3_shell.rc:50
+#. i18n: ectx: Menu (movement)
+#: kreplacements/kreplacements.cpp:301 rc.cpp:26
+msgid "&Movement"
+msgstr "&Bevægelse"
+
+#. i18n: file: kdiff3_shell.rc:61
+#. i18n: ectx: Menu (diff)
+#: kreplacements/kreplacements.cpp:302 rc.cpp:29
+msgid "D&iffview"
+msgstr "D&iff-visning"
+
+#. i18n: file: kdiff3_shell.rc:73
+#. i18n: ectx: Menu (merge)
+#: kreplacements/kreplacements.cpp:303 rc.cpp:32
+msgid "&Merge"
+msgstr "Ind&flet"
+
+#. i18n: file: kdiff3_shell.rc:95
+#. i18n: ectx: Menu (window)
+#: kreplacements/kreplacements.cpp:304 rc.cpp:35
+msgid "&Window"
+msgstr "&Vindue"
+
+#: kreplacements/kreplacements.cpp:305
+msgid "&Settings"
+msgstr "&Indstillinger"
+
+#: kreplacements/kreplacements.cpp:306
+msgid "&Help"
+msgstr "&Hjælp"
+
+#: kreplacements/kreplacements.cpp:353
+msgid "&About"
+msgstr "&Om"
+
+#: kreplacements/kreplacements.cpp:369
+msgid "A&uthor"
+msgstr "&Udvikler"
+
+#: kreplacements/kreplacements.cpp:383
+msgid "&Thanks To"
+msgstr "&Tak til"
+
+#. i18n: file: kdiff3_shell.rc:30
+#. i18n: ectx: Menu (dir_current_merge_menu)
+#: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497
+#: rc.cpp:20
+msgid "Current Item Merge Operation"
+msgstr "Indfletningsoperation for dette element"
+
+#. i18n: file: kdiff3_shell.rc:38
+#. i18n: ectx: Menu (dir_current_sync_menu)
+#: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498
+#: rc.cpp:23
+msgid "Current Item Sync Operation"
+msgstr "Synkroniseringsoperation for dette element"
+
+#: kreplacements/kreplacements.cpp:597
+msgid "Open"
+msgstr "Åbn"
+
+#: kreplacements/kreplacements.cpp:606
+msgid "Save"
+msgstr "Gem"
+
+#: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720
+msgid "Save As..."
+msgstr "Gem som..."
+
+#: kreplacements/kreplacements.cpp:623
+msgid "Print..."
+msgstr "Udskriv..."
+
+#: kreplacements/kreplacements.cpp:639
+msgid "Cut"
+msgstr "Klip"
+
+#: kreplacements/kreplacements.cpp:647
+msgid "Copy"
+msgstr "Kopiér"
+
+#: kreplacements/kreplacements.cpp:655
+msgid "Paste"
+msgstr "Indsæt"
+
+#: kreplacements/kreplacements.cpp:663
+msgid "Select All"
+msgstr "Markér alt"
+
+#: kreplacements/kreplacements.cpp:671
+msgid "Show Toolbar"
+msgstr "Vis værktøjslinje"
+
+#: kreplacements/kreplacements.cpp:679
+msgid "Show &Status Bar"
+msgstr "Vis &statuslinje"
+
+#: kreplacements/kreplacements.cpp:687
+#, kde-format
+msgid "&Configure %1..."
+msgstr "In&dstil %1..."
+
+#: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707
+msgid "About"
+msgstr "Om"
+
+#: kreplacements/kreplacements.cpp:722
+msgid "Find"
+msgstr "Find"
+
+#: kreplacements/kreplacements.cpp:730
+msgid "Find Next"
+msgstr "Find næste"
+
+#: kreplacements/kreplacements.cpp:750
+msgid "Select Font"
+msgstr "Vælg skrifttype"
+
+#: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676
+msgid ""
+"You selected a variable width font.\n"
+"\n"
+"Because this program doesn't handle variable width fonts\n"
+"correctly, you might experience problems while editing.\n"
+"\n"
+"Do you want to continue or do you want to select another font."
+msgstr ""
+"Du valgte en skrifttype med variabel bredde.\n"
+"\n"
+"Dette program håndterer ikke skrifttyper af variabel skrifttype\n"
+"rigtigt, så du vil måske få problemer når du redigerer.\n"
+"\n"
+"Ønsker du at fortsætte eller at vælge en anden skrifttype."
+
+#: kreplacements/kreplacements.cpp:792
+msgid "Incompatible font."
+msgstr "Inkompatibel skrifttype."
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Continue at my own risk"
+msgstr "Fortsæt på eget ansvar"
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Select another font"
+msgstr "Vælg en anden skrifttype"
+
+#: kreplacements/kreplacements.cpp:1134
+msgid "For more documentation, see the help-menu or the subdirectory doc."
+msgstr "Se menuen Hjælp eller undermappen doc for mere dokumentation."
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "KDiff3-Usage"
+msgstr "Brug af KDiff3"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Ignore"
+msgstr "Ignorér"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Exit"
+msgstr "Afslut"
+
+#: diff.cpp:251
+msgid "Writing clipboard data to temp file failed."
+msgstr "Skrivning af udklipsholderdata til midlertidig fil mislykkedes."
+
+#: diff.cpp:255
+msgid "From Clipboard"
+msgstr "Fra udklipsholderen"
+
+#: diff.cpp:471
+msgid "Expecting space after closing quotation mark."
+msgstr "Forventer mellemrum efter afsluttende citationstegn."
+
+#: diff.cpp:474
+msgid "Not matching quotation marks."
+msgstr "Ikke matchende citationstegn."
+
+#: diff.cpp:496
+msgid "Unexpected quotation mark within argument."
+msgstr "Uventet citationstegn i argument."
+
+#: diff.cpp:503
+msgid "No program specified."
+msgstr "Intet program angivet."
+
+#: diff.cpp:605
+#, kde-format
+msgid ""
+"Preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The preprocessing command will be disabled now."
+msgstr ""
+"Forbehandling mislykkedes muligvis. Tjek denne kommando:\n"
+"\n"
+"  %1\n"
+"\n"
+"Forbehandlingskommandoen vil blive deaktiveret nu."
+
+#: diff.cpp:653
+#, kde-format
+msgid ""
+"The line-matching-preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The line-matching-preprocessing command will be disabled now."
+msgstr ""
+"Forbehandlingen af linje-matchning mislykkedes muligvis. Tjek denne "
+"kommando:\n"
+"\n"
+"  %1\n"
+"\n"
+"Forbehandlingskommandoen til linje-matchning vil blibe deaktiveret nu."
+
+#: diff.cpp:1776 diff.cpp:1790
+msgid ""
+"Data loss error:\n"
+"If it is reproducible please contact the author.\n"
+msgstr ""
+"Fejl med datatab:\n"
+"Hvis dette er reproducerbart så kontakt venligst udviklerne.\n"
+
+#: diff.cpp:1778 diff.cpp:1792
+msgid "Severe Internal Error"
+msgstr "Alvorlig intern fejl"
+
+#: directorymergewindow.cpp:136
+msgid "Mix of links and normal files."
+msgstr "Blanding af link og normale filer."
+
+#: directorymergewindow.cpp:143
+msgid "Link: "
+msgstr "Link: "
+
+#: directorymergewindow.cpp:151
+msgid "Size. "
+msgstr "Størrelse. "
+
+#: directorymergewindow.cpp:164 directorymergewindow.cpp:174
+msgid "Date & Size: "
+msgstr "Dato & Størrelse: "
+
+#: directorymergewindow.cpp:184 directorymergewindow.cpp:190
+#, kde-format
+msgid "Creating temp copy of %1 failed."
+msgstr "Oprettelse af midlertidig kopi af %1 mislykkedes."
+
+#: directorymergewindow.cpp:201 directorymergewindow.cpp:209
+#, kde-format
+msgid "Opening %1 failed."
+msgstr "Åbning af %1 mislykkedes."
+
+#: directorymergewindow.cpp:213
+msgid "Comparing file..."
+msgstr "Sammenligner fil..."
+
+#: directorymergewindow.cpp:223 directorymergewindow.cpp:229
+#, kde-format
+msgid "Error reading from %1"
+msgstr "Fejl ved læsning fra %1"
+
+#: directorymergewindow.cpp:358
+msgid "Name"
+msgstr "Navn"
+
+#: directorymergewindow.cpp:358
+msgid "Operation"
+msgstr "Operation"
+
+#: directorymergewindow.cpp:358
+msgid "Status"
+msgstr "Status"
+
+#: directorymergewindow.cpp:359
+msgid "Unsolved"
+msgstr "Uløst"
+
+#: directorymergewindow.cpp:359
+msgid "Solved"
+msgstr "Løst"
+
+#: directorymergewindow.cpp:359
+msgid "Nonwhite"
+msgstr "Ikke-hvid"
+
+#: directorymergewindow.cpp:359
+msgid "White"
+msgstr "Hvid"
+
+#: directorymergewindow.cpp:388
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort "
+"the merge and rescan the directory?"
+msgstr ""
+"Du er ved at udføre en mappeindfletning. Er du sikker på at du ønsker at "
+"afbryde indfletningen og scanne mappen igen?"
+
+#: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655
+#: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823
+msgid "Warning"
+msgstr "Advarsel"
+
+#: directorymergewindow.cpp:390 directorymergewindow.cpp:2965
+msgid "Rescan"
+msgstr "Genscan"
+
+#: directorymergewindow.cpp:391 pdiff.cpp:1081
+msgid "Continue Merging"
+msgstr "Fortsæt med indfletning"
+
+#: directorymergewindow.cpp:548
+msgid "Opening of directories failed:"
+msgstr "Det mislykkedes at åbne mapper:"
+
+#: directorymergewindow.cpp:551
+#, kde-format
+msgid "Dir A \"%1\" does not exist or is not a directory.\n"
+msgstr "Mappen A \"%1\" eksisterer ikke eller er ikke en mappe.\n"
+
+#: directorymergewindow.cpp:554
+#, kde-format
+msgid "Dir B \"%1\" does not exist or is not a directory.\n"
+msgstr "Mappen B \"%1\" eksisterer ikke eller er ikke en mappe.\n"
+
+#: directorymergewindow.cpp:557
+#, kde-format
+msgid "Dir C \"%1\" does not exist or is not a directory.\n"
+msgstr "Mappen C \"%1\" eksisterer ikke eller er ikke en mappe.\n"
+
+#: directorymergewindow.cpp:559
+msgid "Directory Open Error"
+msgstr "Fejl ved åbning af mappe"
+
+#: directorymergewindow.cpp:567
+msgid ""
+"The destination directory must not be the same as A or B when three "
+"directories are merged.\n"
+"Check again before continuing."
+msgstr ""
+"Målmappen kan ikke være den samme som A eller B når tre mapper flettes "
+"sammen.\n"
+"Tjek igen før du fortsætter."
+
+#: directorymergewindow.cpp:569
+msgid "Parameter Warning"
+msgstr "Parameteradvarsel"
+
+#: directorymergewindow.cpp:574
+msgid "Scanning directories..."
+msgstr "Scanner mapper..."
+
+#: directorymergewindow.cpp:607
+msgid "Reading Directory A"
+msgstr "Læser mappen A"
+
+#: directorymergewindow.cpp:629
+msgid "Reading Directory B"
+msgstr "Læser mappen B"
+
+#: directorymergewindow.cpp:651
+msgid "Reading Directory C"
+msgstr "Læser mappen C"
+
+#: directorymergewindow.cpp:677
+msgid "Some subdirectories were not readable in"
+msgstr "Nogle undermapper kunne ikke læses i"
+
+#: directorymergewindow.cpp:682
+msgid "Check the permissions of the subdirectories."
+msgstr "Tjek tilladelser for undermapperne."
+
+#: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737
+#: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233
+#: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328
+msgid "Ready."
+msgstr "Klar."
+
+#: directorymergewindow.cpp:735
+msgid "Directory Comparison Status"
+msgstr "Status for mappesammenligning"
+
+#: directorymergewindow.cpp:736
+msgid "Number of subdirectories:"
+msgstr "Antal undermapper:"
+
+#: directorymergewindow.cpp:737
+msgid "Number of equal files:"
+msgstr "Antal ens filer:"
+
+#: directorymergewindow.cpp:738
+msgid "Number of different files:"
+msgstr "Antal forskellige filer:"
+
+#: directorymergewindow.cpp:741
+msgid "Number of manual merges:"
+msgstr "Antal manuelle indfletninger:"
+
+#: directorymergewindow.cpp:912
+msgid "This affects all merge operations."
+msgstr "Dette påvirker alle indfletningsoperationer."
+
+#: directorymergewindow.cpp:913
+msgid "Changing All Merge Operations"
+msgstr "Ændrer alle indfletningsoperationer"
+
+#: directorymergewindow.cpp:1312
+msgid "Processing "
+msgstr "Behandler"
+
+#: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742
+msgid "To do."
+msgstr "At gøre."
+
+#: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996
+msgid "Copy A to B"
+msgstr "Kopiér A til B"
+
+#: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997
+msgid "Copy B to A"
+msgstr "Kopiér B til A"
+
+#: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998
+msgid "Delete A"
+msgstr "Slet A"
+
+#: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999
+msgid "Delete B"
+msgstr "Slet B"
+
+#: directorymergewindow.cpp:1814
+msgid "Delete A & B"
+msgstr "Slet A & B"
+
+#: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001
+msgid "Merge to A"
+msgstr "Indflet til A"
+
+#: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002
+msgid "Merge to B"
+msgstr "Indflet til B"
+
+#: directorymergewindow.cpp:1817
+msgid "Merge to A & B"
+msgstr "Indflet til A & B"
+
+#: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993
+msgid "Delete (if exists)"
+msgstr "Slet (hvis det eksisterer)"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+#: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869
+msgid "Merge"
+msgstr "Indflet"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+msgid "Merge (manual)"
+msgstr "Indflet (manuelt)"
+
+#: directorymergewindow.cpp:1824
+msgid "Error: Conflicting File Types"
+msgstr "Fejl: Filtyper i konflikt"
+
+#: directorymergewindow.cpp:1825
+msgid "Error: Changed and Deleted"
+msgstr "Fejl: Ændret og slettet"
+
+#: directorymergewindow.cpp:1826
+msgid "Error: Dates are equal but files are not."
+msgstr "Fejl: Datoer er ens men filer er ikke."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906
+msgid "This operation is currently not possible."
+msgstr "Denne operation er ikke mulig for øjeblikket."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174
+msgid "Operation Not Possible"
+msgstr "Operation ikke mulig"
+
+#: directorymergewindow.cpp:1945
+msgid ""
+"This should never happen: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"If you know how to reproduce this, please contact the program author."
+msgstr ""
+"Dette burde aldrig ske: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"Hvis du ved hvordan dette kan reproduceres, så kontakt programmets forfatter."
+
+#: directorymergewindow.cpp:1945
+msgid "Program Error"
+msgstr "Programfejl"
+
+#: directorymergewindow.cpp:1956
+msgid "An error occurred while copying.\n"
+msgstr "Der opstod en fejl mens der kopieredes.\n"
+
+#: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025
+#: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105
+#: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123
+#: directorymergewindow.cpp:2374
+msgid "Error"
+msgstr "Fejl"
+
+#: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375
+msgid "Merge Error"
+msgstr "Indfletningsfejl"
+
+#: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380
+msgid "Error."
+msgstr "Fejl."
+
+#: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272
+#: directorymergewindow.cpp:2312
+msgid "Done."
+msgstr "Færdig."
+
+#: directorymergewindow.cpp:1990
+msgid "Not saved."
+msgstr "Ikke gemt."
+
+#: directorymergewindow.cpp:2025
+msgid "Unknown merge operation. (This must never happen!)"
+msgstr "Ukendt indfletningsoperation. (Dette skulle ikke kunne ske!)"
+
+#: directorymergewindow.cpp:2057
+msgid "Unknown merge operation."
+msgstr "Ukendt indfletningsoperation."
+
+#: directorymergewindow.cpp:2072
+msgid ""
+"The merge is about to begin.\n"
+"\n"
+"Choose \"Do it\" if you have read the instructions and know what you are "
+"doing.\n"
+"Choosing \"Simulate it\" will tell you what would happen.\n"
+"\n"
+"Be aware that this program still has beta status and there is NO WARRANTY "
+"whatsoever! Make backups of your vital data!"
+msgstr ""
+"Indfletningen er ved at begynde.\n"
+"\n"
+"Vælg \"Gør det\" hvis du har læst instruktionerne og ved hvad du gør.\n"
+"Valg af \"Simulér det\" vil fortælle dig hvad der ville ske.\n"
+"\n"
+"Vær klar over at dette program stadig har beta-status og der er INGEN "
+"GARANTI overhovedet! Lav sikkerhedskopier af dine vitale data!"
+
+#: directorymergewindow.cpp:2077
+msgid "Starting Merge"
+msgstr "Starter indfletning"
+
+#: directorymergewindow.cpp:2078
+msgid "Do It"
+msgstr "Gør det"
+
+#: directorymergewindow.cpp:2079
+msgid "Simulate It"
+msgstr "Simulér det"
+
+#: directorymergewindow.cpp:2105
+msgid ""
+"The highlighted item has a different type in the different directories. "
+"Select what to do."
+msgstr ""
+"Det fremhævede element har forskellig type i de forskellige mapper. Vælg "
+"hvad der skal gøres."
+
+#: directorymergewindow.cpp:2114
+msgid ""
+"The modification dates of the file are equal but the files are not. Select "
+"what to do."
+msgstr ""
+"Ændringsdatoerne for filerne er ens, men filerne er ikke ens. Vælg hvad der "
+"skal gøres."
+
+#: directorymergewindow.cpp:2123
+msgid ""
+"The highlighted item was changed in one directory and deleted in the other. "
+"Select what to do."
+msgstr ""
+"Det fremhævede element er blevet ændret i én mappe og slettet i en anden. "
+"Vælg hvad der skal gøres."
+
+#: directorymergewindow.cpp:2174
+msgid ""
+"This operation is currently not possible because directory merge is "
+"currently running."
+msgstr ""
+"Denne operation er ikke mulig lige nu da mappe-indfletningen kører for "
+"øjeblikket."
+
+#: directorymergewindow.cpp:2234
+msgid ""
+"There was an error in the last step.\n"
+"Do you want to continue with the item that caused the error or do you want "
+"to skip this item?"
+msgstr ""
+"Der opstod en fejl i det sidste skridt.\n"
+"Vil du fortsætte med det element der forårsagede fejlen eller vil du springe "
+"dette element over?"
+
+#: directorymergewindow.cpp:2236
+msgid "Continue merge after an error"
+msgstr "Fortsæt med indfletning efter en fejl"
+
+#: directorymergewindow.cpp:2237
+msgid "Continue With Last Item"
+msgstr "Fortsæt med det sidste element"
+
+#: directorymergewindow.cpp:2238
+msgid "Skip Item"
+msgstr "Spring elementet over"
+
+#: directorymergewindow.cpp:2272
+msgid "Skipped."
+msgstr "Sprunget over."
+
+#: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493
+msgid "In progress..."
+msgstr "I fremgang..."
+
+#: directorymergewindow.cpp:2327
+msgid "Merge operation complete."
+msgstr "Indfletningsoperation færdig."
+
+#: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330
+msgid "Merge Complete"
+msgstr "Indfletning færdig"
+
+#: directorymergewindow.cpp:2340
+msgid ""
+"Simulated merge complete: Check if you agree with the proposed operations."
+msgstr ""
+"Simuleret indfletning færdig: Tjek om du er enig i de foreslåede operationer."
+
+#: directorymergewindow.cpp:2374
+msgid "An error occurred. Press OK to see detailed information.\n"
+msgstr "Der opstod en fejl. Tryk på o.k. for at se detaljeret information.\n"
+
+#: directorymergewindow.cpp:2406
+#, kde-format
+msgid "Error: While deleting %1: Creating backup failed."
+msgstr "Fejl: Under sletning af %1: Det mislykkedes at lave sikkerhedskopi."
+
+#: directorymergewindow.cpp:2413
+#, kde-format
+msgid "delete directory recursively( %1 )"
+msgstr "slet mappe rekursivt( %1 )"
+
+#: directorymergewindow.cpp:2415
+#, kde-format
+msgid "delete( %1 )"
+msgstr "slet( %1 )"
+
+#: directorymergewindow.cpp:2430
+msgid "Error: delete dir operation failed while trying to read the directory."
+msgstr ""
+"Fejl: 'slet mappe'-operation mislykkedes under forsøget på at læse mappen."
+
+#: directorymergewindow.cpp:2449
+#, kde-format
+msgid "Error: rmdir( %1 ) operation failed."
+msgstr "Fejl: rmdir( %1 ) operation mislykkedes."
+
+#: directorymergewindow.cpp:2459
+msgid "Error: delete operation failed."
+msgstr "Fejl: slet-operation mislykkedes."
+
+#: directorymergewindow.cpp:2485
+#, kde-format
+msgid "manual merge( %1, %2, %3 -> %4)"
+msgstr "manuel indfletning( %1, %2, %3 -> %4)"
+
+#: directorymergewindow.cpp:2488
+msgid ""
+"     Note: After a manual merge the user should continue by pressing F7."
+msgstr ""
+"     Bemærk: Efter en manuel indfletning skal brugeren fortsætte ved at "
+"trykke på F7."
+
+#: directorymergewindow.cpp:2513
+#, kde-format
+msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed."
+msgstr ""
+"Fejl: copy( %1 -> %2 ) mislykkedes. Sletning af eksisterende mål mislykkedes."
+
+#: directorymergewindow.cpp:2522
+#, kde-format
+msgid "copyLink( %1 -> %2 )"
+msgstr "copyLink( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2533
+msgid "Error: copyLink failed: Remote links are not yet supported."
+msgstr "Fejl: copyLink mislykkedes: Eksterne link er endnu ikke understøttede."
+
+#: directorymergewindow.cpp:2539
+msgid "Error: copyLink failed."
+msgstr "Fejl: copyLink mislykkedes."
+
+#: directorymergewindow.cpp:2564
+#, kde-format
+msgid "copy( %1 -> %2 )"
+msgstr "copy( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2590
+#, kde-format
+msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination."
+msgstr "Fejl under rename( %1 -> %2 ): Kan ikke slette eksisterende mål."
+
+#: directorymergewindow.cpp:2596
+#, kde-format
+msgid "rename( %1 -> %2 )"
+msgstr "rename( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2605
+msgid "Error: Rename failed."
+msgstr "Fejl: Omdøbning mislykkedes."
+
+#: directorymergewindow.cpp:2623
+#, kde-format
+msgid "Error during makeDir of %1. Cannot delete existing file."
+msgstr "Fejl ved makeDir af %1. Kan ikke slette eksisterende fil."
+
+#: directorymergewindow.cpp:2639
+#, kde-format
+msgid "makeDir( %1 )"
+msgstr "makeDir( %1 )"
+
+#: directorymergewindow.cpp:2649
+msgid "Error while creating directory."
+msgstr "Fejl ved oprettelse af mappe."
+
+#: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784
+msgid "Dest"
+msgstr "Mål"
+
+#: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709
+msgid "Dir"
+msgstr "Mappe"
+
+#: directorymergewindow.cpp:2678
+msgid "Type"
+msgstr "Type"
+
+#: directorymergewindow.cpp:2678
+msgid "Size"
+msgstr "Størrelse"
+
+#: directorymergewindow.cpp:2679
+msgid "Attr"
+msgstr "Attr"
+
+#: directorymergewindow.cpp:2679
+msgid "Last Modification"
+msgstr "Sidste ændring"
+
+#: directorymergewindow.cpp:2679
+msgid "Link-Destination"
+msgstr "Link-destination"
+
+#: directorymergewindow.cpp:2709 difftextwindow.cpp:401
+msgid "File"
+msgstr "Fil"
+
+#: directorymergewindow.cpp:2726
+msgid "not available"
+msgstr "ikke tilgængelig"
+
+#: directorymergewindow.cpp:2746
+msgid "A (Dest): "
+msgstr "A (Dest): "
+
+#: directorymergewindow.cpp:2749
+msgid "A (Base): "
+msgstr "A (Basis): "
+
+#: directorymergewindow.cpp:2755
+msgid "B (Dest): "
+msgstr "B (Dest): "
+
+#: directorymergewindow.cpp:2763
+msgid "C (Dest): "
+msgstr "C (Dest): "
+
+#: directorymergewindow.cpp:2769
+msgid "Dest: "
+msgstr "Dest: "
+
+#: directorymergewindow.cpp:2836
+msgid "Save Directory Merge State As..."
+msgstr "Gem tilstand for mappesammenfletning som..."
+
+#: directorymergewindow.cpp:2959
+msgid "Start/Continue Directory Merge"
+msgstr "Start/Fortsæt mappeindfletning"
+
+#: directorymergewindow.cpp:2960
+msgid "Run Operation for Current Item"
+msgstr "Kør operation for dette element"
+
+#: directorymergewindow.cpp:2961
+msgid "Compare Selected File"
+msgstr "Sammenlign udvalgt fil"
+
+#: directorymergewindow.cpp:2962
+msgid "Merge Current File"
+msgstr "Indflet udvalgt fil"
+
+#: directorymergewindow.cpp:2962
+msgid ""
+"Merge\n"
+"File"
+msgstr ""
+"Sammenflet\n"
+"fil"
+
+#: directorymergewindow.cpp:2963
+msgid "Fold All Subdirs"
+msgstr "Fold alle undermapper sammen"
+
+#: directorymergewindow.cpp:2964
+msgid "Unfold All Subdirs"
+msgstr "Fold alle undermapper ud"
+
+#: directorymergewindow.cpp:2968
+msgid "Choose A for All Items"
+msgstr "Vælg A for alle elementer"
+
+#: directorymergewindow.cpp:2969
+msgid "Choose B for All Items"
+msgstr "Vælg B for alle elementer"
+
+#: directorymergewindow.cpp:2970
+msgid "Choose C for All Items"
+msgstr "Vælg C for alle elementer"
+
+#: directorymergewindow.cpp:2971
+msgid "Auto-Choose Operation for All Items"
+msgstr "Auto-vælg operation for alle elementer"
+
+#: directorymergewindow.cpp:2972
+msgid "No Operation for All Items"
+msgstr "Ingen operation for alle elementer"
+
+#: directorymergewindow.cpp:2977
+msgid "Show Identical Files"
+msgstr "Vis identiske filer"
+
+#: directorymergewindow.cpp:2977
+msgid ""
+"Identical\n"
+"Files"
+msgstr ""
+"Identiske\n"
+"filer"
+
+#: directorymergewindow.cpp:2978
+msgid "Show Different Files"
+msgstr "Vis forskellige filer"
+
+#: directorymergewindow.cpp:2979
+msgid "Show Files only in A"
+msgstr "Vis kun filer i A"
+
+#: directorymergewindow.cpp:2979
+msgid ""
+"Files\n"
+"only in A"
+msgstr ""
+"Filer\n"
+"kun i A"
+
+#: directorymergewindow.cpp:2980
+msgid "Show Files only in B"
+msgstr "Vis kun filer i B"
+
+#: directorymergewindow.cpp:2980
+msgid ""
+"Files\n"
+"only in B"
+msgstr ""
+"Filer\n"
+"kun i B"
+
+#: directorymergewindow.cpp:2981
+msgid "Show Files only in C"
+msgstr "Vis filer som kun er i C"
+
+#: directorymergewindow.cpp:2981
+msgid ""
+"Files\n"
+"only in C"
+msgstr ""
+"Filer\n"
+"kun i C"
+
+#: directorymergewindow.cpp:2985
+msgid "Compare Explicitly Selected Files"
+msgstr "Sammenlign eksplicit markerede filer"
+
+#: directorymergewindow.cpp:2986
+msgid "Merge Explicitly Selected Files"
+msgstr "Sammenflet eksplicit markerede filer"
+
+#: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995
+msgid "Do Nothing"
+msgstr "Gør intet"
+
+#: directorymergewindow.cpp:2989
+msgid "A"
+msgstr "A"
+
+#: directorymergewindow.cpp:2990
+msgid "B"
+msgstr "B"
+
+#: directorymergewindow.cpp:2991
+msgid "C"
+msgstr "C"
+
+#: directorymergewindow.cpp:3000
+msgid "Delete A && B"
+msgstr "Slet A && B"
+
+#: directorymergewindow.cpp:3003
+msgid "Merge to A && B"
+msgstr "Indflet til A && B"
+
+#: main.cpp:74 main.cpp:76
+msgid "Ignored. (User defined.)"
+msgstr "Ignoreres. (brugerdefineret)"
+
+#: main.cpp:162
+msgid "kdiff3"
+msgstr "kdiff3"
+
+#: main.cpp:164
+msgid "Tool for Comparison and Merge of Files and Directories"
+msgstr "Værktøj til sammenligning og sammenfletning af filer og mapper"
+
+#: main.cpp:165
+msgid "(c) 2002-2011 Joachim Eibl"
+msgstr "(c) 2002-2011 Joachim Eibl"
+
+#: main.cpp:172 kdiff3_part.cpp:303
+msgid "Joachim Eibl"
+msgstr "Joachim Eibl"
+
+#: main.cpp:173
+msgid "Eike Sauer"
+msgstr "Eike Sauer"
+
+#: main.cpp:173
+msgid "Bugfixes, Debian package maintainer"
+msgstr "Fejlrettelser, vedligeholder af Debian-pakke"
+
+#: main.cpp:174
+msgid "Sebastien Fricker"
+msgstr "Sebastien Fricker"
+
+#: main.cpp:174
+msgid "Windows installer"
+msgstr "Installationsprogram til Windows"
+
+#: main.cpp:175
+msgid "Stephan Binner"
+msgstr "Stephan Binner"
+
+#: main.cpp:175
+msgid "i18n-help"
+msgstr "Hjælp med i18n"
+
+#: main.cpp:176
+msgid "Stefan Partheymueller"
+msgstr "Stefan Partheymueller"
+
+#: main.cpp:176
+msgid "Clipboard-patch"
+msgstr "Udklipsholder-rettelse"
+
+#: main.cpp:177
+msgid "David Faure"
+msgstr "David Faure"
+
+#: main.cpp:177
+msgid "KIO-Help"
+msgstr "Hjælp med KIO"
+
+#: main.cpp:178
+msgid "Bernd Gehrmann"
+msgstr "Bernd Gehrmann"
+
+#: main.cpp:178
+msgid "Class CvsIgnoreList from Cervisia"
+msgstr "Klassen CvsIgnoreList fra Cervisia"
+
+#: main.cpp:179
+msgid "Andre Woebbeking"
+msgstr "Andre Woebbeking"
+
+#: main.cpp:179
+msgid "Class StringMatcher"
+msgstr "Klassen StringMatcher"
+
+#: main.cpp:180
+msgid "Michael Denio"
+msgstr "Michael Denio"
+
+#: main.cpp:180
+msgid "Directory Equality-Coloring patch"
+msgstr "Rettelse til farvning af mappelighed"
+
+#: main.cpp:181
+msgid "Manfred Koehler"
+msgstr "Manfred Koehler"
+
+#: main.cpp:181
+msgid "Fix for slow startup on Windows"
+msgstr "Rettelse af langsom opstart på Windows"
+
+#: main.cpp:182
+msgid "Sergey Zorin"
+msgstr "Sergey Zorin"
+
+#: main.cpp:182
+msgid "Diff Ext for Windows"
+msgstr "Diff Ext til Windows"
+
+#: main.cpp:183
+msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+
+#: main.cpp:183
+msgid "GNU-Diffutils"
+msgstr "GNU-Diffutils"
+
+#: main.cpp:184
+msgid "Tino Boellsterling, Timothy Mee"
+msgstr "Tino Boellsterling, Timothy Mee"
+
+#: main.cpp:184
+msgid "Intensive test, use and feedback"
+msgstr "Intensiv afprøvning, brug og feedback"
+
+#: main.cpp:185
+msgid "Michael Schmidt"
+msgstr "Michael Schmidt"
+
+#: main.cpp:185
+msgid "Mac support"
+msgstr "Mac-understøttelse"
+
+#: main.cpp:186
+msgid "Valentin Rusu"
+msgstr "Valentin Rusu"
+
+#: main.cpp:186 main.cpp:187
+msgid "KDE4 porting"
+msgstr "Portering til KDE 4"
+
+#: main.cpp:187
+msgid "Albert Astals Cid"
+msgstr "Albert Astals Cid"
+
+#: main.cpp:188
+msgid "Silvan Scherrer"
+msgstr "Silvan Scherrer"
+
+#: main.cpp:188
+msgid "OS2 port"
+msgstr "Portering til OS2"
+
+#: main.cpp:190
+msgid "+ Many thanks to those who reported bugs and contributed ideas!"
+msgstr "+ Mange tak til dem der rapporterede fejl og bidrog med ideer."
+
+#: main.cpp:196
+msgid "Merge the input."
+msgstr "Indflet inddata."
+
+#: main.cpp:197
+msgid "Explicit base file. For compatibility with certain tools."
+msgstr "Eksplicit basisfil. For kompatibilitet med visse værktøjer."
+
+#: main.cpp:198
+msgid "Output file. Implies -m. E.g.: -o newfile.txt"
+msgstr "Uddatafil. Implicerer -m. F.eks.: -o nyfil.txt"
+
+#: main.cpp:199
+msgid "Output file, again. (For compatibility with certain tools.)"
+msgstr "Uddatafil, igen. (For kompatibilitet med visse værktøjer.)"
+
+#: main.cpp:200
+msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)"
+msgstr ""
+"Ingen GUI hvis alle konflikter er løsbare af sig selv. (Behøver -o fil)"
+
+#: main.cpp:201
+msgid "Don't solve conflicts automatically. (For compatibility...)"
+msgstr "Løs ikke konflikter automatisk. (For kompatibilitet...)"
+
+#: main.cpp:202
+msgid "Visible name replacement for input file 1 (base)."
+msgstr "Synlig navneerstatning for inddatafil 1 (basis)."
+
+#: main.cpp:203
+msgid "Visible name replacement for input file 2."
+msgstr "Synlig navneerstatning for inddatafil 2."
+
+#: main.cpp:204
+msgid "Visible name replacement for input file 3."
+msgstr "Synlig navneerstatning for inddatafil 3."
+
+#: main.cpp:205
+msgid "Alternative visible name replacement. Supply this once for every input."
+msgstr ""
+"Alternativ synlig navneerstatning. Angiv dette en gang for hver inddata."
+
+#: main.cpp:206
+msgid ""
+"Override a config setting. Use once for every setting. E.g.: --cs "
+"\"AutoAdvance=1\""
+msgstr ""
+"Sæt en indstilling ud af kraft. Brug en gang for hver indstilling, f.eks.  --"
+"cs \"AutoAdvance=1\""
+
+#: main.cpp:207
+msgid "Show list of config settings and current values."
+msgstr "Vis liste med indstillinger og nuværende værdier."
+
+#: main.cpp:208
+msgid "Use a different config file."
+msgstr "Brug en anden indstillingsfil."
+
+#: main.cpp:211
+msgid "file1 to open (base, if not specified via --base)"
+msgstr "fil1 der skal åbnes (basis, hvis ikke angivet via --base)"
+
+#: main.cpp:212
+msgid "file2 to open"
+msgstr "fil2 der skal åbnes"
+
+#: main.cpp:213
+msgid "file3 to open"
+msgstr "fil3 der skal åbnes"
+
+#: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976
+#: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002
+#: mergeresultwindow.cpp:1014
+#, kde-format
+msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)"
+msgstr ""
+"Antal tilbageværende uløste konflikter: %1 (af hvilke %2 er blanke tegn)"
+
+#: mergeresultwindow.cpp:303
+msgid ""
+"The output has been modified.\n"
+"If you continue your changes will be lost."
+msgstr ""
+"Uddata er blevet ændret.\n"
+"Hvis du fortsætter vil dine ændringer gå tabt."
+
+#: mergeresultwindow.cpp:834 pdiff.cpp:532
+msgid "All input files are binary equal."
+msgstr "Alle inddata-filer er binært ens."
+
+#: mergeresultwindow.cpp:836
+msgid "All input files contain the same text."
+msgstr "Alle inddata-filer indeholder den samme tekst."
+
+#: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840
+#: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540
+#, kde-format
+msgid "Files %1 and %2 are binary equal.\n"
+msgstr "Filerne %1 og %2 er binært ens.\n"
+
+#: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841
+#: mergeresultwindow.cpp:843
+#, kde-format
+msgid "Files %1 and %2 have equal text.\n"
+msgstr "Filerne %1 og %2 har ens tekst.\n"
+
+#: mergeresultwindow.cpp:849
+msgid "Total number of conflicts: "
+msgstr "Totalt antal konflikter: "
+
+#: mergeresultwindow.cpp:850
+msgid ""
+"\n"
+"Nr of automatically solved conflicts: "
+msgstr ""
+"\n"
+"Antal automatisk løste konflikter: "
+
+#: mergeresultwindow.cpp:851
+msgid ""
+"\n"
+"Nr of unsolved conflicts: "
+msgstr ""
+"\n"
+"Antal uløste konflikter: "
+
+#: mergeresultwindow.cpp:853
+msgid "Conflicts"
+msgstr "Konflikter"
+
+#: mergeresultwindow.cpp:1728
+msgid "<No src line>"
+msgstr "<Nr kilde linje>"
+
+#: mergeresultwindow.cpp:1736
+msgid "<Merge Conflict (Whitespace only)>"
+msgstr "<Indfletningskonflikt (kun blanke tegn)>"
+
+#: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517
+msgid "<Merge Conflict>"
+msgstr "<Indfletningskonflikt>"
+
+#: mergeresultwindow.cpp:2725
+msgid ""
+"Not all conflicts are solved yet.\n"
+"File not saved.\n"
+msgstr ""
+"Ikke alle konflikter er løst endnu.\n"
+"Filen er ikke gemt.\n"
+
+#: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736
+msgid "Conflicts Left"
+msgstr "Konflikter tilovers"
+
+#: mergeresultwindow.cpp:2734
+msgid ""
+"There is a line end style conflict. Please choose the line end style "
+"manually.\n"
+"File not saved.\n"
+msgstr ""
+"Der er en konflikt med stilen på linjeafslutning. Vælg stil på "
+"linjeafslutning manuelt.\n"
+"Filen blev ikke gemt.\n"
+
+#: mergeresultwindow.cpp:2748
+msgid ""
+"\n"
+"\n"
+"Creating backup failed. File not saved."
+msgstr ""
+"\n"
+"\n"
+"Mislykkedes at oprette sikkerhedskopi. Filen blev ikke gemt."
+
+#: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792
+msgid "File Save Error"
+msgstr "Fejl ved at gemme fil"
+
+#: mergeresultwindow.cpp:2792
+msgid "Error while writing."
+msgstr "Fejl ved skrivning."
+
+#: mergeresultwindow.cpp:3122
+msgid "Output"
+msgstr "Uddata"
+
+#: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314
+msgid "[Modified]"
+msgstr "[Ændret]"
+
+#: mergeresultwindow.cpp:3141
+msgid "Encoding for saving"
+msgstr "Filtegnsæt for at gemme"
+
+#: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737
+#: optiondialog.cpp:762
+msgid "Line end style:"
+msgstr "Linjeslut-stil:"
+
+#: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767
+msgid "Unix"
+msgstr "Unix"
+
+#: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737
+msgid "DOS"
+msgstr "DOS"
+
+#: mergeresultwindow.cpp:3229
+msgid "Conflict"
+msgstr "Konflikt"
+
+#: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263
+#: mergeresultwindow.cpp:3265
+msgid "Codec from"
+msgstr "Koder fra"
+
+#: kdiff3_part.cpp:157 kdiff3_part.cpp:234
+msgid "Couldn't find files for comparison."
+msgstr "Kunne ikke finde filer til sammenligning."
+
+#: kdiff3_part.cpp:302
+msgid "KDiff3Part"
+msgstr "KDiff3Part"
+
+#: fileaccess.cpp:612
+msgid ""
+"While trying to make a backup, deleting an older backup failed. \n"
+"Filename: "
+msgstr ""
+"Det mislykkedes at slette en ældre sikkerhedskopi under "
+"sikkerhedskopieringen.\n"
+"Filnavn: "
+
+#: fileaccess.cpp:619
+msgid ""
+"While trying to make a backup, renaming failed. \n"
+"Filenames: "
+msgstr ""
+"Det mislykkedes at ændre navnet under sikkerhedskopieringen\n"
+"Filnavne:"
+
+#: fileaccess.cpp:643
+#, kde-format
+msgid "Getting file status: %1"
+msgstr "Henter filstatus: %1"
+
+#: fileaccess.cpp:686
+#, kde-format
+msgid "Reading file: %1"
+msgstr "Læser fil: %1"
+
+#: fileaccess.cpp:723
+#, kde-format
+msgid "Writing file: %1"
+msgstr "Skriver fil: %1"
+
+#: fileaccess.cpp:751
+msgid "Out of memory"
+msgstr "Ude af hukommelse"
+
+#: fileaccess.cpp:786
+#, kde-format
+msgid "Making directory: %1"
+msgstr "Opretter mappe: %1"
+
+#: fileaccess.cpp:806
+#, kde-format
+msgid "Removing directory: %1"
+msgstr "Fjerner mappe: %1"
+
+#: fileaccess.cpp:821
+#, kde-format
+msgid "Removing file: %1"
+msgstr "Fjerner fil: %1"
+
+#: fileaccess.cpp:837
+#, kde-format
+msgid "Creating symbolic link: %1 -> %2"
+msgstr "Laver symbolsk link: %1 -> %2"
+
+#: fileaccess.cpp:864
+#, kde-format
+msgid "Renaming file: %1 -> %2"
+msgstr "Omdøber fil: %1 -> %2"
+
+#: fileaccess.cpp:897
+#, kde-format
+msgid "Copying file: %1 -> %2"
+msgstr "Kopierer fil: %1 -> %2"
+
+#: fileaccess.cpp:911
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for reading failed. Filename: "
+"%1"
+msgstr ""
+"Fejl under kopieringsoperationen: Åbning af fil til læsning mislykkedes. "
+"Filnavn: %1"
+
+#: fileaccess.cpp:917
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for writing failed. Filename: "
+"%1"
+msgstr ""
+"Fejl under kopieringsoperationen: Åbning af fil til skrivning mislykkedes. "
+"Filnavn: %1"
+
+#: fileaccess.cpp:932
+#, kde-format
+msgid "Error during file copy operation: Reading failed. Filename: %1"
+msgstr "Fejl under kopieringsoperationen: Læsning mislykkedes. Filnavn: %1"
+
+#: fileaccess.cpp:941
+#, kde-format
+msgid "Error during file copy operation: Writing failed. Filename: %1"
+msgstr "Fejl under kopieringsoperationen: Skrivning mislykkedes. Filnavn: %1"
+
+#: fileaccess.cpp:1231
+msgid "Reading directory: "
+msgstr "Læser mappe:"
+
+#: fileaccess.cpp:1355
+#, kde-format
+msgid "Listing directory: %1"
+msgstr "Giver en liste af mappe: %1"
+
+#: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396
+msgid "&Cancel"
+msgstr "&Annullér"
+
+#: difftextwindow.cpp:403
+msgid "Line"
+msgstr "Linje"
+
+#: difftextwindow.cpp:405
+msgid "Line not available"
+msgstr "Linjen er ikke tilgængelig"
+
+#: difftextwindow.cpp:1703 difftextwindow.cpp:1736
+msgid "Encoding:"
+msgstr "Tegnsæt:"
+
+#: difftextwindow.cpp:1759 kdiff3.cpp:831
+msgid "Top line"
+msgstr "Toplinje"
+
+#: difftextwindow.cpp:1769
+msgid "End"
+msgstr "Slut"
+
+#: kdiff3.cpp:169
+msgid "Current Configuration:"
+msgstr "Nuværende konfiguration:"
+
+#: kdiff3.cpp:174
+msgid "Config Option Error:"
+msgstr "Fejl i indstillingstilvalg:"
+
+#: kdiff3.cpp:219
+msgid "Option --auto used, but no output file specified."
+msgstr "Tilvalg --auto brugt, men ingen uddatafil angivet."
+
+#: kdiff3.cpp:369
+msgid "Option --auto ignored for directory comparison."
+msgstr "Tilvalg --auto ignoreret for mappesammenligning."
+
+#: kdiff3.cpp:405
+msgid "Saving failed."
+msgstr "Det mislykkedes at gemme."
+
+#: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214
+msgid "Opening of these files failed:"
+msgstr "Det mislykkedes at åbne disse filer:"
+
+#: kdiff3.cpp:449
+msgid "File Open Error"
+msgstr "Fejl ved åbning af fil"
+
+#: kdiff3.cpp:477
+msgid "Opens documents for comparison..."
+msgstr "Åbner dokumenter til sammenligning..."
+
+#: kdiff3.cpp:479
+msgid "Reload"
+msgstr "Genindlæs"
+
+#: kdiff3.cpp:482
+msgid "Saves the merge result. All conflicts must be solved!"
+msgstr "gemmer indfletningsresultatet. Alle konflikter skal løses!"
+
+#: kdiff3.cpp:484
+msgid "Saves the current document as..."
+msgstr "Gemmer dette dokument som..."
+
+#: kdiff3.cpp:487
+msgid "Print the differences"
+msgstr "Udskriv forskellene"
+
+#: kdiff3.cpp:490
+msgid "Quits the application"
+msgstr "Afslutter programmet"
+
+#: kdiff3.cpp:492
+msgid "Cuts the selected section and puts it to the clipboard"
+msgstr "Udklipper det markerede udvalg og lægger det på udklipsholderen"
+
+#: kdiff3.cpp:494
+msgid "Copies the selected section to the clipboard"
+msgstr "Kopierer det valgte udsnit til udklipsholderen"
+
+#: kdiff3.cpp:496
+msgid "Pastes the clipboard contents to current position"
+msgstr "Indsætter udklipsholderens indhold på den aktuelle position"
+
+#: kdiff3.cpp:498
+msgid "Select everything in current window"
+msgstr "Markér alting i nuværende vindue"
+
+#: kdiff3.cpp:500
+msgid "Search for a string"
+msgstr "Søg efter en streng"
+
+#: kdiff3.cpp:502
+msgid "Search again for the string"
+msgstr "Søg efter strengen igen"
+
+#: kdiff3.cpp:507
+msgid "Enables/disables the statusbar"
+msgstr "Slår statuslinjen til/fra"
+
+#: kdiff3.cpp:511
+msgid "Configure KDiff3..."
+msgstr "Indstil KDiff3..."
+
+#: kdiff3.cpp:532
+msgid "Go to Current Delta"
+msgstr "Gå til den aktuelle delta"
+
+#: kdiff3.cpp:532
+msgid ""
+"Current\n"
+"Delta"
+msgstr ""
+"Aktuel\n"
+"delta"
+
+#: kdiff3.cpp:534
+msgid "Go to First Delta"
+msgstr "Gå til første delta"
+
+#: kdiff3.cpp:534
+msgid ""
+"First\n"
+"Delta"
+msgstr ""
+"Første\n"
+"delta"
+
+#: kdiff3.cpp:536
+msgid "Go to Last Delta"
+msgstr "Gå til sidste delta"
+
+#: kdiff3.cpp:536
+msgid ""
+"Last\n"
+"Delta"
+msgstr ""
+"Sidste\n"
+"delta"
+
+#: kdiff3.cpp:538
+msgid "(Skips white space differences when \"Show White Space\" is disabled.)"
+msgstr ""
+"(Springer over forskelle i blanke tegn når \"Vis blanke tegn\" er "
+"deaktiveret.)"
+
+#: kdiff3.cpp:539
+msgid ""
+"(Does not skip white space differences even when \"Show White Space\" is "
+"disabled.)"
+msgstr ""
+"(Springer ikke over forskelle i blanke tegn også selvom \"Vis blanke tegn\" "
+"er deaktiveret.)"
+
+#: kdiff3.cpp:540
+msgid "Go to Previous Delta"
+msgstr "Gå til forrige delta"
+
+#: kdiff3.cpp:540
+msgid ""
+"Prev\n"
+"Delta"
+msgstr ""
+"Forrige\n"
+"delta"
+
+#: kdiff3.cpp:542
+msgid "Go to Next Delta"
+msgstr "Gå til næste delta"
+
+#: kdiff3.cpp:542
+msgid ""
+"Next\n"
+"Delta"
+msgstr ""
+"Næste\n"
+"delta"
+
+#: kdiff3.cpp:544
+msgid "Go to Previous Conflict"
+msgstr "Gå til forrige konflikt"
+
+#: kdiff3.cpp:544
+msgid ""
+"Prev\n"
+"Conflict"
+msgstr ""
+"Forrige\n"
+"konflikt"
+
+#: kdiff3.cpp:546
+msgid "Go to Next Conflict"
+msgstr "Gå til næste konflikt"
+
+#: kdiff3.cpp:546
+msgid ""
+"Next\n"
+"Conflict"
+msgstr ""
+"Næste\n"
+"konflikt"
+
+#: kdiff3.cpp:548
+msgid "Go to Previous Unsolved Conflict"
+msgstr "Gå til forrige uløste konflikt"
+
+#: kdiff3.cpp:548
+msgid ""
+"Prev\n"
+"Unsolved"
+msgstr ""
+"Forrige\n"
+"uløste"
+
+#: kdiff3.cpp:550
+msgid "Go to Next Unsolved Conflict"
+msgstr "Gå til næste uløste konflikt"
+
+#: kdiff3.cpp:550
+msgid ""
+"Next\n"
+"Unsolved"
+msgstr ""
+"Næste\n"
+"uløste"
+
+#: kdiff3.cpp:552
+msgid "Select Line(s) From A"
+msgstr "Vælg linjer fra A"
+
+#: kdiff3.cpp:552
+msgid ""
+"Choose\n"
+"A"
+msgstr ""
+"Vælg\n"
+"A"
+
+#: kdiff3.cpp:553
+msgid "Select Line(s) From B"
+msgstr "Vælg linjer fra B"
+
+#: kdiff3.cpp:553
+msgid ""
+"Choose\n"
+"B"
+msgstr ""
+"Vælg\n"
+"B"
+
+#: kdiff3.cpp:554
+msgid "Select Line(s) From C"
+msgstr "Vælg linjer fra C"
+
+#: kdiff3.cpp:554
+msgid ""
+"Choose\n"
+"C"
+msgstr ""
+"Vælg\n"
+"C"
+
+#: kdiff3.cpp:555
+msgid "Automatically Go to Next Unsolved Conflict After Source Selection"
+msgstr "Gå automatiske til næste uløste konflikt efter kildevalg"
+
+#: kdiff3.cpp:555
+msgid ""
+"Auto\n"
+"Next"
+msgstr ""
+"Auto\n"
+"næste"
+
+#: kdiff3.cpp:557
+msgid "Show Space && Tabulator Characters for Differences"
+msgstr "Vis mellemrums && tabulator-tegn for forskelle"
+
+#: kdiff3.cpp:557
+msgid ""
+"White\n"
+"Characters"
+msgstr ""
+"Hvide\n"
+"tegn"
+
+#: kdiff3.cpp:558
+msgid "Show White Space"
+msgstr "Vis blanke tegn"
+
+#: kdiff3.cpp:558
+msgid ""
+"White\n"
+"Deltas"
+msgstr ""
+"Hvide\n"
+"deltaer"
+
+#: kdiff3.cpp:560
+msgid "Show Line Numbers"
+msgstr "Vis linjenumre"
+
+#: kdiff3.cpp:560
+msgid ""
+"Line\n"
+"Numbers"
+msgstr ""
+"Linje-\n"
+"numre"
+
+#: kdiff3.cpp:561
+msgid "Choose A Everywhere"
+msgstr "Vælg A overalt"
+
+#: kdiff3.cpp:562
+msgid "Choose B Everywhere"
+msgstr "Vælg B overalt"
+
+#: kdiff3.cpp:563
+msgid "Choose C Everywhere"
+msgstr "Vælg C overalt"
+
+#: kdiff3.cpp:564
+msgid "Choose A for All Unsolved Conflicts"
+msgstr "Vælg A for alle uløste konflikter"
+
+#: kdiff3.cpp:565
+msgid "Choose B for All Unsolved Conflicts"
+msgstr "Vælg B for alle uløste konflikter"
+
+#: kdiff3.cpp:566
+msgid "Choose C for All Unsolved Conflicts"
+msgstr "Vælg C for alle uløste konflikter"
+
+#: kdiff3.cpp:567
+msgid "Choose A for All Unsolved Whitespace Conflicts"
+msgstr "Vælg A for alle uløste konflikter med blanke tegn"
+
+#: kdiff3.cpp:568
+msgid "Choose B for All Unsolved Whitespace Conflicts"
+msgstr "Vælg B for alle uløste konflikter med blanke tegn"
+
+#: kdiff3.cpp:569
+msgid "Choose C for All Unsolved Whitespace Conflicts"
+msgstr "Vælg C for alle uløste konflikter med blanke tegn"
+
+#: kdiff3.cpp:570
+msgid "Automatically Solve Simple Conflicts"
+msgstr "Løs simple konflikter automatisk"
+
+#: kdiff3.cpp:571
+msgid "Set Deltas to Conflicts"
+msgstr "Sæt deltaer til konflikter"
+
+#: kdiff3.cpp:572
+msgid "Run Regular Expression Auto Merge"
+msgstr "Kør automatisk sammenfletning med regulært udtryk"
+
+#: kdiff3.cpp:573
+msgid "Automatically Solve History Conflicts"
+msgstr "Løs historikkonflikter automatisk"
+
+#: kdiff3.cpp:574
+msgid "Split Diff At Selection"
+msgstr "Opdel sammenligning ved markering"
+
+#: kdiff3.cpp:575
+msgid "Join Selected Diffs"
+msgstr "Føj markerede sammenligninger sammen"
+
+#: kdiff3.cpp:577
+msgid "Show Window A"
+msgstr "Vis vindue A"
+
+#: kdiff3.cpp:578
+msgid "Show Window B"
+msgstr "Vis vindue B"
+
+#: kdiff3.cpp:579
+msgid "Show Window C"
+msgstr "Vis vindue V"
+
+#: kdiff3.cpp:580 kdiff3.cpp:591
+msgid "Focus Next Window"
+msgstr "Fokus på næste vindue"
+
+#: kdiff3.cpp:582
+msgid "Normal Overview"
+msgstr "Normalt overblik"
+
+#: kdiff3.cpp:583
+msgid "A vs. B Overview"
+msgstr "A vs. B overblik"
+
+#: kdiff3.cpp:584
+msgid "A vs. C Overview"
+msgstr "A vs. C overblik"
+
+#: kdiff3.cpp:585
+msgid "B vs. C Overview"
+msgstr "B vs. C overblik"
+
+#: kdiff3.cpp:586
+msgid "Word Wrap Diff Windows"
+msgstr "Tekstombrydning i diff-vinduer"
+
+#: kdiff3.cpp:587
+msgid "Add Manual Diff Alignment"
+msgstr "Tilføj manuel justering af sammenligning"
+
+#: kdiff3.cpp:588
+msgid "Clear All Manual Diff Alignments"
+msgstr "Ryd alle manuelle justeringer af sammenligning"
+
+#: kdiff3.cpp:593
+msgid "Focus Prev Window"
+msgstr "Fokus på forrige vindue"
+
+#: kdiff3.cpp:594
+msgid "Toggle Split Orientation"
+msgstr "Slå opdelt orientering til og fra"
+
+#: kdiff3.cpp:596
+msgid "Dir && Text Split Screen View"
+msgstr "Mappe && tekst opdelt skærmvisning"
+
+#: kdiff3.cpp:598
+msgid "Toggle Between Dir && Text View"
+msgstr "Skift mellem Mappe && tekstvisning"
+
+#: kdiff3.cpp:654 pdiff.cpp:1812
+msgid "The merge result hasn't been saved."
+msgstr "Indfletningsresultatet er ikke blevet gemt."
+
+#: kdiff3.cpp:656
+msgid "Save && Quit"
+msgstr "Gem && afslut"
+
+#: kdiff3.cpp:657
+msgid "Quit Without Saving"
+msgstr "Afslut uden at gemme"
+
+#: kdiff3.cpp:665 pdiff.cpp:1823
+msgid "Saving the merge result failed."
+msgstr "Det mislykkedes at gemme indfletningsresultatet."
+
+#: kdiff3.cpp:676 pdiff.cpp:1078
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort?"
+msgstr ""
+"Du er ved at udføre en mappeindfletning. Er du sikker på du ønskler at "
+"afbryde?"
+
+#: kdiff3.cpp:701
+msgid "Saving file..."
+msgstr "Gemmer fil..."
+
+#: kdiff3.cpp:718
+msgid "Saving file with a new filename..."
+msgstr "Gemmer fil med nyt filnavn..."
+
+#: kdiff3.cpp:781
+msgid "Printing not implemented."
+msgstr "Udskrift er ikke implementeret."
+
+#: kdiff3.cpp:815
+msgid "Printing..."
+msgstr "Udskriver..."
+
+#: kdiff3.cpp:956
+msgid "Selection"
+msgstr "Markering"
+
+#: kdiff3.cpp:982
+msgid "Printing completed."
+msgstr "Udskrift færdig."
+
+#: kdiff3.cpp:986
+msgid "Printing aborted."
+msgstr "Udskrift afbrudt."
+
+#: kdiff3.cpp:993
+msgid "Exiting..."
+msgstr "Går ud..."
+
+#: kdiff3.cpp:1006
+msgid "Toggling toolbar..."
+msgstr "Slår værktøjslinje til/fra"
+
+#: kdiff3.cpp:1027
+msgid "Toggle the statusbar..."
+msgstr "Slå statuslinje til/fra..."
+
+#: smalldialogs.cpp:58
+msgid "A (Base):"
+msgstr "A (Basis):"
+
+#: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99
+#: smalldialogs.cpp:142
+msgid "File..."
+msgstr "Fil..."
+
+#: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101
+#: smalldialogs.cpp:144
+msgid "Dir..."
+msgstr "Mappe..."
+
+#: smalldialogs.cpp:93
+msgid "C (Optional):"
+msgstr "C (Frivillig):"
+
+#: smalldialogs.cpp:116
+msgid "Swap/Copy Names ..."
+msgstr "Skift eller kopiér navne..."
+
+#: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123
+#, kde-format
+msgid "Swap %1<->%2"
+msgstr "Skift %1 ud mod %2"
+
+#: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126
+#, kde-format
+msgid "Copy %1->Output"
+msgstr "Kopiér %1 til uddata"
+
+#: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129
+#, kde-format
+msgid "Swap %1<->Output"
+msgstr "Skift %1 ud mod uddata"
+
+#: smalldialogs.cpp:136
+msgid "Output (optional):"
+msgstr "Uddata (frivillig):"
+
+#: smalldialogs.cpp:168
+msgid "Configure..."
+msgstr "Indstil..."
+
+#: smalldialogs.cpp:174
+msgid "&OK"
+msgstr "&O.k."
+
+#: smalldialogs.cpp:362
+msgid "Search text:"
+msgstr "Søgetekst:"
+
+#: smalldialogs.cpp:369
+msgid "Case sensitive"
+msgstr "Versalfølsom"
+
+#: smalldialogs.cpp:372
+msgid "Search A"
+msgstr "Gennemsøg A"
+
+#: smalldialogs.cpp:377
+msgid "Search B"
+msgstr "Gennemsøg B"
+
+#: smalldialogs.cpp:382
+msgid "Search C"
+msgstr "Gennemsøg C"
+
+#: smalldialogs.cpp:387
+msgid "Search output"
+msgstr "Søgeuddata"
+
+#: smalldialogs.cpp:392
+msgid "&Search"
+msgstr "&Søg"
+
+#: smalldialogs.cpp:409
+msgid "Regular Expression Tester"
+msgstr "Test af regulære udtryk"
+
+#: smalldialogs.cpp:414 optiondialog.cpp:936
+msgid "Auto merge regular expression:"
+msgstr "Regulært udtryk for automatisk sammenfletning:"
+
+#: smalldialogs.cpp:422
+msgid "Example auto merge line:"
+msgstr "Eksempel på linje for automatisk sammenfletning:"
+
+#: smalldialogs.cpp:424
+msgid "To test auto merge, copy a line as used in your files."
+msgstr ""
+"For at teste automatisk sammenfletning, kopieres en linje som bruges i dine "
+"filer."
+
+#: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494
+msgid "Match result:"
+msgstr "Matchningsresultat:"
+
+#: smalldialogs.cpp:441 optiondialog.cpp:962
+msgid "History start regular expression:"
+msgstr "Regulært udtryk for historikkens begyndelse:"
+
+#: smalldialogs.cpp:449
+msgid "Example history start line (with leading comment):"
+msgstr "Eksempel på startlinje for historik (med indledende kommentar):"
+
+#: smalldialogs.cpp:451
+msgid ""
+"Copy a history start line as used in your files,\n"
+"including the leading comment."
+msgstr ""
+"Kopiér en startlinje for historik som bruges i dine filer,\n"
+"inkluderende den indledende kommentar."
+
+#: smalldialogs.cpp:469 optiondialog.cpp:972
+msgid "History entry start regular expression:"
+msgstr "Regulært udtryk for historikindgangens begyndelse:"
+
+#: smalldialogs.cpp:477
+msgid "History sort key order:"
+msgstr "Sorteringsnøglerækkefølge for historik:"
+
+#: smalldialogs.cpp:485
+msgid "Example history entry start line (without leading comment):"
+msgstr ""
+"Eksempel på startlinje for en historikindgang (uden indledende kommentar):"
+
+#: smalldialogs.cpp:487
+msgid ""
+"Copy a history entry start line as used in your files,\n"
+"but omit the leading comment."
+msgstr ""
+"Kopiér en startlinje for en historikindgang som bruges i dine filer,\n"
+"men udelad den indledende kommentar."
+
+#: smalldialogs.cpp:501
+msgid "Sort key result:"
+msgstr "Sorteringsnøgleresultat:"
+
+#: smalldialogs.cpp:508
+msgid "OK"
+msgstr "O.k."
+
+#: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583
+msgid "Match success."
+msgstr "Matchning lykkedes."
+
+#: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589
+msgid "Match failed."
+msgstr "Matchning mislykkedes."
+
+#: smalldialogs.cpp:574
+msgid "Opening and closing parentheses do not match in regular expression."
+msgstr "Start- og slutparentes matcher ikke i regulært udtryk."
+
+#: optiondialog.cpp:367
+msgid "Unicode, 8 bit"
+msgstr "Unicode, 8 bit"
+
+#: optiondialog.cpp:368
+msgid "Unicode"
+msgstr "Unicode"
+
+#: optiondialog.cpp:369
+msgid "Latin1"
+msgstr "Latin1"
+
+#: optiondialog.cpp:388
+msgid "Change this if non-ASCII characters are not displayed correctly."
+msgstr "Ændr dette hvis ikke-ASCII tegn ikke vises rigtigt."
+
+#: optiondialog.cpp:465
+msgid "Configure"
+msgstr "Indstil"
+
+#: optiondialog.cpp:531
+msgid "Font"
+msgstr "Skrifttype"
+
+#: optiondialog.cpp:532
+msgid "Editor & Diff Output Font"
+msgstr "Editor & Diff uddata-skrifttype"
+
+#: optiondialog.cpp:556
+msgid "Italic font for deltas"
+msgstr "Kursiv skrifttype for deltaer"
+
+#: optiondialog.cpp:559
+msgid ""
+"Selects the italic version of the font for differences.\n"
+"If the font doesn't support italic characters, then this does nothing."
+msgstr ""
+"Vælg den kursive udgave af skrifttypen til forskelle.\n"
+"Hvis skrifttypen ikke understøtter kursive tegn, så gør dette intet."
+
+#: optiondialog.cpp:568
+msgid "Color"
+msgstr "Farve"
+
+#: optiondialog.cpp:569
+msgid "Colors Settings"
+msgstr "Farveindstillinger"
+
+#: optiondialog.cpp:588
+msgid "Editor and Diff Views:"
+msgstr "Editor- og forskelsvisninger:"
+
+#: optiondialog.cpp:596
+msgid "Foreground color:"
+msgstr "Forgrundsfarve:"
+
+#: optiondialog.cpp:603
+msgid "Background color:"
+msgstr "Baggrundsfarve:"
+
+#: optiondialog.cpp:612
+msgid "Diff background color:"
+msgstr "Diff baggrundsfarve:"
+
+#: optiondialog.cpp:620
+msgid "Color A:"
+msgstr "Farve A:"
+
+#: optiondialog.cpp:628
+msgid "Color B:"
+msgstr "Farve B:"
+
+#: optiondialog.cpp:636
+msgid "Color C:"
+msgstr "Farve C:"
+
+#: optiondialog.cpp:643
+msgid "Conflict color:"
+msgstr "Konfliktfarve:"
+
+#: optiondialog.cpp:651
+msgid "Current range background color:"
+msgstr "Baggrundsfarve for aktuelt område:"
+
+#: optiondialog.cpp:659
+msgid "Current range diff background color:"
+msgstr "Diff baggrundsfarve for aktuelt område:"
+
+#: optiondialog.cpp:666
+msgid "Color for manually aligned difference ranges:"
+msgstr "Farvelæg for manuelt justerede sammenligningsområder:"
+
+#: optiondialog.cpp:672
+msgid "Directory Comparison View:"
+msgstr "Mappesammenligningsvisning:"
+
+#: optiondialog.cpp:678
+msgid "Newest file color:"
+msgstr "Farve for nyeste fil:"
+
+#: optiondialog.cpp:682
+msgid ""
+"Changing this color will only be effective when starting the next directory "
+"comparison."
+msgstr "At ændre farven får kun virkning når næste mappesammenligning startes."
+
+#: optiondialog.cpp:687
+msgid "Oldest file color:"
+msgstr "Farve for ældste fil:"
+
+#: optiondialog.cpp:695
+msgid "Middle age file color:"
+msgstr "Farve for middelgammel fil:"
+
+#: optiondialog.cpp:703
+msgid "Color for missing files:"
+msgstr "Farve for manglende filer:"
+
+#: optiondialog.cpp:717
+msgid "Editor"
+msgstr "Editor"
+
+#: optiondialog.cpp:718
+msgid "Editor Behavior"
+msgstr "Editor-opførsel"
+
+#: optiondialog.cpp:732
+msgid "Tab inserts spaces"
+msgstr "Tab indsætter mellemrum"
+
+#: optiondialog.cpp:735
+msgid ""
+"On: Pressing tab generates the appropriate number of spaces.\n"
+"Off: A tab character will be inserted."
+msgstr ""
+"Til: Tryk på tab genererer et passende antal mellemrum.\n"
+"Fra: Et Tab-tegn bliver indsat."
+
+#: optiondialog.cpp:741
+msgid "Tab size:"
+msgstr "Tab-størrelse:"
+
+#: optiondialog.cpp:747
+msgid "Auto indentation"
+msgstr "Auto-indrykning"
+
+#: optiondialog.cpp:750
+msgid "On: The indentation of the previous line is used for a new line.\n"
+msgstr "Til: Indrykningen for den tidligere linje bruges for en ny linje.\n"
+
+#: optiondialog.cpp:754
+msgid "Auto copy selection"
+msgstr "Autokopi udvalg"
+
+#: optiondialog.cpp:757
+msgid ""
+"On: Any selection is immediately written to the clipboard.\n"
+"Off: You must explicitely copy e.g. via Ctrl-C."
+msgstr ""
+"Til: Enhver markering bliver umiddelbart skrevet til udklipsholderen.\n"
+"Fra: Du skal eksplicit kopiere f.eks. via Ctrl-C."
+
+#: optiondialog.cpp:768
+msgid "Dos/Windows"
+msgstr "Dos/Windows"
+
+#: optiondialog.cpp:769
+msgid "Autodetect"
+msgstr "Autodetektér"
+
+#: optiondialog.cpp:772
+msgid ""
+"Sets the line endings for when an edited file is saved.\n"
+"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A"
+msgstr ""
+"Sætter linjeafslutninger for når en redigeret fil gemmes.\n"
+"DOS/Windows: CR+LF; UNIX: LF; med CR=0D, LF=0A"
+
+#: optiondialog.cpp:784
+msgid "Diff"
+msgstr "Diff"
+
+#: optiondialog.cpp:785
+msgid "Diff Settings"
+msgstr "Diff-indstillinger"
+
+#: optiondialog.cpp:809
+msgid "Treat as white space."
+msgstr "Behandl som white space."
+
+#: optiondialog.cpp:811
+msgid "Ignore numbers"
+msgstr "Ignorér numre"
+
+#: optiondialog.cpp:814
+msgid ""
+"Ignore number characters during line matching phase. (Similar to Ignore "
+"white space.)\n"
+"Might help to compare files with numeric data."
+msgstr ""
+"Ignorér nummer-tegn i den fase hvor du matcher linjer. (Ligner Ignorér "
+"blanke tegn.)\n"
+"Kan muligvis hjælpe med at sammenligne numeriske data."
+
+#: optiondialog.cpp:819
+msgid "Ignore C/C++ comments"
+msgstr "Ignorér C/C++ kommentarer"
+
+#: optiondialog.cpp:821
+msgid "Treat C/C++ comments like white space."
+msgstr "Behandl C/C++ kommentarer ligesom blanke tegn."
+
+#: optiondialog.cpp:825
+msgid "Ignore case"
+msgstr "Ignorér versaltype"
+
+#: optiondialog.cpp:828
+msgid "Treat case differences like white space changes. ('a'<=>'A')"
+msgstr ""
+"Behandl forskel mellem store og små bogstaver som ændringer i blanke tegn.  "
+"('a'<=>'A')"
+
+#: optiondialog.cpp:832
+msgid "Preprocessor command:"
+msgstr "Præprocessor kommando:"
+
+#: optiondialog.cpp:836
+msgid "User defined pre-processing. (See the docs for details.)"
+msgstr "Brugerdefineret præ-proces. (Se dokumentationen for detaljer.)"
+
+#: optiondialog.cpp:839
+msgid "Line-matching preprocessor command:"
+msgstr "Linje-matchende præprocessor kommando:"
+
+#: optiondialog.cpp:843
+msgid ""
+"This pre-processor is only used during line matching.\n"
+"(See the docs for details.)"
+msgstr ""
+"Denne præ-processor bruges kun når du matcher linjer.\n"
+"(Se dokumentationen for detaljer.)"
+
+#: optiondialog.cpp:846
+msgid "Try hard (slower)"
+msgstr "Prøv hårdt (langsommere)"
+
+#: optiondialog.cpp:849
+msgid ""
+"Enables the --minimal option for the external diff.\n"
+"The analysis of big files will be much slower."
+msgstr ""
+"Aktiverer --minimal tilvalget for den eksterne diff.\n"
+"Analysen af store filer vil være meget langsommere."
+
+#: optiondialog.cpp:854
+msgid "Align B and C for 3 input files"
+msgstr "Justér B og C til 3 input-filer"
+
+#: optiondialog.cpp:857
+msgid ""
+"Try to align B and C when comparing or merging three input files.\n"
+"Not recommended for merging because merge might get more complicated.\n"
+"(Default is off.)"
+msgstr ""
+"Prøv at justere B og C når tre input-filer sammenlignes eller "
+"sammenflettes.\n"
+"Anbefales ikke til sammenfletning fordi sammenfletning kan blive "
+"kompliceret.\n"
+"(Standard er \"Fra\".)"
+
+#: optiondialog.cpp:870
+msgid "Merge Settings"
+msgstr "Sammenfletningsindstillinger"
+
+#: optiondialog.cpp:885
+msgid "Auto advance delay (ms):"
+msgstr "Auto fremad-tøven (ms):"
+
+#: optiondialog.cpp:890
+msgid ""
+"When in Auto-Advance mode the result of the current selection is shown \n"
+"for the specified time, before jumping to the next conflict. Range: 0-2000 ms"
+msgstr ""
+"I Auto-fremad tilstand vil resultatet af det øjeblikkelige valg blive vist\n"
+"i det angiven tidsrum tid, før der springes frem til den næste konflikt. "
+"Område: 0-2000 ms"
+
+#: optiondialog.cpp:895
+msgid "Show info dialogs"
+msgstr "Vis infodialoger"
+
+#: optiondialog.cpp:897
+msgid "Show a dialog with information about the number of conflicts."
+msgstr "Vis en dialog med information om antallet af konflikter."
+
+#: optiondialog.cpp:900
+msgid "White space 2-file merge default:"
+msgstr "Standard for 2-fils indfletning af blanke tegn:"
+
+#: optiondialog.cpp:904 optiondialog.cpp:917
+msgid "Manual Choice"
+msgstr "Manuelt valg"
+
+#: optiondialog.cpp:908 optiondialog.cpp:922
+msgid ""
+"Allow the merge algorithm to automatically select an input for white-space-"
+"only changes."
+msgstr ""
+"Tillad indfletningsalgoritmen automatisk at vælge et input for ændringer kun "
+"af blanke tegn."
+
+#: optiondialog.cpp:913
+msgid "White space 3-file merge default:"
+msgstr "Standard for 3-fils indfletning:"
+
+#: optiondialog.cpp:927
+msgid "Automatic Merge Regular Expression"
+msgstr "Automatisk sammenfletning med regulært udtryk"
+
+#: optiondialog.cpp:940
+msgid ""
+"Regular expression for lines where KDiff3 should automatically choose one "
+"source.\n"
+"When a line with a conflict matches the regular expression then\n"
+"- if available - C, otherwise B will be chosen."
+msgstr ""
+"Regulært udtryk for linjer hvor Kdiff3 automatisk skal vælge en kilde.\n"
+"Når en linje med en konflikt matcher det regulære udtryk vælges -C \n"
+"om tilgængeligt, ellers vælges B."
+
+#: optiondialog.cpp:946
+msgid "Run regular expression auto merge on merge start"
+msgstr ""
+"Kør automatisk sammenfletning med regulært udtryk når sammenfletning starter"
+
+#: optiondialog.cpp:948
+msgid ""
+"Run the merge for auto merge regular expressions\n"
+"immediately when a merge starts.\n"
+msgstr ""
+"Kør automatisk sammenfletning med regulært\n"
+"udtryk med det samme når en sammenfletning starter.\n"
+
+#: optiondialog.cpp:953
+msgid "Version Control History Merging"
+msgstr "Sammenfletning ifølge versionskontrolhistorik"
+
+#: optiondialog.cpp:966
+msgid ""
+"Regular expression for the start of the version control history entry.\n"
+"Usually this line contains the \"$Log$\" keyword.\n"
+"Default value: \".*\\$Log.*\\$.*\""
+msgstr ""
+"Regulært udtryk for begyndelsen af versionshåndteringens historikindgang.\n"
+"Som oftest indeholder linjen nøgleordet  \"$Log$\".\n"
+"Standardværdi:  \".*\\$Log.*\\$.*\""
+
+#: optiondialog.cpp:984
+msgid ""
+"A version control history entry consists of several lines.\n"
+"Specify the regular expression to detect the first line (without the leading "
+"comment).\n"
+"Use parentheses to group the keys you want to use for sorting.\n"
+"If left empty, then KDiff3 assumes that empty lines separate history "
+"entries.\n"
+"See the documentation for details."
+msgstr ""
+"En versionskontrol historikindgang består af flere linjer.\n"
+"Angiv det regulære udtryk for at detektere første linje (uden den indledende "
+"kommentar).\n"
+"Brug parenteser for at gruppere nøglerne du vil bruge til sortering.\n"
+"Hvis dette efterlades tomt, antager Kdiff3 at tomme linjer skiller "
+"historikposterne ad.\n"
+"Se dokumentationen for detaljer."
+
+#: optiondialog.cpp:992
+msgid "History merge sorting"
+msgstr "Sortering af historiksammenfletning"
+
+#: optiondialog.cpp:994
+msgid "Sort version control history by a key."
+msgstr "Sortér versionskontrolhistorikken med en nøgle."
+
+#: optiondialog.cpp:1004
+msgid "History entry start sort key order:"
+msgstr "Sorteringsnøglernes rækkefølge fra historikpostens begyndelse:"
+
+#: optiondialog.cpp:1008
+msgid ""
+"Each pair of parentheses used in the regular expression for the history "
+"start entry\n"
+"groups a key that can be used for sorting.\n"
+"Specify the list of keys (that are numbered in order of occurrence\n"
+"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n"
+"If left empty, then no sorting will be done.\n"
+"See the documentation for details."
+msgstr ""
+"Hvert par af parenteser som bruges i det regulære udtryk for "
+"historikkensstartindgang\n"
+"grupperer en nøgle som kan bruges til sortering.\n"
+"Angiv listen med nøgler (som nummereres i den rækkefølge de forekommer\n"
+"begyndende med på 1), ved brug af \",\" som skilletegn (f.eks. "
+"\"4,5,6,1,2,3,7\").\n"
+"Hvis det efterlades tomt, udføres ingen sortering.\n"
+"Se dokumentationen for detaljer."
+
+#: optiondialog.cpp:1019
+msgid "Merge version control history on merge start"
+msgstr ""
+"Sammenfletning ifølge versionskontrolhistorik når sammenfletning starter"
+
+#: optiondialog.cpp:1021
+msgid "Run version control history automerge on merge start."
+msgstr ""
+"Kør automatisk sammenfletning ifølge versionskontrolhistorik når "
+"sammenfletning starter."
+
+#: optiondialog.cpp:1025
+msgid "Max number of history entries:"
+msgstr "Maks. antal historikindgange:"
+
+#: optiondialog.cpp:1028
+msgid "Cut off after specified number. Use -1 for infinite number of entries."
+msgstr "Afbryd efter angivet antal. Brug -1 for uendeligt antal indgange."
+
+#: optiondialog.cpp:1032
+msgid "Test your regular expressions"
+msgstr "Test dine regulære udtryk"
+
+#: optiondialog.cpp:1037
+msgid "Irrelevant merge command:"
+msgstr "Ikke relevant sammenfletningskommando:"
+
+#: optiondialog.cpp:1041
+msgid ""
+"If specified this script is run after automerge\n"
+"when no other relevant changes were detected.\n"
+"Called with the parameters: filename1 filename2 filename3"
+msgstr ""
+"Hvis angivet køres dette script efter automatisk sammenfletning\n"
+"når ingen andre relevante ændringer blev detekteret.\n"
+"Kaldes med parametrene: filnavn1 filnavn2 filnavn3"
+
+#: optiondialog.cpp:1047
+msgid "Auto save and quit on merge without conflicts"
+msgstr "Gem automatisk og afslut ved sammenfletning uden konflikter"
+
+#: optiondialog.cpp:1050
+msgid ""
+"If KDiff3 was started for a file-merge from the command line and all\n"
+"conflicts are solvable without user interaction then automatically save and "
+"quit.\n"
+"(Similar to command line option \"--auto\".)"
+msgstr ""
+"Hvis KDiff3 startes til filsammenfletning fra kommandolinjen og alle\n"
+"konflikter er løsbare uden brugerinteraktion, så gemmes og afsluttes "
+"automatisk.\n"
+"(Ligesom kommandolinjetilvalget \"--auto\".)"
+
+#: optiondialog.cpp:1061 optiondialog.cpp:1062
+msgid "Directory"
+msgstr "Mappe"
+
+#: optiondialog.cpp:1075
+msgid "Recursive directories"
+msgstr "Rekursive mapper"
+
+#: optiondialog.cpp:1077
+msgid "Whether to analyze subdirectories or not."
+msgstr "Om undermapper skal analyseres eller ej."
+
+#: optiondialog.cpp:1079
+msgid "File pattern(s):"
+msgstr "Filmønstre:"
+
+#: optiondialog.cpp:1084
+msgid ""
+"Pattern(s) of files to be analyzed. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Mønstre af filer der skal undersøges.\n"
+"Jokertegn: '*' og '?'\n"
+"Flere mønstre kan angives ved brug af adskillertegnet: ';'"
+
+#: optiondialog.cpp:1090
+msgid "File-anti-pattern(s):"
+msgstr "Fil-anti-mønstre:"
+
+#: optiondialog.cpp:1095
+msgid ""
+"Pattern(s) of files to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Mønstre af filer der skal udelukkes fra analysen.\n"
+"Jokertegn: '*' og '?'\n"
+"Flere mønstre kan angives ved brug af adskillertegnet: ';'"
+
+#: optiondialog.cpp:1101
+msgid "Dir-anti-pattern(s):"
+msgstr "Mappe-anti-mønstre:"
+
+#: optiondialog.cpp:1106
+msgid ""
+"Pattern(s) of directories to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Mønstre af mapper der skal udelukkes fra analysen.\n"
+"Jokertegn: '*' og '?'\n"
+"Flere mønstre kan angives ved brug af adskillertegnet: ';'"
+
+#: optiondialog.cpp:1112
+msgid "Use .cvsignore"
+msgstr "Brug .cvsignore"
+
+#: optiondialog.cpp:1115
+msgid ""
+"Extends the antipattern to anything that would be ignored by CVS.\n"
+"Via local \".cvsignore\" files this can be directory specific."
+msgstr ""
+"Udvider anti-mønstret til hvadsomhelst der ville blive ignoreret af CVS.\n"
+"Via lokale \".cvsignore\"-filer kan dette være specifikt for en enkel mappe."
+
+#: optiondialog.cpp:1120
+msgid "Find hidden files and directories"
+msgstr "Find skjulte filer og mapper"
+
+#: optiondialog.cpp:1123
+msgid "Finds files and directories with the hidden attribute."
+msgstr "Finder filer og mapper med en skjulte attribut."
+
+#: optiondialog.cpp:1125
+msgid "Finds files and directories starting with '.'."
+msgstr "Finder filer og mapper der begynder med '.'."
+
+#: optiondialog.cpp:1129
+msgid "Follow file links"
+msgstr "Følger fil-link"
+
+#: optiondialog.cpp:1132
+msgid ""
+"On: Compare the file the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+"Til: Sammenlign med filen som linket peger på.\n"
+"Fra: Sammenlign link."
+
+#: optiondialog.cpp:1137
+msgid "Follow directory links"
+msgstr "Følg mappe-link"
+
+#: optiondialog.cpp:1140
+msgid ""
+"On: Compare the directory the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+"Til: Sammenlign med mappen som linket peger på.\n"
+"Fra: Sammenlign link."
+
+#: optiondialog.cpp:1156
+msgid "Case sensitive filename comparison"
+msgstr "Versalfølsom filnavnesammenligning"
+
+#: optiondialog.cpp:1159
+msgid ""
+"The directory comparison will compare files or directories when their names "
+"match.\n"
+"Set this option if the case of the names must match. (Default for Windows is "
+"off, otherwise on.)"
+msgstr ""
+"Mappesammenligning sammenligner filer eller mapper når deres navne matcher.\n"
+"Angiv dette tilvalg hvis navnenes versaltilstand skal matche. "
+"(Standardværdien for Windows er fra, ellers til.)"
+
+#: optiondialog.cpp:1163
+msgid "File Comparison Mode"
+msgstr "Filsammenligningstilstand"
+
+#: optiondialog.cpp:1169
+msgid "Binary comparison"
+msgstr "Binær sammenligning"
+
+#: optiondialog.cpp:1170
+msgid "Binary comparison of each file. (Default)"
+msgstr "Binær sammenligning af hver fil. (Standard)"
+
+#: optiondialog.cpp:1173
+msgid "Full analysis"
+msgstr "Fuld analyse"
+
+#: optiondialog.cpp:1174
+msgid ""
+"Do a full analysis and show statistics information in extra columns.\n"
+"(Slower than a binary comparison, much slower for binary files.)"
+msgstr ""
+"Udfør en fuld analyse og vis statistisk information i ekstra søjler.\n"
+"(Langsommere end en binær sammenligning, meget langsommere for binære filer.)"
+
+#: optiondialog.cpp:1178
+msgid "Trust the size and modification date (unsafe)"
+msgstr "Stol på størrelsen og ændringsdatoen (usikkert)"
+
+#: optiondialog.cpp:1179
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"Files with equal contents but different modification dates will appear as "
+"different.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"Antag at filer er ens hvis ændringsdatoen og filstørrelsen er ens.\n"
+"Filer med ens indhold men forskellig ændringsdatoer vil se forskellige ud.\n"
+"Nyttigt til store mapper og langsomme netværk."
+
+#: optiondialog.cpp:1184
+msgid ""
+"Trust the size and date, but use binary comparison if date does not match "
+"(unsafe)"
+msgstr ""
+"Stol på størrelse og dato, men brug binær sammenligning hvis dato ikke "
+"matcher (usikkert)"
+
+#: optiondialog.cpp:1185
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"If the dates are not equal but the sizes are, use binary comparison.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"Antag at filer er ens hvis ændringsdatoen og filstørrelsen er ens.\n"
+"Hvis datoen ikke er ens men størrelsen er, bruges binær sammenligning.\n"
+"Nyttig til store mapper eller langsomme netværk."
+
+#: optiondialog.cpp:1190
+msgid "Trust the size (unsafe)"
+msgstr "Stol på størrelsen (usikker)"
+
+#: optiondialog.cpp:1191
+msgid ""
+"Assume that files are equal if their file lengths are equal.\n"
+"Useful for big directories or slow networks when the date is modified during "
+"download."
+msgstr ""
+"Antag at filer er ens hvis deres fillængder er ens.\n"
+"Nyttigt for store mapper eller langsomme netværk, når datoen er ændret efter "
+"filer er hentet."
+
+#: optiondialog.cpp:1199
+msgid "Synchronize directories"
+msgstr "Synkronisér mapper"
+
+#: optiondialog.cpp:1202
+msgid ""
+"Offers to store files in both directories so that\n"
+"both directories are the same afterwards.\n"
+"Works only when comparing two directories without specifying a destination."
+msgstr ""
+"Tilbyder at opbevare filer i begge mapper så\n"
+"begge mapper er ens bagefter.\n"
+"Virker kun når to mapper sammenlignes uden at angive nogen destination."
+
+#: optiondialog.cpp:1208
+msgid "White space differences considered equal"
+msgstr "Forskelle i blanke tegn anses for ens"
+
+#: optiondialog.cpp:1211
+msgid ""
+"If files differ only by white space consider them equal.\n"
+"This is only active when full analysis is chosen."
+msgstr ""
+"Hvis filer kun adskiller sig med blanke tegn, anses dem for ens.\n"
+"Dette er kun aktiveret når fuldstændig analyse vælges."
+
+#: optiondialog.cpp:1217
+msgid "Copy newer instead of merging (unsafe)"
+msgstr "Kopiér nyere i stedet for at indflette (usikker)"
+
+#: optiondialog.cpp:1220
+msgid ""
+"Don't look inside, just take the newer file.\n"
+"(Use this only if you know what you are doing!)\n"
+"Only effective when comparing two directories."
+msgstr ""
+"Kig ikke indeni, tag blot den nyere fil.\n"
+"(Brug kun dette hvis du ved hvad du foretager dig!)\n"
+"Kun effektivt når to mapper sammenlignes."
+
+#: optiondialog.cpp:1225
+msgid "Backup files (.orig)"
+msgstr "Sikkerhedskopieringsfiler (.orig)"
+
+#: optiondialog.cpp:1228
+msgid ""
+"If a file would be saved over an old file, then the old file\n"
+"will be renamed with a '.orig' extension instead of being deleted."
+msgstr ""
+"Hvis en fil ville blive gemt over en gammel fil, så vil den gamle\n"
+"fil blive omdøbt med en '.orig'-endelse i stedet for at blive slettet."
+
+#: optiondialog.cpp:1301 optiondialog.cpp:1302
+msgid "Regional Settings"
+msgstr "Regionsindstillinger"
+
+#: optiondialog.cpp:1402
+msgid "Language (restart required)"
+msgstr "Sprog (genstart krævet)"
+
+#: optiondialog.cpp:1445
+msgid ""
+"Choose the language of the GUI strings or \"Auto\".\n"
+"For a change of language to take place, quit and restart KDiff3."
+msgstr ""
+"Vælg sproget for GUI-strengene eller \"Auto\".\n"
+"For at en ændring af sprog skal ske, afslut og start KDiff3 igen."
+
+#: optiondialog.cpp:1463
+msgid "Use the same encoding for everything:"
+msgstr "Brug samme tegnsæt til alt:"
+
+#: optiondialog.cpp:1466
+msgid ""
+"Enable this allows to change all encodings by changing the first only.\n"
+"Disable this if different individual settings are needed."
+msgstr ""
+"At aktivere dette lader dig ændre alle tegnsæt ved at kun ændre den første.\n"
+"Deaktivér det hvis forskellige individuelle indstillinger behøves."
+
+#: optiondialog.cpp:1471
+msgid "Note: Local Encoding is "
+msgstr "Bemærk: Lokalt tegnsæt er "
+
+#: optiondialog.cpp:1475
+msgid "File Encoding for A:"
+msgstr "Filtegnsæt for A:"
+
+#: optiondialog.cpp:1481
+msgid ""
+"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n"
+"If the file is not Unicode then the selected encoding will be used as "
+"fallback.\n"
+"(Unicode detection depends on the first bytes of a file.)"
+msgstr ""
+"Hvis aktiveret detekteres Unicode-tegnsæt (UTF-16 eller UTF-8).\n"
+"Hvis filen ikke er Unicode, bruges det valgte tegnsæt som reserve.\n"
+"(Detektering af Unicode afhænger af de første bytes i en fil.)"
+
+#: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503
+msgid "Auto Detect Unicode"
+msgstr "Detektér Unicode automatisk"
+
+#: optiondialog.cpp:1490
+msgid "File Encoding for B:"
+msgstr "Filtegnsæt for B:"
+
+#: optiondialog.cpp:1499
+msgid "File Encoding for C:"
+msgstr "Filtegnsæt for C:"
+
+#: optiondialog.cpp:1508
+msgid "File Encoding for Merge Output and Saving:"
+msgstr "Filtegnsæt for sammenflettede uddata og når der gemmes:"
+
+#: optiondialog.cpp:1512
+msgid "Auto Select"
+msgstr "Automatisk markering"
+
+#: optiondialog.cpp:1515
+msgid ""
+"If enabled then the encoding from the input files is used.\n"
+"In ambiguous cases a dialog will ask the user to choose the encoding for "
+"saving."
+msgstr ""
+"Hvis aktiveret bruges inddatafilernes kodning.\n"
+"I tvetydige tilfælde bedes brugeren om at vælge kodning at gemme med via en "
+"dialog."
+
+#: optiondialog.cpp:1519
+msgid "File Encoding for Preprocessor Files:"
+msgstr "Filtegnsæt for forbehandlingsfiler:"
+
+#: optiondialog.cpp:1530
+msgid "Right To Left Language"
+msgstr "Sprog som læses fra højre til venstre"
+
+#: optiondialog.cpp:1533
+msgid ""
+"Some languages are read from right to left.\n"
+"This setting will change the viewer and editor accordingly."
+msgstr ""
+"Nogle sprog læses fra højre til venstre.\n"
+"Indstillingen ændrer visningen og editoren på tilsvarende måde."
+
+#: optiondialog.cpp:1548
+msgid "Integration"
+msgstr "Integrering"
+
+#: optiondialog.cpp:1549
+msgid "Integration Settings"
+msgstr "Integreringsindstillinger"
+
+#: optiondialog.cpp:1563
+msgid "Command line options to ignore:"
+msgstr "Kommandolinjeflag at ignorere:"
+
+#: optiondialog.cpp:1568
+msgid ""
+"List of command line options that should be ignored when KDiff3 is used by "
+"other tools.\n"
+"Several values can be specified if separated via ';'\n"
+"This will suppress the \"Unknown option\" error."
+msgstr ""
+"Liste med kommandolinjeflag som skal ignoreres når Kdiff3 bruges af andre "
+"værktøjer.\n"
+"Flere værdier kan angives hvis de adskilles af ';'\n"
+"Dette undertrykker fejlmeddelelsen \"Ukendt flag\"."
+
+#: optiondialog.cpp:1575
+msgid "Quit also via Escape key"
+msgstr "Afslut også med Escape-tasten"
+
+#: optiondialog.cpp:1578
+msgid ""
+"Fast method to exit.\n"
+"For those who are used to using the Escape key."
+msgstr ""
+"Hurtig metode til afslutning.\n"
+"For dem der er vant til at bruge Escape-tasten."
+
+#: optiondialog.cpp:1583
+msgid "Integrate with ClearCase"
+msgstr "Integrér med ClearCase"
+
+#: optiondialog.cpp:1586
+msgid ""
+"Integrate with Rational ClearCase from IBM.\n"
+"Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n"
+"(Only enabled when ClearCase \"bin\" directory is in the path.)"
+msgstr ""
+"Integrér med Rational ClearCase fra IBM.\n"
+"Ændrer \"map\"-filen i ClearCase-undermappen \"lib/mgrs\"\n"
+"(Kun aktiveret når ClearCases \"bin\"-mappe er i path.)"
+
+#: optiondialog.cpp:1592
+msgid "Remove ClearCase Integration"
+msgstr "Fjern ClearCase-integration"
+
+#: optiondialog.cpp:1595
+msgid ""
+"Restore the old \"map\" file from before doing the ClearCase integration."
+msgstr ""
+"Gendan den gamle \"map\"-fil fra før udførsel af ClearCase-integration."
+
+#: optiondialog.cpp:1680
+msgid "Incompatible Font"
+msgstr "Inkompatibel skrifttype"
+
+#: optiondialog.cpp:1681
+msgid "Continue at Own Risk"
+msgstr "Fortsæt på eget ansvar."
+
+#: optiondialog.cpp:1682
+msgid "Select Another Font"
+msgstr "Vælg en anden skrifttype"
+
+#: optiondialog.cpp:1717
+msgid "This resets all options. Not only those of the current topic."
+msgstr "Dette nulstiller alle tilvalg. Ikke kun dem der angår dette emne."
+
+#: pdiff.cpp:260
+msgid "PreprocessorCmd: "
+msgstr "Præprocessor kommando:"
+
+#: pdiff.cpp:265
+msgid "The following option(s) you selected might change data:\n"
+msgstr "Følgende tilvalg du valgte vil muligvis ændre data:\n"
+
+#: pdiff.cpp:266
+msgid ""
+"\n"
+"Most likely this is not wanted during a merge.\n"
+"Do you want to disable these settings or continue with these settings active?"
+msgstr ""
+"\n"
+"Mest sandsynligt ikke ønsket under en indfletning.\n"
+"Ønsker du at deaktivere disse indstillinger eller fortsætte med disse "
+"indstillinger aktive?"
+
+#: pdiff.cpp:268
+msgid "Option Unsafe for Merging"
+msgstr "Tilvalg usikkert ved en indfletning"
+
+#: pdiff.cpp:269
+msgid "Use These Options During Merge"
+msgstr "Brug disse tilvalg under en indfletning"
+
+#: pdiff.cpp:270
+msgid "Disable Unsafe Options"
+msgstr "Deaktivér usikre tilvalg"
+
+#: pdiff.cpp:300
+msgid "Loading A"
+msgstr "Indlæser A"
+
+#: pdiff.cpp:304
+msgid "Loading B"
+msgstr "Indlæser B"
+
+#: pdiff.cpp:321 pdiff.cpp:347
+msgid "Diff: A <-> B"
+msgstr "Diff: A <-> B"
+
+#: pdiff.cpp:327 pdiff.cpp:372
+msgid "Linediff: A <-> B"
+msgstr "Linjeforskel: A <-> B"
+
+#: pdiff.cpp:338
+msgid "Loading C"
+msgstr "Indlæser C"
+
+#: pdiff.cpp:350
+msgid "Diff: B <-> C"
+msgstr "Diff: B <-> C"
+
+#: pdiff.cpp:353
+msgid "Diff: A <-> C"
+msgstr "Diff: A <-> C"
+
+#: pdiff.cpp:375
+msgid "Linediff: B <-> C"
+msgstr "Linjeforskel: B <-> C"
+
+#: pdiff.cpp:378
+msgid "Linediff: A <-> C"
+msgstr "Linjeforskel: A <-> C"
+
+#: pdiff.cpp:534
+msgid "All input files contain the same text, but are not binary equal."
+msgstr ""
+"Alle inddata-filer indeholder den samme tekst, men er ikke binært "
+"ækvivalente."
+
+#: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541
+#, kde-format
+msgid "Files %1 and %2 have equal text, but are not binary equal. \n"
+msgstr "Filerne %1 og %2 har samme tekst men er ikke binært ens.\n"
+
+#: pdiff.cpp:551
+msgid ""
+"Some inputfiles don't seem to be pure textfiles.\n"
+"Note that the KDiff3-merge was not meant for binary data.\n"
+"Continue at your own risk."
+msgstr ""
+"Nogle inddatafiler synes ikke at være rene tekstfiler.\n"
+"Bemærk at KDiff3-indfletningen ikke er beregnet til binære data.\n"
+"Fortsæt på eget ansvar."
+
+#: pdiff.cpp:566
+#, kde-format
+msgid ""
+"Some input characters could not be converted to valid unicode.\n"
+"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n"
+"Don't save the result if unsure. Continue at your own risk.\n"
+"Affected input files are in %1."
+msgstr ""
+"Nogle input-tegn kunne ikke konverteres til gyldig unicode.\n"
+"Du bruger måske et forkert codec (f.eks. UTF-8 for filer der ikke er "
+"UTF-8).\n"
+"Hvis du er i tvivl så gem ikke resultatet. Fortsæt på eget ansvar.\n"
+"De omfattede input-filer er i %1."
+
+#: pdiff.cpp:1080
+msgid "Abort"
+msgstr "Afbryd"
+
+#: pdiff.cpp:1087 pdiff.cpp:1175
+msgid "Opening files..."
+msgstr "Åbner filer..."
+
+#: pdiff.cpp:1152 pdiff.cpp:1223
+msgid "File open error"
+msgstr "Fejl ved åbning af fil"
+
+#: pdiff.cpp:1255
+msgid "Cutting selection..."
+msgstr "Klipper valgene ud..."
+
+#: pdiff.cpp:1276
+msgid "Copying selection to clipboard..."
+msgstr "Kopierer markering til udklipsholderen..."
+
+#: pdiff.cpp:1292
+msgid "Inserting clipboard contents..."
+msgstr "Indsætter udklipsholderens indhold..."
+
+#: pdiff.cpp:1814
+msgid "Save && Continue"
+msgstr "Gem && Fortsæt"
+
+#: pdiff.cpp:1815
+msgid "Continue Without Saving"
+msgstr "Fortsæt uden at gemme"
+
+#: pdiff.cpp:2018
+msgid "Search complete."
+msgstr "Søgning færdig."
+
+#: pdiff.cpp:2018
+msgid "Search Complete"
+msgstr "Søgning færdig"
+
+#: pdiff.cpp:2252
+msgid "Nothing is selected in either diff input window."
+msgstr "Ingenting er markeret i inddatavindue med sammenligning."
+
+#: pdiff.cpp:2252
+msgid "Error while adding manual diff range"
+msgstr "Fejl ved tilføjelse manuelt sammenligningsområde"
+
+#: kdiff3_shell.cpp:76
+msgid ""
+"Could not initialize the KDiff3 part.\n"
+"This usually happens due to an installation problem. Please read the README-"
+"file in the source package for details."
+msgstr ""
+"Kunne ikke initialisere KDiff3 Part.\n"
+"Dette sker sædvanligvis på grund af et installationsproblem. Læs venligst "
+"README-filen i kildekodepakken for detaljer."
+
+#: rc.cpp:1
+msgctxt "NAME OF TRANSLATORS"
+msgid "Your names"
+msgstr "Martin Schlander"
+
+#: rc.cpp:2
+msgctxt "EMAIL OF TRANSLATORS"
+msgid "Your emails"
+msgstr "mschlander@opensuse.org"
+
+#. i18n: file: kdiff3_part.rc:4
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:5
+msgid "&KDiff3"
+msgstr "&KDiff3"
+
+#. i18n: file: kdiff3_part.rc:13
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:8
+msgid "Configure KDiff3"
+msgstr "Indstil KDiff3"
+
+#. i18n: file: kdiff3_part.rc:16
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:11
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#. i18n: file: kdiff3_shell.rc:106
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:38
+msgid "Main Toolbar"
+msgstr "Hovedværktøjslinje"
+
+#~ msgid "Directory Merge"
+#~ msgstr "Mappeindfletning"
+
+#~ msgid ""
+#~ "_: NAME OF TRANSLATORS\n"
+#~ "Your names"
+#~ msgstr "Erik Kjær Pedersen,Martin Schlander"
+
+#~ msgid ""
+#~ "_: EMAIL OF TRANSLATORS\n"
+#~ "Your emails"
+#~ msgstr "erik@binghamton.edu,suse@linuxin.dk"
+
+#~ msgid "Enables/disables the toolbar"
+#~ msgstr "Slå værktøjslinjen til/fra"
diff --git a/po/da/kdiff3fileitemactionplugin.po b/po/da/kdiff3fileitemactionplugin.po
new file mode 100644 (file)
index 0000000..fa8bd00
--- /dev/null
@@ -0,0 +1,97 @@
+# Copyright (C) YEAR This_file_is_part_of_KDE
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Martin Schlander <mschlander@opensuse.org>, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-05-08 11:28+0200\n"
+"Last-Translator: Martin Schlander <mschlander@opensuse.org>\n"
+"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
+"Language: da\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.2\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: kdiff3fileitemaction.cpp:94
+msgid "KDiff3 ..."
+msgstr "KDiff3..."
+
+#: kdiff3fileitemaction.cpp:125
+#, kde-format
+msgid "Compare with %1"
+msgstr "Sammenlign med %1"
+
+#: kdiff3fileitemaction.cpp:131
+#, kde-format
+msgid "Merge with %1"
+msgstr "Sammenflet med %1"
+
+#: kdiff3fileitemaction.cpp:137
+#, kde-format
+msgid "Save '%1' for later"
+msgstr "Gem \"%1\" til senere"
+
+#: kdiff3fileitemaction.cpp:143
+msgid "3-way merge with base"
+msgstr "3-vejssammenfletning med basis"
+
+#: kdiff3fileitemaction.cpp:150
+msgid "Compare with ..."
+msgstr "Sammenlign med..."
+
+#: kdiff3fileitemaction.cpp:162
+msgid "Clear list"
+msgstr "Ryd listen"
+
+#: kdiff3fileitemaction.cpp:170
+msgid "Compare"
+msgstr "Sammenlign"
+
+#: kdiff3fileitemaction.cpp:176
+msgid "3 way comparison"
+msgstr "3-vejssammenligning"
+
+#: kdiff3fileitemaction.cpp:180
+msgid "About KDiff3 menu plugin ..."
+msgstr "Om KDiff3's menu-plugin..."
+
+#: kdiff3fileitemaction.cpp:284
+msgid ""
+"KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+"KDiff3 File Item Action Plugin: Ophavsret (C) 2011 Joachim Eibl\n"
+"KDiff3s hjemmeside: http://kdiff3.sourceforge.net\n"
+"\n"
+
+#: kdiff3fileitemaction.cpp:286
+msgid ""
+"Using the contextmenu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else \"Save\" the first file for later. It "
+"will appear in the \"Compare With ...\" submenu. Then use \"Compare With\" "
+"on second file.\n"
+"For a 3-way merge first \"Save\" the base file, then the branch to merge and "
+"choose \"3-way merge with base\" on the other branch which will be used as "
+"destination.\n"
+"Same also applies to directory comparison and merge."
+msgstr ""
+"Brug af kontekstmenu-udvidelsen:\n"
+"Til simpel sammenligning af to markerede filer vælges \"Sammenlign\".\n"
+"Hvis den anden fil er et andet sted, så \"Gem\" den første fil til senere, "
+"og den vil fremgå af undermenuen \"Sammenlign med...\". Brug så \"Sammenlign "
+"med\" på den anden fil.\n"
+"Til en 3-vejssammenfletning, skal du først \"Gemme\" basisfilen, derefter "
+"den branch der skal indflettes og vælg endelig \"3-vejssammenfletning med "
+"basis\" på den anden branch, som vil blive brugt som destination.\n"
+"Det samme gælder for sammenligning og sammenfletning af mapper."
+
+#: kdiff3fileitemaction.cpp:294
+msgid "About KDiff3 File Item Action Plugin"
+msgstr "Om KDiff3 File Item Action-plugin"
diff --git a/po/da/kdiff3plugin.po b/po/da/kdiff3plugin.po
new file mode 100644 (file)
index 0000000..de63958
--- /dev/null
@@ -0,0 +1,97 @@
+# Copyright (C) YEAR This_file_is_part_of_KDE
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Martin Schlander <mschlander@opensuse.org>, 2009, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3plugin\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-05-02 11:26+0200\n"
+"Last-Translator: Martin Schlander <mschlander@opensuse.org>\n"
+"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
+"Language: da\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.2\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: kdiff3plugin.cpp:107
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#: kdiff3plugin.cpp:114
+#, kde-format
+msgid "Compare with %1"
+msgstr "Sammenlign med %1"
+
+#: kdiff3plugin.cpp:120
+#, kde-format
+msgid "Merge with %1"
+msgstr "Sammenflet med %1"
+
+#: kdiff3plugin.cpp:126
+#, kde-format
+msgid "Save '%1' for later"
+msgstr "Gem \"%1\" til senere"
+
+#: kdiff3plugin.cpp:132
+msgid "3-way merge with base"
+msgstr "3-vejs sammenfletning med basis"
+
+#: kdiff3plugin.cpp:139
+msgid "Compare with ..."
+msgstr "Sammenlign med..."
+
+#: kdiff3plugin.cpp:149
+msgid "Clear list"
+msgstr "Ryd listen"
+
+#: kdiff3plugin.cpp:157
+msgid "Compare"
+msgstr "Sammenlign"
+
+#: kdiff3plugin.cpp:163
+msgid "3 way comparison"
+msgstr "3-vejssammenligning"
+
+#: kdiff3plugin.cpp:167
+msgid "About KDiff3 menu plugin ..."
+msgstr "Om KDiff3's menu-plugin..."
+
+#: kdiff3plugin.cpp:269
+msgid ""
+"KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+"KDiff3's  menu-plugin: Ophavsret (C) 2008 Joachim Eibl\n"
+"KDiff3's hjemmeside: http://kdiff3.sourceforge.net\n"
+"\n"
+
+#: kdiff3plugin.cpp:271
+msgid ""
+"Using the context menu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else, \"Save\" the first file for later, and "
+"it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With"
+"\" on the second file.\n"
+"For a 3-way merge first, \"Save\" the base file, then the branch to merge, "
+"and then \"3-way merge with base\" on the other branch which will be used as "
+"the destination.\n"
+"The same also applies to directory comparison and merge."
+msgstr ""
+"Brug af kontekstmenu-udvidelsen:\n"
+"Til simpel sammenligning af to markerede filer vælges \"Sammenlign\".\n"
+"Hvis den anden fil er et andet sted, så \"Gem\" den første fil til senere, "
+"og den vil fremgå af undermenuen \"Sammenlign med...\". Brug så \"Sammenlign "
+"med\" på den anden fil.\n"
+"Til en 3-vejssammenfletning, skal du først \"Gemme\" basisfilen, så den "
+"branchder skal indflettes og endelig \"3-vejssammenfletning med basis\" på "
+"den anden branch, som vil blive brugt som destination.\n"
+"Det samme gælder for sammenligning og sammenfletning af mapper."
+
+#: kdiff3plugin.cpp:279
+msgid "About KDiff3 Menu Plugin"
+msgstr "Om KDiff3's menu-plugin"
diff --git a/po/de/CMakeLists.txt b/po/de/CMakeLists.txt
new file mode 100644 (file)
index 0000000..4a149a8
--- /dev/null
@@ -0,0 +1,2 @@
+file(GLOB _po_files *.po)
+GETTEXT_PROCESS_PO_FILES(de ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
diff --git a/po/de/kdiff3.po b/po/de/kdiff3.po
new file mode 100644 (file)
index 0000000..f407e5e
--- /dev/null
@@ -0,0 +1,3293 @@
+# translation of kdiff3.po to German
+# Copyright (C)
+# Thomas Diehl <thd@kde.org>, 2003, 2004.
+# Joachim Eibl <joachim@gmx.de>, 2004.
+# Joachim Eibl <joachim.eibl@gmx.de>, 2004, 2005, 2006.
+# Thomas Reitelbach <tr@erdfunkstelle.de>, 2004, 2006.
+# Frederik Schwarzer <schwarzer@kde.org>, 2008, 2009, 2010, 2011.
+# Burkhard Lück <lueck@hube-lueck.de>, 2008, 2009, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-07-02 17:46+0200\n"
+"Last-Translator: Burkhard Lück <lueck@hube-lueck.de>\n"
+"Language-Team: German <kde-i18n-de@kde.org>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Lokalize 1.2\n"
+
+#: kreplacements/kreplacements.h:105
+msgid "Continue"
+msgstr "Fortsetzen"
+
+#: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158
+#: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512
+msgid "Cancel"
+msgstr "Abbrechen"
+
+#: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631
+msgid "Quit"
+msgstr "Beenden"
+
+#: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339
+msgid "Ok"
+msgstr "OK"
+
+#: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715
+msgid "Help"
+msgstr "Hilfe"
+
+#: kreplacements/kreplacements.cpp:185
+msgid "Defaults"
+msgstr "Voreinstellungen"
+
+#. i18n: file: kdiff3_shell.rc:4
+#. i18n: ectx: Menu (file)
+#: kreplacements/kreplacements.cpp:296 rc.cpp:14
+msgid "&File"
+msgstr "&Datei"
+
+#: kreplacements/kreplacements.cpp:297
+msgid "&Edit"
+msgstr "&Bearbeiten"
+
+#. i18n: file: kdiff3_shell.rc:7
+#. i18n: ectx: Menu (directory)
+#: kreplacements/kreplacements.cpp:298 rc.cpp:17
+msgid "&Directory"
+msgstr "&Ordner"
+
+#. i18n: file: kdiff3_shell.rc:50
+#. i18n: ectx: Menu (movement)
+#: kreplacements/kreplacements.cpp:301 rc.cpp:26
+msgid "&Movement"
+msgstr "&Navigation"
+
+#. i18n: file: kdiff3_shell.rc:61
+#. i18n: ectx: Menu (diff)
+#: kreplacements/kreplacements.cpp:302 rc.cpp:29
+msgid "D&iffview"
+msgstr "&Vergleichsansicht"
+
+#. i18n: file: kdiff3_shell.rc:73
+#. i18n: ectx: Menu (merge)
+#: kreplacements/kreplacements.cpp:303 rc.cpp:32
+msgid "&Merge"
+msgstr "&Zusammenführen"
+
+#. i18n: file: kdiff3_shell.rc:95
+#. i18n: ectx: Menu (window)
+#: kreplacements/kreplacements.cpp:304 rc.cpp:35
+msgid "&Window"
+msgstr "&Fenster"
+
+#: kreplacements/kreplacements.cpp:305
+msgid "&Settings"
+msgstr "&Einstellungen"
+
+#: kreplacements/kreplacements.cpp:306
+msgid "&Help"
+msgstr "&Hilfe"
+
+#: kreplacements/kreplacements.cpp:353
+msgid "&About"
+msgstr "Ü&ber"
+
+#: kreplacements/kreplacements.cpp:369
+msgid "A&uthor"
+msgstr "A&utor"
+
+#: kreplacements/kreplacements.cpp:383
+msgid "&Thanks To"
+msgstr "&Dank an"
+
+#. i18n: file: kdiff3_shell.rc:30
+#. i18n: ectx: Menu (dir_current_merge_menu)
+#: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497
+#: rc.cpp:20
+msgid "Current Item Merge Operation"
+msgstr "Zusammenführaktion für aktuelles Element"
+
+#. i18n: file: kdiff3_shell.rc:38
+#. i18n: ectx: Menu (dir_current_sync_menu)
+#: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498
+#: rc.cpp:23
+msgid "Current Item Sync Operation"
+msgstr "Abgleichaktion für aktuelles Element"
+
+#: kreplacements/kreplacements.cpp:597
+msgid "Open"
+msgstr "Öffnen"
+
+#: kreplacements/kreplacements.cpp:606
+msgid "Save"
+msgstr "Speichern"
+
+#: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720
+msgid "Save As..."
+msgstr "Speichern unter ..."
+
+#: kreplacements/kreplacements.cpp:623
+msgid "Print..."
+msgstr "Drucken ..."
+
+#: kreplacements/kreplacements.cpp:639
+msgid "Cut"
+msgstr "Ausschneiden"
+
+#: kreplacements/kreplacements.cpp:647
+msgid "Copy"
+msgstr "Kopieren"
+
+#: kreplacements/kreplacements.cpp:655
+msgid "Paste"
+msgstr "Einfügen"
+
+#: kreplacements/kreplacements.cpp:663
+msgid "Select All"
+msgstr "Alle auswählen"
+
+#: kreplacements/kreplacements.cpp:671
+msgid "Show Toolbar"
+msgstr "Werkzeugleiste anzeigen"
+
+#: kreplacements/kreplacements.cpp:679
+msgid "Show &Status Bar"
+msgstr "&Statusleiste anzeigen"
+
+#: kreplacements/kreplacements.cpp:687
+#, kde-format
+msgid "&Configure %1..."
+msgstr "%1 &einrichten ..."
+
+#: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707
+msgid "About"
+msgstr "Über"
+
+#: kreplacements/kreplacements.cpp:722
+msgid "Find"
+msgstr "Suchen"
+
+#: kreplacements/kreplacements.cpp:730
+msgid "Find Next"
+msgstr "Weitersuchen"
+
+#: kreplacements/kreplacements.cpp:750
+msgid "Select Font"
+msgstr "Schriftart auswählen"
+
+#: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676
+msgid ""
+"You selected a variable width font.\n"
+"\n"
+"Because this program doesn't handle variable width fonts\n"
+"correctly, you might experience problems while editing.\n"
+"\n"
+"Do you want to continue or do you want to select another font."
+msgstr ""
+"Sie haben eine Schrift mit variabler Breite gewählt.\n"
+"\n"
+"Weil dieses Programm nicht mit solchen Schriften umgehen kann,\n"
+"werden beim Editieren wahrscheinlich Probleme auftreten. \n"
+"\n"
+"Wollen Sie mit dieser Schrift fortfahren oder doch eine andere Schrift "
+"wählen?"
+
+#: kreplacements/kreplacements.cpp:792
+msgid "Incompatible font."
+msgstr "Inkompatible Schriftart."
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Continue at my own risk"
+msgstr "Weiter auf eigenes Risiko"
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Select another font"
+msgstr "Andere Schrift wählen"
+
+#: kreplacements/kreplacements.cpp:1134
+msgid "For more documentation, see the help-menu or the subdirectory doc."
+msgstr ""
+"Weitere Dokumentation finden Sie im Hilfe-Menü und um Unterordner „doc“"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "KDiff3-Usage"
+msgstr "KDiff3-Benutzung"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Ignore"
+msgstr "Ignorieren"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Exit"
+msgstr "Beenden"
+
+#: diff.cpp:251
+msgid "Writing clipboard data to temp file failed."
+msgstr "Speichern der Zwischenablage in temporäre Datei ist fehlgeschlagen."
+
+#: diff.cpp:255
+msgid "From Clipboard"
+msgstr "Aus Zwischenablage"
+
+#: diff.cpp:471
+msgid "Expecting space after closing quotation mark."
+msgstr ""
+"Nach einem schließenden Anführungszeichen wird ein Leerzeichen erwartet."
+
+#: diff.cpp:474
+msgid "Not matching quotation marks."
+msgstr "Passt nicht auf Anführungszeichen."
+
+#: diff.cpp:496
+msgid "Unexpected quotation mark within argument."
+msgstr "Unerwartetes Anführungszeichen innerhalb des Arguments."
+
+#: diff.cpp:503
+msgid "No program specified."
+msgstr "Kein Programm angegeben."
+
+#: diff.cpp:605
+#, kde-format
+msgid ""
+"Preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The preprocessing command will be disabled now."
+msgstr ""
+"Der Vorverarbeitungsbefehl ist möglicherweise fehlgeschlagen.\n"
+"Bitte überprüfen Sie diesen Befehl:\n"
+"\n"
+"  %1\n"
+"\n"
+"Diese Vorverarbeitung wird nun deaktiviert."
+
+#: diff.cpp:653
+#, kde-format
+msgid ""
+"The line-matching-preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The line-matching-preprocessing command will be disabled now."
+msgstr ""
+"Der Vorverarbeitungsbefehl für Zeilenabgleich ist möglicherweise "
+"fehlgeschlagen.\n"
+"Bitte überprüfen Sie diesen Befehl:\n"
+"\n"
+"  %1\n"
+"\n"
+"Der Vorverarbeitungsbefehl für Zeilenabgleich wird nun deaktiviert."
+
+#: diff.cpp:1776 diff.cpp:1790
+msgid ""
+"Data loss error:\n"
+"If it is reproducible please contact the author.\n"
+msgstr ""
+"Datenverlust:\n"
+"Falls das Problem reproduzierbar ist, nehmen Sie bitte Kontakt mit dem Autor "
+"auf.\n"
+
+#: diff.cpp:1778 diff.cpp:1792
+msgid "Severe Internal Error"
+msgstr "Schwerwiegender interner Fehler"
+
+#: directorymergewindow.cpp:136
+msgid "Mix of links and normal files."
+msgstr "Vermischung von Verknüpfungen und Dateien"
+
+#: directorymergewindow.cpp:143
+msgid "Link: "
+msgstr "Verknüpfung: "
+
+#: directorymergewindow.cpp:151
+msgid "Size. "
+msgstr "Größe."
+
+#: directorymergewindow.cpp:164 directorymergewindow.cpp:174
+msgid "Date & Size: "
+msgstr "Datum & Größe: "
+
+#: directorymergewindow.cpp:184 directorymergewindow.cpp:190
+#, kde-format
+msgid "Creating temp copy of %1 failed."
+msgstr "Erstellung einer temporären Kopie von %1 ist fehlgeschlagen."
+
+#: directorymergewindow.cpp:201 directorymergewindow.cpp:209
+#, kde-format
+msgid "Opening %1 failed."
+msgstr "Öffnen von %1 ist fehlgeschlagen."
+
+#: directorymergewindow.cpp:213
+msgid "Comparing file..."
+msgstr "Datei wird verglichen ..."
+
+#: directorymergewindow.cpp:223 directorymergewindow.cpp:229
+#, kde-format
+msgid "Error reading from %1"
+msgstr "Fehler beim Lesen von %1"
+
+#: directorymergewindow.cpp:358
+msgid "Name"
+msgstr "Name"
+
+#: directorymergewindow.cpp:358
+msgid "Operation"
+msgstr "Aktion"
+
+#: directorymergewindow.cpp:358
+msgid "Status"
+msgstr "Status"
+
+#: directorymergewindow.cpp:359
+msgid "Unsolved"
+msgstr "Ungelöst"
+
+#: directorymergewindow.cpp:359
+msgid "Solved"
+msgstr "Aufgelöst"
+
+#: directorymergewindow.cpp:359
+msgid "Nonwhite"
+msgstr "Nicht-Leerraum"
+
+#: directorymergewindow.cpp:359
+msgid "White"
+msgstr "Leerraum"
+
+#: directorymergewindow.cpp:388
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort "
+"the merge and rescan the directory?"
+msgstr ""
+"Sie sind dabei, Ordner zusammenzuführen. Sind Sie sicher, dass Sie diese "
+"Operation abbrechen und den Ordner erneut einlesen möchten?"
+
+#: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655
+#: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823
+msgid "Warning"
+msgstr "Achtung"
+
+#: directorymergewindow.cpp:390 directorymergewindow.cpp:2965
+msgid "Rescan"
+msgstr "Neu einlesen"
+
+#: directorymergewindow.cpp:391 pdiff.cpp:1081
+msgid "Continue Merging"
+msgstr "Zusammenführung fortsetzen"
+
+#: directorymergewindow.cpp:548
+msgid "Opening of directories failed:"
+msgstr "Öffnen der Ordner fehlgeschlagen:"
+
+#: directorymergewindow.cpp:551
+#, kde-format
+msgid "Dir A \"%1\" does not exist or is not a directory.\n"
+msgstr "Ordner A „%1“ existiert nicht oder ist kein Ordner.\n"
+
+#: directorymergewindow.cpp:554
+#, kde-format
+msgid "Dir B \"%1\" does not exist or is not a directory.\n"
+msgstr "Ordner B „%1“ existiert nicht oder ist kein Ordner.\n"
+
+#: directorymergewindow.cpp:557
+#, kde-format
+msgid "Dir C \"%1\" does not exist or is not a directory.\n"
+msgstr "Ordner C „%1“ existiert nicht oder ist kein Ordner.\n"
+
+#: directorymergewindow.cpp:559
+msgid "Directory Open Error"
+msgstr "Fehler beim Öffnen des Ordners"
+
+#: directorymergewindow.cpp:567
+msgid ""
+"The destination directory must not be the same as A or B when three "
+"directories are merged.\n"
+"Check again before continuing."
+msgstr ""
+"Wenn drei Ordner zusammengeführt werden, darf der Zielordner nicht mit A "
+"oder B identisch sein.\n"
+"Bitte überprüfen Sie das bevor Sie fortfahren."
+
+#: directorymergewindow.cpp:569
+msgid "Parameter Warning"
+msgstr "Parameter-Warnung"
+
+#: directorymergewindow.cpp:574
+msgid "Scanning directories..."
+msgstr "Ordner werden eingelesen ..."
+
+#: directorymergewindow.cpp:607
+msgid "Reading Directory A"
+msgstr "Einlesen von Ordner A"
+
+#: directorymergewindow.cpp:629
+msgid "Reading Directory B"
+msgstr "Einlesen von Ordner B"
+
+#: directorymergewindow.cpp:651
+msgid "Reading Directory C"
+msgstr "Einlesen von Ordner C"
+
+#: directorymergewindow.cpp:677
+msgid "Some subdirectories were not readable in"
+msgstr "Einige Unterordner nicht lesbar"
+
+#: directorymergewindow.cpp:682
+msgid "Check the permissions of the subdirectories."
+msgstr "Überprüfen Sie bitte die Zugriffsrechte für die Unterordner."
+
+#: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737
+#: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233
+#: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328
+msgid "Ready."
+msgstr "Bereit."
+
+#: directorymergewindow.cpp:735
+msgid "Directory Comparison Status"
+msgstr "Status des Ordnervergleichs"
+
+#: directorymergewindow.cpp:736
+msgid "Number of subdirectories:"
+msgstr "Anzahl der Unterordner:"
+
+#: directorymergewindow.cpp:737
+msgid "Number of equal files:"
+msgstr "Anzahl der identischen Dateien:"
+
+#: directorymergewindow.cpp:738
+msgid "Number of different files:"
+msgstr "Anzahl der unterschiedlichen Dateien:"
+
+#: directorymergewindow.cpp:741
+msgid "Number of manual merges:"
+msgstr "Anzahl der manuellen Zusammenführungen:"
+
+#: directorymergewindow.cpp:912
+msgid "This affects all merge operations."
+msgstr "Dies beeinflußt alle Zusammenführungsaktionen."
+
+#: directorymergewindow.cpp:913
+msgid "Changing All Merge Operations"
+msgstr "Änderung aller Zusammenführungsaktionen"
+
+#: directorymergewindow.cpp:1312
+msgid "Processing "
+msgstr "Fortschritt "
+
+#: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742
+msgid "To do."
+msgstr "Unerledigt."
+
+#: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996
+msgid "Copy A to B"
+msgstr "A nach B kopieren"
+
+#: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997
+msgid "Copy B to A"
+msgstr "B nach A kopieren"
+
+#: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998
+msgid "Delete A"
+msgstr "A löschen"
+
+#: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999
+msgid "Delete B"
+msgstr "B löschen"
+
+#: directorymergewindow.cpp:1814
+msgid "Delete A & B"
+msgstr "A & B löschen"
+
+#: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001
+msgid "Merge to A"
+msgstr "Zusammenführen nach A"
+
+#: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002
+msgid "Merge to B"
+msgstr "Zusammenführen nach B"
+
+#: directorymergewindow.cpp:1817
+msgid "Merge to A & B"
+msgstr "Zusammenführen nach A & B"
+
+#: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993
+msgid "Delete (if exists)"
+msgstr "Löschen (falls vorhanden)"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+#: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869
+msgid "Merge"
+msgstr "Zusammenführen"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+msgid "Merge (manual)"
+msgstr "Zusammenführen (manuell)"
+
+#: directorymergewindow.cpp:1824
+msgid "Error: Conflicting File Types"
+msgstr "Fehler: Konflikt der Dateitypen"
+
+#: directorymergewindow.cpp:1825
+msgid "Error: Changed and Deleted"
+msgstr "Fehler: Geändert und gelöscht"
+
+#: directorymergewindow.cpp:1826
+msgid "Error: Dates are equal but files are not."
+msgstr "Fehler: Gleiches Datum, aber unterschiedliche Dateien."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906
+msgid "This operation is currently not possible."
+msgstr "Diese Aktion ist momentan nicht zulässig."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174
+msgid "Operation Not Possible"
+msgstr "Unzulässige Aktion"
+
+#: directorymergewindow.cpp:1945
+msgid ""
+"This should never happen: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"If you know how to reproduce this, please contact the program author."
+msgstr ""
+"Dies sollte nie passieren: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"Wenn Sie dies reproduzieren können, informieren Sie bitte den Autor dieses "
+"Programms."
+
+#: directorymergewindow.cpp:1945
+msgid "Program Error"
+msgstr "Programmfehler"
+
+#: directorymergewindow.cpp:1956
+msgid "An error occurred while copying.\n"
+msgstr "Während des Kopierens ist ein Fehler aufgetreten.\n"
+
+#: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025
+#: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105
+#: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123
+#: directorymergewindow.cpp:2374
+msgid "Error"
+msgstr "Fehler"
+
+#: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375
+msgid "Merge Error"
+msgstr "Zusammenführungsfehler"
+
+#: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380
+msgid "Error."
+msgstr "Fehler."
+
+#: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272
+#: directorymergewindow.cpp:2312
+msgid "Done."
+msgstr "Erledigt."
+
+#: directorymergewindow.cpp:1990
+msgid "Not saved."
+msgstr "Nicht gespeichert."
+
+#: directorymergewindow.cpp:2025
+msgid "Unknown merge operation. (This must never happen!)"
+msgstr "Unbekannte Zusammenführaktion. (Sollte nie passieren!)"
+
+#: directorymergewindow.cpp:2057
+msgid "Unknown merge operation."
+msgstr "Unbekannte Zusammenführaktion."
+
+#: directorymergewindow.cpp:2072
+msgid ""
+"The merge is about to begin.\n"
+"\n"
+"Choose \"Do it\" if you have read the instructions and know what you are "
+"doing.\n"
+"Choosing \"Simulate it\" will tell you what would happen.\n"
+"\n"
+"Be aware that this program still has beta status and there is NO WARRANTY "
+"whatsoever! Make backups of your vital data!"
+msgstr ""
+"Die Zusammenführung kann nun starten.\n"
+"\n"
+"Wählen Sie „Start“ wenn Sie die Anleitung gelesen haben und wissen was Sie "
+"erwartet.\n"
+"Wählen Sie „Simulieren“ um zu sehen, was passieren würde.\n"
+"\n"
+"Sie sollten aber wissen, dass dieses Program noch Beta-Status hat und es "
+"KEINE GARANTIE gibt! Erstellen Sie Sicherungkopien Ihrer wichtigen Daten!"
+
+#: directorymergewindow.cpp:2077
+msgid "Starting Merge"
+msgstr "Start der Zusammenführung"
+
+#: directorymergewindow.cpp:2078
+msgid "Do It"
+msgstr "Start"
+
+#: directorymergewindow.cpp:2079
+msgid "Simulate It"
+msgstr "Simulieren"
+
+#: directorymergewindow.cpp:2105
+msgid ""
+"The highlighted item has a different type in the different directories. "
+"Select what to do."
+msgstr ""
+"Das markierte Element hat einen unterschiedlichen Typ in den verschiedenen "
+"Ordnern. Wählen Sie eine Aktion."
+
+#: directorymergewindow.cpp:2114
+msgid ""
+"The modification dates of the file are equal but the files are not. Select "
+"what to do."
+msgstr ""
+"Für die markierte Datei ist zwar das Datum der letzen Änderung gleich, aber "
+"die Dateien unterscheiden sich. Wählen Sie die Zusammenführaktion."
+
+#: directorymergewindow.cpp:2123
+msgid ""
+"The highlighted item was changed in one directory and deleted in the other. "
+"Select what to do."
+msgstr ""
+"Das markierte Element wurde in einem Ordner geändert und im anderen "
+"gelöscht. Wählen Sie eine Aktion."
+
+#: directorymergewindow.cpp:2174
+msgid ""
+"This operation is currently not possible because directory merge is "
+"currently running."
+msgstr ""
+"Diese Aktion ist derzeit nicht möglich, weil noch eine Ordnerzusammenführung "
+"läuft."
+
+#: directorymergewindow.cpp:2234
+msgid ""
+"There was an error in the last step.\n"
+"Do you want to continue with the item that caused the error or do you want "
+"to skip this item?"
+msgstr ""
+"Beim letzten Element ist ein Fehler aufgetreten.\n"
+"Möchten Sie mit diesem Element fortfahren, oder es überspringen?"
+
+#: directorymergewindow.cpp:2236
+msgid "Continue merge after an error"
+msgstr "Fortsetzung der Zusammenführung nach einem Fehler"
+
+#: directorymergewindow.cpp:2237
+msgid "Continue With Last Item"
+msgstr "Mit letztem Element fortfahren"
+
+#: directorymergewindow.cpp:2238
+msgid "Skip Item"
+msgstr "Element überspringen"
+
+#: directorymergewindow.cpp:2272
+msgid "Skipped."
+msgstr "Übersprungen."
+
+#: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493
+msgid "In progress..."
+msgstr "In Bearbeitung ..."
+
+#: directorymergewindow.cpp:2327
+msgid "Merge operation complete."
+msgstr "Die Zusammenführung ist abgeschlossen."
+
+#: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330
+msgid "Merge Complete"
+msgstr "Zusammenführung abgeschlossen."
+
+#: directorymergewindow.cpp:2340
+msgid ""
+"Simulated merge complete: Check if you agree with the proposed operations."
+msgstr ""
+"Die simulierte Zusammenführung ist abgeschlossen. Überprüfen Sie, ob Sie mit "
+"den vorgeschlagenen Aktionen einverstanden sind."
+
+#: directorymergewindow.cpp:2374
+msgid "An error occurred. Press OK to see detailed information.\n"
+msgstr "Ein Fehler ist aufgetreten. Wählen Sie OK um Details zu sehen.\n"
+
+#: directorymergewindow.cpp:2406
+#, kde-format
+msgid "Error: While deleting %1: Creating backup failed."
+msgstr ""
+"Fehler: Beim Löschen von %1: Die Erstellung einer Sicherungskopie ist "
+"fehlgeschlagen."
+
+#: directorymergewindow.cpp:2413
+#, kde-format
+msgid "delete directory recursively( %1 )"
+msgstr "Lösche Ordner rekursiv( %1 )"
+
+#: directorymergewindow.cpp:2415
+#, kde-format
+msgid "delete( %1 )"
+msgstr "Lösche( %1 )"
+
+#: directorymergewindow.cpp:2430
+msgid "Error: delete dir operation failed while trying to read the directory."
+msgstr ""
+"Fehler: Löschen des Ordners ist fehlgeschlagen, da er nicht gelesen werden "
+"kann."
+
+#: directorymergewindow.cpp:2449
+#, kde-format
+msgid "Error: rmdir( %1 ) operation failed."
+msgstr "Fehler: Ordner löschen( %1 ) Operation fehlgeschlagen."
+
+#: directorymergewindow.cpp:2459
+msgid "Error: delete operation failed."
+msgstr "Fehler: Löschoperation fehlgeschlagen."
+
+#: directorymergewindow.cpp:2485
+#, kde-format
+msgid "manual merge( %1, %2, %3 -> %4)"
+msgstr "Manuelles Zusammenführen( %1, %2, %3 -> %4)"
+
+#: directorymergewindow.cpp:2488
+msgid ""
+"     Note: After a manual merge the user should continue by pressing F7."
+msgstr "     Hinweis: Nach manuellem Zusammenführen mit F7 fortsetzen."
+
+#: directorymergewindow.cpp:2513
+#, kde-format
+msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed."
+msgstr ""
+"Fehler: Kopie( %1 -> %2 ) fehlgeschlagen. Das existierende Ziel kann nicht "
+"gelöscht werden."
+
+#: directorymergewindow.cpp:2522
+#, kde-format
+msgid "copyLink( %1 -> %2 )"
+msgstr "Verknüpfung kopieren( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2533
+msgid "Error: copyLink failed: Remote links are not yet supported."
+msgstr ""
+"Fehler: Verknüpfung kopieren: Nichtlokale Verknüpfungen werden nicht "
+"unterstützt."
+
+#: directorymergewindow.cpp:2539
+msgid "Error: copyLink failed."
+msgstr "Fehler: Verknüpfung kopieren fehlgeschlagen."
+
+#: directorymergewindow.cpp:2564
+#, kde-format
+msgid "copy( %1 -> %2 )"
+msgstr "kopieren( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2590
+#, kde-format
+msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination."
+msgstr ""
+"Fehler beim Umbenennen( %1 -> %2 ): Das existierende Ziel kann nicht "
+"gelöscht werden."
+
+#: directorymergewindow.cpp:2596
+#, kde-format
+msgid "rename( %1 -> %2 )"
+msgstr "Umbenennen( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2605
+msgid "Error: Rename failed."
+msgstr "Fehler: Umbenennen fehlgeschlagen."
+
+#: directorymergewindow.cpp:2623
+#, kde-format
+msgid "Error during makeDir of %1. Cannot delete existing file."
+msgstr ""
+"Fehler beim Erstellen des Ordners %1. Kann vorhandene Datei nicht löschen."
+
+#: directorymergewindow.cpp:2639
+#, kde-format
+msgid "makeDir( %1 )"
+msgstr "Ordner erstellen( %1 )"
+
+#: directorymergewindow.cpp:2649
+msgid "Error while creating directory."
+msgstr "Fehler beim Erstellen des Ordners."
+
+#: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784
+msgid "Dest"
+msgstr "Ziel"
+
+#: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709
+msgid "Dir"
+msgstr "Ordner"
+
+#: directorymergewindow.cpp:2678
+msgid "Type"
+msgstr "Typ"
+
+#: directorymergewindow.cpp:2678
+msgid "Size"
+msgstr "Größe"
+
+#: directorymergewindow.cpp:2679
+msgid "Attr"
+msgstr "Attr"
+
+#: directorymergewindow.cpp:2679
+msgid "Last Modification"
+msgstr "Letzte Änderung"
+
+#: directorymergewindow.cpp:2679
+msgid "Link-Destination"
+msgstr "Verknüpfungsziel"
+
+#: directorymergewindow.cpp:2709 difftextwindow.cpp:401
+msgid "File"
+msgstr "Datei"
+
+#: directorymergewindow.cpp:2726
+msgid "not available"
+msgstr "nicht vorhanden"
+
+#: directorymergewindow.cpp:2746
+msgid "A (Dest): "
+msgstr "A (Ziel): "
+
+#: directorymergewindow.cpp:2749
+msgid "A (Base): "
+msgstr "A (Basis): "
+
+#: directorymergewindow.cpp:2755
+msgid "B (Dest): "
+msgstr "B (Ziel): "
+
+#: directorymergewindow.cpp:2763
+msgid "C (Dest): "
+msgstr "C (Ziel): "
+
+#: directorymergewindow.cpp:2769
+msgid "Dest: "
+msgstr "Ziel: "
+
+#: directorymergewindow.cpp:2836
+msgid "Save Directory Merge State As..."
+msgstr "Status der Ordnerzusammenführung speichern unter ..."
+
+#: directorymergewindow.cpp:2959
+msgid "Start/Continue Directory Merge"
+msgstr "Ordnerzusammenführung starten/fortsetzen"
+
+#: directorymergewindow.cpp:2960
+msgid "Run Operation for Current Item"
+msgstr "Aktion des aktuellen Elements ausführen"
+
+#: directorymergewindow.cpp:2961
+msgid "Compare Selected File"
+msgstr "Gewählte Datei vergleichen"
+
+#: directorymergewindow.cpp:2962
+msgid "Merge Current File"
+msgstr "Aktuelle Datei zusammenführen"
+
+#: directorymergewindow.cpp:2962
+msgid ""
+"Merge\n"
+"File"
+msgstr ""
+"Datei\n"
+"zusammenführen"
+
+#: directorymergewindow.cpp:2963
+msgid "Fold All Subdirs"
+msgstr "Alle Unterordner einklappen"
+
+#: directorymergewindow.cpp:2964
+msgid "Unfold All Subdirs"
+msgstr "Alle Unterordner ausklappen"
+
+#: directorymergewindow.cpp:2968
+msgid "Choose A for All Items"
+msgstr "Für alle Elemente A wählen"
+
+#: directorymergewindow.cpp:2969
+msgid "Choose B for All Items"
+msgstr "Für alle Elemente B wählen"
+
+#: directorymergewindow.cpp:2970
+msgid "Choose C for All Items"
+msgstr "Für alle Elemente C wählen"
+
+#: directorymergewindow.cpp:2971
+msgid "Auto-Choose Operation for All Items"
+msgstr "Aktion für alle Elemente automatisch wählen"
+
+#: directorymergewindow.cpp:2972
+msgid "No Operation for All Items"
+msgstr "Keine Aktion für alle Elemente"
+
+#: directorymergewindow.cpp:2977
+msgid "Show Identical Files"
+msgstr "Identische Dateien anzeigen"
+
+#: directorymergewindow.cpp:2977
+msgid ""
+"Identical\n"
+"Files"
+msgstr ""
+"Identische\n"
+"Dateien"
+
+#: directorymergewindow.cpp:2978
+msgid "Show Different Files"
+msgstr "Unterschiedliche Dateien anzeigen"
+
+#: directorymergewindow.cpp:2979
+msgid "Show Files only in A"
+msgstr "Dateien anzeigen, die nur in A existieren"
+
+#: directorymergewindow.cpp:2979
+msgid ""
+"Files\n"
+"only in A"
+msgstr ""
+"Dateien\n"
+"nur in A"
+
+#: directorymergewindow.cpp:2980
+msgid "Show Files only in B"
+msgstr "Dateien anzeigen, die nur in B existieren"
+
+#: directorymergewindow.cpp:2980
+msgid ""
+"Files\n"
+"only in B"
+msgstr ""
+"Dateien\n"
+"nur in B"
+
+#: directorymergewindow.cpp:2981
+msgid "Show Files only in C"
+msgstr "Dateien anzeigen, die nur in C existieren"
+
+#: directorymergewindow.cpp:2981
+msgid ""
+"Files\n"
+"only in C"
+msgstr ""
+"Dateien\n"
+"nur in C"
+
+#: directorymergewindow.cpp:2985
+msgid "Compare Explicitly Selected Files"
+msgstr "Explizit ausgewählte Dateien vergleichen"
+
+#: directorymergewindow.cpp:2986
+msgid "Merge Explicitly Selected Files"
+msgstr "Explizit ausgewählte Dateien zusammenführen"
+
+#: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995
+msgid "Do Nothing"
+msgstr "Nichts tun"
+
+#: directorymergewindow.cpp:2989
+msgid "A"
+msgstr "A"
+
+#: directorymergewindow.cpp:2990
+msgid "B"
+msgstr "B"
+
+#: directorymergewindow.cpp:2991
+msgid "C"
+msgstr "C"
+
+#: directorymergewindow.cpp:3000
+msgid "Delete A && B"
+msgstr "A && B löschen"
+
+#: directorymergewindow.cpp:3003
+msgid "Merge to A && B"
+msgstr "Nach A && B zusammenführen"
+
+#: main.cpp:74 main.cpp:76
+msgid "Ignored. (User defined.)"
+msgstr "Ignoriert. (Benutzerdefiniert.)"
+
+#: main.cpp:162
+msgid "kdiff3"
+msgstr "kdiff3"
+
+#: main.cpp:164
+msgid "Tool for Comparison and Merge of Files and Directories"
+msgstr "Programm zum Vergleichen und Zusammenführen von Dateien und Ordnern"
+
+#: main.cpp:165
+msgid "(c) 2002-2011 Joachim Eibl"
+msgstr "© 2002–2011 Joachim Eibl"
+
+#: main.cpp:172 kdiff3_part.cpp:303
+msgid "Joachim Eibl"
+msgstr "Joachim Eibl"
+
+#: main.cpp:173
+msgid "Eike Sauer"
+msgstr "Eike Sauer"
+
+#: main.cpp:173
+msgid "Bugfixes, Debian package maintainer"
+msgstr "Fehlerbereinigung, Betreuer des Debian-Pakets"
+
+#: main.cpp:174
+msgid "Sebastien Fricker"
+msgstr "Sebastien Fricker"
+
+#: main.cpp:174
+msgid "Windows installer"
+msgstr "Windows-Installer"
+
+#: main.cpp:175
+msgid "Stephan Binner"
+msgstr "Stephan Binner"
+
+#: main.cpp:175
+msgid "i18n-help"
+msgstr "i18n-Hilfe"
+
+#: main.cpp:176
+msgid "Stefan Partheymueller"
+msgstr "Stefan Partheymueller"
+
+#: main.cpp:176
+msgid "Clipboard-patch"
+msgstr "Patch für Zwischenablage"
+
+#: main.cpp:177
+msgid "David Faure"
+msgstr "David Faure"
+
+#: main.cpp:177
+msgid "KIO-Help"
+msgstr "KIO-Hilfe"
+
+#: main.cpp:178
+msgid "Bernd Gehrmann"
+msgstr "Bernd Gehrmann"
+
+#: main.cpp:178
+msgid "Class CvsIgnoreList from Cervisia"
+msgstr "CvsIgnoreList-Klasse aus Cervisia"
+
+#: main.cpp:179
+msgid "Andre Woebbeking"
+msgstr "Andre Woebbeking"
+
+#: main.cpp:179
+msgid "Class StringMatcher"
+msgstr "StringMatcher-Klasse"
+
+#: main.cpp:180
+msgid "Michael Denio"
+msgstr "Michael Denio"
+
+#: main.cpp:180
+msgid "Directory Equality-Coloring patch"
+msgstr "Ordnervergleich-Farb-Patch"
+
+#: main.cpp:181
+msgid "Manfred Koehler"
+msgstr "Manfred Koehler"
+
+#: main.cpp:181
+msgid "Fix for slow startup on Windows"
+msgstr "Schnellerer Start unter Windows"
+
+#: main.cpp:182
+msgid "Sergey Zorin"
+msgstr "Sergey Zorin"
+
+#: main.cpp:182
+msgid "Diff Ext for Windows"
+msgstr "Externes Diff für Windows"
+
+#: main.cpp:183
+msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+
+#: main.cpp:183
+msgid "GNU-Diffutils"
+msgstr "GNU-Diffutils"
+
+#: main.cpp:184
+msgid "Tino Boellsterling, Timothy Mee"
+msgstr "Tino Boellsterling, Timothy Mee"
+
+#: main.cpp:184
+msgid "Intensive test, use and feedback"
+msgstr "Intensive Tests und Feedback"
+
+#: main.cpp:185
+msgid "Michael Schmidt"
+msgstr "Michael Schmidt"
+
+#: main.cpp:185
+msgid "Mac support"
+msgstr "Mac-Unterstützung"
+
+#: main.cpp:186
+msgid "Valentin Rusu"
+msgstr "Valentin Rusu"
+
+#: main.cpp:186 main.cpp:187
+msgid "KDE4 porting"
+msgstr "Portierung auf KDE 4"
+
+#: main.cpp:187
+msgid "Albert Astals Cid"
+msgstr "Albert Astals Cid"
+
+#: main.cpp:188
+msgid "Silvan Scherrer"
+msgstr "Silvan Scherrer"
+
+#: main.cpp:188
+msgid "OS2 port"
+msgstr "Portierung auf OS2"
+
+#: main.cpp:190
+msgid "+ Many thanks to those who reported bugs and contributed ideas!"
+msgstr ""
+"+ Vielen Dank an alle, die Fehler gemeldet und Ideen beigesteuert haben!"
+
+#: main.cpp:196
+msgid "Merge the input."
+msgstr "Quellen zusammenführen."
+
+#: main.cpp:197
+msgid "Explicit base file. For compatibility with certain tools."
+msgstr "Explizite Basisdatei. Für Kompatibilität mit anderen Werkzeugen."
+
+#: main.cpp:198
+msgid "Output file. Implies -m. E.g.: -o newfile.txt"
+msgstr "Ergebnisdateiname bei Zusammenführung. z. B.: -o neu.txt"
+
+#: main.cpp:199
+msgid "Output file, again. (For compatibility with certain tools.)"
+msgstr "Ergebnisdatei. (Für Kompatibilität mit anderen Werkzeugen.)"
+
+#: main.cpp:200
+msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)"
+msgstr ""
+"Kein Fenster anzeigen, wenn alle Konflikte automatisch auflösbar sind. "
+"(Benötigt -o)"
+
+#: main.cpp:201
+msgid "Don't solve conflicts automatically. (For compatibility...)"
+msgstr "Konflikte nicht automatisch lösen. (Für Kompatibilität ...)"
+
+#: main.cpp:202
+msgid "Visible name replacement for input file 1 (base)."
+msgstr "Anderer angezeigter Dateiname für erste Datei (Basis)."
+
+#: main.cpp:203
+msgid "Visible name replacement for input file 2."
+msgstr "Anderer angezeigter Dateiname für zweite Datei."
+
+#: main.cpp:204
+msgid "Visible name replacement for input file 3."
+msgstr "Anderer angezeigter Dateiname für dritte Datei."
+
+#: main.cpp:205
+msgid "Alternative visible name replacement. Supply this once for every input."
+msgstr ""
+"Anderer angezeigter Dateiname: Kann für jede Quelle spezifiziert werden."
+
+#: main.cpp:206
+msgid ""
+"Override a config setting. Use once for every setting. E.g.: --cs "
+"\"AutoAdvance=1\""
+msgstr ""
+"Eine Einstellung ändern. Je Einstellung verwendbar. z. B.: --cs "
+"„AutoAdvance=1“"
+
+#: main.cpp:207
+msgid "Show list of config settings and current values."
+msgstr "Liste aller Einstellungen und aktueller Werte anzeigen."
+
+#: main.cpp:208
+msgid "Use a different config file."
+msgstr "Eine andere Einstellungsdatei verwenden."
+
+#: main.cpp:211
+msgid "file1 to open (base, if not specified via --base)"
+msgstr "Erste Datei (Basis, falls nicht --base verwendet wird)"
+
+#: main.cpp:212
+msgid "file2 to open"
+msgstr "Zweite Datei"
+
+#: main.cpp:213
+msgid "file3 to open"
+msgstr "Dritte Datei"
+
+#: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976
+#: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002
+#: mergeresultwindow.cpp:1014
+#, kde-format
+msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)"
+msgstr ""
+"Anzahl der verbleibenden ungelösten Konflikte: %1 (%2 davon Leerraum-"
+"Konflikte)"
+
+#: mergeresultwindow.cpp:303
+msgid ""
+"The output has been modified.\n"
+"If you continue your changes will be lost."
+msgstr ""
+"Das Ergebnis wurde verändert.\n"
+"Wenn Sie fortsetzen, gehen die Änderungen verloren."
+
+#: mergeresultwindow.cpp:834 pdiff.cpp:532
+msgid "All input files are binary equal."
+msgstr "Alle Quelldateien sind binär identisch."
+
+#: mergeresultwindow.cpp:836
+msgid "All input files contain the same text."
+msgstr "Alle Quelldateien enthalten den gleichen Text."
+
+#: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840
+#: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540
+#, kde-format
+msgid "Files %1 and %2 are binary equal.\n"
+msgstr "Die Dateien %1 und %2 sind binär identisch.\n"
+
+#: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841
+#: mergeresultwindow.cpp:843
+#, kde-format
+msgid "Files %1 and %2 have equal text.\n"
+msgstr "Die Dateien %1 und %2 enthalten den gleichen Text. \n"
+
+#: mergeresultwindow.cpp:849
+msgid "Total number of conflicts: "
+msgstr "Gesamte Anzahl der Konflikte: "
+
+#: mergeresultwindow.cpp:850
+msgid ""
+"\n"
+"Nr of automatically solved conflicts: "
+msgstr ""
+"\n"
+"Anzahl der automatisch aufgelösten Konflikte: "
+
+#: mergeresultwindow.cpp:851
+msgid ""
+"\n"
+"Nr of unsolved conflicts: "
+msgstr ""
+"\n"
+"Anzahl der ungelösten Konflikte: "
+
+#: mergeresultwindow.cpp:853
+msgid "Conflicts"
+msgstr "Konflikte"
+
+#: mergeresultwindow.cpp:1728
+msgid "<No src line>"
+msgstr "<Keine Zeile in der Quelle>"
+
+#: mergeresultwindow.cpp:1736
+msgid "<Merge Conflict (Whitespace only)>"
+msgstr "<Zusammenführungskonflikt (nur Leerräume)>"
+
+#: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517
+msgid "<Merge Conflict>"
+msgstr "<Zusammenführungskonflikt>"
+
+#: mergeresultwindow.cpp:2725
+msgid ""
+"Not all conflicts are solved yet.\n"
+"File not saved.\n"
+msgstr ""
+"Noch sind nicht alle Konflikte aufgelöst.\n"
+"Die Datei wurde nicht gespeichert.\n"
+
+#: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736
+msgid "Conflicts Left"
+msgstr "Es sind noch ungelöste Konflikte übrig"
+
+#: mergeresultwindow.cpp:2734
+msgid ""
+"There is a line end style conflict. Please choose the line end style "
+"manually.\n"
+"File not saved.\n"
+msgstr ""
+"Es besteht ein Zeilenende-Konflikt. Bitte wählen Sie manuell ein "
+"Zeilenende.\n"
+"Die Datei wurde nicht gespeichert.\n"
+
+#: mergeresultwindow.cpp:2748
+msgid ""
+"\n"
+"\n"
+"Creating backup failed. File not saved."
+msgstr ""
+"\n"
+"\n"
+"Anlegen der Sicherungskopie ist fehlgeschlagen. Die Datei wurde nicht "
+"gespeichert."
+
+#: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792
+msgid "File Save Error"
+msgstr "Fehler beim Speichern der Datei"
+
+#: mergeresultwindow.cpp:2792
+msgid "Error while writing."
+msgstr "Fehler beim Schreiben."
+
+#: mergeresultwindow.cpp:3122
+msgid "Output"
+msgstr "Ausgabe"
+
+#: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314
+msgid "[Modified]"
+msgstr "[Geändert]"
+
+#: mergeresultwindow.cpp:3141
+msgid "Encoding for saving"
+msgstr "Dateikodierung zum Speichern"
+
+#: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737
+#: optiondialog.cpp:762
+msgid "Line end style:"
+msgstr "Zeilenende-Kodierung:"
+
+#: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767
+msgid "Unix"
+msgstr "Unix"
+
+#: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737
+msgid "DOS"
+msgstr "DOS"
+
+#: mergeresultwindow.cpp:3229
+msgid "Conflict"
+msgstr "Konflikt"
+
+#: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263
+#: mergeresultwindow.cpp:3265
+msgid "Codec from"
+msgstr "Codec von"
+
+#: kdiff3_part.cpp:157 kdiff3_part.cpp:234
+msgid "Couldn't find files for comparison."
+msgstr "Kann Dateien für Vergleich nicht finden."
+
+#: kdiff3_part.cpp:302
+msgid "KDiff3Part"
+msgstr "KDiff3-Komponente"
+
+#: fileaccess.cpp:612
+msgid ""
+"While trying to make a backup, deleting an older backup failed. \n"
+"Filename: "
+msgstr ""
+"Bei dem Versuch, eine Sicherungskopie zu erstellen, ist eine bereits "
+"vorhandene Sicherungskopie nicht gelöscht worden.\n"
+"Datei: "
+
+#: fileaccess.cpp:619
+msgid ""
+"While trying to make a backup, renaming failed. \n"
+"Filenames: "
+msgstr ""
+"Als versucht wurde eine Sicherungskopie zu erstellen, ist das Umbenennen "
+"fehlgeschlagen:\n"
+"Dateien: "
+
+#: fileaccess.cpp:643
+#, kde-format
+msgid "Getting file status: %1"
+msgstr "Dateistatus holen: %1"
+
+#: fileaccess.cpp:686
+#, kde-format
+msgid "Reading file: %1"
+msgstr "Datei lesen: %1"
+
+#: fileaccess.cpp:723
+#, kde-format
+msgid "Writing file: %1"
+msgstr "Datei schreiben: %1"
+
+#: fileaccess.cpp:751
+msgid "Out of memory"
+msgstr "Nicht genügend Speicher"
+
+#: fileaccess.cpp:786
+#, kde-format
+msgid "Making directory: %1"
+msgstr "Ordner erstellen: %1"
+
+#: fileaccess.cpp:806
+#, kde-format
+msgid "Removing directory: %1"
+msgstr "Ordner löschen: %1"
+
+#: fileaccess.cpp:821
+#, kde-format
+msgid "Removing file: %1"
+msgstr "Datei löschen: %1"
+
+#: fileaccess.cpp:837
+#, kde-format
+msgid "Creating symbolic link: %1 -> %2"
+msgstr "Verknüpfung erstellen: %1 -> %2"
+
+#: fileaccess.cpp:864
+#, kde-format
+msgid "Renaming file: %1 -> %2"
+msgstr "Datei umbenennen: %1 -> %2"
+
+#: fileaccess.cpp:897
+#, kde-format
+msgid "Copying file: %1 -> %2"
+msgstr "Datei kopieren: %1 -> %2"
+
+#: fileaccess.cpp:911
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for reading failed. Filename: "
+"%1"
+msgstr "Fehler beim Kopieren: Datei kann nicht zum Lesen geöffnet werden: %1"
+
+#: fileaccess.cpp:917
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for writing failed. Filename: "
+"%1"
+msgstr ""
+"Fehler beim Kopieren: Datei kann nicht zum Schreiben geöffnet werden: %1"
+
+#: fileaccess.cpp:932
+#, kde-format
+msgid "Error during file copy operation: Reading failed. Filename: %1"
+msgstr "Fehler beim Kopieren: Lesen fehlgeschlagen: %1"
+
+#: fileaccess.cpp:941
+#, kde-format
+msgid "Error during file copy operation: Writing failed. Filename: %1"
+msgstr "Fehler beim Kopieren: Schreiben fehlgeschlagen: %1"
+
+#: fileaccess.cpp:1231
+msgid "Reading directory: "
+msgstr "Ordner wird eingelesen:"
+
+#: fileaccess.cpp:1355
+#, kde-format
+msgid "Listing directory: %1"
+msgstr "Ordner anzeigen: %1"
+
+#: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396
+msgid "&Cancel"
+msgstr "&Abbrechen"
+
+#: difftextwindow.cpp:403
+msgid "Line"
+msgstr "Zeile"
+
+#: difftextwindow.cpp:405
+msgid "Line not available"
+msgstr "Zeile nicht vorhanden"
+
+#: difftextwindow.cpp:1703 difftextwindow.cpp:1736
+msgid "Encoding:"
+msgstr "Kodierung:"
+
+#: difftextwindow.cpp:1759 kdiff3.cpp:831
+msgid "Top line"
+msgstr "Oberste Zeile"
+
+#: difftextwindow.cpp:1769
+msgid "End"
+msgstr "Ende"
+
+#: kdiff3.cpp:169
+msgid "Current Configuration:"
+msgstr "Aktuelle Einstellungen:"
+
+#: kdiff3.cpp:174
+msgid "Config Option Error:"
+msgstr "Fehler in der Einstellungsoption:"
+
+#: kdiff3.cpp:219
+msgid "Option --auto used, but no output file specified."
+msgstr "Option --auto verwendet, aber keine Ausgabedatei angegeben."
+
+#: kdiff3.cpp:369
+msgid "Option --auto ignored for directory comparison."
+msgstr "Option --auto wird beim Vergleich von Ordnern ignoriert."
+
+#: kdiff3.cpp:405
+msgid "Saving failed."
+msgstr "Speichern fehlgeschlagen."
+
+#: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214
+msgid "Opening of these files failed:"
+msgstr "Öffnen dieser Dateien ist fehlgeschlagen:"
+
+#: kdiff3.cpp:449
+msgid "File Open Error"
+msgstr "Fehler beim Dateiöffnen"
+
+#: kdiff3.cpp:477
+msgid "Opens documents for comparison..."
+msgstr "Dateien für Vergleich öffnen ..."
+
+#: kdiff3.cpp:479
+msgid "Reload"
+msgstr "Neu laden"
+
+#: kdiff3.cpp:482
+msgid "Saves the merge result. All conflicts must be solved!"
+msgstr ""
+"Sichern des Zusammenführergebnisses. Alle Konflikte müssen aufgelöst sein."
+
+#: kdiff3.cpp:484
+msgid "Saves the current document as..."
+msgstr "Speichert das aktuelle Dokument als ..."
+
+#: kdiff3.cpp:487
+msgid "Print the differences"
+msgstr "Unterschiede drucken"
+
+#: kdiff3.cpp:490
+msgid "Quits the application"
+msgstr "Beendet das Programm"
+
+#: kdiff3.cpp:492
+msgid "Cuts the selected section and puts it to the clipboard"
+msgstr "Schneidet die Auswahl aus und kopiert sie in die Zwischenablage"
+
+#: kdiff3.cpp:494
+msgid "Copies the selected section to the clipboard"
+msgstr "Kopiert den ausgewählten Bereich in die Zwischenablage"
+
+#: kdiff3.cpp:496
+msgid "Pastes the clipboard contents to current position"
+msgstr "Fügt den Inhalt der Zwischenablage an der aktuellen Position ein"
+
+#: kdiff3.cpp:498
+msgid "Select everything in current window"
+msgstr "Alles in aktuellem Fenster auswählen"
+
+#: kdiff3.cpp:500
+msgid "Search for a string"
+msgstr "Nach Text suchen"
+
+#: kdiff3.cpp:502
+msgid "Search again for the string"
+msgstr "Weitersuchen"
+
+#: kdiff3.cpp:507
+msgid "Enables/disables the statusbar"
+msgstr "Blendet die Statusleiste ein/aus"
+
+#: kdiff3.cpp:511
+msgid "Configure KDiff3..."
+msgstr "KDiff3 einrichten ..."
+
+#: kdiff3.cpp:532
+msgid "Go to Current Delta"
+msgstr "Zu aktuellem Unterschied springen"
+
+#: kdiff3.cpp:532
+msgid ""
+"Current\n"
+"Delta"
+msgstr ""
+"Aktueller\n"
+"Unterschied"
+
+#: kdiff3.cpp:534
+msgid "Go to First Delta"
+msgstr "Zum ersten Unterschied springen"
+
+#: kdiff3.cpp:534
+msgid ""
+"First\n"
+"Delta"
+msgstr ""
+"Erster\n"
+"Unterschied"
+
+#: kdiff3.cpp:536
+msgid "Go to Last Delta"
+msgstr "Zum letzten Unterschied springen"
+
+#: kdiff3.cpp:536
+msgid ""
+"Last\n"
+"Delta"
+msgstr ""
+"Letzter\n"
+"Unterschied"
+
+#: kdiff3.cpp:538
+msgid "(Skips white space differences when \"Show White Space\" is disabled.)"
+msgstr ""
+"(Unterschiede in Leerräumen werden übersprungen, wenn „Leerräume anzeigen“ "
+"ausgeschaltet ist.)"
+
+#: kdiff3.cpp:539
+msgid ""
+"(Does not skip white space differences even when \"Show White Space\" is "
+"disabled.)"
+msgstr ""
+"(Unterschiede in Leerräumen werden nicht übersprungen, auch wenn „Leerräume "
+"anzeigen“ ausgeschaltet ist.)"
+
+#: kdiff3.cpp:540
+msgid "Go to Previous Delta"
+msgstr "Zu vorigem Unterschied springen"
+
+#: kdiff3.cpp:540
+msgid ""
+"Prev\n"
+"Delta"
+msgstr ""
+"Voriger\n"
+"Unterschied"
+
+#: kdiff3.cpp:542
+msgid "Go to Next Delta"
+msgstr "Zu nächstem Unterschied springen"
+
+#: kdiff3.cpp:542
+msgid ""
+"Next\n"
+"Delta"
+msgstr ""
+"Nächster\n"
+"Unterschied"
+
+#: kdiff3.cpp:544
+msgid "Go to Previous Conflict"
+msgstr "Zu vorigem Konflikt springen"
+
+#: kdiff3.cpp:544
+msgid ""
+"Prev\n"
+"Conflict"
+msgstr ""
+"Voriger\n"
+"Konflikt"
+
+#: kdiff3.cpp:546
+msgid "Go to Next Conflict"
+msgstr "Zu nächstem Konflikt springen"
+
+#: kdiff3.cpp:546
+msgid ""
+"Next\n"
+"Conflict"
+msgstr ""
+"Nächster\n"
+"Konflikt"
+
+#: kdiff3.cpp:548
+msgid "Go to Previous Unsolved Conflict"
+msgstr "Zu vorigem ungelösten Konflikt springen"
+
+#: kdiff3.cpp:548
+msgid ""
+"Prev\n"
+"Unsolved"
+msgstr ""
+"Voriger\n"
+"Ungelöster"
+
+#: kdiff3.cpp:550
+msgid "Go to Next Unsolved Conflict"
+msgstr "Zu nächstem ungelöste Konflikt springen"
+
+#: kdiff3.cpp:550
+msgid ""
+"Next\n"
+"Unsolved"
+msgstr ""
+"Nächster\n"
+"Ungelöster"
+
+#: kdiff3.cpp:552
+msgid "Select Line(s) From A"
+msgstr "Zeile(n) von A wählen"
+
+#: kdiff3.cpp:552
+msgid ""
+"Choose\n"
+"A"
+msgstr ""
+"Wähle\n"
+"A"
+
+#: kdiff3.cpp:553
+msgid "Select Line(s) From B"
+msgstr "Zeile(n) von B wählen"
+
+#: kdiff3.cpp:553
+msgid ""
+"Choose\n"
+"B"
+msgstr ""
+"Wähle\n"
+"B"
+
+#: kdiff3.cpp:554
+msgid "Select Line(s) From C"
+msgstr "Zeile(n) von C wählen"
+
+#: kdiff3.cpp:554
+msgid ""
+"Choose\n"
+"C"
+msgstr ""
+"Wähle\n"
+"C"
+
+#: kdiff3.cpp:555
+msgid "Automatically Go to Next Unsolved Conflict After Source Selection"
+msgstr "Automatisch zu nächstem ungelösten Konflikt weiterspringen"
+
+#: kdiff3.cpp:555
+msgid ""
+"Auto\n"
+"Next"
+msgstr ""
+"Automatisch\n"
+"zum nächsten"
+
+#: kdiff3.cpp:557
+msgid "Show Space && Tabulator Characters for Differences"
+msgstr "Leer- und Tabulator-Zeichen in Unterschieden anzeigen"
+
+#: kdiff3.cpp:557
+msgid ""
+"White\n"
+"Characters"
+msgstr ""
+"Leer-\n"
+"räume"
+
+#: kdiff3.cpp:558
+msgid "Show White Space"
+msgstr "Leerräume anzeigen"
+
+#: kdiff3.cpp:558
+msgid ""
+"White\n"
+"Deltas"
+msgstr ""
+"Leerraum-\n"
+"Unterschiede"
+
+#: kdiff3.cpp:560
+msgid "Show Line Numbers"
+msgstr "Zeilennummern anzeigen"
+
+#: kdiff3.cpp:560
+msgid ""
+"Line\n"
+"Numbers"
+msgstr ""
+"Zeilen-\n"
+"nummern"
+
+#: kdiff3.cpp:561
+msgid "Choose A Everywhere"
+msgstr "Für alle A wählen"
+
+#: kdiff3.cpp:562
+msgid "Choose B Everywhere"
+msgstr "Für alle B wählen"
+
+#: kdiff3.cpp:563
+msgid "Choose C Everywhere"
+msgstr "Für alle C wählen"
+
+#: kdiff3.cpp:564
+msgid "Choose A for All Unsolved Conflicts"
+msgstr "Für alle ungelösten Konflikte A wählen"
+
+#: kdiff3.cpp:565
+msgid "Choose B for All Unsolved Conflicts"
+msgstr "Für alle ungelösten Konflikte B wählen"
+
+#: kdiff3.cpp:566
+msgid "Choose C for All Unsolved Conflicts"
+msgstr "Für alle ungelösten Konflikte C wählen"
+
+#: kdiff3.cpp:567
+msgid "Choose A for All Unsolved Whitespace Conflicts"
+msgstr "Für alle ungelösten Leerraum-Konflikte A wählen"
+
+#: kdiff3.cpp:568
+msgid "Choose B for All Unsolved Whitespace Conflicts"
+msgstr "Für alle ungelösten Leerraum-Konflikte B wählen"
+
+#: kdiff3.cpp:569
+msgid "Choose C for All Unsolved Whitespace Conflicts"
+msgstr "Für alle ungelösten Leerraum-Konflikte C wählen"
+
+#: kdiff3.cpp:570
+msgid "Automatically Solve Simple Conflicts"
+msgstr "Einfache Konflikte automatisch lösen"
+
+#: kdiff3.cpp:571
+msgid "Set Deltas to Conflicts"
+msgstr "Alle Unterschiede zu Konflikten machen"
+
+#: kdiff3.cpp:572
+msgid "Run Regular Expression Auto Merge"
+msgstr "Zusammenführung über regulären Ausdruck starten"
+
+#: kdiff3.cpp:573
+msgid "Automatically Solve History Conflicts"
+msgstr "Verlauf-Konflikte automatisch auflösen"
+
+#: kdiff3.cpp:574
+msgid "Split Diff At Selection"
+msgstr "Unterschied bei der Auswahlsmarkierung trennen"
+
+#: kdiff3.cpp:575
+msgid "Join Selected Diffs"
+msgstr "Markierte Unterschiede verbinden"
+
+#: kdiff3.cpp:577
+msgid "Show Window A"
+msgstr "Fenster A anzeigen"
+
+#: kdiff3.cpp:578
+msgid "Show Window B"
+msgstr "Fenster B anzeigen"
+
+#: kdiff3.cpp:579
+msgid "Show Window C"
+msgstr "Fenster C anzeigen"
+
+#: kdiff3.cpp:580 kdiff3.cpp:591
+msgid "Focus Next Window"
+msgstr "Nächstes Fenster aktivieren"
+
+#: kdiff3.cpp:582
+msgid "Normal Overview"
+msgstr "Normale Übersicht"
+
+#: kdiff3.cpp:583
+msgid "A vs. B Overview"
+msgstr "A/B-Übersicht"
+
+#: kdiff3.cpp:584
+msgid "A vs. C Overview"
+msgstr "A/C-Übersicht"
+
+#: kdiff3.cpp:585
+msgid "B vs. C Overview"
+msgstr "B/C-Übersicht"
+
+#: kdiff3.cpp:586
+msgid "Word Wrap Diff Windows"
+msgstr "Zeilenumbruch für Vergleichsanzeige"
+
+#: kdiff3.cpp:587
+msgid "Add Manual Diff Alignment"
+msgstr "Manuelle Ausrichtung hinzufügen"
+
+#: kdiff3.cpp:588
+msgid "Clear All Manual Diff Alignments"
+msgstr "Alle manuellen Ausrichtungen entfernen"
+
+#: kdiff3.cpp:593
+msgid "Focus Prev Window"
+msgstr "Vorheriges Fenster aktivieren"
+
+#: kdiff3.cpp:594
+msgid "Toggle Split Orientation"
+msgstr "Ausrichtung der Fensterteilung umschalten"
+
+#: kdiff3.cpp:596
+msgid "Dir && Text Split Screen View"
+msgstr "Ordner- && Textansicht teilen sich Hauptfenster"
+
+#: kdiff3.cpp:598
+msgid "Toggle Between Dir && Text View"
+msgstr "Zwischen Ordner- && Textansicht umschalten"
+
+#: kdiff3.cpp:654 pdiff.cpp:1812
+msgid "The merge result hasn't been saved."
+msgstr "Das Zusammenführungsergebnis wurde nicht gespeichert."
+
+#: kdiff3.cpp:656
+msgid "Save && Quit"
+msgstr "Speichern && Beenden"
+
+#: kdiff3.cpp:657
+msgid "Quit Without Saving"
+msgstr "Ohne zu speichern beenden"
+
+#: kdiff3.cpp:665 pdiff.cpp:1823
+msgid "Saving the merge result failed."
+msgstr "Speichern des Zusammenführungsergebnisses ist fehlgeschlagen."
+
+#: kdiff3.cpp:676 pdiff.cpp:1078
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort?"
+msgstr ""
+"Sie führen eine Ordnerzusammenführung durch. Sind Sie sicher, dass Sie diese "
+"beenden möchten?"
+
+#: kdiff3.cpp:701
+msgid "Saving file..."
+msgstr "Datei wird gespeichert ..."
+
+#: kdiff3.cpp:718
+msgid "Saving file with a new filename..."
+msgstr "Datei wird unter neuem Namen gespeichert ..."
+
+#: kdiff3.cpp:781
+msgid "Printing not implemented."
+msgstr "Eine Druckfunktion ist zurzeit noch nicht verfügbar."
+
+#: kdiff3.cpp:815
+msgid "Printing..."
+msgstr "Druckvorgang läuft ..."
+
+#: kdiff3.cpp:956
+msgid "Selection"
+msgstr "Auswahl"
+
+#: kdiff3.cpp:982
+msgid "Printing completed."
+msgstr "Drucken beendet."
+
+#: kdiff3.cpp:986
+msgid "Printing aborted."
+msgstr "Drucken abgebrochen."
+
+#: kdiff3.cpp:993
+msgid "Exiting..."
+msgstr "Wird beendet ..."
+
+#: kdiff3.cpp:1006
+msgid "Toggling toolbar..."
+msgstr "Werkzeugleiste anzeigen/ausblenden ..."
+
+#: kdiff3.cpp:1027
+msgid "Toggle the statusbar..."
+msgstr "Statusleiste anzeigen/ausblenden ..."
+
+#: smalldialogs.cpp:58
+msgid "A (Base):"
+msgstr "A (Basis):"
+
+#: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99
+#: smalldialogs.cpp:142
+msgid "File..."
+msgstr "Datei ..."
+
+#: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101
+#: smalldialogs.cpp:144
+msgid "Dir..."
+msgstr "Ordner ..."
+
+#: smalldialogs.cpp:93
+msgid "C (Optional):"
+msgstr "C (Optional):"
+
+#: smalldialogs.cpp:116
+msgid "Swap/Copy Names ..."
+msgstr "Namen tauschen/kopieren ..."
+
+#: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123
+#, kde-format
+msgid "Swap %1<->%2"
+msgstr "%1<->%2 tauschen"
+
+#: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126
+#, kde-format
+msgid "Copy %1->Output"
+msgstr "%1->Ziel kopieren"
+
+#: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129
+#, kde-format
+msgid "Swap %1<->Output"
+msgstr "%1<->Ziel tauschen"
+
+#: smalldialogs.cpp:136
+msgid "Output (optional):"
+msgstr "Ziel (optional):"
+
+#: smalldialogs.cpp:168
+msgid "Configure..."
+msgstr "Einrichten ..."
+
+#: smalldialogs.cpp:174
+msgid "&OK"
+msgstr "&OK"
+
+#: smalldialogs.cpp:362
+msgid "Search text:"
+msgstr "Suchtext:"
+
+#: smalldialogs.cpp:369
+msgid "Case sensitive"
+msgstr "Groß-/Kleinschreibung beachten"
+
+#: smalldialogs.cpp:372
+msgid "Search A"
+msgstr "In A suchen"
+
+#: smalldialogs.cpp:377
+msgid "Search B"
+msgstr "In B suchen"
+
+#: smalldialogs.cpp:382
+msgid "Search C"
+msgstr "In C suchen"
+
+#: smalldialogs.cpp:387
+msgid "Search output"
+msgstr "Im Ergebnis suchen"
+
+#: smalldialogs.cpp:392
+msgid "&Search"
+msgstr "&Suchen"
+
+#: smalldialogs.cpp:409
+msgid "Regular Expression Tester"
+msgstr "Testhilfe für reguläre Ausdrücke"
+
+#: smalldialogs.cpp:414 optiondialog.cpp:936
+msgid "Auto merge regular expression:"
+msgstr "Regulärer Ausdrück für automatische Zusammenführung:"
+
+#: smalldialogs.cpp:422
+msgid "Example auto merge line:"
+msgstr "Beispielzeile für automatische Zusammenführung:"
+
+#: smalldialogs.cpp:424
+msgid "To test auto merge, copy a line as used in your files."
+msgstr ""
+"Um die automatische Zusammeführung zu testen, kopieren Sie eine Zeile aus "
+"Ihrer Datei."
+
+#: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494
+msgid "Match result:"
+msgstr "Übereinstimmungsergebnis:"
+
+#: smalldialogs.cpp:441 optiondialog.cpp:962
+msgid "History start regular expression:"
+msgstr "Regulärer Ausdruck für Verlauf-Start:"
+
+#: smalldialogs.cpp:449
+msgid "Example history start line (with leading comment):"
+msgstr "Beispielzeile für Verlauf-Startzeile (mit Kommentarzeichen):"
+
+#: smalldialogs.cpp:451
+msgid ""
+"Copy a history start line as used in your files,\n"
+"including the leading comment."
+msgstr ""
+"Kopieren Sie eine Verlauf-Startzeile aus Ihren Dateien,\n"
+"inklusive der Kommentarzeichen am Anfang der Zeile."
+
+#: smalldialogs.cpp:469 optiondialog.cpp:972
+msgid "History entry start regular expression:"
+msgstr "Regulärer Ausdruck für Verlauf-Eintrag-Startzeile:"
+
+#: smalldialogs.cpp:477
+msgid "History sort key order:"
+msgstr "Verlauf-Sortierschlüsselreihenfolge:"
+
+#: smalldialogs.cpp:485
+msgid "Example history entry start line (without leading comment):"
+msgstr "Beispiel-Verlaufeintragstartzeile (ohne Kommentarzeichen):"
+
+#: smalldialogs.cpp:487
+msgid ""
+"Copy a history entry start line as used in your files,\n"
+"but omit the leading comment."
+msgstr ""
+"Kopieren Sie eine Verlaufeintragsstartzeile aus Ihren Dateien,\n"
+"wobei Sie hier die Kommentarzeichen am Anfang weglassen."
+
+#: smalldialogs.cpp:501
+msgid "Sort key result:"
+msgstr "Sortierschlüsselergebnis:"
+
+#: smalldialogs.cpp:508
+msgid "OK"
+msgstr "OK"
+
+#: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583
+msgid "Match success."
+msgstr "Übereinstimmung erfolgreich."
+
+#: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589
+msgid "Match failed."
+msgstr "Übereinstimmung fehlgeschlagen."
+
+#: smalldialogs.cpp:574
+msgid "Opening and closing parentheses do not match in regular expression."
+msgstr ""
+"Öffnende und schließende runde Klammern in regulärem Ausdruck passen nicht "
+"zusammen."
+
+#: optiondialog.cpp:367
+msgid "Unicode, 8 bit"
+msgstr "Unicode, 8 bit"
+
+#: optiondialog.cpp:368
+msgid "Unicode"
+msgstr "Unicode"
+
+#: optiondialog.cpp:369
+msgid "Latin1"
+msgstr "Latin1"
+
+#: optiondialog.cpp:388
+msgid "Change this if non-ASCII characters are not displayed correctly."
+msgstr ""
+"Falls die speziellen Zeichen Ihrer Sprache nicht korrekt dargestellt werden, "
+"können Sie diesen Wert ändern."
+
+#: optiondialog.cpp:465
+msgid "Configure"
+msgstr "Einrichten"
+
+#: optiondialog.cpp:531
+msgid "Font"
+msgstr "Schriftart"
+
+#: optiondialog.cpp:532
+msgid "Editor & Diff Output Font"
+msgstr "Schrift für Editor & Vergleichsfenster"
+
+#: optiondialog.cpp:556
+msgid "Italic font for deltas"
+msgstr "Kursivschrift bei Unterschieden"
+
+#: optiondialog.cpp:559
+msgid ""
+"Selects the italic version of the font for differences.\n"
+"If the font doesn't support italic characters, then this does nothing."
+msgstr ""
+"Unterschiede werden kursiv angezeigt. Dies funktioniert\n"
+"nicht, wenn Ihre Schriftart keine kursiven Zeichen unterstützt."
+
+#: optiondialog.cpp:568
+msgid "Color"
+msgstr "Farbe"
+
+#: optiondialog.cpp:569
+msgid "Colors Settings"
+msgstr "Farbeinstellungen"
+
+#: optiondialog.cpp:588
+msgid "Editor and Diff Views:"
+msgstr "Editor und Unterschiedsansicht:"
+
+#: optiondialog.cpp:596
+msgid "Foreground color:"
+msgstr "Vordergrundfarbe:"
+
+#: optiondialog.cpp:603
+msgid "Background color:"
+msgstr "Hintergrundfarbe:"
+
+#: optiondialog.cpp:612
+msgid "Diff background color:"
+msgstr "Hintergrundfarbe bei Unterschieden:"
+
+#: optiondialog.cpp:620
+msgid "Color A:"
+msgstr "Farbe für A:"
+
+#: optiondialog.cpp:628
+msgid "Color B:"
+msgstr "Farbe für B:"
+
+#: optiondialog.cpp:636
+msgid "Color C:"
+msgstr "Farbe für C:"
+
+#: optiondialog.cpp:643
+msgid "Conflict color:"
+msgstr "Farbe für Konflikte:"
+
+#: optiondialog.cpp:651
+msgid "Current range background color:"
+msgstr "Hintergrundfarbe für aktuellen Bereich:"
+
+#: optiondialog.cpp:659
+msgid "Current range diff background color:"
+msgstr "Hintergrundfarbe für Unterschiede im aktuellen Bereich:"
+
+#: optiondialog.cpp:666
+msgid "Color for manually aligned difference ranges:"
+msgstr "Farbe für manuell ausgerichtete Unterschiede:"
+
+#: optiondialog.cpp:672
+msgid "Directory Comparison View:"
+msgstr "Ordnervergleichsansicht:"
+
+#: optiondialog.cpp:678
+msgid "Newest file color:"
+msgstr "Farbe für neueste Datei:"
+
+#: optiondialog.cpp:682
+msgid ""
+"Changing this color will only be effective when starting the next directory "
+"comparison."
+msgstr ""
+"Änderung dieser Farbe wird erst beim Start des nächsten Ordnervergleichs "
+"wirksam."
+
+#: optiondialog.cpp:687
+msgid "Oldest file color:"
+msgstr "Farbe für älteste Datei:"
+
+#: optiondialog.cpp:695
+msgid "Middle age file color:"
+msgstr "Farbe für mittelalte Datei:"
+
+#: optiondialog.cpp:703
+msgid "Color for missing files:"
+msgstr "Farbe für fehlende Datei:"
+
+#: optiondialog.cpp:717
+msgid "Editor"
+msgstr "Editor"
+
+#: optiondialog.cpp:718
+msgid "Editor Behavior"
+msgstr "Verhalten des Editors"
+
+#: optiondialog.cpp:732
+msgid "Tab inserts spaces"
+msgstr "Tabulator fügt Leerzeichen ein"
+
+#: optiondialog.cpp:735
+msgid ""
+"On: Pressing tab generates the appropriate number of spaces.\n"
+"Off: A tab character will be inserted."
+msgstr ""
+"Falls aktiv wird bei Betätigen der Tabulator-Taste die passende Anzahl\n"
+"Leerzeichen eingefügt. Sonst wird ein Tabulatorzeichen eingefügt."
+
+#: optiondialog.cpp:741
+msgid "Tab size:"
+msgstr "Tabulator-Länge:"
+
+#: optiondialog.cpp:747
+msgid "Auto indentation"
+msgstr "Automatisch einrücken"
+
+#: optiondialog.cpp:750
+msgid "On: The indentation of the previous line is used for a new line.\n"
+msgstr ""
+"Wenn aktiv, wird die Einrückung der vorigen Zeile bei neuen Zeilen "
+"übernommen.\n"
+
+#: optiondialog.cpp:754
+msgid "Auto copy selection"
+msgstr "Auswahl automatisch kopieren"
+
+#: optiondialog.cpp:757
+msgid ""
+"On: Any selection is immediately written to the clipboard.\n"
+"Off: You must explicitely copy e.g. via Ctrl-C."
+msgstr ""
+"Falls aktiv, wird die Auswahl automatisch sofort in die Zwischenablage "
+"kopiert.\n"
+"Sonst müssen Sie sie explizit kopieren, z. B. mit Strg-C."
+
+#: optiondialog.cpp:768
+msgid "Dos/Windows"
+msgstr "Dos/Windows"
+
+#: optiondialog.cpp:769
+msgid "Autodetect"
+msgstr "Automatisch feststellen"
+
+#: optiondialog.cpp:772
+msgid ""
+"Sets the line endings for when an edited file is saved.\n"
+"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A"
+msgstr ""
+"Legt die Kodierung für Zeilenenden beim Speichern fest.\n"
+"DOS/Windows: CR+LF; Unix: LF; mit CR=0D, LF=0A"
+
+#: optiondialog.cpp:784
+msgid "Diff"
+msgstr "Diff"
+
+#: optiondialog.cpp:785
+msgid "Diff Settings"
+msgstr "Vergleichseinstellungen"
+
+# Is part of another sentence, thus no full stop
+#: optiondialog.cpp:809
+msgid "Treat as white space."
+msgstr "Wie Leerräume behandeln"
+
+#: optiondialog.cpp:811
+msgid "Ignore numbers"
+msgstr "Zahlen ignorieren"
+
+#: optiondialog.cpp:814
+msgid ""
+"Ignore number characters during line matching phase. (Similar to Ignore "
+"white space.)\n"
+"Might help to compare files with numeric data."
+msgstr ""
+"Zahlen werden während des Vergleichs wie Leerräume behandelt.\n"
+"Dies kann sinnvoll sein, wenn Dateien viele Zahlen enthalten."
+
+#: optiondialog.cpp:819
+msgid "Ignore C/C++ comments"
+msgstr "C/C++-Kommentare ignorieren"
+
+#: optiondialog.cpp:821
+msgid "Treat C/C++ comments like white space."
+msgstr "C/C++-Kommentare wie Leerräume behandeln."
+
+#: optiondialog.cpp:825
+msgid "Ignore case"
+msgstr "Unterschiede bei Groß- und Kleinschreibung ignorieren"
+
+#: optiondialog.cpp:828
+msgid "Treat case differences like white space changes. ('a'<=>'A')"
+msgstr ""
+"Unterschiede bei Groß- und Kleinschreibung wie Änderungen in "
+"Leerräumenbehandeln. („a“<=>„A“)"
+
+#: optiondialog.cpp:832
+msgid "Preprocessor command:"
+msgstr "Vorverarbeitungsbefehl:"
+
+#: optiondialog.cpp:836
+msgid "User defined pre-processing. (See the docs for details.)"
+msgstr "Benutzerdefinierbare Vorverarbeitung: (Siehe Handbuch für Details.)"
+
+#: optiondialog.cpp:839
+msgid "Line-matching preprocessor command:"
+msgstr "Vorverarbeitungsbefehl nur für Zeilenabgleich:"
+
+#: optiondialog.cpp:843
+msgid ""
+"This pre-processor is only used during line matching.\n"
+"(See the docs for details.)"
+msgstr ""
+"Dieser Vorverarbeitungsbefehl wirkt nur in der Phase des Zeilenabgleichs.\n"
+"(Siehe Handbuch für Details.)"
+
+#: optiondialog.cpp:846
+msgid "Try hard (slower)"
+msgstr "Aufwendig suchen (langsamer)"
+
+#: optiondialog.cpp:849
+msgid ""
+"Enables the --minimal option for the external diff.\n"
+"The analysis of big files will be much slower."
+msgstr ""
+"Der Vergleichsalgorithmus versucht aufwendig nach einem kleinem Satz von "
+"Änderungen zu suchen. \n"
+"Für sehr große Dateien kann der Vergleich viel langsamer sein."
+
+#: optiondialog.cpp:854
+msgid "Align B and C for 3 input files"
+msgstr "B und C bei drei Eingabedateien abgleichen"
+
+#: optiondialog.cpp:857
+msgid ""
+"Try to align B and C when comparing or merging three input files.\n"
+"Not recommended for merging because merge might get more complicated.\n"
+"(Default is off.)"
+msgstr ""
+"Versuchen, B und C abzugleichen, wenn drei Dateien verglichen oder "
+"zusammengeführt werden.\n"
+"Dies ist für Zusammenführungen nicht empfohlen, da diese so komplizierter "
+"werden können.\n"
+"(Voreingestellt ist dies deaktiviert.)"
+
+#: optiondialog.cpp:870
+msgid "Merge Settings"
+msgstr "Einstellungen für das Zusammenführen"
+
+#: optiondialog.cpp:885
+msgid "Auto advance delay (ms):"
+msgstr "Verzögerung für das automatische Weiterspringen (ms):"
+
+#: optiondialog.cpp:890
+msgid ""
+"When in Auto-Advance mode the result of the current selection is shown \n"
+"for the specified time, before jumping to the next conflict. Range: 0-2000 ms"
+msgstr ""
+"Wenn automatisches Weiterspringen aktiviert ist, wird das Ergebnis der "
+"letzten Auswahl\n"
+"für diese Dauer angezeigt, bevor weitergesprungen wird. (0-2000 ms)"
+
+#: optiondialog.cpp:895
+msgid "Show info dialogs"
+msgstr "Infofenster anzeigen"
+
+#: optiondialog.cpp:897
+msgid "Show a dialog with information about the number of conflicts."
+msgstr "Fenster mit Informationen über die Anzahl der Konflikte anzeigen."
+
+#: optiondialog.cpp:900
+msgid "White space 2-file merge default:"
+msgstr "Leerraum-Autoauswahl bei 2 Dateien:"
+
+#: optiondialog.cpp:904 optiondialog.cpp:917
+msgid "Manual Choice"
+msgstr "Manuelle Auswahl"
+
+#: optiondialog.cpp:908 optiondialog.cpp:922
+msgid ""
+"Allow the merge algorithm to automatically select an input for white-space-"
+"only changes."
+msgstr ""
+"Bei Datei-Zusammenführungen wird automatisch diese Vorauswahl für "
+"ausschließlich Leerraum-Konflikte gewählt."
+
+#: optiondialog.cpp:913
+msgid "White space 3-file merge default:"
+msgstr "Leerraum-Autoauswahl bei 3 Dateien:"
+
+#: optiondialog.cpp:927
+msgid "Automatic Merge Regular Expression"
+msgstr "Regulärer Ausdruck für automatische Zusammenführung"
+
+#: optiondialog.cpp:940
+msgid ""
+"Regular expression for lines where KDiff3 should automatically choose one "
+"source.\n"
+"When a line with a conflict matches the regular expression then\n"
+"- if available - C, otherwise B will be chosen."
+msgstr ""
+"Regulärer Ausdruck für Zeilen, für die KDiff3 automatisch eine Quelle "
+"auswählen soll.\n"
+"Wenn eine Konfliktzeile auf diesen regulären Ausdruck passt, wird\n"
+"– sofern verfügbar – C, ansonsten B ausgewählt."
+
+#: optiondialog.cpp:946
+msgid "Run regular expression auto merge on merge start"
+msgstr ""
+"Zusammenführung über regulären Ausdruck beim Start einer Zusammenführung "
+"durchführen"
+
+#: optiondialog.cpp:948
+msgid ""
+"Run the merge for auto merge regular expressions\n"
+"immediately when a merge starts.\n"
+msgstr ""
+"Führe die Zusammenführung über reguläre Ausdrücke sofort\n"
+"beim Start einer Zusammenführung durch.\n"
+
+#: optiondialog.cpp:953
+msgid "Version Control History Merging"
+msgstr "Versionsverwaltungs-Verlauf-Zusammenführung"
+
+#: optiondialog.cpp:966
+msgid ""
+"Regular expression for the start of the version control history entry.\n"
+"Usually this line contains the \"$Log$\" keyword.\n"
+"Default value: \".*\\$Log.*\\$.*\""
+msgstr ""
+"Regulärer Ausdruck für die Startzeile des Versionsverwaltungs-Verlaufs.\n"
+"Normalerweise enthält diese Zeile das Schlüsselwort „$Log$“.\n"
+"Voreinstellung: „.*\\$Log.*\\$.*“"
+
+#: optiondialog.cpp:984
+msgid ""
+"A version control history entry consists of several lines.\n"
+"Specify the regular expression to detect the first line (without the leading "
+"comment).\n"
+"Use parentheses to group the keys you want to use for sorting.\n"
+"If left empty, then KDiff3 assumes that empty lines separate history "
+"entries.\n"
+"See the documentation for details."
+msgstr ""
+"Ein Versionsverwaltungs-Verlauf-Eintrag besteht aus mehreren Zeilen.\n"
+"Geben Sie einen regulären Ausdruck an, um die erste Zeile (ohne die\n"
+"voranstehenden Kommentarzeichen) zu erkennen.\n"
+"Verwenden Sie runde Klammern um Sortierschlüssel zu gruppieren.\n"
+"Wenn leer gelassen, nimmt KDiff3 an, dass die Verlauf-Einträge durch "
+"Leerzeilen\n"
+"getrennt sind. (Siehe Handbuch für Details.)"
+
+#: optiondialog.cpp:992
+msgid "History merge sorting"
+msgstr "Sortierte Verlauf-Zusammenführung"
+
+#: optiondialog.cpp:994
+msgid "Sort version control history by a key."
+msgstr "Schlüsselbasierte Sortierung der Versionsverwaltungs-Verlauf-Einträge"
+
+#: optiondialog.cpp:1004
+msgid "History entry start sort key order:"
+msgstr "Sortierschlüsselreihenfolge für Verlauf-Eintragsstart:"
+
+#: optiondialog.cpp:1008
+msgid ""
+"Each pair of parentheses used in the regular expression for the history "
+"start entry\n"
+"groups a key that can be used for sorting.\n"
+"Specify the list of keys (that are numbered in order of occurrence\n"
+"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n"
+"If left empty, then no sorting will be done.\n"
+"See the documentation for details."
+msgstr ""
+"Jedes Paar runder Klammern im regulären Ausdruck des History-Start-Eintrags\n"
+"gruppiert einen Schlüssel, der für die Sortierung verwendet werden kann.\n"
+"Geben Sie eine Liste der Schlüssel an (nummeriert in der "
+"Auftrittsreihenfolge,\n"
+"mit 1 beginnend), wobei das Komma als Trennzeichen verwendet wird. (z. B.: "
+"„4,5,6,1,2,3,7“).\n"
+"Wenn der Eintrag leer ist, wird keine Sortierung durchgeführt.\n"
+"(Siehe Handbuch für Details)."
+
+#: optiondialog.cpp:1019
+msgid "Merge version control history on merge start"
+msgstr ""
+"Versionsverwaltungs-Verlauf beim Start einer Zusammenführung zusammenführen"
+
+#: optiondialog.cpp:1021
+msgid "Run version control history automerge on merge start."
+msgstr ""
+"Starte Versionsverwaltungs-Verlauf-Zusammenführung beim Start einer "
+"Zusammenführung"
+
+#: optiondialog.cpp:1025
+msgid "Max number of history entries:"
+msgstr "Maximale Anzahl Verlauf-Einträge:"
+
+#: optiondialog.cpp:1028
+msgid "Cut off after specified number. Use -1 for infinite number of entries."
+msgstr "Nach angegebener Anzahl abschneiden. -1 bedeuted unbegrenzt."
+
+#: optiondialog.cpp:1032
+msgid "Test your regular expressions"
+msgstr "Testen Sie Ihre regulären Ausdrücke"
+
+#: optiondialog.cpp:1037
+msgid "Irrelevant merge command:"
+msgstr "Befehl bei irrelevanter Zusammenführung:"
+
+#: optiondialog.cpp:1041
+msgid ""
+"If specified this script is run after automerge\n"
+"when no other relevant changes were detected.\n"
+"Called with the parameters: filename1 filename2 filename3"
+msgstr ""
+"Wenn spezifiziert, wird dieser Befehl nach einer automatischen "
+"Zusammenführung \n"
+"ausgeführt, wenn keine relevanten Änderungen erkannt wurden.\n"
+"Der Aufruf erfolgt mit den Parametern: Dateiname1 Dateiname2 Dateiname3"
+
+#: optiondialog.cpp:1047
+msgid "Auto save and quit on merge without conflicts"
+msgstr ""
+"Automatisch speichern und beenden, wenn ohne Konflike zusammengeführt werden "
+"kann"
+
+#: optiondialog.cpp:1050
+msgid ""
+"If KDiff3 was started for a file-merge from the command line and all\n"
+"conflicts are solvable without user interaction then automatically save and "
+"quit.\n"
+"(Similar to command line option \"--auto\".)"
+msgstr ""
+"Automatisch speichern und beenden, wenn KDiff3 für eine "
+"Dateizusammenführung\n"
+"von der Befehlszeile gestartet wurde und alle Konflikte automatisch ohne "
+"Benutzerinteraktion aufzulösen sind.\n"
+"(Ähnlich zur Befehlszeilen-Option „--auto“)."
+
+#: optiondialog.cpp:1061 optiondialog.cpp:1062
+msgid "Directory"
+msgstr "Ordner"
+
+#: optiondialog.cpp:1075
+msgid "Recursive directories"
+msgstr "Unterordner einbeziehen"
+
+#: optiondialog.cpp:1077
+msgid "Whether to analyze subdirectories or not."
+msgstr "Falls aktiv, werden auch Unterordner eingelesen."
+
+#: optiondialog.cpp:1079
+msgid "File pattern(s):"
+msgstr "Datei-Muster:"
+
+#: optiondialog.cpp:1084
+msgid ""
+"Pattern(s) of files to be analyzed. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Muster der zu analysierenden Dateien. \n"
+"Jokerzeichen: „*“ und „?“\n"
+"Es können mehrere Muster getrennt durch „;“ angegeben werden."
+
+#: optiondialog.cpp:1090
+msgid "File-anti-pattern(s):"
+msgstr "Datei-Ausschlussmuster:"
+
+#: optiondialog.cpp:1095
+msgid ""
+"Pattern(s) of files to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Muster der auszuschließenden Dateien. \n"
+"Jokerzeichen: „*“ und „?“\n"
+"Es können mehrere Muster getrennt durch „;“ angegeben werden."
+
+#: optiondialog.cpp:1101
+msgid "Dir-anti-pattern(s):"
+msgstr "Ordner-Ausschlussmuster:"
+
+#: optiondialog.cpp:1106
+msgid ""
+"Pattern(s) of directories to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Muster der auszuschließenden Ordner. \n"
+"Jokerzeichen: „*“ und „?“\n"
+"Es können mehrere Muster getrennt durch „;“ angegeben werden."
+
+#: optiondialog.cpp:1112
+msgid "Use .cvsignore"
+msgstr ".cvsignore verwenden"
+
+#: optiondialog.cpp:1115
+msgid ""
+"Extends the antipattern to anything that would be ignored by CVS.\n"
+"Via local \".cvsignore\" files this can be directory specific."
+msgstr ""
+"Erweitert die Ausschlussmuster um alles, was auch CVS ignorieren würde.\n"
+"Mit lokalen „.cvsignore“-Dateien kann dies für einzelne Ordner eingestellt "
+"werden."
+
+#: optiondialog.cpp:1120
+msgid "Find hidden files and directories"
+msgstr "Versteckte Dateien und Ordner einbeziehen"
+
+#: optiondialog.cpp:1123
+msgid "Finds files and directories with the hidden attribute."
+msgstr "Bezieht versteckte Dateien und Ordner mit ein."
+
+#: optiondialog.cpp:1125
+msgid "Finds files and directories starting with '.'."
+msgstr "Bezieht versteckte Dateien und Ordner, die mit „.“ beginnen, mit ein."
+
+#: optiondialog.cpp:1129
+msgid "Follow file links"
+msgstr "Datei-Verknüpfungen folgen"
+
+#: optiondialog.cpp:1132
+msgid ""
+"On: Compare the file the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+"Falls aktiv werden die Dateien auf die die Verknüpfung verweist, "
+"verglichen.\n"
+"Sonst nur die Verknüpfungen selbst."
+
+#: optiondialog.cpp:1137
+msgid "Follow directory links"
+msgstr "Ordner-Verknüpfungen folgen"
+
+#: optiondialog.cpp:1140
+msgid ""
+"On: Compare the directory the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+"Falls aktiv werden die Ordner, auf die eine Verknüpfung zeigt, verglichen.\n"
+"Sonst nur die Verknüpfungen."
+
+#: optiondialog.cpp:1156
+msgid "Case sensitive filename comparison"
+msgstr "Groß-/kleinschreibung bei Dateinamen"
+
+#: optiondialog.cpp:1159
+msgid ""
+"The directory comparison will compare files or directories when their names "
+"match.\n"
+"Set this option if the case of the names must match. (Default for Windows is "
+"off, otherwise on.)"
+msgstr ""
+"Der Ordnervergleich vergleicht Dateien und Ordner wenn deren Namen gleich "
+"sind.\n"
+"Aktivieren Sie diese Einstellung, wenn es auch auf Groß-/Kleinschreibung im "
+"Dateinamen ankommt. (Voreinstellung für Windows ist aus, sonst ein.)"
+
+#: optiondialog.cpp:1163
+msgid "File Comparison Mode"
+msgstr "Dateivergleichsmethode"
+
+#: optiondialog.cpp:1169
+msgid "Binary comparison"
+msgstr "Binärvergleich"
+
+#: optiondialog.cpp:1170
+msgid "Binary comparison of each file. (Default)"
+msgstr "Binärvergleich aller Dateien (Voreinstellung)"
+
+#: optiondialog.cpp:1173
+msgid "Full analysis"
+msgstr "Vollständige Analyse"
+
+#: optiondialog.cpp:1174
+msgid ""
+"Do a full analysis and show statistics information in extra columns.\n"
+"(Slower than a binary comparison, much slower for binary files.)"
+msgstr ""
+"Vollständige Analyse durchführen und Statistik-Information in eigenen "
+"Spalten anzeigen.\n"
+"(Langsamer als Binärvergleich, viel langsamer bei Binärdateien.)"
+
+#: optiondialog.cpp:1178
+msgid "Trust the size and modification date (unsafe)"
+msgstr "Änderungsdatum vertrauen (unsicher)"
+
+#: optiondialog.cpp:1179
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"Files with equal contents but different modification dates will appear as "
+"different.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"Annehmen, dass Dateien identisch sind, wenn das Änderungsdatum und die Größe "
+"übereinstimmen.\n"
+"Dateien mit gleichem Inhalt aber unterschiedlichem Änderungsdatum werden als "
+"unterschiedliche angezeigt.\n"
+"Hilfreich bei großen Ordnern oder langsamen Verbindungen."
+
+#: optiondialog.cpp:1184
+msgid ""
+"Trust the size and date, but use binary comparison if date does not match "
+"(unsafe)"
+msgstr ""
+"Größe und Datum vertrauen, aber binär vergleichen, wenn Datum nicht "
+"übereinstimmt (unsicher)"
+
+#: optiondialog.cpp:1185
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"If the dates are not equal but the sizes are, use binary comparison.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"Annehmen, dass Dateien identisch sind, wenn das Änderungsdatum und die Größe "
+"übereinstimmen.\n"
+"Unterscheiden sich die Daten, aber die Dateigrößen sind gleich, wird binär "
+"verglichen.\n"
+"Hilfreich bei großen Ordnern oder langsamen Verbindungen."
+
+#: optiondialog.cpp:1190
+msgid "Trust the size (unsafe)"
+msgstr "Größe vertrauen (unsicher)"
+
+#: optiondialog.cpp:1191
+msgid ""
+"Assume that files are equal if their file lengths are equal.\n"
+"Useful for big directories or slow networks when the date is modified during "
+"download."
+msgstr ""
+"Annehmen, dass Dateien identisch sind, wenn die Größe übereinstimmt.\n"
+"Hilfreich bei großen Ordnern oder langsamen Verbindungen, wenn das "
+"Änderungsdatum beim Kopieren modifiziert wird."
+
+#: optiondialog.cpp:1199
+msgid "Synchronize directories"
+msgstr "Ordner abgleichen"
+
+#: optiondialog.cpp:1202
+msgid ""
+"Offers to store files in both directories so that\n"
+"both directories are the same afterwards.\n"
+"Works only when comparing two directories without specifying a destination."
+msgstr ""
+"Dateien werden in beiden Ordnern gespeichert, damit diese nachher identisch "
+"sind.\n"
+"Funktioniert nur, wenn zwei Ordner verglichen werden, und kein Ziel "
+"angegeben ist."
+
+#: optiondialog.cpp:1208
+msgid "White space differences considered equal"
+msgstr "Dateien mit Leerraum-Unterschieden als gleich markieren"
+
+#: optiondialog.cpp:1211
+msgid ""
+"If files differ only by white space consider them equal.\n"
+"This is only active when full analysis is chosen."
+msgstr ""
+"Wenn sich Dateien nur durch Leerräume unterscheiden, sollen diese wie "
+"gleiche Dateien behandelt werden.\n"
+"Dies ist nur wählbar, wenn vollständige Analyse ausgewählt ist."
+
+#: optiondialog.cpp:1217
+msgid "Copy newer instead of merging (unsafe)"
+msgstr "Neuere Datei statt Zusammenführung auswählen (unsicher)"
+
+#: optiondialog.cpp:1220
+msgid ""
+"Don't look inside, just take the newer file.\n"
+"(Use this only if you know what you are doing!)\n"
+"Only effective when comparing two directories."
+msgstr ""
+"Falls aktiv, wird bei unterschiedlichen Dateien immer die neuere Datei "
+"vorgeschlagen.\n"
+"(Nicht empfehlenswert, wenn beide Versionen Änderungen enthalten könnten.)\n"
+"Falls inaktiv wird eine Zusammenführung vorgeschlagen.\n"
+"Nur beim Vergleich zweier Ordner wirksam."
+
+#: optiondialog.cpp:1225
+msgid "Backup files (.orig)"
+msgstr "Sicherungskopie erstellen (.orig)"
+
+#: optiondialog.cpp:1228
+msgid ""
+"If a file would be saved over an old file, then the old file\n"
+"will be renamed with a '.orig' extension instead of being deleted."
+msgstr ""
+"Wenn eine Datei über eine existierende Datei gespeichert wird, bekommt die \n"
+"bestehende Datei die Erweiterung „.orig“ und wird nicht gelöscht."
+
+#: optiondialog.cpp:1301 optiondialog.cpp:1302
+msgid "Regional Settings"
+msgstr "Regionaleinstellungen"
+
+#: optiondialog.cpp:1402
+msgid "Language (restart required)"
+msgstr "Sprache (Neustart erforderlich)"
+
+#: optiondialog.cpp:1445
+msgid ""
+"Choose the language of the GUI strings or \"Auto\".\n"
+"For a change of language to take place, quit and restart KDiff3."
+msgstr ""
+"Sprache für die Benutzeroberfläche oder „Automatisch“ wählen.\n"
+"Diese Änderung wird erst nach einem Neustart von KDiff3 wirksam."
+
+#: optiondialog.cpp:1463
+msgid "Use the same encoding for everything:"
+msgstr "Überall die gleiche Kodierung verwenden:"
+
+#: optiondialog.cpp:1466
+msgid ""
+"Enable this allows to change all encodings by changing the first only.\n"
+"Disable this if different individual settings are needed."
+msgstr ""
+"Durch Aktivierung dieser Option können alle Kodierungen durch Setzen der "
+"ersten eingestellt werden. Dies auszuschalten erlaubt individuelle "
+"Einstellungen."
+
+#: optiondialog.cpp:1471
+msgid "Note: Local Encoding is "
+msgstr "Hinweis: Die lokale Kodierung ist "
+
+#: optiondialog.cpp:1475
+msgid "File Encoding for A:"
+msgstr "Dateikodierung für A:"
+
+#: optiondialog.cpp:1481
+msgid ""
+"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n"
+"If the file is not Unicode then the selected encoding will be used as "
+"fallback.\n"
+"(Unicode detection depends on the first bytes of a file.)"
+msgstr ""
+"Ist diese Einstellung aktiviert, wird die Unicode-Kodierung (UTF-16 oder "
+"UTF-8) bestimmt.\n"
+"Ist die Datei nicht Unicode-kodiert, wird die Einstellung als Ausweichlösung "
+"verwendet.\n"
+"(Unicode-Erkennung hängt von den ersten Bytes der Datei ab.)"
+
+#: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503
+msgid "Auto Detect Unicode"
+msgstr "Unicode automatisch erkennen"
+
+#: optiondialog.cpp:1490
+msgid "File Encoding for B:"
+msgstr "Dateikodierung für B:"
+
+#: optiondialog.cpp:1499
+msgid "File Encoding for C:"
+msgstr "Dateikodierung für C:"
+
+#: optiondialog.cpp:1508
+msgid "File Encoding for Merge Output and Saving:"
+msgstr "Dateikodierung für Zusammenführung und Speichern:"
+
+#: optiondialog.cpp:1512
+msgid "Auto Select"
+msgstr "Automatisch wählen"
+
+#: optiondialog.cpp:1515
+msgid ""
+"If enabled then the encoding from the input files is used.\n"
+"In ambiguous cases a dialog will ask the user to choose the encoding for "
+"saving."
+msgstr ""
+"Ist diese Einstellung aktiviert, wird die Kodierung der Eingabedatei "
+"verwendet.\n"
+"Ist diese nicht eindeutig zu bestimmen, wird der Benutzer beim Speichern "
+"gefragt."
+
+#: optiondialog.cpp:1519
+msgid "File Encoding for Preprocessor Files:"
+msgstr "Dateikodierung für Präprozessor Dateien:"
+
+#: optiondialog.cpp:1530
+msgid "Right To Left Language"
+msgstr "Rechts-Nach-Links-Sprache"
+
+#: optiondialog.cpp:1533
+msgid ""
+"Some languages are read from right to left.\n"
+"This setting will change the viewer and editor accordingly."
+msgstr ""
+"Einige Sprachen werden von rechts nach links gelesen.\n"
+"Diese Einstellung ändert die Anzeige und den Editor entsprechend."
+
+#: optiondialog.cpp:1548
+msgid "Integration"
+msgstr "Integration"
+
+#: optiondialog.cpp:1549
+msgid "Integration Settings"
+msgstr "Einstellungen für Integration"
+
+#: optiondialog.cpp:1563
+msgid "Command line options to ignore:"
+msgstr "Ignorierbare Befehlszeilenoptionen:"
+
+#: optiondialog.cpp:1568
+msgid ""
+"List of command line options that should be ignored when KDiff3 is used by "
+"other tools.\n"
+"Several values can be specified if separated via ';'\n"
+"This will suppress the \"Unknown option\" error."
+msgstr ""
+"Liste der Befehlszeilenoptionen, die ignoriert werden sollen, wenn KDiff3\n"
+"von anderen Werkzeugen aufgerufen wird.\n"
+"Mehrere Werte können mit Trennzeichen „;“ angegeben werden.\n"
+"Dies wird die Fehlermeldung „Unbekannte Option“ beim Start unterdrücken. "
+
+#: optiondialog.cpp:1575
+msgid "Quit also via Escape key"
+msgstr "Auch mit der Escape-Taste beenden"
+
+#: optiondialog.cpp:1578
+msgid ""
+"Fast method to exit.\n"
+"For those who are used to using the Escape key."
+msgstr ""
+"Schnelle Art zu beenden.\n"
+"Für die, die es gewohnt sind, die Escape-Taste zu benutzen."
+
+#: optiondialog.cpp:1583
+msgid "Integrate with ClearCase"
+msgstr "In ClearCase integrieren"
+
+#: optiondialog.cpp:1586
+msgid ""
+"Integrate with Rational ClearCase from IBM.\n"
+"Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n"
+"(Only enabled when ClearCase \"bin\" directory is in the path.)"
+msgstr ""
+"Mit IBM Rational ClearCase integrieren.\n"
+"Dies verändert die „map“-Datei im ClearCase-Unterordner „lib/mgrs“.\n"
+"(Wird nur aktiviert, wenn die ClearCase-Programmdatei im Pfad gefunden "
+"werden kann.)"
+
+#: optiondialog.cpp:1592
+msgid "Remove ClearCase Integration"
+msgstr "ClearCase-Integration entfernen"
+
+#: optiondialog.cpp:1595
+msgid ""
+"Restore the old \"map\" file from before doing the ClearCase integration."
+msgstr ""
+"Die alte „map“-Datei wiederherstellen, wie sie vor der ClearCase-Integration "
+"bestand."
+
+#: optiondialog.cpp:1680
+msgid "Incompatible Font"
+msgstr "Inkompatible Schriftart"
+
+#: optiondialog.cpp:1681
+msgid "Continue at Own Risk"
+msgstr "Weiter auf eigenes Risiko"
+
+#: optiondialog.cpp:1682
+msgid "Select Another Font"
+msgstr "Andere Schriftart wählen"
+
+#: optiondialog.cpp:1717
+msgid "This resets all options. Not only those of the current topic."
+msgstr ""
+"Dies führt zum Zurücksetzen aller Einstellungen, nicht nur des aktuellen "
+"Themas."
+
+#: pdiff.cpp:260
+msgid "PreprocessorCmd: "
+msgstr "Vorverarbeitungsbefehl: "
+
+#: pdiff.cpp:265
+msgid "The following option(s) you selected might change data:\n"
+msgstr "Die folgende(n) aktive(n) Einstellung(en) könnten Daten verändern:\n"
+
+#: pdiff.cpp:266
+msgid ""
+"\n"
+"Most likely this is not wanted during a merge.\n"
+"Do you want to disable these settings or continue with these settings active?"
+msgstr ""
+"\n"
+"Wahrscheinlich ist dies während der Dateizusammenführung nicht erwünscht.\n"
+"Möchten Sie diese Einstellungen deaktivieren oder beibehalten und fortfahren?"
+
+#: pdiff.cpp:268
+msgid "Option Unsafe for Merging"
+msgstr "Diese Einstellung ist bei Dateizusammenführungen unsicher"
+
+#: pdiff.cpp:269
+msgid "Use These Options During Merge"
+msgstr "Verwendung dieser Option während der Zusammenführung"
+
+#: pdiff.cpp:270
+msgid "Disable Unsafe Options"
+msgstr "Unsichere Einstellung deaktivieren"
+
+#: pdiff.cpp:300
+msgid "Loading A"
+msgstr "Lade A"
+
+#: pdiff.cpp:304
+msgid "Loading B"
+msgstr "Lade B"
+
+#: pdiff.cpp:321 pdiff.cpp:347
+msgid "Diff: A <-> B"
+msgstr "Vergleiche: A <-> B"
+
+#: pdiff.cpp:327 pdiff.cpp:372
+msgid "Linediff: A <-> B"
+msgstr "Zeilenvergleich: A <-> B"
+
+#: pdiff.cpp:338
+msgid "Loading C"
+msgstr "Lade C"
+
+#: pdiff.cpp:350
+msgid "Diff: B <-> C"
+msgstr "Vergleiche: B <-> C"
+
+#: pdiff.cpp:353
+msgid "Diff: A <-> C"
+msgstr "Vergleiche: A <-> C"
+
+#: pdiff.cpp:375
+msgid "Linediff: B <-> C"
+msgstr "Zeilenvergleich: B <-> C"
+
+#: pdiff.cpp:378
+msgid "Linediff: A <-> C"
+msgstr "Zeilenvergleich: A <-> C"
+
+#: pdiff.cpp:534
+msgid "All input files contain the same text, but are not binary equal."
+msgstr ""
+"Alle Quelldateien enthalten den gleichen Text, sind aber nicht binär "
+"identisch."
+
+#: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541
+#, kde-format
+msgid "Files %1 and %2 have equal text, but are not binary equal. \n"
+msgstr ""
+"Die Dateien %1 und %2 haben den gleichen Text, sind aber nicht binär "
+"identisch.\n"
+
+#: pdiff.cpp:551
+msgid ""
+"Some inputfiles don't seem to be pure textfiles.\n"
+"Note that the KDiff3-merge was not meant for binary data.\n"
+"Continue at your own risk."
+msgstr ""
+"Einige Quelldateien scheinen keine reinen Textdateien zu sein.\n"
+"Beachten Sie, dass KDiff3 nicht für den Binärdatenvergleich konzipiert ist.\n"
+"Sie fahren auf eigenes Risiko fort."
+
+#: pdiff.cpp:566
+#, kde-format
+msgid ""
+"Some input characters could not be converted to valid unicode.\n"
+"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n"
+"Don't save the result if unsure. Continue at your own risk.\n"
+"Affected input files are in %1."
+msgstr ""
+"Einige Eingabezeichen können nicht in gültigen Unicode umgewandelt werden.\n"
+"Möglicherweise verwenden Sie die falsche Kodierung (z. B. UTF-8 für Nicht-"
+"UTF-8-Dateien).\n"
+"Speichern Sie das Ergebnis nicht, wenn Sie sich nicht sicher sind.\n"
+"Die betroffenen Dateien liegen in %1."
+
+#: pdiff.cpp:1080
+msgid "Abort"
+msgstr "Abbrechen"
+
+#: pdiff.cpp:1087 pdiff.cpp:1175
+msgid "Opening files..."
+msgstr "Dateien öffnen ..."
+
+#: pdiff.cpp:1152 pdiff.cpp:1223
+msgid "File open error"
+msgstr "Fehler beim Öffnen der Datei"
+
+#: pdiff.cpp:1255
+msgid "Cutting selection..."
+msgstr "Auswahl wird ausgeschnitten ..."
+
+#: pdiff.cpp:1276
+msgid "Copying selection to clipboard..."
+msgstr "Auswahl wird in Zwischenablage kopiert ..."
+
+#: pdiff.cpp:1292
+msgid "Inserting clipboard contents..."
+msgstr "Inhalt der Zwischenablage wird eingefügt ..."
+
+#: pdiff.cpp:1814
+msgid "Save && Continue"
+msgstr "Speichern && Fortsetzen"
+
+#: pdiff.cpp:1815
+msgid "Continue Without Saving"
+msgstr "Fortsetzen ohne zu speichern"
+
+#: pdiff.cpp:2018
+msgid "Search complete."
+msgstr "Suche abgeschlossen."
+
+#: pdiff.cpp:2018
+msgid "Search Complete"
+msgstr "Suche abgeschlossen"
+
+#: pdiff.cpp:2252
+msgid "Nothing is selected in either diff input window."
+msgstr "In keinem der Unterschiedsfenster ist eine Auswahl markiert."
+
+#: pdiff.cpp:2252
+msgid "Error while adding manual diff range"
+msgstr "Fehler beim Hinzufügen einer manuellen Ausrichtung."
+
+#: kdiff3_shell.cpp:76
+msgid ""
+"Could not initialize the KDiff3 part.\n"
+"This usually happens due to an installation problem. Please read the README-"
+"file in the source package for details."
+msgstr ""
+"Die KDiff3-Komponente kann nicht gestartet werden.\n"
+"Das ist normalerweise ein Installationsproblem. Bitte lesen Sie die README-"
+"Datei, die den Quelltexten beiliegt."
+
+#: rc.cpp:1
+msgctxt "NAME OF TRANSLATORS"
+msgid "Your names"
+msgstr "Frederik Schwarzer"
+
+#: rc.cpp:2
+msgctxt "EMAIL OF TRANSLATORS"
+msgid "Your emails"
+msgstr "schwarzer@kde.org"
+
+#. i18n: file: kdiff3_part.rc:4
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:5
+msgid "&KDiff3"
+msgstr "&KDiff3"
+
+#. i18n: file: kdiff3_part.rc:13
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:8
+msgid "Configure KDiff3"
+msgstr "KDiff3 einrichten"
+
+#. i18n: file: kdiff3_part.rc:16
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:11
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#. i18n: file: kdiff3_shell.rc:106
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:38
+msgid "Main Toolbar"
+msgstr "Haupt-Werkzeugleiste"
+
+#~ msgid "Directory Merge"
+#~ msgstr "Ordnerzusammenführung"
+
+#~ msgid ""
+#~ "_: NAME OF TRANSLATORS\n"
+#~ "Your names"
+#~ msgstr "Joachim Eibl"
+
+#~ msgid ""
+#~ "_: EMAIL OF TRANSLATORS\n"
+#~ "Your emails"
+#~ msgstr "joachim.eibl@gmx.de"
+
+#~ msgid "Enables/disables the toolbar"
+#~ msgstr "Blendet die Werkzeugleiste ein/aus"
+
+#~ msgid "Files A and B are binary equal.\n"
+#~ msgstr "Die Dateien A und B sind binär identisch.\n"
+
+#~ msgid "Files A and C are binary equal.\n"
+#~ msgstr "Die Dateien A und C sind binär identisch.\n"
+
+#~ msgid "Files A and C have equal text. \n"
+#~ msgstr "Die Dateien A und C enthalten den gleichen Text. \n"
+
+#~ msgid "Files B and C are binary equal.\n"
+#~ msgstr "Die Dateien B und C sind binär identisch.\n"
+
+#~ msgid "Files B and C have equal text. \n"
+#~ msgstr "Die Dateien B und C enthalten den gleichen Text. \n"
+
+#~ msgid "Preserve carriage return"
+#~ msgstr "Wagenrücklaufzeichen anzeigen"
+
+#~ msgid ""
+#~ "Show carriage return characters '\\r' if they exist.\n"
+#~ "Helps to compare files that were modified under different operating "
+#~ "systems."
+#~ msgstr ""
+#~ "Zeige das Wagenrücklaufzeichen ‚\\r‘ falls vorhanden.\n"
+#~ "Hilft beim Vergleich von Dateien, die unter verschiedenen "
+#~ "Betriebssystemen geändert wurden."
+
+#~ msgid "Diff and Merge"
+#~ msgstr "Vergleich und Zusammenführung"
diff --git a/po/de/kdiff3fileitemactionplugin.po b/po/de/kdiff3fileitemactionplugin.po
new file mode 100644 (file)
index 0000000..00b4546
--- /dev/null
@@ -0,0 +1,85 @@
+# Copyright (C) YEAR This_file_is_part_of_KDE
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Frederik Schwarzer <schwarzer@kde.org>, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-06-04 13:27+0200\n"
+"Last-Translator: Frederik Schwarzer <schwarzer@kde.org>\n"
+"Language-Team: German <kde-i18n-de@kde.org>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.2\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: kdiff3fileitemaction.cpp:94
+msgid "KDiff3 ..."
+msgstr "KDiff3 ..."
+
+#: kdiff3fileitemaction.cpp:125
+#, kde-format
+msgid "Compare with %1"
+msgstr "Mit %1 vergleichen"
+
+#: kdiff3fileitemaction.cpp:131
+#, kde-format
+msgid "Merge with %1"
+msgstr "Mit %1 zusammenführen"
+
+#: kdiff3fileitemaction.cpp:137
+#, kde-format
+msgid "Save '%1' for later"
+msgstr "„%1“ für später speichern"
+
+#: kdiff3fileitemaction.cpp:143
+msgid "3-way merge with base"
+msgstr "3-Wege-Zusammenführung mit Basis"
+
+#: kdiff3fileitemaction.cpp:150
+msgid "Compare with ..."
+msgstr "Vergleichen mit ..."
+
+#: kdiff3fileitemaction.cpp:162
+msgid "Clear list"
+msgstr "Liste leeren"
+
+#: kdiff3fileitemaction.cpp:170
+msgid "Compare"
+msgstr "Vergleichen"
+
+#: kdiff3fileitemaction.cpp:176
+msgid "3 way comparison"
+msgstr "3-Wege-Vergleich"
+
+#: kdiff3fileitemaction.cpp:180
+msgid "About KDiff3 menu plugin ..."
+msgstr "Über KDiff3-Menü-Modul ..."
+
+#: kdiff3fileitemaction.cpp:284
+msgid ""
+"KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+
+#: kdiff3fileitemaction.cpp:286
+msgid ""
+"Using the contextmenu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else \"Save\" the first file for later. It "
+"will appear in the \"Compare With ...\" submenu. Then use \"Compare With\" "
+"on second file.\n"
+"For a 3-way merge first \"Save\" the base file, then the branch to merge and "
+"choose \"3-way merge with base\" on the other branch which will be used as "
+"destination.\n"
+"Same also applies to directory comparison and merge."
+msgstr ""
+
+#: kdiff3fileitemaction.cpp:294
+msgid "About KDiff3 File Item Action Plugin"
+msgstr ""
diff --git a/po/de/kdiff3plugin.po b/po/de/kdiff3plugin.po
new file mode 100644 (file)
index 0000000..61e9583
--- /dev/null
@@ -0,0 +1,100 @@
+# Copyright (C) YEAR This_file_is_part_of_KDE
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Frederik Schwarzer <schwarzer@kde.org>, 2008, 2009.
+# Burkhard Lück <lueck@hube-lueck.de>, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3plugin\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-07-02 17:47+0200\n"
+"Last-Translator: Burkhard Lück <lueck@hube-lueck.de>\n"
+"Language-Team: German <kde-i18n-de@kde.org>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.2\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: kdiff3plugin.cpp:107
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#: kdiff3plugin.cpp:114
+#, kde-format
+msgid "Compare with %1"
+msgstr "Mit %1 vergleichen"
+
+#: kdiff3plugin.cpp:120
+#, kde-format
+msgid "Merge with %1"
+msgstr "Mit %1 zusammenführen"
+
+#: kdiff3plugin.cpp:126
+#, kde-format
+msgid "Save '%1' for later"
+msgstr "„%1“ für später speichern"
+
+#: kdiff3plugin.cpp:132
+msgid "3-way merge with base"
+msgstr "3-Wege-Zusammenführung mit Basis"
+
+#: kdiff3plugin.cpp:139
+msgid "Compare with ..."
+msgstr "Vergleichen mit ..."
+
+#: kdiff3plugin.cpp:149
+msgid "Clear list"
+msgstr "Liste leeren"
+
+#: kdiff3plugin.cpp:157
+msgid "Compare"
+msgstr "Vergleichen"
+
+#: kdiff3plugin.cpp:163
+msgid "3 way comparison"
+msgstr "3-Wege-Vergleich"
+
+#: kdiff3plugin.cpp:167
+msgid "About KDiff3 menu plugin ..."
+msgstr "Über KDiff3-Menü-Modul ..."
+
+#: kdiff3plugin.cpp:269
+msgid ""
+"KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+"KDiff3-Menü-Modul: Copyright © 2008 Joachim Eibl\n"
+"KDiff3-Webseiten: http://kdiff3.sourceforge.net\n"
+"\n"
+
+#: kdiff3plugin.cpp:271
+msgid ""
+"Using the context menu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else, \"Save\" the first file for later, and "
+"it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With"
+"\" on the second file.\n"
+"For a 3-way merge first, \"Save\" the base file, then the branch to merge, "
+"and then \"3-way merge with base\" on the other branch which will be used as "
+"the destination.\n"
+"The same also applies to directory comparison and merge."
+msgstr ""
+"Benutzung der Kontextmenü-Erweiterung:\n"
+"Zum einfachen Vergleich zweier Dateien, wählen Sie „Vergleichen“.\n"
+"Befindet sich die andere Datei an einer anderen Stelle, „speichern“ Sie die "
+"erste Datei für später. Sie wird im Untermenü „Vergleichen mit ...“ "
+"angezeigt. Verwenden Sie jetzt „Vergleichen mit“ mit der zweiten Datei.\n"
+"Um eine 3-Wege-Zusammenführung vorzunehmen, „speichern“ Sie die Basisdatei "
+"und die erste Branch-Datei und wenden dann „3-Wege-Zusammenführung mit "
+"Basis“ auf die zweite Branch-Datei an, die als Zusammenführungsziel "
+"verwendet wird.\n"
+"Diese Vorgehensweise ist die gleiche bei Ordner-Vergleichen und -"
+"Zusammenführungen."
+
+#: kdiff3plugin.cpp:279
+msgid "About KDiff3 Menu Plugin"
+msgstr "Über KDiff3-Menü-Modul"
diff --git a/po/el/CMakeLists.txt b/po/el/CMakeLists.txt
new file mode 100644 (file)
index 0000000..52de24b
--- /dev/null
@@ -0,0 +1,2 @@
+file(GLOB _po_files *.po)
+GETTEXT_PROCESS_PO_FILES(el ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
diff --git a/po/el/kdiff3.po b/po/el/kdiff3.po
new file mode 100644 (file)
index 0000000..53b638d
--- /dev/null
@@ -0,0 +1,3248 @@
+# translation of kdiff3.po to Greek
+#
+# Spiros Georgaras <sng@hellug.gr>, 2005, 2006, 2007.
+# Toussis Manolis <manolis@koppermind.homelinux.org>, 2005, 2006, 2007, 2008, 2009.
+# George Pantsis <gpantsis@gmail.com>, 2008.
+# Stelios <sstavra@gmail.com>, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-07-26 05:11+0300\n"
+"Last-Translator: Stelios <sstavra@gmail.com>\n"
+"Language-Team: Greek <kde-i18n-el@kde.org>\n"
+"Language: el\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.2\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: kreplacements/kreplacements.h:105
+msgid "Continue"
+msgstr "Συνέχεια"
+
+#: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158
+#: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512
+msgid "Cancel"
+msgstr "Ακύρωση"
+
+#: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631
+msgid "Quit"
+msgstr "Έξοδος"
+
+#: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339
+msgid "Ok"
+msgstr "Εντάξει"
+
+#: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715
+msgid "Help"
+msgstr "Βοήθεια"
+
+#: kreplacements/kreplacements.cpp:185
+msgid "Defaults"
+msgstr "Προκαθορισμένα"
+
+#. i18n: file: kdiff3_shell.rc:4
+#. i18n: ectx: Menu (file)
+#: kreplacements/kreplacements.cpp:296 rc.cpp:14
+msgid "&File"
+msgstr "&Αρχείο"
+
+#: kreplacements/kreplacements.cpp:297
+msgid "&Edit"
+msgstr "&Επεξεργασία"
+
+#. i18n: file: kdiff3_shell.rc:7
+#. i18n: ectx: Menu (directory)
+#: kreplacements/kreplacements.cpp:298 rc.cpp:17
+msgid "&Directory"
+msgstr "&Κατάλογος"
+
+#. i18n: file: kdiff3_shell.rc:50
+#. i18n: ectx: Menu (movement)
+#: kreplacements/kreplacements.cpp:301 rc.cpp:26
+msgid "&Movement"
+msgstr "&Μετακίνηση"
+
+#. i18n: file: kdiff3_shell.rc:61
+#. i18n: ectx: Menu (diff)
+#: kreplacements/kreplacements.cpp:302 rc.cpp:29
+msgid "D&iffview"
+msgstr "Προβολή &διαφορών"
+
+#. i18n: file: kdiff3_shell.rc:73
+#. i18n: ectx: Menu (merge)
+#: kreplacements/kreplacements.cpp:303 rc.cpp:32
+msgid "&Merge"
+msgstr "&Συγχώνευση"
+
+#. i18n: file: kdiff3_shell.rc:95
+#. i18n: ectx: Menu (window)
+#: kreplacements/kreplacements.cpp:304 rc.cpp:35
+msgid "&Window"
+msgstr "&Παράθυρο"
+
+#: kreplacements/kreplacements.cpp:305
+msgid "&Settings"
+msgstr "&Ρυθμίσεις"
+
+#: kreplacements/kreplacements.cpp:306
+msgid "&Help"
+msgstr "&Βοήθεια"
+
+#: kreplacements/kreplacements.cpp:353
+msgid "&About"
+msgstr "&Σχετικά"
+
+#: kreplacements/kreplacements.cpp:369
+msgid "A&uthor"
+msgstr "Συ&γγραφέας"
+
+#: kreplacements/kreplacements.cpp:383
+msgid "&Thanks To"
+msgstr "&Ευχαριστήρια σε"
+
+#. i18n: file: kdiff3_shell.rc:30
+#. i18n: ectx: Menu (dir_current_merge_menu)
+#: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497
+#: rc.cpp:20
+msgid "Current Item Merge Operation"
+msgstr "Λειτουργία συγχώνευσης του τρέχοντος αντικειμένου"
+
+#. i18n: file: kdiff3_shell.rc:38
+#. i18n: ectx: Menu (dir_current_sync_menu)
+#: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498
+#: rc.cpp:23
+msgid "Current Item Sync Operation"
+msgstr "Λειτουργία συγχρονισμού του τρέχοντος αντικειμένου"
+
+#: kreplacements/kreplacements.cpp:597
+msgid "Open"
+msgstr "Άνοιγμα"
+
+#: kreplacements/kreplacements.cpp:606
+msgid "Save"
+msgstr "Αποθήκευση"
+
+#: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720
+msgid "Save As..."
+msgstr "Αποθήκευση ως..."
+
+#: kreplacements/kreplacements.cpp:623
+msgid "Print..."
+msgstr "Εκτύπωση..."
+
+#: kreplacements/kreplacements.cpp:639
+msgid "Cut"
+msgstr "Αποκοπή"
+
+#: kreplacements/kreplacements.cpp:647
+msgid "Copy"
+msgstr "Αντιγραφή"
+
+#: kreplacements/kreplacements.cpp:655
+msgid "Paste"
+msgstr "Επικόλληση"
+
+#: kreplacements/kreplacements.cpp:663
+msgid "Select All"
+msgstr "Επιλογή όλων"
+
+#: kreplacements/kreplacements.cpp:671
+msgid "Show Toolbar"
+msgstr "Εμφάνιση γραμμής εργαλείων"
+
+#: kreplacements/kreplacements.cpp:679
+msgid "Show &Status Bar"
+msgstr "Εμφάνιση γραμμής κατά&στασης"
+
+#: kreplacements/kreplacements.cpp:687
+#, kde-format
+msgid "&Configure %1..."
+msgstr "&Διαμόρφωση %1..."
+
+#: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707
+msgid "About"
+msgstr "Σχετικά"
+
+#: kreplacements/kreplacements.cpp:722
+msgid "Find"
+msgstr "Αναζήτηση"
+
+#: kreplacements/kreplacements.cpp:730
+msgid "Find Next"
+msgstr "Εύρεση επόμενου"
+
+#: kreplacements/kreplacements.cpp:750
+msgid "Select Font"
+msgstr "Επιλογή γραμματοσειράς"
+
+#: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676
+msgid ""
+"You selected a variable width font.\n"
+"\n"
+"Because this program doesn't handle variable width fonts\n"
+"correctly, you might experience problems while editing.\n"
+"\n"
+"Do you want to continue or do you want to select another font."
+msgstr ""
+"Επιλέξατε μία γραμματοσειρά μεταβλητού μήκους.\n"
+"\n"
+"Επειδή το πρόγραμμα δε διαχειρίζεται σωστά γραμματοσειρές μεταβλητού \n"
+"μήκους ίσως έχετε προβλήματα κατά την επεξεργασία.\n"
+"Επιθυμείτε τη συνέχεια ή την επιλογή μιας άλλης γραμματοσειράς;"
+
+#: kreplacements/kreplacements.cpp:792
+msgid "Incompatible font."
+msgstr "Μη συμβατή γραμματοσειρά."
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Continue at my own risk"
+msgstr "Συνέχεια με δικιά σας ευθύνη"
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Select another font"
+msgstr "Επιλέξτε μία άλλη γραμματοσειρά"
+
+#: kreplacements/kreplacements.cpp:1134
+msgid "For more documentation, see the help-menu or the subdirectory doc."
+msgstr ""
+"Για περισσότερη τεκμηρίωση, δείτε το μενού βοήθειας ή τον υποκατάλογο doc."
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "KDiff3-Usage"
+msgstr "Χρήση KDiff3"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Ignore"
+msgstr "Αγνόηση"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Exit"
+msgstr "Έξοδος"
+
+#: diff.cpp:251
+msgid "Writing clipboard data to temp file failed."
+msgstr "Η εγγραφή δεδομένων στο προσωρινό αρχείο απέτυχε."
+
+#: diff.cpp:255
+msgid "From Clipboard"
+msgstr "Από το πρόχειρο"
+
+#: diff.cpp:471
+msgid "Expecting space after closing quotation mark."
+msgstr "Αναμένεται κενό έπειτα από το κλείσιμο του εισαγωγικού."
+
+#: diff.cpp:474
+msgid "Not matching quotation marks."
+msgstr "Τα εισαγωγικά δεν ταιριάζουν."
+
+#: diff.cpp:496
+msgid "Unexpected quotation mark within argument."
+msgstr "Μη αναμενόμενο εισαγωγικό με το όρισμα."
+
+#: diff.cpp:503
+msgid "No program specified."
+msgstr "Δεν έχει προσδιοριστεί πρόγραμμα."
+
+#: diff.cpp:605
+#, kde-format
+msgid ""
+"Preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The preprocessing command will be disabled now."
+msgstr ""
+"Η προεπεξεργασία απέτυχε. Ελέγξτε αυτή την εντολή:\n"
+"\n"
+"  %1\n"
+"\n"
+"Η εντολή προεπεξεργασίας θα απενεργοποιηθεί τώρα."
+
+#: diff.cpp:653
+#, kde-format
+msgid ""
+"The line-matching-preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The line-matching-preprocessing command will be disabled now."
+msgstr ""
+"Η δυνατότητα προεπεξεργασίας αντιστοίχησης γραμμών απέτυχε. Ελέγξτε αυτή την "
+"εντολή:\n"
+"\n"
+"  %1\n"
+"\n"
+"Η δυνατότητα προεπεξεργασίας αντιστοίχησης γραμμών θα απενεργοποιηθεί τώρα."
+
+#: diff.cpp:1776 diff.cpp:1790
+msgid ""
+"Data loss error:\n"
+"If it is reproducible please contact the author.\n"
+msgstr ""
+"Σφάλμα απώλειας δεδομένων:\n"
+"Αν αναπαράγεται το σφάλμα, παρακαλώ επικοινωνήστε με τον συγγραφέα.\n"
+
+#: diff.cpp:1778 diff.cpp:1792
+msgid "Severe Internal Error"
+msgstr "Σοβαρό εσωτερικό σφάλμα"
+
+#: directorymergewindow.cpp:136
+msgid "Mix of links and normal files."
+msgstr "Ανάμιξη δεσμών και κανονικών αρχείων."
+
+#: directorymergewindow.cpp:143
+msgid "Link: "
+msgstr "Σύνδεσμος: "
+
+#: directorymergewindow.cpp:151
+msgid "Size. "
+msgstr "Μέγεθος. "
+
+#: directorymergewindow.cpp:164 directorymergewindow.cpp:174
+msgid "Date & Size: "
+msgstr "Ημερομηνία & μέγεθος: "
+
+#: directorymergewindow.cpp:184 directorymergewindow.cpp:190
+#, kde-format
+msgid "Creating temp copy of %1 failed."
+msgstr "Η δημιουργία του προσωρινού αντιγράφου για το %1 απέτυχε."
+
+#: directorymergewindow.cpp:201 directorymergewindow.cpp:209
+#, kde-format
+msgid "Opening %1 failed."
+msgstr "Το άνοιγμα του %1 απέτυχε."
+
+#: directorymergewindow.cpp:213
+msgid "Comparing file..."
+msgstr "Σύγκριση αρχείου..."
+
+#: directorymergewindow.cpp:223 directorymergewindow.cpp:229
+#, kde-format
+msgid "Error reading from %1"
+msgstr "Σφάλμα ανάγνωσης από το %1"
+
+#: directorymergewindow.cpp:358
+msgid "Name"
+msgstr "Όνομα"
+
+#: directorymergewindow.cpp:358
+msgid "Operation"
+msgstr "Λειτουργία"
+
+#: directorymergewindow.cpp:358
+msgid "Status"
+msgstr "Κατάσταση"
+
+#: directorymergewindow.cpp:359
+msgid "Unsolved"
+msgstr "Μη λυμένο"
+
+#: directorymergewindow.cpp:359
+msgid "Solved"
+msgstr "Λυμένο"
+
+#: directorymergewindow.cpp:359
+msgid "Nonwhite"
+msgstr "Μη κενό"
+
+#: directorymergewindow.cpp:359
+msgid "White"
+msgstr "Κενό"
+
+#: directorymergewindow.cpp:388
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort "
+"the merge and rescan the directory?"
+msgstr ""
+"Αυτή τη στιγμή κάνετε μια συγχώνευση καταλόγου. Είστε σίγουροι ότι "
+"επιθυμείτε την εγκατάλειψη της συγχώνευσης και την επανασάρωση του καταλόγου;"
+
+#: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655
+#: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823
+msgid "Warning"
+msgstr "Προειδοποίηση"
+
+#: directorymergewindow.cpp:390 directorymergewindow.cpp:2965
+msgid "Rescan"
+msgstr "Επανασάρωση"
+
+#: directorymergewindow.cpp:391 pdiff.cpp:1081
+msgid "Continue Merging"
+msgstr "Συνέχεια συγχώνευσης"
+
+#: directorymergewindow.cpp:548
+msgid "Opening of directories failed:"
+msgstr "Το άνοιγμα των καταλόγων απέτυχε:"
+
+#: directorymergewindow.cpp:551
+#, kde-format
+msgid "Dir A \"%1\" does not exist or is not a directory.\n"
+msgstr "Ο κατάλογος Α \"%1\" δεν υπάρχει ή δεν είναι κατάλογος.\n"
+
+#: directorymergewindow.cpp:554
+#, kde-format
+msgid "Dir B \"%1\" does not exist or is not a directory.\n"
+msgstr "Ο κατάλογος Β \"%1\" δεν υπάρχει ή δεν είναι κατάλογος.\n"
+
+#: directorymergewindow.cpp:557
+#, kde-format
+msgid "Dir C \"%1\" does not exist or is not a directory.\n"
+msgstr "Ο κατάλογος Γ \"%1\" δεν υπάρχει ή δεν είναι κατάλογος.\n"
+
+#: directorymergewindow.cpp:559
+msgid "Directory Open Error"
+msgstr "Σφάλμα ανοίγματος Καταλόγου"
+
+#: directorymergewindow.cpp:567
+msgid ""
+"The destination directory must not be the same as A or B when three "
+"directories are merged.\n"
+"Check again before continuing."
+msgstr ""
+"Ο κατάλογος προορισμού δεν πρέπει να είναι ίδιος με τους Α ή Β όταν "
+"συγχωνεύονται τρεις κατάλογοι.\n"
+"Κάντε έναν έλεγχο ξανά πριν συνεχίσετε."
+
+#: directorymergewindow.cpp:569
+msgid "Parameter Warning"
+msgstr "Προειδοποίηση παραμέτρου"
+
+#: directorymergewindow.cpp:574
+msgid "Scanning directories..."
+msgstr "Σάρωση καταλόγων..."
+
+#: directorymergewindow.cpp:607
+msgid "Reading Directory A"
+msgstr "Ανάγνωση καταλόγου Α"
+
+#: directorymergewindow.cpp:629
+msgid "Reading Directory B"
+msgstr "Ανάγνωση καταλόγου Β"
+
+#: directorymergewindow.cpp:651
+msgid "Reading Directory C"
+msgstr "Ανάγνωση καταλόγου Γ"
+
+#: directorymergewindow.cpp:677
+msgid "Some subdirectories were not readable in"
+msgstr "Μερικοί υποκατάλογοι δεν είναι αναγνώσιμοι στο"
+
+#: directorymergewindow.cpp:682
+msgid "Check the permissions of the subdirectories."
+msgstr "Ελέγξτε τις άδειες χρήσης των υποκαταλόγων."
+
+#: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737
+#: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233
+#: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328
+msgid "Ready."
+msgstr "Έτοιμο."
+
+#: directorymergewindow.cpp:735
+msgid "Directory Comparison Status"
+msgstr "Κατάσταση σύγκρισης καταλόγου"
+
+#: directorymergewindow.cpp:736
+msgid "Number of subdirectories:"
+msgstr "Αριθμός υποκαταλόγων:"
+
+#: directorymergewindow.cpp:737
+msgid "Number of equal files:"
+msgstr "Αριθμός ίδιων αρχείων:"
+
+#: directorymergewindow.cpp:738
+msgid "Number of different files:"
+msgstr "Αριθμός διαφορετικών αρχείων:"
+
+#: directorymergewindow.cpp:741
+msgid "Number of manual merges:"
+msgstr "Αριθμός χειροκίνητων συγχωνεύσεων:"
+
+#: directorymergewindow.cpp:912
+msgid "This affects all merge operations."
+msgstr "Αυτό επηρεάζει όλες τις συγχωνεύσεις."
+
+#: directorymergewindow.cpp:913
+msgid "Changing All Merge Operations"
+msgstr "Αλλαγή όλων των λειτουργιών συγχώνευσης"
+
+#: directorymergewindow.cpp:1312
+msgid "Processing "
+msgstr "Επεξεργασία "
+
+#: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742
+msgid "To do."
+msgstr "Προς υλοποίηση."
+
+#: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996
+msgid "Copy A to B"
+msgstr "Αντιγραφή του Α στο Β"
+
+#: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997
+msgid "Copy B to A"
+msgstr "Αντιγραφή του Β στο Α"
+
+#: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998
+msgid "Delete A"
+msgstr "Διαγραφή του Α"
+
+#: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999
+msgid "Delete B"
+msgstr "Διαγραφή του Β"
+
+#: directorymergewindow.cpp:1814
+msgid "Delete A & B"
+msgstr "Διαγραφή των Α & Β"
+
+#: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001
+msgid "Merge to A"
+msgstr "Συγχώνευση στο Α"
+
+#: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002
+msgid "Merge to B"
+msgstr "Συγχώνευση στο Β"
+
+#: directorymergewindow.cpp:1817
+msgid "Merge to A & B"
+msgstr "Συγχώνευση στα Α & Β"
+
+#: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993
+msgid "Delete (if exists)"
+msgstr "Διαγραφή (αν υπάρχει)"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+#: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869
+msgid "Merge"
+msgstr "Συγχώνευση"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+msgid "Merge (manual)"
+msgstr "Συγχώνευση (χειροκίνητη)"
+
+#: directorymergewindow.cpp:1824
+msgid "Error: Conflicting File Types"
+msgstr "Σφάλμα: Σύγκρουση τύπου αρχείων"
+
+#: directorymergewindow.cpp:1825
+msgid "Error: Changed and Deleted"
+msgstr "Σφάλμα: τροποποιήθηκε και διαγράφτηκε"
+
+#: directorymergewindow.cpp:1826
+msgid "Error: Dates are equal but files are not."
+msgstr "Σφάλμα: Οι ημερομηνίες είναι ίδιες αλλά τα αρχεία όχι."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906
+msgid "This operation is currently not possible."
+msgstr "Αυτή η λειτουργία δεν είναι δυνατή αυτή τη στιγμή."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174
+msgid "Operation Not Possible"
+msgstr "Μη δυνατή λειτουργία"
+
+#: directorymergewindow.cpp:1945
+msgid ""
+"This should never happen: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"If you know how to reproduce this, please contact the program author."
+msgstr ""
+"Αυτό δε θα έπρεπε να συμβεί ποτέ: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"Αν μπορείτε να το αναπαράγετε, παρακαλώ επικοινωνήστε με το συγγραφέα του "
+"προγράμματος."
+
+#: directorymergewindow.cpp:1945
+msgid "Program Error"
+msgstr "Σφάλμα προγράμματος"
+
+#: directorymergewindow.cpp:1956
+msgid "An error occurred while copying.\n"
+msgstr "Ένα σφάλμα παρουσιάστηκε κατά την αντιγραφή.\n"
+
+#: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025
+#: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105
+#: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123
+#: directorymergewindow.cpp:2374
+msgid "Error"
+msgstr "Σφάλμα"
+
+#: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375
+msgid "Merge Error"
+msgstr "Σφάλμα συγχώνευσης"
+
+#: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380
+msgid "Error."
+msgstr "Σφάλμα."
+
+#: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272
+#: directorymergewindow.cpp:2312
+msgid "Done."
+msgstr "Έγινε."
+
+#: directorymergewindow.cpp:1990
+msgid "Not saved."
+msgstr "Δεν αποθηκεύτηκε."
+
+#: directorymergewindow.cpp:2025
+msgid "Unknown merge operation. (This must never happen!)"
+msgstr "Άγνωστη λειτουργία συγχώνευσης. (Δε θα έπρεπε να συμβεί ποτέ!)"
+
+#: directorymergewindow.cpp:2057
+msgid "Unknown merge operation."
+msgstr "Άγνωστη λειτουργία συγχώνευσης."
+
+#: directorymergewindow.cpp:2072
+msgid ""
+"The merge is about to begin.\n"
+"\n"
+"Choose \"Do it\" if you have read the instructions and know what you are "
+"doing.\n"
+"Choosing \"Simulate it\" will tell you what would happen.\n"
+"\n"
+"Be aware that this program still has beta status and there is NO WARRANTY "
+"whatsoever! Make backups of your vital data!"
+msgstr ""
+"Η συγχώνευση είναι έτοιμη να ξεκινήσει.\n"
+"\n"
+"Επιλέξτε το \"Εκτέλεση\" αν διαβάσατε αρκετές οδηγίες και γνωρίζετε τι "
+"κάνετε.\n"
+"Επιλέγοντας την \"Εξομοίωση\" θα γίνει αναφορά του τι θα συμβεί.\n"
+"\n"
+"Σημειώστε ότι το αυτό το πρόγραμμα βρίσκεται ακόμη σε κατάσταση beta και δεν "
+"υπάρχει ΕΓΓΥΗΣΗ ούτως ή άλλως! Κάντε αντίγραφα ασφαλείας για τα σημαντικά "
+"δεδομένα σας!"
+
+#: directorymergewindow.cpp:2077
+msgid "Starting Merge"
+msgstr "Εκκίνηση συγχώνευσης"
+
+#: directorymergewindow.cpp:2078
+msgid "Do It"
+msgstr "Εκτέλεση"
+
+#: directorymergewindow.cpp:2079
+msgid "Simulate It"
+msgstr "Εξομοίωση"
+
+#: directorymergewindow.cpp:2105
+msgid ""
+"The highlighted item has a different type in the different directories. "
+"Select what to do."
+msgstr ""
+"Το τονισμένο αντικείμενο έχει διαφορετικό τύπο σε διαφορετικούς καταλόγους. "
+"Επιλέξτε τι θέλετε να κάνετε."
+
+#: directorymergewindow.cpp:2114
+msgid ""
+"The modification dates of the file are equal but the files are not. Select "
+"what to do."
+msgstr ""
+"Οι ημερομηνίες τροποποίησης των αρχείων είναι ίδιες αλλά τα αρχεία δεν "
+"είναι. Επιλέξτε τι θέλετε να κάνετε."
+
+#: directorymergewindow.cpp:2123
+msgid ""
+"The highlighted item was changed in one directory and deleted in the other. "
+"Select what to do."
+msgstr ""
+"Το τονισμένο αντικείμενο άλλαξε σε έναν κατάλογο και διαγράφτηκε σε έναν "
+"άλλο. Επιλέξτε τι θέλετε να κάνετε."
+
+#: directorymergewindow.cpp:2174
+msgid ""
+"This operation is currently not possible because directory merge is "
+"currently running."
+msgstr ""
+"Αυτή η λειτουργία δεν είναι αυτή τη στιγμή δυνατή γιατί η συγχώνευση "
+"καταλόγου εκτελείται αυτήν τη στιγμή."
+
+#: directorymergewindow.cpp:2234
+msgid ""
+"There was an error in the last step.\n"
+"Do you want to continue with the item that caused the error or do you want "
+"to skip this item?"
+msgstr ""
+"Υπήρξε ένα σφάλμα στο τελευταίο βήμα.\n"
+"Επιθυμείτε τη συνέχεια με το αντικείμενο που προκάλεσε το σφάλμα ή "
+"επιθυμείτε την παράλειψή του;"
+
+#: directorymergewindow.cpp:2236
+msgid "Continue merge after an error"
+msgstr "Συνέχεια συγχώνευσης μετά από ένα σφάλμα"
+
+#: directorymergewindow.cpp:2237
+msgid "Continue With Last Item"
+msgstr "Συνέχεια με το τελευταίο αντικείμενο"
+
+#: directorymergewindow.cpp:2238
+msgid "Skip Item"
+msgstr "Παράλειψη αντικειμένου"
+
+#: directorymergewindow.cpp:2272
+msgid "Skipped."
+msgstr "Παραλείφθηκε."
+
+#: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493
+msgid "In progress..."
+msgstr "Σε πρόοδο..."
+
+#: directorymergewindow.cpp:2327
+msgid "Merge operation complete."
+msgstr "Η λειτουργία συγχώνευσης ολοκληρώθηκε."
+
+#: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330
+msgid "Merge Complete"
+msgstr "Η συγχώνευση ολοκληρώθηκε"
+
+#: directorymergewindow.cpp:2340
+msgid ""
+"Simulated merge complete: Check if you agree with the proposed operations."
+msgstr ""
+"Η εξομοίωση συγχώνευσης ολοκληρώθηκε: Ελέγξτε αν συμφωνείτε με τις "
+"προτεινόμενες ενέργειες."
+
+#: directorymergewindow.cpp:2374
+msgid "An error occurred. Press OK to see detailed information.\n"
+msgstr ""
+"Παρουσιάστηκε ένα σφάλμα. Πατήστε το Εντάξει για να δείτε λεπτομερείς "
+"πληροφορίες.\n"
+
+#: directorymergewindow.cpp:2406
+#, kde-format
+msgid "Error: While deleting %1: Creating backup failed."
+msgstr ""
+"Σφάλμα: Κατά τη διαγραφή του %1: Η δημιουργία του αντιγράφου ασφαλείας "
+"απέτυχε."
+
+#: directorymergewindow.cpp:2413
+#, kde-format
+msgid "delete directory recursively( %1 )"
+msgstr "αναδρομική διαγραφή καταλόγου( %1 )"
+
+#: directorymergewindow.cpp:2415
+#, kde-format
+msgid "delete( %1 )"
+msgstr "διαγραφή ( %1 )"
+
+#: directorymergewindow.cpp:2430
+msgid "Error: delete dir operation failed while trying to read the directory."
+msgstr ""
+"Σφάλμα: η διαγραφή καταλόγου απέτυχε κατά την προσπάθεια ανάγνωσης του "
+"καταλόγου."
+
+#: directorymergewindow.cpp:2449
+#, kde-format
+msgid "Error: rmdir( %1 ) operation failed."
+msgstr "Σφάλμα: η λειτουργία rmdir( %1 ) απέτυχε."
+
+#: directorymergewindow.cpp:2459
+msgid "Error: delete operation failed."
+msgstr "Σφάλμα: η διαγραφή απέτυχε."
+
+#: directorymergewindow.cpp:2485
+#, kde-format
+msgid "manual merge( %1, %2, %3 -> %4)"
+msgstr "χειροκίνητη συγχώνευση( %1, %2, %3 -> %4)"
+
+#: directorymergewindow.cpp:2488
+msgid ""
+"     Note: After a manual merge the user should continue by pressing F7."
+msgstr ""
+"     Σημείωση: Μετά από μία χειροκίνητη συγχώνευση ο χρήστης θα πρέπει να "
+"συνεχίσει πατώντας F7."
+
+#: directorymergewindow.cpp:2513
+#, kde-format
+msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed."
+msgstr ""
+"Σφάλμα: η αντιγραφή ( %1 -> %2 ) απέτυχε. Η διαγραφή του υπάρχοντος "
+"προορισμού απέτυχε."
+
+#: directorymergewindow.cpp:2522
+#, kde-format
+msgid "copyLink( %1 -> %2 )"
+msgstr "Αντιγραφή δεσμού( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2533
+msgid "Error: copyLink failed: Remote links are not yet supported."
+msgstr ""
+"Σφάλμα: η αντιγραφή δεσμού απέτυχε: Οι απομακρυσμένοι δεσμοί δεν "
+"υποστηρίζονται ακόμα."
+
+#: directorymergewindow.cpp:2539
+msgid "Error: copyLink failed."
+msgstr "Σφάλμα: η αντιγραφή δεσμού απέτυχε."
+
+#: directorymergewindow.cpp:2564
+#, kde-format
+msgid "copy( %1 -> %2 )"
+msgstr "αντιγραφή ( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2590
+#, kde-format
+msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination."
+msgstr ""
+"Σφάλμα κατά την μετονομασία( %1 -> %2 ): Αδυναμία διαγραφής του υπάρχοντος "
+"προορισμού."
+
+#: directorymergewindow.cpp:2596
+#, kde-format
+msgid "rename( %1 -> %2 )"
+msgstr "μετονομασία ( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2605
+msgid "Error: Rename failed."
+msgstr "Σφάλμα: Η μετονομασία απέτυχε."
+
+#: directorymergewindow.cpp:2623
+#, kde-format
+msgid "Error during makeDir of %1. Cannot delete existing file."
+msgstr ""
+"Σφάλμα κατά τη δημιουργία του καταλόγου %1. Αδύνατη η διαγραφή υπάρχοντος "
+"αρχείου."
+
+#: directorymergewindow.cpp:2639
+#, kde-format
+msgid "makeDir( %1 )"
+msgstr "Δημιουργία καταλόγου( %1 )"
+
+#: directorymergewindow.cpp:2649
+msgid "Error while creating directory."
+msgstr "Σφάλμα κατά τη δημιουργία του καταλόγου."
+
+#: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784
+msgid "Dest"
+msgstr "Προορ."
+
+#: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709
+msgid "Dir"
+msgstr "Κατ"
+
+#: directorymergewindow.cpp:2678
+msgid "Type"
+msgstr "Τύπος"
+
+#: directorymergewindow.cpp:2678
+msgid "Size"
+msgstr "Μέγεθος"
+
+#: directorymergewindow.cpp:2679
+msgid "Attr"
+msgstr "Ιδιοτ"
+
+#: directorymergewindow.cpp:2679
+msgid "Last Modification"
+msgstr "Τελευταία τροποποίηση"
+
+#: directorymergewindow.cpp:2679
+msgid "Link-Destination"
+msgstr "Δεσμός-προορισμός"
+
+#: directorymergewindow.cpp:2709 difftextwindow.cpp:401
+msgid "File"
+msgstr "Αρχείο"
+
+#: directorymergewindow.cpp:2726
+msgid "not available"
+msgstr "μη διαθέσιμο"
+
+#: directorymergewindow.cpp:2746
+msgid "A (Dest): "
+msgstr "A (Προορ): "
+
+#: directorymergewindow.cpp:2749
+msgid "A (Base): "
+msgstr "A (Βάση): "
+
+#: directorymergewindow.cpp:2755
+msgid "B (Dest): "
+msgstr "B (Προορ): "
+
+#: directorymergewindow.cpp:2763
+msgid "C (Dest): "
+msgstr "Γ (Προορ): "
+
+#: directorymergewindow.cpp:2769
+msgid "Dest: "
+msgstr "Προορ: "
+
+#: directorymergewindow.cpp:2836
+msgid "Save Directory Merge State As..."
+msgstr "Αποθήκευση κατάστασης συγχώνευσης καταλόγου ως..."
+
+#: directorymergewindow.cpp:2959
+msgid "Start/Continue Directory Merge"
+msgstr "Έναρξη/συνέχεια συγχώνευσης καταλόγου"
+
+#: directorymergewindow.cpp:2960
+msgid "Run Operation for Current Item"
+msgstr "Εκτέλεση της λειτουργίας για το τρέχον αντικείμενο"
+
+#: directorymergewindow.cpp:2961
+msgid "Compare Selected File"
+msgstr "Σύγκριση του επιλεγμένου αρχείου"
+
+#: directorymergewindow.cpp:2962
+msgid "Merge Current File"
+msgstr "Συγχώνευση του επιλεγμένου αρχείου"
+
+#: directorymergewindow.cpp:2962
+msgid ""
+"Merge\n"
+"File"
+msgstr ""
+"Συγχώνευση\n"
+"αρχείου"
+
+#: directorymergewindow.cpp:2963
+msgid "Fold All Subdirs"
+msgstr "Αναδίπλωση όλων των υποκαταλόγων"
+
+#: directorymergewindow.cpp:2964
+msgid "Unfold All Subdirs"
+msgstr "Ανάπτυξη όλων των υποκαταλόγων"
+
+#: directorymergewindow.cpp:2968
+msgid "Choose A for All Items"
+msgstr "Επιλογή του Α για όλα τα αντικείμενα"
+
+#: directorymergewindow.cpp:2969
+msgid "Choose B for All Items"
+msgstr "Επιλογή του Β για όλα τα αντικείμενα"
+
+#: directorymergewindow.cpp:2970
+msgid "Choose C for All Items"
+msgstr "Επιλογή του Γ για Όλα τα αντικείμενα"
+
+#: directorymergewindow.cpp:2971
+msgid "Auto-Choose Operation for All Items"
+msgstr "Λειτουργία αυτόματης επιλογής για όλα τα αντικείμενα"
+
+#: directorymergewindow.cpp:2972
+msgid "No Operation for All Items"
+msgstr "Καμία λειτουργία για όλα τα αντικείμενα"
+
+#: directorymergewindow.cpp:2977
+msgid "Show Identical Files"
+msgstr "Εμφάνιση ταυτόσημων αρχείων"
+
+#: directorymergewindow.cpp:2977
+msgid ""
+"Identical\n"
+"Files"
+msgstr ""
+"Ταυτόσημα\n"
+"αρχεία"
+
+#: directorymergewindow.cpp:2978
+msgid "Show Different Files"
+msgstr "Εμφάνιση διαφορετικών αρχείων"
+
+#: directorymergewindow.cpp:2979
+msgid "Show Files only in A"
+msgstr "Εμφάνιση αρχείων μόνο στο Α"
+
+#: directorymergewindow.cpp:2979
+msgid ""
+"Files\n"
+"only in A"
+msgstr ""
+"Αρχεία\n"
+"μόνο στο Α"
+
+#: directorymergewindow.cpp:2980
+msgid "Show Files only in B"
+msgstr "Εμφάνιση αρχείων μόνο στο Β"
+
+#: directorymergewindow.cpp:2980
+msgid ""
+"Files\n"
+"only in B"
+msgstr ""
+"Αρχεία\n"
+"μόνο στο Β"
+
+#: directorymergewindow.cpp:2981
+msgid "Show Files only in C"
+msgstr "Εμφάνιση αρχείων μόνο στο Γ"
+
+#: directorymergewindow.cpp:2981
+msgid ""
+"Files\n"
+"only in C"
+msgstr ""
+"Αρχεία\n"
+"μόνο στο Γ"
+
+#: directorymergewindow.cpp:2985
+msgid "Compare Explicitly Selected Files"
+msgstr "Σύγκριση άμεσα επιλεγμένων αρχείων"
+
+#: directorymergewindow.cpp:2986
+msgid "Merge Explicitly Selected Files"
+msgstr "Συγχώνευση άμεσα επιλεγμένων αρχείων"
+
+#: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995
+msgid "Do Nothing"
+msgstr "Να μη γίνει τίποτα"
+
+#: directorymergewindow.cpp:2989
+msgid "A"
+msgstr "Α"
+
+#: directorymergewindow.cpp:2990
+msgid "B"
+msgstr "Β"
+
+#: directorymergewindow.cpp:2991
+msgid "C"
+msgstr "Γ"
+
+#: directorymergewindow.cpp:3000
+msgid "Delete A && B"
+msgstr "Διαγραφή των A && B"
+
+#: directorymergewindow.cpp:3003
+msgid "Merge to A && B"
+msgstr "Συγχώνευση σε A && B"
+
+#: main.cpp:74 main.cpp:76
+msgid "Ignored. (User defined.)"
+msgstr "Παραλείφθηκε. (ορισμένο από τον χρήστη.)"
+
+#: main.cpp:162
+msgid "kdiff3"
+msgstr "kdiff3"
+
+#: main.cpp:164
+msgid "Tool for Comparison and Merge of Files and Directories"
+msgstr "Εργαλείο για σύγκριση και συγχώνευση αρχείων και καταλόγων"
+
+#: main.cpp:165
+msgid "(c) 2002-2011 Joachim Eibl"
+msgstr "(c) 2002-2011 Joachim Eibl"
+
+#: main.cpp:172 kdiff3_part.cpp:303
+msgid "Joachim Eibl"
+msgstr "Joachim Eibl"
+
+#: main.cpp:173
+msgid "Eike Sauer"
+msgstr "Eike Sauer"
+
+#: main.cpp:173
+msgid "Bugfixes, Debian package maintainer"
+msgstr "Διορθώσεις, συντηρητής πακέτου του Debian"
+
+#: main.cpp:174
+msgid "Sebastien Fricker"
+msgstr "Sebastien Fricker"
+
+#: main.cpp:174
+msgid "Windows installer"
+msgstr "Εγκαταστάτης Windows"
+
+#: main.cpp:175
+msgid "Stephan Binner"
+msgstr "Stephan Binner"
+
+#: main.cpp:175
+msgid "i18n-help"
+msgstr "βοήθεια i18n"
+
+#: main.cpp:176
+msgid "Stefan Partheymueller"
+msgstr "Stefan Partheymueller"
+
+#: main.cpp:176
+msgid "Clipboard-patch"
+msgstr "Διόρθωση προχείρου"
+
+#: main.cpp:177
+msgid "David Faure"
+msgstr "David Faure"
+
+#: main.cpp:177
+msgid "KIO-Help"
+msgstr "Βοήθεια KIO"
+
+#: main.cpp:178
+msgid "Bernd Gehrmann"
+msgstr "Bernd Gehrmann"
+
+#: main.cpp:178
+msgid "Class CvsIgnoreList from Cervisia"
+msgstr "Κλάση CvsIgnoreList από το Cervisia"
+
+#: main.cpp:179
+msgid "Andre Woebbeking"
+msgstr "Andre Woebbeking"
+
+#: main.cpp:179
+msgid "Class StringMatcher"
+msgstr "Κλάση StringMatcher"
+
+#: main.cpp:180
+msgid "Michael Denio"
+msgstr "Michael Denio"
+
+#: main.cpp:180
+msgid "Directory Equality-Coloring patch"
+msgstr "Διόρθωση ισότητας-χρωματισμού καταλόγου"
+
+#: main.cpp:181
+msgid "Manfred Koehler"
+msgstr "Manfred Koehler"
+
+#: main.cpp:181
+msgid "Fix for slow startup on Windows"
+msgstr "Διόρθωση για την αργή εκκίνηση στα Windows"
+
+#: main.cpp:182
+msgid "Sergey Zorin"
+msgstr "Sergey Zorin"
+
+#: main.cpp:182
+msgid "Diff Ext for Windows"
+msgstr "Diff Ext για τα Windows"
+
+#: main.cpp:183
+msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+
+#: main.cpp:183
+msgid "GNU-Diffutils"
+msgstr "GNU-Diffutils"
+
+#: main.cpp:184
+msgid "Tino Boellsterling, Timothy Mee"
+msgstr "Tino Boellsterling, Timothy Mee"
+
+#: main.cpp:184
+msgid "Intensive test, use and feedback"
+msgstr "Εξονυχιστικός έλεγχος, δοκιμή και πληροφορίες χρήσης"
+
+#: main.cpp:185
+msgid "Michael Schmidt"
+msgstr "Michael Schmidt"
+
+#: main.cpp:185
+msgid "Mac support"
+msgstr "Υποστήριξη Mac"
+
+#: main.cpp:186
+msgid "Valentin Rusu"
+msgstr "Valentin Rusu"
+
+#: main.cpp:186 main.cpp:187
+msgid "KDE4 porting"
+msgstr "Μεταφορά στο KDE4"
+
+#: main.cpp:187
+msgid "Albert Astals Cid"
+msgstr "Albert Astals Cid"
+
+#: main.cpp:188
+msgid "Silvan Scherrer"
+msgstr "Silvan Scherrer"
+
+#: main.cpp:188
+msgid "OS2 port"
+msgstr "Θύρα OS2"
+
+#: main.cpp:190
+msgid "+ Many thanks to those who reported bugs and contributed ideas!"
+msgstr ""
+"+ Πολλές ευχαριστίες σε όσους ανέφεραν σφάλματα και συνεισέφεραν ιδέες!"
+
+#: main.cpp:196
+msgid "Merge the input."
+msgstr "Συγχώνευση της εισόδου."
+
+#: main.cpp:197
+msgid "Explicit base file. For compatibility with certain tools."
+msgstr "Άμεσο αρχείο βάση. Για συμβατότητα με ορισμένα εργαλεία."
+
+#: main.cpp:198
+msgid "Output file. Implies -m. E.g.: -o newfile.txt"
+msgstr "Αρχείο εξόδου. Εννοείται η επιλογή -m. Π.χ.: -o newfile.txt"
+
+#: main.cpp:199
+msgid "Output file, again. (For compatibility with certain tools.)"
+msgstr "Αρχείο εξόδου, και πάλι. (Για συμβατότητα με ορισμένα εργαλεία.)"
+
+#: main.cpp:200
+msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)"
+msgstr ""
+"Χωρίς γραφικό περιβάλλον αν όλες οι συγκρούσεις μπορούν να επιλυθούν "
+"αυτόματα. (Απαιτεί το -o file)"
+
+#: main.cpp:201
+msgid "Don't solve conflicts automatically. (For compatibility...)"
+msgstr "Να μη γίνει αυτόματη επίλυση συγκρούσεων. (Για συμβατότητα...)"
+
+#: main.cpp:202
+msgid "Visible name replacement for input file 1 (base)."
+msgstr "Ορατή αντικατάσταση ονόματος για το αρχείο εισόδου 1 (βάση)."
+
+#: main.cpp:203
+msgid "Visible name replacement for input file 2."
+msgstr "Ορατή αντικατάσταση ονόματος για το αρχείο εισόδου 2."
+
+#: main.cpp:204
+msgid "Visible name replacement for input file 3."
+msgstr "Ορατή αντικατάσταση ονόματος για το αρχείο εισόδου 3."
+
+#: main.cpp:205
+msgid "Alternative visible name replacement. Supply this once for every input."
+msgstr ""
+"Εναλλακτική ορατή αντικατάσταση ονόματος. Δώστε το μία φορά για κάθε είσοδο."
+
+#: main.cpp:206
+msgid ""
+"Override a config setting. Use once for every setting. E.g.: --cs "
+"\"AutoAdvance=1\""
+msgstr ""
+"Αντικατάσταση μίας ρύθμισης διαμόρφωσης. Χρήση μία φορά για κάθε ρύθμιση. Π."
+"χ.: --cs \"AutoAdvance=1\""
+
+#: main.cpp:207
+msgid "Show list of config settings and current values."
+msgstr "Εμφάνιση λίστας ρυθμίσεων διαμόρφωσης και τρεχουσών τιμών."
+
+#: main.cpp:208
+msgid "Use a different config file."
+msgstr "Χρήση ενός διαφορετικού αρχείου διαμόρφωσης."
+
+#: main.cpp:211
+msgid "file1 to open (base, if not specified via --base)"
+msgstr "αρχείο1 για άνοιγμα (βάση, αν δεν καθοριστεί μέσω του --base)"
+
+#: main.cpp:212
+msgid "file2 to open"
+msgstr "αρχείο2 για άνοιγμα"
+
+#: main.cpp:213
+msgid "file3 to open"
+msgstr "αρχείο3 για άνοιγμα"
+
+#: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976
+#: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002
+#: mergeresultwindow.cpp:1014
+#, kde-format
+msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)"
+msgstr ""
+"Αριθμός εναπομείναντων ανεπίλυτων συγκρούσεων: %1 ( %2 από τις οποίες "
+"αφορούν κενά)"
+
+#: mergeresultwindow.cpp:303
+msgid ""
+"The output has been modified.\n"
+"If you continue your changes will be lost."
+msgstr ""
+"Η έξοδος έχει τροποποιηθεί.\n"
+"Αν συνεχίσετε οι αλλαγές σας θα χαθούν."
+
+#: mergeresultwindow.cpp:834 pdiff.cpp:532
+msgid "All input files are binary equal."
+msgstr "Όλα τα αρχεία εισόδου είναι δυαδικά ίσα."
+
+#: mergeresultwindow.cpp:836
+msgid "All input files contain the same text."
+msgstr "Όλα τα αρχεία εισόδου περιέχουν το ίδιο κείμενο."
+
+#: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840
+#: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540
+#, kde-format
+msgid "Files %1 and %2 are binary equal.\n"
+msgstr "Τα αρχεία %1 και %2 είναι δυαδικά ίσα.\n"
+
+#: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841
+#: mergeresultwindow.cpp:843
+#, kde-format
+msgid "Files %1 and %2 have equal text.\n"
+msgstr "Τα αρχεία %1 και %2 περιέχουν το ίδιο κείμενο. \n"
+
+#: mergeresultwindow.cpp:849
+msgid "Total number of conflicts: "
+msgstr "Συνολικός αριθμός συγκρούσεων: "
+
+#: mergeresultwindow.cpp:850
+msgid ""
+"\n"
+"Nr of automatically solved conflicts: "
+msgstr ""
+"\n"
+"Αριθμός αυτόματα επιλυμένων συγκρούσεων: "
+
+#: mergeresultwindow.cpp:851
+msgid ""
+"\n"
+"Nr of unsolved conflicts: "
+msgstr ""
+"\n"
+"Αριθμός ανεπίλυτων συγκρούσεων: "
+
+#: mergeresultwindow.cpp:853
+msgid "Conflicts"
+msgstr "Συγκρούσεις"
+
+#: mergeresultwindow.cpp:1728
+msgid "<No src line>"
+msgstr "<Χωρίς γραμμή πηγής>"
+
+#: mergeresultwindow.cpp:1736
+msgid "<Merge Conflict (Whitespace only)>"
+msgstr "<Σύγκρουση συγχώνευσης (μόνο κενών)>"
+
+#: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517
+msgid "<Merge Conflict>"
+msgstr "<Σύγκρουση συγχώνευσης>"
+
+#: mergeresultwindow.cpp:2725
+msgid ""
+"Not all conflicts are solved yet.\n"
+"File not saved.\n"
+msgstr ""
+"Δεν έχουν επιλυθεί ακόμη όλες οι συγκρούσεις.\n"
+"Το αρχείο δεν αποθηκεύτηκε.\n"
+
+#: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736
+msgid "Conflicts Left"
+msgstr "Συγκρούσεις που απομένουν"
+
+#: mergeresultwindow.cpp:2734
+msgid ""
+"There is a line end style conflict. Please choose the line end style "
+"manually.\n"
+"File not saved.\n"
+msgstr ""
+"Υπάρχει μια σύγκρουση στυλ τέλους γραμμής. Παρακαλώ επιλέξτε ένα στυλ τέλους "
+"γραμμής χειροκίνητα.\n"
+"Το αρχείο δεν αποθηκεύτηκε.\n"
+
+#: mergeresultwindow.cpp:2748
+msgid ""
+"\n"
+"\n"
+"Creating backup failed. File not saved."
+msgstr ""
+"\n"
+"\n"
+"Η δημιουργία αντιγράφου ασφαλείας απέτυχε. Το αρχείο δεν αποθηκεύτηκε."
+
+#: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792
+msgid "File Save Error"
+msgstr "Σφάλμα εγγραφής αρχείου"
+
+#: mergeresultwindow.cpp:2792
+msgid "Error while writing."
+msgstr "Σφάλμα κατά την εγγραφή."
+
+#: mergeresultwindow.cpp:3122
+msgid "Output"
+msgstr "Έξοδος"
+
+#: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314
+msgid "[Modified]"
+msgstr "[Τροποποιημένο]"
+
+#: mergeresultwindow.cpp:3141
+msgid "Encoding for saving"
+msgstr "Κωδικοποίηση για την αποθήκευση"
+
+#: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737
+#: optiondialog.cpp:762
+msgid "Line end style:"
+msgstr "Στυλ τέλους γραμμής:"
+
+#: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767
+msgid "Unix"
+msgstr "Unix"
+
+#: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737
+msgid "DOS"
+msgstr "DOS"
+
+#: mergeresultwindow.cpp:3229
+msgid "Conflict"
+msgstr "Σύγκρουση"
+
+#: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263
+#: mergeresultwindow.cpp:3265
+msgid "Codec from"
+msgstr "Κωδικοποιητής από"
+
+#: kdiff3_part.cpp:157 kdiff3_part.cpp:234
+msgid "Couldn't find files for comparison."
+msgstr "Δε βρέθηκαν αρχεία για σύγκριση."
+
+#: kdiff3_part.cpp:302
+msgid "KDiff3Part"
+msgstr "KDiff3Part"
+
+#: fileaccess.cpp:612
+msgid ""
+"While trying to make a backup, deleting an older backup failed. \n"
+"Filename: "
+msgstr ""
+"Αποτυχία διαγραφής ενός παλιότερου αντιγράφου ασφαλείας, κατά τη δημιουργία "
+"αντιγράφου ασφαλείας. \n"
+"Όνομα αρχείου: "
+
+#: fileaccess.cpp:619
+msgid ""
+"While trying to make a backup, renaming failed. \n"
+"Filenames: "
+msgstr ""
+"Αποτυχία μετονομασίας, κατά τη δημιουργία αντιγράφου ασφαλείας. \n"
+"Ονόματα αρχείων: "
+
+#: fileaccess.cpp:643
+#, kde-format
+msgid "Getting file status: %1"
+msgstr "Ανάκτηση κατάστασης αρχείου: %1"
+
+#: fileaccess.cpp:686
+#, kde-format
+msgid "Reading file: %1"
+msgstr "Ανάγνωση αρχείου: %1"
+
+#: fileaccess.cpp:723
+#, kde-format
+msgid "Writing file: %1"
+msgstr "Εγγραφή αρχείου: %1"
+
+#: fileaccess.cpp:751
+msgid "Out of memory"
+msgstr "Τέλος μνήμης"
+
+#: fileaccess.cpp:786
+#, kde-format
+msgid "Making directory: %1"
+msgstr "Δημιουργία καταλόγου: %1"
+
+#: fileaccess.cpp:806
+#, kde-format
+msgid "Removing directory: %1"
+msgstr "Αφαίρεση καταλόγου: %1"
+
+#: fileaccess.cpp:821
+#, kde-format
+msgid "Removing file: %1"
+msgstr "Αφαίρεση αρχείου: %1"
+
+#: fileaccess.cpp:837
+#, kde-format
+msgid "Creating symbolic link: %1 -> %2"
+msgstr "Δημιουργία συμβολικού δεσμού: %1 -> %2"
+
+#: fileaccess.cpp:864
+#, kde-format
+msgid "Renaming file: %1 -> %2"
+msgstr "Μετονομασία αρχείου: %1 -> %2"
+
+#: fileaccess.cpp:897
+#, kde-format
+msgid "Copying file: %1 -> %2"
+msgstr "Αντιγραφή αρχείου: %1 -> %2"
+
+#: fileaccess.cpp:911
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for reading failed. Filename: "
+"%1"
+msgstr ""
+"Σφάλμα κατά την αντιγραφή: Το άνοιγμα του αρχείου για ανάγνωση απέτυχε. "
+"Όνομα αρχείου: %1"
+
+#: fileaccess.cpp:917
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for writing failed. Filename: "
+"%1"
+msgstr ""
+"Σφάλμα κατά την αντιγραφή: Το άνοιγμα του αρχείου για εγγραφή απέτυχε. Όνομα "
+"αρχείου: %1"
+
+#: fileaccess.cpp:932
+#, kde-format
+msgid "Error during file copy operation: Reading failed. Filename: %1"
+msgstr "Σφάλμα κατά την αντιγραφή: Η ανάγνωση απέτυχε. Όνομα αρχείου: %1"
+
+#: fileaccess.cpp:941
+#, kde-format
+msgid "Error during file copy operation: Writing failed. Filename: %1"
+msgstr "Σφάλμα κατά την αντιγραφή: Η εγγραφή απέτυχε. Όνομα αρχείου: %1"
+
+#: fileaccess.cpp:1231
+msgid "Reading directory: "
+msgstr "Ανάγνωση καταλόγου: "
+
+#: fileaccess.cpp:1355
+#, kde-format
+msgid "Listing directory: %1"
+msgstr "Εμφάνιση καταλόγου: %1"
+
+#: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396
+msgid "&Cancel"
+msgstr "&Ακύρωση"
+
+#: difftextwindow.cpp:403
+msgid "Line"
+msgstr "Γραμμή"
+
+#: difftextwindow.cpp:405
+msgid "Line not available"
+msgstr "Μη διαθέσιμη γραμμή"
+
+#: difftextwindow.cpp:1703 difftextwindow.cpp:1736
+msgid "Encoding:"
+msgstr "Κωδικοποίηση:"
+
+#: difftextwindow.cpp:1759 kdiff3.cpp:831
+msgid "Top line"
+msgstr "Πάνω γραμμή"
+
+#: difftextwindow.cpp:1769
+msgid "End"
+msgstr "Τέλος"
+
+#: kdiff3.cpp:169
+msgid "Current Configuration:"
+msgstr "Τρέχουσα διαμόρφωση:"
+
+#: kdiff3.cpp:174
+msgid "Config Option Error:"
+msgstr "Σφάλμα διαμόρφωσης επιλογής:"
+
+#: kdiff3.cpp:219
+msgid "Option --auto used, but no output file specified."
+msgstr "Χρησιμοποιήθηκε η επιλογή --auto, αλλά δεν καθορίστηκε αρχείο εξόδου."
+
+#: kdiff3.cpp:369
+msgid "Option --auto ignored for directory comparison."
+msgstr "Η επιλογή --auto αγνοήθηκε για τη σύγκριση καταλόγων."
+
+#: kdiff3.cpp:405
+msgid "Saving failed."
+msgstr "Η αποθήκευση απέτυχε."
+
+#: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214
+msgid "Opening of these files failed:"
+msgstr "Το άνοιγμα αυτών των αρχείων απέτυχε:"
+
+#: kdiff3.cpp:449
+msgid "File Open Error"
+msgstr "Σφάλμα ανοίγματος αρχείου"
+
+#: kdiff3.cpp:477
+msgid "Opens documents for comparison..."
+msgstr "Ανοίγει έγγραφα για σύγκριση..."
+
+#: kdiff3.cpp:479
+msgid "Reload"
+msgstr "Επαναφόρτωση"
+
+#: kdiff3.cpp:482
+msgid "Saves the merge result. All conflicts must be solved!"
+msgstr ""
+"Αποθηκεύει το αποτέλεσμα της συγχώνευσης. Όλες οι συγκρούσεις θα πρέπει να "
+"έχουν επιλυθεί!"
+
+#: kdiff3.cpp:484
+msgid "Saves the current document as..."
+msgstr "Αποθηκεύει το τρέχον έγγραφο ως..."
+
+#: kdiff3.cpp:487
+msgid "Print the differences"
+msgstr "Εκτύπωση των διαφορών"
+
+#: kdiff3.cpp:490
+msgid "Quits the application"
+msgstr "Κλείνει την εφαρμογή"
+
+#: kdiff3.cpp:492
+msgid "Cuts the selected section and puts it to the clipboard"
+msgstr "Αποκοπή του επιλεγμένου τμήματος και τοποθέτηση στο πρόχειρο"
+
+#: kdiff3.cpp:494
+msgid "Copies the selected section to the clipboard"
+msgstr "Αντιγραφή του επιλεγμένου τμήματος στο πρόχειρο"
+
+#: kdiff3.cpp:496
+msgid "Pastes the clipboard contents to current position"
+msgstr "Επικόλληση των περιεχομένων του πρόχειρου στην ενεργή θέση"
+
+#: kdiff3.cpp:498
+msgid "Select everything in current window"
+msgstr "Επιλογή όλων στο τρέχον παράθυρο"
+
+#: kdiff3.cpp:500
+msgid "Search for a string"
+msgstr "Αναζήτηση για μια συμβολοσειρά"
+
+#: kdiff3.cpp:502
+msgid "Search again for the string"
+msgstr "Αναζήτηση ξανά για μια συμβολοσειρά"
+
+#: kdiff3.cpp:507
+msgid "Enables/disables the statusbar"
+msgstr "Ενεργοποιεί/απενεργοποιεί τη γραμμή κατάστασης"
+
+#: kdiff3.cpp:511
+msgid "Configure KDiff3..."
+msgstr "Διαμόρφωση του KDiff3..."
+
+#: kdiff3.cpp:532
+msgid "Go to Current Delta"
+msgstr "Μετάβαση στην τρέχουσα διαφορά"
+
+#: kdiff3.cpp:532
+msgid ""
+"Current\n"
+"Delta"
+msgstr ""
+"Τρέχουσα\n"
+"διαφορά"
+
+#: kdiff3.cpp:534
+msgid "Go to First Delta"
+msgstr "Μετάβαση στη πρώτη διαφορά"
+
+#: kdiff3.cpp:534
+msgid ""
+"First\n"
+"Delta"
+msgstr ""
+"Πρώτη\n"
+"διαφορά"
+
+#: kdiff3.cpp:536
+msgid "Go to Last Delta"
+msgstr "Μετάβαση στην τελευταία διαφορά"
+
+#: kdiff3.cpp:536
+msgid ""
+"Last\n"
+"Delta"
+msgstr ""
+"Τελευταία\n"
+"διαφορά"
+
+#: kdiff3.cpp:538
+msgid "(Skips white space differences when \"Show White Space\" is disabled.)"
+msgstr ""
+"(Παράλειψη των διαφορών στα κενά όταν είναι απενεργοποιημένη η \"Εμφάνιση "
+"κενών\")"
+
+#: kdiff3.cpp:539
+msgid ""
+"(Does not skip white space differences even when \"Show White Space\" is "
+"disabled.)"
+msgstr ""
+"(Μη παράλειψη των διαφορών στα κενά ακόμη και αν είναι απενεργοποιημένη η "
+"\"Εμφάνιση κενών\")"
+
+#: kdiff3.cpp:540
+msgid "Go to Previous Delta"
+msgstr "Μετάβαση στη προηγούμενη διαφορά"
+
+#: kdiff3.cpp:540
+msgid ""
+"Prev\n"
+"Delta"
+msgstr ""
+"Προηγούμενη\n"
+"διαφορά"
+
+#: kdiff3.cpp:542
+msgid "Go to Next Delta"
+msgstr "Μετάβαση στην επόμενη διαφορά"
+
+#: kdiff3.cpp:542
+msgid ""
+"Next\n"
+"Delta"
+msgstr ""
+"Επόμενη\n"
+"διαφορά"
+
+#: kdiff3.cpp:544
+msgid "Go to Previous Conflict"
+msgstr "Μετάβαση στην προηγούμενη σύγκρουση"
+
+#: kdiff3.cpp:544
+msgid ""
+"Prev\n"
+"Conflict"
+msgstr ""
+"Προηγούμενη\n"
+"σύγκρουση"
+
+#: kdiff3.cpp:546
+msgid "Go to Next Conflict"
+msgstr "Μετάβαση στην επόμενη σύγκρουση"
+
+#: kdiff3.cpp:546
+msgid ""
+"Next\n"
+"Conflict"
+msgstr ""
+"Επόμενη\n"
+"σύγκρουση"
+
+#: kdiff3.cpp:548
+msgid "Go to Previous Unsolved Conflict"
+msgstr "Μετάβαση στην προηγούμενη μη λυμένη σύγκρουση"
+
+#: kdiff3.cpp:548
+msgid ""
+"Prev\n"
+"Unsolved"
+msgstr ""
+"Προηγούμενη\n"
+"μη λυμένη"
+
+#: kdiff3.cpp:550
+msgid "Go to Next Unsolved Conflict"
+msgstr "Μετάβαση στην επόμενη μη λυμένη σύγκρουση"
+
+#: kdiff3.cpp:550
+msgid ""
+"Next\n"
+"Unsolved"
+msgstr ""
+"Επόμενη\n"
+"μη λυμένη"
+
+#: kdiff3.cpp:552
+msgid "Select Line(s) From A"
+msgstr "Επιλογή γραμμής(ών) από το Α"
+
+#: kdiff3.cpp:552
+msgid ""
+"Choose\n"
+"A"
+msgstr ""
+"Επιλογή\n"
+"A"
+
+#: kdiff3.cpp:553
+msgid "Select Line(s) From B"
+msgstr "Επιλογή γραμμής(ών) από το Β"
+
+#: kdiff3.cpp:553
+msgid ""
+"Choose\n"
+"B"
+msgstr ""
+"Επιλογή\n"
+"B"
+
+#: kdiff3.cpp:554
+msgid "Select Line(s) From C"
+msgstr "Επιλογή γραμμής(ών) από το Γ"
+
+#: kdiff3.cpp:554
+msgid ""
+"Choose\n"
+"C"
+msgstr ""
+"Επιλογή\n"
+"Γ"
+
+#: kdiff3.cpp:555
+msgid "Automatically Go to Next Unsolved Conflict After Source Selection"
+msgstr ""
+"Αυτόματη μετάβαση στην επόμενη μη λυμένη σύγκρουση μετά την επιλογή πηγής"
+
+#: kdiff3.cpp:555
+msgid ""
+"Auto\n"
+"Next"
+msgstr ""
+"Αυτόματα\n"
+"επόμενο"
+
+#: kdiff3.cpp:557
+msgid "Show Space && Tabulator Characters for Differences"
+msgstr "Εμφάνιση κενών && χαρακτήρων οριοθέτησης για διαφορές"
+
+#: kdiff3.cpp:557
+msgid ""
+"White\n"
+"Characters"
+msgstr ""
+"Κενοί\n"
+"χαρακτήρες"
+
+#: kdiff3.cpp:558
+msgid "Show White Space"
+msgstr "Εμφάνιση κενών"
+
+#: kdiff3.cpp:558
+msgid ""
+"White\n"
+"Deltas"
+msgstr ""
+"Κενές\n"
+"διαφορές"
+
+#: kdiff3.cpp:560
+msgid "Show Line Numbers"
+msgstr "Εμφάνιση αριθμών γραμμής"
+
+#: kdiff3.cpp:560
+msgid ""
+"Line\n"
+"Numbers"
+msgstr ""
+"Αριθμοί\n"
+"γραμμών"
+
+#: kdiff3.cpp:561
+msgid "Choose A Everywhere"
+msgstr "Επιλογή παντού του Α"
+
+#: kdiff3.cpp:562
+msgid "Choose B Everywhere"
+msgstr "Επιλογή παντού του Β"
+
+#: kdiff3.cpp:563
+msgid "Choose C Everywhere"
+msgstr "Επιλογή παντού το Γ"
+
+#: kdiff3.cpp:564
+msgid "Choose A for All Unsolved Conflicts"
+msgstr "Επιλογή του Α για όλες τις μη λυμένες διαφορές"
+
+#: kdiff3.cpp:565
+msgid "Choose B for All Unsolved Conflicts"
+msgstr "Επιλογή του Β για όλες τις μη λυμένες διαφορές"
+
+#: kdiff3.cpp:566
+msgid "Choose C for All Unsolved Conflicts"
+msgstr "Επιλογή του Γ για όλες τις μη λυμένες διαφορές"
+
+#: kdiff3.cpp:567
+msgid "Choose A for All Unsolved Whitespace Conflicts"
+msgstr "Επιλογή του Α για όλες τις μη λυμένες διαφορές κενών"
+
+#: kdiff3.cpp:568
+msgid "Choose B for All Unsolved Whitespace Conflicts"
+msgstr "Επιλογή του Β για όλες τις μη λυμένες διαφορές κενών"
+
+#: kdiff3.cpp:569
+msgid "Choose C for All Unsolved Whitespace Conflicts"
+msgstr "Επιλογή του Γ για όλες τις μη λυμένες διαφορές κενών"
+
+#: kdiff3.cpp:570
+msgid "Automatically Solve Simple Conflicts"
+msgstr "Αυτόματη επίλυση απλών συγκρούσεων"
+
+#: kdiff3.cpp:571
+msgid "Set Deltas to Conflicts"
+msgstr "Ορισμός διαφορών στις συγκρούσεις"
+
+#: kdiff3.cpp:572
+msgid "Run Regular Expression Auto Merge"
+msgstr "Εκτέλεση κανονικής έκφρασης αυτόματης συγχώνευσης"
+
+#: kdiff3.cpp:573
+msgid "Automatically Solve History Conflicts"
+msgstr "Αυτόματη επίλυση συγκρούσεων ιστορικού"
+
+#: kdiff3.cpp:574
+msgid "Split Diff At Selection"
+msgstr "Διαίρεση διαφορών στην επιλογή"
+
+#: kdiff3.cpp:575
+msgid "Join Selected Diffs"
+msgstr "Ένωση των επιλεγμένων διαφορών"
+
+#: kdiff3.cpp:577
+msgid "Show Window A"
+msgstr "Εμφάνιση του παραθύρου Α"
+
+#: kdiff3.cpp:578
+msgid "Show Window B"
+msgstr "Εμφάνιση του παραθύρου Β"
+
+#: kdiff3.cpp:579
+msgid "Show Window C"
+msgstr "Εμφάνιση του παραθύρου Γ"
+
+#: kdiff3.cpp:580 kdiff3.cpp:591
+msgid "Focus Next Window"
+msgstr "Εστίαση στο επόμενο παράθυρο"
+
+#: kdiff3.cpp:582
+msgid "Normal Overview"
+msgstr "Κανονική επισκόπηση"
+
+#: kdiff3.cpp:583
+msgid "A vs. B Overview"
+msgstr "Επισκόπηση Α με το Β"
+
+#: kdiff3.cpp:584
+msgid "A vs. C Overview"
+msgstr "Επισκόπηση Α με το Γ"
+
+#: kdiff3.cpp:585
+msgid "B vs. C Overview"
+msgstr "Επισκόπηση Β με το Γ"
+
+#: kdiff3.cpp:586
+msgid "Word Wrap Diff Windows"
+msgstr "Αναδίπλωση λέξεων στα παράθυρα διαφοράς"
+
+#: kdiff3.cpp:587
+msgid "Add Manual Diff Alignment"
+msgstr "Προσθήκη χειροκίνητης στοίχισης διαφορών"
+
+#: kdiff3.cpp:588
+msgid "Clear All Manual Diff Alignments"
+msgstr "Καθαρισμός όλων των χειροκίνητων στοιχίσεων διαφορών"
+
+#: kdiff3.cpp:593
+msgid "Focus Prev Window"
+msgstr "Εστίαση στο προηγούμενο παράθυρο"
+
+#: kdiff3.cpp:594
+msgid "Toggle Split Orientation"
+msgstr "Εναλλαγή προσανατολισμού διαίρεσης"
+
+#: kdiff3.cpp:596
+msgid "Dir && Text Split Screen View"
+msgstr "Διαίρεση προβολής καταλόγου && κειμένου"
+
+#: kdiff3.cpp:598
+msgid "Toggle Between Dir && Text View"
+msgstr "Εναλλαγή μεταξύ προβολής καταλόγου && κειμένου"
+
+#: kdiff3.cpp:654 pdiff.cpp:1812
+msgid "The merge result hasn't been saved."
+msgstr "Το αποτέλεσμα της συγχώνευσης δεν έχει αποθηκευτεί."
+
+#: kdiff3.cpp:656
+msgid "Save && Quit"
+msgstr "Αποθήκευση && έξοδος"
+
+#: kdiff3.cpp:657
+msgid "Quit Without Saving"
+msgstr "Έξοδος χωρίς αποθήκευση"
+
+#: kdiff3.cpp:665 pdiff.cpp:1823
+msgid "Saving the merge result failed."
+msgstr "Αποτυχία αποθήκευσης του αποτελέσματος συγχώνευσης."
+
+#: kdiff3.cpp:676 pdiff.cpp:1078
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort?"
+msgstr ""
+"Αυτή τη στιγμή εκτελείται μια συγχώνευση καταλόγου. Είστε σίγουροι ότι "
+"επιθυμείτε να την εγκαταλείψετε;"
+
+#: kdiff3.cpp:701
+msgid "Saving file..."
+msgstr "Αποθήκευση αρχείου..."
+
+#: kdiff3.cpp:718
+msgid "Saving file with a new filename..."
+msgstr "Αποθήκευση αρχείου με ένα νέο όνομα..."
+
+#: kdiff3.cpp:781
+msgid "Printing not implemented."
+msgstr "Η εκτύπωση δεν πραγματοποιήθηκε."
+
+#: kdiff3.cpp:815
+msgid "Printing..."
+msgstr "Εκτύπωση..."
+
+#: kdiff3.cpp:956
+msgid "Selection"
+msgstr "Επιλογή"
+
+#: kdiff3.cpp:982
+msgid "Printing completed."
+msgstr "Η εκτύπωση ολοκληρώθηκε."
+
+#: kdiff3.cpp:986
+msgid "Printing aborted."
+msgstr "Εγκατάλειψη εκτύπωσης."
+
+#: kdiff3.cpp:993
+msgid "Exiting..."
+msgstr "Έξοδος..."
+
+#: kdiff3.cpp:1006
+msgid "Toggling toolbar..."
+msgstr "Εναλλαγή γραμμής εργαλείων..."
+
+#: kdiff3.cpp:1027
+msgid "Toggle the statusbar..."
+msgstr "Εναλλαγή της γραμμής κατάστασης..."
+
+#: smalldialogs.cpp:58
+msgid "A (Base):"
+msgstr "Α (Βάση):"
+
+#: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99
+#: smalldialogs.cpp:142
+msgid "File..."
+msgstr "Αρχείο..."
+
+#: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101
+#: smalldialogs.cpp:144
+msgid "Dir..."
+msgstr "Κατάλογος..."
+
+#: smalldialogs.cpp:93
+msgid "C (Optional):"
+msgstr "Γ (Προαιρετικό):"
+
+#: smalldialogs.cpp:116
+msgid "Swap/Copy Names ..."
+msgstr "Εναλλαγή/Αντιγραφή ονομάτων..."
+
+#: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123
+#, kde-format
+msgid "Swap %1<->%2"
+msgstr "Εναλλαγή %1<->%2"
+
+#: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126
+#, kde-format
+msgid "Copy %1->Output"
+msgstr "Αντιγραφή %1->Έξοδο"
+
+#: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129
+#, kde-format
+msgid "Swap %1<->Output"
+msgstr "Εναλλαγή %1<->Έξοδος"
+
+#: smalldialogs.cpp:136
+msgid "Output (optional):"
+msgstr "Έξοδος (προαιρετική):"
+
+#: smalldialogs.cpp:168
+msgid "Configure..."
+msgstr "Διαμόρφωση..."
+
+#: smalldialogs.cpp:174
+msgid "&OK"
+msgstr "&Εντάξει"
+
+#: smalldialogs.cpp:362
+msgid "Search text:"
+msgstr "Αναζήτηση κειμένου:"
+
+#: smalldialogs.cpp:369
+msgid "Case sensitive"
+msgstr "Διάκριση πεζών/κεφαλαίων"
+
+#: smalldialogs.cpp:372
+msgid "Search A"
+msgstr "Αναζήτηση στο Α"
+
+#: smalldialogs.cpp:377
+msgid "Search B"
+msgstr "Αναζήτηση στο Β"
+
+#: smalldialogs.cpp:382
+msgid "Search C"
+msgstr "Αναζήτηση στο Γ"
+
+#: smalldialogs.cpp:387
+msgid "Search output"
+msgstr "Έξοδος αναζήτησης"
+
+#: smalldialogs.cpp:392
+msgid "&Search"
+msgstr "&Αναζήτηση"
+
+#: smalldialogs.cpp:409
+msgid "Regular Expression Tester"
+msgstr "Δοκιμή κανονικής έκφρασης"
+
+#: smalldialogs.cpp:414 optiondialog.cpp:936
+msgid "Auto merge regular expression:"
+msgstr "Κανονική έκφραση αυτόματης συγχώνευσης:"
+
+#: smalldialogs.cpp:422
+msgid "Example auto merge line:"
+msgstr "Παράδειγμα γραμμής αυτόματης συγχώνευσης:"
+
+#: smalldialogs.cpp:424
+msgid "To test auto merge, copy a line as used in your files."
+msgstr ""
+"Για τη δοκιμή αυτόματης συγχώνευσης, αντιγράψτε μια γραμμή όπως αυτή "
+"χρησιμοποιείται στα αρχεία σας."
+
+#: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494
+msgid "Match result:"
+msgstr "Αποτέλεσμα ταιριάσματος:"
+
+#: smalldialogs.cpp:441 optiondialog.cpp:962
+msgid "History start regular expression:"
+msgstr "Κανονική έκφραση έναρξης ιστορικού:"
+
+#: smalldialogs.cpp:449
+msgid "Example history start line (with leading comment):"
+msgstr "Παράδειγμα γραμμής αρχής ιστορικού (χωρίς το σχόλιο που προηγείται):"
+
+#: smalldialogs.cpp:451
+msgid ""
+"Copy a history start line as used in your files,\n"
+"including the leading comment."
+msgstr ""
+"Αντιγραφή μίας γραμμής αρχής ιστορικού όπως αυτή χρησιμοποιείται στα αρχεία "
+"σας,\n"
+"χωρίς να περιληφθεί το σχόλιο που προηγείται."
+
+#: smalldialogs.cpp:469 optiondialog.cpp:972
+msgid "History entry start regular expression:"
+msgstr "Κανονική έκφραση για την έναρξη της καταχώρησης ιστορικού:"
+
+#: smalldialogs.cpp:477
+msgid "History sort key order:"
+msgstr "Σειρά κλειδιών ταξινόμησης ιστορικού:"
+
+#: smalldialogs.cpp:485
+msgid "Example history entry start line (without leading comment):"
+msgstr ""
+"Παράδειγμα γραμμής αρχής καταχώρησης ιστορικού (χωρίς το σχόλιο που "
+"προηγείται):"
+
+#: smalldialogs.cpp:487
+msgid ""
+"Copy a history entry start line as used in your files,\n"
+"but omit the leading comment."
+msgstr ""
+"Αντιγράψτε μία γραμμή αρχής καταχώρησης ιστορικού όπως αυτή χρησιμοποιείται "
+"στα αρχεία σας,\n"
+"χωρίς να περιλάβετε το σχόλιο που προηγείται."
+
+#: smalldialogs.cpp:501
+msgid "Sort key result:"
+msgstr "Αποτέλεσμα κλειδιού ταξινόμησης:"
+
+#: smalldialogs.cpp:508
+msgid "OK"
+msgstr "Εντάξει"
+
+#: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583
+msgid "Match success."
+msgstr "Επιτυχία ταιριάσματος."
+
+#: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589
+msgid "Match failed."
+msgstr "Αποτυχία ταιριάσματος."
+
+#: smalldialogs.cpp:574
+msgid "Opening and closing parentheses do not match in regular expression."
+msgstr ""
+"Αδυναμία ταιριάσματος παρενθέσεων ανοίγματος και κλεισίματος στην κανονική "
+"έκφραση."
+
+#: optiondialog.cpp:367
+msgid "Unicode, 8 bit"
+msgstr "Unicode, 8 bit"
+
+#: optiondialog.cpp:368
+msgid "Unicode"
+msgstr "Unicode"
+
+#: optiondialog.cpp:369
+msgid "Latin1"
+msgstr "Latin1"
+
+#: optiondialog.cpp:388
+msgid "Change this if non-ASCII characters are not displayed correctly."
+msgstr "Τροποποιήστε αυτό αν οι μη ASCII χαρακτήρες δεν εμφανίζονται σωστά."
+
+#: optiondialog.cpp:465
+msgid "Configure"
+msgstr "Διαμόρφωση"
+
+#: optiondialog.cpp:531
+msgid "Font"
+msgstr "Γραμματοσειρά"
+
+#: optiondialog.cpp:532
+msgid "Editor & Diff Output Font"
+msgstr "Γραμματοσειρά επεξεργαστή & εξόδου διαφορών"
+
+#: optiondialog.cpp:556
+msgid "Italic font for deltas"
+msgstr "Πλάγια γραφή για διαφορές"
+
+#: optiondialog.cpp:559
+msgid ""
+"Selects the italic version of the font for differences.\n"
+"If the font doesn't support italic characters, then this does nothing."
+msgstr ""
+"Επιλέγει την πλάγια έκδοση της γραμματοσειράς για τις διαφορές.\n"
+"Αν η γραμματοσειρά δεν υποστηρίζει τους πλάγιους χαρακτήρες, τότε αυτό δεν "
+"έχει αποτέλεσμα."
+
+#: optiondialog.cpp:568
+msgid "Color"
+msgstr "Χρώμα"
+
+#: optiondialog.cpp:569
+msgid "Colors Settings"
+msgstr "Ρυθμίσεις χρωμάτων"
+
+#: optiondialog.cpp:588
+msgid "Editor and Diff Views:"
+msgstr "Προβολές επεξεργαστή και διαφορών:"
+
+#: optiondialog.cpp:596
+msgid "Foreground color:"
+msgstr "Χρώμα προσκηνίου:"
+
+#: optiondialog.cpp:603
+msgid "Background color:"
+msgstr "Χρώμα φόντου:"
+
+#: optiondialog.cpp:612
+msgid "Diff background color:"
+msgstr "Χρώμα φόντου διαφορών:"
+
+#: optiondialog.cpp:620
+msgid "Color A:"
+msgstr "Χρώμα Α:"
+
+#: optiondialog.cpp:628
+msgid "Color B:"
+msgstr "Χρώμα Β:"
+
+#: optiondialog.cpp:636
+msgid "Color C:"
+msgstr "Χρώμα Γ:"
+
+#: optiondialog.cpp:643
+msgid "Conflict color:"
+msgstr "Χρώμα σύγκρουσης:"
+
+#: optiondialog.cpp:651
+msgid "Current range background color:"
+msgstr "Τρέχον εύρος χρώματος φόντου:"
+
+#: optiondialog.cpp:659
+msgid "Current range diff background color:"
+msgstr "Τρέχον εύρος χρώματος φόντου διαφορών:"
+
+#: optiondialog.cpp:666
+msgid "Color for manually aligned difference ranges:"
+msgstr "Χρώμα για χειροκίνητα στοιχισμένα εύρη διαφορών:"
+
+#: optiondialog.cpp:672
+msgid "Directory Comparison View:"
+msgstr "Προβολή σύγκρισης καταλόγου:"
+
+#: optiondialog.cpp:678
+msgid "Newest file color:"
+msgstr "Χρώμα νεότερου αρχείου:"
+
+#: optiondialog.cpp:682
+msgid ""
+"Changing this color will only be effective when starting the next directory "
+"comparison."
+msgstr ""
+"Η τροποποίηση αυτού του χρώματος θα έχει ισχύ κατά την επόμενη σύγκριση "
+"καταλόγου."
+
+#: optiondialog.cpp:687
+msgid "Oldest file color:"
+msgstr "Χρώμα παλαιότερου αρχείου:"
+
+#: optiondialog.cpp:695
+msgid "Middle age file color:"
+msgstr "Χρώμα μέσου αρχείου:"
+
+#: optiondialog.cpp:703
+msgid "Color for missing files:"
+msgstr "Χρώμα αρχείων που λείπουν:"
+
+#: optiondialog.cpp:717
+msgid "Editor"
+msgstr "Επεξεργαστής"
+
+#: optiondialog.cpp:718
+msgid "Editor Behavior"
+msgstr "Συμπεριφορά επεξεργαστή"
+
+#: optiondialog.cpp:732
+msgid "Tab inserts spaces"
+msgstr "Το Tab εισάγει κενά"
+
+#: optiondialog.cpp:735
+msgid ""
+"On: Pressing tab generates the appropriate number of spaces.\n"
+"Off: A tab character will be inserted."
+msgstr ""
+"Ενεργοποιημένο: Πατώντας το tab εισάγεται ο κατάλληλος αριθμός κενών.\n"
+"Απενεργοποιημένο: Θα εισαχθεί ο χαρακτήρας στηλοθέτη (tab)."
+
+#: optiondialog.cpp:741
+msgid "Tab size:"
+msgstr "Μέγεθος στηλοθέτη:"
+
+#: optiondialog.cpp:747
+msgid "Auto indentation"
+msgstr "Αυτόματη χρήση εσοχών"
+
+#: optiondialog.cpp:750
+msgid "On: The indentation of the previous line is used for a new line.\n"
+msgstr ""
+"Ενεργοποιημένο: Η εσοχή της προηγούμενης γραμμής θα χρησιμοποιηθεί για μια "
+"νέα γραμμή.\n"
+
+#: optiondialog.cpp:754
+msgid "Auto copy selection"
+msgstr "Αυτόματη αντιγραφή επιλογής"
+
+#: optiondialog.cpp:757
+msgid ""
+"On: Any selection is immediately written to the clipboard.\n"
+"Off: You must explicitely copy e.g. via Ctrl-C."
+msgstr ""
+"Ενεργοποιημένο: Οποιαδήποτε επιλογή γράφεται άμεσα στο πρόχειρο. "
+"Απενεργοποιημένο: Θα πρέπει να την αντιγράψετε εσείς π.χ. μέσω του Ctrl-C."
+
+#: optiondialog.cpp:768
+msgid "Dos/Windows"
+msgstr "Dos/Windows"
+
+#: optiondialog.cpp:769
+msgid "Autodetect"
+msgstr "Αυτόματη ανίχνευση"
+
+#: optiondialog.cpp:772
+msgid ""
+"Sets the line endings for when an edited file is saved.\n"
+"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A"
+msgstr ""
+"Καθορίζει τον τύπο τέλους γραμμής όταν αποθηκεύεται ένα επεξεργασμένο "
+"αρχείο.\n"
+"DOS/Windows: CR+LF; UNIX: LF; με τα CR=0D, LF=0A"
+
+#: optiondialog.cpp:784
+msgid "Diff"
+msgstr "Diff"
+
+#: optiondialog.cpp:785
+msgid "Diff Settings"
+msgstr "Ρυθμίσεις του Diff"
+
+#: optiondialog.cpp:809
+msgid "Treat as white space."
+msgstr "Θεώρηση ως κενά."
+
+#: optiondialog.cpp:811
+msgid "Ignore numbers"
+msgstr "Παράβλεψη αριθμών"
+
+#: optiondialog.cpp:814
+msgid ""
+"Ignore number characters during line matching phase. (Similar to Ignore "
+"white space.)\n"
+"Might help to compare files with numeric data."
+msgstr ""
+"Παράβλεψη αριθμών κατά τη φάση ταιριάσματος γραμμών. (Αντίστοιχο με την "
+"παράβλεψη κενών).\n"
+"Μπορεί να φανεί χρήσιμο κατά τη σύγκριση αρχείων με αριθμητικά δεδομένα."
+
+#: optiondialog.cpp:819
+msgid "Ignore C/C++ comments"
+msgstr "Παράβλεψη σχολίων C/C++"
+
+#: optiondialog.cpp:821
+msgid "Treat C/C++ comments like white space."
+msgstr "Θεώρηση των σχολίων C/C++ σαν κενά."
+
+#: optiondialog.cpp:825
+msgid "Ignore case"
+msgstr "Αγνόηση διάκρισης πεζών/κεφαλαίων"
+
+#: optiondialog.cpp:828
+msgid "Treat case differences like white space changes. ('a'<=>'A')"
+msgstr "Χειρισμός των διαφορών σε πεζά/κεφαλαία ως αλλαγές κενών. ('α'<=>'Α')"
+
+#: optiondialog.cpp:832
+msgid "Preprocessor command:"
+msgstr "Εντολή προεπεξεργαστή:"
+
+#: optiondialog.cpp:836
+msgid "User defined pre-processing. (See the docs for details.)"
+msgstr ""
+"Προεπεξεργασία ορισμένη από το χρήστη. (Δείτε τα εγχειρίδια για "
+"λεπτομέρειες)."
+
+#: optiondialog.cpp:839
+msgid "Line-matching preprocessor command:"
+msgstr "Εντολή προεπεξεργαστή για ταίριασμα γραμμών:"
+
+#: optiondialog.cpp:843
+msgid ""
+"This pre-processor is only used during line matching.\n"
+"(See the docs for details.)"
+msgstr ""
+"Ο προεπεξεργαστής χρησιμοποιείται μόνο κατά το ταίριασμα γραμμών.\n"
+"(Δείτε τα εγχειρίδια για λεπτομέρειες)."
+
+#: optiondialog.cpp:846
+msgid "Try hard (slower)"
+msgstr "Εις βάθος ανάλυση (πιο αργό)"
+
+#: optiondialog.cpp:849
+msgid ""
+"Enables the --minimal option for the external diff.\n"
+"The analysis of big files will be much slower."
+msgstr ""
+"Ενεργοποιεί την επιλογή --minimal για το εξωτερικό diff.\n"
+"Η ανάλυση μεγάλων αρχείων θα είναι αισθητά πιο αργή."
+
+#: optiondialog.cpp:854
+msgid "Align B and C for 3 input files"
+msgstr "Στοίχιση Β και Γ για 3 αρχεία εισόδου"
+
+#: optiondialog.cpp:857
+msgid ""
+"Try to align B and C when comparing or merging three input files.\n"
+"Not recommended for merging because merge might get more complicated.\n"
+"(Default is off.)"
+msgstr ""
+"Προσπάθεια στοίχισης των Β και Γ κατά τη σύγκριση ή συγχώνευση τριών αρχείων "
+"εισόδου.\n"
+"
Δεν προτείνεται για τις συγχωνεύσεις καθώς αυτή μπορεί να είναι πολύπλοκη "
+"διαδικασία.\n"
+"
(Προκαθορισμένα ανενεργό.)"
+
+#: optiondialog.cpp:870
+msgid "Merge Settings"
+msgstr "Ρυθμίσεις συγχώνευσης"
+
+#: optiondialog.cpp:885
+msgid "Auto advance delay (ms):"
+msgstr "Καθυστέρηση αυτόματης μετάβασης (ms):"
+
+#: optiondialog.cpp:890
+msgid ""
+"When in Auto-Advance mode the result of the current selection is shown \n"
+"for the specified time, before jumping to the next conflict. Range: 0-2000 ms"
+msgstr ""
+"Όταν βρίσκεστε στη λειτουργία αυτόματης μετάβασης εμφανίζεται το αποτέλεσμα "
+"της τρέχουσας επιλογής\n"
+"για τον καθορισμένο χρόνο, πριν την μεταπήδηση στην επόμενη σύγκρουση. "
+"Εύρος: 0-2000 ms"
+
+#: optiondialog.cpp:895
+msgid "Show info dialogs"
+msgstr "Εμφάνιση παραθύρων διαλόγου πληροφοριών"
+
+#: optiondialog.cpp:897
+msgid "Show a dialog with information about the number of conflicts."
+msgstr ""
+"Εμφανίζει ένα παράθυρο διαλόγου με πληροφορία για τον αριθμό των συγκρούσεων."
+
+#: optiondialog.cpp:900
+msgid "White space 2-file merge default:"
+msgstr "Προκαθορισμός κενών διαφορών συγχώνευσης 2 αρχείων:"
+
+#: optiondialog.cpp:904 optiondialog.cpp:917
+msgid "Manual Choice"
+msgstr "Χειροκίνητη επιλογή"
+
+#: optiondialog.cpp:908 optiondialog.cpp:922
+msgid ""
+"Allow the merge algorithm to automatically select an input for white-space-"
+"only changes."
+msgstr ""
+"Επιτρέπει στον αλγόριθμο συγχώνευσης την αυτόματη επιλογή μιας εισόδου για "
+"διαφορές μόνο κενών."
+
+#: optiondialog.cpp:913
+msgid "White space 3-file merge default:"
+msgstr "Προκαθορισμός κενών διαφορών συγχώνευσης 3 αρχείων:"
+
+#: optiondialog.cpp:927
+msgid "Automatic Merge Regular Expression"
+msgstr "Κανονική έκφραση αυτόματης συγχώνευσης"
+
+#: optiondialog.cpp:940
+msgid ""
+"Regular expression for lines where KDiff3 should automatically choose one "
+"source.\n"
+"When a line with a conflict matches the regular expression then\n"
+"- if available - C, otherwise B will be chosen."
+msgstr ""
+"Κανονική έκφραση για γραμμές όπου το KDiff3 θα πρέπει να επιλέξει αυτόματα "
+"μία πηγή.\n"
+"Αν μία γραμμή με σύγκρουση ταιριάζει στην κανονική έκφραση τότε θα επιλεχθεί "
+"το Γ, αν\n"
+"είναι διαθέσιμο, ενώ σε άλλη περίπτωση το Β."
+
+#: optiondialog.cpp:946
+msgid "Run regular expression auto merge on merge start"
+msgstr ""
+"Εκτέλεση κανονικής έκφρασης αυτόματης συγχώνευσης στην αρχή της συγχώνευσης"
+
+#: optiondialog.cpp:948
+msgid ""
+"Run the merge for auto merge regular expressions\n"
+"immediately when a merge starts.\n"
+msgstr ""
+"Εκτέλεση της συγχώνευσης για κανονικές εκφράσεις αυτόματης συγχώνευσης\n"
+"αμέσως μετά την έναρξη της συγχώνευσης.\n"
+
+#: optiondialog.cpp:953
+msgid "Version Control History Merging"
+msgstr "Συγχώνευση ιστορικού ελέγχου έκδοσης"
+
+#: optiondialog.cpp:966
+msgid ""
+"Regular expression for the start of the version control history entry.\n"
+"Usually this line contains the \"$Log$\" keyword.\n"
+"Default value: \".*\\$Log.*\\$.*\""
+msgstr ""
+"Κανονική έκφραση για την έναρξη της καταχώρησης του ιστορικού συγχώνευσης.\n"
+"Συνήθως αυτή η γραμμή περιέχει τη λέξη κλειδί \"$Log$\".\n"
+"Η προκαθορισμένη τιμή είναι: \".*\\$Log.*\\$.*\""
+
+#: optiondialog.cpp:984
+msgid ""
+"A version control history entry consists of several lines.\n"
+"Specify the regular expression to detect the first line (without the leading "
+"comment).\n"
+"Use parentheses to group the keys you want to use for sorting.\n"
+"If left empty, then KDiff3 assumes that empty lines separate history "
+"entries.\n"
+"See the documentation for details."
+msgstr ""
+"Μία καταχώρηση ιστορικού συγχώνευσης αποτελείται από πολλές γραμμές.\n"
+"Καθορίστε την κανονική έκφραση για τον εντοπισμό της πρώτης γραμμής (χωρίς "
+"το σχόλιο που προηγείται).\n"
+"Χρησιμοποιείστε παρενθέσεις για την ομαδοποίηση των κλειδιών που επιθυμείτε "
+"για την ταξινόμηση.\n"
+"Αν ορισθεί σαν κενή, τότε το KDiff3 θεωρεί ότι οι καταχωρήσεις ιστορικού "
+"διαχωρίζονται με κενές γραμμές.\n"
+"Δείτε την τεκμηρίωση για λεπτομέρειες."
+
+#: optiondialog.cpp:992
+msgid "History merge sorting"
+msgstr "Ταξινόμηση ιστορικού συγχώνευσης"
+
+#: optiondialog.cpp:994
+msgid "Sort version control history by a key."
+msgstr "Ταξινόμηση ιστορικού ελέγχου εκδόσεων κατά ένα κλειδί."
+
+#: optiondialog.cpp:1004
+msgid "History entry start sort key order:"
+msgstr "Σειρά ταξινόμησης ιστορικού ελέγχου εκδόσεων:"
+
+#: optiondialog.cpp:1008
+msgid ""
+"Each pair of parentheses used in the regular expression for the history "
+"start entry\n"
+"groups a key that can be used for sorting.\n"
+"Specify the list of keys (that are numbered in order of occurrence\n"
+"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n"
+"If left empty, then no sorting will be done.\n"
+"See the documentation for details."
+msgstr ""
+"Κάθε ζεύγος παρενθέσεων της κανονικής έκφρασης για την έναρξη καταχώρησης "
+"ιστορικού\n"
+"δημιουργεί ένα κλειδί που μπορεί να χρησιμοποιηθεί για ταξινόμηση.\n"
+"Καθορίστε τη λίστα των κλειδιών (τα οποία αριθμούνται με σειρά εμφάνισης\n"
+"ξεκινώντας από το 1) χρησιμοποιώντας το ',' ως διαχωριστικό (π.χ. "
+"\"4,5,6,1,2,3,7\").\n"
+"Αν μείνει κενό, τότε δεν θα γίνει ταξινόμηση.\n"
+"Δείτε την τεκμηρίωση για λεπτομέρειες."
+
+#: optiondialog.cpp:1019
+msgid "Merge version control history on merge start"
+msgstr "Συγχώνευση ιστορικού ελέγχου έκδοσης κατά την έναρξη συγχώνευσης"
+
+#: optiondialog.cpp:1021
+msgid "Run version control history automerge on merge start."
+msgstr ""
+"Εκτέλεση συγχώνευσης ιστορικού ελέγχου έκδοσης κατά την έναρξη συγχώνευσης."
+
+#: optiondialog.cpp:1025
+msgid "Max number of history entries:"
+msgstr "Μέγιστος αριθμός καταχωρήσεων ιστορικού:"
+
+#: optiondialog.cpp:1028
+msgid "Cut off after specified number. Use -1 for infinite number of entries."
+msgstr ""
+"Αφαίρεση μετά από καθορισμένο αριθμό. Χρησιμοποιήστε το -1 για απεριόριστο "
+"αριθμό καταχωρήσεων."
+
+#: optiondialog.cpp:1032
+msgid "Test your regular expressions"
+msgstr "Δοκιμή των κανονικών εκφράσεών σας"
+
+#: optiondialog.cpp:1037
+msgid "Irrelevant merge command:"
+msgstr "Εντολή συγχώνευσης με σχετικού:"
+
+#: optiondialog.cpp:1041
+msgid ""
+"If specified this script is run after automerge\n"
+"when no other relevant changes were detected.\n"
+"Called with the parameters: filename1 filename2 filename3"
+msgstr ""
+"Αν καθοριστεί αυτό το σενάριο εκτελείται μετά την αυτόματη συγχώνευση\n"
+"όταν δεν εντοπιστούν άλλες σχετικές τροποποιήσεις.\n"
+"Καλείται με παραμέτρους τα: όνομααρχείου1 όνομααρχείου2 όνομααρχείου3"
+
+#: optiondialog.cpp:1047
+msgid "Auto save and quit on merge without conflicts"
+msgstr "Αυτόματη αποθήκευση και έξοδος κατά τη συγχώνευση χωρίς συγκρούσεις"
+
+#: optiondialog.cpp:1050
+msgid ""
+"If KDiff3 was started for a file-merge from the command line and all\n"
+"conflicts are solvable without user interaction then automatically save and "
+"quit.\n"
+"(Similar to command line option \"--auto\".)"
+msgstr ""
+"Όταν το KDiff3 εκκινήσει για κάποια συγχώνευση αρχείου από τη γραμμή "
+"εντολών\n"
+"και όλες οι συγκρούσεις είναι επιλύσιμες χωρίς είσοδο από το χρήστη τότε "
+"γίνεται αυτόματη αποθήκευση και έξοδος.\n"
+"(Παρόμοιο με την επιλογή της γραμμής εντολών \"--auto\"."
+
+#: optiondialog.cpp:1061 optiondialog.cpp:1062
+msgid "Directory"
+msgstr "Κατάλογος"
+
+#: optiondialog.cpp:1075
+msgid "Recursive directories"
+msgstr "Αναδρομικά στους καταλόγους"
+
+#: optiondialog.cpp:1077
+msgid "Whether to analyze subdirectories or not."
+msgstr "Αν θα αναλυθούν οι υποκατάλογοι ή όχι."
+
+#: optiondialog.cpp:1079
+msgid "File pattern(s):"
+msgstr "Μοτίβα αρχείου:"
+
+#: optiondialog.cpp:1084
+msgid ""
+"Pattern(s) of files to be analyzed. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Μοτίβα αρχείων που θα αναλυθούν. \n"
+"Σύμβολα υποκατάστασης: '*' και '?'\n"
+"Μπορούν να οριστούν πολλαπλά μοτίβα χρησιμοποιώντας το διαχωριστικό: ';'"
+
+#: optiondialog.cpp:1090
+msgid "File-anti-pattern(s):"
+msgstr "Αντίστροφα μοτίβα αρχείου:"
+
+#: optiondialog.cpp:1095
+msgid ""
+"Pattern(s) of files to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Μοτίβα αρχείων που θα εξαιρεθούν από την ανάλυση. \n"
+"Σύμβολα υποκατάστασης: '*' και '?'\n"
+"Μπορούν να οριστούν πολλαπλά μοτίβα χρησιμοποιώντας το διαχωριστικό: ';'"
+
+#: optiondialog.cpp:1101
+msgid "Dir-anti-pattern(s):"
+msgstr "Αντίστροφα μοτίβα καταλόγου:"
+
+#: optiondialog.cpp:1106
+msgid ""
+"Pattern(s) of directories to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Μοτίβα καταλόγων που θα εξαιρεθούν από την ανάλυση. \n"
+"Σύμβολα υποκατάστασης: '*' και '?'\n"
+"Μπορούν να οριστούν πολλαπλά μοτίβα χρησιμοποιώντας το διαχωριστικό: ';'"
+
+#: optiondialog.cpp:1112
+msgid "Use .cvsignore"
+msgstr "Χρήση .cvsignore"
+
+#: optiondialog.cpp:1115
+msgid ""
+"Extends the antipattern to anything that would be ignored by CVS.\n"
+"Via local \".cvsignore\" files this can be directory specific."
+msgstr ""
+"Επέκταση του αντίστροφου μοτίβου σε οτιδήποτε που θα αγνοηθεί στο CVS.\n"
+"Μέσω των τοπικών αρχείων \".cvsignore\" μπορεί αυτό να είναι συγκεκριμένου "
+"καταλόγου."
+
+#: optiondialog.cpp:1120
+msgid "Find hidden files and directories"
+msgstr "Αναζήτηση κρυφών αρχείων και καταλόγων"
+
+#: optiondialog.cpp:1123
+msgid "Finds files and directories with the hidden attribute."
+msgstr "Αναζητεί αρχεία και καταλόγους που είναι κρυφά."
+
+#: optiondialog.cpp:1125
+msgid "Finds files and directories starting with '.'."
+msgstr "Αναζητεί αρχεία και καταλόγους που αρχίζουν με '.'."
+
+#: optiondialog.cpp:1129
+msgid "Follow file links"
+msgstr "Ακολούθηση δεσμών αρχείων"
+
+#: optiondialog.cpp:1132
+msgid ""
+"On: Compare the file the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+"Ενεργοποιημένο: Σύγκριση του αρχείου στο οποίο δείχνει ο δεσμός.\n"
+"Απενεργοποιημένο: Σύγκριση των δεσμών."
+
+#: optiondialog.cpp:1137
+msgid "Follow directory links"
+msgstr "Ακολούθηση δεσμών καταλόγων"
+
+#: optiondialog.cpp:1140
+msgid ""
+"On: Compare the directory the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+"Ενεργοποιημένο: Σύγκριση του καταλόγου στο οποίο δείχνει ο δεσμός.\n"
+"Απενεργοποιημένο: Σύγκριση των δεσμών."
+
+#: optiondialog.cpp:1156
+msgid "Case sensitive filename comparison"
+msgstr "Σύγκριση αρχείων με ευαισθησία κεφαλαίων/πεζών"
+
+#: optiondialog.cpp:1159
+msgid ""
+"The directory comparison will compare files or directories when their names "
+"match.\n"
+"Set this option if the case of the names must match. (Default for Windows is "
+"off, otherwise on.)"
+msgstr ""
+"Η σύγκριση καταλόγων θα εκτελέσει σύγκριση των αρχείων όταν ταιριάζουν τα "
+"ονόματά τους.\n"
+"Ενεργοποιήστε αυτή την επιλογή όταν τα ονόματα των αρχείων πρέπει να "
+"ταιριάζουν. (Προκαθορισμένο για τα Windows είναι ανενεργό, ενώ σε άλλη "
+"περίπτωση είναι ενεργό.)"
+
+#: optiondialog.cpp:1163
+msgid "File Comparison Mode"
+msgstr "Λειτουργία σύγκρισης αρχείου"
+
+#: optiondialog.cpp:1169
+msgid "Binary comparison"
+msgstr "Δυαδική σύγκριση"
+
+#: optiondialog.cpp:1170
+msgid "Binary comparison of each file. (Default)"
+msgstr "Δυαδική σύγκριση του κάθε αρχείου (Προκαθορισμένο)"
+
+#: optiondialog.cpp:1173
+msgid "Full analysis"
+msgstr "Πλήρης ανάλυση"
+
+#: optiondialog.cpp:1174
+msgid ""
+"Do a full analysis and show statistics information in extra columns.\n"
+"(Slower than a binary comparison, much slower for binary files.)"
+msgstr ""
+"Πραγματοποιεί πλήρη ανάλυση και εμφανίζει στατιστικά σε επιπλέον στήλες.\n"
+"(Πιο αργό από τη δυαδική σύγκριση, και πολύ πιο αργό για δυαδικά αρχεία)."
+
+#: optiondialog.cpp:1178
+msgid "Trust the size and modification date (unsafe)"
+msgstr "Εμπιστοσύνη στο μέγεθος και την ημερομηνία τροποποίησης (μη ασφαλές)"
+
+#: optiondialog.cpp:1179
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"Files with equal contents but different modification dates will appear as "
+"different.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"Θεώρησε ότι τα αρχεία είναι ίσα αν η ημερομηνία τροποποίησης και το μέγεθος "
+"των αρχείων είναι ίσα.\n"
+"Αρχεία με ίσα περιεχόμενα αλλά διαφορετικές ημερομηνίες τροποποίησης θα "
+"εμφανίζονται ως διαφορετικά.\n"
+"Χρήσιμο για μεγάλους καταλόγους ή αργά δίκτυα."
+
+#: optiondialog.cpp:1184
+msgid ""
+"Trust the size and date, but use binary comparison if date does not match "
+"(unsafe)"
+msgstr ""
+"Δείξτε εμπιστοσύνη στο μέγεθος και στην ημερομηνία, αλλά χρησιμοποιήστε "
+"δυαδική σύγκριση αν η ημερομηνία δεν είναι ίδια (μη ασφαλές)"
+
+#: optiondialog.cpp:1185
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"If the dates are not equal but the sizes are, use binary comparison.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"Θεωρείστε ότι τα αρχεία είναι ίσα αν η ημερομηνία τροποποίησης και το "
+"μέγεθος των αρχείων είναι ίσα.\n"
+"Αν οι ημερομηνίες δεν είναι ίσες αλλά τα μεγέθη είναι, τότε να γίνει χρήση "
+"δυαδικής σύγκρισης.\n"
+"Χρήσιμο για μεγάλους καταλόγους ή αργά δίκτυα."
+
+#: optiondialog.cpp:1190
+msgid "Trust the size (unsafe)"
+msgstr "Δείξτε εμπιστοσύνη στο μέγεθος (μη ασφαλές)"
+
+#: optiondialog.cpp:1191
+msgid ""
+"Assume that files are equal if their file lengths are equal.\n"
+"Useful for big directories or slow networks when the date is modified during "
+"download."
+msgstr ""
+"Θεώρησε ότι τα αρχεία είναι ίσα αν το μέγεθος των αρχείων είναι ίσο.\n"
+"Χρήσιμο για μεγάλους καταλόγους ή αργά δίκτυα όπου η ημερομηνία "
+"τροποποιείται κατά τη λήψη."
+
+#: optiondialog.cpp:1199
+msgid "Synchronize directories"
+msgstr "Συγχρονισμός καταλόγων"
+
+#: optiondialog.cpp:1202
+msgid ""
+"Offers to store files in both directories so that\n"
+"both directories are the same afterwards.\n"
+"Works only when comparing two directories without specifying a destination."
+msgstr ""
+"Προσφέρει την αποθήκευση αρχείων και στους δύο καταλόγους\n"
+"ώστε στο τέλος οι δύο κατάλογοι να είναι ίδιοι.\n"
+"Δουλεύει μόνο κατά τη σύγκριση δύο καταλόγων χωρίς να έχει καθοριστεί "
+"προορισμός."
+
+#: optiondialog.cpp:1208
+msgid "White space differences considered equal"
+msgstr "Οι διαφορές των κενών θεωρούνται ίσες"
+
+#: optiondialog.cpp:1211
+msgid ""
+"If files differ only by white space consider them equal.\n"
+"This is only active when full analysis is chosen."
+msgstr ""
+"Αν τα αρχεία διαφέρουν μόνο σε κενούς χαρακτήρες θεωρούνται ότι είναι ίσα.\n"
+"Αυτό είναι ενεργοποιημένο μόνο όταν επιλεγεί η πλήρης ανάλυση."
+
+#: optiondialog.cpp:1217
+msgid "Copy newer instead of merging (unsafe)"
+msgstr "Αντιγραφή του νεότερου αντί για συγχώνευση (μη ασφαλές)"
+
+#: optiondialog.cpp:1220
+msgid ""
+"Don't look inside, just take the newer file.\n"
+"(Use this only if you know what you are doing!)\n"
+"Only effective when comparing two directories."
+msgstr ""
+"Να μη γίνει ανάλυση, αλλά απλά να ληφθεί το νεότερο αρχείο.\n"
+"(Χρησιμοποιήστε το μόνο αν ξέρετε τι κάνετε!)\n"
+"Δουλεύει μόνο όταν συγκρίνονται δύο κατάλογοι."
+
+#: optiondialog.cpp:1225
+msgid "Backup files (.orig)"
+msgstr "Δημιουργία αντιγράφων ασφαλείας (.orig)"
+
+#: optiondialog.cpp:1228
+msgid ""
+"If a file would be saved over an old file, then the old file\n"
+"will be renamed with a '.orig' extension instead of being deleted."
+msgstr ""
+"Όταν ένα αρχείο αποθηκευτεί με το όνομα ενός υπάρχοντος αρχείου, το υπάρχον "
+"αρχείο θα μετονομαστεί με επέκταση '.orig' αντί να διαγραφεί."
+
+#: optiondialog.cpp:1301 optiondialog.cpp:1302
+msgid "Regional Settings"
+msgstr "Ρυθμίσεις περιοχής"
+
+#: optiondialog.cpp:1402
+msgid "Language (restart required)"
+msgstr "Γλώσσα (απαιτείται επανεκκίνηση)"
+
+#: optiondialog.cpp:1445
+msgid ""
+"Choose the language of the GUI strings or \"Auto\".\n"
+"For a change of language to take place, quit and restart KDiff3."
+msgstr ""
+"Επιλέξτε τη γλώσσα των μηνυμάτων του γραφικού περιβάλλοντος ή επιλέξτε "
+"\"Αυτόματη\".\n"
+"Για να γίνει η αλλαγή της γλώσσας, επανεκκινήστε το KDiff3."
+
+#: optiondialog.cpp:1463
+msgid "Use the same encoding for everything:"
+msgstr "Χρήση της ίδιας κωδικοποίησης παντού:"
+
+#: optiondialog.cpp:1466
+msgid ""
+"Enable this allows to change all encodings by changing the first only.\n"
+"Disable this if different individual settings are needed."
+msgstr ""
+"Ενεργοποιώντας αυτή την επιλογή επιτρέπει την αλλαγή όλων των κωδικοποιήσεων "
+"αλλάζοντας μόνο την πρώτη.\n"
+"Απενεργοποιήστε αυτή την επιλογή αν χρειάζεστε διαφορετικές επί μέρους "
+"επιλογές."
+
+#: optiondialog.cpp:1471
+msgid "Note: Local Encoding is "
+msgstr "Σημείωση: Η τοπική κωδικοποίηση είναι "
+
+#: optiondialog.cpp:1475
+msgid "File Encoding for A:"
+msgstr "Κωδικοποίηση αρχείου για το Α:"
+
+#: optiondialog.cpp:1481
+msgid ""
+"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n"
+"If the file is not Unicode then the selected encoding will be used as "
+"fallback.\n"
+"(Unicode detection depends on the first bytes of a file.)"
+msgstr ""
+"Αν ενεργοποιηθεί θα γίνει ανίχνευση της κωδικοποίησης Unicode (UTF-16 or "
+"UTF-8).\n"
+"Αν το αρχείο δεν είναι Unicode θα χρησιμοποιηθεί η επιλεγμένη κωδικοποίηση.\n"
+"(Η ανίχνευση του Unicode εξαρτάται από τα πρώτα byte του αρχείου.)"
+
+#: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503
+msgid "Auto Detect Unicode"
+msgstr "Αυτόματη ανίχνευση Unicode"
+
+#: optiondialog.cpp:1490
+msgid "File Encoding for B:"
+msgstr "Κωδικοποίηση αρχείου για το Β:"
+
+#: optiondialog.cpp:1499
+msgid "File Encoding for C:"
+msgstr "Κωδικοποίηση αρχείου για το Γ:"
+
+#: optiondialog.cpp:1508
+msgid "File Encoding for Merge Output and Saving:"
+msgstr "Κωδικοποίηση αρχείου για την έξοδο συγχώνευσης και την αποθήκευση:"
+
+#: optiondialog.cpp:1512
+msgid "Auto Select"
+msgstr "Αυτόματη επιλογή"
+
+#: optiondialog.cpp:1515
+msgid ""
+"If enabled then the encoding from the input files is used.\n"
+"In ambiguous cases a dialog will ask the user to choose the encoding for "
+"saving."
+msgstr ""
+"Αν ενεργοποιηθεί, θα χρησιμοποιηθεί η κωδικοποίηση του αρχείου εισόδου.\n"
+"Σε περίπτωση αμφιβολίας θα εμφανιστεί ένα παράθυρο διαλόγου όπου ο χρήστης "
+"θα πρέπει να επιλέξει την κωδικοποίηση για την αποθήκευση."
+
+#: optiondialog.cpp:1519
+msgid "File Encoding for Preprocessor Files:"
+msgstr "Κωδικοποίηση για τα αρχεία του προεπεξεργαστή:"
+
+#: optiondialog.cpp:1530
+msgid "Right To Left Language"
+msgstr "Γλώσσας αναγνώσιμη από δεξιά στα  αριστερά"
+
+#: optiondialog.cpp:1533
+msgid ""
+"Some languages are read from right to left.\n"
+"This setting will change the viewer and editor accordingly."
+msgstr ""
+"Μερικές γλώσσες διαβάζονται από δεξιά στα αριστερά.\n"
+"Αυτή η ρύθμιση θα τροποποίηση τον προβολέα και τον επεξεργαστή κατάλληλα."
+
+#: optiondialog.cpp:1548
+msgid "Integration"
+msgstr "Ενσωμάτωση"
+
+#: optiondialog.cpp:1549
+msgid "Integration Settings"
+msgstr "Ρυθμίσεις ενσωμάτωσης"
+
+#: optiondialog.cpp:1563
+msgid "Command line options to ignore:"
+msgstr "Επιλογές γραμμής εντολών για αγνόηση:"
+
+#: optiondialog.cpp:1568
+msgid ""
+"List of command line options that should be ignored when KDiff3 is used by "
+"other tools.\n"
+"Several values can be specified if separated via ';'\n"
+"This will suppress the \"Unknown option\" error."
+msgstr ""
+"Λίστα τον επιλογών της γραμμής εντολών που θα πρέπει να αγνοηθούν όταν το "
+"KDiff3 χρησιμοποιείται από άλλα εργαλεία.\n"
+"Μπορούν να ορισθούν πολλές τιμές διαχωρισμένες με το ';'\n"
+"Αυτό καταστέλλει το σφάλμα \"Άγνωστης επιλογής\"."
+
+#: optiondialog.cpp:1575
+msgid "Quit also via Escape key"
+msgstr "Έξοδος επίσης και με το πλήκτρο Esc"
+
+#: optiondialog.cpp:1578
+msgid ""
+"Fast method to exit.\n"
+"For those who are used to using the Escape key."
+msgstr ""
+"Γρήγορη μέθοδος εξόδου.\n"
+"
Γι' αυτούς που έχουν συνηθίσει τη χρήση του πλήκτρου Esc."
+
+#: optiondialog.cpp:1583
+msgid "Integrate with ClearCase"
+msgstr "Ενσωμάτωση με το ClearCase"
+
+#: optiondialog.cpp:1586
+msgid ""
+"Integrate with Rational ClearCase from IBM.\n"
+"Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n"
+"(Only enabled when ClearCase \"bin\" directory is in the path.)"
+msgstr ""
+"Ενσωμάτωση με το Rational ClearCase από την IBM.\n"
+"Τροποποιεί το αρχείο \"map\" στον υποκατάλογο ClearCase \"lib/mgrs\"\n"
+"(Ενεργοποιημένο μόνο αν ο κατάλογος \"bin\" του ClearCase βρίσκεται στη "
+"διαδρομή του συστήματος.)"
+
+#: optiondialog.cpp:1592
+msgid "Remove ClearCase Integration"
+msgstr "Αφαίρεση ενσωμάτωσης ClearCase"
+
+#: optiondialog.cpp:1595
+msgid ""
+"Restore the old \"map\" file from before doing the ClearCase integration."
+msgstr ""
+"Επαναφορά του παλιού αρχείου \"map\" πριν την εκτέλεση ενσωμάτωσης Clearcase."
+
+#: optiondialog.cpp:1680
+msgid "Incompatible Font"
+msgstr "Μη συμβατή γραμματοσειρά"
+
+#: optiondialog.cpp:1681
+msgid "Continue at Own Risk"
+msgstr "Συνέχεια με δικιά σας ευθύνη"
+
+#: optiondialog.cpp:1682
+msgid "Select Another Font"
+msgstr "Επιλέξτε μία άλλη γραμματοσειρά"
+
+#: optiondialog.cpp:1717
+msgid "This resets all options. Not only those of the current topic."
+msgstr ""
+"Αυτό επαναφέρει όλες τις επιλογές. Όχι μόνο αυτές του τρέχοντος θέματος."
+
+#: pdiff.cpp:260
+msgid "PreprocessorCmd: "
+msgstr "Εντολή προεπεξεργαστή: "
+
+#: pdiff.cpp:265
+msgid "The following option(s) you selected might change data:\n"
+msgstr "Οι ακόλουθες επιλογές που κάνατε ίσως τροποποιήσουν δεδομένα:\n"
+
+#: pdiff.cpp:266
+msgid ""
+"\n"
+"Most likely this is not wanted during a merge.\n"
+"Do you want to disable these settings or continue with these settings active?"
+msgstr ""
+"\n"
+"Το πιθανότερο είναι ότι αυτό δεν είναι επιθυμητό κατά τη συγχώνευση.\n"
+"Θέλετε να απενεργοποιήσετε αυτές τις επιλογές ή να συνεχίσετε όπως είναι;"
+
+#: pdiff.cpp:268
+msgid "Option Unsafe for Merging"
+msgstr "Μη ασφαλής επιλογή για συγχώνευση"
+
+#: pdiff.cpp:269
+msgid "Use These Options During Merge"
+msgstr "Χρήση αυτών των επιλογών κατά τη συγχώνευση"
+
+#: pdiff.cpp:270
+msgid "Disable Unsafe Options"
+msgstr "Απενεργοποίηση μη ασφαλών επιλογών"
+
+#: pdiff.cpp:300
+msgid "Loading A"
+msgstr "Φόρτωση του Α"
+
+#: pdiff.cpp:304
+msgid "Loading B"
+msgstr "Φόρτωση του Β"
+
+#: pdiff.cpp:321 pdiff.cpp:347
+msgid "Diff: A <-> B"
+msgstr "Διαφορά: Α <-> Β"
+
+#: pdiff.cpp:327 pdiff.cpp:372
+msgid "Linediff: A <-> B"
+msgstr "Διαφορά γραμμής: Α <-> Β"
+
+#: pdiff.cpp:338
+msgid "Loading C"
+msgstr "Φόρτωση του Γ"
+
+#: pdiff.cpp:350
+msgid "Diff: B <-> C"
+msgstr "Διαφορά: Β <-> Γ"
+
+#: pdiff.cpp:353
+msgid "Diff: A <-> C"
+msgstr "Διαφορά: Α <-> Γ"
+
+#: pdiff.cpp:375
+msgid "Linediff: B <-> C"
+msgstr "Διαφορά γραμμής: Β <-> Γ"
+
+#: pdiff.cpp:378
+msgid "Linediff: A <-> C"
+msgstr "Διαφορά γραμμής: Α <-> Γ"
+
+#: pdiff.cpp:534
+msgid "All input files contain the same text, but are not binary equal."
+msgstr ""
+"Όλα τα αρχεία εισόδου περιέχουν το ίδιο κείμενο, αλλά δεν είναι δυαδικά ίσα."
+
+#: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541
+#, kde-format
+msgid "Files %1 and %2 have equal text, but are not binary equal. \n"
+msgstr ""
+"Τα αρχεία %1 και %2 περιέχουν το ίδιο κείμενο, αλλά δεν είναι δυαδικά ίσα.\n"
+
+#: pdiff.cpp:551
+msgid ""
+"Some inputfiles don't seem to be pure textfiles.\n"
+"Note that the KDiff3-merge was not meant for binary data.\n"
+"Continue at your own risk."
+msgstr ""
+"Μερικά από τα αρχεία εισόδου δε φαίνεται να είναι αρχεία κειμένου.\n"
+"Σημειώστε ότι το KDiff3-merge δε φτιάχτηκε για δυαδικά δεδομένα.\n"
+"Αν συνεχίσετε θα είναι με δική σας ευθύνη."
+
+#: pdiff.cpp:566
+#, kde-format
+msgid ""
+"Some input characters could not be converted to valid unicode.\n"
+"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n"
+"Don't save the result if unsure. Continue at your own risk.\n"
+"Affected input files are in %1."
+msgstr ""
+"Κάποιοι χαρακτήρες εισόδου δεν ήταν δυνατό να μετατραπούν σε έγκυρο "
+"unicode.\n"
+"Ίσως χρησιμοποιείτε λανθασμένο τύπο κωδικοποίησης (π.χ. UTF-8 για μη UTF-8 "
+"αρχεία).\n"
+"Μην αποθηκεύσετε το αποτέλεσμα αν δεν είστε βέβαιοι. Συνεχίστε με δική σας "
+"ευθύνη.\n"
+"Τα επηρεαζόμενα αρχεία εισόδου είναι στο %1."
+
+#: pdiff.cpp:1080
+msgid "Abort"
+msgstr "Εγκατάλειψη"
+
+#: pdiff.cpp:1087 pdiff.cpp:1175
+msgid "Opening files..."
+msgstr "Άνοιγμα αρχείων..."
+
+#: pdiff.cpp:1152 pdiff.cpp:1223
+msgid "File open error"
+msgstr "Σφάλμα ανοίγματος αρχείου"
+
+#: pdiff.cpp:1255
+msgid "Cutting selection..."
+msgstr "Αποκοπή επιλογής..."
+
+#: pdiff.cpp:1276
+msgid "Copying selection to clipboard..."
+msgstr "Αντιγραφή της επιλογής στο πρόχειρο..."
+
+#: pdiff.cpp:1292
+msgid "Inserting clipboard contents..."
+msgstr "Εισαγωγή των περιεχομένων του προχείρου..."
+
+#: pdiff.cpp:1814
+msgid "Save && Continue"
+msgstr "Αποθήκευση && συνέχεια"
+
+#: pdiff.cpp:1815
+msgid "Continue Without Saving"
+msgstr "Συνέχεια χωρίς αποθήκευση"
+
+#: pdiff.cpp:2018
+msgid "Search complete."
+msgstr "Η αναζήτηση ολοκληρώθηκε."
+
+#: pdiff.cpp:2018
+msgid "Search Complete"
+msgstr "Η αναζήτηση ολοκληρώθηκε"
+
+#: pdiff.cpp:2252
+msgid "Nothing is selected in either diff input window."
+msgstr "Δεν έχει επιλεγεί τίποτα σε κανένα παράθυρο εισαγωγής διαφορών."
+
+#: pdiff.cpp:2252
+msgid "Error while adding manual diff range"
+msgstr "Σφάλμα κατά την προσθήκη χειροκίνητου εύρους διαφορών"
+
+#: kdiff3_shell.cpp:76
+msgid ""
+"Could not initialize the KDiff3 part.\n"
+"This usually happens due to an installation problem. Please read the README-"
+"file in the source package for details."
+msgstr ""
+"Αδυναμία αρχικοποίησης του τμήματος του KDiff3\n"
+"Αυτό συνήθως συμβαίνει εξαιτίας ενός προβλήματος εγκατάστασης. Παρακαλώ "
+"διαβάστε το αρχείο README στο πακέτο του πηγαίου κώδικα για λεπτομέρειες."
+
+#: rc.cpp:1
+msgctxt "NAME OF TRANSLATORS"
+msgid "Your names"
+msgstr "Τούσης Μανώλης, Γιώργος Πάντσης"
+
+#: rc.cpp:2
+msgctxt "EMAIL OF TRANSLATORS"
+msgid "Your emails"
+msgstr "manolis@koppermind.homelinux.org, gpantsis@gmail.com"
+
+#. i18n: file: kdiff3_part.rc:4
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:5
+msgid "&KDiff3"
+msgstr "&KDiff3"
+
+#. i18n: file: kdiff3_part.rc:13
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:8
+msgid "Configure KDiff3"
+msgstr "Διαμόρφωση του KDiff3"
+
+#. i18n: file: kdiff3_part.rc:16
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:11
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#. i18n: file: kdiff3_shell.rc:106
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:38
+msgid "Main Toolbar"
+msgstr "Κύρια γραμμή εργαλείων"
+
+#~ msgid "Directory Merge"
+#~ msgstr "Συγχώνευση καταλόγου"
diff --git a/po/el/kdiff3fileitemactionplugin.po b/po/el/kdiff3fileitemactionplugin.po
new file mode 100644 (file)
index 0000000..a883c2c
--- /dev/null
@@ -0,0 +1,99 @@
+# el translation of kdiff3fileitemactionplugin.po
+# Copyright (C) YEAR This_file_is_part_of_KDE
+# This file is distributed under the same license as the PACKAGE package.
+#
+#
+# Stelios <sstavra@gmail.com>, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3fileitemactionplugin\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-07-26 04:33+0300\n"
+"Last-Translator: Stelios <sstavra@gmail.com>\n"
+"Language-Team: American English <kde-i18n-el@kde.org>\n"
+"Language: en_US\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Lokalize 1.2\n"
+
+#: kdiff3fileitemaction.cpp:94
+msgid "KDiff3 ..."
+msgstr "KDiff3 ..."
+
+#: kdiff3fileitemaction.cpp:125
+#, kde-format
+msgid "Compare with %1"
+msgstr "Σύγκριση με %1"
+
+#: kdiff3fileitemaction.cpp:131
+#, kde-format
+msgid "Merge with %1"
+msgstr "Συγχώνευση με %1"
+
+#: kdiff3fileitemaction.cpp:137
+#, kde-format
+msgid "Save '%1' for later"
+msgstr "αποθήκευση του '%1' για αργότερα"
+
+#: kdiff3fileitemaction.cpp:143
+msgid "3-way merge with base"
+msgstr "Τριπλή συγχώνευση με τη βάση"
+
+#: kdiff3fileitemaction.cpp:150
+msgid "Compare with ..."
+msgstr "Σύγκριση με ..."
+
+#: kdiff3fileitemaction.cpp:162
+msgid "Clear list"
+msgstr "Καθαρισμός λίστας"
+
+#: kdiff3fileitemaction.cpp:170
+msgid "Compare"
+msgstr "Σύγκριση"
+
+#: kdiff3fileitemaction.cpp:176
+msgid "3 way comparison"
+msgstr "Τριπλή σύγκριση"
+
+#: kdiff3fileitemaction.cpp:180
+msgid "About KDiff3 menu plugin ..."
+msgstr "Σχετικά με το πρόσθετο για το μενού του KDiff3 ..."
+
+#: kdiff3fileitemaction.cpp:284
+msgid ""
+"KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+"Πρόσθετο ενέργειας αντικειμένου αρχείου KDiff3: Copyright (C) 2011 Joachim "
+"Eibl\n"
+"Ιστοσελίδα KDiff3: http://kdiff3.sourceforge.net\n"
+
+#: kdiff3fileitemaction.cpp:286
+msgid ""
+"Using the contextmenu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else \"Save\" the first file for later. It "
+"will appear in the \"Compare With ...\" submenu. Then use \"Compare With\" "
+"on second file.\n"
+"For a 3-way merge first \"Save\" the base file, then the branch to merge and "
+"choose \"3-way merge with base\" on the other branch which will be used as "
+"destination.\n"
+"Same also applies to directory comparison and merge."
+msgstr ""
+"Χρησιμοποιώντας την επέκταση contextmenu:\n"
+"Για απλή σύγκριση δύο επιλεγμένων αρχείων επιλέξτε «Σύγκριση».\n"
+"Αν το άλλο αρχείο βρίσκεται κάπου αλλού «Αποθηκεύστε» το πρώτο αρχείο για "
+"αργότερα. Θα εμφανιστεί στο υπομενού «Σύγκριση με ...». Τότε χρησιμοποιήστε  "
+"το «Σύγκριση με» στο δεύτερο αρχείο.\n"
+"για τριπλή συγχώνευση πρώτα »Αποθηκεύστε» το βασικό αρχείο, έπειτα τον προς "
+"συγχώνευση κλάδο και επιλέξτε «Τριπλή συγχώνευση με τη βάση» στον άλλο κλάδο "
+"ο οποίος θα χρησιμεύσει ως προορισμός.\n"
+"Το ίδιο ισχύει και για τη σύγκριση και συγχώνευση καταλόγων."
+
+#: kdiff3fileitemaction.cpp:294
+msgid "About KDiff3 File Item Action Plugin"
+msgstr "Σχετικά με το πρόσθετο ενέργειας αντικειμένου αρχείου του KDiff3"
diff --git a/po/el/kdiff3plugin.po b/po/el/kdiff3plugin.po
new file mode 100644 (file)
index 0000000..236fae9
--- /dev/null
@@ -0,0 +1,98 @@
+# Copyright (C) YEAR This_file_is_part_of_KDE
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Toussis Manolis <manolis@koppermind.homelinux.org>, 2008.
+# Stelios <sstavra@gmail.com>, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3plugin\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-07-26 09:29+0300\n"
+"Last-Translator: Stelios <sstavra@gmail.com>\n"
+"Language-Team: Greek <kde-i18n-el@kde.org>\n"
+"Language: el\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 0.2\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: kdiff3plugin.cpp:107
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#: kdiff3plugin.cpp:114
+#, kde-format
+msgid "Compare with %1"
+msgstr "Σύγκριση με το %1"
+
+#: kdiff3plugin.cpp:120
+#, kde-format
+msgid "Merge with %1"
+msgstr "Συγχώνευση με το %1"
+
+#: kdiff3plugin.cpp:126
+#, kde-format
+msgid "Save '%1' for later"
+msgstr "Αποθήκευση του '%1' για αργότερα"
+
+#: kdiff3plugin.cpp:132
+msgid "3-way merge with base"
+msgstr "Τριπλή συγχώνευση με βάση"
+
+#: kdiff3plugin.cpp:139
+msgid "Compare with ..."
+msgstr "Σύγκριση με..."
+
+#: kdiff3plugin.cpp:149
+msgid "Clear list"
+msgstr "Καθαρισμός λίστας"
+
+#: kdiff3plugin.cpp:157
+msgid "Compare"
+msgstr "Σύγκριση"
+
+#: kdiff3plugin.cpp:163
+msgid "3 way comparison"
+msgstr "Τριπλή σύγκριση"
+
+#: kdiff3plugin.cpp:167
+msgid "About KDiff3 menu plugin ..."
+msgstr "Σχετικά με το πρόσθετο μενού του KDiff3..."
+
+#: kdiff3plugin.cpp:269
+msgid ""
+"KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+"Πρόσθετο μενού του KDiff3: Copyright (C) 2008 Joachim Eibl\n"
+"Ιστοσελίδα του KDiff3: http://kdiff3.sourceforge.net\n"
+"\n"
+
+#: kdiff3plugin.cpp:271
+msgid ""
+"Using the context menu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else, \"Save\" the first file for later, and "
+"it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With"
+"\" on the second file.\n"
+"For a 3-way merge first, \"Save\" the base file, then the branch to merge, "
+"and then \"3-way merge with base\" on the other branch which will be used as "
+"the destination.\n"
+"The same also applies to directory comparison and merge."
+msgstr ""
+"Χρήση της επέκτασης μενού:\n"
+"Για απλή σύγκριση δύο επιλεγμένων αρχείων επιλέξτε το «Σύγκριση».\n"
+"Αν το δεύτερο αρχείο βρίσκεται κάπου αλλού, «Αποθηκεύστε» το πρώτο αρχείο "
+"για αργότερα. Θα εμφανιστεί στο υπομενού «Σύγκριση με...». Στη συνέχεια "
+"χρησιμοποιήστε το «Σύγκριση με» στο δεύτερο αρχείο.\n"
+"Για να κάνετε τριπλή συγχώνευση «Αποθηκεύστε» το αρχείο βάσης, και τον προς "
+"συγχώνευση κλάδο και επιλέξτε «Τριπλή συγχώνευση με βάση» στον άλλο κλάδο, ο "
+"οποίος θα χρησιμοποιηθεί ως προορισμός.\n"
+"Τα ίδια ισχύουν και για τη σύγκριση και συγχώνευση καταλόγων."
+
+#: kdiff3plugin.cpp:279
+msgid "About KDiff3 Menu Plugin"
+msgstr "Σχετικά με το πρόσθετο μενού του KDiff3"
diff --git a/po/en_GB/CMakeLists.txt b/po/en_GB/CMakeLists.txt
new file mode 100644 (file)
index 0000000..b72a707
--- /dev/null
@@ -0,0 +1,2 @@
+file(GLOB _po_files *.po)
+GETTEXT_PROCESS_PO_FILES(en_GB ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
diff --git a/po/en_GB/kdiff3.po b/po/en_GB/kdiff3.po
new file mode 100644 (file)
index 0000000..7b56ad5
--- /dev/null
@@ -0,0 +1,3272 @@
+# translation of kdiff3.po to British English
+# Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
+#
+# Malcolm Hunter <malcolm.hunter@gmx.co.uk>, 2003.
+# Jonathan Riddell <kde-en-gb@jriddell.org>, 2003.
+# Andrew Coles <andrew_coles@yahoo.co.uk>, 2004, 2005, 2009, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2010-12-28 20:50+0000\n"
+"Last-Translator: Andrew Coles <andrew_coles@yahoo.co.uk>\n"
+"Language-Team: British English <kde-i18n-doc@kde.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.1\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: kreplacements/kreplacements.h:105
+msgid "Continue"
+msgstr "Continue"
+
+#: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158
+#: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512
+msgid "Cancel"
+msgstr "Cancel"
+
+#: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631
+msgid "Quit"
+msgstr "Quit"
+
+#: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339
+msgid "Ok"
+msgstr "Ok"
+
+#: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715
+msgid "Help"
+msgstr "Help"
+
+#: kreplacements/kreplacements.cpp:185
+msgid "Defaults"
+msgstr "Defaults"
+
+#. i18n: file: kdiff3_shell.rc:4
+#. i18n: ectx: Menu (file)
+#: kreplacements/kreplacements.cpp:296 rc.cpp:14
+msgid "&File"
+msgstr "&File"
+
+#: kreplacements/kreplacements.cpp:297
+msgid "&Edit"
+msgstr "&Edit"
+
+#. i18n: file: kdiff3_shell.rc:7
+#. i18n: ectx: Menu (directory)
+#: kreplacements/kreplacements.cpp:298 rc.cpp:17
+msgid "&Directory"
+msgstr "&Directory"
+
+#. i18n: file: kdiff3_shell.rc:50
+#. i18n: ectx: Menu (movement)
+#: kreplacements/kreplacements.cpp:301 rc.cpp:26
+msgid "&Movement"
+msgstr "&Movement"
+
+#. i18n: file: kdiff3_shell.rc:61
+#. i18n: ectx: Menu (diff)
+#: kreplacements/kreplacements.cpp:302 rc.cpp:29
+msgid "D&iffview"
+msgstr "D&iffview"
+
+#. i18n: file: kdiff3_shell.rc:73
+#. i18n: ectx: Menu (merge)
+#: kreplacements/kreplacements.cpp:303 rc.cpp:32
+msgid "&Merge"
+msgstr "&Merge"
+
+#. i18n: file: kdiff3_shell.rc:95
+#. i18n: ectx: Menu (window)
+#: kreplacements/kreplacements.cpp:304 rc.cpp:35
+msgid "&Window"
+msgstr "&Window"
+
+#: kreplacements/kreplacements.cpp:305
+msgid "&Settings"
+msgstr "&Settings"
+
+#: kreplacements/kreplacements.cpp:306
+msgid "&Help"
+msgstr "&Help"
+
+#: kreplacements/kreplacements.cpp:353
+msgid "&About"
+msgstr "&About"
+
+#: kreplacements/kreplacements.cpp:369
+msgid "A&uthor"
+msgstr "A&uthor"
+
+#: kreplacements/kreplacements.cpp:383
+msgid "&Thanks To"
+msgstr "&Thanks To"
+
+#. i18n: file: kdiff3_shell.rc:30
+#. i18n: ectx: Menu (dir_current_merge_menu)
+#: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497
+#: rc.cpp:20
+msgid "Current Item Merge Operation"
+msgstr "Current Item Merge Operation"
+
+#. i18n: file: kdiff3_shell.rc:38
+#. i18n: ectx: Menu (dir_current_sync_menu)
+#: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498
+#: rc.cpp:23
+msgid "Current Item Sync Operation"
+msgstr "Current Item Sync Operation"
+
+#: kreplacements/kreplacements.cpp:597
+msgid "Open"
+msgstr "Open"
+
+#: kreplacements/kreplacements.cpp:606
+msgid "Save"
+msgstr "Save"
+
+#: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720
+msgid "Save As..."
+msgstr "Save As..."
+
+#: kreplacements/kreplacements.cpp:623
+msgid "Print..."
+msgstr "Print..."
+
+#: kreplacements/kreplacements.cpp:639
+msgid "Cut"
+msgstr "Cut"
+
+#: kreplacements/kreplacements.cpp:647
+msgid "Copy"
+msgstr "Copy"
+
+#: kreplacements/kreplacements.cpp:655
+msgid "Paste"
+msgstr "Paste"
+
+#: kreplacements/kreplacements.cpp:663
+msgid "Select All"
+msgstr "Select All"
+
+#: kreplacements/kreplacements.cpp:671
+msgid "Show Toolbar"
+msgstr "Show Toolbar"
+
+#: kreplacements/kreplacements.cpp:679
+msgid "Show &Status Bar"
+msgstr "Show &Status Bar"
+
+#: kreplacements/kreplacements.cpp:687
+#, kde-format
+msgid "&Configure %1..."
+msgstr "&Configure %1..."
+
+#: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707
+msgid "About"
+msgstr "About"
+
+#: kreplacements/kreplacements.cpp:722
+msgid "Find"
+msgstr "Find"
+
+#: kreplacements/kreplacements.cpp:730
+msgid "Find Next"
+msgstr "Find Next"
+
+#: kreplacements/kreplacements.cpp:750
+msgid "Select Font"
+msgstr "Select Font"
+
+#: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676
+msgid ""
+"You selected a variable width font.\n"
+"\n"
+"Because this program doesn't handle variable width fonts\n"
+"correctly, you might experience problems while editing.\n"
+"\n"
+"Do you want to continue or do you want to select another font."
+msgstr ""
+"You selected a variable width font.\n"
+"\n"
+"Because this program doesn't handle variable width fonts\n"
+"correctly, you might experience problems while editing.\n"
+"\n"
+"Do you want to continue or do you want to select another font."
+
+#: kreplacements/kreplacements.cpp:792
+msgid "Incompatible font."
+msgstr "Incompatible font."
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Continue at my own risk"
+msgstr "Continue at my own risk"
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Select another font"
+msgstr "Select another font"
+
+#: kreplacements/kreplacements.cpp:1134
+msgid "For more documentation, see the help-menu or the subdirectory doc."
+msgstr "For more documentation, see the help-menu or the subdirectory doc."
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "KDiff3-Usage"
+msgstr "KDiff3-Usage"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Ignore"
+msgstr "Ignore"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Exit"
+msgstr "Exit"
+
+#: diff.cpp:251
+msgid "Writing clipboard data to temp file failed."
+msgstr "Writing clipboard data to temp file failed."
+
+#: diff.cpp:255
+msgid "From Clipboard"
+msgstr "From Clipboard"
+
+#: diff.cpp:471
+msgid "Expecting space after closing quotation mark."
+msgstr ""
+
+#: diff.cpp:474
+msgid "Not matching quotation marks."
+msgstr ""
+
+#: diff.cpp:496
+msgid "Unexpected quotation mark within argument."
+msgstr ""
+
+#: diff.cpp:503
+msgid "No program specified."
+msgstr ""
+
+#: diff.cpp:605
+#, kde-format
+msgid ""
+"Preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The preprocessing command will be disabled now."
+msgstr ""
+"Preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The preprocessing command will be disabled now."
+
+#: diff.cpp:653
+#, kde-format
+msgid ""
+"The line-matching-preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The line-matching-preprocessing command will be disabled now."
+msgstr ""
+"The line-matching-preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The line-matching-preprocessing command will be disabled now."
+
+#: diff.cpp:1776 diff.cpp:1790
+msgid ""
+"Data loss error:\n"
+"If it is reproducible please contact the author.\n"
+msgstr ""
+"Data loss error:\n"
+"If it is reproducible please contact the author.\n"
+
+#: diff.cpp:1778 diff.cpp:1792
+msgid "Severe Internal Error"
+msgstr "Severe Internal Error"
+
+#: directorymergewindow.cpp:136
+msgid "Mix of links and normal files."
+msgstr "Mix of links and normal files."
+
+#: directorymergewindow.cpp:143
+msgid "Link: "
+msgstr "Link: "
+
+#: directorymergewindow.cpp:151
+msgid "Size. "
+msgstr "Size. "
+
+#: directorymergewindow.cpp:164 directorymergewindow.cpp:174
+msgid "Date & Size: "
+msgstr "Date & Size: "
+
+#: directorymergewindow.cpp:184 directorymergewindow.cpp:190
+#, kde-format
+msgid "Creating temp copy of %1 failed."
+msgstr "Creating temp copy of %1 failed."
+
+#: directorymergewindow.cpp:201 directorymergewindow.cpp:209
+#, kde-format
+msgid "Opening %1 failed."
+msgstr "Opening %1 failed."
+
+#: directorymergewindow.cpp:213
+msgid "Comparing file..."
+msgstr "Comparing file..."
+
+#: directorymergewindow.cpp:223 directorymergewindow.cpp:229
+#, kde-format
+msgid "Error reading from %1"
+msgstr "Error reading from %1"
+
+#: directorymergewindow.cpp:358
+msgid "Name"
+msgstr "Name"
+
+#: directorymergewindow.cpp:358
+msgid "Operation"
+msgstr "Operation"
+
+#: directorymergewindow.cpp:358
+msgid "Status"
+msgstr "Status"
+
+#: directorymergewindow.cpp:359
+msgid "Unsolved"
+msgstr "Unsolved"
+
+#: directorymergewindow.cpp:359
+msgid "Solved"
+msgstr "Solved"
+
+#: directorymergewindow.cpp:359
+msgid "Nonwhite"
+msgstr "Nonwhite"
+
+#: directorymergewindow.cpp:359
+msgid "White"
+msgstr "White"
+
+#: directorymergewindow.cpp:388
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort "
+"the merge and rescan the directory?"
+msgstr ""
+"You are currently doing a directory merge. Are you sure, you want to abort "
+"the merge and rescan the directory?"
+
+#: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655
+#: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823
+msgid "Warning"
+msgstr "Warning"
+
+#: directorymergewindow.cpp:390 directorymergewindow.cpp:2965
+msgid "Rescan"
+msgstr "Rescan"
+
+#: directorymergewindow.cpp:391 pdiff.cpp:1081
+msgid "Continue Merging"
+msgstr "Continue Merging"
+
+#: directorymergewindow.cpp:548
+msgid "Opening of directories failed:"
+msgstr "Opening of directories failed:"
+
+#: directorymergewindow.cpp:551
+#, kde-format
+msgid "Dir A \"%1\" does not exist or is not a directory.\n"
+msgstr "Dir A \"%1\" does not exist or is not a directory.\n"
+
+#: directorymergewindow.cpp:554
+#, kde-format
+msgid "Dir B \"%1\" does not exist or is not a directory.\n"
+msgstr "Dir B \"%1\" does not exist or is not a directory.\n"
+
+#: directorymergewindow.cpp:557
+#, kde-format
+msgid "Dir C \"%1\" does not exist or is not a directory.\n"
+msgstr "Dir C \"%1\" does not exist or is not a directory.\n"
+
+#: directorymergewindow.cpp:559
+msgid "Directory Open Error"
+msgstr "Directory Open Error"
+
+#: directorymergewindow.cpp:567
+msgid ""
+"The destination directory must not be the same as A or B when three "
+"directories are merged.\n"
+"Check again before continuing."
+msgstr ""
+"The destination directory must not be the same as A or B when three "
+"directories are merged.\n"
+"Check again before continuing."
+
+#: directorymergewindow.cpp:569
+msgid "Parameter Warning"
+msgstr "Parameter Warning"
+
+#: directorymergewindow.cpp:574
+msgid "Scanning directories..."
+msgstr "Scanning directories..."
+
+#: directorymergewindow.cpp:607
+msgid "Reading Directory A"
+msgstr "Reading Directory A"
+
+#: directorymergewindow.cpp:629
+msgid "Reading Directory B"
+msgstr "Reading Directory B"
+
+#: directorymergewindow.cpp:651
+msgid "Reading Directory C"
+msgstr "Reading Directory C"
+
+#: directorymergewindow.cpp:677
+msgid "Some subdirectories were not readable in"
+msgstr "Some subdirectories were not readable in"
+
+#: directorymergewindow.cpp:682
+msgid "Check the permissions of the subdirectories."
+msgstr "Check the permissions of the subdirectories."
+
+#: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737
+#: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233
+#: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328
+msgid "Ready."
+msgstr "Ready."
+
+#: directorymergewindow.cpp:735
+msgid "Directory Comparison Status"
+msgstr "Directory Comparison Status"
+
+#: directorymergewindow.cpp:736
+msgid "Number of subdirectories:"
+msgstr "Number of subdirectories:"
+
+#: directorymergewindow.cpp:737
+msgid "Number of equal files:"
+msgstr "Number of equal files:"
+
+#: directorymergewindow.cpp:738
+msgid "Number of different files:"
+msgstr "Number of different files:"
+
+#: directorymergewindow.cpp:741
+msgid "Number of manual merges:"
+msgstr "Number of manual merges:"
+
+#: directorymergewindow.cpp:912
+msgid "This affects all merge operations."
+msgstr "This affects all merge operations."
+
+#: directorymergewindow.cpp:913
+msgid "Changing All Merge Operations"
+msgstr "Changing All Merge Operations"
+
+#: directorymergewindow.cpp:1312
+msgid "Processing "
+msgstr "Processing "
+
+#: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742
+msgid "To do."
+msgstr "To do."
+
+#: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996
+msgid "Copy A to B"
+msgstr "Copy A to B"
+
+#: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997
+msgid "Copy B to A"
+msgstr "Copy B to A"
+
+#: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998
+msgid "Delete A"
+msgstr "Delete A"
+
+#: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999
+msgid "Delete B"
+msgstr "Delete B"
+
+#: directorymergewindow.cpp:1814
+msgid "Delete A & B"
+msgstr "Delete A & B"
+
+#: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001
+msgid "Merge to A"
+msgstr "Merge to A"
+
+#: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002
+msgid "Merge to B"
+msgstr "Merge to B"
+
+#: directorymergewindow.cpp:1817
+msgid "Merge to A & B"
+msgstr "Merge to A & B"
+
+#: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993
+msgid "Delete (if exists)"
+msgstr "Delete (if exists)"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+#: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869
+msgid "Merge"
+msgstr "Merge"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+msgid "Merge (manual)"
+msgstr "Merge (manual)"
+
+#: directorymergewindow.cpp:1824
+msgid "Error: Conflicting File Types"
+msgstr "Error: Conflicting File Types"
+
+#: directorymergewindow.cpp:1825
+msgid "Error: Changed and Deleted"
+msgstr "Error: Changed and Deleted"
+
+#: directorymergewindow.cpp:1826
+msgid "Error: Dates are equal but files are not."
+msgstr "Error: Dates are equal but files are not."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906
+msgid "This operation is currently not possible."
+msgstr "This operation is currently not possible."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174
+msgid "Operation Not Possible"
+msgstr "Operation Not Possible"
+
+#: directorymergewindow.cpp:1945
+msgid ""
+"This should never happen: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"If you know how to reproduce this, please contact the program author."
+msgstr ""
+"This should never happen: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"If you know how to reproduce this, please contact the program author."
+
+#: directorymergewindow.cpp:1945
+msgid "Program Error"
+msgstr "Program Error"
+
+#: directorymergewindow.cpp:1956
+msgid "An error occurred while copying.\n"
+msgstr "An error occurred while copying.\n"
+
+#: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025
+#: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105
+#: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123
+#: directorymergewindow.cpp:2374
+msgid "Error"
+msgstr "Error"
+
+#: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375
+msgid "Merge Error"
+msgstr "Merge Error"
+
+#: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380
+msgid "Error."
+msgstr "Error."
+
+#: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272
+#: directorymergewindow.cpp:2312
+msgid "Done."
+msgstr "Done."
+
+#: directorymergewindow.cpp:1990
+msgid "Not saved."
+msgstr "Not saved."
+
+#: directorymergewindow.cpp:2025
+msgid "Unknown merge operation. (This must never happen!)"
+msgstr "Unknown merge operation. (This must never happen!)"
+
+#: directorymergewindow.cpp:2057
+msgid "Unknown merge operation."
+msgstr "Unknown merge operation."
+
+#: directorymergewindow.cpp:2072
+msgid ""
+"The merge is about to begin.\n"
+"\n"
+"Choose \"Do it\" if you have read the instructions and know what you are "
+"doing.\n"
+"Choosing \"Simulate it\" will tell you what would happen.\n"
+"\n"
+"Be aware that this program still has beta status and there is NO WARRANTY "
+"whatsoever! Make backups of your vital data!"
+msgstr ""
+"The merge is about to begin.\n"
+"\n"
+"Choose \"Do it\" if you have read the instructions and know what you are "
+"doing.\n"
+"Choosing \"Simulate it\" will tell you what would happen.\n"
+"\n"
+"Be aware that this program still has beta status and there is NO WARRANTY "
+"whatsoever! Make backups of your vital data!"
+
+#: directorymergewindow.cpp:2077
+msgid "Starting Merge"
+msgstr "Starting Merge"
+
+#: directorymergewindow.cpp:2078
+msgid "Do It"
+msgstr "Do It"
+
+#: directorymergewindow.cpp:2079
+msgid "Simulate It"
+msgstr "Simulate It"
+
+#: directorymergewindow.cpp:2105
+msgid ""
+"The highlighted item has a different type in the different directories. "
+"Select what to do."
+msgstr ""
+"The highlighted item has a different type in the different directories. "
+"Select what to do."
+
+#: directorymergewindow.cpp:2114
+msgid ""
+"The modification dates of the file are equal but the files are not. Select "
+"what to do."
+msgstr ""
+"The modification dates of the file are equal but the files are not. Select "
+"what to do."
+
+#: directorymergewindow.cpp:2123
+msgid ""
+"The highlighted item was changed in one directory and deleted in the other. "
+"Select what to do."
+msgstr ""
+"The highlighted item was changed in one directory and deleted in the other. "
+"Select what to do."
+
+#: directorymergewindow.cpp:2174
+msgid ""
+"This operation is currently not possible because directory merge is "
+"currently running."
+msgstr ""
+"This operation is currently not possible because directory merge is "
+"currently running."
+
+#: directorymergewindow.cpp:2234
+msgid ""
+"There was an error in the last step.\n"
+"Do you want to continue with the item that caused the error or do you want "
+"to skip this item?"
+msgstr ""
+"There was an error in the last step.\n"
+"Do you want to continue with the item that caused the error or do you want "
+"to skip this item?"
+
+#: directorymergewindow.cpp:2236
+msgid "Continue merge after an error"
+msgstr "Continue merge after an error"
+
+#: directorymergewindow.cpp:2237
+msgid "Continue With Last Item"
+msgstr "Continue With Last Item"
+
+#: directorymergewindow.cpp:2238
+msgid "Skip Item"
+msgstr "Skip Item"
+
+#: directorymergewindow.cpp:2272
+msgid "Skipped."
+msgstr "Skipped."
+
+#: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493
+msgid "In progress..."
+msgstr "In progress..."
+
+#: directorymergewindow.cpp:2327
+msgid "Merge operation complete."
+msgstr "Merge operation complete."
+
+#: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330
+msgid "Merge Complete"
+msgstr "Merge Complete"
+
+#: directorymergewindow.cpp:2340
+msgid ""
+"Simulated merge complete: Check if you agree with the proposed operations."
+msgstr ""
+"Simulated merge complete: Check if you agree with the proposed operations."
+
+#: directorymergewindow.cpp:2374
+msgid "An error occurred. Press OK to see detailed information.\n"
+msgstr "An error occurred. Press OK to see detailed information.\n"
+
+#: directorymergewindow.cpp:2406
+#, kde-format
+msgid "Error: While deleting %1: Creating backup failed."
+msgstr "Error: While deleting %1: Creating backup failed."
+
+#: directorymergewindow.cpp:2413
+#, kde-format
+msgid "delete directory recursively( %1 )"
+msgstr "delete directory recursively( %1 )"
+
+#: directorymergewindow.cpp:2415
+#, kde-format
+msgid "delete( %1 )"
+msgstr "delete( %1 )"
+
+#: directorymergewindow.cpp:2430
+msgid "Error: delete dir operation failed while trying to read the directory."
+msgstr "Error: delete dir operation failed while trying to read the directory."
+
+#: directorymergewindow.cpp:2449
+#, kde-format
+msgid "Error: rmdir( %1 ) operation failed."
+msgstr "Error: rmdir( %1 ) operation failed."
+
+#: directorymergewindow.cpp:2459
+msgid "Error: delete operation failed."
+msgstr "Error: delete operation failed."
+
+#: directorymergewindow.cpp:2485
+#, kde-format
+msgid "manual merge( %1, %2, %3 -> %4)"
+msgstr "manual merge( %1, %2, %3 -> %4)"
+
+#: directorymergewindow.cpp:2488
+msgid ""
+"     Note: After a manual merge the user should continue by pressing F7."
+msgstr ""
+"     Note: After a manual merge the user should continue by pressing F7."
+
+#: directorymergewindow.cpp:2513
+#, kde-format
+msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed."
+msgstr "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed."
+
+#: directorymergewindow.cpp:2522
+#, kde-format
+msgid "copyLink( %1 -> %2 )"
+msgstr "copyLink( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2533
+msgid "Error: copyLink failed: Remote links are not yet supported."
+msgstr "Error: copyLink failed: Remote links are not yet supported."
+
+#: directorymergewindow.cpp:2539
+msgid "Error: copyLink failed."
+msgstr "Error: copyLink failed."
+
+#: directorymergewindow.cpp:2564
+#, kde-format
+msgid "copy( %1 -> %2 )"
+msgstr "copy( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2590
+#, kde-format
+msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination."
+msgstr "Error during rename( %1 -> %2 ): Cannot delete existing destination."
+
+#: directorymergewindow.cpp:2596
+#, kde-format
+msgid "rename( %1 -> %2 )"
+msgstr "rename( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2605
+msgid "Error: Rename failed."
+msgstr "Error: Rename failed."
+
+#: directorymergewindow.cpp:2623
+#, kde-format
+msgid "Error during makeDir of %1. Cannot delete existing file."
+msgstr "Error during makeDir of %1. Cannot delete existing file."
+
+#: directorymergewindow.cpp:2639
+#, kde-format
+msgid "makeDir( %1 )"
+msgstr "makeDir( %1 )"
+
+#: directorymergewindow.cpp:2649
+msgid "Error while creating directory."
+msgstr "Error while creating directory."
+
+#: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784
+msgid "Dest"
+msgstr "Dest"
+
+#: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709
+msgid "Dir"
+msgstr "Dir"
+
+#: directorymergewindow.cpp:2678
+msgid "Type"
+msgstr "Type"
+
+#: directorymergewindow.cpp:2678
+msgid "Size"
+msgstr "Size"
+
+#: directorymergewindow.cpp:2679
+msgid "Attr"
+msgstr "Attr"
+
+#: directorymergewindow.cpp:2679
+msgid "Last Modification"
+msgstr "Last Modification"
+
+#: directorymergewindow.cpp:2679
+msgid "Link-Destination"
+msgstr "Link-Destination"
+
+#: directorymergewindow.cpp:2709 difftextwindow.cpp:401
+msgid "File"
+msgstr "File"
+
+#: directorymergewindow.cpp:2726
+msgid "not available"
+msgstr "not available"
+
+#: directorymergewindow.cpp:2746
+msgid "A (Dest): "
+msgstr "A (Dest): "
+
+#: directorymergewindow.cpp:2749
+msgid "A (Base): "
+msgstr "A (Base): "
+
+#: directorymergewindow.cpp:2755
+msgid "B (Dest): "
+msgstr "B (Dest): "
+
+#: directorymergewindow.cpp:2763
+msgid "C (Dest): "
+msgstr "C (Dest): "
+
+#: directorymergewindow.cpp:2769
+msgid "Dest: "
+msgstr "Dest: "
+
+#: directorymergewindow.cpp:2836
+msgid "Save Directory Merge State As..."
+msgstr "Save Directory Merge State As..."
+
+#: directorymergewindow.cpp:2959
+msgid "Start/Continue Directory Merge"
+msgstr "Start/Continue Directory Merge"
+
+#: directorymergewindow.cpp:2960
+msgid "Run Operation for Current Item"
+msgstr "Run Operation for Current Item"
+
+#: directorymergewindow.cpp:2961
+msgid "Compare Selected File"
+msgstr "Compare Selected File"
+
+#: directorymergewindow.cpp:2962
+msgid "Merge Current File"
+msgstr "Merge Current File"
+
+#: directorymergewindow.cpp:2962
+msgid ""
+"Merge\n"
+"File"
+msgstr ""
+"Merge\n"
+"File"
+
+#: directorymergewindow.cpp:2963
+msgid "Fold All Subdirs"
+msgstr "Fold All Subdirs"
+
+#: directorymergewindow.cpp:2964
+msgid "Unfold All Subdirs"
+msgstr "Unfold All Subdirs"
+
+#: directorymergewindow.cpp:2968
+msgid "Choose A for All Items"
+msgstr "Choose A for All Items"
+
+#: directorymergewindow.cpp:2969
+msgid "Choose B for All Items"
+msgstr "Choose B for All Items"
+
+#: directorymergewindow.cpp:2970
+msgid "Choose C for All Items"
+msgstr "Choose C for All Items"
+
+#: directorymergewindow.cpp:2971
+msgid "Auto-Choose Operation for All Items"
+msgstr "Auto-Choose Operation for All Items"
+
+#: directorymergewindow.cpp:2972
+msgid "No Operation for All Items"
+msgstr "No Operation for All Items"
+
+#: directorymergewindow.cpp:2977
+msgid "Show Identical Files"
+msgstr "Show Identical Files"
+
+#: directorymergewindow.cpp:2977
+msgid ""
+"Identical\n"
+"Files"
+msgstr ""
+"Identical\n"
+"Files"
+
+#: directorymergewindow.cpp:2978
+msgid "Show Different Files"
+msgstr "Show Different Files"
+
+#: directorymergewindow.cpp:2979
+msgid "Show Files only in A"
+msgstr "Show Files only in A"
+
+#: directorymergewindow.cpp:2979
+msgid ""
+"Files\n"
+"only in A"
+msgstr ""
+"Files\n"
+"only in A"
+
+#: directorymergewindow.cpp:2980
+msgid "Show Files only in B"
+msgstr "Show Files only in B"
+
+#: directorymergewindow.cpp:2980
+msgid ""
+"Files\n"
+"only in B"
+msgstr ""
+"Files\n"
+"only in B"
+
+#: directorymergewindow.cpp:2981
+msgid "Show Files only in C"
+msgstr "Show Files only in C"
+
+#: directorymergewindow.cpp:2981
+msgid ""
+"Files\n"
+"only in C"
+msgstr ""
+"Files\n"
+"only in C"
+
+#: directorymergewindow.cpp:2985
+msgid "Compare Explicitly Selected Files"
+msgstr "Compare Explicitly Selected Files"
+
+#: directorymergewindow.cpp:2986
+msgid "Merge Explicitly Selected Files"
+msgstr "Merge Explicitly Selected Files"
+
+#: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995
+msgid "Do Nothing"
+msgstr "Do Nothing"
+
+#: directorymergewindow.cpp:2989
+msgid "A"
+msgstr "A"
+
+#: directorymergewindow.cpp:2990
+msgid "B"
+msgstr "B"
+
+#: directorymergewindow.cpp:2991
+msgid "C"
+msgstr "C"
+
+#: directorymergewindow.cpp:3000
+msgid "Delete A && B"
+msgstr "Delete A && B"
+
+#: directorymergewindow.cpp:3003
+msgid "Merge to A && B"
+msgstr "Merge to A && B"
+
+#: main.cpp:74 main.cpp:76
+msgid "Ignored. (User defined.)"
+msgstr "Ignored. (User defined.)"
+
+#: main.cpp:162
+msgid "kdiff3"
+msgstr "kdiff3"
+
+#: main.cpp:164
+msgid "Tool for Comparison and Merge of Files and Directories"
+msgstr "Tool for Comparison and Merge of Files and Directories"
+
+#: main.cpp:165
+#, fuzzy
+#| msgid "(c) 2002-2009 Joachim Eibl"
+msgid "(c) 2002-2011 Joachim Eibl"
+msgstr "(c) 2002-2009 Joachim Eibl"
+
+#: main.cpp:172 kdiff3_part.cpp:303
+msgid "Joachim Eibl"
+msgstr "Joachim Eibl"
+
+#: main.cpp:173
+msgid "Eike Sauer"
+msgstr "Eike Sauer"
+
+#: main.cpp:173
+msgid "Bugfixes, Debian package maintainer"
+msgstr "Bugfixes, Debian package maintainer"
+
+#: main.cpp:174
+msgid "Sebastien Fricker"
+msgstr "Sebastien Fricker"
+
+#: main.cpp:174
+msgid "Windows installer"
+msgstr "Windows installer"
+
+#: main.cpp:175
+msgid "Stephan Binner"
+msgstr "Stephan Binner"
+
+#: main.cpp:175
+msgid "i18n-help"
+msgstr "i18n-help"
+
+#: main.cpp:176
+msgid "Stefan Partheymueller"
+msgstr "Stefan Partheymueller"
+
+#: main.cpp:176
+msgid "Clipboard-patch"
+msgstr "Clipboard-patch"
+
+#: main.cpp:177
+msgid "David Faure"
+msgstr "David Faure"
+
+#: main.cpp:177
+msgid "KIO-Help"
+msgstr "KIO-Help"
+
+#: main.cpp:178
+msgid "Bernd Gehrmann"
+msgstr "Bernd Gehrmann"
+
+#: main.cpp:178
+msgid "Class CvsIgnoreList from Cervisia"
+msgstr "Class CvsIgnoreList from Cervisia"
+
+#: main.cpp:179
+msgid "Andre Woebbeking"
+msgstr "Andre Woebbeking"
+
+#: main.cpp:179
+msgid "Class StringMatcher"
+msgstr "Class StringMatcher"
+
+#: main.cpp:180
+msgid "Michael Denio"
+msgstr "Michael Denio"
+
+#: main.cpp:180
+msgid "Directory Equality-Coloring patch"
+msgstr "Directory Equality-Colouring patch"
+
+#: main.cpp:181
+msgid "Manfred Koehler"
+msgstr "Manfred Koehler"
+
+#: main.cpp:181
+msgid "Fix for slow startup on Windows"
+msgstr "Fix for slow startup on Windows"
+
+#: main.cpp:182
+msgid "Sergey Zorin"
+msgstr "Sergey Zorin"
+
+#: main.cpp:182
+msgid "Diff Ext for Windows"
+msgstr "Diff Ext for Windows"
+
+#: main.cpp:183
+msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+
+#: main.cpp:183
+msgid "GNU-Diffutils"
+msgstr "GNU-Diffutils"
+
+#: main.cpp:184
+msgid "Tino Boellsterling, Timothy Mee"
+msgstr "Tino Boellsterling, Timothy Mee"
+
+#: main.cpp:184
+msgid "Intensive test, use and feedback"
+msgstr "Intensive test, use and feedback"
+
+#: main.cpp:185
+msgid "Michael Schmidt"
+msgstr "Michael Schmidt"
+
+#: main.cpp:185
+msgid "Mac support"
+msgstr "Mac support"
+
+#: main.cpp:186
+msgid "Valentin Rusu"
+msgstr "Valentin Rusu"
+
+#: main.cpp:186 main.cpp:187
+msgid "KDE4 porting"
+msgstr "KDE4 porting"
+
+#: main.cpp:187
+msgid "Albert Astals Cid"
+msgstr "Albert Astals Cid"
+
+#: main.cpp:188
+msgid "Silvan Scherrer"
+msgstr ""
+
+#: main.cpp:188
+msgid "OS2 port"
+msgstr ""
+
+#: main.cpp:190
+msgid "+ Many thanks to those who reported bugs and contributed ideas!"
+msgstr "+ Many thanks to those who reported bugs and contributed ideas!"
+
+#: main.cpp:196
+msgid "Merge the input."
+msgstr "Merge the input."
+
+#: main.cpp:197
+msgid "Explicit base file. For compatibility with certain tools."
+msgstr "Explicit base file. For compatibility with certain tools."
+
+#: main.cpp:198
+msgid "Output file. Implies -m. E.g.: -o newfile.txt"
+msgstr "Output file. Implies -m. E.g.: -o newfile.txt"
+
+#: main.cpp:199
+msgid "Output file, again. (For compatibility with certain tools.)"
+msgstr "Output file, again. (For compatibility with certain tools.)"
+
+#: main.cpp:200
+msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)"
+msgstr "No GUI if all conflicts are auto-solvable. (Needs -o file)"
+
+#: main.cpp:201
+msgid "Don't solve conflicts automatically. (For compatibility...)"
+msgstr "Don't solve conflicts automatically. (For compatibility...)"
+
+#: main.cpp:202
+msgid "Visible name replacement for input file 1 (base)."
+msgstr "Visible name replacement for input file 1 (base)."
+
+#: main.cpp:203
+msgid "Visible name replacement for input file 2."
+msgstr "Visible name replacement for input file 2."
+
+#: main.cpp:204
+msgid "Visible name replacement for input file 3."
+msgstr "Visible name replacement for input file 3."
+
+#: main.cpp:205
+msgid "Alternative visible name replacement. Supply this once for every input."
+msgstr ""
+"Alternative visible name replacement. Supply this once for every input."
+
+#: main.cpp:206
+msgid ""
+"Override a config setting. Use once for every setting. E.g.: --cs "
+"\"AutoAdvance=1\""
+msgstr ""
+"Override a config setting. Use once for every setting. E.g.: --cs "
+"\"AutoAdvance=1\""
+
+#: main.cpp:207
+msgid "Show list of config settings and current values."
+msgstr "Show list of config settings and current values."
+
+#: main.cpp:208
+msgid "Use a different config file."
+msgstr "Use a different config file."
+
+#: main.cpp:211
+msgid "file1 to open (base, if not specified via --base)"
+msgstr "file1 to open (base, if not specified via --base)"
+
+#: main.cpp:212
+msgid "file2 to open"
+msgstr "file2 to open"
+
+#: main.cpp:213
+msgid "file3 to open"
+msgstr "file3 to open"
+
+#: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976
+#: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002
+#: mergeresultwindow.cpp:1014
+#, kde-format
+msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)"
+msgstr ""
+"Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)"
+
+#: mergeresultwindow.cpp:303
+msgid ""
+"The output has been modified.\n"
+"If you continue your changes will be lost."
+msgstr ""
+"The output has been modified.\n"
+"If you continue your changes will be lost."
+
+#: mergeresultwindow.cpp:834 pdiff.cpp:532
+msgid "All input files are binary equal."
+msgstr "All input files are binary equal."
+
+#: mergeresultwindow.cpp:836
+msgid "All input files contain the same text."
+msgstr "All input files contain the same text."
+
+#: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840
+#: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540
+#, kde-format
+msgid "Files %1 and %2 are binary equal.\n"
+msgstr "Files %1 and %2 are binary equal.\n"
+
+#: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841
+#: mergeresultwindow.cpp:843
+#, kde-format
+msgid "Files %1 and %2 have equal text.\n"
+msgstr "Files %1 and %2 have equal text.\n"
+
+#: mergeresultwindow.cpp:849
+msgid "Total number of conflicts: "
+msgstr "Total number of conflicts: "
+
+#: mergeresultwindow.cpp:850
+msgid ""
+"\n"
+"Nr of automatically solved conflicts: "
+msgstr ""
+"\n"
+"Nr of automatically solved conflicts: "
+
+#: mergeresultwindow.cpp:851
+msgid ""
+"\n"
+"Nr of unsolved conflicts: "
+msgstr ""
+"\n"
+"Nr of unsolved conflicts: "
+
+#: mergeresultwindow.cpp:853
+msgid "Conflicts"
+msgstr "Conflicts"
+
+#: mergeresultwindow.cpp:1728
+msgid "<No src line>"
+msgstr "<No src line>"
+
+#: mergeresultwindow.cpp:1736
+msgid "<Merge Conflict (Whitespace only)>"
+msgstr "<Merge Conflict (Whitespace only)>"
+
+#: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517
+msgid "<Merge Conflict>"
+msgstr "<Merge Conflict>"
+
+#: mergeresultwindow.cpp:2725
+msgid ""
+"Not all conflicts are solved yet.\n"
+"File not saved.\n"
+msgstr ""
+"Not all conflicts are solved yet.\n"
+"File not saved.\n"
+
+#: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736
+msgid "Conflicts Left"
+msgstr "Conflicts Left"
+
+#: mergeresultwindow.cpp:2734
+msgid ""
+"There is a line end style conflict. Please choose the line end style "
+"manually.\n"
+"File not saved.\n"
+msgstr ""
+"There is a line end style conflict. Please choose the line end style "
+"manually.\n"
+"File not saved.\n"
+
+#: mergeresultwindow.cpp:2748
+msgid ""
+"\n"
+"\n"
+"Creating backup failed. File not saved."
+msgstr ""
+"\n"
+"\n"
+"Creating backup failed. File not saved."
+
+#: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792
+msgid "File Save Error"
+msgstr "File Save Error"
+
+#: mergeresultwindow.cpp:2792
+msgid "Error while writing."
+msgstr "Error while writing."
+
+#: mergeresultwindow.cpp:3122
+msgid "Output"
+msgstr "Output"
+
+#: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314
+msgid "[Modified]"
+msgstr "[Modified]"
+
+#: mergeresultwindow.cpp:3141
+msgid "Encoding for saving"
+msgstr "Encoding for saving"
+
+#: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737
+#: optiondialog.cpp:762
+msgid "Line end style:"
+msgstr "Line end style:"
+
+#: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767
+msgid "Unix"
+msgstr "Unix"
+
+#: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737
+msgid "DOS"
+msgstr "DOS"
+
+#: mergeresultwindow.cpp:3229
+msgid "Conflict"
+msgstr "Conflict"
+
+#: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263
+#: mergeresultwindow.cpp:3265
+msgid "Codec from"
+msgstr "Codec from"
+
+#: kdiff3_part.cpp:157 kdiff3_part.cpp:234
+msgid "Couldn't find files for comparison."
+msgstr "Couldn't find files for comparison."
+
+#: kdiff3_part.cpp:302
+msgid "KDiff3Part"
+msgstr "KDiff3Part"
+
+#: fileaccess.cpp:612
+msgid ""
+"While trying to make a backup, deleting an older backup failed. \n"
+"Filename: "
+msgstr ""
+"While trying to make a backup, deleting an older backup failed. \n"
+"Filename: "
+
+#: fileaccess.cpp:619
+msgid ""
+"While trying to make a backup, renaming failed. \n"
+"Filenames: "
+msgstr ""
+"While trying to make a backup, renaming failed. \n"
+"Filenames: "
+
+#: fileaccess.cpp:643
+#, kde-format
+msgid "Getting file status: %1"
+msgstr "Getting file status: %1"
+
+#: fileaccess.cpp:686
+#, kde-format
+msgid "Reading file: %1"
+msgstr "Reading file: %1"
+
+#: fileaccess.cpp:723
+#, kde-format
+msgid "Writing file: %1"
+msgstr "Writing file: %1"
+
+#: fileaccess.cpp:751
+msgid "Out of memory"
+msgstr "Out of memory"
+
+#: fileaccess.cpp:786
+#, kde-format
+msgid "Making directory: %1"
+msgstr "Making directory: %1"
+
+#: fileaccess.cpp:806
+#, kde-format
+msgid "Removing directory: %1"
+msgstr "Removing directory: %1"
+
+#: fileaccess.cpp:821
+#, kde-format
+msgid "Removing file: %1"
+msgstr "Removing file: %1"
+
+#: fileaccess.cpp:837
+#, kde-format
+msgid "Creating symbolic link: %1 -> %2"
+msgstr "Creating symbolic link: %1 -> %2"
+
+#: fileaccess.cpp:864
+#, kde-format
+msgid "Renaming file: %1 -> %2"
+msgstr "Renaming file: %1 -> %2"
+
+#: fileaccess.cpp:897
+#, kde-format
+msgid "Copying file: %1 -> %2"
+msgstr "Copying file: %1 -> %2"
+
+#: fileaccess.cpp:911
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for reading failed. Filename: "
+"%1"
+msgstr ""
+"Error during file copy operation: Opening file for reading failed. Filename: "
+"%1"
+
+#: fileaccess.cpp:917
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for writing failed. Filename: "
+"%1"
+msgstr ""
+"Error during file copy operation: Opening file for writing failed. Filename: "
+"%1"
+
+#: fileaccess.cpp:932
+#, kde-format
+msgid "Error during file copy operation: Reading failed. Filename: %1"
+msgstr "Error during file copy operation: Reading failed. Filename: %1"
+
+#: fileaccess.cpp:941
+#, kde-format
+msgid "Error during file copy operation: Writing failed. Filename: %1"
+msgstr "Error during file copy operation: Writing failed. Filename: %1"
+
+#: fileaccess.cpp:1231
+msgid "Reading directory: "
+msgstr "Reading directory: "
+
+#: fileaccess.cpp:1355
+#, kde-format
+msgid "Listing directory: %1"
+msgstr "Listing directory: %1"
+
+#: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396
+msgid "&Cancel"
+msgstr "&Cancel"
+
+#: difftextwindow.cpp:403
+msgid "Line"
+msgstr "Line"
+
+#: difftextwindow.cpp:405
+msgid "Line not available"
+msgstr "Line not available"
+
+#: difftextwindow.cpp:1703 difftextwindow.cpp:1736
+msgid "Encoding:"
+msgstr "Encoding:"
+
+#: difftextwindow.cpp:1759 kdiff3.cpp:831
+msgid "Top line"
+msgstr "Top line"
+
+#: difftextwindow.cpp:1769
+msgid "End"
+msgstr "End"
+
+#: kdiff3.cpp:169
+msgid "Current Configuration:"
+msgstr "Current Configuration:"
+
+#: kdiff3.cpp:174
+msgid "Config Option Error:"
+msgstr "Config Option Error:"
+
+#: kdiff3.cpp:219
+msgid "Option --auto used, but no output file specified."
+msgstr "Option --auto used, but no output file specified."
+
+#: kdiff3.cpp:369
+msgid "Option --auto ignored for directory comparison."
+msgstr "Option --auto ignored for directory comparison."
+
+#: kdiff3.cpp:405
+msgid "Saving failed."
+msgstr "Saving failed."
+
+#: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214
+msgid "Opening of these files failed:"
+msgstr "Opening of these files failed:"
+
+#: kdiff3.cpp:449
+msgid "File Open Error"
+msgstr "File Open Error"
+
+#: kdiff3.cpp:477
+msgid "Opens documents for comparison..."
+msgstr "Opens documents for comparison..."
+
+#: kdiff3.cpp:479
+msgid "Reload"
+msgstr "Reload"
+
+#: kdiff3.cpp:482
+msgid "Saves the merge result. All conflicts must be solved!"
+msgstr "Saves the merge result. All conflicts must be solved!"
+
+#: kdiff3.cpp:484
+msgid "Saves the current document as..."
+msgstr "Saves the current document as..."
+
+#: kdiff3.cpp:487
+msgid "Print the differences"
+msgstr "Print the differences"
+
+#: kdiff3.cpp:490
+msgid "Quits the application"
+msgstr "Quits the application"
+
+#: kdiff3.cpp:492
+msgid "Cuts the selected section and puts it to the clipboard"
+msgstr "Cuts the selected section and puts it to the clipboard"
+
+#: kdiff3.cpp:494
+msgid "Copies the selected section to the clipboard"
+msgstr "Copies the selected section to the clipboard"
+
+#: kdiff3.cpp:496
+msgid "Pastes the clipboard contents to current position"
+msgstr "Pastes the clipboard contents to current position"
+
+#: kdiff3.cpp:498
+msgid "Select everything in current window"
+msgstr "Select everything in current window"
+
+#: kdiff3.cpp:500
+msgid "Search for a string"
+msgstr "Search for a string"
+
+#: kdiff3.cpp:502
+msgid "Search again for the string"
+msgstr "Search again for the string"
+
+#: kdiff3.cpp:507
+msgid "Enables/disables the statusbar"
+msgstr "Enables/disables the statusbar"
+
+#: kdiff3.cpp:511
+msgid "Configure KDiff3..."
+msgstr "Configure KDiff3..."
+
+#: kdiff3.cpp:532
+msgid "Go to Current Delta"
+msgstr "Go to Current Delta"
+
+#: kdiff3.cpp:532
+msgid ""
+"Current\n"
+"Delta"
+msgstr ""
+"Current\n"
+"Delta"
+
+#: kdiff3.cpp:534
+msgid "Go to First Delta"
+msgstr "Go to First Delta"
+
+#: kdiff3.cpp:534
+msgid ""
+"First\n"
+"Delta"
+msgstr ""
+"First\n"
+"Delta"
+
+#: kdiff3.cpp:536
+msgid "Go to Last Delta"
+msgstr "Go to Last Delta"
+
+#: kdiff3.cpp:536
+msgid ""
+"Last\n"
+"Delta"
+msgstr ""
+"Last\n"
+"Delta"
+
+#: kdiff3.cpp:538
+msgid "(Skips white space differences when \"Show White Space\" is disabled.)"
+msgstr "(Skips white space differences when \"Show White Space\" is disabled.)"
+
+#: kdiff3.cpp:539
+msgid ""
+"(Does not skip white space differences even when \"Show White Space\" is "
+"disabled.)"
+msgstr ""
+"(Does not skip white space differences even when \"Show White Space\" is "
+"disabled.)"
+
+#: kdiff3.cpp:540
+msgid "Go to Previous Delta"
+msgstr "Go to Previous Delta"
+
+#: kdiff3.cpp:540
+msgid ""
+"Prev\n"
+"Delta"
+msgstr ""
+"Prev\n"
+"Delta"
+
+#: kdiff3.cpp:542
+msgid "Go to Next Delta"
+msgstr "Go to Next Delta"
+
+#: kdiff3.cpp:542
+msgid ""
+"Next\n"
+"Delta"
+msgstr ""
+"Next\n"
+"Delta"
+
+#: kdiff3.cpp:544
+msgid "Go to Previous Conflict"
+msgstr "Go to Previous Conflict"
+
+#: kdiff3.cpp:544
+msgid ""
+"Prev\n"
+"Conflict"
+msgstr ""
+"Prev\n"
+"Conflict"
+
+#: kdiff3.cpp:546
+msgid "Go to Next Conflict"
+msgstr "Go to Next Conflict"
+
+#: kdiff3.cpp:546
+msgid ""
+"Next\n"
+"Conflict"
+msgstr ""
+"Next\n"
+"Conflict"
+
+#: kdiff3.cpp:548
+msgid "Go to Previous Unsolved Conflict"
+msgstr "Go to Previous Unsolved Conflict"
+
+#: kdiff3.cpp:548
+msgid ""
+"Prev\n"
+"Unsolved"
+msgstr ""
+"Prev\n"
+"Unsolved"
+
+#: kdiff3.cpp:550
+msgid "Go to Next Unsolved Conflict"
+msgstr "Go to Next Unsolved Conflict"
+
+#: kdiff3.cpp:550
+msgid ""
+"Next\n"
+"Unsolved"
+msgstr ""
+"Next\n"
+"Unsolved"
+
+#: kdiff3.cpp:552
+msgid "Select Line(s) From A"
+msgstr "Select Line(s) From A"
+
+#: kdiff3.cpp:552
+msgid ""
+"Choose\n"
+"A"
+msgstr ""
+"Choose\n"
+"A"
+
+#: kdiff3.cpp:553
+msgid "Select Line(s) From B"
+msgstr "Select Line(s) From B"
+
+#: kdiff3.cpp:553
+msgid ""
+"Choose\n"
+"B"
+msgstr ""
+"Choose\n"
+"B"
+
+#: kdiff3.cpp:554
+msgid "Select Line(s) From C"
+msgstr "Select Line(s) From C"
+
+#: kdiff3.cpp:554
+msgid ""
+"Choose\n"
+"C"
+msgstr ""
+"Choose\n"
+"C"
+
+#: kdiff3.cpp:555
+msgid "Automatically Go to Next Unsolved Conflict After Source Selection"
+msgstr "Automatically Go to Next Unsolved Conflict After Source Selection"
+
+#: kdiff3.cpp:555
+msgid ""
+"Auto\n"
+"Next"
+msgstr ""
+"Auto\n"
+"Next"
+
+#: kdiff3.cpp:557
+msgid "Show Space && Tabulator Characters for Differences"
+msgstr "Show Space && Tabulator Characters for Differences"
+
+#: kdiff3.cpp:557
+msgid ""
+"White\n"
+"Characters"
+msgstr ""
+"White\n"
+"Characters"
+
+#: kdiff3.cpp:558
+msgid "Show White Space"
+msgstr "Show White Space"
+
+#: kdiff3.cpp:558
+msgid ""
+"White\n"
+"Deltas"
+msgstr ""
+"White\n"
+"Deltas"
+
+#: kdiff3.cpp:560
+msgid "Show Line Numbers"
+msgstr "Show Line Numbers"
+
+#: kdiff3.cpp:560
+msgid ""
+"Line\n"
+"Numbers"
+msgstr ""
+"Line\n"
+"Numbers"
+
+#: kdiff3.cpp:561
+msgid "Choose A Everywhere"
+msgstr "Choose A Everywhere"
+
+#: kdiff3.cpp:562
+msgid "Choose B Everywhere"
+msgstr "Choose B Everywhere"
+
+#: kdiff3.cpp:563
+msgid "Choose C Everywhere"
+msgstr "Choose C Everywhere"
+
+#: kdiff3.cpp:564
+msgid "Choose A for All Unsolved Conflicts"
+msgstr "Choose A for All Unsolved Conflicts"
+
+#: kdiff3.cpp:565
+msgid "Choose B for All Unsolved Conflicts"
+msgstr "Choose B for All Unsolved Conflicts"
+
+#: kdiff3.cpp:566
+msgid "Choose C for All Unsolved Conflicts"
+msgstr "Choose C for All Unsolved Conflicts"
+
+#: kdiff3.cpp:567
+msgid "Choose A for All Unsolved Whitespace Conflicts"
+msgstr "Choose A for All Unsolved Whitespace Conflicts"
+
+#: kdiff3.cpp:568
+msgid "Choose B for All Unsolved Whitespace Conflicts"
+msgstr "Choose B for All Unsolved Whitespace Conflicts"
+
+#: kdiff3.cpp:569
+msgid "Choose C for All Unsolved Whitespace Conflicts"
+msgstr "Choose C for All Unsolved Whitespace Conflicts"
+
+#: kdiff3.cpp:570
+msgid "Automatically Solve Simple Conflicts"
+msgstr "Automatically Solve Simple Conflicts"
+
+#: kdiff3.cpp:571
+msgid "Set Deltas to Conflicts"
+msgstr "Set Deltas to Conflicts"
+
+#: kdiff3.cpp:572
+msgid "Run Regular Expression Auto Merge"
+msgstr "Run Regular Expression Auto Merge"
+
+#: kdiff3.cpp:573
+msgid "Automatically Solve History Conflicts"
+msgstr "Automatically Solve History Conflicts"
+
+#: kdiff3.cpp:574
+msgid "Split Diff At Selection"
+msgstr "Split Diff At Selection"
+
+#: kdiff3.cpp:575
+msgid "Join Selected Diffs"
+msgstr "Join Selected Diffs"
+
+#: kdiff3.cpp:577
+msgid "Show Window A"
+msgstr "Show Window A"
+
+#: kdiff3.cpp:578
+msgid "Show Window B"
+msgstr "Show Window B"
+
+#: kdiff3.cpp:579
+msgid "Show Window C"
+msgstr "Show Window C"
+
+#: kdiff3.cpp:580 kdiff3.cpp:591
+msgid "Focus Next Window"
+msgstr "Focus Next Window"
+
+#: kdiff3.cpp:582
+msgid "Normal Overview"
+msgstr "Normal Overview"
+
+#: kdiff3.cpp:583
+msgid "A vs. B Overview"
+msgstr "A vs. B Overview"
+
+#: kdiff3.cpp:584
+msgid "A vs. C Overview"
+msgstr "A vs. C Overview"
+
+#: kdiff3.cpp:585
+msgid "B vs. C Overview"
+msgstr "B vs. C Overview"
+
+#: kdiff3.cpp:586
+msgid "Word Wrap Diff Windows"
+msgstr "Word Wrap Diff Windows"
+
+#: kdiff3.cpp:587
+msgid "Add Manual Diff Alignment"
+msgstr "Add Manual Diff Alignment"
+
+#: kdiff3.cpp:588
+msgid "Clear All Manual Diff Alignments"
+msgstr "Clear All Manual Diff Alignments"
+
+#: kdiff3.cpp:593
+msgid "Focus Prev Window"
+msgstr "Focus Prev Window"
+
+#: kdiff3.cpp:594
+msgid "Toggle Split Orientation"
+msgstr "Toggle Split Orientation"
+
+#: kdiff3.cpp:596
+msgid "Dir && Text Split Screen View"
+msgstr "Dir && Text Split Screen View"
+
+#: kdiff3.cpp:598
+msgid "Toggle Between Dir && Text View"
+msgstr "Toggle Between Dir && Text View"
+
+#: kdiff3.cpp:654 pdiff.cpp:1812
+msgid "The merge result hasn't been saved."
+msgstr "The merge result hasn't been saved."
+
+#: kdiff3.cpp:656
+msgid "Save && Quit"
+msgstr "Save && Quit"
+
+#: kdiff3.cpp:657
+msgid "Quit Without Saving"
+msgstr "Quit Without Saving"
+
+#: kdiff3.cpp:665 pdiff.cpp:1823
+msgid "Saving the merge result failed."
+msgstr "Saving the merge result failed."
+
+#: kdiff3.cpp:676 pdiff.cpp:1078
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort?"
+msgstr ""
+"You are currently doing a directory merge. Are you sure, you want to abort?"
+
+#: kdiff3.cpp:701
+msgid "Saving file..."
+msgstr "Saving file..."
+
+#: kdiff3.cpp:718
+msgid "Saving file with a new filename..."
+msgstr "Saving file with a new filename..."
+
+#: kdiff3.cpp:781
+#, fuzzy
+#| msgid "Printing completed."
+msgid "Printing not implemented."
+msgstr "Printing completed."
+
+#: kdiff3.cpp:815
+msgid "Printing..."
+msgstr "Printing..."
+
+#: kdiff3.cpp:956
+msgid "Selection"
+msgstr "Selection"
+
+#: kdiff3.cpp:982
+msgid "Printing completed."
+msgstr "Printing completed."
+
+#: kdiff3.cpp:986
+msgid "Printing aborted."
+msgstr "Printing aborted."
+
+#: kdiff3.cpp:993
+msgid "Exiting..."
+msgstr "Exiting..."
+
+#: kdiff3.cpp:1006
+msgid "Toggling toolbar..."
+msgstr "Toggling toolbar..."
+
+#: kdiff3.cpp:1027
+msgid "Toggle the statusbar..."
+msgstr "Toggle the statusbar..."
+
+#: smalldialogs.cpp:58
+msgid "A (Base):"
+msgstr "A (Base):"
+
+#: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99
+#: smalldialogs.cpp:142
+msgid "File..."
+msgstr "File..."
+
+#: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101
+#: smalldialogs.cpp:144
+msgid "Dir..."
+msgstr "Dir..."
+
+#: smalldialogs.cpp:93
+msgid "C (Optional):"
+msgstr "C (Optional):"
+
+#: smalldialogs.cpp:116
+msgid "Swap/Copy Names ..."
+msgstr "Swap/Copy Names ..."
+
+#: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123
+#, kde-format
+msgid "Swap %1<->%2"
+msgstr "Swap %1<->%2"
+
+#: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126
+#, kde-format
+msgid "Copy %1->Output"
+msgstr "Copy %1->Output"
+
+#: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129
+#, kde-format
+msgid "Swap %1<->Output"
+msgstr "Swap %1<->Output"
+
+#: smalldialogs.cpp:136
+msgid "Output (optional):"
+msgstr "Output (optional):"
+
+#: smalldialogs.cpp:168
+msgid "Configure..."
+msgstr "Configure..."
+
+#: smalldialogs.cpp:174
+msgid "&OK"
+msgstr "&OK"
+
+#: smalldialogs.cpp:362
+msgid "Search text:"
+msgstr "Search text:"
+
+#: smalldialogs.cpp:369
+msgid "Case sensitive"
+msgstr "Case sensitive"
+
+#: smalldialogs.cpp:372
+msgid "Search A"
+msgstr "Search A"
+
+#: smalldialogs.cpp:377
+msgid "Search B"
+msgstr "Search B"
+
+#: smalldialogs.cpp:382
+msgid "Search C"
+msgstr "Search C"
+
+#: smalldialogs.cpp:387
+msgid "Search output"
+msgstr "Search output"
+
+#: smalldialogs.cpp:392
+msgid "&Search"
+msgstr "&Search"
+
+#: smalldialogs.cpp:409
+msgid "Regular Expression Tester"
+msgstr "Regular Expression Tester"
+
+#: smalldialogs.cpp:414 optiondialog.cpp:936
+msgid "Auto merge regular expression:"
+msgstr "Auto merge regular expression:"
+
+#: smalldialogs.cpp:422
+msgid "Example auto merge line:"
+msgstr "Example auto merge line:"
+
+#: smalldialogs.cpp:424
+msgid "To test auto merge, copy a line as used in your files."
+msgstr "To test auto merge, copy a line as used in your files."
+
+#: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494
+msgid "Match result:"
+msgstr "Match result:"
+
+#: smalldialogs.cpp:441 optiondialog.cpp:962
+msgid "History start regular expression:"
+msgstr "History start regular expression:"
+
+#: smalldialogs.cpp:449
+msgid "Example history start line (with leading comment):"
+msgstr "Example history start line (with leading comment):"
+
+#: smalldialogs.cpp:451
+msgid ""
+"Copy a history start line as used in your files,\n"
+"including the leading comment."
+msgstr ""
+"Copy a history start line as used in your files,\n"
+"including the leading comment."
+
+#: smalldialogs.cpp:469 optiondialog.cpp:972
+msgid "History entry start regular expression:"
+msgstr "History entry start regular expression:"
+
+#: smalldialogs.cpp:477
+msgid "History sort key order:"
+msgstr "History sort key order:"
+
+#: smalldialogs.cpp:485
+msgid "Example history entry start line (without leading comment):"
+msgstr "Example history entry start line (without leading comment):"
+
+#: smalldialogs.cpp:487
+msgid ""
+"Copy a history entry start line as used in your files,\n"
+"but omit the leading comment."
+msgstr ""
+"Copy a history entry start line as used in your files,\n"
+"but omit the leading comment."
+
+#: smalldialogs.cpp:501
+msgid "Sort key result:"
+msgstr "Sort key result:"
+
+#: smalldialogs.cpp:508
+msgid "OK"
+msgstr "OK"
+
+#: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583
+msgid "Match success."
+msgstr "Match success."
+
+#: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589
+msgid "Match failed."
+msgstr "Match failed."
+
+#: smalldialogs.cpp:574
+msgid "Opening and closing parentheses do not match in regular expression."
+msgstr "Opening and closing brackets do not match in regular expression."
+
+#: optiondialog.cpp:367
+msgid "Unicode, 8 bit"
+msgstr "Unicode, 8 bit"
+
+#: optiondialog.cpp:368
+msgid "Unicode"
+msgstr "Unicode"
+
+#: optiondialog.cpp:369
+msgid "Latin1"
+msgstr "Latin1"
+
+#: optiondialog.cpp:388
+msgid "Change this if non-ASCII characters are not displayed correctly."
+msgstr "Change this if non-ASCII characters are not displayed correctly."
+
+#: optiondialog.cpp:465
+msgid "Configure"
+msgstr "Configure"
+
+#: optiondialog.cpp:531
+msgid "Font"
+msgstr "Font"
+
+#: optiondialog.cpp:532
+msgid "Editor & Diff Output Font"
+msgstr "Editor & Diff Output Font"
+
+#: optiondialog.cpp:556
+msgid "Italic font for deltas"
+msgstr "Italic font for deltas"
+
+#: optiondialog.cpp:559
+msgid ""
+"Selects the italic version of the font for differences.\n"
+"If the font doesn't support italic characters, then this does nothing."
+msgstr ""
+"Selects the italic version of the font for differences.\n"
+"If the font doesn't support italic characters, then this does nothing."
+
+#: optiondialog.cpp:568
+msgid "Color"
+msgstr "Colour"
+
+#: optiondialog.cpp:569
+msgid "Colors Settings"
+msgstr "Colour Settings"
+
+#: optiondialog.cpp:588
+msgid "Editor and Diff Views:"
+msgstr "Editor and Diff Views:"
+
+#: optiondialog.cpp:596
+msgid "Foreground color:"
+msgstr "Foreground colour:"
+
+#: optiondialog.cpp:603
+msgid "Background color:"
+msgstr "Background colour:"
+
+#: optiondialog.cpp:612
+msgid "Diff background color:"
+msgstr "Diff background colour:"
+
+#: optiondialog.cpp:620
+msgid "Color A:"
+msgstr "Colour A:"
+
+#: optiondialog.cpp:628
+msgid "Color B:"
+msgstr "Colour B:"
+
+#: optiondialog.cpp:636
+msgid "Color C:"
+msgstr "Colour C:"
+
+#: optiondialog.cpp:643
+msgid "Conflict color:"
+msgstr "Conflict colour:"
+
+#: optiondialog.cpp:651
+msgid "Current range background color:"
+msgstr "Current range background colour:"
+
+#: optiondialog.cpp:659
+msgid "Current range diff background color:"
+msgstr "Current range diff background colour:"
+
+#: optiondialog.cpp:666
+msgid "Color for manually aligned difference ranges:"
+msgstr "Colour for manually aligned difference ranges:"
+
+#: optiondialog.cpp:672
+msgid "Directory Comparison View:"
+msgstr "Directory Comparison View:"
+
+#: optiondialog.cpp:678
+msgid "Newest file color:"
+msgstr "Newest file colour:"
+
+#: optiondialog.cpp:682
+msgid ""
+"Changing this color will only be effective when starting the next directory "
+"comparison."
+msgstr ""
+"Changing this colour will only be effective when starting the next directory "
+"comparison."
+
+#: optiondialog.cpp:687
+msgid "Oldest file color:"
+msgstr "Oldest file colour:"
+
+#: optiondialog.cpp:695
+msgid "Middle age file color:"
+msgstr "Middle age file colour:"
+
+#: optiondialog.cpp:703
+msgid "Color for missing files:"
+msgstr "Colour for missing files:"
+
+#: optiondialog.cpp:717
+msgid "Editor"
+msgstr "Editor"
+
+#: optiondialog.cpp:718
+msgid "Editor Behavior"
+msgstr "Editor Behaviour"
+
+#: optiondialog.cpp:732
+msgid "Tab inserts spaces"
+msgstr "Tab inserts spaces"
+
+#: optiondialog.cpp:735
+msgid ""
+"On: Pressing tab generates the appropriate number of spaces.\n"
+"Off: A tab character will be inserted."
+msgstr ""
+"On: Pressing tab generates the appropriate number of spaces.\n"
+"Off: A tab character will be inserted."
+
+#: optiondialog.cpp:741
+msgid "Tab size:"
+msgstr "Tab size:"
+
+#: optiondialog.cpp:747
+msgid "Auto indentation"
+msgstr "Auto indentation"
+
+#: optiondialog.cpp:750
+msgid "On: The indentation of the previous line is used for a new line.\n"
+msgstr "On: The indentation of the previous line is used for a new line.\n"
+
+#: optiondialog.cpp:754
+msgid "Auto copy selection"
+msgstr "Auto copy selection"
+
+#: optiondialog.cpp:757
+msgid ""
+"On: Any selection is immediately written to the clipboard.\n"
+"Off: You must explicitely copy e.g. via Ctrl-C."
+msgstr ""
+"On: Any selection is immediately written to the clipboard.\n"
+"Off: You must explicitely copy e.g. via Ctrl-C."
+
+#: optiondialog.cpp:768
+#, fuzzy
+#| msgid "&Window"
+msgid "Dos/Windows"
+msgstr "&Window"
+
+#: optiondialog.cpp:769
+#, fuzzy
+#| msgid "Auto Select"
+msgid "Autodetect"
+msgstr "Auto Select"
+
+#: optiondialog.cpp:772
+msgid ""
+"Sets the line endings for when an edited file is saved.\n"
+"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A"
+msgstr ""
+"Sets the line endings for when an edited file is saved.\n"
+"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A"
+
+#: optiondialog.cpp:784
+msgid "Diff"
+msgstr "Diff"
+
+#: optiondialog.cpp:785
+msgid "Diff Settings"
+msgstr "Diff Settings"
+
+#: optiondialog.cpp:809
+msgid "Treat as white space."
+msgstr "Treat as white space."
+
+#: optiondialog.cpp:811
+msgid "Ignore numbers"
+msgstr "Ignore numbers"
+
+#: optiondialog.cpp:814
+msgid ""
+"Ignore number characters during line matching phase. (Similar to Ignore "
+"white space.)\n"
+"Might help to compare files with numeric data."
+msgstr ""
+"Ignore number characters during line matching phase. (Similar to Ignore "
+"white space.)\n"
+"Might help to compare files with numeric data."
+
+#: optiondialog.cpp:819
+msgid "Ignore C/C++ comments"
+msgstr "Ignore C/C++ comments"
+
+#: optiondialog.cpp:821
+msgid "Treat C/C++ comments like white space."
+msgstr "Treat C/C++ comments like white space."
+
+#: optiondialog.cpp:825
+msgid "Ignore case"
+msgstr "Ignore case"
+
+#: optiondialog.cpp:828
+msgid "Treat case differences like white space changes. ('a'<=>'A')"
+msgstr "Treat case differences like white space changes. ('a'<=>'A')"
+
+#: optiondialog.cpp:832
+msgid "Preprocessor command:"
+msgstr "Preprocessor command:"
+
+#: optiondialog.cpp:836
+msgid "User defined pre-processing. (See the docs for details.)"
+msgstr "User defined pre-processing. (See the docs for details.)"
+
+#: optiondialog.cpp:839
+msgid "Line-matching preprocessor command:"
+msgstr "Line-matching preprocessor command:"
+
+#: optiondialog.cpp:843
+msgid ""
+"This pre-processor is only used during line matching.\n"
+"(See the docs for details.)"
+msgstr ""
+"This pre-processor is only used during line matching.\n"
+"(See the docs for details.)"
+
+#: optiondialog.cpp:846
+msgid "Try hard (slower)"
+msgstr "Try hard (slower)"
+
+#: optiondialog.cpp:849
+msgid ""
+"Enables the --minimal option for the external diff.\n"
+"The analysis of big files will be much slower."
+msgstr ""
+"Enables the --minimal option for the external diff.\n"
+"The analysis of big files will be much slower."
+
+#: optiondialog.cpp:854
+msgid "Align B and C for 3 input files"
+msgstr "Align B and C for 3 input files"
+
+#: optiondialog.cpp:857
+msgid ""
+"Try to align B and C when comparing or merging three input files.\n"
+"Not recommended for merging because merge might get more complicated.\n"
+"(Default is off.)"
+msgstr ""
+"Try to align B and C when comparing or merging three input files.\n"
+"Not recommended for merging because merge might get more complicated.\n"
+"(Default is off.)"
+
+#: optiondialog.cpp:870
+msgid "Merge Settings"
+msgstr "Merge Settings"
+
+#: optiondialog.cpp:885
+msgid "Auto advance delay (ms):"
+msgstr "Auto advance delay (ms):"
+
+#: optiondialog.cpp:890
+msgid ""
+"When in Auto-Advance mode the result of the current selection is shown \n"
+"for the specified time, before jumping to the next conflict. Range: 0-2000 ms"
+msgstr ""
+"When in Auto-Advance mode the result of the current selection is shown \n"
+"for the specified time, before jumping to the next conflict. Range: 0-2000 ms"
+
+#: optiondialog.cpp:895
+msgid "Show info dialogs"
+msgstr "Show info dialogues"
+
+#: optiondialog.cpp:897
+msgid "Show a dialog with information about the number of conflicts."
+msgstr "Show a dialogue with information about the number of conflicts."
+
+#: optiondialog.cpp:900
+msgid "White space 2-file merge default:"
+msgstr "White space 2-file merge default:"
+
+#: optiondialog.cpp:904 optiondialog.cpp:917
+msgid "Manual Choice"
+msgstr "Manual Choice"
+
+#: optiondialog.cpp:908 optiondialog.cpp:922
+msgid ""
+"Allow the merge algorithm to automatically select an input for white-space-"
+"only changes."
+msgstr ""
+"Allow the merge algorithm to automatically select an input for white-space-"
+"only changes."
+
+#: optiondialog.cpp:913
+msgid "White space 3-file merge default:"
+msgstr "White space 3-file merge default:"
+
+#: optiondialog.cpp:927
+msgid "Automatic Merge Regular Expression"
+msgstr "Automatic Merge Regular Expression"
+
+#: optiondialog.cpp:940
+msgid ""
+"Regular expression for lines where KDiff3 should automatically choose one "
+"source.\n"
+"When a line with a conflict matches the regular expression then\n"
+"- if available - C, otherwise B will be chosen."
+msgstr ""
+"Regular expression for lines where KDiff3 should automatically choose one "
+"source.\n"
+"When a line with a conflict matches the regular expression then\n"
+"- if available - C, otherwise B will be chosen."
+
+#: optiondialog.cpp:946
+msgid "Run regular expression auto merge on merge start"
+msgstr "Run regular expression auto merge on merge start"
+
+#: optiondialog.cpp:948
+msgid ""
+"Run the merge for auto merge regular expressions\n"
+"immediately when a merge starts.\n"
+msgstr ""
+"Run the merge for auto merge regular expressions\n"
+"immediately when a merge starts.\n"
+
+#: optiondialog.cpp:953
+msgid "Version Control History Merging"
+msgstr "Version Control History Merging"
+
+#: optiondialog.cpp:966
+msgid ""
+"Regular expression for the start of the version control history entry.\n"
+"Usually this line contains the \"$Log$\" keyword.\n"
+"Default value: \".*\\$Log.*\\$.*\""
+msgstr ""
+"Regular expression for the start of the version control history entry.\n"
+"Usually this line contains the \"$Log$\" keyword.\n"
+"Default value: \".*\\$Log.*\\$.*\""
+
+#: optiondialog.cpp:984
+msgid ""
+"A version control history entry consists of several lines.\n"
+"Specify the regular expression to detect the first line (without the leading "
+"comment).\n"
+"Use parentheses to group the keys you want to use for sorting.\n"
+"If left empty, then KDiff3 assumes that empty lines separate history "
+"entries.\n"
+"See the documentation for details."
+msgstr ""
+"A version control history entry consists of several lines.\n"
+"Specify the regular expression to detect the first line (without the leading "
+"comment).\n"
+"Use brackets to group the keys you want to use for sorting.\n"
+"If left empty, then KDiff3 assumes that empty lines separate history "
+"entries.\n"
+"See the documentation for details."
+
+#: optiondialog.cpp:992
+msgid "History merge sorting"
+msgstr "History merge sorting"
+
+#: optiondialog.cpp:994
+msgid "Sort version control history by a key."
+msgstr "Sort version control history by a key."
+
+#: optiondialog.cpp:1004
+msgid "History entry start sort key order:"
+msgstr "History entry start sort key order:"
+
+#: optiondialog.cpp:1008
+msgid ""
+"Each pair of parentheses used in the regular expression for the history "
+"start entry\n"
+"groups a key that can be used for sorting.\n"
+"Specify the list of keys (that are numbered in order of occurrence\n"
+"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n"
+"If left empty, then no sorting will be done.\n"
+"See the documentation for details."
+msgstr ""
+"Each pair of brackets used in the regular expression for the history start "
+"entry\n"
+"groups a key that can be used for sorting.\n"
+"Specify the list of keys (that are numbered in order of occurrence\n"
+"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n"
+"If left empty, then no sorting will be done.\n"
+"See the documentation for details."
+
+#: optiondialog.cpp:1019
+msgid "Merge version control history on merge start"
+msgstr "Merge version control history on merge start"
+
+#: optiondialog.cpp:1021
+msgid "Run version control history automerge on merge start."
+msgstr "Run version control history automerge on merge start."
+
+#: optiondialog.cpp:1025
+msgid "Max number of history entries:"
+msgstr "Max number of history entries:"
+
+#: optiondialog.cpp:1028
+msgid "Cut off after specified number. Use -1 for infinite number of entries."
+msgstr "Cut off after specified number. Use -1 for infinite number of entries."
+
+#: optiondialog.cpp:1032
+msgid "Test your regular expressions"
+msgstr "Test your regular expressions"
+
+#: optiondialog.cpp:1037
+msgid "Irrelevant merge command:"
+msgstr "Irrelevant merge command:"
+
+#: optiondialog.cpp:1041
+msgid ""
+"If specified this script is run after automerge\n"
+"when no other relevant changes were detected.\n"
+"Called with the parameters: filename1 filename2 filename3"
+msgstr ""
+"If specified this script is run after automerge\n"
+"when no other relevant changes were detected.\n"
+"Called with the parameters: filename1 filename2 filename3"
+
+#: optiondialog.cpp:1047
+msgid "Auto save and quit on merge without conflicts"
+msgstr "Auto save and quit on merge without conflicts"
+
+#: optiondialog.cpp:1050
+msgid ""
+"If KDiff3 was started for a file-merge from the command line and all\n"
+"conflicts are solvable without user interaction then automatically save and "
+"quit.\n"
+"(Similar to command line option \"--auto\".)"
+msgstr ""
+"If KDiff3 was started for a file-merge from the command line and all\n"
+"conflicts are solvable without user interaction then automatically save and "
+"quit.\n"
+"(Similar to command line option \"--auto\".)"
+
+#: optiondialog.cpp:1061 optiondialog.cpp:1062
+msgid "Directory"
+msgstr "Directory"
+
+#: optiondialog.cpp:1075
+msgid "Recursive directories"
+msgstr "Recursive directories"
+
+#: optiondialog.cpp:1077
+msgid "Whether to analyze subdirectories or not."
+msgstr "Whether to analyse subdirectories or not."
+
+#: optiondialog.cpp:1079
+msgid "File pattern(s):"
+msgstr "File pattern(s):"
+
+#: optiondialog.cpp:1084
+msgid ""
+"Pattern(s) of files to be analyzed. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Pattern(s) of files to be analysed. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+
+#: optiondialog.cpp:1090
+msgid "File-anti-pattern(s):"
+msgstr "File-anti-pattern(s):"
+
+#: optiondialog.cpp:1095
+msgid ""
+"Pattern(s) of files to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Pattern(s) of files to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+
+#: optiondialog.cpp:1101
+msgid "Dir-anti-pattern(s):"
+msgstr "Dir-anti-pattern(s):"
+
+#: optiondialog.cpp:1106
+msgid ""
+"Pattern(s) of directories to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Pattern(s) of directories to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+
+#: optiondialog.cpp:1112
+msgid "Use .cvsignore"
+msgstr "Use .cvsignore"
+
+#: optiondialog.cpp:1115
+msgid ""
+"Extends the antipattern to anything that would be ignored by CVS.\n"
+"Via local \".cvsignore\" files this can be directory specific."
+msgstr ""
+"Extends the antipattern to anything that would be ignored by CVS.\n"
+"Via local \".cvsignore\" files this can be directory specific."
+
+#: optiondialog.cpp:1120
+msgid "Find hidden files and directories"
+msgstr "Find hidden files and directories"
+
+#: optiondialog.cpp:1123
+msgid "Finds files and directories with the hidden attribute."
+msgstr "Finds files and directories with the hidden attribute."
+
+#: optiondialog.cpp:1125
+msgid "Finds files and directories starting with '.'."
+msgstr "Finds files and directories starting with '.'."
+
+#: optiondialog.cpp:1129
+msgid "Follow file links"
+msgstr "Follow file links"
+
+#: optiondialog.cpp:1132
+msgid ""
+"On: Compare the file the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+"On: Compare the file the link points to.\n"
+"Off: Compare the links."
+
+#: optiondialog.cpp:1137
+msgid "Follow directory links"
+msgstr "Follow directory links"
+
+#: optiondialog.cpp:1140
+msgid ""
+"On: Compare the directory the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+"On: Compare the directory the link points to.\n"
+"Off: Compare the links."
+
+#: optiondialog.cpp:1156
+msgid "Case sensitive filename comparison"
+msgstr "Case sensitive filename comparison"
+
+#: optiondialog.cpp:1159
+msgid ""
+"The directory comparison will compare files or directories when their names "
+"match.\n"
+"Set this option if the case of the names must match. (Default for Windows is "
+"off, otherwise on.)"
+msgstr ""
+"The directory comparison will compare files or directories when their names "
+"match.\n"
+"Set this option if the case of the names must match. (Default for Windows is "
+"off, otherwise on.)"
+
+#: optiondialog.cpp:1163
+msgid "File Comparison Mode"
+msgstr "File Comparison Mode"
+
+#: optiondialog.cpp:1169
+msgid "Binary comparison"
+msgstr "Binary comparison"
+
+#: optiondialog.cpp:1170
+msgid "Binary comparison of each file. (Default)"
+msgstr "Binary comparison of each file. (Default)"
+
+#: optiondialog.cpp:1173
+msgid "Full analysis"
+msgstr "Full analysis"
+
+#: optiondialog.cpp:1174
+msgid ""
+"Do a full analysis and show statistics information in extra columns.\n"
+"(Slower than a binary comparison, much slower for binary files.)"
+msgstr ""
+"Do a full analysis and show statistics information in extra columns.\n"
+"(Slower than a binary comparison, much slower for binary files.)"
+
+#: optiondialog.cpp:1178
+msgid "Trust the size and modification date (unsafe)"
+msgstr "Trust the size and modification date (unsafe)"
+
+#: optiondialog.cpp:1179
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"Files with equal contents but different modification dates will appear as "
+"different.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"Files with equal contents but different modification dates will appear as "
+"different.\n"
+"Useful for big directories or slow networks."
+
+#: optiondialog.cpp:1184
+msgid ""
+"Trust the size and date, but use binary comparison if date does not match "
+"(unsafe)"
+msgstr ""
+"Trust the size and date, but use binary comparison if date does not match "
+"(unsafe)"
+
+#: optiondialog.cpp:1185
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"If the dates are not equal but the sizes are, use binary comparison.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"If the dates are not equal but the sizes are, use binary comparison.\n"
+"Useful for big directories or slow networks."
+
+#: optiondialog.cpp:1190
+msgid "Trust the size (unsafe)"
+msgstr "Trust the size (unsafe)"
+
+#: optiondialog.cpp:1191
+msgid ""
+"Assume that files are equal if their file lengths are equal.\n"
+"Useful for big directories or slow networks when the date is modified during "
+"download."
+msgstr ""
+"Assume that files are equal if their file lengths are equal.\n"
+"Useful for big directories or slow networks when the date is modified during "
+"download."
+
+#: optiondialog.cpp:1199
+msgid "Synchronize directories"
+msgstr "Synchronise directories"
+
+#: optiondialog.cpp:1202
+msgid ""
+"Offers to store files in both directories so that\n"
+"both directories are the same afterwards.\n"
+"Works only when comparing two directories without specifying a destination."
+msgstr ""
+"Offers to store files in both directories so that\n"
+"both directories are the same afterwards.\n"
+"Works only when comparing two directories without specifying a destination."
+
+#: optiondialog.cpp:1208
+msgid "White space differences considered equal"
+msgstr "White space differences considered equal"
+
+#: optiondialog.cpp:1211
+msgid ""
+"If files differ only by white space consider them equal.\n"
+"This is only active when full analysis is chosen."
+msgstr ""
+"If files differ only by white space consider them equal.\n"
+"This is only active when full analysis is chosen."
+
+#: optiondialog.cpp:1217
+msgid "Copy newer instead of merging (unsafe)"
+msgstr "Copy newer instead of merging (unsafe)"
+
+#: optiondialog.cpp:1220
+msgid ""
+"Don't look inside, just take the newer file.\n"
+"(Use this only if you know what you are doing!)\n"
+"Only effective when comparing two directories."
+msgstr ""
+"Don't look inside, just take the newer file.\n"
+"(Use this only if you know what you are doing!)\n"
+"Only effective when comparing two directories."
+
+#: optiondialog.cpp:1225
+msgid "Backup files (.orig)"
+msgstr "Backup files (.orig)"
+
+#: optiondialog.cpp:1228
+msgid ""
+"If a file would be saved over an old file, then the old file\n"
+"will be renamed with a '.orig' extension instead of being deleted."
+msgstr ""
+"If a file would be saved over an old file, then the old file\n"
+"will be renamed with a '.orig' extension instead of being deleted."
+
+#: optiondialog.cpp:1301 optiondialog.cpp:1302
+msgid "Regional Settings"
+msgstr "Regional Settings"
+
+#: optiondialog.cpp:1402
+msgid "Language (restart required)"
+msgstr "Language (restart required)"
+
+#: optiondialog.cpp:1445
+msgid ""
+"Choose the language of the GUI strings or \"Auto\".\n"
+"For a change of language to take place, quit and restart KDiff3."
+msgstr ""
+"Choose the language of the GUI strings or \"Auto\".\n"
+"For a change of language to take place, quit and restart KDiff3."
+
+#: optiondialog.cpp:1463
+msgid "Use the same encoding for everything:"
+msgstr "Use the same encoding for everything:"
+
+#: optiondialog.cpp:1466
+msgid ""
+"Enable this allows to change all encodings by changing the first only.\n"
+"Disable this if different individual settings are needed."
+msgstr ""
+"Enable this allows to change all encodings by changing the first only.\n"
+"Disable this if different individual settings are needed."
+
+#: optiondialog.cpp:1471
+msgid "Note: Local Encoding is "
+msgstr "Note: Local Encoding is "
+
+#: optiondialog.cpp:1475
+msgid "File Encoding for A:"
+msgstr "File Encoding for A:"
+
+#: optiondialog.cpp:1481
+msgid ""
+"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n"
+"If the file is not Unicode then the selected encoding will be used as "
+"fallback.\n"
+"(Unicode detection depends on the first bytes of a file.)"
+msgstr ""
+"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n"
+"If the file is not Unicode then the selected encoding will be used as "
+"fallback.\n"
+"(Unicode detection depends on the first bytes of a file.)"
+
+#: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503
+msgid "Auto Detect Unicode"
+msgstr "Auto Detect Unicode"
+
+#: optiondialog.cpp:1490
+msgid "File Encoding for B:"
+msgstr "File Encoding for B:"
+
+#: optiondialog.cpp:1499
+msgid "File Encoding for C:"
+msgstr "File Encoding for C:"
+
+#: optiondialog.cpp:1508
+msgid "File Encoding for Merge Output and Saving:"
+msgstr "File Encoding for Merge Output and Saving:"
+
+#: optiondialog.cpp:1512
+msgid "Auto Select"
+msgstr "Auto Select"
+
+#: optiondialog.cpp:1515
+msgid ""
+"If enabled then the encoding from the input files is used.\n"
+"In ambiguous cases a dialog will ask the user to choose the encoding for "
+"saving."
+msgstr ""
+"If enabled then the encoding from the input files is used.\n"
+"In ambiguous cases a dialogue will ask the user to choose the encoding for "
+"saving."
+
+#: optiondialog.cpp:1519
+msgid "File Encoding for Preprocessor Files:"
+msgstr "File Encoding for Preprocessor Files:"
+
+#: optiondialog.cpp:1530
+msgid "Right To Left Language"
+msgstr "Right To Left Language"
+
+#: optiondialog.cpp:1533
+msgid ""
+"Some languages are read from right to left.\n"
+"This setting will change the viewer and editor accordingly."
+msgstr ""
+"Some languages are read from right to left.\n"
+"This setting will change the viewer and editor accordingly."
+
+#: optiondialog.cpp:1548
+msgid "Integration"
+msgstr "Integration"
+
+#: optiondialog.cpp:1549
+msgid "Integration Settings"
+msgstr "Integration Settings"
+
+#: optiondialog.cpp:1563
+msgid "Command line options to ignore:"
+msgstr "Command line options to ignore:"
+
+#: optiondialog.cpp:1568
+msgid ""
+"List of command line options that should be ignored when KDiff3 is used by "
+"other tools.\n"
+"Several values can be specified if separated via ';'\n"
+"This will suppress the \"Unknown option\" error."
+msgstr ""
+"List of command line options that should be ignored when KDiff3 is used by "
+"other tools.\n"
+"Several values can be specified if separated via ';'\n"
+"This will suppress the \"Unknown option\" error."
+
+#: optiondialog.cpp:1575
+msgid "Quit also via Escape key"
+msgstr "Quit also via Escape key"
+
+#: optiondialog.cpp:1578
+msgid ""
+"Fast method to exit.\n"
+"For those who are used to using the Escape key."
+msgstr ""
+"Fast method to exit.\n"
+"For those who are used to using the Escape key."
+
+#: optiondialog.cpp:1583
+msgid "Integrate with ClearCase"
+msgstr "Integrate with ClearCase"
+
+#: optiondialog.cpp:1586
+msgid ""
+"Integrate with Rational ClearCase from IBM.\n"
+"Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n"
+"(Only enabled when ClearCase \"bin\" directory is in the path.)"
+msgstr ""
+"Integrate with Rational ClearCase from IBM.\n"
+"Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n"
+"(Only enabled when ClearCase \"bin\" directory is in the path.)"
+
+#: optiondialog.cpp:1592
+msgid "Remove ClearCase Integration"
+msgstr "Remove ClearCase Integration"
+
+#: optiondialog.cpp:1595
+msgid ""
+"Restore the old \"map\" file from before doing the ClearCase integration."
+msgstr ""
+"Restore the old \"map\" file from before doing the ClearCase integration."
+
+#: optiondialog.cpp:1680
+msgid "Incompatible Font"
+msgstr "Incompatible Font"
+
+#: optiondialog.cpp:1681
+msgid "Continue at Own Risk"
+msgstr "Continue at Own Risk"
+
+#: optiondialog.cpp:1682
+msgid "Select Another Font"
+msgstr "Select Another Font"
+
+#: optiondialog.cpp:1717
+msgid "This resets all options. Not only those of the current topic."
+msgstr "This resets all options. Not only those of the current topic."
+
+#: pdiff.cpp:260
+msgid "PreprocessorCmd: "
+msgstr "PreprocessorCmd: "
+
+#: pdiff.cpp:265
+msgid "The following option(s) you selected might change data:\n"
+msgstr "The following option(s) you selected might change data:\n"
+
+#: pdiff.cpp:266
+msgid ""
+"\n"
+"Most likely this is not wanted during a merge.\n"
+"Do you want to disable these settings or continue with these settings active?"
+msgstr ""
+"\n"
+"Most likely this is not wanted during a merge.\n"
+"Do you want to disable these settings or continue with these settings active?"
+
+#: pdiff.cpp:268
+msgid "Option Unsafe for Merging"
+msgstr "Option Unsafe for Merging"
+
+#: pdiff.cpp:269
+msgid "Use These Options During Merge"
+msgstr "Use These Options During Merge"
+
+#: pdiff.cpp:270
+msgid "Disable Unsafe Options"
+msgstr "Disable Unsafe Options"
+
+#: pdiff.cpp:300
+msgid "Loading A"
+msgstr "Loading A"
+
+#: pdiff.cpp:304
+msgid "Loading B"
+msgstr "Loading B"
+
+#: pdiff.cpp:321 pdiff.cpp:347
+msgid "Diff: A <-> B"
+msgstr "Diff: A <-> B"
+
+#: pdiff.cpp:327 pdiff.cpp:372
+msgid "Linediff: A <-> B"
+msgstr "Linediff: A <-> B"
+
+#: pdiff.cpp:338
+msgid "Loading C"
+msgstr "Loading C"
+
+#: pdiff.cpp:350
+msgid "Diff: B <-> C"
+msgstr "Diff: B <-> C"
+
+#: pdiff.cpp:353
+msgid "Diff: A <-> C"
+msgstr "Diff: A <-> C"
+
+#: pdiff.cpp:375
+msgid "Linediff: B <-> C"
+msgstr "Linediff: B <-> C"
+
+#: pdiff.cpp:378
+msgid "Linediff: A <-> C"
+msgstr "Linediff: A <-> C"
+
+#: pdiff.cpp:534
+msgid "All input files contain the same text, but are not binary equal."
+msgstr "All input files contain the same text, but are not binary equal."
+
+#: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541
+#, kde-format
+msgid "Files %1 and %2 have equal text, but are not binary equal. \n"
+msgstr "Files %1 and %2 have equal text, but are not binary equal. \n"
+
+#: pdiff.cpp:551
+msgid ""
+"Some inputfiles don't seem to be pure textfiles.\n"
+"Note that the KDiff3-merge was not meant for binary data.\n"
+"Continue at your own risk."
+msgstr ""
+"Some inputfiles don't seem to be pure textfiles.\n"
+"Note that the KDiff3-merge was not meant for binary data.\n"
+"Continue at your own risk."
+
+#: pdiff.cpp:566
+#, kde-format
+msgid ""
+"Some input characters could not be converted to valid unicode.\n"
+"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n"
+"Don't save the result if unsure. Continue at your own risk.\n"
+"Affected input files are in %1."
+msgstr ""
+
+#: pdiff.cpp:1080
+msgid "Abort"
+msgstr "Abort"
+
+#: pdiff.cpp:1087 pdiff.cpp:1175
+msgid "Opening files..."
+msgstr "Opening files..."
+
+#: pdiff.cpp:1152 pdiff.cpp:1223
+msgid "File open error"
+msgstr "File open error"
+
+#: pdiff.cpp:1255
+msgid "Cutting selection..."
+msgstr "Cutting selection..."
+
+#: pdiff.cpp:1276
+msgid "Copying selection to clipboard..."
+msgstr "Copying selection to clipboard..."
+
+#: pdiff.cpp:1292
+msgid "Inserting clipboard contents..."
+msgstr "Inserting clipboard contents..."
+
+#: pdiff.cpp:1814
+msgid "Save && Continue"
+msgstr "Save && Continue"
+
+#: pdiff.cpp:1815
+msgid "Continue Without Saving"
+msgstr "Continue Without Saving"
+
+#: pdiff.cpp:2018
+msgid "Search complete."
+msgstr "Search complete."
+
+#: pdiff.cpp:2018
+msgid "Search Complete"
+msgstr "Search Complete"
+
+#: pdiff.cpp:2252
+msgid "Nothing is selected in either diff input window."
+msgstr "Nothing is selected in either diff input window."
+
+#: pdiff.cpp:2252
+msgid "Error while adding manual diff range"
+msgstr "Error while adding manual diff range"
+
+#: kdiff3_shell.cpp:76
+#, fuzzy
+#| msgid ""
+#| "Could not initialize the KDiff part.\n"
+#| "This usually happens due to an installation problem. Please read the "
+#| "README-file in the source package for details."
+msgid ""
+"Could not initialize the KDiff3 part.\n"
+"This usually happens due to an installation problem. Please read the README-"
+"file in the source package for details."
+msgstr ""
+"Could not initialise the KDiff part.\n"
+"This usually happens due to an installation problem. Please read the README-"
+"file in the source package for details."
+
+#: rc.cpp:1
+msgctxt "NAME OF TRANSLATORS"
+msgid "Your names"
+msgstr "Andrew Coles"
+
+#: rc.cpp:2
+msgctxt "EMAIL OF TRANSLATORS"
+msgid "Your emails"
+msgstr "andrew_coles@yahoo.co.uk"
+
+#. i18n: file: kdiff3_part.rc:4
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:5
+msgid "&KDiff3"
+msgstr "&KDiff3"
+
+#. i18n: file: kdiff3_part.rc:13
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:8
+msgid "Configure KDiff3"
+msgstr "Configure KDiff3"
+
+#. i18n: file: kdiff3_part.rc:16
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:11
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#. i18n: file: kdiff3_shell.rc:106
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:38
+msgid "Main Toolbar"
+msgstr "Main Toolbar"
+
+#~ msgid "Directory Merge"
+#~ msgstr "Directory Merge"
+
+#~ msgid "C&ontinue"
+#~ msgstr "C&ontinue"
+
+#~ msgid ""
+#~ "_: NAME OF TRANSLATORS\n"
+#~ "Your names"
+#~ msgstr "Jonathan Riddell"
+
+#~ msgid ""
+#~ "_: EMAIL OF TRANSLATORS\n"
+#~ "Your emails"
+#~ msgstr "kde-en-gb@jriddell.org"
+
+#~ msgid "Enables/disables the toolbar"
+#~ msgstr "Enables/disables the toolbar"
+
+#~ msgid "Files A and B are binary equal.\n"
+#~ msgstr "Files A and B are binary equal.\n"
+
+#~ msgid "Files A and C are binary equal.\n"
+#~ msgstr "Files A and C are binary equal.\n"
+
+#~ msgid "Files A and C have equal text. \n"
+#~ msgstr "Files A and C have equal text. \n"
+
+#~ msgid "Files B and C are binary equal.\n"
+#~ msgstr "Files B and C are binary equal.\n"
+
+#~ msgid "Files B and C have equal text. \n"
+#~ msgstr "Files B and C have equal text. \n"
+
+#~ msgid "Preserve carriage return"
+#~ msgstr "Preserve carriage return"
+
+#~ msgid ""
+#~ "Show carriage return characters '\\r' if they exist.\n"
+#~ "Helps to compare files that were modified under different operating "
+#~ "systems."
+#~ msgstr ""
+#~ "Show carriage return characters '\\r' if they exist.\n"
+#~ "Helps to compare files that were modified under different operating "
+#~ "systems."
+
+#, fuzzy
+#~ msgid "Diff and Merge"
+#~ msgstr "Diff & Merge"
+
+#, fuzzy
+#~ msgid "Save Directory Merge State ..."
+#~ msgstr "Directory Merge"
+
+#, fuzzy
+#~ msgid "Load Directory Merge State ..."
+#~ msgstr "Directory Merge"
+
+#, fuzzy
+#~ msgid "Synchronize Directories"
+#~ msgstr "Synchronise directories"
+
+#, fuzzy
+#~ msgid "Copy Newer Files Instead of Merging"
+#~ msgstr "Copy newer instead of merging (unsafe)"
+
+#~ msgid "List only deltas"
+#~ msgstr "List only deltas"
+
+#~ msgid "Files and directories without change will not appear in the list."
+#~ msgstr "Files and directories without change will not appear in the list."
+
+#, fuzzy
+#~ msgid "no selection"
+#~ msgstr "Auto copy selection"
+
+#, fuzzy
+#~ msgid "Manually match lines"
+#~ msgstr "Manual Choice"
+
+#~ msgid "Has no effect. For compatibility with certain tools."
+#~ msgstr "Has no effect. For compatibility with certain tools."
+
+#~ msgid "For compatibility with certain tools."
+#~ msgstr "For compatibility with certain tools."
+
+#~ msgid "Colors in Editor & Diff Output"
+#~ msgstr "Colours in Editor & Diff Output"
diff --git a/po/en_GB/kdiff3plugin.po b/po/en_GB/kdiff3plugin.po
new file mode 100644 (file)
index 0000000..66c4b81
--- /dev/null
@@ -0,0 +1,99 @@
+# Copyright (C) YEAR This_file_is_part_of_KDE
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Andrew Coles <andrew_coles@yahoo.co.uk>, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2009-03-17 08:36+0000\n"
+"Last-Translator: Andrew Coles <andrew_coles@yahoo.co.uk>\n"
+"Language-Team: British English <kde-i18n-doc@kde.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 0.3\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: kdiff3plugin.cpp:107
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#: kdiff3plugin.cpp:114
+#, kde-format
+msgid "Compare with %1"
+msgstr "Compare with %1"
+
+#: kdiff3plugin.cpp:120
+#, kde-format
+msgid "Merge with %1"
+msgstr "Merge with %1"
+
+#: kdiff3plugin.cpp:126
+#, kde-format
+msgid "Save '%1' for later"
+msgstr "Save '%1' for later"
+
+#: kdiff3plugin.cpp:132
+msgid "3-way merge with base"
+msgstr "3-way merge with base"
+
+#: kdiff3plugin.cpp:139
+msgid "Compare with ..."
+msgstr "Compare with ..."
+
+#: kdiff3plugin.cpp:149
+msgid "Clear list"
+msgstr "Clear list"
+
+#: kdiff3plugin.cpp:157
+msgid "Compare"
+msgstr "Compare"
+
+#: kdiff3plugin.cpp:163
+msgid "3 way comparison"
+msgstr "3 way comparison"
+
+#: kdiff3plugin.cpp:167
+msgid "About KDiff3 menu plugin ..."
+msgstr "About KDiff3 menu plugin ..."
+
+#: kdiff3plugin.cpp:269
+msgid ""
+"KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+"KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+
+#: kdiff3plugin.cpp:271
+msgid ""
+"Using the context menu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else, \"Save\" the first file for later, and "
+"it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With"
+"\" on the second file.\n"
+"For a 3-way merge first, \"Save\" the base file, then the branch to merge, "
+"and then \"3-way merge with base\" on the other branch which will be used as "
+"the destination.\n"
+"The same also applies to directory comparison and merge."
+msgstr ""
+"Using the context menu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else, \"Save\" the first file for later, and "
+"it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With"
+"\" on the second file.\n"
+"For a 3-way merge first, \"Save\" the base file, then the branch to merge, "
+"and then \"3-way merge with base\" on the other branch which will be used as "
+"the destination.\n"
+"The same also applies to directory comparison and merge."
+
+#: kdiff3plugin.cpp:279
+#, fuzzy
+#| msgid "About KDiff3 menu plugin ..."
+msgid "About KDiff3 Menu Plugin"
+msgstr "About KDiff3 menu plugin ..."
diff --git a/po/eo/CMakeLists.txt b/po/eo/CMakeLists.txt
new file mode 100644 (file)
index 0000000..7298338
--- /dev/null
@@ -0,0 +1,2 @@
+file(GLOB _po_files *.po)
+GETTEXT_PROCESS_PO_FILES(eo ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
diff --git a/po/eo/kdiff3.po b/po/eo/kdiff3.po
new file mode 100644 (file)
index 0000000..305704f
--- /dev/null
@@ -0,0 +1,2918 @@
+# Translation of kdiff3 into esperanto.
+# Axel Rousseau <axel@esperanto-jeunes.org>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2009-11-15 12:06+0100\n"
+"Last-Translator: Axel Rousseau <axel@esperanto-jeunes.org>\n"
+"Language-Team: esperanto <kde-i18n-eo@kde.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: pology\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: kreplacements/kreplacements.h:105
+msgid "Continue"
+msgstr "Daŭrigi"
+
+#: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158
+#: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512
+msgid "Cancel"
+msgstr "Rezigni"
+
+#: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631
+msgid "Quit"
+msgstr "Forlasi"
+
+#: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339
+msgid "Ok"
+msgstr "Bone"
+
+#: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715
+msgid "Help"
+msgstr "Helpo"
+
+#: kreplacements/kreplacements.cpp:185
+msgid "Defaults"
+msgstr "Aprioraĵoj"
+
+#. i18n: file: kdiff3_shell.rc:4
+#. i18n: ectx: Menu (file)
+#: kreplacements/kreplacements.cpp:296 rc.cpp:14
+msgid "&File"
+msgstr "&Dosiero"
+
+#: kreplacements/kreplacements.cpp:297
+msgid "&Edit"
+msgstr "&Redakti"
+
+#. i18n: file: kdiff3_shell.rc:7
+#. i18n: ectx: Menu (directory)
+#: kreplacements/kreplacements.cpp:298 rc.cpp:17
+msgid "&Directory"
+msgstr "&Dosierujo"
+
+#. i18n: file: kdiff3_shell.rc:50
+#. i18n: ectx: Menu (movement)
+#: kreplacements/kreplacements.cpp:301 rc.cpp:26
+msgid "&Movement"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:61
+#. i18n: ectx: Menu (diff)
+#: kreplacements/kreplacements.cpp:302 rc.cpp:29
+msgid "D&iffview"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:73
+#. i18n: ectx: Menu (merge)
+#: kreplacements/kreplacements.cpp:303 rc.cpp:32
+msgid "&Merge"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:95
+#. i18n: ectx: Menu (window)
+#: kreplacements/kreplacements.cpp:304 rc.cpp:35
+msgid "&Window"
+msgstr "Fe&nestro"
+
+#: kreplacements/kreplacements.cpp:305
+msgid "&Settings"
+msgstr "A&gordo"
+
+#: kreplacements/kreplacements.cpp:306
+msgid "&Help"
+msgstr "&Helpo"
+
+#: kreplacements/kreplacements.cpp:353
+msgid "&About"
+msgstr "&Pri"
+
+#: kreplacements/kreplacements.cpp:369
+msgid "A&uthor"
+msgstr "&Aŭtoro"
+
+#: kreplacements/kreplacements.cpp:383
+msgid "&Thanks To"
+msgstr "&Dankon al"
+
+#. i18n: file: kdiff3_shell.rc:30
+#. i18n: ectx: Menu (dir_current_merge_menu)
+#: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497
+#: rc.cpp:20
+msgid "Current Item Merge Operation"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:38
+#. i18n: ectx: Menu (dir_current_sync_menu)
+#: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498
+#: rc.cpp:23
+msgid "Current Item Sync Operation"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:597
+msgid "Open"
+msgstr "Malfermi"
+
+#: kreplacements/kreplacements.cpp:606
+msgid "Save"
+msgstr "Konservi"
+
+#: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720
+msgid "Save As..."
+msgstr "Konservi kiel..."
+
+#: kreplacements/kreplacements.cpp:623
+msgid "Print..."
+msgstr "Presi..."
+
+#: kreplacements/kreplacements.cpp:639
+msgid "Cut"
+msgstr "Eltondi"
+
+#: kreplacements/kreplacements.cpp:647
+msgid "Copy"
+msgstr "Kopii"
+
+#: kreplacements/kreplacements.cpp:655
+msgid "Paste"
+msgstr "Alglui"
+
+#: kreplacements/kreplacements.cpp:663
+msgid "Select All"
+msgstr "Elekti ĉion"
+
+#: kreplacements/kreplacements.cpp:671
+msgid "Show Toolbar"
+msgstr "Montri ilobreton"
+
+#: kreplacements/kreplacements.cpp:679
+msgid "Show &Status Bar"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:687
+#, kde-format
+msgid "&Configure %1..."
+msgstr "&Agordi %1..."
+
+#: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707
+msgid "About"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:722
+msgid "Find"
+msgstr "Trovi"
+
+#: kreplacements/kreplacements.cpp:730
+msgid "Find Next"
+msgstr "Trovi sekvan"
+
+#: kreplacements/kreplacements.cpp:750
+msgid "Select Font"
+msgstr "Elekti tiparon"
+
+#: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676
+msgid ""
+"You selected a variable width font.\n"
+"\n"
+"Because this program doesn't handle variable width fonts\n"
+"correctly, you might experience problems while editing.\n"
+"\n"
+"Do you want to continue or do you want to select another font."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:792
+msgid "Incompatible font."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Continue at my own risk"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Select another font"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1134
+msgid "For more documentation, see the help-menu or the subdirectory doc."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "KDiff3-Usage"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Ignore"
+msgstr "Ignori"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Exit"
+msgstr "Finu"
+
+#: diff.cpp:251
+msgid "Writing clipboard data to temp file failed."
+msgstr ""
+
+#: diff.cpp:255
+msgid "From Clipboard"
+msgstr ""
+
+#: diff.cpp:471
+msgid "Expecting space after closing quotation mark."
+msgstr ""
+
+#: diff.cpp:474
+msgid "Not matching quotation marks."
+msgstr ""
+
+#: diff.cpp:496
+msgid "Unexpected quotation mark within argument."
+msgstr ""
+
+#: diff.cpp:503
+msgid "No program specified."
+msgstr ""
+
+#: diff.cpp:605
+#, kde-format
+msgid ""
+"Preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The preprocessing command will be disabled now."
+msgstr ""
+
+#: diff.cpp:653
+#, kde-format
+msgid ""
+"The line-matching-preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The line-matching-preprocessing command will be disabled now."
+msgstr ""
+
+#: diff.cpp:1776 diff.cpp:1790
+msgid ""
+"Data loss error:\n"
+"If it is reproducible please contact the author.\n"
+msgstr ""
+
+#: diff.cpp:1778 diff.cpp:1792
+msgid "Severe Internal Error"
+msgstr ""
+
+#: directorymergewindow.cpp:136
+msgid "Mix of links and normal files."
+msgstr ""
+
+#: directorymergewindow.cpp:143
+msgid "Link: "
+msgstr ""
+
+#: directorymergewindow.cpp:151
+msgid "Size. "
+msgstr ""
+
+#: directorymergewindow.cpp:164 directorymergewindow.cpp:174
+msgid "Date & Size: "
+msgstr ""
+
+#: directorymergewindow.cpp:184 directorymergewindow.cpp:190
+#, kde-format
+msgid "Creating temp copy of %1 failed."
+msgstr ""
+
+#: directorymergewindow.cpp:201 directorymergewindow.cpp:209
+#, kde-format
+msgid "Opening %1 failed."
+msgstr ""
+
+#: directorymergewindow.cpp:213
+msgid "Comparing file..."
+msgstr ""
+
+#: directorymergewindow.cpp:223 directorymergewindow.cpp:229
+#, kde-format
+msgid "Error reading from %1"
+msgstr "Eraro okazis dum legado de %1"
+
+#: directorymergewindow.cpp:358
+msgid "Name"
+msgstr "Nomo"
+
+#: directorymergewindow.cpp:358
+msgid "Operation"
+msgstr "Operacio"
+
+#: directorymergewindow.cpp:358
+msgid "Status"
+msgstr "Stato"
+
+#: directorymergewindow.cpp:359
+msgid "Unsolved"
+msgstr ""
+
+#: directorymergewindow.cpp:359
+msgid "Solved"
+msgstr ""
+
+#: directorymergewindow.cpp:359
+msgid "Nonwhite"
+msgstr ""
+
+#: directorymergewindow.cpp:359
+msgid "White"
+msgstr ""
+
+#: directorymergewindow.cpp:388
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort "
+"the merge and rescan the directory?"
+msgstr ""
+
+#: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655
+#: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823
+msgid "Warning"
+msgstr "Averto"
+
+#: directorymergewindow.cpp:390 directorymergewindow.cpp:2965
+msgid "Rescan"
+msgstr "Reserĉi"
+
+#: directorymergewindow.cpp:391 pdiff.cpp:1081
+msgid "Continue Merging"
+msgstr ""
+
+#: directorymergewindow.cpp:548
+msgid "Opening of directories failed:"
+msgstr ""
+
+#: directorymergewindow.cpp:551
+#, kde-format
+msgid "Dir A \"%1\" does not exist or is not a directory.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:554
+#, kde-format
+msgid "Dir B \"%1\" does not exist or is not a directory.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:557
+#, kde-format
+msgid "Dir C \"%1\" does not exist or is not a directory.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:559
+msgid "Directory Open Error"
+msgstr ""
+
+#: directorymergewindow.cpp:567
+msgid ""
+"The destination directory must not be the same as A or B when three "
+"directories are merged.\n"
+"Check again before continuing."
+msgstr ""
+
+#: directorymergewindow.cpp:569
+msgid "Parameter Warning"
+msgstr ""
+
+#: directorymergewindow.cpp:574
+msgid "Scanning directories..."
+msgstr ""
+
+#: directorymergewindow.cpp:607
+msgid "Reading Directory A"
+msgstr ""
+
+#: directorymergewindow.cpp:629
+msgid "Reading Directory B"
+msgstr ""
+
+#: directorymergewindow.cpp:651
+msgid "Reading Directory C"
+msgstr ""
+
+#: directorymergewindow.cpp:677
+msgid "Some subdirectories were not readable in"
+msgstr ""
+
+#: directorymergewindow.cpp:682
+msgid "Check the permissions of the subdirectories."
+msgstr ""
+
+#: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737
+#: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233
+#: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328
+msgid "Ready."
+msgstr "Preta."
+
+#: directorymergewindow.cpp:735
+msgid "Directory Comparison Status"
+msgstr ""
+
+#: directorymergewindow.cpp:736
+msgid "Number of subdirectories:"
+msgstr ""
+
+#: directorymergewindow.cpp:737
+msgid "Number of equal files:"
+msgstr ""
+
+#: directorymergewindow.cpp:738
+msgid "Number of different files:"
+msgstr ""
+
+#: directorymergewindow.cpp:741
+msgid "Number of manual merges:"
+msgstr ""
+
+#: directorymergewindow.cpp:912
+msgid "This affects all merge operations."
+msgstr ""
+
+#: directorymergewindow.cpp:913
+msgid "Changing All Merge Operations"
+msgstr ""
+
+#: directorymergewindow.cpp:1312
+msgid "Processing "
+msgstr ""
+
+#: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742
+msgid "To do."
+msgstr ""
+
+#: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996
+msgid "Copy A to B"
+msgstr ""
+
+#: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997
+msgid "Copy B to A"
+msgstr ""
+
+#: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998
+msgid "Delete A"
+msgstr ""
+
+#: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999
+msgid "Delete B"
+msgstr ""
+
+#: directorymergewindow.cpp:1814
+msgid "Delete A & B"
+msgstr ""
+
+#: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001
+msgid "Merge to A"
+msgstr ""
+
+#: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002
+msgid "Merge to B"
+msgstr ""
+
+#: directorymergewindow.cpp:1817
+msgid "Merge to A & B"
+msgstr ""
+
+#: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993
+msgid "Delete (if exists)"
+msgstr ""
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+#: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869
+msgid "Merge"
+msgstr "Mergi"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+msgid "Merge (manual)"
+msgstr ""
+
+#: directorymergewindow.cpp:1824
+msgid "Error: Conflicting File Types"
+msgstr ""
+
+#: directorymergewindow.cpp:1825
+msgid "Error: Changed and Deleted"
+msgstr ""
+
+#: directorymergewindow.cpp:1826
+msgid "Error: Dates are equal but files are not."
+msgstr ""
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906
+msgid "This operation is currently not possible."
+msgstr ""
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174
+msgid "Operation Not Possible"
+msgstr ""
+
+#: directorymergewindow.cpp:1945
+msgid ""
+"This should never happen: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"If you know how to reproduce this, please contact the program author."
+msgstr ""
+
+#: directorymergewindow.cpp:1945
+msgid "Program Error"
+msgstr ""
+
+#: directorymergewindow.cpp:1956
+msgid "An error occurred while copying.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025
+#: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105
+#: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123
+#: directorymergewindow.cpp:2374
+msgid "Error"
+msgstr "Eraro"
+
+#: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375
+msgid "Merge Error"
+msgstr ""
+
+#: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380
+msgid "Error."
+msgstr "Eraro."
+
+#: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272
+#: directorymergewindow.cpp:2312
+msgid "Done."
+msgstr "Farita."
+
+#: directorymergewindow.cpp:1990
+msgid "Not saved."
+msgstr ""
+
+#: directorymergewindow.cpp:2025
+msgid "Unknown merge operation. (This must never happen!)"
+msgstr ""
+
+#: directorymergewindow.cpp:2057
+msgid "Unknown merge operation."
+msgstr ""
+
+#: directorymergewindow.cpp:2072
+msgid ""
+"The merge is about to begin.\n"
+"\n"
+"Choose \"Do it\" if you have read the instructions and know what you are "
+"doing.\n"
+"Choosing \"Simulate it\" will tell you what would happen.\n"
+"\n"
+"Be aware that this program still has beta status and there is NO WARRANTY "
+"whatsoever! Make backups of your vital data!"
+msgstr ""
+
+#: directorymergewindow.cpp:2077
+msgid "Starting Merge"
+msgstr ""
+
+#: directorymergewindow.cpp:2078
+msgid "Do It"
+msgstr ""
+
+#: directorymergewindow.cpp:2079
+msgid "Simulate It"
+msgstr ""
+
+#: directorymergewindow.cpp:2105
+msgid ""
+"The highlighted item has a different type in the different directories. "
+"Select what to do."
+msgstr ""
+
+#: directorymergewindow.cpp:2114
+msgid ""
+"The modification dates of the file are equal but the files are not. Select "
+"what to do."
+msgstr ""
+
+#: directorymergewindow.cpp:2123
+msgid ""
+"The highlighted item was changed in one directory and deleted in the other. "
+"Select what to do."
+msgstr ""
+
+#: directorymergewindow.cpp:2174
+msgid ""
+"This operation is currently not possible because directory merge is "
+"currently running."
+msgstr ""
+
+#: directorymergewindow.cpp:2234
+msgid ""
+"There was an error in the last step.\n"
+"Do you want to continue with the item that caused the error or do you want "
+"to skip this item?"
+msgstr ""
+
+#: directorymergewindow.cpp:2236
+msgid "Continue merge after an error"
+msgstr ""
+
+#: directorymergewindow.cpp:2237
+msgid "Continue With Last Item"
+msgstr ""
+
+#: directorymergewindow.cpp:2238
+msgid "Skip Item"
+msgstr ""
+
+#: directorymergewindow.cpp:2272
+msgid "Skipped."
+msgstr ""
+
+#: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493
+msgid "In progress..."
+msgstr ""
+
+#: directorymergewindow.cpp:2327
+msgid "Merge operation complete."
+msgstr ""
+
+#: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330
+msgid "Merge Complete"
+msgstr ""
+
+#: directorymergewindow.cpp:2340
+msgid ""
+"Simulated merge complete: Check if you agree with the proposed operations."
+msgstr ""
+
+#: directorymergewindow.cpp:2374
+msgid "An error occurred. Press OK to see detailed information.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:2406
+#, kde-format
+msgid "Error: While deleting %1: Creating backup failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2413
+#, kde-format
+msgid "delete directory recursively( %1 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2415
+#, kde-format
+msgid "delete( %1 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2430
+msgid "Error: delete dir operation failed while trying to read the directory."
+msgstr ""
+
+#: directorymergewindow.cpp:2449
+#, kde-format
+msgid "Error: rmdir( %1 ) operation failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2459
+msgid "Error: delete operation failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2485
+#, kde-format
+msgid "manual merge( %1, %2, %3 -> %4)"
+msgstr ""
+
+#: directorymergewindow.cpp:2488
+msgid ""
+"     Note: After a manual merge the user should continue by pressing F7."
+msgstr ""
+
+#: directorymergewindow.cpp:2513
+#, kde-format
+msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2522
+#, kde-format
+msgid "copyLink( %1 -> %2 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2533
+msgid "Error: copyLink failed: Remote links are not yet supported."
+msgstr ""
+
+#: directorymergewindow.cpp:2539
+msgid "Error: copyLink failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2564
+#, kde-format
+msgid "copy( %1 -> %2 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2590
+#, kde-format
+msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination."
+msgstr ""
+
+#: directorymergewindow.cpp:2596
+#, kde-format
+msgid "rename( %1 -> %2 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2605
+msgid "Error: Rename failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2623
+#, kde-format
+msgid "Error during makeDir of %1. Cannot delete existing file."
+msgstr ""
+
+#: directorymergewindow.cpp:2639
+#, kde-format
+msgid "makeDir( %1 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2649
+msgid "Error while creating directory."
+msgstr ""
+
+#: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784
+msgid "Dest"
+msgstr ""
+
+#: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709
+msgid "Dir"
+msgstr ""
+
+#: directorymergewindow.cpp:2678
+msgid "Type"
+msgstr "Tipo"
+
+#: directorymergewindow.cpp:2678
+msgid "Size"
+msgstr "Grandeco"
+
+#: directorymergewindow.cpp:2679
+msgid "Attr"
+msgstr ""
+
+#: directorymergewindow.cpp:2679
+msgid "Last Modification"
+msgstr ""
+
+#: directorymergewindow.cpp:2679
+msgid "Link-Destination"
+msgstr ""
+
+#: directorymergewindow.cpp:2709 difftextwindow.cpp:401
+msgid "File"
+msgstr "Dosiero"
+
+#: directorymergewindow.cpp:2726
+msgid "not available"
+msgstr ""
+
+#: directorymergewindow.cpp:2746
+msgid "A (Dest): "
+msgstr ""
+
+#: directorymergewindow.cpp:2749
+msgid "A (Base): "
+msgstr ""
+
+#: directorymergewindow.cpp:2755
+msgid "B (Dest): "
+msgstr ""
+
+#: directorymergewindow.cpp:2763
+msgid "C (Dest): "
+msgstr ""
+
+#: directorymergewindow.cpp:2769
+msgid "Dest: "
+msgstr ""
+
+#: directorymergewindow.cpp:2836
+msgid "Save Directory Merge State As..."
+msgstr ""
+
+#: directorymergewindow.cpp:2959
+msgid "Start/Continue Directory Merge"
+msgstr ""
+
+#: directorymergewindow.cpp:2960
+msgid "Run Operation for Current Item"
+msgstr ""
+
+#: directorymergewindow.cpp:2961
+msgid "Compare Selected File"
+msgstr ""
+
+#: directorymergewindow.cpp:2962
+msgid "Merge Current File"
+msgstr ""
+
+#: directorymergewindow.cpp:2962
+msgid ""
+"Merge\n"
+"File"
+msgstr ""
+
+#: directorymergewindow.cpp:2963
+msgid "Fold All Subdirs"
+msgstr ""
+
+#: directorymergewindow.cpp:2964
+msgid "Unfold All Subdirs"
+msgstr ""
+
+#: directorymergewindow.cpp:2968
+msgid "Choose A for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2969
+msgid "Choose B for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2970
+msgid "Choose C for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2971
+msgid "Auto-Choose Operation for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2972
+msgid "No Operation for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2977
+msgid "Show Identical Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2977
+msgid ""
+"Identical\n"
+"Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2978
+msgid "Show Different Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2979
+msgid "Show Files only in A"
+msgstr ""
+
+#: directorymergewindow.cpp:2979
+msgid ""
+"Files\n"
+"only in A"
+msgstr ""
+
+#: directorymergewindow.cpp:2980
+msgid "Show Files only in B"
+msgstr ""
+
+#: directorymergewindow.cpp:2980
+msgid ""
+"Files\n"
+"only in B"
+msgstr ""
+
+#: directorymergewindow.cpp:2981
+msgid "Show Files only in C"
+msgstr ""
+
+#: directorymergewindow.cpp:2981
+msgid ""
+"Files\n"
+"only in C"
+msgstr ""
+
+#: directorymergewindow.cpp:2985
+msgid "Compare Explicitly Selected Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2986
+msgid "Merge Explicitly Selected Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995
+msgid "Do Nothing"
+msgstr "Nenion fari"
+
+#: directorymergewindow.cpp:2989
+msgid "A"
+msgstr "A"
+
+#: directorymergewindow.cpp:2990
+msgid "B"
+msgstr "B"
+
+#: directorymergewindow.cpp:2991
+msgid "C"
+msgstr "C"
+
+#: directorymergewindow.cpp:3000
+msgid "Delete A && B"
+msgstr ""
+
+#: directorymergewindow.cpp:3003
+msgid "Merge to A && B"
+msgstr ""
+
+#: main.cpp:74 main.cpp:76
+msgid "Ignored. (User defined.)"
+msgstr ""
+
+#: main.cpp:162
+msgid "kdiff3"
+msgstr ""
+
+#: main.cpp:164
+msgid "Tool for Comparison and Merge of Files and Directories"
+msgstr ""
+
+#: main.cpp:165
+#, fuzzy
+#| msgid "Joachim Eibl"
+msgid "(c) 2002-2011 Joachim Eibl"
+msgstr "Joachim Eibl"
+
+#: main.cpp:172 kdiff3_part.cpp:303
+msgid "Joachim Eibl"
+msgstr "Joachim Eibl"
+
+#: main.cpp:173
+msgid "Eike Sauer"
+msgstr "Eike Sauer"
+
+#: main.cpp:173
+msgid "Bugfixes, Debian package maintainer"
+msgstr ""
+
+#: main.cpp:174
+msgid "Sebastien Fricker"
+msgstr "Sebastien Fricker"
+
+#: main.cpp:174
+msgid "Windows installer"
+msgstr ""
+
+#: main.cpp:175
+msgid "Stephan Binner"
+msgstr "Stephan Binner"
+
+#: main.cpp:175
+msgid "i18n-help"
+msgstr ""
+
+#: main.cpp:176
+msgid "Stefan Partheymueller"
+msgstr "Stefan Partheymueller"
+
+#: main.cpp:176
+msgid "Clipboard-patch"
+msgstr ""
+
+#: main.cpp:177
+msgid "David Faure"
+msgstr "David Faure"
+
+#: main.cpp:177
+msgid "KIO-Help"
+msgstr ""
+
+#: main.cpp:178
+msgid "Bernd Gehrmann"
+msgstr "Bernd Gehrmann"
+
+#: main.cpp:178
+msgid "Class CvsIgnoreList from Cervisia"
+msgstr ""
+
+#: main.cpp:179
+msgid "Andre Woebbeking"
+msgstr "Andre Woebbeking"
+
+#: main.cpp:179
+msgid "Class StringMatcher"
+msgstr ""
+
+#: main.cpp:180
+msgid "Michael Denio"
+msgstr "Michael Denio"
+
+#: main.cpp:180
+msgid "Directory Equality-Coloring patch"
+msgstr ""
+
+#: main.cpp:181
+msgid "Manfred Koehler"
+msgstr "Manfred Koehler"
+
+#: main.cpp:181
+msgid "Fix for slow startup on Windows"
+msgstr ""
+
+#: main.cpp:182
+msgid "Sergey Zorin"
+msgstr "Sergey Zorin"
+
+#: main.cpp:182
+msgid "Diff Ext for Windows"
+msgstr ""
+
+#: main.cpp:183
+msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+
+#: main.cpp:183
+msgid "GNU-Diffutils"
+msgstr "GNU-Diffutils"
+
+#: main.cpp:184
+msgid "Tino Boellsterling, Timothy Mee"
+msgstr "Tino Boellsterling, Timothy Mee"
+
+#: main.cpp:184
+msgid "Intensive test, use and feedback"
+msgstr ""
+
+#: main.cpp:185
+msgid "Michael Schmidt"
+msgstr "Michael Schmidt"
+
+#: main.cpp:185
+msgid "Mac support"
+msgstr ""
+
+#: main.cpp:186
+msgid "Valentin Rusu"
+msgstr "Valentin Rusu"
+
+#: main.cpp:186 main.cpp:187
+msgid "KDE4 porting"
+msgstr ""
+
+#: main.cpp:187
+msgid "Albert Astals Cid"
+msgstr "Albert Astals Cid"
+
+#: main.cpp:188
+msgid "Silvan Scherrer"
+msgstr ""
+
+#: main.cpp:188
+msgid "OS2 port"
+msgstr ""
+
+#: main.cpp:190
+msgid "+ Many thanks to those who reported bugs and contributed ideas!"
+msgstr ""
+
+#: main.cpp:196
+msgid "Merge the input."
+msgstr ""
+
+#: main.cpp:197
+msgid "Explicit base file. For compatibility with certain tools."
+msgstr ""
+
+#: main.cpp:198
+msgid "Output file. Implies -m. E.g.: -o newfile.txt"
+msgstr ""
+
+#: main.cpp:199
+msgid "Output file, again. (For compatibility with certain tools.)"
+msgstr ""
+
+#: main.cpp:200
+msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)"
+msgstr ""
+
+#: main.cpp:201
+msgid "Don't solve conflicts automatically. (For compatibility...)"
+msgstr ""
+
+#: main.cpp:202
+msgid "Visible name replacement for input file 1 (base)."
+msgstr ""
+
+#: main.cpp:203
+msgid "Visible name replacement for input file 2."
+msgstr ""
+
+#: main.cpp:204
+msgid "Visible name replacement for input file 3."
+msgstr ""
+
+#: main.cpp:205
+msgid "Alternative visible name replacement. Supply this once for every input."
+msgstr ""
+
+#: main.cpp:206
+msgid ""
+"Override a config setting. Use once for every setting. E.g.: --cs "
+"\"AutoAdvance=1\""
+msgstr ""
+
+#: main.cpp:207
+msgid "Show list of config settings and current values."
+msgstr ""
+
+#: main.cpp:208
+msgid "Use a different config file."
+msgstr ""
+
+#: main.cpp:211
+msgid "file1 to open (base, if not specified via --base)"
+msgstr ""
+
+#: main.cpp:212
+msgid "file2 to open"
+msgstr ""
+
+#: main.cpp:213
+msgid "file3 to open"
+msgstr ""
+
+#: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976
+#: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002
+#: mergeresultwindow.cpp:1014
+#, kde-format
+msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)"
+msgstr ""
+
+#: mergeresultwindow.cpp:303
+msgid ""
+"The output has been modified.\n"
+"If you continue your changes will be lost."
+msgstr ""
+
+#: mergeresultwindow.cpp:834 pdiff.cpp:532
+msgid "All input files are binary equal."
+msgstr ""
+
+#: mergeresultwindow.cpp:836
+msgid "All input files contain the same text."
+msgstr ""
+
+#: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840
+#: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540
+#, kde-format
+msgid "Files %1 and %2 are binary equal.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841
+#: mergeresultwindow.cpp:843
+#, kde-format
+msgid "Files %1 and %2 have equal text.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:849
+msgid "Total number of conflicts: "
+msgstr ""
+
+#: mergeresultwindow.cpp:850
+msgid ""
+"\n"
+"Nr of automatically solved conflicts: "
+msgstr ""
+
+#: mergeresultwindow.cpp:851
+msgid ""
+"\n"
+"Nr of unsolved conflicts: "
+msgstr ""
+
+#: mergeresultwindow.cpp:853
+msgid "Conflicts"
+msgstr ""
+
+#: mergeresultwindow.cpp:1728
+msgid "<No src line>"
+msgstr ""
+
+#: mergeresultwindow.cpp:1736
+msgid "<Merge Conflict (Whitespace only)>"
+msgstr ""
+
+#: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517
+msgid "<Merge Conflict>"
+msgstr ""
+
+#: mergeresultwindow.cpp:2725
+msgid ""
+"Not all conflicts are solved yet.\n"
+"File not saved.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736
+msgid "Conflicts Left"
+msgstr ""
+
+#: mergeresultwindow.cpp:2734
+msgid ""
+"There is a line end style conflict. Please choose the line end style "
+"manually.\n"
+"File not saved.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:2748
+msgid ""
+"\n"
+"\n"
+"Creating backup failed. File not saved."
+msgstr ""
+
+#: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792
+msgid "File Save Error"
+msgstr ""
+
+#: mergeresultwindow.cpp:2792
+msgid "Error while writing."
+msgstr ""
+
+#: mergeresultwindow.cpp:3122
+msgid "Output"
+msgstr "Eligo"
+
+#: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314
+msgid "[Modified]"
+msgstr ""
+
+#: mergeresultwindow.cpp:3141
+msgid "Encoding for saving"
+msgstr ""
+
+#: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737
+#: optiondialog.cpp:762
+msgid "Line end style:"
+msgstr ""
+
+#: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767
+msgid "Unix"
+msgstr "Unix"
+
+#: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737
+msgid "DOS"
+msgstr "DOS"
+
+#: mergeresultwindow.cpp:3229
+msgid "Conflict"
+msgstr "Konflikto"
+
+#: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263
+#: mergeresultwindow.cpp:3265
+msgid "Codec from"
+msgstr ""
+
+#: kdiff3_part.cpp:157 kdiff3_part.cpp:234
+msgid "Couldn't find files for comparison."
+msgstr ""
+
+#: kdiff3_part.cpp:302
+msgid "KDiff3Part"
+msgstr ""
+
+#: fileaccess.cpp:612
+msgid ""
+"While trying to make a backup, deleting an older backup failed. \n"
+"Filename: "
+msgstr ""
+
+#: fileaccess.cpp:619
+msgid ""
+"While trying to make a backup, renaming failed. \n"
+"Filenames: "
+msgstr ""
+
+#: fileaccess.cpp:643
+#, kde-format
+msgid "Getting file status: %1"
+msgstr ""
+
+#: fileaccess.cpp:686
+#, kde-format
+msgid "Reading file: %1"
+msgstr ""
+
+#: fileaccess.cpp:723
+#, kde-format
+msgid "Writing file: %1"
+msgstr ""
+
+#: fileaccess.cpp:751
+msgid "Out of memory"
+msgstr ""
+
+#: fileaccess.cpp:786
+#, kde-format
+msgid "Making directory: %1"
+msgstr ""
+
+#: fileaccess.cpp:806
+#, kde-format
+msgid "Removing directory: %1"
+msgstr ""
+
+#: fileaccess.cpp:821
+#, kde-format
+msgid "Removing file: %1"
+msgstr ""
+
+#: fileaccess.cpp:837
+#, kde-format
+msgid "Creating symbolic link: %1 -> %2"
+msgstr ""
+
+#: fileaccess.cpp:864
+#, kde-format
+msgid "Renaming file: %1 -> %2"
+msgstr ""
+
+#: fileaccess.cpp:897
+#, kde-format
+msgid "Copying file: %1 -> %2"
+msgstr ""
+
+#: fileaccess.cpp:911
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for reading failed. Filename: "
+"%1"
+msgstr ""
+
+#: fileaccess.cpp:917
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for writing failed. Filename: "
+"%1"
+msgstr ""
+
+#: fileaccess.cpp:932
+#, kde-format
+msgid "Error during file copy operation: Reading failed. Filename: %1"
+msgstr ""
+
+#: fileaccess.cpp:941
+#, kde-format
+msgid "Error during file copy operation: Writing failed. Filename: %1"
+msgstr ""
+
+#: fileaccess.cpp:1231
+msgid "Reading directory: "
+msgstr ""
+
+#: fileaccess.cpp:1355
+#, kde-format
+msgid "Listing directory: %1"
+msgstr ""
+
+#: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396
+msgid "&Cancel"
+msgstr "&Rezigni"
+
+#: difftextwindow.cpp:403
+msgid "Line"
+msgstr "Linio"
+
+#: difftextwindow.cpp:405
+msgid "Line not available"
+msgstr ""
+
+#: difftextwindow.cpp:1703 difftextwindow.cpp:1736
+msgid "Encoding:"
+msgstr "Kodigo:"
+
+#: difftextwindow.cpp:1759 kdiff3.cpp:831
+msgid "Top line"
+msgstr ""
+
+#: difftextwindow.cpp:1769
+msgid "End"
+msgstr "Fino"
+
+#: kdiff3.cpp:169
+msgid "Current Configuration:"
+msgstr ""
+
+#: kdiff3.cpp:174
+msgid "Config Option Error:"
+msgstr ""
+
+#: kdiff3.cpp:219
+msgid "Option --auto used, but no output file specified."
+msgstr ""
+
+#: kdiff3.cpp:369
+msgid "Option --auto ignored for directory comparison."
+msgstr ""
+
+#: kdiff3.cpp:405
+msgid "Saving failed."
+msgstr ""
+
+#: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214
+msgid "Opening of these files failed:"
+msgstr ""
+
+#: kdiff3.cpp:449
+msgid "File Open Error"
+msgstr ""
+
+#: kdiff3.cpp:477
+msgid "Opens documents for comparison..."
+msgstr ""
+
+#: kdiff3.cpp:479
+msgid "Reload"
+msgstr "Reŝargi"
+
+#: kdiff3.cpp:482
+msgid "Saves the merge result. All conflicts must be solved!"
+msgstr ""
+
+#: kdiff3.cpp:484
+msgid "Saves the current document as..."
+msgstr ""
+
+#: kdiff3.cpp:487
+msgid "Print the differences"
+msgstr ""
+
+#: kdiff3.cpp:490
+msgid "Quits the application"
+msgstr "Finas la programon"
+
+#: kdiff3.cpp:492
+msgid "Cuts the selected section and puts it to the clipboard"
+msgstr "Eltondos la elektaĵon kaj enpoŝigos ĝin"
+
+#: kdiff3.cpp:494
+msgid "Copies the selected section to the clipboard"
+msgstr "Kopios la apartigatan regionon poŝen"
+
+#: kdiff3.cpp:496
+#, fuzzy
+#| msgid "Pastes the clipboard contents to actual position"
+msgid "Pastes the clipboard contents to current position"
+msgstr "Elpoŝigos la poŝan enhavon al la aktuala pozicio"
+
+#: kdiff3.cpp:498
+msgid "Select everything in current window"
+msgstr ""
+
+#: kdiff3.cpp:500
+msgid "Search for a string"
+msgstr ""
+
+#: kdiff3.cpp:502
+msgid "Search again for the string"
+msgstr ""
+
+#: kdiff3.cpp:507
+msgid "Enables/disables the statusbar"
+msgstr "(Mal)ŝaltos la statbreton"
+
+#: kdiff3.cpp:511
+msgid "Configure KDiff3..."
+msgstr ""
+
+#: kdiff3.cpp:532
+msgid "Go to Current Delta"
+msgstr ""
+
+#: kdiff3.cpp:532
+msgid ""
+"Current\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:534
+msgid "Go to First Delta"
+msgstr ""
+
+#: kdiff3.cpp:534
+msgid ""
+"First\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:536
+msgid "Go to Last Delta"
+msgstr ""
+
+#: kdiff3.cpp:536
+msgid ""
+"Last\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:538
+msgid "(Skips white space differences when \"Show White Space\" is disabled.)"
+msgstr ""
+
+#: kdiff3.cpp:539
+msgid ""
+"(Does not skip white space differences even when \"Show White Space\" is "
+"disabled.)"
+msgstr ""
+
+#: kdiff3.cpp:540
+msgid "Go to Previous Delta"
+msgstr ""
+
+#: kdiff3.cpp:540
+msgid ""
+"Prev\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:542
+msgid "Go to Next Delta"
+msgstr ""
+
+#: kdiff3.cpp:542
+msgid ""
+"Next\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:544
+msgid "Go to Previous Conflict"
+msgstr ""
+
+#: kdiff3.cpp:544
+msgid ""
+"Prev\n"
+"Conflict"
+msgstr ""
+
+#: kdiff3.cpp:546
+msgid "Go to Next Conflict"
+msgstr ""
+
+#: kdiff3.cpp:546
+msgid ""
+"Next\n"
+"Conflict"
+msgstr ""
+
+#: kdiff3.cpp:548
+msgid "Go to Previous Unsolved Conflict"
+msgstr ""
+
+#: kdiff3.cpp:548
+msgid ""
+"Prev\n"
+"Unsolved"
+msgstr ""
+
+#: kdiff3.cpp:550
+msgid "Go to Next Unsolved Conflict"
+msgstr ""
+
+#: kdiff3.cpp:550
+msgid ""
+"Next\n"
+"Unsolved"
+msgstr ""
+
+#: kdiff3.cpp:552
+msgid "Select Line(s) From A"
+msgstr ""
+
+#: kdiff3.cpp:552
+msgid ""
+"Choose\n"
+"A"
+msgstr ""
+
+#: kdiff3.cpp:553
+msgid "Select Line(s) From B"
+msgstr ""
+
+#: kdiff3.cpp:553
+msgid ""
+"Choose\n"
+"B"
+msgstr ""
+
+#: kdiff3.cpp:554
+msgid "Select Line(s) From C"
+msgstr ""
+
+#: kdiff3.cpp:554
+msgid ""
+"Choose\n"
+"C"
+msgstr ""
+
+#: kdiff3.cpp:555
+msgid "Automatically Go to Next Unsolved Conflict After Source Selection"
+msgstr ""
+
+#: kdiff3.cpp:555
+msgid ""
+"Auto\n"
+"Next"
+msgstr ""
+
+#: kdiff3.cpp:557
+msgid "Show Space && Tabulator Characters for Differences"
+msgstr ""
+
+#: kdiff3.cpp:557
+msgid ""
+"White\n"
+"Characters"
+msgstr ""
+
+#: kdiff3.cpp:558
+msgid "Show White Space"
+msgstr ""
+
+#: kdiff3.cpp:558
+msgid ""
+"White\n"
+"Deltas"
+msgstr ""
+
+#: kdiff3.cpp:560
+msgid "Show Line Numbers"
+msgstr ""
+
+#: kdiff3.cpp:560
+msgid ""
+"Line\n"
+"Numbers"
+msgstr ""
+
+#: kdiff3.cpp:561
+msgid "Choose A Everywhere"
+msgstr ""
+
+#: kdiff3.cpp:562
+msgid "Choose B Everywhere"
+msgstr ""
+
+#: kdiff3.cpp:563
+msgid "Choose C Everywhere"
+msgstr ""
+
+#: kdiff3.cpp:564
+msgid "Choose A for All Unsolved Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:565
+msgid "Choose B for All Unsolved Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:566
+msgid "Choose C for All Unsolved Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:567
+msgid "Choose A for All Unsolved Whitespace Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:568
+msgid "Choose B for All Unsolved Whitespace Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:569
+msgid "Choose C for All Unsolved Whitespace Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:570
+msgid "Automatically Solve Simple Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:571
+msgid "Set Deltas to Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:572
+msgid "Run Regular Expression Auto Merge"
+msgstr ""
+
+#: kdiff3.cpp:573
+msgid "Automatically Solve History Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:574
+msgid "Split Diff At Selection"
+msgstr ""
+
+#: kdiff3.cpp:575
+msgid "Join Selected Diffs"
+msgstr ""
+
+#: kdiff3.cpp:577
+msgid "Show Window A"
+msgstr ""
+
+#: kdiff3.cpp:578
+msgid "Show Window B"
+msgstr ""
+
+#: kdiff3.cpp:579
+msgid "Show Window C"
+msgstr ""
+
+#: kdiff3.cpp:580 kdiff3.cpp:591
+msgid "Focus Next Window"
+msgstr ""
+
+#: kdiff3.cpp:582
+msgid "Normal Overview"
+msgstr ""
+
+#: kdiff3.cpp:583
+msgid "A vs. B Overview"
+msgstr ""
+
+#: kdiff3.cpp:584
+msgid "A vs. C Overview"
+msgstr ""
+
+#: kdiff3.cpp:585
+msgid "B vs. C Overview"
+msgstr ""
+
+#: kdiff3.cpp:586
+msgid "Word Wrap Diff Windows"
+msgstr ""
+
+#: kdiff3.cpp:587
+msgid "Add Manual Diff Alignment"
+msgstr ""
+
+#: kdiff3.cpp:588
+msgid "Clear All Manual Diff Alignments"
+msgstr ""
+
+#: kdiff3.cpp:593
+msgid "Focus Prev Window"
+msgstr ""
+
+#: kdiff3.cpp:594
+msgid "Toggle Split Orientation"
+msgstr ""
+
+#: kdiff3.cpp:596
+msgid "Dir && Text Split Screen View"
+msgstr ""
+
+#: kdiff3.cpp:598
+msgid "Toggle Between Dir && Text View"
+msgstr ""
+
+#: kdiff3.cpp:654 pdiff.cpp:1812
+msgid "The merge result hasn't been saved."
+msgstr ""
+
+#: kdiff3.cpp:656
+msgid "Save && Quit"
+msgstr ""
+
+#: kdiff3.cpp:657
+msgid "Quit Without Saving"
+msgstr ""
+
+#: kdiff3.cpp:665 pdiff.cpp:1823
+msgid "Saving the merge result failed."
+msgstr ""
+
+#: kdiff3.cpp:676 pdiff.cpp:1078
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort?"
+msgstr ""
+
+#: kdiff3.cpp:701
+msgid "Saving file..."
+msgstr "Konservante dosieron..."
+
+#: kdiff3.cpp:718
+msgid "Saving file with a new filename..."
+msgstr "Konservante dosieron kun nova dosiernomo..."
+
+#: kdiff3.cpp:781
+msgid "Printing not implemented."
+msgstr ""
+
+#: kdiff3.cpp:815
+msgid "Printing..."
+msgstr "Presante..."
+
+#: kdiff3.cpp:956
+msgid "Selection"
+msgstr "Elektaĵo"
+
+#: kdiff3.cpp:982
+msgid "Printing completed."
+msgstr ""
+
+#: kdiff3.cpp:986
+msgid "Printing aborted."
+msgstr ""
+
+#: kdiff3.cpp:993
+msgid "Exiting..."
+msgstr "Finante..."
+
+#: kdiff3.cpp:1006
+msgid "Toggling toolbar..."
+msgstr "Inversigante ilobreton..."
+
+#: kdiff3.cpp:1027
+msgid "Toggle the statusbar..."
+msgstr "Inversigante la statobreton..."
+
+#: smalldialogs.cpp:58
+msgid "A (Base):"
+msgstr ""
+
+#: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99
+#: smalldialogs.cpp:142
+msgid "File..."
+msgstr "Dosiero..."
+
+#: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101
+#: smalldialogs.cpp:144
+msgid "Dir..."
+msgstr ""
+
+#: smalldialogs.cpp:93
+msgid "C (Optional):"
+msgstr ""
+
+#: smalldialogs.cpp:116
+msgid "Swap/Copy Names ..."
+msgstr ""
+
+#: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123
+#, kde-format
+msgid "Swap %1<->%2"
+msgstr ""
+
+#: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126
+#, kde-format
+msgid "Copy %1->Output"
+msgstr ""
+
+#: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129
+#, kde-format
+msgid "Swap %1<->Output"
+msgstr ""
+
+#: smalldialogs.cpp:136
+msgid "Output (optional):"
+msgstr ""
+
+#: smalldialogs.cpp:168
+msgid "Configure..."
+msgstr "Agordu..."
+
+#: smalldialogs.cpp:174
+msgid "&OK"
+msgstr "&Bone"
+
+#: smalldialogs.cpp:362
+msgid "Search text:"
+msgstr ""
+
+#: smalldialogs.cpp:369
+msgid "Case sensitive"
+msgstr "Usklecodistinga"
+
+#: smalldialogs.cpp:372
+msgid "Search A"
+msgstr ""
+
+#: smalldialogs.cpp:377
+msgid "Search B"
+msgstr ""
+
+#: smalldialogs.cpp:382
+msgid "Search C"
+msgstr ""
+
+#: smalldialogs.cpp:387
+msgid "Search output"
+msgstr ""
+
+#: smalldialogs.cpp:392
+msgid "&Search"
+msgstr "&Serĉi"
+
+#: smalldialogs.cpp:409
+msgid "Regular Expression Tester"
+msgstr ""
+
+#: smalldialogs.cpp:414 optiondialog.cpp:936
+msgid "Auto merge regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:422
+msgid "Example auto merge line:"
+msgstr ""
+
+#: smalldialogs.cpp:424
+msgid "To test auto merge, copy a line as used in your files."
+msgstr ""
+
+#: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494
+msgid "Match result:"
+msgstr ""
+
+#: smalldialogs.cpp:441 optiondialog.cpp:962
+msgid "History start regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:449
+msgid "Example history start line (with leading comment):"
+msgstr ""
+
+#: smalldialogs.cpp:451
+msgid ""
+"Copy a history start line as used in your files,\n"
+"including the leading comment."
+msgstr ""
+
+#: smalldialogs.cpp:469 optiondialog.cpp:972
+msgid "History entry start regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:477
+msgid "History sort key order:"
+msgstr ""
+
+#: smalldialogs.cpp:485
+msgid "Example history entry start line (without leading comment):"
+msgstr ""
+
+#: smalldialogs.cpp:487
+msgid ""
+"Copy a history entry start line as used in your files,\n"
+"but omit the leading comment."
+msgstr ""
+
+#: smalldialogs.cpp:501
+msgid "Sort key result:"
+msgstr ""
+
+#: smalldialogs.cpp:508
+msgid "OK"
+msgstr "Bone"
+
+#: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583
+msgid "Match success."
+msgstr ""
+
+#: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589
+msgid "Match failed."
+msgstr ""
+
+#: smalldialogs.cpp:574
+msgid "Opening and closing parentheses do not match in regular expression."
+msgstr ""
+
+#: optiondialog.cpp:367
+msgid "Unicode, 8 bit"
+msgstr ""
+
+#: optiondialog.cpp:368
+msgid "Unicode"
+msgstr "Unikodo"
+
+#: optiondialog.cpp:369
+msgid "Latin1"
+msgstr "Latin1"
+
+#: optiondialog.cpp:388
+msgid "Change this if non-ASCII characters are not displayed correctly."
+msgstr ""
+
+#: optiondialog.cpp:465
+msgid "Configure"
+msgstr "Agordi"
+
+#: optiondialog.cpp:531
+msgid "Font"
+msgstr "Tiparo"
+
+#: optiondialog.cpp:532
+msgid "Editor & Diff Output Font"
+msgstr ""
+
+#: optiondialog.cpp:556
+msgid "Italic font for deltas"
+msgstr ""
+
+#: optiondialog.cpp:559
+msgid ""
+"Selects the italic version of the font for differences.\n"
+"If the font doesn't support italic characters, then this does nothing."
+msgstr ""
+
+#: optiondialog.cpp:568
+msgid "Color"
+msgstr "Koloro"
+
+#: optiondialog.cpp:569
+msgid "Colors Settings"
+msgstr ""
+
+#: optiondialog.cpp:588
+msgid "Editor and Diff Views:"
+msgstr ""
+
+#: optiondialog.cpp:596
+msgid "Foreground color:"
+msgstr "Malfona koloro:"
+
+#: optiondialog.cpp:603
+msgid "Background color:"
+msgstr "Fona koloro:"
+
+#: optiondialog.cpp:612
+msgid "Diff background color:"
+msgstr ""
+
+#: optiondialog.cpp:620
+msgid "Color A:"
+msgstr ""
+
+#: optiondialog.cpp:628
+msgid "Color B:"
+msgstr ""
+
+#: optiondialog.cpp:636
+msgid "Color C:"
+msgstr ""
+
+#: optiondialog.cpp:643
+msgid "Conflict color:"
+msgstr ""
+
+#: optiondialog.cpp:651
+msgid "Current range background color:"
+msgstr ""
+
+#: optiondialog.cpp:659
+msgid "Current range diff background color:"
+msgstr ""
+
+#: optiondialog.cpp:666
+msgid "Color for manually aligned difference ranges:"
+msgstr ""
+
+#: optiondialog.cpp:672
+msgid "Directory Comparison View:"
+msgstr ""
+
+#: optiondialog.cpp:678
+msgid "Newest file color:"
+msgstr ""
+
+#: optiondialog.cpp:682
+msgid ""
+"Changing this color will only be effective when starting the next directory "
+"comparison."
+msgstr ""
+
+#: optiondialog.cpp:687
+msgid "Oldest file color:"
+msgstr ""
+
+#: optiondialog.cpp:695
+msgid "Middle age file color:"
+msgstr ""
+
+#: optiondialog.cpp:703
+msgid "Color for missing files:"
+msgstr ""
+
+#: optiondialog.cpp:717
+msgid "Editor"
+msgstr "Redaktilo"
+
+#: optiondialog.cpp:718
+msgid "Editor Behavior"
+msgstr ""
+
+#: optiondialog.cpp:732
+msgid "Tab inserts spaces"
+msgstr ""
+
+#: optiondialog.cpp:735
+msgid ""
+"On: Pressing tab generates the appropriate number of spaces.\n"
+"Off: A tab character will be inserted."
+msgstr ""
+
+#: optiondialog.cpp:741
+msgid "Tab size:"
+msgstr ""
+
+#: optiondialog.cpp:747
+msgid "Auto indentation"
+msgstr ""
+
+#: optiondialog.cpp:750
+msgid "On: The indentation of the previous line is used for a new line.\n"
+msgstr ""
+
+#: optiondialog.cpp:754
+msgid "Auto copy selection"
+msgstr ""
+
+#: optiondialog.cpp:757
+msgid ""
+"On: Any selection is immediately written to the clipboard.\n"
+"Off: You must explicitely copy e.g. via Ctrl-C."
+msgstr ""
+
+#: optiondialog.cpp:768
+#, fuzzy
+#| msgid "&Window"
+msgid "Dos/Windows"
+msgstr "Fe&nestro"
+
+#: optiondialog.cpp:769
+msgid "Autodetect"
+msgstr ""
+
+#: optiondialog.cpp:772
+msgid ""
+"Sets the line endings for when an edited file is saved.\n"
+"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A"
+msgstr ""
+
+#: optiondialog.cpp:784
+msgid "Diff"
+msgstr ""
+
+#: optiondialog.cpp:785
+msgid "Diff Settings"
+msgstr ""
+
+#: optiondialog.cpp:809
+msgid "Treat as white space."
+msgstr ""
+
+#: optiondialog.cpp:811
+msgid "Ignore numbers"
+msgstr ""
+
+#: optiondialog.cpp:814
+msgid ""
+"Ignore number characters during line matching phase. (Similar to Ignore "
+"white space.)\n"
+"Might help to compare files with numeric data."
+msgstr ""
+
+#: optiondialog.cpp:819
+msgid "Ignore C/C++ comments"
+msgstr ""
+
+#: optiondialog.cpp:821
+msgid "Treat C/C++ comments like white space."
+msgstr ""
+
+#: optiondialog.cpp:825
+msgid "Ignore case"
+msgstr ""
+
+#: optiondialog.cpp:828
+msgid "Treat case differences like white space changes. ('a'<=>'A')"
+msgstr ""
+
+#: optiondialog.cpp:832
+msgid "Preprocessor command:"
+msgstr ""
+
+#: optiondialog.cpp:836
+msgid "User defined pre-processing. (See the docs for details.)"
+msgstr ""
+
+#: optiondialog.cpp:839
+msgid "Line-matching preprocessor command:"
+msgstr ""
+
+#: optiondialog.cpp:843
+msgid ""
+"This pre-processor is only used during line matching.\n"
+"(See the docs for details.)"
+msgstr ""
+
+#: optiondialog.cpp:846
+msgid "Try hard (slower)"
+msgstr ""
+
+#: optiondialog.cpp:849
+msgid ""
+"Enables the --minimal option for the external diff.\n"
+"The analysis of big files will be much slower."
+msgstr ""
+
+#: optiondialog.cpp:854
+msgid "Align B and C for 3 input files"
+msgstr ""
+
+#: optiondialog.cpp:857
+msgid ""
+"Try to align B and C when comparing or merging three input files.\n"
+"Not recommended for merging because merge might get more complicated.\n"
+"(Default is off.)"
+msgstr ""
+
+#: optiondialog.cpp:870
+msgid "Merge Settings"
+msgstr ""
+
+#: optiondialog.cpp:885
+msgid "Auto advance delay (ms):"
+msgstr ""
+
+#: optiondialog.cpp:890
+msgid ""
+"When in Auto-Advance mode the result of the current selection is shown \n"
+"for the specified time, before jumping to the next conflict. Range: 0-2000 ms"
+msgstr ""
+
+#: optiondialog.cpp:895
+msgid "Show info dialogs"
+msgstr ""
+
+#: optiondialog.cpp:897
+msgid "Show a dialog with information about the number of conflicts."
+msgstr ""
+
+#: optiondialog.cpp:900
+msgid "White space 2-file merge default:"
+msgstr ""
+
+#: optiondialog.cpp:904 optiondialog.cpp:917
+msgid "Manual Choice"
+msgstr ""
+
+#: optiondialog.cpp:908 optiondialog.cpp:922
+msgid ""
+"Allow the merge algorithm to automatically select an input for white-space-"
+"only changes."
+msgstr ""
+
+#: optiondialog.cpp:913
+msgid "White space 3-file merge default:"
+msgstr ""
+
+#: optiondialog.cpp:927
+msgid "Automatic Merge Regular Expression"
+msgstr ""
+
+#: optiondialog.cpp:940
+msgid ""
+"Regular expression for lines where KDiff3 should automatically choose one "
+"source.\n"
+"When a line with a conflict matches the regular expression then\n"
+"- if available - C, otherwise B will be chosen."
+msgstr ""
+
+#: optiondialog.cpp:946
+msgid "Run regular expression auto merge on merge start"
+msgstr ""
+
+#: optiondialog.cpp:948
+msgid ""
+"Run the merge for auto merge regular expressions\n"
+"immediately when a merge starts.\n"
+msgstr ""
+
+#: optiondialog.cpp:953
+msgid "Version Control History Merging"
+msgstr ""
+
+#: optiondialog.cpp:966
+msgid ""
+"Regular expression for the start of the version control history entry.\n"
+"Usually this line contains the \"$Log$\" keyword.\n"
+"Default value: \".*\\$Log.*\\$.*\""
+msgstr ""
+
+#: optiondialog.cpp:984
+msgid ""
+"A version control history entry consists of several lines.\n"
+"Specify the regular expression to detect the first line (without the leading "
+"comment).\n"
+"Use parentheses to group the keys you want to use for sorting.\n"
+"If left empty, then KDiff3 assumes that empty lines separate history "
+"entries.\n"
+"See the documentation for details."
+msgstr ""
+
+#: optiondialog.cpp:992
+msgid "History merge sorting"
+msgstr ""
+
+#: optiondialog.cpp:994
+msgid "Sort version control history by a key."
+msgstr ""
+
+#: optiondialog.cpp:1004
+msgid "History entry start sort key order:"
+msgstr ""
+
+#: optiondialog.cpp:1008
+msgid ""
+"Each pair of parentheses used in the regular expression for the history "
+"start entry\n"
+"groups a key that can be used for sorting.\n"
+"Specify the list of keys (that are numbered in order of occurrence\n"
+"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n"
+"If left empty, then no sorting will be done.\n"
+"See the documentation for details."
+msgstr ""
+
+#: optiondialog.cpp:1019
+msgid "Merge version control history on merge start"
+msgstr ""
+
+#: optiondialog.cpp:1021
+msgid "Run version control history automerge on merge start."
+msgstr ""
+
+#: optiondialog.cpp:1025
+msgid "Max number of history entries:"
+msgstr ""
+
+#: optiondialog.cpp:1028
+msgid "Cut off after specified number. Use -1 for infinite number of entries."
+msgstr ""
+
+#: optiondialog.cpp:1032
+msgid "Test your regular expressions"
+msgstr ""
+
+#: optiondialog.cpp:1037
+msgid "Irrelevant merge command:"
+msgstr ""
+
+#: optiondialog.cpp:1041
+msgid ""
+"If specified this script is run after automerge\n"
+"when no other relevant changes were detected.\n"
+"Called with the parameters: filename1 filename2 filename3"
+msgstr ""
+
+#: optiondialog.cpp:1047
+msgid "Auto save and quit on merge without conflicts"
+msgstr ""
+
+#: optiondialog.cpp:1050
+msgid ""
+"If KDiff3 was started for a file-merge from the command line and all\n"
+"conflicts are solvable without user interaction then automatically save and "
+"quit.\n"
+"(Similar to command line option \"--auto\".)"
+msgstr ""
+
+#: optiondialog.cpp:1061 optiondialog.cpp:1062
+msgid "Directory"
+msgstr "Dosierujo"
+
+#: optiondialog.cpp:1075
+msgid "Recursive directories"
+msgstr ""
+
+#: optiondialog.cpp:1077
+msgid "Whether to analyze subdirectories or not."
+msgstr ""
+
+#: optiondialog.cpp:1079
+msgid "File pattern(s):"
+msgstr ""
+
+#: optiondialog.cpp:1084
+msgid ""
+"Pattern(s) of files to be analyzed. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1090
+msgid "File-anti-pattern(s):"
+msgstr ""
+
+#: optiondialog.cpp:1095
+msgid ""
+"Pattern(s) of files to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1101
+msgid "Dir-anti-pattern(s):"
+msgstr ""
+
+#: optiondialog.cpp:1106
+msgid ""
+"Pattern(s) of directories to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1112
+msgid "Use .cvsignore"
+msgstr ""
+
+#: optiondialog.cpp:1115
+msgid ""
+"Extends the antipattern to anything that would be ignored by CVS.\n"
+"Via local \".cvsignore\" files this can be directory specific."
+msgstr ""
+
+#: optiondialog.cpp:1120
+msgid "Find hidden files and directories"
+msgstr ""
+
+#: optiondialog.cpp:1123
+msgid "Finds files and directories with the hidden attribute."
+msgstr ""
+
+#: optiondialog.cpp:1125
+msgid "Finds files and directories starting with '.'."
+msgstr ""
+
+#: optiondialog.cpp:1129
+msgid "Follow file links"
+msgstr ""
+
+#: optiondialog.cpp:1132
+msgid ""
+"On: Compare the file the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+
+#: optiondialog.cpp:1137
+msgid "Follow directory links"
+msgstr ""
+
+#: optiondialog.cpp:1140
+msgid ""
+"On: Compare the directory the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+
+#: optiondialog.cpp:1156
+msgid "Case sensitive filename comparison"
+msgstr ""
+
+#: optiondialog.cpp:1159
+msgid ""
+"The directory comparison will compare files or directories when their names "
+"match.\n"
+"Set this option if the case of the names must match. (Default for Windows is "
+"off, otherwise on.)"
+msgstr ""
+
+#: optiondialog.cpp:1163
+msgid "File Comparison Mode"
+msgstr ""
+
+#: optiondialog.cpp:1169
+msgid "Binary comparison"
+msgstr ""
+
+#: optiondialog.cpp:1170
+msgid "Binary comparison of each file. (Default)"
+msgstr ""
+
+#: optiondialog.cpp:1173
+msgid "Full analysis"
+msgstr ""
+
+#: optiondialog.cpp:1174
+msgid ""
+"Do a full analysis and show statistics information in extra columns.\n"
+"(Slower than a binary comparison, much slower for binary files.)"
+msgstr ""
+
+#: optiondialog.cpp:1178
+msgid "Trust the size and modification date (unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1179
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"Files with equal contents but different modification dates will appear as "
+"different.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+
+#: optiondialog.cpp:1184
+msgid ""
+"Trust the size and date, but use binary comparison if date does not match "
+"(unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1185
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"If the dates are not equal but the sizes are, use binary comparison.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+
+#: optiondialog.cpp:1190
+msgid "Trust the size (unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1191
+msgid ""
+"Assume that files are equal if their file lengths are equal.\n"
+"Useful for big directories or slow networks when the date is modified during "
+"download."
+msgstr ""
+
+#: optiondialog.cpp:1199
+msgid "Synchronize directories"
+msgstr ""
+
+#: optiondialog.cpp:1202
+msgid ""
+"Offers to store files in both directories so that\n"
+"both directories are the same afterwards.\n"
+"Works only when comparing two directories without specifying a destination."
+msgstr ""
+
+#: optiondialog.cpp:1208
+msgid "White space differences considered equal"
+msgstr ""
+
+#: optiondialog.cpp:1211
+msgid ""
+"If files differ only by white space consider them equal.\n"
+"This is only active when full analysis is chosen."
+msgstr ""
+
+#: optiondialog.cpp:1217
+msgid "Copy newer instead of merging (unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1220
+msgid ""
+"Don't look inside, just take the newer file.\n"
+"(Use this only if you know what you are doing!)\n"
+"Only effective when comparing two directories."
+msgstr ""
+
+#: optiondialog.cpp:1225
+msgid "Backup files (.orig)"
+msgstr ""
+
+#: optiondialog.cpp:1228
+msgid ""
+"If a file would be saved over an old file, then the old file\n"
+"will be renamed with a '.orig' extension instead of being deleted."
+msgstr ""
+
+#: optiondialog.cpp:1301 optiondialog.cpp:1302
+msgid "Regional Settings"
+msgstr ""
+
+#: optiondialog.cpp:1402
+msgid "Language (restart required)"
+msgstr ""
+
+#: optiondialog.cpp:1445
+msgid ""
+"Choose the language of the GUI strings or \"Auto\".\n"
+"For a change of language to take place, quit and restart KDiff3."
+msgstr ""
+
+#: optiondialog.cpp:1463
+msgid "Use the same encoding for everything:"
+msgstr ""
+
+#: optiondialog.cpp:1466
+msgid ""
+"Enable this allows to change all encodings by changing the first only.\n"
+"Disable this if different individual settings are needed."
+msgstr ""
+
+#: optiondialog.cpp:1471
+msgid "Note: Local Encoding is "
+msgstr ""
+
+#: optiondialog.cpp:1475
+msgid "File Encoding for A:"
+msgstr ""
+
+#: optiondialog.cpp:1481
+msgid ""
+"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n"
+"If the file is not Unicode then the selected encoding will be used as "
+"fallback.\n"
+"(Unicode detection depends on the first bytes of a file.)"
+msgstr ""
+
+#: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503
+msgid "Auto Detect Unicode"
+msgstr ""
+
+#: optiondialog.cpp:1490
+msgid "File Encoding for B:"
+msgstr ""
+
+#: optiondialog.cpp:1499
+msgid "File Encoding for C:"
+msgstr ""
+
+#: optiondialog.cpp:1508
+msgid "File Encoding for Merge Output and Saving:"
+msgstr ""
+
+#: optiondialog.cpp:1512
+msgid "Auto Select"
+msgstr ""
+
+#: optiondialog.cpp:1515
+msgid ""
+"If enabled then the encoding from the input files is used.\n"
+"In ambiguous cases a dialog will ask the user to choose the encoding for "
+"saving."
+msgstr ""
+
+#: optiondialog.cpp:1519
+msgid "File Encoding for Preprocessor Files:"
+msgstr ""
+
+#: optiondialog.cpp:1530
+msgid "Right To Left Language"
+msgstr ""
+
+#: optiondialog.cpp:1533
+msgid ""
+"Some languages are read from right to left.\n"
+"This setting will change the viewer and editor accordingly."
+msgstr ""
+
+#: optiondialog.cpp:1548
+msgid "Integration"
+msgstr ""
+
+#: optiondialog.cpp:1549
+msgid "Integration Settings"
+msgstr ""
+
+#: optiondialog.cpp:1563
+msgid "Command line options to ignore:"
+msgstr ""
+
+#: optiondialog.cpp:1568
+msgid ""
+"List of command line options that should be ignored when KDiff3 is used by "
+"other tools.\n"
+"Several values can be specified if separated via ';'\n"
+"This will suppress the \"Unknown option\" error."
+msgstr ""
+
+#: optiondialog.cpp:1575
+msgid "Quit also via Escape key"
+msgstr ""
+
+#: optiondialog.cpp:1578
+msgid ""
+"Fast method to exit.\n"
+"For those who are used to using the Escape key."
+msgstr ""
+
+#: optiondialog.cpp:1583
+msgid "Integrate with ClearCase"
+msgstr ""
+
+#: optiondialog.cpp:1586
+msgid ""
+"Integrate with Rational ClearCase from IBM.\n"
+"Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n"
+"(Only enabled when ClearCase \"bin\" directory is in the path.)"
+msgstr ""
+
+#: optiondialog.cpp:1592
+msgid "Remove ClearCase Integration"
+msgstr ""
+
+#: optiondialog.cpp:1595
+msgid ""
+"Restore the old \"map\" file from before doing the ClearCase integration."
+msgstr ""
+
+#: optiondialog.cpp:1680
+msgid "Incompatible Font"
+msgstr ""
+
+#: optiondialog.cpp:1681
+msgid "Continue at Own Risk"
+msgstr ""
+
+#: optiondialog.cpp:1682
+msgid "Select Another Font"
+msgstr ""
+
+#: optiondialog.cpp:1717
+msgid "This resets all options. Not only those of the current topic."
+msgstr ""
+
+#: pdiff.cpp:260
+msgid "PreprocessorCmd: "
+msgstr ""
+
+#: pdiff.cpp:265
+msgid "The following option(s) you selected might change data:\n"
+msgstr ""
+
+#: pdiff.cpp:266
+msgid ""
+"\n"
+"Most likely this is not wanted during a merge.\n"
+"Do you want to disable these settings or continue with these settings active?"
+msgstr ""
+
+#: pdiff.cpp:268
+msgid "Option Unsafe for Merging"
+msgstr ""
+
+#: pdiff.cpp:269
+msgid "Use These Options During Merge"
+msgstr ""
+
+#: pdiff.cpp:270
+msgid "Disable Unsafe Options"
+msgstr ""
+
+#: pdiff.cpp:300
+msgid "Loading A"
+msgstr ""
+
+#: pdiff.cpp:304
+msgid "Loading B"
+msgstr ""
+
+#: pdiff.cpp:321 pdiff.cpp:347
+msgid "Diff: A <-> B"
+msgstr ""
+
+#: pdiff.cpp:327 pdiff.cpp:372
+msgid "Linediff: A <-> B"
+msgstr ""
+
+#: pdiff.cpp:338
+msgid "Loading C"
+msgstr ""
+
+#: pdiff.cpp:350
+msgid "Diff: B <-> C"
+msgstr ""
+
+#: pdiff.cpp:353
+msgid "Diff: A <-> C"
+msgstr ""
+
+#: pdiff.cpp:375
+msgid "Linediff: B <-> C"
+msgstr ""
+
+#: pdiff.cpp:378
+msgid "Linediff: A <-> C"
+msgstr ""
+
+#: pdiff.cpp:534
+msgid "All input files contain the same text, but are not binary equal."
+msgstr ""
+
+#: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541
+#, kde-format
+msgid "Files %1 and %2 have equal text, but are not binary equal. \n"
+msgstr ""
+
+#: pdiff.cpp:551
+msgid ""
+"Some inputfiles don't seem to be pure textfiles.\n"
+"Note that the KDiff3-merge was not meant for binary data.\n"
+"Continue at your own risk."
+msgstr ""
+
+#: pdiff.cpp:566
+#, kde-format
+msgid ""
+"Some input characters could not be converted to valid unicode.\n"
+"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n"
+"Don't save the result if unsure. Continue at your own risk.\n"
+"Affected input files are in %1."
+msgstr ""
+
+#: pdiff.cpp:1080
+msgid "Abort"
+msgstr "Ĉesigi"
+
+#: pdiff.cpp:1087 pdiff.cpp:1175
+msgid "Opening files..."
+msgstr ""
+
+#: pdiff.cpp:1152 pdiff.cpp:1223
+msgid "File open error"
+msgstr ""
+
+#: pdiff.cpp:1255
+msgid "Cutting selection..."
+msgstr "Eltondanta elekton..."
+
+#: pdiff.cpp:1276
+msgid "Copying selection to clipboard..."
+msgstr "Kopianta elekton al tondujo..."
+
+#: pdiff.cpp:1292
+msgid "Inserting clipboard contents..."
+msgstr "Enmetanta tondujan enhavon..."
+
+#: pdiff.cpp:1814
+msgid "Save && Continue"
+msgstr ""
+
+#: pdiff.cpp:1815
+msgid "Continue Without Saving"
+msgstr ""
+
+#: pdiff.cpp:2018
+msgid "Search complete."
+msgstr ""
+
+#: pdiff.cpp:2018
+msgid "Search Complete"
+msgstr ""
+
+#: pdiff.cpp:2252
+msgid "Nothing is selected in either diff input window."
+msgstr ""
+
+#: pdiff.cpp:2252
+msgid "Error while adding manual diff range"
+msgstr ""
+
+#: kdiff3_shell.cpp:76
+msgid ""
+"Could not initialize the KDiff3 part.\n"
+"This usually happens due to an installation problem. Please read the README-"
+"file in the source package for details."
+msgstr ""
+
+#: rc.cpp:1
+msgctxt "NAME OF TRANSLATORS"
+msgid "Your names"
+msgstr "Axel Rousseau"
+
+#: rc.cpp:2
+msgctxt "EMAIL OF TRANSLATORS"
+msgid "Your emails"
+msgstr "axel@esperanto-jeunes.org"
+
+#. i18n: file: kdiff3_part.rc:4
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:5
+msgid "&KDiff3"
+msgstr ""
+
+#. i18n: file: kdiff3_part.rc:13
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:8
+msgid "Configure KDiff3"
+msgstr ""
+
+#. i18n: file: kdiff3_part.rc:16
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:11
+msgid "KDiff3"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:106
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:38
+msgid "Main Toolbar"
+msgstr "Ĉefa ilobreto"
diff --git a/po/eo/kdiff3plugin.po b/po/eo/kdiff3plugin.po
new file mode 100644 (file)
index 0000000..995cb3c
--- /dev/null
@@ -0,0 +1,84 @@
+# Translation of kdiff3plugin into esperanto.
+# Axel Rousseau <axel@esperanto-jeunes.org>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3plugin\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2009-11-15 12:06+0100\n"
+"Last-Translator: Axel Rousseau <axel@esperanto-jeunes.org>\n"
+"Language-Team: esperanto <kde-i18n-eo@kde.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: pology\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: kdiff3plugin.cpp:107
+msgid "KDiff3"
+msgstr ""
+
+#: kdiff3plugin.cpp:114
+#, kde-format
+msgid "Compare with %1"
+msgstr ""
+
+#: kdiff3plugin.cpp:120
+#, kde-format
+msgid "Merge with %1"
+msgstr ""
+
+#: kdiff3plugin.cpp:126
+#, kde-format
+msgid "Save '%1' for later"
+msgstr ""
+
+#: kdiff3plugin.cpp:132
+msgid "3-way merge with base"
+msgstr ""
+
+#: kdiff3plugin.cpp:139
+msgid "Compare with ..."
+msgstr ""
+
+#: kdiff3plugin.cpp:149
+msgid "Clear list"
+msgstr ""
+
+#: kdiff3plugin.cpp:157
+msgid "Compare"
+msgstr ""
+
+#: kdiff3plugin.cpp:163
+msgid "3 way comparison"
+msgstr ""
+
+#: kdiff3plugin.cpp:167
+msgid "About KDiff3 menu plugin ..."
+msgstr ""
+
+#: kdiff3plugin.cpp:269
+msgid ""
+"KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+
+#: kdiff3plugin.cpp:271
+msgid ""
+"Using the context menu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else, \"Save\" the first file for later, and "
+"it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With"
+"\" on the second file.\n"
+"For a 3-way merge first, \"Save\" the base file, then the branch to merge, "
+"and then \"3-way merge with base\" on the other branch which will be used as "
+"the destination.\n"
+"The same also applies to directory comparison and merge."
+msgstr ""
+
+#: kdiff3plugin.cpp:279
+msgid "About KDiff3 Menu Plugin"
+msgstr ""
diff --git a/po/es/CMakeLists.txt b/po/es/CMakeLists.txt
new file mode 100644 (file)
index 0000000..906dea9
--- /dev/null
@@ -0,0 +1,2 @@
+file(GLOB _po_files *.po)
+GETTEXT_PROCESS_PO_FILES(es ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
diff --git a/po/es/kdiff3.po b/po/es/kdiff3.po
new file mode 100644 (file)
index 0000000..69f90a3
--- /dev/null
@@ -0,0 +1,3258 @@
+# translation of kdiff3.po to Español
+# traducción de kdiff3.po a Español
+# Copyright (C) 2003,2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+#
+# Miguel Revilla Rodríguez <yo@miguelrevilla.com>, 2003.
+# Carlos Mayo Hernández <carlos.mayo@hispalinux.es>, 2003,2004, 2005.
+# santi <santi@kde-es.org>, 2005, 2006, 2007.
+# Santiago Fernandez Sancho <santi@kde-es.org>, 2006, 2008.
+# Israel Garcia Garcia <israelgarcia86@gmail.com>, 2010, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-01-16 14:50+0100\n"
+"Last-Translator: Israel Garcia Garcia <israelgarcia86@gmail.com>\n"
+"Language-Team: Español <kde-i18n-doc@kde.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.0\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: kreplacements/kreplacements.h:105
+msgid "Continue"
+msgstr "Continuar"
+
+#: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158
+#: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512
+msgid "Cancel"
+msgstr "Cancelar"
+
+#: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631
+msgid "Quit"
+msgstr "Salir"
+
+#: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339
+msgid "Ok"
+msgstr "Aceptar"
+
+#: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715
+msgid "Help"
+msgstr "Ayuda"
+
+#: kreplacements/kreplacements.cpp:185
+msgid "Defaults"
+msgstr "Predeterminados"
+
+#. i18n: file: kdiff3_shell.rc:4
+#. i18n: ectx: Menu (file)
+#: kreplacements/kreplacements.cpp:296 rc.cpp:14
+msgid "&File"
+msgstr "&Archivo"
+
+#: kreplacements/kreplacements.cpp:297
+msgid "&Edit"
+msgstr "&Editar"
+
+#. i18n: file: kdiff3_shell.rc:7
+#. i18n: ectx: Menu (directory)
+#: kreplacements/kreplacements.cpp:298 rc.cpp:17
+msgid "&Directory"
+msgstr "&Directorio"
+
+#. i18n: file: kdiff3_shell.rc:50
+#. i18n: ectx: Menu (movement)
+#: kreplacements/kreplacements.cpp:301 rc.cpp:26
+msgid "&Movement"
+msgstr "&Movimiento"
+
+#. i18n: file: kdiff3_shell.rc:61
+#. i18n: ectx: Menu (diff)
+#: kreplacements/kreplacements.cpp:302 rc.cpp:29
+msgid "D&iffview"
+msgstr "D&iffview"
+
+#. i18n: file: kdiff3_shell.rc:73
+#. i18n: ectx: Menu (merge)
+#: kreplacements/kreplacements.cpp:303 rc.cpp:32
+msgid "&Merge"
+msgstr "&Fusionar"
+
+#. i18n: file: kdiff3_shell.rc:95
+#. i18n: ectx: Menu (window)
+#: kreplacements/kreplacements.cpp:304 rc.cpp:35
+msgid "&Window"
+msgstr "&Ventana"
+
+#: kreplacements/kreplacements.cpp:305
+msgid "&Settings"
+msgstr "Preferencia&s"
+
+#: kreplacements/kreplacements.cpp:306
+msgid "&Help"
+msgstr "&Ayuda"
+
+#: kreplacements/kreplacements.cpp:353
+msgid "&About"
+msgstr "&Acerca de"
+
+#: kreplacements/kreplacements.cpp:369
+msgid "A&uthor"
+msgstr "A&utor"
+
+#: kreplacements/kreplacements.cpp:383
+msgid "&Thanks To"
+msgstr "Agradecimien&tos a"
+
+#. i18n: file: kdiff3_shell.rc:30
+#. i18n: ectx: Menu (dir_current_merge_menu)
+#: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497
+#: rc.cpp:20
+msgid "Current Item Merge Operation"
+msgstr "Elemento actual de operación de fusión"
+
+#. i18n: file: kdiff3_shell.rc:38
+#. i18n: ectx: Menu (dir_current_sync_menu)
+#: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498
+#: rc.cpp:23
+msgid "Current Item Sync Operation"
+msgstr "Elemento actual de operación de sincronización"
+
+#: kreplacements/kreplacements.cpp:597
+msgid "Open"
+msgstr "Abrir"
+
+#: kreplacements/kreplacements.cpp:606
+msgid "Save"
+msgstr "Guardar"
+
+#: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720
+msgid "Save As..."
+msgstr "Guardar como..."
+
+#: kreplacements/kreplacements.cpp:623
+msgid "Print..."
+msgstr "Imprimir..."
+
+#: kreplacements/kreplacements.cpp:639
+msgid "Cut"
+msgstr "Cortar"
+
+#: kreplacements/kreplacements.cpp:647
+msgid "Copy"
+msgstr "Copiar"
+
+#: kreplacements/kreplacements.cpp:655
+msgid "Paste"
+msgstr "Pegar"
+
+#: kreplacements/kreplacements.cpp:663
+msgid "Select All"
+msgstr "Seleccionar todo"
+
+#: kreplacements/kreplacements.cpp:671
+msgid "Show Toolbar"
+msgstr "Mostrar barra de herramientas"
+
+#: kreplacements/kreplacements.cpp:679
+msgid "Show &Status Bar"
+msgstr "Mostrar barra de e&stado"
+
+#: kreplacements/kreplacements.cpp:687
+#, kde-format
+msgid "&Configure %1..."
+msgstr "&Configurar %1..."
+
+#: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707
+msgid "About"
+msgstr "Acerca de"
+
+#: kreplacements/kreplacements.cpp:722
+msgid "Find"
+msgstr "Buscar"
+
+#: kreplacements/kreplacements.cpp:730
+msgid "Find Next"
+msgstr "Buscar siguiente"
+
+#: kreplacements/kreplacements.cpp:750
+msgid "Select Font"
+msgstr "Seleccionar tipo de letra"
+
+#: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676
+msgid ""
+"You selected a variable width font.\n"
+"\n"
+"Because this program doesn't handle variable width fonts\n"
+"correctly, you might experience problems while editing.\n"
+"\n"
+"Do you want to continue or do you want to select another font."
+msgstr ""
+"Seleccionó un tipo de letra de ancho variable.\n"
+"\n"
+"Debido a que este programa no manipula tipos de letra de ancho variables\n"
+"correctamente, podrá experimentar problemas durante la edición.\n"
+"\n"
+"¿Desea continuar o desea seleccionar otro tipo de letra?"
+
+#: kreplacements/kreplacements.cpp:792
+msgid "Incompatible font."
+msgstr "Tipo de letra incompatible."
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Continue at my own risk"
+msgstr "Continuar bajo mi propio riesgo"
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Select another font"
+msgstr "Seleccionar otro tipo de letra"
+
+#: kreplacements/kreplacements.cpp:1134
+msgid "For more documentation, see the help-menu or the subdirectory doc."
+msgstr ""
+"Para conseguir más documentación, consulte el menú ayuda o la subcarpeta doc."
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "KDiff3-Usage"
+msgstr "Uso de KDiff3"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Ignore"
+msgstr "Ignorar"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Exit"
+msgstr "Salir"
+
+#: diff.cpp:251
+msgid "Writing clipboard data to temp file failed."
+msgstr "Error al escribir los datos del portapapeles en el archivo temporal."
+
+#: diff.cpp:255
+msgid "From Clipboard"
+msgstr "Desde el portapapeles"
+
+#: diff.cpp:471
+msgid "Expecting space after closing quotation mark."
+msgstr ""
+
+#: diff.cpp:474
+msgid "Not matching quotation marks."
+msgstr ""
+
+#: diff.cpp:496
+msgid "Unexpected quotation mark within argument."
+msgstr ""
+
+#: diff.cpp:503
+msgid "No program specified."
+msgstr ""
+
+#: diff.cpp:605
+#, kde-format
+msgid ""
+"Preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The preprocessing command will be disabled now."
+msgstr ""
+"Posiblemente, falló el pre-procesamiento. Compruebe esta orden:\n"
+"\n"
+"  %1\n"
+"\n"
+"La orden de pre-procesamiento se desactivará ahora."
+
+#: diff.cpp:653
+#, kde-format
+msgid ""
+"The line-matching-preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The line-matching-preprocessing command will be disabled now."
+msgstr ""
+"El preprocesamiento de combinación de línea probablemente falló. Compruebe "
+"esta orden:\n"
+"\n"
+"  %1\n"
+"\n"
+"La orden de preprocesamiento de combinación de línea se desactivará."
+
+#: diff.cpp:1776 diff.cpp:1790
+msgid ""
+"Data loss error:\n"
+"If it is reproducible please contact the author.\n"
+msgstr ""
+"Error de pérdida de datos:\n"
+"Si puede volver a producirlo, contacte con el autor.\n"
+
+#: diff.cpp:1778 diff.cpp:1792
+msgid "Severe Internal Error"
+msgstr "Error interno grave"
+
+#: directorymergewindow.cpp:136
+msgid "Mix of links and normal files."
+msgstr "Mezcla de enlaces y archivos normales."
+
+#: directorymergewindow.cpp:143
+msgid "Link: "
+msgstr "Enlace: "
+
+#: directorymergewindow.cpp:151
+msgid "Size. "
+msgstr "Tamaño: "
+
+#: directorymergewindow.cpp:164 directorymergewindow.cpp:174
+msgid "Date & Size: "
+msgstr "Fecha y tamaño: "
+
+#: directorymergewindow.cpp:184 directorymergewindow.cpp:190
+#, kde-format
+msgid "Creating temp copy of %1 failed."
+msgstr "Falló la creación de la copia temporal de %1."
+
+#: directorymergewindow.cpp:201 directorymergewindow.cpp:209
+#, kde-format
+msgid "Opening %1 failed."
+msgstr "Falló la apertura de %1."
+
+#: directorymergewindow.cpp:213
+msgid "Comparing file..."
+msgstr "Comparando archivo..."
+
+#: directorymergewindow.cpp:223 directorymergewindow.cpp:229
+#, kde-format
+msgid "Error reading from %1"
+msgstr "Error al leer de %1"
+
+#: directorymergewindow.cpp:358
+msgid "Name"
+msgstr "Nombre"
+
+#: directorymergewindow.cpp:358
+msgid "Operation"
+msgstr "Operación"
+
+#: directorymergewindow.cpp:358
+msgid "Status"
+msgstr "Estado"
+
+#: directorymergewindow.cpp:359
+msgid "Unsolved"
+msgstr "Sin resolver"
+
+#: directorymergewindow.cpp:359
+msgid "Solved"
+msgstr "Resuelto"
+
+#: directorymergewindow.cpp:359
+msgid "Nonwhite"
+msgstr "No blanco"
+
+#: directorymergewindow.cpp:359
+msgid "White"
+msgstr "Blanco"
+
+#: directorymergewindow.cpp:388
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort "
+"the merge and rescan the directory?"
+msgstr ""
+"Actualmente está haciendo una fusión de directorio. ¿Está seguro de que "
+"desea abandonar la fusión y volver a leer el directorio?"
+
+#: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655
+#: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823
+msgid "Warning"
+msgstr "Aviso"
+
+#: directorymergewindow.cpp:390 directorymergewindow.cpp:2965
+msgid "Rescan"
+msgstr "Volver a buscar"
+
+#: directorymergewindow.cpp:391 pdiff.cpp:1081
+msgid "Continue Merging"
+msgstr "Continuar fusionando"
+
+#: directorymergewindow.cpp:548
+msgid "Opening of directories failed:"
+msgstr "Falló la apertura de directorios:"
+
+#: directorymergewindow.cpp:551
+#, kde-format
+msgid "Dir A \"%1\" does not exist or is not a directory.\n"
+msgstr "Dir A «%1» no existe o no es un directorio.\n"
+
+#: directorymergewindow.cpp:554
+#, kde-format
+msgid "Dir B \"%1\" does not exist or is not a directory.\n"
+msgstr "Dir B «%1» no existe o no es un directorio.\n"
+
+#: directorymergewindow.cpp:557
+#, kde-format
+msgid "Dir C \"%1\" does not exist or is not a directory.\n"
+msgstr "Dir C «%1» no existe o no es un directorio.\n"
+
+#: directorymergewindow.cpp:559
+msgid "Directory Open Error"
+msgstr "Error al abrir directorio"
+
+#: directorymergewindow.cpp:567
+msgid ""
+"The destination directory must not be the same as A or B when three "
+"directories are merged.\n"
+"Check again before continuing."
+msgstr ""
+"El directorio de destino no debe ser el mismo que A o B cuando tres "
+"directorio estan fusionados.\n"
+"Compruebe de nuevo antes de continuar."
+
+#: directorymergewindow.cpp:569
+msgid "Parameter Warning"
+msgstr "Advertencia en el parámetro"
+
+#: directorymergewindow.cpp:574
+msgid "Scanning directories..."
+msgstr "Escaneando directorios..."
+
+#: directorymergewindow.cpp:607
+msgid "Reading Directory A"
+msgstr "Leyendo directorio A"
+
+#: directorymergewindow.cpp:629
+msgid "Reading Directory B"
+msgstr "Leyendo directorio B"
+
+#: directorymergewindow.cpp:651
+msgid "Reading Directory C"
+msgstr "Leyendo directorio C"
+
+#: directorymergewindow.cpp:677
+msgid "Some subdirectories were not readable in"
+msgstr "Algunos subdirectorios no se pudieron leer"
+
+#: directorymergewindow.cpp:682
+msgid "Check the permissions of the subdirectories."
+msgstr "Comprobar los permisos de los subdirectorios."
+
+#: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737
+#: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233
+#: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328
+msgid "Ready."
+msgstr "Listo."
+
+#: directorymergewindow.cpp:735
+msgid "Directory Comparison Status"
+msgstr "Estado de la comparación del directorio"
+
+#: directorymergewindow.cpp:736
+msgid "Number of subdirectories:"
+msgstr "Número de subdirectorios:"
+
+#: directorymergewindow.cpp:737
+msgid "Number of equal files:"
+msgstr "Número de archivos iguales:"
+
+#: directorymergewindow.cpp:738
+msgid "Number of different files:"
+msgstr "Número de archivos diferentes:"
+
+#: directorymergewindow.cpp:741
+msgid "Number of manual merges:"
+msgstr "Número de fusiones manuales:"
+
+#: directorymergewindow.cpp:912
+msgid "This affects all merge operations."
+msgstr "Esto afecta a todas las operaciones de fusión."
+
+#: directorymergewindow.cpp:913
+msgid "Changing All Merge Operations"
+msgstr "Cambiando todas las operaciones de fusión"
+
+#: directorymergewindow.cpp:1312
+msgid "Processing "
+msgstr "Procesando "
+
+#: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742
+msgid "To do."
+msgstr "Por hacer."
+
+#: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996
+msgid "Copy A to B"
+msgstr "Copiar A a B"
+
+#: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997
+msgid "Copy B to A"
+msgstr "Copiar B a A"
+
+#: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998
+msgid "Delete A"
+msgstr "Borrar A"
+
+#: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999
+msgid "Delete B"
+msgstr "Borrar B"
+
+#: directorymergewindow.cpp:1814
+msgid "Delete A & B"
+msgstr "Borrar A y B"
+
+#: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001
+msgid "Merge to A"
+msgstr "Fusionar a A"
+
+#: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002
+msgid "Merge to B"
+msgstr "Fusionar a B"
+
+#: directorymergewindow.cpp:1817
+msgid "Merge to A & B"
+msgstr "Fusionar a A y B"
+
+#: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993
+msgid "Delete (if exists)"
+msgstr "Borrar (si existe)"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+#: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869
+msgid "Merge"
+msgstr "Fusionar"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+msgid "Merge (manual)"
+msgstr "Fusionar (manual)"
+
+#: directorymergewindow.cpp:1824
+msgid "Error: Conflicting File Types"
+msgstr "Error: Conflicto de tipos de archivo"
+
+#: directorymergewindow.cpp:1825
+msgid "Error: Changed and Deleted"
+msgstr "Error: Cambiado y borrando"
+
+#: directorymergewindow.cpp:1826
+msgid "Error: Dates are equal but files are not."
+msgstr "Error: Las fechas son iguales pero los archivos no."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906
+msgid "This operation is currently not possible."
+msgstr "Esta operación no es posible actualmente."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174
+msgid "Operation Not Possible"
+msgstr "Operación imposible"
+
+#: directorymergewindow.cpp:1945
+msgid ""
+"This should never happen: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"If you know how to reproduce this, please contact the program author."
+msgstr ""
+"Esto nunca debe ocurrir: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"Si sabe cómo reproducir esto, por favor contacte con el autor del programa."
+
+#: directorymergewindow.cpp:1945
+msgid "Program Error"
+msgstr "Error de programa"
+
+#: directorymergewindow.cpp:1956
+msgid "An error occurred while copying.\n"
+msgstr "Ocurrió un error mientras se copiaba.\n"
+
+#: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025
+#: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105
+#: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123
+#: directorymergewindow.cpp:2374
+msgid "Error"
+msgstr "Error"
+
+#: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375
+msgid "Merge Error"
+msgstr "Error de fusión"
+
+#: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380
+msgid "Error."
+msgstr "Error."
+
+#: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272
+#: directorymergewindow.cpp:2312
+msgid "Done."
+msgstr "Hecho."
+
+#: directorymergewindow.cpp:1990
+msgid "Not saved."
+msgstr "Sin guardar."
+
+#: directorymergewindow.cpp:2025
+msgid "Unknown merge operation. (This must never happen!)"
+msgstr "Operación de fusión desconocida. (Esto no debe ocurrir nunca)"
+
+#: directorymergewindow.cpp:2057
+msgid "Unknown merge operation."
+msgstr "Operación de fusión desconocida."
+
+#: directorymergewindow.cpp:2072
+msgid ""
+"The merge is about to begin.\n"
+"\n"
+"Choose \"Do it\" if you have read the instructions and know what you are "
+"doing.\n"
+"Choosing \"Simulate it\" will tell you what would happen.\n"
+"\n"
+"Be aware that this program still has beta status and there is NO WARRANTY "
+"whatsoever! Make backups of your vital data!"
+msgstr ""
+"La fusión va a empezar.\n"
+"\n"
+"Elegir «Hacerlo» si ha leído las instrucciones y sabe qué está haciendo.\n"
+"Elegir «Simularlo» para que os muestre que ocurriría.\n"
+"\n"
+"Tenga en cuenta que este programa está aún en versión de pruebas y no hay "
+"NINGUNA GARANTÍA en ningún caso. ¡Haga copias de respaldo de sus datos "
+"importantes!"
+
+#: directorymergewindow.cpp:2077
+msgid "Starting Merge"
+msgstr "Comenzando fusión"
+
+#: directorymergewindow.cpp:2078
+msgid "Do It"
+msgstr "Hacerlo"
+
+#: directorymergewindow.cpp:2079
+msgid "Simulate It"
+msgstr "Simularlo"
+
+#: directorymergewindow.cpp:2105
+msgid ""
+"The highlighted item has a different type in the different directories. "
+"Select what to do."
+msgstr ""
+"El elemento marcado tiene un tipo diferente en los diferentes directorios. "
+"Seleccione qué hacer."
+
+#: directorymergewindow.cpp:2114
+msgid ""
+"The modification dates of the file are equal but the files are not. Select "
+"what to do."
+msgstr ""
+"Las fechas de modificación del archivo son iguales pero los archivos no. "
+"Seleccionar qué hacer."
+
+#: directorymergewindow.cpp:2123
+msgid ""
+"The highlighted item was changed in one directory and deleted in the other. "
+"Select what to do."
+msgstr ""
+"El elemento marcado está cambiado en una carpeta y borrado en la otra. "
+"Seleccione qué hacer."
+
+#: directorymergewindow.cpp:2174
+msgid ""
+"This operation is currently not possible because directory merge is "
+"currently running."
+msgstr ""
+"Esta operación no es posible actualmente porque se está ejecutando una "
+"fusión de directorios."
+
+#: directorymergewindow.cpp:2234
+msgid ""
+"There was an error in the last step.\n"
+"Do you want to continue with the item that caused the error or do you want "
+"to skip this item?"
+msgstr ""
+"Hubo un error en el último paso.\n"
+"¿Desea continuar con el elemento que causó el error o desea omitir este "
+"elemento?"
+
+#: directorymergewindow.cpp:2236
+msgid "Continue merge after an error"
+msgstr "Continuar la fusión después de un error"
+
+#: directorymergewindow.cpp:2237
+msgid "Continue With Last Item"
+msgstr "Continuar con el último elemento"
+
+#: directorymergewindow.cpp:2238
+msgid "Skip Item"
+msgstr "Omitir elemento"
+
+#: directorymergewindow.cpp:2272
+msgid "Skipped."
+msgstr "Omitido."
+
+#: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493
+msgid "In progress..."
+msgstr "En progreso..."
+
+#: directorymergewindow.cpp:2327
+msgid "Merge operation complete."
+msgstr "Operación de fusión completa."
+
+#: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330
+msgid "Merge Complete"
+msgstr "Fusión completa"
+
+#: directorymergewindow.cpp:2340
+msgid ""
+"Simulated merge complete: Check if you agree with the proposed operations."
+msgstr ""
+"Fusión simulada completa. Compruebe si está de acuerdo con las operaciones "
+"propuestas."
+
+#: directorymergewindow.cpp:2374
+msgid "An error occurred. Press OK to see detailed information.\n"
+msgstr "Ocurrió un error. Pulse Aceptar para ver información mas detallada.\n"
+
+#: directorymergewindow.cpp:2406
+#, kde-format
+msgid "Error: While deleting %1: Creating backup failed."
+msgstr "Error: Mientras se borraba %1: Falló la creación de copia de respaldo."
+
+#: directorymergewindow.cpp:2413
+#, kde-format
+msgid "delete directory recursively( %1 )"
+msgstr "borrar directorio recursivamente( %1 )"
+
+#: directorymergewindow.cpp:2415
+#, kde-format
+msgid "delete( %1 )"
+msgstr "borrar( %1 )"
+
+#: directorymergewindow.cpp:2430
+msgid "Error: delete dir operation failed while trying to read the directory."
+msgstr ""
+"Error: la operación de borrado de directorio falló al intentar leer el "
+"directorio."
+
+#: directorymergewindow.cpp:2449
+#, kde-format
+msgid "Error: rmdir( %1 ) operation failed."
+msgstr "Error: la operación rmdir( %1 ) falló."
+
+#: directorymergewindow.cpp:2459
+msgid "Error: delete operation failed."
+msgstr "Error: falló la operación de borrado."
+
+#: directorymergewindow.cpp:2485
+#, kde-format
+msgid "manual merge( %1, %2, %3 -> %4)"
+msgstr "fusión manual ( %1, %2, %3 -> %4)"
+
+#: directorymergewindow.cpp:2488
+msgid ""
+"     Note: After a manual merge the user should continue by pressing F7."
+msgstr ""
+"     Nota: Después de una fusión manual el usuario puede continuar "
+"presionando F7."
+
+#: directorymergewindow.cpp:2513
+#, kde-format
+msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed."
+msgstr ""
+"Error: falló la copia ( %1 -> %2 ). Fallo al eliminar destino existente."
+
+#: directorymergewindow.cpp:2522
+#, kde-format
+msgid "copyLink( %1 -> %2 )"
+msgstr "copyLink( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2533
+msgid "Error: copyLink failed: Remote links are not yet supported."
+msgstr ""
+"Error: falló copyLink. Los enlaces remotos no están implementados todavía."
+
+#: directorymergewindow.cpp:2539
+msgid "Error: copyLink failed."
+msgstr "Error: falló copyLink."
+
+#: directorymergewindow.cpp:2564
+#, kde-format
+msgid "copy( %1 -> %2 )"
+msgstr "copy( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2590
+#, kde-format
+msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination."
+msgstr ""
+"Error durante renombrar( %1 -> %2 ): No se puede borrar un destino existente."
+
+#: directorymergewindow.cpp:2596
+#, kde-format
+msgid "rename( %1 -> %2 )"
+msgstr "renombrar( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2605
+msgid "Error: Rename failed."
+msgstr "Error: Fallo al renombrar."
+
+#: directorymergewindow.cpp:2623
+#, kde-format
+msgid "Error during makeDir of %1. Cannot delete existing file."
+msgstr "Error durante makeDir de %1. No se puede borrar un archivo existente."
+
+#: directorymergewindow.cpp:2639
+#, kde-format
+msgid "makeDir( %1 )"
+msgstr "makeDir( %1 )"
+
+#: directorymergewindow.cpp:2649
+msgid "Error while creating directory."
+msgstr "Error al crear el directorio."
+
+#: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784
+msgid "Dest"
+msgstr "Dest"
+
+#: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709
+msgid "Dir"
+msgstr "Dir"
+
+#: directorymergewindow.cpp:2678
+msgid "Type"
+msgstr "Tipo"
+
+#: directorymergewindow.cpp:2678
+msgid "Size"
+msgstr "Tamaño"
+
+#: directorymergewindow.cpp:2679
+msgid "Attr"
+msgstr "Atrib"
+
+#: directorymergewindow.cpp:2679
+msgid "Last Modification"
+msgstr "Última modificación"
+
+#: directorymergewindow.cpp:2679
+msgid "Link-Destination"
+msgstr "Destino del enlace"
+
+#: directorymergewindow.cpp:2709 difftextwindow.cpp:401
+msgid "File"
+msgstr "Archivo"
+
+#: directorymergewindow.cpp:2726
+msgid "not available"
+msgstr "no disponible"
+
+#: directorymergewindow.cpp:2746
+msgid "A (Dest): "
+msgstr "A (Dest): "
+
+#: directorymergewindow.cpp:2749
+msgid "A (Base): "
+msgstr "A (base): "
+
+#: directorymergewindow.cpp:2755
+msgid "B (Dest): "
+msgstr "B (Dest): "
+
+#: directorymergewindow.cpp:2763
+msgid "C (Dest): "
+msgstr "C (Dest): "
+
+#: directorymergewindow.cpp:2769
+msgid "Dest: "
+msgstr "Dest: "
+
+#: directorymergewindow.cpp:2836
+msgid "Save Directory Merge State As..."
+msgstr "Guardar estado del directorio de fusión como..."
+
+#: directorymergewindow.cpp:2959
+msgid "Start/Continue Directory Merge"
+msgstr "Comenzar/Continuar fusión de directorio"
+
+#: directorymergewindow.cpp:2960
+msgid "Run Operation for Current Item"
+msgstr "Realizar operación para el elemento actual"
+
+#: directorymergewindow.cpp:2961
+msgid "Compare Selected File"
+msgstr "Comparar el archivo seleccionado"
+
+#: directorymergewindow.cpp:2962
+msgid "Merge Current File"
+msgstr "Fusionar archivo actual"
+
+#: directorymergewindow.cpp:2962
+msgid ""
+"Merge\n"
+"File"
+msgstr ""
+"Fusionar\n"
+"archivo"
+
+#: directorymergewindow.cpp:2963
+msgid "Fold All Subdirs"
+msgstr "Plegar todos los subdirectorios"
+
+#: directorymergewindow.cpp:2964
+msgid "Unfold All Subdirs"
+msgstr "Desplegar todos los subdirectorios"
+
+#: directorymergewindow.cpp:2968
+msgid "Choose A for All Items"
+msgstr "Elegir A para todos los elementos"
+
+#: directorymergewindow.cpp:2969
+msgid "Choose B for All Items"
+msgstr "Elegir B para todos los elementos"
+
+#: directorymergewindow.cpp:2970
+msgid "Choose C for All Items"
+msgstr "Elegir C para todos los elementos"
+
+#: directorymergewindow.cpp:2971
+msgid "Auto-Choose Operation for All Items"
+msgstr "Auto-elegir operación para todos los elementos"
+
+#: directorymergewindow.cpp:2972
+msgid "No Operation for All Items"
+msgstr "Ninguna operación para todos los elementos"
+
+#: directorymergewindow.cpp:2977
+msgid "Show Identical Files"
+msgstr "Mostrar archivos idénticos"
+
+#: directorymergewindow.cpp:2977
+msgid ""
+"Identical\n"
+"Files"
+msgstr ""
+"Archivos\n"
+"idénticos"
+
+#: directorymergewindow.cpp:2978
+msgid "Show Different Files"
+msgstr "Mostrar archivos diferentes"
+
+#: directorymergewindow.cpp:2979
+msgid "Show Files only in A"
+msgstr "Mostrar archivos solo en A"
+
+#: directorymergewindow.cpp:2979
+msgid ""
+"Files\n"
+"only in A"
+msgstr ""
+"Archivos\n"
+"solo en A"
+
+#: directorymergewindow.cpp:2980
+msgid "Show Files only in B"
+msgstr "Mostrar archivos solo en B"
+
+#: directorymergewindow.cpp:2980
+msgid ""
+"Files\n"
+"only in B"
+msgstr ""
+"Archivos\n"
+"solo en B"
+
+#: directorymergewindow.cpp:2981
+msgid "Show Files only in C"
+msgstr "Mostrar archivos solo en C"
+
+#: directorymergewindow.cpp:2981
+msgid ""
+"Files\n"
+"only in C"
+msgstr ""
+"Archivos\n"
+"solo en C"
+
+#: directorymergewindow.cpp:2985
+msgid "Compare Explicitly Selected Files"
+msgstr "Comparar explícitamente los archivos seleccionados"
+
+#: directorymergewindow.cpp:2986
+msgid "Merge Explicitly Selected Files"
+msgstr "Fusionar explícitamente los archivos seleccionados"
+
+#: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995
+msgid "Do Nothing"
+msgstr "No hacer nada"
+
+#: directorymergewindow.cpp:2989
+msgid "A"
+msgstr "A"
+
+#: directorymergewindow.cpp:2990
+msgid "B"
+msgstr "B"
+
+#: directorymergewindow.cpp:2991
+msgid "C"
+msgstr "C"
+
+#: directorymergewindow.cpp:3000
+msgid "Delete A && B"
+msgstr "Borrar A y B"
+
+#: directorymergewindow.cpp:3003
+msgid "Merge to A && B"
+msgstr "Fusionar a A y B"
+
+#: main.cpp:74 main.cpp:76
+msgid "Ignored. (User defined.)"
+msgstr "Ignorado. (Definido por el usuario)."
+
+#: main.cpp:162
+msgid "kdiff3"
+msgstr "kdiff3"
+
+#: main.cpp:164
+msgid "Tool for Comparison and Merge of Files and Directories"
+msgstr "Herramienta para comparación y fusión de archivos y directorios"
+
+#: main.cpp:165
+#, fuzzy
+#| msgid "(c) 2002-2009 Joachim Eibl"
+msgid "(c) 2002-2011 Joachim Eibl"
+msgstr "© 2002-2009 Joachim Eibl"
+
+#: main.cpp:172 kdiff3_part.cpp:303
+msgid "Joachim Eibl"
+msgstr "Joachim Eibl"
+
+#: main.cpp:173
+msgid "Eike Sauer"
+msgstr "Eike Sauer"
+
+#: main.cpp:173
+msgid "Bugfixes, Debian package maintainer"
+msgstr "Corrección de fallo, mantenedor del paquete Debian"
+
+#: main.cpp:174
+msgid "Sebastien Fricker"
+msgstr "Sebastien Fricker"
+
+#: main.cpp:174
+msgid "Windows installer"
+msgstr "Instalador de Windows"
+
+#: main.cpp:175
+msgid "Stephan Binner"
+msgstr "Stephan Binner"
+
+#: main.cpp:175
+msgid "i18n-help"
+msgstr "ayuda i18n"
+
+#: main.cpp:176
+msgid "Stefan Partheymueller"
+msgstr "Stefan Partheymueller"
+
+#: main.cpp:176
+msgid "Clipboard-patch"
+msgstr "Parche del portapapeles"
+
+#: main.cpp:177
+msgid "David Faure"
+msgstr "David Faure"
+
+#: main.cpp:177
+msgid "KIO-Help"
+msgstr "Ayuda KIO"
+
+#: main.cpp:178
+msgid "Bernd Gehrmann"
+msgstr "Bernd Gehrmann"
+
+#: main.cpp:178
+msgid "Class CvsIgnoreList from Cervisia"
+msgstr "Clase CvsIgnoreList para Cervisia"
+
+#: main.cpp:179
+msgid "Andre Woebbeking"
+msgstr "Andre Woebbeking"
+
+#: main.cpp:179
+msgid "Class StringMatcher"
+msgstr "Clase StringMatcher"
+
+#: main.cpp:180
+msgid "Michael Denio"
+msgstr "Michael Denio"
+
+#: main.cpp:180
+msgid "Directory Equality-Coloring patch"
+msgstr "Parche de corrección de color de carpeta"
+
+#: main.cpp:181
+msgid "Manfred Koehler"
+msgstr "Manfred Koehler"
+
+#: main.cpp:181
+msgid "Fix for slow startup on Windows"
+msgstr "Correcciones para el inicio lento en Windows"
+
+#: main.cpp:182
+msgid "Sergey Zorin"
+msgstr "Sergey Zorin"
+
+#: main.cpp:182
+msgid "Diff Ext for Windows"
+msgstr "Extensión Diff para Windows"
+
+#: main.cpp:183
+msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+
+#: main.cpp:183
+msgid "GNU-Diffutils"
+msgstr "Utilidades Diff GNU"
+
+#: main.cpp:184
+msgid "Tino Boellsterling, Timothy Mee"
+msgstr "Tino Boellsterling, Timothy Mee"
+
+#: main.cpp:184
+msgid "Intensive test, use and feedback"
+msgstr "Prueba intensiva, uso, comentarios y sugerencias."
+
+#: main.cpp:185
+msgid "Michael Schmidt"
+msgstr "Michael Schmidt"
+
+#: main.cpp:185
+msgid "Mac support"
+msgstr "Soporte para Mac"
+
+#: main.cpp:186
+msgid "Valentin Rusu"
+msgstr "Valentin Rusu"
+
+#: main.cpp:186 main.cpp:187
+msgid "KDE4 porting"
+msgstr "Portado a KDE4"
+
+#: main.cpp:187
+msgid "Albert Astals Cid"
+msgstr "Albert Astals Cid"
+
+#: main.cpp:188
+msgid "Silvan Scherrer"
+msgstr ""
+
+#: main.cpp:188
+msgid "OS2 port"
+msgstr ""
+
+#: main.cpp:190
+msgid "+ Many thanks to those who reported bugs and contributed ideas!"
+msgstr ""
+"+ ¡Muchas gracias a aquellos que han informado de errores y han contribuido "
+"con ideas!"
+
+#: main.cpp:196
+msgid "Merge the input."
+msgstr "Fusionar la entrada."
+
+#: main.cpp:197
+msgid "Explicit base file. For compatibility with certain tools."
+msgstr "Archivo base explícito. Para compatibilidad con algunas herramientas."
+
+#: main.cpp:198
+msgid "Output file. Implies -m. E.g.: -o newfile.txt"
+msgstr "Archivo de salida. Implica -m. E.g.: -o newfile.txt"
+
+#: main.cpp:199
+msgid "Output file, again. (For compatibility with certain tools.)"
+msgstr ""
+"Archivo de salida, de nuevo. (Para compatibilidad con algunas herramientas)."
+
+#: main.cpp:200
+msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)"
+msgstr ""
+"Ninguna interfaz gráfica de usuario si todos los conflictos son auto-"
+"resolvibles. (necesita archivo -o)"
+
+#: main.cpp:201
+msgid "Don't solve conflicts automatically. (For compatibility...)"
+msgstr "No resolver conflictos automáticamente (Por compatibilidad...)"
+
+#: main.cpp:202
+msgid "Visible name replacement for input file 1 (base)."
+msgstr "Reemplazamiento visible de nombre para el archivo de entrada 1 (base)."
+
+#: main.cpp:203
+msgid "Visible name replacement for input file 2."
+msgstr "Reemplazamiento visible de nombre para el archivo de entrada 2."
+
+#: main.cpp:204
+msgid "Visible name replacement for input file 3."
+msgstr "Reemplazamiento visible de nombre para el archivo de entrada 3."
+
+#: main.cpp:205
+msgid "Alternative visible name replacement. Supply this once for every input."
+msgstr ""
+"Reemplazamiento alternativo visible de nombre. Facilitarlo una vez por cada "
+"entrada."
+
+#: main.cpp:206
+msgid ""
+"Override a config setting. Use once for every setting. E.g.: --cs "
+"\"AutoAdvance=1\""
+msgstr ""
+"Sustituir una opción de configuración. Utilícelo para cada configuración. P. "
+"ej.: --cs \"AutoAdvance=1\""
+
+#: main.cpp:207
+msgid "Show list of config settings and current values."
+msgstr "Mostrar una lista de las preferencias y valores actuales."
+
+#: main.cpp:208
+msgid "Use a different config file."
+msgstr "Utilizar un archivo de configuración diferente."
+
+#: main.cpp:211
+msgid "file1 to open (base, if not specified via --base)"
+msgstr "archivo1 a abrir (base, si no se ha especificado vía --base)"
+
+#: main.cpp:212
+msgid "file2 to open"
+msgstr "archivo2 a abrir"
+
+#: main.cpp:213
+msgid "file3 to open"
+msgstr "archivo3 a abrir"
+
+#: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976
+#: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002
+#: mergeresultwindow.cpp:1014
+#, kde-format
+msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)"
+msgstr ""
+"Número de conflictos sin resolver: %1 (%2 de los cuales son espacios en "
+"blanco)"
+
+#: mergeresultwindow.cpp:303
+msgid ""
+"The output has been modified.\n"
+"If you continue your changes will be lost."
+msgstr ""
+"La salida ha sido modificada.\n"
+"Si continua, sus cambios se perderán."
+
+#: mergeresultwindow.cpp:834 pdiff.cpp:532
+msgid "All input files are binary equal."
+msgstr "Todos los archivos de entrada son binariamente iguales."
+
+#: mergeresultwindow.cpp:836
+msgid "All input files contain the same text."
+msgstr "Todos los archivos de entrada contienen el mismo texto."
+
+#: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840
+#: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540
+#, kde-format
+msgid "Files %1 and %2 are binary equal.\n"
+msgstr "Los archivos %1 y %2 son binariamente iguales.\n"
+
+#: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841
+#: mergeresultwindow.cpp:843
+#, kde-format
+msgid "Files %1 and %2 have equal text.\n"
+msgstr "Los archivos %1 y %2 tiene el mismo texto.\n"
+
+#: mergeresultwindow.cpp:849
+msgid "Total number of conflicts: "
+msgstr "Número total de conflictos: "
+
+#: mergeresultwindow.cpp:850
+msgid ""
+"\n"
+"Nr of automatically solved conflicts: "
+msgstr ""
+"\n"
+"Nº de conflictos resueltos automáticamente: "
+
+#: mergeresultwindow.cpp:851
+msgid ""
+"\n"
+"Nr of unsolved conflicts: "
+msgstr ""
+"\n"
+"Nº de conflictos sin resolver: "
+
+#: mergeresultwindow.cpp:853
+msgid "Conflicts"
+msgstr "Conflictos"
+
+#: mergeresultwindow.cpp:1728
+msgid "<No src line>"
+msgstr "<Sin línea fuente>"
+
+#: mergeresultwindow.cpp:1736
+msgid "<Merge Conflict (Whitespace only)>"
+msgstr "<Conflicto de fusionado (Solo espacio en blanco)>"
+
+#: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517
+msgid "<Merge Conflict>"
+msgstr "<Conflicto de fusionado>"
+
+#: mergeresultwindow.cpp:2725
+msgid ""
+"Not all conflicts are solved yet.\n"
+"File not saved.\n"
+msgstr ""
+"No todos los conflictos se han resuelto todavía.\n"
+"Archivo sin guardar.\n"
+
+#: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736
+msgid "Conflicts Left"
+msgstr "Conflictos que faltan"
+
+#: mergeresultwindow.cpp:2734
+msgid ""
+"There is a line end style conflict. Please choose the line end style "
+"manually.\n"
+"File not saved.\n"
+msgstr ""
+"Hay un conflicto entre el fin de línea y el estilo. Por favor elija la línea "
+"y el estilo  manualmente.\n"
+"No se guardó el archivo.\n"
+
+#: mergeresultwindow.cpp:2748
+msgid ""
+"\n"
+"\n"
+"Creating backup failed. File not saved."
+msgstr ""
+"\n"
+"\n"
+"Fallo al crear copia de respaldo. Archivo sin guardar."
+
+#: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792
+msgid "File Save Error"
+msgstr "Error al guardar archivo"
+
+#: mergeresultwindow.cpp:2792
+msgid "Error while writing."
+msgstr "Error al escribir."
+
+#: mergeresultwindow.cpp:3122
+msgid "Output"
+msgstr "Salida"
+
+#: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314
+msgid "[Modified]"
+msgstr "[Modificado]"
+
+#: mergeresultwindow.cpp:3141
+msgid "Encoding for saving"
+msgstr "Codificación para guardar"
+
+#: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737
+#: optiondialog.cpp:762
+msgid "Line end style:"
+msgstr "Estilo línea final:"
+
+#: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767
+msgid "Unix"
+msgstr "Unix"
+
+#: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737
+msgid "DOS"
+msgstr "DOS"
+
+#: mergeresultwindow.cpp:3229
+msgid "Conflict"
+msgstr "Conflicto"
+
+#: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263
+#: mergeresultwindow.cpp:3265
+msgid "Codec from"
+msgstr "Códec de"
+
+#: kdiff3_part.cpp:157 kdiff3_part.cpp:234
+msgid "Couldn't find files for comparison."
+msgstr "No se pudo encontrar archivos para comparar."
+
+#: kdiff3_part.cpp:302
+msgid "KDiff3Part"
+msgstr "KDiff3Part"
+
+#: fileaccess.cpp:612
+msgid ""
+"While trying to make a backup, deleting an older backup failed. \n"
+"Filename: "
+msgstr ""
+"Mientras se intentaba hacer una copia de respaldo, se produjo un fallo al "
+"eliminar una copia de respaldo anterior.\n"
+"Nombre de archivo: "
+
+#: fileaccess.cpp:619
+msgid ""
+"While trying to make a backup, renaming failed. \n"
+"Filenames: "
+msgstr ""
+"Mientras se intentaba hacer una copia de respaldo, se produjo un fallo al "
+"renombrar.\n"
+"Nombres de archivos: "
+
+#: fileaccess.cpp:643
+#, kde-format
+msgid "Getting file status: %1"
+msgstr "Obteniendo estado de archivo: %1"
+
+#: fileaccess.cpp:686
+#, kde-format
+msgid "Reading file: %1"
+msgstr "Leyendo archivo: %1"
+
+#: fileaccess.cpp:723
+#, kde-format
+msgid "Writing file: %1"
+msgstr "Escribiendo archivo: %1"
+
+#: fileaccess.cpp:751
+msgid "Out of memory"
+msgstr "Fuera de memoria"
+
+#: fileaccess.cpp:786
+#, kde-format
+msgid "Making directory: %1"
+msgstr "Creando directorio: %1"
+
+#: fileaccess.cpp:806
+#, kde-format
+msgid "Removing directory: %1"
+msgstr "Eliminando directorio: %1"
+
+#: fileaccess.cpp:821
+#, kde-format
+msgid "Removing file: %1"
+msgstr "Eliminando archivo: %1"
+
+#: fileaccess.cpp:837
+#, kde-format
+msgid "Creating symbolic link: %1 -> %2"
+msgstr "Creando enlace simbólico: %1 -> %2"
+
+#: fileaccess.cpp:864
+#, kde-format
+msgid "Renaming file: %1 -> %2"
+msgstr "Renombrando archivo: %1 -> %2"
+
+#: fileaccess.cpp:897
+#, kde-format
+msgid "Copying file: %1 -> %2"
+msgstr "Copiando archivo: %1 -> %2"
+
+#: fileaccess.cpp:911
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for reading failed. Filename: "
+"%1"
+msgstr ""
+"Error durante la operación de copia de archivo. Falló al abrir archivo para "
+"lectura. Nombre de archivo: %1"
+
+#: fileaccess.cpp:917
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for writing failed. Filename: "
+"%1"
+msgstr ""
+"Error durante la operación de copia de archivo. Falló al abrir archivo para "
+"escritura. Nombre de archivo: %1"
+
+#: fileaccess.cpp:932
+#, kde-format
+msgid "Error during file copy operation: Reading failed. Filename: %1"
+msgstr ""
+"Error durante la operación de copia de archivo. Falló al leer. Nombre de "
+"archivo: %1"
+
+#: fileaccess.cpp:941
+#, kde-format
+msgid "Error during file copy operation: Writing failed. Filename: %1"
+msgstr ""
+"Error durante la operación de copia de archivo. Falló al escribir. Nombre de "
+"archivo: %1"
+
+#: fileaccess.cpp:1231
+msgid "Reading directory: "
+msgstr "Leyendo directorio: "
+
+#: fileaccess.cpp:1355
+#, kde-format
+msgid "Listing directory: %1"
+msgstr "Listando directorio: %1"
+
+#: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396
+msgid "&Cancel"
+msgstr "&Cancelar"
+
+#: difftextwindow.cpp:403
+msgid "Line"
+msgstr "Línea"
+
+#: difftextwindow.cpp:405
+msgid "Line not available"
+msgstr "Línea no disponible"
+
+#: difftextwindow.cpp:1703 difftextwindow.cpp:1736
+msgid "Encoding:"
+msgstr "Codificación:"
+
+#: difftextwindow.cpp:1759 kdiff3.cpp:831
+msgid "Top line"
+msgstr "Línea superior"
+
+#: difftextwindow.cpp:1769
+msgid "End"
+msgstr "Fin"
+
+#: kdiff3.cpp:169
+msgid "Current Configuration:"
+msgstr "Configuración actual:"
+
+#: kdiff3.cpp:174
+msgid "Config Option Error:"
+msgstr "Configuración de la opción de error:"
+
+#: kdiff3.cpp:219
+msgid "Option --auto used, but no output file specified."
+msgstr "Opción --auto usada, pero sin archivo de salida especificado."
+
+#: kdiff3.cpp:369
+msgid "Option --auto ignored for directory comparison."
+msgstr "Opción --auto ignorada para comparación de directorio."
+
+#: kdiff3.cpp:405
+msgid "Saving failed."
+msgstr "Fallo al guardar."
+
+#: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214
+msgid "Opening of these files failed:"
+msgstr "Fallo al abrir estos archivos:"
+
+#: kdiff3.cpp:449
+msgid "File Open Error"
+msgstr "Error de apertura de archivo"
+
+#: kdiff3.cpp:477
+msgid "Opens documents for comparison..."
+msgstr "Abre documentos para comparación..."
+
+#: kdiff3.cpp:479
+msgid "Reload"
+msgstr "Recargar"
+
+#: kdiff3.cpp:482
+msgid "Saves the merge result. All conflicts must be solved!"
+msgstr ""
+"Guarda el resultado de la fusión ¡Todos los conflictos deben estar resueltos!"
+
+#: kdiff3.cpp:484
+msgid "Saves the current document as..."
+msgstr "Guarda el documento actual como..."
+
+#: kdiff3.cpp:487
+msgid "Print the differences"
+msgstr "Imprimir las diferencias"
+
+#: kdiff3.cpp:490
+msgid "Quits the application"
+msgstr "Sale de la aplicación"
+
+#: kdiff3.cpp:492
+msgid "Cuts the selected section and puts it to the clipboard"
+msgstr "Corta la sección seleccionada y la pega en el portapapeles"
+
+#: kdiff3.cpp:494
+msgid "Copies the selected section to the clipboard"
+msgstr "Copia la sección seleccionada al portapapeles"
+
+#: kdiff3.cpp:496
+msgid "Pastes the clipboard contents to current position"
+msgstr "Pastes the clipboard contents to current position"
+
+#: kdiff3.cpp:498
+msgid "Select everything in current window"
+msgstr "Seleccionar todo en la ventana actual"
+
+#: kdiff3.cpp:500
+msgid "Search for a string"
+msgstr "Buscar por una cadena"
+
+#: kdiff3.cpp:502
+msgid "Search again for the string"
+msgstr "Buscar de nuevo la cadena"
+
+#: kdiff3.cpp:507
+msgid "Enables/disables the statusbar"
+msgstr "Activar/desactivar la barra de estado"
+
+#: kdiff3.cpp:511
+msgid "Configure KDiff3..."
+msgstr "Configurar KDiff3..."
+
+#: kdiff3.cpp:532
+msgid "Go to Current Delta"
+msgstr "Ir al Delta actual"
+
+#: kdiff3.cpp:532
+msgid ""
+"Current\n"
+"Delta"
+msgstr ""
+"Delta\n"
+"actual"
+
+#: kdiff3.cpp:534
+msgid "Go to First Delta"
+msgstr "Ir al primer Delta"
+
+#: kdiff3.cpp:534
+msgid ""
+"First\n"
+"Delta"
+msgstr ""
+"Primer\n"
+"delta"
+
+#: kdiff3.cpp:536
+msgid "Go to Last Delta"
+msgstr "Ir al último Delta"
+
+#: kdiff3.cpp:536
+msgid ""
+"Last\n"
+"Delta"
+msgstr ""
+"Último\n"
+"delta"
+
+#: kdiff3.cpp:538
+msgid "(Skips white space differences when \"Show White Space\" is disabled.)"
+msgstr ""
+"(Omite diferencias de espacios en blanco cuando «Mostrar espacios en blanco» "
+"esta desactivado)."
+
+#: kdiff3.cpp:539
+msgid ""
+"(Does not skip white space differences even when \"Show White Space\" is "
+"disabled.)"
+msgstr ""
+"(No omite diferencias de espacios en blanco incluso cuando «Mostrar espacios "
+"en blanco» esta desactivado)."
+
+#: kdiff3.cpp:540
+msgid "Go to Previous Delta"
+msgstr "Ir al Delta anterior"
+
+#: kdiff3.cpp:540
+msgid ""
+"Prev\n"
+"Delta"
+msgstr ""
+"Delta\n"
+"anterior"
+
+#: kdiff3.cpp:542
+msgid "Go to Next Delta"
+msgstr "Ir al siguiente Delta"
+
+#: kdiff3.cpp:542
+msgid ""
+"Next\n"
+"Delta"
+msgstr ""
+"Siguiente\n"
+"Delta"
+
+#: kdiff3.cpp:544
+msgid "Go to Previous Conflict"
+msgstr "Ir al conflicto anterior"
+
+#: kdiff3.cpp:544
+msgid ""
+"Prev\n"
+"Conflict"
+msgstr ""
+"Conflicto\n"
+"anterior"
+
+#: kdiff3.cpp:546
+msgid "Go to Next Conflict"
+msgstr "Ir al conflicto siguiente"
+
+#: kdiff3.cpp:546
+msgid ""
+"Next\n"
+"Conflict"
+msgstr ""
+"Conflicto\n"
+"siguiente"
+
+#: kdiff3.cpp:548
+msgid "Go to Previous Unsolved Conflict"
+msgstr "Ir al conflicto anterior sin resolver"
+
+#: kdiff3.cpp:548
+msgid ""
+"Prev\n"
+"Unsolved"
+msgstr ""
+"Sin resolver\n"
+"anterior"
+
+#: kdiff3.cpp:550
+msgid "Go to Next Unsolved Conflict"
+msgstr "Ir al conflicto siguiente sin resolver"
+
+#: kdiff3.cpp:550
+msgid ""
+"Next\n"
+"Unsolved"
+msgstr ""
+"Sin resolver\n"
+"siguiente"
+
+#: kdiff3.cpp:552
+msgid "Select Line(s) From A"
+msgstr "Seleccionar línea(s) de A"
+
+#: kdiff3.cpp:552
+msgid ""
+"Choose\n"
+"A"
+msgstr ""
+"Elegir\n"
+"A"
+
+#: kdiff3.cpp:553
+msgid "Select Line(s) From B"
+msgstr "Seleccionar línea(s) de B"
+
+#: kdiff3.cpp:553
+msgid ""
+"Choose\n"
+"B"
+msgstr ""
+"Elegir\n"
+"B"
+
+#: kdiff3.cpp:554
+msgid "Select Line(s) From C"
+msgstr "Seleccionar línea(s) de C"
+
+#: kdiff3.cpp:554
+msgid ""
+"Choose\n"
+"C"
+msgstr ""
+"Elegir\n"
+"C"
+
+#: kdiff3.cpp:555
+msgid "Automatically Go to Next Unsolved Conflict After Source Selection"
+msgstr ""
+"Automáticamente Ir al conflicto siguiente sin resolver después de una "
+"selección origen"
+
+#: kdiff3.cpp:555
+msgid ""
+"Auto\n"
+"Next"
+msgstr ""
+"Siguiente\n"
+"automática"
+
+#: kdiff3.cpp:557
+msgid "Show Space && Tabulator Characters for Differences"
+msgstr "Mostrar caracteres espacio y tabulador por diferencias"
+
+#: kdiff3.cpp:557
+msgid ""
+"White\n"
+"Characters"
+msgstr ""
+"Caracteres\n"
+"en blanco"
+
+#: kdiff3.cpp:558
+msgid "Show White Space"
+msgstr "Mostar espacio en blanco"
+
+#: kdiff3.cpp:558
+msgid ""
+"White\n"
+"Deltas"
+msgstr ""
+"Deltas en\n"
+"blanco"
+
+#: kdiff3.cpp:560
+msgid "Show Line Numbers"
+msgstr "Mostar número de líneas"
+
+#: kdiff3.cpp:560
+msgid ""
+"Line\n"
+"Numbers"
+msgstr ""
+"Números de\n"
+"línea"
+
+#: kdiff3.cpp:561
+msgid "Choose A Everywhere"
+msgstr "Elegir A en cualquier sitio"
+
+#: kdiff3.cpp:562
+msgid "Choose B Everywhere"
+msgstr "Elegir B en cualquier sitio"
+
+#: kdiff3.cpp:563
+msgid "Choose C Everywhere"
+msgstr "Elegir C en cualquier sitio"
+
+#: kdiff3.cpp:564
+msgid "Choose A for All Unsolved Conflicts"
+msgstr "Elegir A para todos los conflictos sin resolver"
+
+#: kdiff3.cpp:565
+msgid "Choose B for All Unsolved Conflicts"
+msgstr "Elegir B para todos los conflictos sin resolver"
+
+#: kdiff3.cpp:566
+msgid "Choose C for All Unsolved Conflicts"
+msgstr "Elegir C para todos los conflictos sin resolver"
+
+#: kdiff3.cpp:567
+msgid "Choose A for All Unsolved Whitespace Conflicts"
+msgstr "Elegir A para todos los conflictos de espacios en blanco sin resolver"
+
+#: kdiff3.cpp:568
+msgid "Choose B for All Unsolved Whitespace Conflicts"
+msgstr "Elegir B para todos los conflictos de espacios en blanco sin resolver"
+
+#: kdiff3.cpp:569
+msgid "Choose C for All Unsolved Whitespace Conflicts"
+msgstr "Elegir C para todos los conflictos de espacios en blanco sin resolver"
+
+#: kdiff3.cpp:570
+msgid "Automatically Solve Simple Conflicts"
+msgstr "Resolver automáticamente conflictos sencillos"
+
+#: kdiff3.cpp:571
+msgid "Set Deltas to Conflicts"
+msgstr "Establecer Deltas a conflictos"
+
+#: kdiff3.cpp:572
+msgid "Run Regular Expression Auto Merge"
+msgstr "Ejecutar expresión regular de fusión automática"
+
+#: kdiff3.cpp:573
+msgid "Automatically Solve History Conflicts"
+msgstr "Resolver automáticamente conflictos históricamente"
+
+#: kdiff3.cpp:574
+msgid "Split Diff At Selection"
+msgstr "Dividir Diff en la selección"
+
+#: kdiff3.cpp:575
+msgid "Join Selected Diffs"
+msgstr "Unir las diferencias seleccionadas"
+
+#: kdiff3.cpp:577
+msgid "Show Window A"
+msgstr "Mostar ventana A"
+
+#: kdiff3.cpp:578
+msgid "Show Window B"
+msgstr "Mostar ventana B"
+
+#: kdiff3.cpp:579
+msgid "Show Window C"
+msgstr "Mostar ventana C"
+
+#: kdiff3.cpp:580 kdiff3.cpp:591
+msgid "Focus Next Window"
+msgstr "Ir a la siguiente ventana"
+
+#: kdiff3.cpp:582
+msgid "Normal Overview"
+msgstr "Vista normal"
+
+#: kdiff3.cpp:583
+msgid "A vs. B Overview"
+msgstr "Vista A vs. B"
+
+#: kdiff3.cpp:584
+msgid "A vs. C Overview"
+msgstr "Vista A vs. C"
+
+#: kdiff3.cpp:585
+msgid "B vs. C Overview"
+msgstr "Vista B vs. C"
+
+#: kdiff3.cpp:586
+msgid "Word Wrap Diff Windows"
+msgstr "Ventanas de diferencias con ajuste de palabra"
+
+#: kdiff3.cpp:587
+msgid "Add Manual Diff Alignment"
+msgstr "Añadir alineación manual de las diferencias"
+
+#: kdiff3.cpp:588
+msgid "Clear All Manual Diff Alignments"
+msgstr "Borrar todas las alineaciones de diferencias manuales"
+
+#: kdiff3.cpp:593
+msgid "Focus Prev Window"
+msgstr "Ir a la ventana anterior"
+
+#: kdiff3.cpp:594
+msgid "Toggle Split Orientation"
+msgstr "Conmutar orientación de división"
+
+#: kdiff3.cpp:596
+msgid "Dir && Text Split Screen View"
+msgstr "Vista de la conmutación de pantalla Dir y Texto"
+
+#: kdiff3.cpp:598
+msgid "Toggle Between Dir && Text View"
+msgstr "Conmutar entre vista Dir y Texto"
+
+#: kdiff3.cpp:654 pdiff.cpp:1812
+msgid "The merge result hasn't been saved."
+msgstr "El resultado de la fusión no ha sido guardado."
+
+#: kdiff3.cpp:656
+msgid "Save && Quit"
+msgstr "Guardar y salir"
+
+#: kdiff3.cpp:657
+msgid "Quit Without Saving"
+msgstr "Salir sin guardar"
+
+#: kdiff3.cpp:665 pdiff.cpp:1823
+msgid "Saving the merge result failed."
+msgstr "Falló al guardar el resultado de la fusión."
+
+#: kdiff3.cpp:676 pdiff.cpp:1078
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort?"
+msgstr ""
+"Actualmente está haciendo una fusión de directorio. ¿Está seguro de que "
+"desea abandonar?"
+
+#: kdiff3.cpp:701
+msgid "Saving file..."
+msgstr "Guardando archivo..."
+
+#: kdiff3.cpp:718
+msgid "Saving file with a new filename..."
+msgstr "Guardando archivo con un nuevo nombre..."
+
+#: kdiff3.cpp:781
+#, fuzzy
+#| msgid "Printing completed."
+msgid "Printing not implemented."
+msgstr "Impresión completada."
+
+#: kdiff3.cpp:815
+msgid "Printing..."
+msgstr "Impriminendo..."
+
+#: kdiff3.cpp:956
+msgid "Selection"
+msgstr "Selección"
+
+#: kdiff3.cpp:982
+msgid "Printing completed."
+msgstr "Impresión completada."
+
+#: kdiff3.cpp:986
+msgid "Printing aborted."
+msgstr "Impresión cancelada."
+
+#: kdiff3.cpp:993
+msgid "Exiting..."
+msgstr "Saliendo..."
+
+#: kdiff3.cpp:1006
+msgid "Toggling toolbar..."
+msgstr "Cambiando barra de herramientas..."
+
+#: kdiff3.cpp:1027
+msgid "Toggle the statusbar..."
+msgstr "Conmutar la barra de estado..."
+
+#: smalldialogs.cpp:58
+msgid "A (Base):"
+msgstr "A (Base):"
+
+#: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99
+#: smalldialogs.cpp:142
+msgid "File..."
+msgstr "Archivo..."
+
+#: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101
+#: smalldialogs.cpp:144
+msgid "Dir..."
+msgstr "Dir..."
+
+#: smalldialogs.cpp:93
+msgid "C (Optional):"
+msgstr "C (Opcional):"
+
+#: smalldialogs.cpp:116
+msgid "Swap/Copy Names ..."
+msgstr "Intercambiar/copiar nombres..."
+
+#: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123
+#, kde-format
+msgid "Swap %1<->%2"
+msgstr "Intercambiar %1<->%2"
+
+#: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126
+#, kde-format
+msgid "Copy %1->Output"
+msgstr "Copiar %1->Salida"
+
+#: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129
+#, kde-format
+msgid "Swap %1<->Output"
+msgstr "Intercambiar %1<->Salida"
+
+#: smalldialogs.cpp:136
+msgid "Output (optional):"
+msgstr "Salida (opcional):"
+
+#: smalldialogs.cpp:168
+msgid "Configure..."
+msgstr "Configurar..."
+
+#: smalldialogs.cpp:174
+msgid "&OK"
+msgstr "&Aceptar"
+
+#: smalldialogs.cpp:362
+msgid "Search text:"
+msgstr "Buscar texto:"
+
+#: smalldialogs.cpp:369
+msgid "Case sensitive"
+msgstr "Distinción de mayúsculas"
+
+#: smalldialogs.cpp:372
+msgid "Search A"
+msgstr "Buscar A"
+
+#: smalldialogs.cpp:377
+msgid "Search B"
+msgstr "Buscar B"
+
+#: smalldialogs.cpp:382
+msgid "Search C"
+msgstr "Buscar C"
+
+#: smalldialogs.cpp:387
+msgid "Search output"
+msgstr "Buscar salida"
+
+#: smalldialogs.cpp:392
+msgid "&Search"
+msgstr "Bu&scar"
+
+#: smalldialogs.cpp:409
+msgid "Regular Expression Tester"
+msgstr "Verificar expresión regular"
+
+#: smalldialogs.cpp:414 optiondialog.cpp:936
+msgid "Auto merge regular expression:"
+msgstr "Expresión regular de fusión automática:"
+
+#: smalldialogs.cpp:422
+msgid "Example auto merge line:"
+msgstr "Ejemplo de línea de fusión automática:"
+
+#: smalldialogs.cpp:424
+msgid "To test auto merge, copy a line as used in your files."
+msgstr ""
+"Para una prueba de fusión automática compie una línea tal y como se utiliza "
+"en sus archivos."
+
+#: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494
+msgid "Match result:"
+msgstr "Resultado coincidente:"
+
+#: smalldialogs.cpp:441 optiondialog.cpp:962
+msgid "History start regular expression:"
+msgstr "Expresión regular de inicio del historial:"
+
+#: smalldialogs.cpp:449
+msgid "Example history start line (with leading comment):"
+msgstr ""
+"Ejemplo de la línea de inicio del historial (con comentarios importantes):"
+
+#: smalldialogs.cpp:451
+msgid ""
+"Copy a history start line as used in your files,\n"
+"including the leading comment."
+msgstr ""
+"Copia una línea de inicio de historial tal y como se utiliza en sus "
+"archivos,\n"
+"incluyendo los comentarios importantes."
+
+#: smalldialogs.cpp:469 optiondialog.cpp:972
+msgid "History entry start regular expression:"
+msgstr "Expresión regular de inicio de la entrada del historial:"
+
+#: smalldialogs.cpp:477
+msgid "History sort key order:"
+msgstr "Orden de la clave de ordenación del historial:"
+
+#: smalldialogs.cpp:485
+msgid "Example history entry start line (without leading comment):"
+msgstr ""
+"Ejemplo de la línea de inicio de la entrada del historial (sin comentarios "
+"importantes):"
+
+#: smalldialogs.cpp:487
+msgid ""
+"Copy a history entry start line as used in your files,\n"
+"but omit the leading comment."
+msgstr ""
+"Copia una línea de inicio de la entrada del historial tal y como se utiliza "
+"en sus archivos,\n"
+"pero omite los comentarios importantes."
+
+#: smalldialogs.cpp:501
+msgid "Sort key result:"
+msgstr "Resultado de la clave de ordenación:"
+
+#: smalldialogs.cpp:508
+msgid "OK"
+msgstr "Aceptar"
+
+#: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583
+msgid "Match success."
+msgstr "Coincidencia correcta."
+
+#: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589
+msgid "Match failed."
+msgstr "Coincidencia fallida."
+
+#: smalldialogs.cpp:574
+msgid "Opening and closing parentheses do not match in regular expression."
+msgstr ""
+"Apertura y cierre de paréntesis que no coinciden en la expresión regular."
+
+#: optiondialog.cpp:367
+msgid "Unicode, 8 bit"
+msgstr "Unicode, 8 bit"
+
+#: optiondialog.cpp:368
+msgid "Unicode"
+msgstr "Unicode"
+
+#: optiondialog.cpp:369
+msgid "Latin1"
+msgstr "Latin1"
+
+#: optiondialog.cpp:388
+msgid "Change this if non-ASCII characters are not displayed correctly."
+msgstr "Cambier esto si ningún carácter ASCII se muestra correctamente."
+
+#: optiondialog.cpp:465
+msgid "Configure"
+msgstr "Configurar"
+
+#: optiondialog.cpp:531
+msgid "Font"
+msgstr "Tipo de letra"
+
+#: optiondialog.cpp:532
+msgid "Editor & Diff Output Font"
+msgstr "Tipo de letra para el editor y salida diff"
+
+#: optiondialog.cpp:556
+msgid "Italic font for deltas"
+msgstr "Fuenta cursiva para deltas"
+
+#: optiondialog.cpp:559
+msgid ""
+"Selects the italic version of the font for differences.\n"
+"If the font doesn't support italic characters, then this does nothing."
+msgstr ""
+"Selecciona la version cursiva de la letra para las diferencias.\n"
+"Si el tipo de letra no admite caracteres cursivos, entonces esto no hace "
+"nada."
+
+#: optiondialog.cpp:568
+msgid "Color"
+msgstr "Color"
+
+#: optiondialog.cpp:569
+msgid "Colors Settings"
+msgstr "Preferencias de color"
+
+#: optiondialog.cpp:588
+msgid "Editor and Diff Views:"
+msgstr "Vistas del editor y las diferencias:"
+
+#: optiondialog.cpp:596
+msgid "Foreground color:"
+msgstr "Color de primer plano:"
+
+#: optiondialog.cpp:603
+msgid "Background color:"
+msgstr "Color de fondo:"
+
+#: optiondialog.cpp:612
+msgid "Diff background color:"
+msgstr "Color de fondo de diff:"
+
+#: optiondialog.cpp:620
+msgid "Color A:"
+msgstr "Color A:"
+
+#: optiondialog.cpp:628
+msgid "Color B:"
+msgstr "Color B:"
+
+#: optiondialog.cpp:636
+msgid "Color C:"
+msgstr "Color C:"
+
+#: optiondialog.cpp:643
+msgid "Conflict color:"
+msgstr "Color de conflicto:"
+
+#: optiondialog.cpp:651
+msgid "Current range background color:"
+msgstr "Intervalo actual de color de fondo:"
+
+#: optiondialog.cpp:659
+msgid "Current range diff background color:"
+msgstr "Intervalo actual de color de fondo de diff:"
+
+#: optiondialog.cpp:666
+msgid "Color for manually aligned difference ranges:"
+msgstr "Color para los intervalos de diferencias alineadas manualmente:"
+
+#: optiondialog.cpp:672
+msgid "Directory Comparison View:"
+msgstr "Vista de comparación de directorio:"
+
+#: optiondialog.cpp:678
+msgid "Newest file color:"
+msgstr "Color del archivo más nuevo:"
+
+#: optiondialog.cpp:682
+msgid ""
+"Changing this color will only be effective when starting the next directory "
+"comparison."
+msgstr ""
+"Cambiar este color solo será efectivo cuando inicie de nuevo la comparación "
+"de directorios."
+
+#: optiondialog.cpp:687
+msgid "Oldest file color:"
+msgstr "Color del archivo más antiguo:"
+
+#: optiondialog.cpp:695
+msgid "Middle age file color:"
+msgstr "Color de los archivos intermedios:"
+
+#: optiondialog.cpp:703
+msgid "Color for missing files:"
+msgstr "Color de los archivos que faltan:"
+
+#: optiondialog.cpp:717
+msgid "Editor"
+msgstr "Editor"
+
+#: optiondialog.cpp:718
+msgid "Editor Behavior"
+msgstr "Comportamiento del editor"
+
+#: optiondialog.cpp:732
+msgid "Tab inserts spaces"
+msgstr "El tabulador inserta espacios"
+
+#: optiondialog.cpp:735
+msgid ""
+"On: Pressing tab generates the appropriate number of spaces.\n"
+"Off: A tab character will be inserted."
+msgstr ""
+"On: Pulsando el tabulador genera el número apropiado de espacios.\n"
+"Off: Se insertará un carácter de tabulador."
+
+#: optiondialog.cpp:741
+msgid "Tab size:"
+msgstr "Tamaño del tabulador:"
+
+#: optiondialog.cpp:747
+msgid "Auto indentation"
+msgstr "Auto sangrado"
+
+#: optiondialog.cpp:750
+msgid "On: The indentation of the previous line is used for a new line.\n"
+msgstr "On: Se usará el sangrado de la línea anterior para una nueva línea.\n"
+
+#: optiondialog.cpp:754
+msgid "Auto copy selection"
+msgstr "Auto-copiar selección"
+
+#: optiondialog.cpp:757
+msgid ""
+"On: Any selection is immediately written to the clipboard.\n"
+"Off: You must explicitely copy e.g. via Ctrl-C."
+msgstr ""
+"On: Se copiará inmediátamente cualquier selección al portapapeles.\n"
+"Off: Debe copiar explícitamente p.e. vía Ctrl-C."
+
+#: optiondialog.cpp:768
+#, fuzzy
+#| msgid "&Window"
+msgid "Dos/Windows"
+msgstr "&Ventana"
+
+#: optiondialog.cpp:769
+#, fuzzy
+#| msgid "Auto Select"
+msgid "Autodetect"
+msgstr "Selección automática"
+
+#: optiondialog.cpp:772
+msgid ""
+"Sets the line endings for when an edited file is saved.\n"
+"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A"
+msgstr ""
+"Establece los finales de linea para cuando un archivo editado se guarde.\n"
+"DOS/Windows: CR+LF; Unix: LF; con CR=0D, LF=0A"
+
+#: optiondialog.cpp:784
+msgid "Diff"
+msgstr "Diff"
+
+#: optiondialog.cpp:785
+msgid "Diff Settings"
+msgstr "Preferencias de Diff"
+
+#: optiondialog.cpp:809
+msgid "Treat as white space."
+msgstr "Trata como espacios en blanco."
+
+#: optiondialog.cpp:811
+msgid "Ignore numbers"
+msgstr "Ignorar números"
+
+#: optiondialog.cpp:814
+msgid ""
+"Ignore number characters during line matching phase. (Similar to Ignore "
+"white space.)\n"
+"Might help to compare files with numeric data."
+msgstr ""
+"Ignorar caracteres numéricos durante la fase combinación de línea. (Similar "
+"a ignorar espacios en blanco).\n"
+"Puede ayudar a comparar archivos con datos numéricos."
+
+#: optiondialog.cpp:819
+msgid "Ignore C/C++ comments"
+msgstr "Ignorar comentarios de C/C++"
+
+#: optiondialog.cpp:821
+msgid "Treat C/C++ comments like white space."
+msgstr "Trata los comentarios de C/C++ como espacios en blanco."
+
+#: optiondialog.cpp:825
+msgid "Ignore case"
+msgstr "Ignorar mayúsculas"
+
+#: optiondialog.cpp:828
+msgid "Treat case differences like white space changes. ('a'<=>'A')"
+msgstr ""
+"Tratar las diferencias de mayúsculas como cambios de espacios en blanco "
+"('a'<=>'A')"
+
+#: optiondialog.cpp:832
+msgid "Preprocessor command:"
+msgstr "Orden del preprocesador:"
+
+#: optiondialog.cpp:836
+msgid "User defined pre-processing. (See the docs for details.)"
+msgstr ""
+"Usar pre-procesamiento definido. (Ver los documentos para mas detalles)."
+
+#: optiondialog.cpp:839
+msgid "Line-matching preprocessor command:"
+msgstr "Orden de preprocesador de coincidencia de línea:"
+
+#: optiondialog.cpp:843
+msgid ""
+"This pre-processor is only used during line matching.\n"
+"(See the docs for details.)"
+msgstr ""
+"Este pre-procesador solo se usa durante la combinación de línea.\n"
+"(Ver documentos para mas detalles)."
+
+#: optiondialog.cpp:846
+msgid "Try hard (slower)"
+msgstr "Intentar mas a fondo (mas lento)"
+
+#: optiondialog.cpp:849
+msgid ""
+"Enables the --minimal option for the external diff.\n"
+"The analysis of big files will be much slower."
+msgstr ""
+"Activa la --opción mínima para el diff externo.\n"
+"El análisis de archivos grandos será mas lento."
+
+#: optiondialog.cpp:854
+msgid "Align B and C for 3 input files"
+msgstr "Alinear B y C para 3 archivos de entrada"
+
+#: optiondialog.cpp:857
+msgid ""
+"Try to align B and C when comparing or merging three input files.\n"
+"Not recommended for merging because merge might get more complicated.\n"
+"(Default is off.)"
+msgstr ""
+"Probar a alinear B y C cuando se compara o se fusiona tres archivos de "
+"entrada.\n"
+"No se recomienda cuando se fusiona porque la fusión puede ser más "
+"complicada.\n"
+"(De manera predeterminada está deshabilitada)."
+
+#: optiondialog.cpp:870
+msgid "Merge Settings"
+msgstr "Preferencias de fusión"
+
+#: optiondialog.cpp:885
+msgid "Auto advance delay (ms):"
+msgstr "Retardo auto avanzado (ms):"
+
+#: optiondialog.cpp:890
+msgid ""
+"When in Auto-Advance mode the result of the current selection is shown \n"
+"for the specified time, before jumping to the next conflict. Range: 0-2000 ms"
+msgstr ""
+"Cuando en modo auto-avanzado el resultado de la selección actual se muestran "
+"para el tiempo especificado, antes de saltar al siguiente conflicto. "
+"Intervalo: 0-2000 ms"
+
+#: optiondialog.cpp:895
+msgid "Show info dialogs"
+msgstr "Mostrar diálogos con información"
+
+#: optiondialog.cpp:897
+msgid "Show a dialog with information about the number of conflicts."
+msgstr "Mostrar un diálogo con información sobre el número de conflictos."
+
+#: optiondialog.cpp:900
+msgid "White space 2-file merge default:"
+msgstr "Fusionar espacios en blanco de dos archivos de forma predeterminada:"
+
+#: optiondialog.cpp:904 optiondialog.cpp:917
+msgid "Manual Choice"
+msgstr "Elección manual"
+
+#: optiondialog.cpp:908 optiondialog.cpp:922
+msgid ""
+"Allow the merge algorithm to automatically select an input for white-space-"
+"only changes."
+msgstr ""
+"Permitir el algoritmo de fusión para seleccionar automáticamente una entrada "
+"para solo los cambios de espacios en blanco."
+
+#: optiondialog.cpp:913
+msgid "White space 3-file merge default:"
+msgstr "Fusionar espacios en blanco de tres archivos de forma predeterminada:"
+
+#: optiondialog.cpp:927
+msgid "Automatic Merge Regular Expression"
+msgstr "Expresión regular de fusión automática"
+
+#: optiondialog.cpp:940
+msgid ""
+"Regular expression for lines where KDiff3 should automatically choose one "
+"source.\n"
+"When a line with a conflict matches the regular expression then\n"
+"- if available - C, otherwise B will be chosen."
+msgstr ""
+"Expresión regular para las líneas en las que KDiff3 debería seleccionar un "
+"tipo de letra de forma automática.\n"
+"Cuando una línea con un conflicto coincide con la expresión regular se "
+"elegirá\n"
+"- si está disponible - C, sino B."
+
+#: optiondialog.cpp:946
+msgid "Run regular expression auto merge on merge start"
+msgstr ""
+"Ejecutar la expresión regular de fusión automática al iniciar la fusión"
+
+#: optiondialog.cpp:948
+msgid ""
+"Run the merge for auto merge regular expressions\n"
+"immediately when a merge starts.\n"
+msgstr ""
+"Ejecuta la fusión para las expresiones regulares de fusión automática\n"
+"de forma inmediata cuando se inicia la fusión.\n"
+
+#: optiondialog.cpp:953
+msgid "Version Control History Merging"
+msgstr "Fusionado del historial de control de versiones"
+
+#: optiondialog.cpp:966
+msgid ""
+"Regular expression for the start of the version control history entry.\n"
+"Usually this line contains the \"$Log$\" keyword.\n"
+"Default value: \".*\\$Log.*\\$.*\""
+msgstr ""
+"Expresión regular para el inicio de la entrada del historial del control de "
+"versión.\n"
+"Esta línea suele contener la palabra clave «$Log$».\n"
+"El valor predeterminado es: «.*\\$Log.*\\$.*»"
+
+#: optiondialog.cpp:984
+msgid ""
+"A version control history entry consists of several lines.\n"
+"Specify the regular expression to detect the first line (without the leading "
+"comment).\n"
+"Use parentheses to group the keys you want to use for sorting.\n"
+"If left empty, then KDiff3 assumes that empty lines separate history "
+"entries.\n"
+"See the documentation for details."
+msgstr ""
+"Una entrada del historial de control de versión está formada por varias "
+"líneas.\n"
+"Especifique la expresión regular utilizada para detectar la primera línea "
+"(sin el comentario inicial).\n"
+"Utilice paréntesis para agrupar las claves de ordenación que desee "
+"utilizar.\n"
+"Si lo deja vacío, KDiff3 supondrá que las líneas vacías separan las entradas "
+"del historial.\n"
+"Consulte la documentación para obtener más detalles."
+
+#: optiondialog.cpp:992
+msgid "History merge sorting"
+msgstr "Ordenación de fusión del historial"
+
+#: optiondialog.cpp:994
+msgid "Sort version control history by a key."
+msgstr "Ordenar el historial del control de versiones con una clave."
+
+#: optiondialog.cpp:1004
+msgid "History entry start sort key order:"
+msgstr ""
+"Orden de la clave de ordenación del inicio de la entrada del historial:"
+
+#: optiondialog.cpp:1008
+msgid ""
+"Each pair of parentheses used in the regular expression for the history "
+"start entry\n"
+"groups a key that can be used for sorting.\n"
+"Specify the list of keys (that are numbered in order of occurrence\n"
+"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n"
+"If left empty, then no sorting will be done.\n"
+"See the documentation for details."
+msgstr ""
+"Cada paréntesis utilizado en la expresión regular para la entrada de inicio "
+"del historial\n"
+"agrupa una clave que podrá utilizarse para la ordenación.\n"
+"Especifique la lista de claves (están numeradas por orden de aparición\n"
+"comenzando en 1) utilizando «,» como separador (p.ej. «4,5,6,1,2,3,7»).\n"
+"Si se deja vacío, no se realizará ordenación.\n"
+"Consulte la documentación para obtener más detalles."
+
+#: optiondialog.cpp:1019
+msgid "Merge version control history on merge start"
+msgstr "Fusionar el historial de control de versiones al iniciar la fusión"
+
+#: optiondialog.cpp:1021
+msgid "Run version control history automerge on merge start."
+msgstr ""
+"Ejecuta la fusión automática del historial del control de versiones al "
+"iniciar el fusionado."
+
+#: optiondialog.cpp:1025
+msgid "Max number of history entries:"
+msgstr "Número máximo de entradas en el historial:"
+
+#: optiondialog.cpp:1028
+msgid "Cut off after specified number. Use -1 for infinite number of entries."
+msgstr ""
+"Cortar después del número especificado. Utilice -1 para un número ilimitado "
+"de entradas."
+
+#: optiondialog.cpp:1032
+msgid "Test your regular expressions"
+msgstr "Verificar sus expresiones regulares"
+
+#: optiondialog.cpp:1037
+msgid "Irrelevant merge command:"
+msgstr "Orden de fusión irrelevante:"
+
+#: optiondialog.cpp:1041
+msgid ""
+"If specified this script is run after automerge\n"
+"when no other relevant changes were detected.\n"
+"Called with the parameters: filename1 filename2 filename3"
+msgstr ""
+"Si se especifica, este script se ejecutará después de la fusión automática\n"
+"cuando no se hayan detectado otros cambios pertinentes.\n"
+"Se llama con los parámetros: nombrearchivo1 nombrearchivo2 nombrearchivo3"
+
+#: optiondialog.cpp:1047
+msgid "Auto save and quit on merge without conflicts"
+msgstr "Guardar automáticamente y salir al fusionar sin conflictos"
+
+#: optiondialog.cpp:1050
+msgid ""
+"If KDiff3 was started for a file-merge from the command line and all\n"
+"conflicts are solvable without user interaction then automatically save and "
+"quit.\n"
+"(Similar to command line option \"--auto\".)"
+msgstr ""
+"Cuando KDiff3 se inicia para fusionar archivos desde la línea de órdenes y "
+"todos los\n"
+"conflictos pueden resolverse sin intervención del usuario se guardarán "
+"automáticamente y se saldrá.\n"
+"(Similar a la opción «--auto» de la línea de órdenes)."
+
+#: optiondialog.cpp:1061 optiondialog.cpp:1062
+msgid "Directory"
+msgstr "Carpeta"
+
+#: optiondialog.cpp:1075
+msgid "Recursive directories"
+msgstr "Introducirse en los directorios"
+
+#: optiondialog.cpp:1077
+msgid "Whether to analyze subdirectories or not."
+msgstr "Analizar los subdirectorios o no."
+
+#: optiondialog.cpp:1079
+msgid "File pattern(s):"
+msgstr "Patron(es) de archivo(s):"
+
+#: optiondialog.cpp:1084
+msgid ""
+"Pattern(s) of files to be analyzed. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Patron(es) de archivos a analizar.\n"
+"Comodines:  '*' y '?'\n"
+"Se pueden especificar muchos patrones usando el separador: ';'"
+
+#: optiondialog.cpp:1090
+msgid "File-anti-pattern(s):"
+msgstr "Patron(es) anti-archivo(s):"
+
+#: optiondialog.cpp:1095
+msgid ""
+"Pattern(s) of files to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Patron(es) de archivos a excluir del análisis.\n"
+"Comodines:  '*' y '?'\n"
+"Se pueden especificar muchos patrones usando el separador: ';'"
+
+#: optiondialog.cpp:1101
+msgid "Dir-anti-pattern(s):"
+msgstr "Patron(es) anti-directorio(s):"
+
+#: optiondialog.cpp:1106
+msgid ""
+"Pattern(s) of directories to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Patron(es) de directorios a excluir del análisis.\n"
+"Comodines:  '*' y '?'\n"
+"Se pueden especificar muchos patrones usando el separador: ';'"
+
+#: optiondialog.cpp:1112
+msgid "Use .cvsignore"
+msgstr "Usar .cvsignore"
+
+#: optiondialog.cpp:1115
+msgid ""
+"Extends the antipattern to anything that would be ignored by CVS.\n"
+"Via local \".cvsignore\" files this can be directory specific."
+msgstr ""
+"Extiende el antipatrón para todo lo que sería ignorado por CVS.\n"
+"Esto puede ser especificado por directorios vía archivos locales «."
+"cvsignore»."
+
+#: optiondialog.cpp:1120
+msgid "Find hidden files and directories"
+msgstr "Buscar archivos y directorios ocultos"
+
+#: optiondialog.cpp:1123
+msgid "Finds files and directories with the hidden attribute."
+msgstr "Busca archivos de directorios con el atributo de oculto."
+
+#: optiondialog.cpp:1125
+msgid "Finds files and directories starting with '.'."
+msgstr "Busca archivos y directorios que comiencen por '.'."
+
+#: optiondialog.cpp:1129
+msgid "Follow file links"
+msgstr "Seguir enlaces de archivos"
+
+#: optiondialog.cpp:1132
+msgid ""
+"On: Compare the file the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+"On: Comparar el archivo que al que apunta el enlace.\n"
+"Off: Comparar los enlaces."
+
+#: optiondialog.cpp:1137
+msgid "Follow directory links"
+msgstr "Seguir enlaces de directorios"
+
+#: optiondialog.cpp:1140
+msgid ""
+"On: Compare the directory the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+"On: Comparar el directorio al que apunta el enlace.\n"
+"Off: Comparar los enlaces."
+
+#: optiondialog.cpp:1156
+msgid "Case sensitive filename comparison"
+msgstr "Comparación de nombres de archivo sensible a mayúsculas y minúsculas"
+
+#: optiondialog.cpp:1159
+msgid ""
+"The directory comparison will compare files or directories when their names "
+"match.\n"
+"Set this option if the case of the names must match. (Default for Windows is "
+"off, otherwise on.)"
+msgstr ""
+"La comparación de directorios comparará archivos o directorios cuando sus "
+"nombre coincidan.\n"
+"Active esta opción si deben compararse los nombres teniendo en cuenta "
+"mayúsculas y minúsculas (para Windows el valor predeterminado es "
+"desactivado, en otro caso, estará activado)"
+
+#: optiondialog.cpp:1163
+msgid "File Comparison Mode"
+msgstr "Modo de comparación de archivos"
+
+#: optiondialog.cpp:1169
+msgid "Binary comparison"
+msgstr "Comparación binaria"
+
+#: optiondialog.cpp:1170
+msgid "Binary comparison of each file. (Default)"
+msgstr "Comparación binaria de cada archivo (predeterminado)"
+
+#: optiondialog.cpp:1173
+msgid "Full analysis"
+msgstr "Análisis completo"
+
+#: optiondialog.cpp:1174
+msgid ""
+"Do a full analysis and show statistics information in extra columns.\n"
+"(Slower than a binary comparison, much slower for binary files.)"
+msgstr ""
+"Hacer un análisis completo y mostrar información de las estadísticas en "
+"columnas extras.\n"
+"(Mas lento que una comparación binara, mucho mas lento para archivos "
+"binarios)."
+
+#: optiondialog.cpp:1178
+msgid "Trust the size and modification date (unsafe)"
+msgstr "Validar el tamaño y la fecha de modificación (inseguro)"
+
+#: optiondialog.cpp:1179
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"Files with equal contents but different modification dates will appear as "
+"different.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"Suponer que los archivos son iguales si la fecha de modificación y la "
+"longitud de los archivosson iguales.\n"
+"Los archivos con el mismo contenido y diferentes fechas de modificación se "
+"considerarán diferentes.\n"
+"Útil para directorios grandes o redes lentas."
+
+#: optiondialog.cpp:1184
+msgid ""
+"Trust the size and date, but use binary comparison if date does not match "
+"(unsafe)"
+msgstr ""
+"Validar el tamaño y la fecha, pero utilizar comparación binaria si la fecha "
+"no coincide (inseguro)"
+
+#: optiondialog.cpp:1185
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"If the dates are not equal but the sizes are, use binary comparison.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"Suponer que los archivos son iguales si la fecha de modificación y la "
+"longitud de los archivos son iguales.\n"
+"Si la fecha es diferente pero los tamaños son iguales, se utiliza la "
+"comparación binaria.\n"
+"Útil para carpetas grandes o redes lentas."
+
+#: optiondialog.cpp:1190
+msgid "Trust the size (unsafe)"
+msgstr "Validar el tamaño (inseguro)"
+
+#: optiondialog.cpp:1191
+msgid ""
+"Assume that files are equal if their file lengths are equal.\n"
+"Useful for big directories or slow networks when the date is modified during "
+"download."
+msgstr ""
+"Suponer que los archivos son iguales sus longitudes son iguales.\n"
+"Útil para directorios grandes y redes lentas cuando la fecha se modifica "
+"durante la descarga."
+
+#: optiondialog.cpp:1199
+msgid "Synchronize directories"
+msgstr "Sincronizar directorios"
+
+#: optiondialog.cpp:1202
+msgid ""
+"Offers to store files in both directories so that\n"
+"both directories are the same afterwards.\n"
+"Works only when comparing two directories without specifying a destination."
+msgstr ""
+"Ofrece almacenar los archivos en ambos directorios para que\n"
+"ambios directorios sean después el mismo.\n"
+"Solo funciona cuando se compara dos directorios sin especificar un destino."
+
+#: optiondialog.cpp:1208
+msgid "White space differences considered equal"
+msgstr "Las diferencias de espacios en blanco se consideran igual"
+
+#: optiondialog.cpp:1211
+msgid ""
+"If files differ only by white space consider them equal.\n"
+"This is only active when full analysis is chosen."
+msgstr ""
+"Si el archivo se diferencia sólo por espacios en blanco, considerarlo "
+"igual.\n"
+"Esto sólamente está activo cuando se elije análisis completo."
+
+#: optiondialog.cpp:1217
+msgid "Copy newer instead of merging (unsafe)"
+msgstr "Copiar el mas nuevo en vez de fusionar (inseguro)"
+
+#: optiondialog.cpp:1220
+msgid ""
+"Don't look inside, just take the newer file.\n"
+"(Use this only if you know what you are doing!)\n"
+"Only effective when comparing two directories."
+msgstr ""
+"No mirar dentro, sólo obtener el archivo mas nuevo.\n"
+"(¡Utilice esto sólo si sabe qué está haciendo!)\n"
+"Sólo es efectivo cuando se compara dos directorios."
+
+#: optiondialog.cpp:1225
+msgid "Backup files (.orig)"
+msgstr "Archivos de copias de respaldo (.orig)"
+
+#: optiondialog.cpp:1228
+msgid ""
+"If a file would be saved over an old file, then the old file\n"
+"will be renamed with a '.orig' extension instead of being deleted."
+msgstr ""
+"Cuando un archivo se graba sobre otro mas antiguo, el archivo antiguo\n"
+"se renombrará con extensión '.orig' en vez de ser borrado."
+
+#: optiondialog.cpp:1301 optiondialog.cpp:1302
+msgid "Regional Settings"
+msgstr "Preferencias regionales"
+
+#: optiondialog.cpp:1402
+msgid "Language (restart required)"
+msgstr "Idioma (requiere reiniciar)"
+
+#: optiondialog.cpp:1445
+msgid ""
+"Choose the language of the GUI strings or \"Auto\".\n"
+"For a change of language to take place, quit and restart KDiff3."
+msgstr ""
+"Elija el idioma para las cadenas de la interfaz o «Auto».\n"
+"Para que ocurra el cambio de lenguaje, salga y reinicie KDiff3."
+
+#: optiondialog.cpp:1463
+msgid "Use the same encoding for everything:"
+msgstr "Usar la misma codificación para todo:"
+
+#: optiondialog.cpp:1466
+msgid ""
+"Enable this allows to change all encodings by changing the first only.\n"
+"Disable this if different individual settings are needed."
+msgstr ""
+"Activar esto permite cambiar todas las codificaciónes cambiando solo la "
+"primera.\n"
+"Desactivar esto si se necesitan preferencias individuales diferentes."
+
+#: optiondialog.cpp:1471
+msgid "Note: Local Encoding is "
+msgstr "Nota: Codificación local es "
+
+#: optiondialog.cpp:1475
+msgid "File Encoding for A:"
+msgstr "Codificación de archivo para A:"
+
+#: optiondialog.cpp:1481
+msgid ""
+"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n"
+"If the file is not Unicode then the selected encoding will be used as "
+"fallback.\n"
+"(Unicode detection depends on the first bytes of a file.)"
+msgstr ""
+"Si está activada la codificación Unicode (UTF-16 ó UTF-8) se detectará.\n"
+"Sino se detecta la codificación del archivo se utilizará la codificación "
+"seleccionada como alternativa.\n"
+"(La detección Unicode depende de los primeros bytes de un archivo)."
+
+#: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503
+msgid "Auto Detect Unicode"
+msgstr "Detección automática de Unicode"
+
+#: optiondialog.cpp:1490
+msgid "File Encoding for B:"
+msgstr "Codificación de archivo para B:"
+
+#: optiondialog.cpp:1499
+msgid "File Encoding for C:"
+msgstr "Codificación de archivo para C:"
+
+#: optiondialog.cpp:1508
+msgid "File Encoding for Merge Output and Saving:"
+msgstr "Codificación de archivo para la salida de la fusión y guardar:"
+
+#: optiondialog.cpp:1512
+msgid "Auto Select"
+msgstr "Selección automática"
+
+#: optiondialog.cpp:1515
+msgid ""
+"If enabled then the encoding from the input files is used.\n"
+"In ambiguous cases a dialog will ask the user to choose the encoding for "
+"saving."
+msgstr ""
+"Si está activada se utilizará la codificación de los archivos de entrada.\n"
+"En los casos dudosos un diálogo pedirá al usuario que elija la codificación "
+"para el guardado."
+
+#: optiondialog.cpp:1519
+msgid "File Encoding for Preprocessor Files:"
+msgstr "Codificación de archivo para los archivos del preprocesador:"
+
+#: optiondialog.cpp:1530
+msgid "Right To Left Language"
+msgstr "Lenguaje de derecha a izquierda"
+
+#: optiondialog.cpp:1533
+msgid ""
+"Some languages are read from right to left.\n"
+"This setting will change the viewer and editor accordingly."
+msgstr ""
+"Algunos lenguajes se leen de derecha a izquierda.\n"
+"Esta configuración cambiará el visor y el editor adaptándolo."
+
+#: optiondialog.cpp:1548
+msgid "Integration"
+msgstr "Integración"
+
+#: optiondialog.cpp:1549
+msgid "Integration Settings"
+msgstr "Preferencias de integración"
+
+#: optiondialog.cpp:1563
+msgid "Command line options to ignore:"
+msgstr "Opciones de la línea de órdenes que se ignorarán:"
+
+#: optiondialog.cpp:1568
+msgid ""
+"List of command line options that should be ignored when KDiff3 is used by "
+"other tools.\n"
+"Several values can be specified if separated via ';'\n"
+"This will suppress the \"Unknown option\" error."
+msgstr ""
+"Lista de las opciones de la línea de órdenes que se ignorarán cuando KDiff3 "
+"se utiliza con otras herramientas.\n"
+"Se pueden especificar varios valores separados por «;»\n"
+"Eliminará el error «Error desconocido»."
+
+#: optiondialog.cpp:1575
+msgid "Quit also via Escape key"
+msgstr "Salir también con la tecla «Esc»"
+
+#: optiondialog.cpp:1578
+msgid ""
+"Fast method to exit.\n"
+"For those who are used to using the Escape key."
+msgstr ""
+"Método rápido para salir.\n"
+"Para aquellos que usan la tecla «Esc»."
+
+#: optiondialog.cpp:1583
+msgid "Integrate with ClearCase"
+msgstr "Integrar con ClearCase"
+
+#: optiondialog.cpp:1586
+msgid ""
+"Integrate with Rational ClearCase from IBM.\n"
+"Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n"
+"(Only enabled when ClearCase \"bin\" directory is in the path.)"
+msgstr ""
+"Integra con Racional ClearCase de IBM.\n"
+"Modifica el archivo «map» en el subdirectorio «lib/mgrs» de ClearCase\n"
+"(Solo está activado cuando la carpetaa «bin» de ClearCase se encuentra en la "
+"ruta)."
+
+#: optiondialog.cpp:1592
+msgid "Remove ClearCase Integration"
+msgstr "Eliminar integración ClearCase"
+
+#: optiondialog.cpp:1595
+msgid ""
+"Restore the old \"map\" file from before doing the ClearCase integration."
+msgstr "Restaura el archivo «map» anterior a la integración ClearCase."
+
+#: optiondialog.cpp:1680
+msgid "Incompatible Font"
+msgstr "Tipo de letra incompatible"
+
+#: optiondialog.cpp:1681
+msgid "Continue at Own Risk"
+msgstr "Continuar bajo nuestro riesgo"
+
+#: optiondialog.cpp:1682
+msgid "Select Another Font"
+msgstr "Seleccionar otro tipo de letra"
+
+#: optiondialog.cpp:1717
+msgid "This resets all options. Not only those of the current topic."
+msgstr "Esto reestablece todas las opciones. No solo las de tema actual."
+
+#: pdiff.cpp:260
+msgid "PreprocessorCmd: "
+msgstr "Orden del preprocesador: "
+
+#: pdiff.cpp:265
+msgid "The following option(s) you selected might change data:\n"
+msgstr ""
+"La(s) siguiente(s) opcion(es) que ha seleccionado pueden cambiar datos:\n"
+
+#: pdiff.cpp:266
+msgid ""
+"\n"
+"Most likely this is not wanted during a merge.\n"
+"Do you want to disable these settings or continue with these settings active?"
+msgstr ""
+"\n"
+"Normalmente esto no es deseado durante una fusión.\n"
+"¿Desea desactivar estas preferencias o continuar con estas preferencias "
+"desactivadas?"
+
+#: pdiff.cpp:268
+msgid "Option Unsafe for Merging"
+msgstr "Opción insegura para la fusión"
+
+#: pdiff.cpp:269
+msgid "Use These Options During Merge"
+msgstr "Utilizar estas opciones durante la fusión"
+
+#: pdiff.cpp:270
+msgid "Disable Unsafe Options"
+msgstr "Desactivar opciones inseguras"
+
+#: pdiff.cpp:300
+msgid "Loading A"
+msgstr "Cargando A"
+
+#: pdiff.cpp:304
+msgid "Loading B"
+msgstr "Cargando B"
+
+#: pdiff.cpp:321 pdiff.cpp:347
+msgid "Diff: A <-> B"
+msgstr "Dif: A <-> B"
+
+#: pdiff.cpp:327 pdiff.cpp:372
+msgid "Linediff: A <-> B"
+msgstr "Lineadiff: A <-> B"
+
+#: pdiff.cpp:338
+msgid "Loading C"
+msgstr "Cargando C"
+
+#: pdiff.cpp:350
+msgid "Diff: B <-> C"
+msgstr "Dif: B <-> C"
+
+#: pdiff.cpp:353
+msgid "Diff: A <-> C"
+msgstr "Dif: A <-> C"
+
+#: pdiff.cpp:375
+msgid "Linediff: B <-> C"
+msgstr "Lineadiff: B <-> C"
+
+#: pdiff.cpp:378
+msgid "Linediff: A <-> C"
+msgstr "Lineadiff: A <-> C"
+
+#: pdiff.cpp:534
+msgid "All input files contain the same text, but are not binary equal."
+msgstr ""
+"Todos los archivos de entrada contienen el mismo texto, pero no son "
+"binariamente iguales."
+
+#: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541
+#, kde-format
+msgid "Files %1 and %2 have equal text, but are not binary equal. \n"
+msgstr ""
+"Los archivos %1 y %2 tienen el mismo texto, pero no son binariamente "
+"iguales. \n"
+
+#: pdiff.cpp:551
+msgid ""
+"Some inputfiles don't seem to be pure textfiles.\n"
+"Note that the KDiff3-merge was not meant for binary data.\n"
+"Continue at your own risk."
+msgstr ""
+"Algunos archivos de entrada no parecen ser archivos de texto puro.\n"
+"Tenga en cuenta que la fusión de KDiff3 no se creó para datos binarios.\n"
+"Continúe bajo su propia cuenta."
+
+#: pdiff.cpp:566
+#, kde-format
+msgid ""
+"Some input characters could not be converted to valid unicode.\n"
+"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n"
+"Don't save the result if unsure. Continue at your own risk.\n"
+"Affected input files are in %1."
+msgstr ""
+
+#: pdiff.cpp:1080
+msgid "Abort"
+msgstr "Abandonar"
+
+#: pdiff.cpp:1087 pdiff.cpp:1175
+msgid "Opening files..."
+msgstr "Abriendo archivos..."
+
+#: pdiff.cpp:1152 pdiff.cpp:1223
+msgid "File open error"
+msgstr "Error al abrir el archivo"
+
+#: pdiff.cpp:1255
+msgid "Cutting selection..."
+msgstr "Cortando selección..."
+
+#: pdiff.cpp:1276
+msgid "Copying selection to clipboard..."
+msgstr "Copiando la selección al portapapeles..."
+
+#: pdiff.cpp:1292
+msgid "Inserting clipboard contents..."
+msgstr "Insertando el contenido del portapapeles..."
+
+#: pdiff.cpp:1814
+msgid "Save && Continue"
+msgstr "Guardar y continuar"
+
+#: pdiff.cpp:1815
+msgid "Continue Without Saving"
+msgstr "Continuar sin guardar"
+
+#: pdiff.cpp:2018
+msgid "Search complete."
+msgstr "Búsqueda completada."
+
+#: pdiff.cpp:2018
+msgid "Search Complete"
+msgstr "Búsqueda completada"
+
+#: pdiff.cpp:2252
+msgid "Nothing is selected in either diff input window."
+msgstr ""
+"No hay nada seleccionado en ninguna de las ventanas de entradas de "
+"diferencias."
+
+#: pdiff.cpp:2252
+msgid "Error while adding manual diff range"
+msgstr "Error al añadir un intervalo de diferencia manual"
+
+#: kdiff3_shell.cpp:76
+#, fuzzy
+#| msgid ""
+#| "Could not initialize the KDiff part.\n"
+#| "This usually happens due to an installation problem. Please read the "
+#| "README-file in the source package for details."
+msgid ""
+"Could not initialize the KDiff3 part.\n"
+"This usually happens due to an installation problem. Please read the README-"
+"file in the source package for details."
+msgstr ""
+"No pudo encontrar la parte de KDiff.\n"
+"Esto normalmente ocurre debido a un problema de instalación. Lea el archivo "
+"README en el paquete fuente para obtener más detalles."
+
+#: rc.cpp:1
+msgctxt "NAME OF TRANSLATORS"
+msgid "Your names"
+msgstr "Israel García García,Santiago Fernández Sancho"
+
+#: rc.cpp:2
+msgctxt "EMAIL OF TRANSLATORS"
+msgid "Your emails"
+msgstr "israelgarcia86@gmail.com,santi@kde-es.org"
+
+#. i18n: file: kdiff3_part.rc:4
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:5
+msgid "&KDiff3"
+msgstr "&KDiff3"
+
+#. i18n: file: kdiff3_part.rc:13
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:8
+msgid "Configure KDiff3"
+msgstr "Configurar KDiff3"
+
+#. i18n: file: kdiff3_part.rc:16
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:11
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#. i18n: file: kdiff3_shell.rc:106
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:38
+msgid "Main Toolbar"
+msgstr "Barra de herramientas principal"
+
+#~ msgid "Directory Merge"
+#~ msgstr "Fusión de directorio"
diff --git a/po/es/kdiff3fileitemactionplugin.po b/po/es/kdiff3fileitemactionplugin.po
new file mode 100644 (file)
index 0000000..363a62b
--- /dev/null
@@ -0,0 +1,89 @@
+# Copyright (C) YEAR This_file_is_part_of_KDE
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Eloy Cuadra <ecuadra@eloihr.net>, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-05-09 18:51+0200\n"
+"Last-Translator: Eloy Cuadra <ecuadra@eloihr.net>\n"
+"Language-Team: Spanish <kde-l10n-es@kde.org>\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.2\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: kdiff3fileitemaction.cpp:94
+msgid "KDiff3 ..."
+msgstr "KDiff3 ..."
+
+#: kdiff3fileitemaction.cpp:125
+#, kde-format
+msgid "Compare with %1"
+msgstr "Comparar con %1"
+
+#: kdiff3fileitemaction.cpp:131
+#, kde-format
+msgid "Merge with %1"
+msgstr "Fusionar con %1"
+
+#: kdiff3fileitemaction.cpp:137
+#, kde-format
+msgid "Save '%1' for later"
+msgstr "Guardar «%1» para más tarde"
+
+#: kdiff3fileitemaction.cpp:143
+msgid "3-way merge with base"
+msgstr ""
+
+#: kdiff3fileitemaction.cpp:150
+msgid "Compare with ..."
+msgstr "Comparar con..."
+
+#: kdiff3fileitemaction.cpp:162
+msgid "Clear list"
+msgstr "Borrar lista"
+
+#: kdiff3fileitemaction.cpp:170
+msgid "Compare"
+msgstr "Comparar"
+
+#: kdiff3fileitemaction.cpp:176
+msgid "3 way comparison"
+msgstr ""
+
+#: kdiff3fileitemaction.cpp:180
+msgid "About KDiff3 menu plugin ..."
+msgstr "Acerca del complemento de menú de KDiff3..."
+
+#: kdiff3fileitemaction.cpp:284
+msgid ""
+"KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+"Complemento de acciones de elementos de archivo de KDiff3: Copyright © 2011 "
+"Joachim Eibl\n"
+"Página web de KDiff3: http://kdiff3.sourceforge.net\n"
+"\n"
+
+#: kdiff3fileitemaction.cpp:286
+msgid ""
+"Using the contextmenu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else \"Save\" the first file for later. It "
+"will appear in the \"Compare With ...\" submenu. Then use \"Compare With\" "
+"on second file.\n"
+"For a 3-way merge first \"Save\" the base file, then the branch to merge and "
+"choose \"3-way merge with base\" on the other branch which will be used as "
+"destination.\n"
+"Same also applies to directory comparison and merge."
+msgstr ""
+
+#: kdiff3fileitemaction.cpp:294
+msgid "About KDiff3 File Item Action Plugin"
+msgstr ""
diff --git a/po/es/kdiff3plugin.po b/po/es/kdiff3plugin.po
new file mode 100644 (file)
index 0000000..f66cc07
--- /dev/null
@@ -0,0 +1,101 @@
+# translation of kdiff3plugin.po to Spanish
+# Copyright (C) YEAR This_file_is_part_of_KDE
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Enrique Matias Sanchez (Quique) <cronopios@gmail.com>, 2008.
+# Israel Garcia Garcia <israelgarcia86@gmail.com>, 2010.
+# Eloy Cuadra <ecuadra@eloihr.net>, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3plugin\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-05-09 18:49+0200\n"
+"Last-Translator: Eloy Cuadra <ecuadra@eloihr.net>\n"
+"Language-Team: Spanish <kde-l10n-es@kde.org>\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.2\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: kdiff3plugin.cpp:107
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#: kdiff3plugin.cpp:114
+#, kde-format
+msgid "Compare with %1"
+msgstr "Comparar con %1"
+
+#: kdiff3plugin.cpp:120
+#, kde-format
+msgid "Merge with %1"
+msgstr "Fusionar con %1"
+
+#: kdiff3plugin.cpp:126
+#, kde-format
+msgid "Save '%1' for later"
+msgstr "Guardar «%1» para más tarde"
+
+#: kdiff3plugin.cpp:132
+msgid "3-way merge with base"
+msgstr "Fusión de 3 vías con la base"
+
+#: kdiff3plugin.cpp:139
+msgid "Compare with ..."
+msgstr "Comparar con..."
+
+#: kdiff3plugin.cpp:149
+msgid "Clear list"
+msgstr "Limpiar la lista"
+
+#: kdiff3plugin.cpp:157
+msgid "Compare"
+msgstr "Comparar"
+
+#: kdiff3plugin.cpp:163
+msgid "3 way comparison"
+msgstr "Comparación de 3 vías"
+
+#: kdiff3plugin.cpp:167
+msgid "About KDiff3 menu plugin ..."
+msgstr "Acerca del complemento de menú de KDiff3..."
+
+#: kdiff3plugin.cpp:269
+msgid ""
+"KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+"Complemento de menú de KDiff3: Copyright (C) 2008 Joachim Eibl\n"
+"Página web de KDiff3: http://kdiff3.sourceforge.net\n"
+"\n"
+
+#: kdiff3plugin.cpp:271
+msgid ""
+"Using the context menu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else, \"Save\" the first file for later, and "
+"it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With"
+"\" on the second file.\n"
+"For a 3-way merge first, \"Save\" the base file, then the branch to merge, "
+"and then \"3-way merge with base\" on the other branch which will be used as "
+"the destination.\n"
+"The same also applies to directory comparison and merge."
+msgstr ""
+"Uso de la extensión del menú contextual:\n"
+"Para una comparación simple de dos archivos seleccionados, elija "
+"«Comparar».\n"
+"Si el otro archivo estuviese en algún otro sitio, elija «Guardar» el primer "
+"archivo para más tarde. Aparecerá en submenú «Comparar con...». Entonces use "
+"«Comparar con» sobre el segundo archivo.\n"
+"Para una fusión de 3 vías, primero debe «Guardar» el archivo base, a "
+"continuación la rama a fusionar, y elegir «Fusión de 3 vías con base» sobre "
+"la otra rama, que se usará como destino.\n"
+"Lo mismo se aplica a la comparación y fusión de directorios."
+
+#: kdiff3plugin.cpp:279
+msgid "About KDiff3 Menu Plugin"
+msgstr "Acerca del complemento de menú de KDiff3"
diff --git a/po/et/CMakeLists.txt b/po/et/CMakeLists.txt
new file mode 100644 (file)
index 0000000..513e02a
--- /dev/null
@@ -0,0 +1,2 @@
+file(GLOB _po_files *.po)
+GETTEXT_PROCESS_PO_FILES(et ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
diff --git a/po/et/kdiff3.po b/po/et/kdiff3.po
new file mode 100644 (file)
index 0000000..088f37f
--- /dev/null
@@ -0,0 +1,3209 @@
+# translation of kdiff3.po to Estonian
+# Copyright (C) 2003 Free Software Foundation, Inc.
+#
+# Marek Laane <bald@starman.ee>, 2003-2009.
+# Marek Laane <bald@smail.ee>, 2009, 2010, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-06-22 19:40+0300\n"
+"Last-Translator: Marek Laane <bald@smail.ee>\n"
+"Language-Team: Estonian <kde-et@linux.ee>\n"
+"Language: et\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.2\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: kreplacements/kreplacements.h:105
+msgid "Continue"
+msgstr "Jätka"
+
+#: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158
+#: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512
+msgid "Cancel"
+msgstr "Loobu"
+
+#: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631
+msgid "Quit"
+msgstr "Välju"
+
+#: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339
+msgid "Ok"
+msgstr "OK"
+
+#: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715
+msgid "Help"
+msgstr "Abi"
+
+#: kreplacements/kreplacements.cpp:185
+msgid "Defaults"
+msgstr "Vaikeväärtused"
+
+#. i18n: file: kdiff3_shell.rc:4
+#. i18n: ectx: Menu (file)
+#: kreplacements/kreplacements.cpp:296 rc.cpp:14
+msgid "&File"
+msgstr "&Fail"
+
+#: kreplacements/kreplacements.cpp:297
+msgid "&Edit"
+msgstr "&Redigeerimine"
+
+#. i18n: file: kdiff3_shell.rc:7
+#. i18n: ectx: Menu (directory)
+#: kreplacements/kreplacements.cpp:298 rc.cpp:17
+msgid "&Directory"
+msgstr "&Kataloog"
+
+#. i18n: file: kdiff3_shell.rc:50
+#. i18n: ectx: Menu (movement)
+#: kreplacements/kreplacements.cpp:301 rc.cpp:26
+msgid "&Movement"
+msgstr "&Liikumine"
+
+#. i18n: file: kdiff3_shell.rc:61
+#. i18n: ectx: Menu (diff)
+#: kreplacements/kreplacements.cpp:302 rc.cpp:29
+msgid "D&iffview"
+msgstr "Võrdlus&evaade"
+
+#. i18n: file: kdiff3_shell.rc:73
+#. i18n: ectx: Menu (merge)
+#: kreplacements/kreplacements.cpp:303 rc.cpp:32
+msgid "&Merge"
+msgstr "Ü&hendamine"
+
+#. i18n: file: kdiff3_shell.rc:95
+#. i18n: ectx: Menu (window)
+#: kreplacements/kreplacements.cpp:304 rc.cpp:35
+msgid "&Window"
+msgstr "Ake&n"
+
+#: kreplacements/kreplacements.cpp:305
+msgid "&Settings"
+msgstr "&Seadistused"
+
+#: kreplacements/kreplacements.cpp:306
+msgid "&Help"
+msgstr "A&bi"
+
+#: kreplacements/kreplacements.cpp:353
+msgid "&About"
+msgstr "&Info"
+
+#: kreplacements/kreplacements.cpp:369
+msgid "A&uthor"
+msgstr "A&utor"
+
+#: kreplacements/kreplacements.cpp:383
+msgid "&Thanks To"
+msgstr "&Tänuavaldused"
+
+#. i18n: file: kdiff3_shell.rc:30
+#. i18n: ectx: Menu (dir_current_merge_menu)
+#: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497
+#: rc.cpp:20
+msgid "Current Item Merge Operation"
+msgstr "Käesoleva elemendi ühendamisoperatsioon"
+
+#. i18n: file: kdiff3_shell.rc:38
+#. i18n: ectx: Menu (dir_current_sync_menu)
+#: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498
+#: rc.cpp:23
+msgid "Current Item Sync Operation"
+msgstr "Käesoleva elemendi sünkroniseerimisoperatsioon"
+
+#: kreplacements/kreplacements.cpp:597
+msgid "Open"
+msgstr "Ava"
+
+#: kreplacements/kreplacements.cpp:606
+msgid "Save"
+msgstr "Salvesta"
+
+#: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720
+msgid "Save As..."
+msgstr "Salvestamine..."
+
+#: kreplacements/kreplacements.cpp:623
+msgid "Print..."
+msgstr "Trüki..."
+
+#: kreplacements/kreplacements.cpp:639
+msgid "Cut"
+msgstr "Lõika"
+
+#: kreplacements/kreplacements.cpp:647
+msgid "Copy"
+msgstr "Kopeeri"
+
+#: kreplacements/kreplacements.cpp:655
+msgid "Paste"
+msgstr "Aseta"
+
+#: kreplacements/kreplacements.cpp:663
+msgid "Select All"
+msgstr "Kustuta kõik"
+
+#: kreplacements/kreplacements.cpp:671
+msgid "Show Toolbar"
+msgstr "Tööriistariba näitamine"
+
+#: kreplacements/kreplacements.cpp:679
+msgid "Show &Status Bar"
+msgstr "&Olekuriba näitamine"
+
+#: kreplacements/kreplacements.cpp:687
+#, kde-format
+msgid "&Configure %1..."
+msgstr "%1 seadistamine..."
+
+#: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707
+msgid "About"
+msgstr "Info"
+
+#: kreplacements/kreplacements.cpp:722
+msgid "Find"
+msgstr "Otsi"
+
+#: kreplacements/kreplacements.cpp:730
+msgid "Find Next"
+msgstr "Otsi järgmine"
+
+#: kreplacements/kreplacements.cpp:750
+msgid "Select Font"
+msgstr "Fondi valik"
+
+#: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676
+msgid ""
+"You selected a variable width font.\n"
+"\n"
+"Because this program doesn't handle variable width fonts\n"
+"correctly, you might experience problems while editing.\n"
+"\n"
+"Do you want to continue or do you want to select another font."
+msgstr ""
+"Valisid muutuva laiusega fondi.\n"
+"\n"
+"Kuna see rakendus ei käitle muutuva laiusega fonte\n"
+"korrektselt, võib redigeerimisel esineda probleeme.\n"
+"\n"
+"Kas soovid jätkata või valid uue fondi?"
+
+#: kreplacements/kreplacements.cpp:792
+msgid "Incompatible font."
+msgstr "Sobimatu font."
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Continue at my own risk"
+msgstr "Jätkan oma riskil"
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Select another font"
+msgstr "Valin uue fondi"
+
+#: kreplacements/kreplacements.cpp:1134
+msgid "For more documentation, see the help-menu or the subdirectory doc."
+msgstr "Täpsemat teavet leiab abimenüüst või alamkataloogist doc."
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "KDiff3-Usage"
+msgstr "KDiff3 kasutamine"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Ignore"
+msgstr "Ignoreeri"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Exit"
+msgstr "Välju"
+
+#: diff.cpp:251
+msgid "Writing clipboard data to temp file failed."
+msgstr "Lõikepuhvri andmete kirjutamine ajutisse faili nurjus."
+
+#: diff.cpp:255
+msgid "From Clipboard"
+msgstr "Lõikepuhvrist"
+
+#: diff.cpp:471
+msgid "Expecting space after closing quotation mark."
+msgstr "Lõpetava jutumärgi järel oodati tühikut."
+
+#: diff.cpp:474
+msgid "Not matching quotation marks."
+msgstr "Jutumärgid ei sobi kokku."
+
+#: diff.cpp:496
+msgid "Unexpected quotation mark within argument."
+msgstr "Ootamatu jutumärk argumendi sees."
+
+#: diff.cpp:503
+msgid "No program specified."
+msgstr "Programmi pole määratud."
+
+#: diff.cpp:605
+#, kde-format
+msgid ""
+"Preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The preprocessing command will be disabled now."
+msgstr ""
+"Eeltöötlus ilmselt nurjus. Kontrolli käsku:\n"
+"\n"
+"  %1\n"
+"\n"
+"Praegu lülitatakse eeltöötluse käsu rakendamine välja."
+
+#: diff.cpp:653
+#, kde-format
+msgid ""
+"The line-matching-preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The line-matching-preprocessing command will be disabled now."
+msgstr ""
+"Reasobivuse eeltöötlus ilmselt nurjus. Kontrolli käsku:\n"
+"\n"
+"  %1\n"
+"\n"
+"Praegu lülitatakse reasobivuse eeltöötluse käsu rakendamine välja."
+
+#: diff.cpp:1776 diff.cpp:1790
+msgid ""
+"Data loss error:\n"
+"If it is reproducible please contact the author.\n"
+msgstr ""
+"Andmekaotuse viga:\n"
+"Kui see on korratav, võta palun ühendust autoriga.\n"
+
+#: diff.cpp:1778 diff.cpp:1792
+msgid "Severe Internal Error"
+msgstr "Tõsine seesmine viga"
+
+#: directorymergewindow.cpp:136
+msgid "Mix of links and normal files."
+msgstr "Viitade ja tavafailide segu."
+
+#: directorymergewindow.cpp:143
+msgid "Link: "
+msgstr "Viit: "
+
+#: directorymergewindow.cpp:151
+msgid "Size. "
+msgstr "Suurus. "
+
+#: directorymergewindow.cpp:164 directorymergewindow.cpp:174
+msgid "Date & Size: "
+msgstr "Kuupäev ja suurus: "
+
+#: directorymergewindow.cpp:184 directorymergewindow.cpp:190
+#, kde-format
+msgid "Creating temp copy of %1 failed."
+msgstr "%1 ajutise koopia loomine nurjus."
+
+#: directorymergewindow.cpp:201 directorymergewindow.cpp:209
+#, kde-format
+msgid "Opening %1 failed."
+msgstr "%1 avamine nurjus."
+
+#: directorymergewindow.cpp:213
+msgid "Comparing file..."
+msgstr "Faili võrdlemine..."
+
+#: directorymergewindow.cpp:223 directorymergewindow.cpp:229
+#, kde-format
+msgid "Error reading from %1"
+msgstr "Viga %1 lugemisel"
+
+#: directorymergewindow.cpp:358
+msgid "Name"
+msgstr "Nimi"
+
+#: directorymergewindow.cpp:358
+msgid "Operation"
+msgstr "Operatsioon"
+
+#: directorymergewindow.cpp:358
+msgid "Status"
+msgstr "Staatus"
+
+#: directorymergewindow.cpp:359
+msgid "Unsolved"
+msgstr "Lahendamata"
+
+#: directorymergewindow.cpp:359
+msgid "Solved"
+msgstr "Lahendatud"
+
+#: directorymergewindow.cpp:359
+msgid "Nonwhite"
+msgstr "Mitte-tühimärk"
+
+#: directorymergewindow.cpp:359
+msgid "White"
+msgstr "Tühimärk"
+
+#: directorymergewindow.cpp:388
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort "
+"the merge and rescan the directory?"
+msgstr ""
+"Sul on parajasti käsil kataloogi ühendamine. Kas tõesti ühendamine "
+"katkestada ja kataloog uuesti läbi uurida?"
+
+#: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655
+#: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823
+msgid "Warning"
+msgstr "Hoiatus"
+
+#: directorymergewindow.cpp:390 directorymergewindow.cpp:2965
+msgid "Rescan"
+msgstr "Uuri uuesti läbi"
+
+#: directorymergewindow.cpp:391 pdiff.cpp:1081
+msgid "Continue Merging"
+msgstr "Jätka ühendamist"
+
+#: directorymergewindow.cpp:548
+msgid "Opening of directories failed:"
+msgstr "Kataloogide avamine nurjus:"
+
+#: directorymergewindow.cpp:551
+#, kde-format
+msgid "Dir A \"%1\" does not exist or is not a directory.\n"
+msgstr "Kataloogi A \"%1\" ei ole olemas või ei ole see kataloog.\n"
+
+#: directorymergewindow.cpp:554
+#, kde-format
+msgid "Dir B \"%1\" does not exist or is not a directory.\n"
+msgstr "Kataloogi B \"%1\" ei ole olemas või ei ole see kataloog.\n"
+
+#: directorymergewindow.cpp:557
+#, kde-format
+msgid "Dir C \"%1\" does not exist or is not a directory.\n"
+msgstr "Kataloogi C \"%1\" ei ole olemas või ei ole see kataloog.\n"
+
+#: directorymergewindow.cpp:559
+msgid "Directory Open Error"
+msgstr "Kataloogi avamise viga"
+
+#: directorymergewindow.cpp:567
+msgid ""
+"The destination directory must not be the same as A or B when three "
+"directories are merged.\n"
+"Check again before continuing."
+msgstr ""
+"Sihtkataloog ei saa kolme kataloogi ühendamisel olla sama, mis A või B.\n"
+"Kontrolli seda asja enne jätkamist."
+
+#: directorymergewindow.cpp:569
+msgid "Parameter Warning"
+msgstr "Parameetri hoiatus"
+
+#: directorymergewindow.cpp:574
+msgid "Scanning directories..."
+msgstr "Kataloogide läbiuurimine..."
+
+#: directorymergewindow.cpp:607
+msgid "Reading Directory A"
+msgstr "Kataloogi A lugemine"
+
+#: directorymergewindow.cpp:629
+msgid "Reading Directory B"
+msgstr "Kataloogi B lugemine"
+
+#: directorymergewindow.cpp:651
+msgid "Reading Directory C"
+msgstr "Kataloogi C lugemine"
+
+#: directorymergewindow.cpp:677
+msgid "Some subdirectories were not readable in"
+msgstr "Mõned alamkataloogid ei olnud loetavad:"
+
+#: directorymergewindow.cpp:682
+msgid "Check the permissions of the subdirectories."
+msgstr "Kontrolli alamkataloogide õigusi."
+
+#: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737
+#: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233
+#: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328
+msgid "Ready."
+msgstr "Valmis."
+
+#: directorymergewindow.cpp:735
+msgid "Directory Comparison Status"
+msgstr "Kataloogi võrdlemise olek"
+
+#: directorymergewindow.cpp:736
+msgid "Number of subdirectories:"
+msgstr "Alamkataloogide arv:"
+
+#: directorymergewindow.cpp:737
+msgid "Number of equal files:"
+msgstr "Võrdsete failide arv:"
+
+#: directorymergewindow.cpp:738
+msgid "Number of different files:"
+msgstr "Erinevate failide arv:"
+
+#: directorymergewindow.cpp:741
+msgid "Number of manual merges:"
+msgstr "Käsitsiühendamiste arv:"
+
+#: directorymergewindow.cpp:912
+msgid "This affects all merge operations."
+msgstr "See mõjutab kõiki ühendamisoperatsioone."
+
+#: directorymergewindow.cpp:913
+msgid "Changing All Merge Operations"
+msgstr "Kõigi ühendamisoperatsioonide muutmine"
+
+#: directorymergewindow.cpp:1312
+msgid "Processing "
+msgstr "Töödeldakse "
+
+#: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742
+msgid "To do."
+msgstr "Veel tegemata."
+
+#: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996
+msgid "Copy A to B"
+msgstr "Kopeeri A->B"
+
+#: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997
+msgid "Copy B to A"
+msgstr "Kopeeri B->A"
+
+#: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998
+msgid "Delete A"
+msgstr "Kustuta A"
+
+#: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999
+msgid "Delete B"
+msgstr "Kustuta B"
+
+#: directorymergewindow.cpp:1814
+msgid "Delete A & B"
+msgstr "Kustuta A ja B"
+
+#: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001
+msgid "Merge to A"
+msgstr "Ühenda A-sse"
+
+#: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002
+msgid "Merge to B"
+msgstr "Ühenda B-sse"
+
+#: directorymergewindow.cpp:1817
+msgid "Merge to A & B"
+msgstr "Ühenda A-sse ja B-sse"
+
+#: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993
+msgid "Delete (if exists)"
+msgstr "Kustuta (kui on olemas)"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+#: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869
+msgid "Merge"
+msgstr "Ühenda"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+msgid "Merge (manual)"
+msgstr "Ühenda (käsitsi)"
+
+#: directorymergewindow.cpp:1824
+msgid "Error: Conflicting File Types"
+msgstr "Viga: failitüüpide vastuolu"
+
+#: directorymergewindow.cpp:1825
+msgid "Error: Changed and Deleted"
+msgstr "Viga: muudetud ja kustutatud"
+
+#: directorymergewindow.cpp:1826
+msgid "Error: Dates are equal but files are not."
+msgstr "Viga: kuupäevad on samad, aga mitte failid."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906
+msgid "This operation is currently not possible."
+msgstr "See operatsioon ei ole praegu võimalik."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174
+msgid "Operation Not Possible"
+msgstr "Operatsioon ei ole võimalik"
+
+#: directorymergewindow.cpp:1945
+msgid ""
+"This should never happen: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"If you know how to reproduce this, please contact the program author."
+msgstr ""
+"Seda ei peaks kunagi juhtuma: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"Kui sa tead, kuidas seda korrata, anna sellest teada rakenduse autorile."
+
+#: directorymergewindow.cpp:1945
+msgid "Program Error"
+msgstr "Rakenduse viga"
+
+#: directorymergewindow.cpp:1956
+msgid "An error occurred while copying.\n"
+msgstr "Kopeerimisel tekkis viga.\n"
+
+#: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025
+#: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105
+#: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123
+#: directorymergewindow.cpp:2374
+msgid "Error"
+msgstr "Viga"
+
+#: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375
+msgid "Merge Error"
+msgstr "Ühendamise viga"
+
+#: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380
+msgid "Error."
+msgstr "Viga."
+
+#: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272
+#: directorymergewindow.cpp:2312
+msgid "Done."
+msgstr "Tehtud."
+
+#: directorymergewindow.cpp:1990
+msgid "Not saved."
+msgstr "Ei salvestatud."
+
+#: directorymergewindow.cpp:2025
+msgid "Unknown merge operation. (This must never happen!)"
+msgstr "Tundmatu ühendamisoperatsioon. (Seda ei peaks kunagi ette tulema!)"
+
+#: directorymergewindow.cpp:2057
+msgid "Unknown merge operation."
+msgstr "Tundmatu ühendamisoperatsioon."
+
+#: directorymergewindow.cpp:2072
+msgid ""
+"The merge is about to begin.\n"
+"\n"
+"Choose \"Do it\" if you have read the instructions and know what you are "
+"doing.\n"
+"Choosing \"Simulate it\" will tell you what would happen.\n"
+"\n"
+"Be aware that this program still has beta status and there is NO WARRANTY "
+"whatsoever! Make backups of your vital data!"
+msgstr ""
+"Kohe algab ühendamine.\n"
+"\n"
+"Vali \"Tee seda\", kui oled lugenud juhiseid ja tead täpselt, mida ette "
+"võtad.\n"
+"Vali \"Simuleeri\", kui soovid näha, mis juhtub.\n"
+"\n"
+"Arvesta, et rakendus on endiselt arendusjärgus ja pole MINGIT GARANTIID, et "
+"üldse midagi juhtub või et kõik õigesti juhtub! Tee kindlasti tähtsatest "
+"andmetest varukoopia!"
+
+#: directorymergewindow.cpp:2077
+msgid "Starting Merge"
+msgstr "Ühendamise alustamine"
+
+#: directorymergewindow.cpp:2078
+msgid "Do It"
+msgstr "Tee ära"
+
+#: directorymergewindow.cpp:2079
+msgid "Simulate It"
+msgstr "Simuleeri"
+
+#: directorymergewindow.cpp:2105
+msgid ""
+"The highlighted item has a different type in the different directories. "
+"Select what to do."
+msgstr ""
+"Esiletõstetud element on erinevates kataloogides erineva tüübiga. Otsusta, "
+"mida teha."
+
+#: directorymergewindow.cpp:2114
+msgid ""
+"The modification dates of the file are equal but the files are not. Select "
+"what to do."
+msgstr ""
+"Failide muutmise aeg on sama, aga failid ise mitte. Otsusta, mida teha."
+
+#: directorymergewindow.cpp:2123
+msgid ""
+"The highlighted item was changed in one directory and deleted in the other. "
+"Select what to do."
+msgstr ""
+"Esiletõstetud elementi on muudetud ühes ja kustutatud teises kataloogis. "
+"Otsusta, mida teha."
+
+#: directorymergewindow.cpp:2174
+msgid ""
+"This operation is currently not possible because directory merge is "
+"currently running."
+msgstr ""
+"See operatsioon ei ole praegu võimalik, sest käib kataloogide ühendamine."
+
+#: directorymergewindow.cpp:2234
+msgid ""
+"There was an error in the last step.\n"
+"Do you want to continue with the item that caused the error or do you want "
+"to skip this item?"
+msgstr ""
+"Viimasel sammul tekkis viga.\n"
+"Kas soovid jätkata elemendiga, mis vea põhjustas, või selle vahele jätta?"
+
+#: directorymergewindow.cpp:2236
+msgid "Continue merge after an error"
+msgstr "Jätka ühendamist pärast viga"
+
+#: directorymergewindow.cpp:2237
+msgid "Continue With Last Item"
+msgstr "Jätka viimase elemendiga"
+
+#: directorymergewindow.cpp:2238
+msgid "Skip Item"
+msgstr "Jäta vahele"
+
+#: directorymergewindow.cpp:2272
+msgid "Skipped."
+msgstr "Vahele jäetud."
+
+#: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493
+msgid "In progress..."
+msgstr "Töös..."
+
+#: directorymergewindow.cpp:2327
+msgid "Merge operation complete."
+msgstr "Ühendamisoperatsioon lõpetatud."
+
+#: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330
+msgid "Merge Complete"
+msgstr "Ühendamine lõpetatud"
+
+#: directorymergewindow.cpp:2340
+msgid ""
+"Simulated merge complete: Check if you agree with the proposed operations."
+msgstr ""
+"Ühendamise simulatsioon lõpetatud: märgi, kui oled pakutavate "
+"operatsioonidega nõus."
+
+#: directorymergewindow.cpp:2374
+msgid "An error occurred. Press OK to see detailed information.\n"
+msgstr "Tekkis viga. Lähema info saamiseks klõpsa 'OK'.\n"
+
+#: directorymergewindow.cpp:2406
+#, kde-format
+msgid "Error: While deleting %1: Creating backup failed."
+msgstr "Viga %1 kustutamisel: varukoopia loomine nurjus."
+
+#: directorymergewindow.cpp:2413
+#, kde-format
+msgid "delete directory recursively( %1 )"
+msgstr "kustuta kataloog rekursiivselt( %1 )"
+
+#: directorymergewindow.cpp:2415
+#, kde-format
+msgid "delete( %1 )"
+msgstr "kustuta( %1 )"
+
+#: directorymergewindow.cpp:2430
+msgid "Error: delete dir operation failed while trying to read the directory."
+msgstr "Viga: kataloogi kustutamine nurjus juba kataloogi lugemise katsel."
+
+#: directorymergewindow.cpp:2449
+#, kde-format
+msgid "Error: rmdir( %1 ) operation failed."
+msgstr "Viga: operatsioon rmdir( %1 ) nurjus."
+
+#: directorymergewindow.cpp:2459
+msgid "Error: delete operation failed."
+msgstr "Viga: kustutamisoperatsioon nurjus."
+
+#: directorymergewindow.cpp:2485
+#, kde-format
+msgid "manual merge( %1, %2, %3 -> %4)"
+msgstr "käsitsi ühendamine( %1, %2, %3 -> %4)"
+
+#: directorymergewindow.cpp:2488
+msgid ""
+"     Note: After a manual merge the user should continue by pressing F7."
+msgstr "     Märkus: pärast käsitsi ühendamist tuleks jätkata klahviga F7."
+
+#: directorymergewindow.cpp:2513
+#, kde-format
+msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed."
+msgstr ""
+"Viga: kopeeri( %1 -> %2) nurjus, sest olemasoleva sihtkoha kustutamine "
+"nurjus."
+
+#: directorymergewindow.cpp:2522
+#, kde-format
+msgid "copyLink( %1 -> %2 )"
+msgstr "kopeeri viit( %1 -> %2)"
+
+#: directorymergewindow.cpp:2533
+msgid "Error: copyLink failed: Remote links are not yet supported."
+msgstr "Viga: viida kopeerimine nurjus, sest kaugviidad ei ole veel toetatud."
+
+#: directorymergewindow.cpp:2539
+msgid "Error: copyLink failed."
+msgstr "Viga: viida kopeerimine nurjus."
+
+#: directorymergewindow.cpp:2564
+#, kde-format
+msgid "copy( %1 -> %2 )"
+msgstr "kopeeri( %1 -> %2)"
+
+#: directorymergewindow.cpp:2590
+#, kde-format
+msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination."
+msgstr ""
+"Viga operatsioonil 'nimeta ümber( %1 -> %2)': olemasoleva sihtkoha "
+"kustutamine nurjus."
+
+#: directorymergewindow.cpp:2596
+#, kde-format
+msgid "rename( %1 -> %2 )"
+msgstr "nimeta ümber( %1 -> %2)"
+
+#: directorymergewindow.cpp:2605
+msgid "Error: Rename failed."
+msgstr "Viga: ümbernimetamine nurjus."
+
+#: directorymergewindow.cpp:2623
+#, kde-format
+msgid "Error during makeDir of %1. Cannot delete existing file."
+msgstr "Viga kataloogi %1 loomisel: olemasoleva faili kustutamine nurjus."
+
+#: directorymergewindow.cpp:2639
+#, kde-format
+msgid "makeDir( %1 )"
+msgstr "loo kataloog( %1 )"
+
+#: directorymergewindow.cpp:2649
+msgid "Error while creating directory."
+msgstr "Viga kataloogi loomisel."
+
+#: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784
+msgid "Dest"
+msgstr "Sihtkoht"
+
+#: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709
+msgid "Dir"
+msgstr "Kataloog"
+
+#: directorymergewindow.cpp:2678
+msgid "Type"
+msgstr "Tüüp"
+
+#: directorymergewindow.cpp:2678
+msgid "Size"
+msgstr "Suurus"
+
+#: directorymergewindow.cpp:2679
+msgid "Attr"
+msgstr "Atribuut"
+
+#: directorymergewindow.cpp:2679
+msgid "Last Modification"
+msgstr "Viimase muutmise aeg"
+
+#: directorymergewindow.cpp:2679
+msgid "Link-Destination"
+msgstr "Viit-sihtkoht"
+
+#: directorymergewindow.cpp:2709 difftextwindow.cpp:401
+msgid "File"
+msgstr "Fail"
+
+#: directorymergewindow.cpp:2726
+msgid "not available"
+msgstr "pole kättesaadav"
+
+#: directorymergewindow.cpp:2746
+msgid "A (Dest): "
+msgstr "A (sihtkoht): "
+
+#: directorymergewindow.cpp:2749
+msgid "A (Base): "
+msgstr "A (baas): "
+
+#: directorymergewindow.cpp:2755
+msgid "B (Dest): "
+msgstr "B (sihtkoht): "
+
+#: directorymergewindow.cpp:2763
+msgid "C (Dest): "
+msgstr "C (sihtkoht): "
+
+#: directorymergewindow.cpp:2769
+msgid "Dest: "
+msgstr "Sihtkoht: "
+
+#: directorymergewindow.cpp:2836
+msgid "Save Directory Merge State As..."
+msgstr "Kataloogi ühendamisoleku salvestamine..."
+
+#: directorymergewindow.cpp:2959
+msgid "Start/Continue Directory Merge"
+msgstr "Alusta/jätka kataloogi ühendamist"
+
+#: directorymergewindow.cpp:2960
+msgid "Run Operation for Current Item"
+msgstr "Käivita operatsioon käesoleva elemendiga"
+
+#: directorymergewindow.cpp:2961
+msgid "Compare Selected File"
+msgstr "Võrdle valitud faili"
+
+#: directorymergewindow.cpp:2962
+msgid "Merge Current File"
+msgstr "Ühenda praegune fail"
+
+#: directorymergewindow.cpp:2962
+msgid ""
+"Merge\n"
+"File"
+msgstr ""
+"Ühenda\n"
+"fail"
+
+#: directorymergewindow.cpp:2963
+msgid "Fold All Subdirs"
+msgstr "Ava kõik alamkataloogid"
+
+#: directorymergewindow.cpp:2964
+msgid "Unfold All Subdirs"
+msgstr "Sule kõik alamkataloogid"
+
+#: directorymergewindow.cpp:2968
+msgid "Choose A for All Items"
+msgstr "Vali A kõigile elementidele"
+
+#: directorymergewindow.cpp:2969
+msgid "Choose B for All Items"
+msgstr "Vali B kõigile elementidele"
+
+#: directorymergewindow.cpp:2970
+msgid "Choose C for All Items"
+msgstr "Vali C kõigile elementidele"
+
+#: directorymergewindow.cpp:2971
+msgid "Auto-Choose Operation for All Items"
+msgstr "Automaatne valik kõigile elementidele"
+
+#: directorymergewindow.cpp:2972
+msgid "No Operation for All Items"
+msgstr "Ei ühtki operatsiooni kõigile elementidele"
+
+#: directorymergewindow.cpp:2977
+msgid "Show Identical Files"
+msgstr "Näita identseid faile"
+
+#: directorymergewindow.cpp:2977
+msgid ""
+"Identical\n"
+"Files"
+msgstr ""
+"Identsed\n"
+"failid"
+
+#: directorymergewindow.cpp:2978
+msgid "Show Different Files"
+msgstr "Näita erinevaid faile"
+
+#: directorymergewindow.cpp:2979
+msgid "Show Files only in A"
+msgstr "Näita ainult A faile"
+
+#: directorymergewindow.cpp:2979
+msgid ""
+"Files\n"
+"only in A"
+msgstr ""
+"Ainult\n"
+"A failid"
+
+#: directorymergewindow.cpp:2980
+msgid "Show Files only in B"
+msgstr "Näita ainult B faile"
+
+#: directorymergewindow.cpp:2980
+msgid ""
+"Files\n"
+"only in B"
+msgstr ""
+"Ainult\n"
+"B failid"
+
+#: directorymergewindow.cpp:2981
+msgid "Show Files only in C"
+msgstr "Näita ainult C faile"
+
+#: directorymergewindow.cpp:2981
+msgid ""
+"Files\n"
+"only in C"
+msgstr ""
+"Ainult\n"
+"C failid"
+
+#: directorymergewindow.cpp:2985
+msgid "Compare Explicitly Selected Files"
+msgstr "Võrdle valitud faile"
+
+#: directorymergewindow.cpp:2986
+msgid "Merge Explicitly Selected Files"
+msgstr "Ühenda valitud failid"
+
+#: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995
+msgid "Do Nothing"
+msgstr "Ära tee midagi"
+
+#: directorymergewindow.cpp:2989
+msgid "A"
+msgstr "A"
+
+#: directorymergewindow.cpp:2990
+msgid "B"
+msgstr "B"
+
+#: directorymergewindow.cpp:2991
+msgid "C"
+msgstr "C"
+
+#: directorymergewindow.cpp:3000
+msgid "Delete A && B"
+msgstr "Kustuta A ja B"
+
+#: directorymergewindow.cpp:3003
+msgid "Merge to A && B"
+msgstr "Ühenda A-sse ja B-sse"
+
+#: main.cpp:74 main.cpp:76
+msgid "Ignored. (User defined.)"
+msgstr "Ignoreeritakse (kasutaja määratud)"
+
+#: main.cpp:162
+msgid "kdiff3"
+msgstr "kdiff3"
+
+#: main.cpp:164
+msgid "Tool for Comparison and Merge of Files and Directories"
+msgstr "Failide ja kataloogide võrdlemise ning ühendamise vahend"
+
+#: main.cpp:165
+msgid "(c) 2002-2011 Joachim Eibl"
+msgstr "(c) 2002-2011: Joachim Eibl"
+
+#: main.cpp:172 kdiff3_part.cpp:303
+msgid "Joachim Eibl"
+msgstr "Joachim Eibl"
+
+#: main.cpp:173
+msgid "Eike Sauer"
+msgstr "Eike Sauer"
+
+#: main.cpp:173
+msgid "Bugfixes, Debian package maintainer"
+msgstr "Veaparandused, Deniabi paketi hooldaja"
+
+#: main.cpp:174
+msgid "Sebastien Fricker"
+msgstr "Sebastien Fricker"
+
+#: main.cpp:174
+msgid "Windows installer"
+msgstr "Windowsi installer"
+
+#: main.cpp:175
+msgid "Stephan Binner"
+msgstr "Stephan Binner"
+
+#: main.cpp:175
+msgid "i18n-help"
+msgstr "Abi i18n juures"
+
+#: main.cpp:176
+msgid "Stefan Partheymueller"
+msgstr "Stefan Partheymueller"
+
+#: main.cpp:176
+msgid "Clipboard-patch"
+msgstr "Lõikepuhvri paik"
+
+#: main.cpp:177
+msgid "David Faure"
+msgstr "David Faure"
+
+#: main.cpp:177
+msgid "KIO-Help"
+msgstr "Abi KIO juures"
+
+#: main.cpp:178
+msgid "Bernd Gehrmann"
+msgstr "Bernd Gehrmann"
+
+#: main.cpp:178
+msgid "Class CvsIgnoreList from Cervisia"
+msgstr "Cervisia klass CvsIgnoreList"
+
+#: main.cpp:179
+msgid "Andre Woebbeking"
+msgstr "Andre Woebbeking"
+
+#: main.cpp:179
+msgid "Class StringMatcher"
+msgstr "Klass StringMatcher"
+
+#: main.cpp:180
+msgid "Michael Denio"
+msgstr "Michael Denio"
+
+#: main.cpp:180
+msgid "Directory Equality-Coloring patch"
+msgstr "Kataloogide võrdsuse värviga näitamise paik"
+
+#: main.cpp:181
+msgid "Manfred Koehler"
+msgstr "Manfred Koehler"
+
+#: main.cpp:181
+msgid "Fix for slow startup on Windows"
+msgstr "Aeglase käivitumise parandamine Windowsis"
+
+#: main.cpp:182
+msgid "Sergey Zorin"
+msgstr "Sergey Zorin"
+
+#: main.cpp:182
+msgid "Diff Ext for Windows"
+msgstr "Diff Ext Windowsile"
+
+#: main.cpp:183
+msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+
+#: main.cpp:183
+msgid "GNU-Diffutils"
+msgstr "GNU diffutils"
+
+#: main.cpp:184
+msgid "Tino Boellsterling, Timothy Mee"
+msgstr "Tino Boellsterling, Timothy Mee"
+
+#: main.cpp:184
+msgid "Intensive test, use and feedback"
+msgstr "Intensiivsed testid, kasutamine ja tagasiside"
+
+#: main.cpp:185
+msgid "Michael Schmidt"
+msgstr "Michael Schmidt"
+
+#: main.cpp:185
+msgid "Mac support"
+msgstr "Maci toetus"
+
+#: main.cpp:186
+msgid "Valentin Rusu"
+msgstr "Valentin Rusu"
+
+#: main.cpp:186 main.cpp:187
+msgid "KDE4 porting"
+msgstr "KDE4 portimine"
+
+#: main.cpp:187
+msgid "Albert Astals Cid"
+msgstr "Albert Astals Cid"
+
+#: main.cpp:188
+msgid "Silvan Scherrer"
+msgstr "Silvan Scherrer"
+
+#: main.cpp:188
+msgid "OS2 port"
+msgstr "OS2 port"
+
+#: main.cpp:190
+msgid "+ Many thanks to those who reported bugs and contributed ideas!"
+msgstr ""
+"+ palju tänu kõigile, kes andsid teada vigadest ja pakkusid välja uusi "
+"mõtteid!"
+
+#: main.cpp:196
+msgid "Merge the input."
+msgstr "Liidab sisendi."
+
+#: main.cpp:197
+msgid "Explicit base file. For compatibility with certain tools."
+msgstr "Konkreetne põhifail (ühilduvuseks teatud tööriistadega)."
+
+#: main.cpp:198
+msgid "Output file. Implies -m. E.g.: -o newfile.txt"
+msgstr "Väljundfail. Eeldab -m. Nt. -o usfail.txt"
+
+#: main.cpp:199
+msgid "Output file, again. (For compatibility with certain tools.)"
+msgstr "Taas väljundfail (ühilduvuseks teatud tööriistadega)"
+
+#: main.cpp:200
+msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)"
+msgstr "GUI puudub, kui kõik konfliktid lahenevad ise (vajalik on -o fail)"
+
+#: main.cpp:201
+msgid "Don't solve conflicts automatically. (For compatibility...)"
+msgstr "Konflikte ei lahendata automaatselt (jälle ühilduvuse nimel...)"
+
+#: main.cpp:202
+msgid "Visible name replacement for input file 1 (base)."
+msgstr "Nähtava nime asendus sisendfailile 1 (baas)."
+
+#: main.cpp:203
+msgid "Visible name replacement for input file 2."
+msgstr "Nähtava nime asendus sisendfailile 2."
+
+#: main.cpp:204
+msgid "Visible name replacement for input file 3."
+msgstr "Nähtava nime asendus sisendfailile 3."
+
+#: main.cpp:205
+msgid "Alternative visible name replacement. Supply this once for every input."
+msgstr ""
+"Nähtava nime alternatiivne asendus. See tuleb anda kord iga sisendi jaoks."
+
+#: main.cpp:206
+msgid ""
+"Override a config setting. Use once for every setting. E.g.: --cs "
+"\"AutoAdvance=1\""
+msgstr ""
+"Seadistusvõtme tühistamine. Tuleb kasutada iga võtme jaoks eraldi, nt. --cs "
+"\"AutoAdvance=1\""
+
+#: main.cpp:207
+msgid "Show list of config settings and current values."
+msgstr "Seadistuste nimekirja ja võtmete kehtivate väärtuste näitamine."
+
+#: main.cpp:208
+msgid "Use a different config file."
+msgstr "Muu seadistustefaili kasutamine."
+
+#: main.cpp:211
+msgid "file1 to open (base, if not specified via --base)"
+msgstr "avatav fail1 (põhifail, kui --base teisiti ei määra)"
+
+#: main.cpp:212
+msgid "file2 to open"
+msgstr "avatav fail2"
+
+#: main.cpp:213
+msgid "file3 to open"
+msgstr "avatav fail3"
+
+#: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976
+#: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002
+#: mergeresultwindow.cpp:1014
+#, kde-format
+msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)"
+msgstr "Lahendamata konfliktide arv: %1 (neist %2 on tühimärgierinevused)"
+
+#: mergeresultwindow.cpp:303
+msgid ""
+"The output has been modified.\n"
+"If you continue your changes will be lost."
+msgstr ""
+"Väljundit on muudetud.\n"
+"Kui jätkad, lähevad sinu muudatused kaotsi."
+
+#: mergeresultwindow.cpp:834 pdiff.cpp:532
+msgid "All input files are binary equal."
+msgstr "Kõik sisendfailid on binaarselt võrdsed."
+
+#: mergeresultwindow.cpp:836
+msgid "All input files contain the same text."
+msgstr "Kõik sisendfailid sisaldavad ühesugust teksti."
+
+#: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840
+#: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540
+#, kde-format
+msgid "Files %1 and %2 are binary equal.\n"
+msgstr "Failid %1 ja %2 on binaarselt võrdsed.\n"
+
+#: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841
+#: mergeresultwindow.cpp:843
+#, kde-format
+msgid "Files %1 and %2 have equal text.\n"
+msgstr "Failid %1 ja %2 on ühesuguse tekstiga. \n"
+
+#: mergeresultwindow.cpp:849
+msgid "Total number of conflicts: "
+msgstr "Konfliktide koguarv: "
+
+#: mergeresultwindow.cpp:850
+msgid ""
+"\n"
+"Nr of automatically solved conflicts: "
+msgstr ""
+"\n"
+"Automaatselt lahendatud konfliktide arv: "
+
+#: mergeresultwindow.cpp:851
+msgid ""
+"\n"
+"Nr of unsolved conflicts: "
+msgstr ""
+"\n"
+"Lahendamata konfliktide arv: "
+
+#: mergeresultwindow.cpp:853
+msgid "Conflicts"
+msgstr "Konfliktid"
+
+#: mergeresultwindow.cpp:1728
+msgid "<No src line>"
+msgstr "<Lähterida puudub>"
+
+#: mergeresultwindow.cpp:1736
+msgid "<Merge Conflict (Whitespace only)>"
+msgstr "<Ühendamise konflikt (ainult tühimärgid)>"
+
+#: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517
+msgid "<Merge Conflict>"
+msgstr "<Ühendamise konflikt>"
+
+#: mergeresultwindow.cpp:2725
+msgid ""
+"Not all conflicts are solved yet.\n"
+"File not saved.\n"
+msgstr ""
+"Kõik konfliktid pole veel lahendatud.\n"
+"Faili ei salvestatud.\n"
+
+#: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736
+msgid "Conflicts Left"
+msgstr "Järelejäänud konfliktid"
+
+#: mergeresultwindow.cpp:2734
+msgid ""
+"There is a line end style conflict. Please choose the line end style "
+"manually.\n"
+"File not saved.\n"
+msgstr ""
+"Tekkis realõpu stiili konflikt. Palun vali realõpu stiil käsitsi.\n"
+"Faili ei salvestatud.\n"
+
+#: mergeresultwindow.cpp:2748
+msgid ""
+"\n"
+"\n"
+"Creating backup failed. File not saved."
+msgstr ""
+"\n"
+"\n"
+"Varukoopia loomine nurjus. Faili ei salvestatud."
+
+#: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792
+msgid "File Save Error"
+msgstr "Faili salvestamise viga"
+
+#: mergeresultwindow.cpp:2792
+msgid "Error while writing."
+msgstr "Kirjutamise viga."
+
+#: mergeresultwindow.cpp:3122
+msgid "Output"
+msgstr "Väljund"
+
+#: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314
+msgid "[Modified]"
+msgstr "[Muudetud]"
+
+#: mergeresultwindow.cpp:3141
+msgid "Encoding for saving"
+msgstr "Kodeering salvestamisel"
+
+#: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737
+#: optiondialog.cpp:762
+msgid "Line end style:"
+msgstr "Realõpu stiil:"
+
+#: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767
+msgid "Unix"
+msgstr "UNIX"
+
+#: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737
+msgid "DOS"
+msgstr "DOS"
+
+#: mergeresultwindow.cpp:3229
+msgid "Conflict"
+msgstr "Konflikt"
+
+#: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263
+#: mergeresultwindow.cpp:3265
+msgid "Codec from"
+msgstr "Koodek"
+
+#: kdiff3_part.cpp:157 kdiff3_part.cpp:234
+msgid "Couldn't find files for comparison."
+msgstr "Faile võrdlemiseks ei leitud."
+
+#: kdiff3_part.cpp:302
+msgid "KDiff3Part"
+msgstr "KDiff3 komponent"
+
+#: fileaccess.cpp:612
+msgid ""
+"While trying to make a backup, deleting an older backup failed. \n"
+"Filename: "
+msgstr ""
+"Varukoopia tegemisel nurjus vanema varukoopia kustutamine. \n"
+"Faili nimi: "
+
+#: fileaccess.cpp:619
+msgid ""
+"While trying to make a backup, renaming failed. \n"
+"Filenames: "
+msgstr ""
+"Varukoopia tegemisel nurjus ümbernimetamine. \n"
+"Failide nimed: "
+
+#: fileaccess.cpp:643
+#, kde-format
+msgid "Getting file status: %1"
+msgstr "Faili staatuse hankimine: %1"
+
+#: fileaccess.cpp:686
+#, kde-format
+msgid "Reading file: %1"
+msgstr "Faili lugemine: %1"
+
+#: fileaccess.cpp:723
+#, kde-format
+msgid "Writing file: %1"
+msgstr "Faili kirjutamine: %1"
+
+#: fileaccess.cpp:751
+msgid "Out of memory"
+msgstr "Mälu napib"
+
+#: fileaccess.cpp:786
+#, kde-format
+msgid "Making directory: %1"
+msgstr "Kataloogi loomine: %1"
+
+#: fileaccess.cpp:806
+#, kde-format
+msgid "Removing directory: %1"
+msgstr "Kataloogi eemaldamine: %1"
+
+#: fileaccess.cpp:821
+#, kde-format
+msgid "Removing file: %1"
+msgstr "Faili eemaldamine: %1"
+
+#: fileaccess.cpp:837
+#, kde-format
+msgid "Creating symbolic link: %1 -> %2"
+msgstr "Nimeviida loomine: %1 -> %2"
+
+#: fileaccess.cpp:864
+#, kde-format
+msgid "Renaming file: %1 -> %2"
+msgstr "Faili ümbernimetamine: %1 -> %2"
+
+#: fileaccess.cpp:897
+#, kde-format
+msgid "Copying file: %1 -> %2"
+msgstr "Faili kopeerimine: %1 -> %2"
+
+#: fileaccess.cpp:911
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for reading failed. Filename: "
+"%1"
+msgstr ""
+"Viga faili kopeerimise operatsioonil: faili avamine lugemiseks nurjus. "
+"Failinimi: %1"
+
+#: fileaccess.cpp:917
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for writing failed. Filename: "
+"%1"
+msgstr ""
+"Viga faili kopeerimise operatsioonil: faili avamine kirjutamiseks nurjus. "
+"Failinimi: %1"
+
+#: fileaccess.cpp:932
+#, kde-format
+msgid "Error during file copy operation: Reading failed. Filename: %1"
+msgstr "Viga faili kopeerimise operatsioonil: lugemine nurjus. Failinimi: %1"
+
+#: fileaccess.cpp:941
+#, kde-format
+msgid "Error during file copy operation: Writing failed. Filename: %1"
+msgstr ""
+"Viga faili kopeerimise operatsioonil: kirjutamine nurjus. Failinimi: %1"
+
+#: fileaccess.cpp:1231
+msgid "Reading directory: "
+msgstr "Kataloogi lugemine: "
+
+#: fileaccess.cpp:1355
+#, kde-format
+msgid "Listing directory: %1"
+msgstr "Kataloogi uurimine: %1"
+
+#: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396
+msgid "&Cancel"
+msgstr "&Loobu"
+
+#: difftextwindow.cpp:403
+msgid "Line"
+msgstr "Rida"
+
+#: difftextwindow.cpp:405
+msgid "Line not available"
+msgstr "Rida pole kättesaadav"
+
+#: difftextwindow.cpp:1703 difftextwindow.cpp:1736
+msgid "Encoding:"
+msgstr "Kodeering:"
+
+#: difftextwindow.cpp:1759 kdiff3.cpp:831
+msgid "Top line"
+msgstr "Ülarida"
+
+#: difftextwindow.cpp:1769
+msgid "End"
+msgstr "Lõpp"
+
+#: kdiff3.cpp:169
+msgid "Current Configuration:"
+msgstr "Aktiivne seadistus:"
+
+#: kdiff3.cpp:174
+msgid "Config Option Error:"
+msgstr "Seadistusvõtme viga:"
+
+#: kdiff3.cpp:219
+msgid "Option --auto used, but no output file specified."
+msgstr "Kasutati võtit --auto, kuid väljundfail pole määratud."
+
+#: kdiff3.cpp:369
+msgid "Option --auto ignored for directory comparison."
+msgstr "Kataloogide võrdlemisel ignoreeriti võtit --auto."
+
+#: kdiff3.cpp:405
+msgid "Saving failed."
+msgstr "Salvestamine nurjus."
+
+#: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214
+msgid "Opening of these files failed:"
+msgstr "Nende failide avamine nurjus:"
+
+#: kdiff3.cpp:449
+msgid "File Open Error"
+msgstr "Viga faili avamisel"
+
+#: kdiff3.cpp:477
+msgid "Opens documents for comparison..."
+msgstr "Avab dokumendid võrdlemiseks..."
+
+#: kdiff3.cpp:479
+msgid "Reload"
+msgstr "Laadi uuesti"
+
+#: kdiff3.cpp:482
+msgid "Saves the merge result. All conflicts must be solved!"
+msgstr ""
+"Salvestab ühendamise tulemuse. Kõik konfliktid peavad olema lahendatud!"
+
+#: kdiff3.cpp:484
+msgid "Saves the current document as..."
+msgstr "Salvestab käesoleva dokumendi nimega..."
+
+#: kdiff3.cpp:487
+msgid "Print the differences"
+msgstr "Trükib erinevused"
+
+#: kdiff3.cpp:490
+msgid "Quits the application"
+msgstr "Väljub rakendusest"
+
+#: kdiff3.cpp:492
+msgid "Cuts the selected section and puts it to the clipboard"
+msgstr "Valitud teksti lõikamine ja asetamine lõikepuhvrisse"
+
+#: kdiff3.cpp:494
+msgid "Copies the selected section to the clipboard"
+msgstr "Kopeerib valitud lõigu lõikepuhvrisse"
+
+#: kdiff3.cpp:496
+msgid "Pastes the clipboard contents to current position"
+msgstr "Lõikepuhvri sisu asetamine praegusesse asukohta"
+
+#: kdiff3.cpp:498
+msgid "Select everything in current window"
+msgstr "Kogu aktiivse akna sisu valimine"
+
+#: kdiff3.cpp:500
+msgid "Search for a string"
+msgstr "Otsib stringi"
+
+#: kdiff3.cpp:502
+msgid "Search again for the string"
+msgstr "Otsib uuesti stringi"
+
+#: kdiff3.cpp:507
+msgid "Enables/disables the statusbar"
+msgstr "Lülitab staatusriba sisse/välja"
+
+#: kdiff3.cpp:511
+msgid "Configure KDiff3..."
+msgstr "KDiff3 seadistamine..."
+
+#: kdiff3.cpp:532
+msgid "Go to Current Delta"
+msgstr "Liigu praegusele erinevusele"
+
+#: kdiff3.cpp:532
+msgid ""
+"Current\n"
+"Delta"
+msgstr ""
+"Praegune\n"
+"erinevus"
+
+#: kdiff3.cpp:534
+msgid "Go to First Delta"
+msgstr "Liigu esimesele erinevusele"
+
+#: kdiff3.cpp:534
+msgid ""
+"First\n"
+"Delta"
+msgstr ""
+"Esimene\n"
+"erinevus"
+
+#: kdiff3.cpp:536
+msgid "Go to Last Delta"
+msgstr "Liigu viimasele erinevusele"
+
+#: kdiff3.cpp:536
+msgid ""
+"Last\n"
+"Delta"
+msgstr ""
+"Viimane\n"
+"erinevus"
+
+#: kdiff3.cpp:538
+msgid "(Skips white space differences when \"Show White Space\" is disabled.)"
+msgstr ""
+"(Jätab tühimärkide erinevused vahele, kui \"Tühimärkide näitamine\" ei ole "
+"sees.)"
+
+#: kdiff3.cpp:539
+msgid ""
+"(Does not skip white space differences even when \"Show White Space\" is "
+"disabled.)"
+msgstr ""
+"(Tühimärkide erinevusi näidatakse isegi siis, kui \"Tühimärkide näitamine\" "
+"ei ole sees.)"
+
+#: kdiff3.cpp:540
+msgid "Go to Previous Delta"
+msgstr "Liigu eelmisele erinevusele"
+
+#: kdiff3.cpp:540
+msgid ""
+"Prev\n"
+"Delta"
+msgstr ""
+"Eelmine\n"
+"erinevus"
+
+#: kdiff3.cpp:542
+msgid "Go to Next Delta"
+msgstr "Liigu järgmisele erinevusele"
+
+#: kdiff3.cpp:542
+msgid ""
+"Next\n"
+"Delta"
+msgstr ""
+"Järgmine\n"
+"erinevus"
+
+#: kdiff3.cpp:544
+msgid "Go to Previous Conflict"
+msgstr "Liigu eelmisele konfliktile"
+
+#: kdiff3.cpp:544
+msgid ""
+"Prev\n"
+"Conflict"
+msgstr ""
+"Eelmine\n"
+"konflikt"
+
+#: kdiff3.cpp:546
+msgid "Go to Next Conflict"
+msgstr "Liigu järgmisele konfliktile"
+
+#: kdiff3.cpp:546
+msgid ""
+"Next\n"
+"Conflict"
+msgstr ""
+"Järgmine\n"
+"konflikt"
+
+#: kdiff3.cpp:548
+msgid "Go to Previous Unsolved Conflict"
+msgstr "Liigu eelmisele lahendamata konfliktile"
+
+#: kdiff3.cpp:548
+msgid ""
+"Prev\n"
+"Unsolved"
+msgstr ""
+"Eelmine\n"
+"lahendamata"
+
+#: kdiff3.cpp:550
+msgid "Go to Next Unsolved Conflict"
+msgstr "Liigu järgmisele lahendamata konfliktile"
+
+#: kdiff3.cpp:550
+msgid ""
+"Next\n"
+"Unsolved"
+msgstr ""
+"Järgmine\n"
+"lahendamata"
+
+#: kdiff3.cpp:552
+msgid "Select Line(s) From A"
+msgstr "Vali rida/read A-st"
+
+#: kdiff3.cpp:552
+msgid ""
+"Choose\n"
+"A"
+msgstr ""
+"Vali\n"
+"A"
+
+#: kdiff3.cpp:553
+msgid "Select Line(s) From B"
+msgstr "Vali rida/read B-st"
+
+#: kdiff3.cpp:553
+msgid ""
+"Choose\n"
+"B"
+msgstr ""
+"Vali\n"
+"B"
+
+#: kdiff3.cpp:554
+msgid "Select Line(s) From C"
+msgstr "Vali rida/read C-st"
+
+#: kdiff3.cpp:554
+msgid ""
+"Choose\n"
+"C"
+msgstr ""
+"Vali\n"
+"C"
+
+#: kdiff3.cpp:555
+msgid "Automatically Go to Next Unsolved Conflict After Source Selection"
+msgstr ""
+"Pärast allikavalikut liigu automaatselt järgmisele lahendamata konfliktile"
+
+#: kdiff3.cpp:555
+msgid ""
+"Auto\n"
+"Next"
+msgstr ""
+"Automaatselt\n"
+"järgmine"
+
+#: kdiff3.cpp:557
+msgid "Show Space && Tabulator Characters for Differences"
+msgstr "Näita erinevusi tühiku- ja tabeldusmärkides"
+
+#: kdiff3.cpp:557
+msgid ""
+"White\n"
+"Characters"
+msgstr "Tühimärgid"
+
+#: kdiff3.cpp:558
+msgid "Show White Space"
+msgstr "Näita tühimärke"
+
+#: kdiff3.cpp:558
+msgid ""
+"White\n"
+"Deltas"
+msgstr ""
+"Tühimärkide\n"
+"erinevus"
+
+#: kdiff3.cpp:560
+msgid "Show Line Numbers"
+msgstr "Näita reanumbreid"
+
+#: kdiff3.cpp:560
+msgid ""
+"Line\n"
+"Numbers"
+msgstr "Reanumbrid"
+
+#: kdiff3.cpp:561
+msgid "Choose A Everywhere"
+msgstr "Vali A kõikjal"
+
+#: kdiff3.cpp:562
+msgid "Choose B Everywhere"
+msgstr "Vali B kõikjal"
+
+#: kdiff3.cpp:563
+msgid "Choose C Everywhere"
+msgstr "Vali C kõikjal"
+
+#: kdiff3.cpp:564
+msgid "Choose A for All Unsolved Conflicts"
+msgstr "Vali A kõigi lahendamata konfliktide korral"
+
+#: kdiff3.cpp:565
+msgid "Choose B for All Unsolved Conflicts"
+msgstr "Vali B kõigi lahendamata konfliktide korral"
+
+#: kdiff3.cpp:566
+msgid "Choose C for All Unsolved Conflicts"
+msgstr "Vali C kõigi lahendamata konfliktide korral"
+
+#: kdiff3.cpp:567
+msgid "Choose A for All Unsolved Whitespace Conflicts"
+msgstr "Vali A kõigi lahendamata tühimärgikonkfliktide korral"
+
+#: kdiff3.cpp:568
+msgid "Choose B for All Unsolved Whitespace Conflicts"
+msgstr "Vali B kõigi lahendamata tühimärgikonkfliktide korral"
+
+#: kdiff3.cpp:569
+msgid "Choose C for All Unsolved Whitespace Conflicts"
+msgstr "Vali C kõigi lahendamata tühimärgikonkfliktide korral"
+
+#: kdiff3.cpp:570
+msgid "Automatically Solve Simple Conflicts"
+msgstr "Lahenda automaatselt lihtsad konfliktid"
+
+#: kdiff3.cpp:571
+msgid "Set Deltas to Conflicts"
+msgstr "Määra erinevused konfliktideks"
+
+#: kdiff3.cpp:572
+msgid "Run Regular Expression Auto Merge"
+msgstr "Käivita regulaaravaldisega automaatühendamine"
+
+#: kdiff3.cpp:573
+msgid "Automatically Solve History Conflicts"
+msgstr "Lahenda automaatselt ajalookonfliktid"
+
+#: kdiff3.cpp:574
+msgid "Split Diff At Selection"
+msgstr "Jaga erinevused valiku juures"
+
+#: kdiff3.cpp:575
+msgid "Join Selected Diffs"
+msgstr "Liida valitud erinevused"
+
+#: kdiff3.cpp:577
+msgid "Show Window A"
+msgstr "Näita akent A"
+
+#: kdiff3.cpp:578
+msgid "Show Window B"
+msgstr "Näita akent B"
+
+#: kdiff3.cpp:579
+msgid "Show Window C"
+msgstr "Näita akent C"
+
+#: kdiff3.cpp:580 kdiff3.cpp:591
+msgid "Focus Next Window"
+msgstr "Fokuseeri järgmisele aknale"
+
+#: kdiff3.cpp:582
+msgid "Normal Overview"
+msgstr "Normaalne ülevaade"
+
+#: kdiff3.cpp:583
+msgid "A vs. B Overview"
+msgstr "A-B ülevaade"
+
+#: kdiff3.cpp:584
+msgid "A vs. C Overview"
+msgstr "A-C ülevaade"
+
+#: kdiff3.cpp:585
+msgid "B vs. C Overview"
+msgstr "B-C ülevaade"
+
+#: kdiff3.cpp:586
+msgid "Word Wrap Diff Windows"
+msgstr "Reamurdmine võrdlusakendes"
+
+#: kdiff3.cpp:587
+msgid "Add Manual Diff Alignment"
+msgstr "Lisa käsitsi samasus"
+
+#: kdiff3.cpp:588
+msgid "Clear All Manual Diff Alignments"
+msgstr "Eemalda kõik käsitsi määratud samasused"
+
+#: kdiff3.cpp:593
+msgid "Focus Prev Window"
+msgstr "Fokuseeri eelmisele aknale"
+
+#: kdiff3.cpp:594
+msgid "Toggle Split Orientation"
+msgstr "Lülita poolitamissuund"
+
+#: kdiff3.cpp:596
+msgid "Dir && Text Split Screen View"
+msgstr "Kataloogi ja teksti poolitamisvaade"
+
+#: kdiff3.cpp:598
+msgid "Toggle Between Dir && Text View"
+msgstr "Lülita kataloogi- ja tekstivaadet"
+
+#: kdiff3.cpp:654 pdiff.cpp:1812
+msgid "The merge result hasn't been saved."
+msgstr "Ühendamise tulemust pole salvestatud."
+
+#: kdiff3.cpp:656
+msgid "Save && Quit"
+msgstr "Salvesta ja välju"
+
+#: kdiff3.cpp:657
+msgid "Quit Without Saving"
+msgstr "Välju salvestamata"
+
+#: kdiff3.cpp:665 pdiff.cpp:1823
+msgid "Saving the merge result failed."
+msgstr "Ühendamise tulemuse salvestamine nurjus."
+
+#: kdiff3.cpp:676 pdiff.cpp:1078
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort?"
+msgstr "Sul on parajasti käsil kataloogide ühendamine. Kas tõesti katkestada?"
+
+#: kdiff3.cpp:701
+msgid "Saving file..."
+msgstr "Faili salvestamine..."
+
+#: kdiff3.cpp:718
+msgid "Saving file with a new filename..."
+msgstr "Faili salvestamine uue nimega..."
+
+#: kdiff3.cpp:781
+msgid "Printing not implemented."
+msgstr "Trükkimine ei ole veel võimalik."
+
+#: kdiff3.cpp:815
+msgid "Printing..."
+msgstr "Trükkimine..."
+
+#: kdiff3.cpp:956
+msgid "Selection"
+msgstr "Valik"
+
+#: kdiff3.cpp:982
+msgid "Printing completed."
+msgstr "Trükkimine lõpetatud."
+
+#: kdiff3.cpp:986
+msgid "Printing aborted."
+msgstr "Trükkimine katkestati"
+
+#: kdiff3.cpp:993
+msgid "Exiting..."
+msgstr "Väljumine..."
+
+#: kdiff3.cpp:1006
+msgid "Toggling toolbar..."
+msgstr "Tööriistariba lülitamine..."
+
+#: kdiff3.cpp:1027
+msgid "Toggle the statusbar..."
+msgstr "Olekuriba lülitamine..."
+
+#: smalldialogs.cpp:58
+msgid "A (Base):"
+msgstr "A (baas):"
+
+#: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99
+#: smalldialogs.cpp:142
+msgid "File..."
+msgstr "Fail..."
+
+#: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101
+#: smalldialogs.cpp:144
+msgid "Dir..."
+msgstr "Kataloog..."
+
+#: smalldialogs.cpp:93
+msgid "C (Optional):"
+msgstr "C (lisavõimalus):"
+
+#: smalldialogs.cpp:116
+msgid "Swap/Copy Names ..."
+msgstr "Vaheta/kopeeri nimed..."
+
+#: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123
+#, kde-format
+msgid "Swap %1<->%2"
+msgstr "Vaheta %1<->%2"
+
+#: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126
+#, kde-format
+msgid "Copy %1->Output"
+msgstr "Kopeeri %1->väljund"
+
+#: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129
+#, kde-format
+msgid "Swap %1<->Output"
+msgstr "Vaheta %1<->väljund"
+
+#: smalldialogs.cpp:136
+msgid "Output (optional):"
+msgstr "Väljund (lisavõimalus):"
+
+#: smalldialogs.cpp:168
+msgid "Configure..."
+msgstr "Seadista..."
+
+#: smalldialogs.cpp:174
+msgid "&OK"
+msgstr "&OK"
+
+#: smalldialogs.cpp:362
+msgid "Search text:"
+msgstr "Otsitav tekst:"
+
+#: smalldialogs.cpp:369
+msgid "Case sensitive"
+msgstr "Tõstutundlik"
+
+#: smalldialogs.cpp:372
+msgid "Search A"
+msgstr "Otsi A"
+
+#: smalldialogs.cpp:377
+msgid "Search B"
+msgstr "Otsi B"
+
+#: smalldialogs.cpp:382
+msgid "Search C"
+msgstr "Otsi C"
+
+#: smalldialogs.cpp:387
+msgid "Search output"
+msgstr "Otsingu väljund"
+
+#: smalldialogs.cpp:392
+msgid "&Search"
+msgstr "&Otsi"
+
+#: smalldialogs.cpp:409
+msgid "Regular Expression Tester"
+msgstr "Regulaaravaldise test"
+
+#: smalldialogs.cpp:414 optiondialog.cpp:936
+msgid "Auto merge regular expression:"
+msgstr "Automaatühendamise regulaaravaldis:"
+
+#: smalldialogs.cpp:422
+msgid "Example auto merge line:"
+msgstr "Automaatühendamise näidisrida:"
+
+#: smalldialogs.cpp:424
+msgid "To test auto merge, copy a line as used in your files."
+msgstr "Kopeeri automaatühendamise testimiseks rida oma failist."
+
+#: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494
+msgid "Match result:"
+msgstr "Sobivuse tulemus:"
+
+#: smalldialogs.cpp:441 optiondialog.cpp:962
+msgid "History start regular expression:"
+msgstr "Ajaloo alguse regulaaravaldis:"
+
+#: smalldialogs.cpp:449
+msgid "Example history start line (with leading comment):"
+msgstr "Ajaloo alguse näidisrida (alustava kommentaariga):"
+
+#: smalldialogs.cpp:451
+msgid ""
+"Copy a history start line as used in your files,\n"
+"including the leading comment."
+msgstr ""
+"Kopeeri oma failist ajaloo alguse rida,\n"
+"kaasa arvatud alustav kommentaar."
+
+#: smalldialogs.cpp:469 optiondialog.cpp:972
+msgid "History entry start regular expression:"
+msgstr "Ajalookirje alguse regulaaravaldis:"
+
+#: smalldialogs.cpp:477
+msgid "History sort key order:"
+msgstr "Ajaloo sortimisvõtme järjekord:"
+
+#: smalldialogs.cpp:485
+msgid "Example history entry start line (without leading comment):"
+msgstr "Ajalookirje alguse näidisrida (alustava kommentaarita):"
+
+#: smalldialogs.cpp:487
+msgid ""
+"Copy a history entry start line as used in your files,\n"
+"but omit the leading comment."
+msgstr ""
+"Kopeeri oma failist ajalookirje alguse rida,\n"
+"kuid ilma alustava kommentaarita."
+
+#: smalldialogs.cpp:501
+msgid "Sort key result:"
+msgstr "Sorteerimisvõtme tulemus:"
+
+#: smalldialogs.cpp:508
+msgid "OK"
+msgstr "OK"
+
+#: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583
+msgid "Match success."
+msgstr "Leiti sobivus."
+
+#: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589
+msgid "Match failed."
+msgstr "Sobivust ei leitud."
+
+#: smalldialogs.cpp:574
+msgid "Opening and closing parentheses do not match in regular expression."
+msgstr "Regulaaravaldises ei sobi alustavad ja lõpetavad sulud."
+
+#: optiondialog.cpp:367
+msgid "Unicode, 8 bit"
+msgstr "Unicode (8-bitine)"
+
+#: optiondialog.cpp:368
+msgid "Unicode"
+msgstr "Unicode"
+
+#: optiondialog.cpp:369
+msgid "Latin1"
+msgstr "Latin1"
+
+#: optiondialog.cpp:388
+msgid "Change this if non-ASCII characters are not displayed correctly."
+msgstr "Muuda, kui mitte-ASCII sümboleid ei näidata korrektselt."
+
+#: optiondialog.cpp:465
+msgid "Configure"
+msgstr "Seadistamine"
+
+#: optiondialog.cpp:531
+msgid "Font"
+msgstr "Font"
+
+#: optiondialog.cpp:532
+msgid "Editor & Diff Output Font"
+msgstr "Redaktori ja erinevuse väljundi font"
+
+#: optiondialog.cpp:556
+msgid "Italic font for deltas"
+msgstr "Kaldkiri erinevustele"
+
+#: optiondialog.cpp:559
+msgid ""
+"Selects the italic version of the font for differences.\n"
+"If the font doesn't support italic characters, then this does nothing."
+msgstr ""
+"Valib fondi kaldkirjaversiooni erinevuste näitamiseks.\n"
+"Kui font ei toeta kaldkirja, ei tee midagi."
+
+#: optiondialog.cpp:568
+msgid "Color"
+msgstr "Värv"
+
+#: optiondialog.cpp:569
+msgid "Colors Settings"
+msgstr "Värviseadistused"
+
+#: optiondialog.cpp:588
+msgid "Editor and Diff Views:"
+msgstr "Redaktori ja erinevuse vaated:"
+
+#: optiondialog.cpp:596
+msgid "Foreground color:"
+msgstr "Esiplaani värv:"
+
+#: optiondialog.cpp:603
+msgid "Background color:"
+msgstr "Tausta värv:"
+
+#: optiondialog.cpp:612
+msgid "Diff background color:"
+msgstr "Erinevuse tausta värv:"
+
+#: optiondialog.cpp:620
+msgid "Color A:"
+msgstr "Värv A:"
+
+#: optiondialog.cpp:628
+msgid "Color B:"
+msgstr "Värv B:"
+
+#: optiondialog.cpp:636
+msgid "Color C:"
+msgstr "Värv C:"
+
+#: optiondialog.cpp:643
+msgid "Conflict color:"
+msgstr "Konflikti värv:"
+
+#: optiondialog.cpp:651
+msgid "Current range background color:"
+msgstr "Praeguse vahemiku tausta värv:"
+
+#: optiondialog.cpp:659
+msgid "Current range diff background color:"
+msgstr "Praeguse vahemiku erinevuse tausta värv:"
+
+#: optiondialog.cpp:666
+msgid "Color for manually aligned difference ranges:"
+msgstr "Käsitsi määratud samasuse vahemiku värv:"
+
+#: optiondialog.cpp:672
+msgid "Directory Comparison View:"
+msgstr "Kataloogi võrdlemise vaade:"
+
+#: optiondialog.cpp:678
+msgid "Newest file color:"
+msgstr "Uusima faili värv:"
+
+#: optiondialog.cpp:682
+msgid ""
+"Changing this color will only be effective when starting the next directory "
+"comparison."
+msgstr ""
+"Seda värvi muudetakse alles siis, kui alustad järgmist kataloogide "
+"võrdlemist."
+
+#: optiondialog.cpp:687
+msgid "Oldest file color:"
+msgstr "Vanima faili värv:"
+
+#: optiondialog.cpp:695
+msgid "Middle age file color:"
+msgstr "Keskmise vanusega faili värv:"
+
+#: optiondialog.cpp:703
+msgid "Color for missing files:"
+msgstr "Puuduvate failide värv:"
+
+#: optiondialog.cpp:717
+msgid "Editor"
+msgstr "Redaktor"
+
+#: optiondialog.cpp:718
+msgid "Editor Behavior"
+msgstr "Redaktori käitumine"
+
+#: optiondialog.cpp:732
+msgid "Tab inserts spaces"
+msgstr "TAB lisab tühikud"
+
+#: optiondialog.cpp:735
+msgid ""
+"On: Pressing tab generates the appropriate number of spaces.\n"
+"Off: A tab character will be inserted."
+msgstr ""
+"Sees: TAB klahvi vajutamine tekitab sobiva hulga tühikuid.\n"
+"Väljas: lisatakse tabeldusmärk."
+
+#: optiondialog.cpp:741
+msgid "Tab size:"
+msgstr "TABi suurus:"
+
+#: optiondialog.cpp:747
+msgid "Auto indentation"
+msgstr "Automaatne taandus"
+
+#: optiondialog.cpp:750
+msgid "On: The indentation of the previous line is used for a new line.\n"
+msgstr "Sees: uuel real kasutatakse eelmise rea taandust.\n"
+
+#: optiondialog.cpp:754
+msgid "Auto copy selection"
+msgstr "Valiku automaatne kopeerimine"
+
+#: optiondialog.cpp:757
+msgid ""
+"On: Any selection is immediately written to the clipboard.\n"
+"Off: You must explicitely copy e.g. via Ctrl-C."
+msgstr ""
+"Sees: iga valik asetatakse otsekohe lõikepuhvrisse.\n"
+"Väljas: kopeerimiseks tuleb anda selge käsk, nt. CTRL+C."
+
+#: optiondialog.cpp:768
+msgid "Dos/Windows"
+msgstr "Dos/Windows"
+
+#: optiondialog.cpp:769
+msgid "Autodetect"
+msgstr "Automaatne tuvastamine"
+
+#: optiondialog.cpp:772
+msgid ""
+"Sets the line endings for when an edited file is saved.\n"
+"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A"
+msgstr ""
+"Määrab realõpu stiili redigeeritud faili salvestamisel.\n"
+"DOS/Windows: CR+LF; Unix: LF; sealjuures CR=0D, LF=0A"
+
+#: optiondialog.cpp:784
+msgid "Diff"
+msgstr "Erinevused"
+
+#: optiondialog.cpp:785
+msgid "Diff Settings"
+msgstr "Erinevuse seadistused"
+
+#: optiondialog.cpp:809
+msgid "Treat as white space."
+msgstr "Käsitletakse tühimärkidena."
+
+#: optiondialog.cpp:811
+msgid "Ignore numbers"
+msgstr "Numbreid ignoreeritakse"
+
+#: optiondialog.cpp:814
+msgid ""
+"Ignore number characters during line matching phase. (Similar to Ignore "
+"white space.)\n"
+"Might help to compare files with numeric data."
+msgstr ""
+"Reasobivuse juures ignoreeritakse numbreid (sarnane tühimärkide "
+"ignoreerimisega).\n"
+"Võib olla abiks numbrilisi andmeid sisaldavate failide võrdlemisel."
+
+#: optiondialog.cpp:819
+msgid "Ignore C/C++ comments"
+msgstr "C/C++ kommentaare ignoreeritakse"
+
+#: optiondialog.cpp:821
+msgid "Treat C/C++ comments like white space."
+msgstr "C/C++ kommentaare käsitletakse tühimärkidena."
+
+#: optiondialog.cpp:825
+msgid "Ignore case"
+msgstr "Tõstu ignoreeritakse"
+
+#: optiondialog.cpp:828
+msgid "Treat case differences like white space changes. ('a'<=>'A')"
+msgstr "Tõstuerinevusi käsitletakse tühimärgimuutustena. ('a'<=>'A')"
+
+#: optiondialog.cpp:832
+msgid "Preprocessor command:"
+msgstr "Eeltöötluse käsk"
+
+#: optiondialog.cpp:836
+msgid "User defined pre-processing. (See the docs for details.)"
+msgstr "Kasutaja määratud eeltöötlus (vaata lähemalt käsiraamatust)."
+
+#: optiondialog.cpp:839
+msgid "Line-matching preprocessor command:"
+msgstr "Ridade sobivuse eeltöötluse käsk:"
+
+#: optiondialog.cpp:843
+msgid ""
+"This pre-processor is only used during line matching.\n"
+"(See the docs for details.)"
+msgstr ""
+"Seda eeltöötlusvahendit kasutatakse ainult ridade sobivuse leidmisel\n"
+"(vaata lähemalt käsiraamatust)."
+
+#: optiondialog.cpp:846
+msgid "Try hard (slower)"
+msgstr "Karm uurimine (aeglane)"
+
+#: optiondialog.cpp:849
+msgid ""
+"Enables the --minimal option for the external diff.\n"
+"The analysis of big files will be much slower."
+msgstr ""
+"Lubab välise diff-rakenduse korral võtme --minimal.\n"
+"Suurte failide analüüs muutub palju aeglasemaks."
+
+#: optiondialog.cpp:854
+msgid "Align B and C for 3 input files"
+msgstr "B ja C joondamine 3 sisendfaili korral"
+
+#: optiondialog.cpp:857
+msgid ""
+"Try to align B and C when comparing or merging three input files.\n"
+"Not recommended for merging because merge might get more complicated.\n"
+"(Default is off.)"
+msgstr ""
+"B ja C võimalikult täpne joondamine kolme sisendfaili võrdlemisel või "
+"ühendamisel.\n"
+"Ei ole soovitatav ühendamise korral, sest ühendamine võib osutuda "
+"keeruliseks.\n"
+"(Vaikimisi on välja lülitatud.)"
+
+#: optiondialog.cpp:870
+msgid "Merge Settings"
+msgstr "Ühendamise seadistused"
+
+#: optiondialog.cpp:885
+msgid "Auto advance delay (ms):"
+msgstr "Automaatse edasiliikumise viivitus (ms):"
+
+#: optiondialog.cpp:890
+msgid ""
+"When in Auto-Advance mode the result of the current selection is shown \n"
+"for the specified time, before jumping to the next conflict. Range: 0-2000 ms"
+msgstr ""
+"Automaatse edasiliikumise režiimis näidatakse tulemust määratud aeg ning \n"
+"siis hüpatakse järgmisele konfliktile. Vahemik: 0-2000 ms"
+
+#: optiondialog.cpp:895
+msgid "Show info dialogs"
+msgstr "Infodialoogide näitamine"
+
+#: optiondialog.cpp:897
+msgid "Show a dialog with information about the number of conflicts."
+msgstr "Infodialoogi näitamine konfliktide arvu kohta."
+
+#: optiondialog.cpp:900
+msgid "White space 2-file merge default:"
+msgstr "Tühimärkide käsitlemine kahe faili ühendamisel:"
+
+#: optiondialog.cpp:904 optiondialog.cpp:917
+msgid "Manual Choice"
+msgstr "Käsitsivalik"
+
+#: optiondialog.cpp:908 optiondialog.cpp:922
+msgid ""
+"Allow the merge algorithm to automatically select an input for white-space-"
+"only changes."
+msgstr ""
+"Lubab ühendamisalgoritmil ainult tühimärkides seisneva erinevuse korral "
+"automaatselt valida sisendi."
+
+#: optiondialog.cpp:913
+msgid "White space 3-file merge default:"
+msgstr "Tühimärkide käsitlemine kolme faili ühendamisel:"
+
+#: optiondialog.cpp:927
+msgid "Automatic Merge Regular Expression"
+msgstr "Automaatühendamise regulaaravaldis"
+
+#: optiondialog.cpp:940
+msgid ""
+"Regular expression for lines where KDiff3 should automatically choose one "
+"source.\n"
+"When a line with a conflict matches the regular expression then\n"
+"- if available - C, otherwise B will be chosen."
+msgstr ""
+"Regulaaravaldis ridadele, kus KDiff3 peab automaatselt valima ühe allika.\n"
+"Kui konflikti sisaldav rida sobib regulaaravaldisega, siis\n"
+"valitakse - kui võimalik - C, vastasel juhul B."
+
+#: optiondialog.cpp:946
+msgid "Run regular expression auto merge on merge start"
+msgstr "Regulaaravaldisega automaatühendamine ühendamise alustamisel"
+
+#: optiondialog.cpp:948
+msgid ""
+"Run the merge for auto merge regular expressions\n"
+"immediately when a merge starts.\n"
+msgstr ""
+"Regulaarühendusega automaatühendamine käivitatakse\n"
+"kohe ühendamise alustamisel.\n"
+
+#: optiondialog.cpp:953
+msgid "Version Control History Merging"
+msgstr "Versioonikonrolli ajaloo ühendamine"
+
+#: optiondialog.cpp:966
+msgid ""
+"Regular expression for the start of the version control history entry.\n"
+"Usually this line contains the \"$Log$\" keyword.\n"
+"Default value: \".*\\$Log.*\\$.*\""
+msgstr ""
+"Regulaaravaldis versioonikontrolli ajaloo kirje alguse jaoks.\n"
+"Tavaliselt leidub seal real võtmesõna \"$Log$\".\n"
+"Vaikimisi: \".*\\$Log.*\\$.*\""
+
+#: optiondialog.cpp:984
+msgid ""
+"A version control history entry consists of several lines.\n"
+"Specify the regular expression to detect the first line (without the leading "
+"comment).\n"
+"Use parentheses to group the keys you want to use for sorting.\n"
+"If left empty, then KDiff3 assumes that empty lines separate history "
+"entries.\n"
+"See the documentation for details."
+msgstr ""
+"Versioonikontrolli ajaloo kirje koosneb mitmest reast.\n"
+"Siin saab määrata esimese rea (ilma alustava kommentaarita) tuvastamiseks "
+"mõeldud regulaaravaldise.\n"
+"Sulgudega saab rühmitada võtmeid, mida tahad kasutada sortimiseks.\n"
+"Kui see tühjaks jätta, eeldab KDiff3, et ajaloo kirjeid eraldavad tühjad "
+"read.\n"
+"Täpsemalt räägib sellest käsiraamat."
+
+#: optiondialog.cpp:992
+msgid "History merge sorting"
+msgstr "Ajaloo ühendamise sortimine"
+
+#: optiondialog.cpp:994
+msgid "Sort version control history by a key."
+msgstr "Versioonikontrolli ajaloo sortimine võtmete järgi."
+
+#: optiondialog.cpp:1004
+msgid "History entry start sort key order:"
+msgstr "Ajalookirje alguse sortimisvõtmete järjekord:"
+
+#: optiondialog.cpp:1008
+msgid ""
+"Each pair of parentheses used in the regular expression for the history "
+"start entry\n"
+"groups a key that can be used for sorting.\n"
+"Specify the list of keys (that are numbered in order of occurrence\n"
+"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n"
+"If left empty, then no sorting will be done.\n"
+"See the documentation for details."
+msgstr ""
+"Kõik ajalookirjete alguse määramiseks mõeldud regulaaravaldistes\n"
+"kasutatud sulud rühmitavad võtmeid, mida saab tarvitada sortimiseks.\n"
+"Määra siin võtmete järjekord (need on siin järjekorras alates 1),\n"
+"kasutades eraldajana koma ',' (nt. \"4,5,6,1,2,3,7\").\n"
+"Kui see tühjaks jätta, siis midagi ei sordita.\n"
+"Täpsemalt räägib sellest käsiraamat."
+
+#: optiondialog.cpp:1019
+msgid "Merge version control history on merge start"
+msgstr "Versioonikontrolli ajaloo ühendamine ühendamise alustamisel"
+
+#: optiondialog.cpp:1021
+msgid "Run version control history automerge on merge start."
+msgstr ""
+"Versioonikontrolli ajaloo automaatühendamise käivitamine kohe ühendamise "
+"alustamisel."
+
+#: optiondialog.cpp:1025
+msgid "Max number of history entries:"
+msgstr "Ajalookirjete maks. arv:"
+
+#: optiondialog.cpp:1028
+msgid "Cut off after specified number. Use -1 for infinite number of entries."
+msgstr "Kärpimine pärast määratud arvu. -1 tähendab piirangu puudumist."
+
+#: optiondialog.cpp:1032
+msgid "Test your regular expressions"
+msgstr "Regulaaravaldiste test"
+
+#: optiondialog.cpp:1037
+msgid "Irrelevant merge command:"
+msgstr "Ebaolulise ühendamise käsk:"
+
+#: optiondialog.cpp:1041
+msgid ""
+"If specified this script is run after automerge\n"
+"when no other relevant changes were detected.\n"
+"Called with the parameters: filename1 filename2 filename3"
+msgstr ""
+"Määramise korral käivitatakse see skript\n"
+"pärast automaatühendamist, kui muid muudatusi ei avastada.\n"
+"See kutsutakse välja parameetritega: failinimi1 failinimi2 failinimi3"
+
+#: optiondialog.cpp:1047
+msgid "Auto save and quit on merge without conflicts"
+msgstr "Automaatne salvestamine ja väljumine konfliktideta ühendamisel"
+
+#: optiondialog.cpp:1050
+msgid ""
+"If KDiff3 was started for a file-merge from the command line and all\n"
+"conflicts are solvable without user interaction then automatically save and "
+"quit.\n"
+"(Similar to command line option \"--auto\".)"
+msgstr ""
+"Kui KDiff3 käivitatakse failide ühendamiseks käsurealt ja kõik konfliktid\n"
+"on lahendatavad kasutaja sekkumiseta, salvestatakse ja lõpetatakse töö\n"
+"automaatselt.\n"
+"(Samane käsurea võtmega \"--auto\")"
+
+#: optiondialog.cpp:1061 optiondialog.cpp:1062
+msgid "Directory"
+msgstr "Kataloog"
+
+#: optiondialog.cpp:1075
+msgid "Recursive directories"
+msgstr "Rekursiivsed kataloogid"
+
+#: optiondialog.cpp:1077
+msgid "Whether to analyze subdirectories or not."
+msgstr "Kas analüüsida alamkatalooge või mitte."
+
+#: optiondialog.cpp:1079
+msgid "File pattern(s):"
+msgstr "Failimustrid:"
+
+#: optiondialog.cpp:1084
+msgid ""
+"Pattern(s) of files to be analyzed. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Failide mustrid, mida analüüsida. \n"
+"Metamärgid: '*' ja '?'\n"
+"Mitme mustri määramisel kasuta eraldajana semikoolonit (;)"
+
+#: optiondialog.cpp:1090
+msgid "File-anti-pattern(s):"
+msgstr "Anti-failimustrid:"
+
+#: optiondialog.cpp:1095
+msgid ""
+"Pattern(s) of files to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Failide mustrid, mida analüüsil välja jätta. \n"
+"Metamärgid: '*' ja '?'\n"
+"Mitme mustri määramisel kasuta eraldajana semikoolonit (;)"
+
+#: optiondialog.cpp:1101
+msgid "Dir-anti-pattern(s):"
+msgstr "Anti-kataloogimustrid:"
+
+#: optiondialog.cpp:1106
+msgid ""
+"Pattern(s) of directories to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Kataloogide mustrid, mida analüüsil välja jätta. \n"
+"Metamärgid: '*' ja '?'\n"
+"Mitme mustri määramisel kasuta eraldajana semikoolonit (;)"
+
+#: optiondialog.cpp:1112
+msgid "Use .cvsignore"
+msgstr ".cvsignore kasutamine"
+
+#: optiondialog.cpp:1115
+msgid ""
+"Extends the antipattern to anything that would be ignored by CVS.\n"
+"Via local \".cvsignore\" files this can be directory specific."
+msgstr ""
+"Laiendab antimustrit kõigele, mida eiraks CVS.\n"
+"Kohalike \".cvsignore\" failide abil võib see olla kataloogipõhine."
+
+#: optiondialog.cpp:1120
+msgid "Find hidden files and directories"
+msgstr "Peidetud failide ja kataloogide otsimine"
+
+#: optiondialog.cpp:1123
+msgid "Finds files and directories with the hidden attribute."
+msgstr "Otsitakse peidetud faile ja katalooge."
+
+#: optiondialog.cpp:1125
+msgid "Finds files and directories starting with '.'."
+msgstr "Failide ja kataloogide otsimine, mille alguses seisab '.'."
+
+#: optiondialog.cpp:1129
+msgid "Follow file links"
+msgstr "Failiviitade järgimine"
+
+#: optiondialog.cpp:1132
+msgid ""
+"On: Compare the file the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+"Sees: võrreldakse faili, mille viit osutab.\n"
+"Väljas: võrreldakse viitu."
+
+#: optiondialog.cpp:1137
+msgid "Follow directory links"
+msgstr "Kataloogiviitade järgimine"
+
+#: optiondialog.cpp:1140
+msgid ""
+"On: Compare the directory the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+"Sees: võrreldakse kataloogi, mille viit osutab.\n"
+"Väljas: võrreldakse viitu."
+
+#: optiondialog.cpp:1156
+msgid "Case sensitive filename comparison"
+msgstr "Tõstutundlik failinimede võrdlemine"
+
+#: optiondialog.cpp:1159
+msgid ""
+"The directory comparison will compare files or directories when their names "
+"match.\n"
+"Set this option if the case of the names must match. (Default for Windows is "
+"off, otherwise on.)"
+msgstr ""
+"Kataloogide võrdlemisel võrreldakse failide või kataloogide nimesid.\n"
+"Selle valiku sisselülitamisel peab sobima ka nimede tähesuurus (Windowsis on "
+"see vaikimisi välja lülitatud, muidu sees)."
+
+#: optiondialog.cpp:1163
+msgid "File Comparison Mode"
+msgstr "Faili võrdlemise režiim"
+
+#: optiondialog.cpp:1169
+msgid "Binary comparison"
+msgstr "Binaarvõrdlus"
+
+#: optiondialog.cpp:1170
+msgid "Binary comparison of each file. (Default)"
+msgstr "Iga faili binaarvõrdlus. (vaikimisi)"
+
+#: optiondialog.cpp:1173
+msgid "Full analysis"
+msgstr "Täielik analüüs"
+
+#: optiondialog.cpp:1174
+msgid ""
+"Do a full analysis and show statistics information in extra columns.\n"
+"(Slower than a binary comparison, much slower for binary files.)"
+msgstr ""
+"Tehakse täielik analüüs, statistikat näidatakse lisaveergudes.\n"
+"(Aeglasem kui binaarvõrdlus ja eriti aeglane binaarfailide korral.)"
+
+#: optiondialog.cpp:1178
+msgid "Trust the size and modification date (unsafe)"
+msgstr "Suuruse ja muutmiskuupäeva usaldamine (ebaturvaline)"
+
+#: optiondialog.cpp:1179
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"Files with equal contents but different modification dates will appear as "
+"different.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"Eeldatakse, et failid on võrdsed, kui muutmiskuupäev ja failipikkus on "
+"võrdsed.\n"
+"Ühesuguse sisu, kuid erineva muutmiskuupäevaga faile peetakse erinevaks.\n"
+"Mõttekas suurte kataloogide või aeglase võrgu korral."
+
+#: optiondialog.cpp:1184
+msgid ""
+"Trust the size and date, but use binary comparison if date does not match "
+"(unsafe)"
+msgstr ""
+"Suuruse ja muutmiskuupäeva usaldamine, kuid muutmiskuupäeva erinemisel "
+"binaarvõrdluse kasutamine (pole turvaline)"
+
+#: optiondialog.cpp:1185
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"If the dates are not equal but the sizes are, use binary comparison.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"Eeldatakse, et failid on võrdsed, kui muutmiskuupäev ja failipikkus on "
+"võrdsed.\n"
+"Kui kuupäevad ei ole võrdsed, aga suurus on, kasutatakse binaarvõrdlust.\n"
+"Mõttekas suurte kataloogide või aeglase võrgu korral."
+
+#: optiondialog.cpp:1190
+msgid "Trust the size (unsafe)"
+msgstr "Suuruse usaldamine (ebaturvaline)"
+
+#: optiondialog.cpp:1191
+msgid ""
+"Assume that files are equal if their file lengths are equal.\n"
+"Useful for big directories or slow networks when the date is modified during "
+"download."
+msgstr ""
+"Eeldatakse, et failid on võrdsed, kui failipikkus on võrdne.\n"
+"Mõttekas suurte kataloogide või aeglase võrgu korral, kui kuupäev võib "
+"allalaadimise käigus olla muutunud."
+
+#: optiondialog.cpp:1199
+msgid "Synchronize directories"
+msgstr "Kataloogide sünkroniseerimine"
+
+#: optiondialog.cpp:1202
+msgid ""
+"Offers to store files in both directories so that\n"
+"both directories are the same afterwards.\n"
+"Works only when comparing two directories without specifying a destination."
+msgstr ""
+"Võimaldab salvestada failid mõlemasse kataloogi,\n"
+"nii et need näevad pärast seda välja ühesugused.\n"
+"Toimib ainult kahe kataloogi võrdlemisel ilma sihtkohta määramata."
+
+#: optiondialog.cpp:1208
+msgid "White space differences considered equal"
+msgstr "Tühimärkide erinevust ei arvestata"
+
+#: optiondialog.cpp:1211
+msgid ""
+"If files differ only by white space consider them equal.\n"
+"This is only active when full analysis is chosen."
+msgstr ""
+"Kui failid erinevad ainult tühimärkide poolest, peetakse neid võrdseks.\n"
+"See valik on aktiivne ainult täieliku analüüsi korral."
+
+#: optiondialog.cpp:1217
+msgid "Copy newer instead of merging (unsafe)"
+msgstr "Ühendamise asemel kopeeritakse uuem (ebaturvaline)"
+
+#: optiondialog.cpp:1220
+msgid ""
+"Don't look inside, just take the newer file.\n"
+"(Use this only if you know what you are doing!)\n"
+"Only effective when comparing two directories."
+msgstr ""
+"Sisse ei vaadata, võetakse lihtsalt uuem fail.\n"
+"(Kasuta ainult siis, kui tead, mida teed!)\n"
+"Toimib ainult kahe kataloogi võrdlemisel."
+
+#: optiondialog.cpp:1225
+msgid "Backup files (.orig)"
+msgstr "Failidest tehakse varukoopia (.orig)"
+
+#: optiondialog.cpp:1228
+msgid ""
+"If a file would be saved over an old file, then the old file\n"
+"will be renamed with a '.orig' extension instead of being deleted."
+msgstr ""
+"Kui fail salvestatakse vana faili asemele, ei kustutata vana faili,\n"
+"vaid sellele antakse uus nimi laiendiga '.orig'."
+
+#: optiondialog.cpp:1301 optiondialog.cpp:1302
+msgid "Regional Settings"
+msgstr "Lokaale seadistused"
+
+#: optiondialog.cpp:1402
+msgid "Language (restart required)"
+msgstr "Keel (vajalik taaskäivitus)"
+
+#: optiondialog.cpp:1445
+msgid ""
+"Choose the language of the GUI strings or \"Auto\".\n"
+"For a change of language to take place, quit and restart KDiff3."
+msgstr ""
+"Vali GUI stringide keel või \"Auto\".\n"
+"Keele tegelikuks muutmiseks tuleb KDiff3 sulgeda ja uuesti käivitada."
+
+#: optiondialog.cpp:1463
+msgid "Use the same encoding for everything:"
+msgstr "Kõikjal kasutatakse kodeeringut:"
+
+#: optiondialog.cpp:1466
+msgid ""
+"Enable this allows to change all encodings by changing the first only.\n"
+"Disable this if different individual settings are needed."
+msgstr ""
+"Lubab muuta kõiki kodeeringuid ainult esimest kodeeringut muutes.\n"
+"Kui vaja on erinevaid määratlusi, lülita välja."
+
+#: optiondialog.cpp:1471
+msgid "Note: Local Encoding is "
+msgstr "Märkus: kohalik kodeering on "
+
+#: optiondialog.cpp:1475
+msgid "File Encoding for A:"
+msgstr "A kodeering:"
+
+#: optiondialog.cpp:1481
+msgid ""
+"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n"
+"If the file is not Unicode then the selected encoding will be used as "
+"fallback.\n"
+"(Unicode detection depends on the first bytes of a file.)"
+msgstr ""
+"Sisselülitamisel tuvastatakse Unicode (UTF-16 või UTF-8) kodeering.\n"
+"Kui fail ei ole Unicode kodeeringus, kasutatakse selle asemel valitud "
+"kodeeringut.\n"
+"(Unicode tuvastamine sõltub faili esimestest baitidest.)"
+
+#: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503
+msgid "Auto Detect Unicode"
+msgstr "Unicode automaatne tuvastamine"
+
+#: optiondialog.cpp:1490
+msgid "File Encoding for B:"
+msgstr "B kodeering:"
+
+#: optiondialog.cpp:1499
+msgid "File Encoding for C:"
+msgstr "C kodeering:"
+
+#: optiondialog.cpp:1508
+msgid "File Encoding for Merge Output and Saving:"
+msgstr "Kodeering ühendamisväljundil ja salvestamisel:"
+
+#: optiondialog.cpp:1512
+msgid "Auto Select"
+msgstr "Automaatne valik"
+
+#: optiondialog.cpp:1515
+msgid ""
+"If enabled then the encoding from the input files is used.\n"
+"In ambiguous cases a dialog will ask the user to choose the encoding for "
+"saving."
+msgstr ""
+"Sisselülitamisel kasutatakse sisendfailide kodeeringut.\n"
+"Kahtluse korral ilmub dialoog, mis laseb kasutajal valida salvestamisel "
+"kasutatava kodeeringu."
+
+#: optiondialog.cpp:1519
+msgid "File Encoding for Preprocessor Files:"
+msgstr "Eelprotsessori failide kodeering:"
+
+#: optiondialog.cpp:1530
+msgid "Right To Left Language"
+msgstr "Paremalt-vasakule keeled"
+
+#: optiondialog.cpp:1533
+msgid ""
+"Some languages are read from right to left.\n"
+"This setting will change the viewer and editor accordingly."
+msgstr ""
+"Mõningaid keeli loetakse ja kirjutatakse paremalt vasakule.\n"
+"Selle valikuga saab vastavalt muuta näitajat ja redaktorit."
+
+#: optiondialog.cpp:1548
+msgid "Integration"
+msgstr "Integreerimine"
+
+#: optiondialog.cpp:1549
+msgid "Integration Settings"
+msgstr "Integreerimisseadistused"
+
+#: optiondialog.cpp:1563
+msgid "Command line options to ignore:"
+msgstr "Ignoreeritavad käsurea võtmed:"
+
+#: optiondialog.cpp:1568
+msgid ""
+"List of command line options that should be ignored when KDiff3 is used by "
+"other tools.\n"
+"Several values can be specified if separated via ';'\n"
+"This will suppress the \"Unknown option\" error."
+msgstr ""
+"Käsurea võtmete nimekiri, mida ignoreeritakse, kui KDiff3 kasutavad teised "
+"tööriistad.\n"
+"Mitme väärtuse andmisel tuleb need eraldada semikooloniga (;).\n"
+"See väldib vigu \"Tundmatu võti\"."
+
+#: optiondialog.cpp:1575
+msgid "Quit also via Escape key"
+msgstr "Väljumine ka klahviga Escape"
+
+#: optiondialog.cpp:1578
+msgid ""
+"Fast method to exit.\n"
+"For those who are used to using the Escape key."
+msgstr ""
+"Kiire väljumisviis.\n"
+"Mõeldud neile, kellele on südamelähedane klahv Escape."
+
+#: optiondialog.cpp:1583
+msgid "Integrate with ClearCase"
+msgstr "Lõimimine ClearCase'iga"
+
+#: optiondialog.cpp:1586
+msgid ""
+"Integrate with Rational ClearCase from IBM.\n"
+"Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n"
+"(Only enabled when ClearCase \"bin\" directory is in the path.)"
+msgstr ""
+"Lõimimine IBM-i Rational ClearCase'iga.\n"
+"Muudab seosefaili ClearCase'i alamkataloogis \"lib/mgrs\"\n"
+"(Saab sisse lülitada ainult siis, kui ClearCase'i kataloog \"bin\" asub "
+"otsinguteel)"
+
+#: optiondialog.cpp:1592
+msgid "Remove ClearCase Integration"
+msgstr "Clearcase'i lõimimise tühistamine"
+
+#: optiondialog.cpp:1595
+msgid ""
+"Restore the old \"map\" file from before doing the ClearCase integration."
+msgstr "Taastab vana seosefaili, mis kehtis enne ClearCase'iga lõimimist."
+
+#: optiondialog.cpp:1680
+msgid "Incompatible Font"
+msgstr "Sobimatu font"
+
+#: optiondialog.cpp:1681
+msgid "Continue at Own Risk"
+msgstr "Jätkan oma riskil"
+
+#: optiondialog.cpp:1682
+msgid "Select Another Font"
+msgstr "Valin uue fondi"
+
+#: optiondialog.cpp:1717
+msgid "This resets all options. Not only those of the current topic."
+msgstr "See lähtestab kõik valikud, mitte ainult praeguse teema omad."
+
+#: pdiff.cpp:260
+msgid "PreprocessorCmd: "
+msgstr "Eeltöötluse käsk: "
+
+#: pdiff.cpp:265
+msgid "The following option(s) you selected might change data:\n"
+msgstr "Järgmised valitud võimalused võivad muuta andmeid:\n"
+
+#: pdiff.cpp:266
+msgid ""
+"\n"
+"Most likely this is not wanted during a merge.\n"
+"Do you want to disable these settings or continue with these settings active?"
+msgstr ""
+"\n"
+"Peaaegu kindlasti ei ole see ühendamisel soovitav.\n"
+"Kas soovid need seadistused tühistada või siiski nendega jätkata?"
+
+#: pdiff.cpp:268
+msgid "Option Unsafe for Merging"
+msgstr "Ebaturvaline valik ühendamisel"
+
+#: pdiff.cpp:269
+msgid "Use These Options During Merge"
+msgstr "Kasuta neid valikuid ühendamisel"
+
+#: pdiff.cpp:270
+msgid "Disable Unsafe Options"
+msgstr "Keela ebaturvalised valikud"
+
+#: pdiff.cpp:300
+msgid "Loading A"
+msgstr "A laadimine"
+
+#: pdiff.cpp:304
+msgid "Loading B"
+msgstr "B laadimine"
+
+#: pdiff.cpp:321 pdiff.cpp:347
+msgid "Diff: A <-> B"
+msgstr "Erinevus:  A <-> B"
+
+#: pdiff.cpp:327 pdiff.cpp:372
+msgid "Linediff: A <-> B"
+msgstr "Reaerinevus: A <-> B"
+
+#: pdiff.cpp:338
+msgid "Loading C"
+msgstr "C laadimine"
+
+#: pdiff.cpp:350
+msgid "Diff: B <-> C"
+msgstr "Erinevus:  B <-> C"
+
+#: pdiff.cpp:353
+msgid "Diff: A <-> C"
+msgstr "Erinevus:  A <-> C"
+
+#: pdiff.cpp:375
+msgid "Linediff: B <-> C"
+msgstr "Reaerinevus: B <-> C"
+
+#: pdiff.cpp:378
+msgid "Linediff: A <-> C"
+msgstr "Reaerinevus: A <-> C"
+
+#: pdiff.cpp:534
+msgid "All input files contain the same text, but are not binary equal."
+msgstr ""
+"Kõik sisendfailid sisaldavad ühesugust teksti, aga pole binaarselt võrdsed."
+
+#: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541
+#, kde-format
+msgid "Files %1 and %2 have equal text, but are not binary equal. \n"
+msgstr ""
+"Failid %1 ja %2 sisaldavad ühesugust teksti, aga pole binaarselt võrdsed. \n"
+
+#: pdiff.cpp:551
+msgid ""
+"Some inputfiles don't seem to be pure textfiles.\n"
+"Note that the KDiff3-merge was not meant for binary data.\n"
+"Continue at your own risk."
+msgstr ""
+"Paistab, et mõned sisendfailid ei ole puhtad tekstifailid.\n"
+"Arvesta, et KDiff3 ühendamine ei ole mõeldud binaarfailidele.\n"
+"Jätka oma riskil."
+
+#: pdiff.cpp:566
+#, kde-format
+msgid ""
+"Some input characters could not be converted to valid unicode.\n"
+"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n"
+"Don't save the result if unsure. Continue at your own risk.\n"
+"Affected input files are in %1."
+msgstr ""
+"Mõningaid sisendmärke ei saa teisendada korrektseks Unicode'iks.\n"
+"Võib-olla kasutad vale koodekit (nt. UTF-8 mitte-UTF-8 failide puhul).\n"
+"Kui sa pole kindel, ära salvesta tulemust. Jätka omal vastutusel.\n"
+"Mõjutatud sisendfailid asuvad %1."
+
+#: pdiff.cpp:1080
+msgid "Abort"
+msgstr "Katkesta"
+
+#: pdiff.cpp:1087 pdiff.cpp:1175
+msgid "Opening files..."
+msgstr "Failide avamine..."
+
+#: pdiff.cpp:1152 pdiff.cpp:1223
+msgid "File open error"
+msgstr "Viga faili avamisel"
+
+#: pdiff.cpp:1255
+msgid "Cutting selection..."
+msgstr "Valitud teksti lõikamine..."
+
+#: pdiff.cpp:1276
+msgid "Copying selection to clipboard..."
+msgstr "Valitud teksti kopeerimine lõikepuhvrisse..."
+
+#: pdiff.cpp:1292
+msgid "Inserting clipboard contents..."
+msgstr "Lõikepuhvri sisu sisestamine..."
+
+#: pdiff.cpp:1814
+msgid "Save && Continue"
+msgstr "Salvesta ja jätka"
+
+#: pdiff.cpp:1815
+msgid "Continue Without Saving"
+msgstr "Jätka salvestamata"
+
+#: pdiff.cpp:2018
+msgid "Search complete."
+msgstr "Otsing lõpetatud."
+
+#: pdiff.cpp:2018
+msgid "Search Complete"
+msgstr "Otsing lõpetatud"
+
+#: pdiff.cpp:2252
+msgid "Nothing is selected in either diff input window."
+msgstr "Erinevuste sisendakendes pole midagi valitud."
+
+#: pdiff.cpp:2252
+msgid "Error while adding manual diff range"
+msgstr "Viga käsitsi määratud samasuse vahemiku lisamisel"
+
+#: kdiff3_shell.cpp:76
+msgid ""
+"Could not initialize the KDiff3 part.\n"
+"This usually happens due to an installation problem. Please read the README-"
+"file in the source package for details."
+msgstr ""
+"KDiff3 komponenti ei leitud.\n"
+"Tavaliselt tähendab see paigaldusprobleemi. Palun loe lähtepaketi faili "
+"README."
+
+#: rc.cpp:1
+msgctxt "NAME OF TRANSLATORS"
+msgid "Your names"
+msgstr "Marek Laane"
+
+#: rc.cpp:2
+msgctxt "EMAIL OF TRANSLATORS"
+msgid "Your emails"
+msgstr "bald@smail.ee"
+
+#. i18n: file: kdiff3_part.rc:4
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:5
+msgid "&KDiff3"
+msgstr "KDiff&3"
+
+#. i18n: file: kdiff3_part.rc:13
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:8
+msgid "Configure KDiff3"
+msgstr "KDiff3 seadistamine"
+
+#. i18n: file: kdiff3_part.rc:16
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:11
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#. i18n: file: kdiff3_shell.rc:106
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:38
+msgid "Main Toolbar"
+msgstr "Peamine tööriistariba"
+
+#~ msgid "Directory Merge"
+#~ msgstr "Kataloogi ühendamine"
+
+#~ msgid "Enables/disables the toolbar"
+#~ msgstr "Lülitab tööriistariba sisse/välja"
+
+#~ msgid "Files A and B are binary equal.\n"
+#~ msgstr "Failid A ja B on binaarselt võrdsed.\n"
+
+#~ msgid "Files A and C are binary equal.\n"
+#~ msgstr "Failid A ja C on binaarselt võrdsed.\n"
+
+#~ msgid "Files A and C have equal text. \n"
+#~ msgstr "Failid A ja C on ühesuguse tekstiga. \n"
+
+#~ msgid "Files B and C are binary equal.\n"
+#~ msgstr "Failid B ja C on binaarselt võrdsed.\n"
+
+#~ msgid "Files B and C have equal text. \n"
+#~ msgstr "Failid B ja C on ühesuguse tekstiga. \n"
+
+#~ msgid "Preserve carriage return"
+#~ msgstr "Säilitatakse reavahetus"
+
+#~ msgid ""
+#~ "Show carriage return characters '\\r' if they exist.\n"
+#~ "Helps to compare files that were modified under different operating "
+#~ "systems."
+#~ msgstr ""
+#~ "Näidatakse kelgutagastusmärke '\\r', kui neid on.\n"
+#~ "See on abiks erinevatest operatsioonisüsteemidest pärit failide "
+#~ "võrdlemisel."
diff --git a/po/et/kdiff3fileitemactionplugin.po b/po/et/kdiff3fileitemactionplugin.po
new file mode 100644 (file)
index 0000000..1f08512
--- /dev/null
@@ -0,0 +1,97 @@
+# Copyright (C) YEAR This_file_is_part_of_KDE
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Marek Laane <bald@smail.ee>, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-06-22 19:44+0300\n"
+"Last-Translator: Marek Laane <bald@smail.ee>\n"
+"Language-Team: Estonian <kde-et@linux.ee>\n"
+"Language: et\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.2\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: kdiff3fileitemaction.cpp:94
+msgid "KDiff3 ..."
+msgstr "KDiff3 ..."
+
+#: kdiff3fileitemaction.cpp:125
+#, kde-format
+msgid "Compare with %1"
+msgstr "Võrdle failiga %1"
+
+#: kdiff3fileitemaction.cpp:131
+#, kde-format
+msgid "Merge with %1"
+msgstr "Ühenda failiga %1"
+
+#: kdiff3fileitemaction.cpp:137
+#, kde-format
+msgid "Save '%1' for later"
+msgstr "Salvesta '%1' hilisemaks"
+
+#: kdiff3fileitemaction.cpp:143
+msgid "3-way merge with base"
+msgstr "Kolme faili ühendamine baasiga"
+
+#: kdiff3fileitemaction.cpp:150
+msgid "Compare with ..."
+msgstr "Võrdle failiga..."
+
+#: kdiff3fileitemaction.cpp:162
+msgid "Clear list"
+msgstr "Puhasta nimekiri"
+
+#: kdiff3fileitemaction.cpp:170
+msgid "Compare"
+msgstr "Võrdle"
+
+#: kdiff3fileitemaction.cpp:176
+msgid "3 way comparison"
+msgstr "Kolme faili võrdlemine"
+
+#: kdiff3fileitemaction.cpp:180
+msgid "About KDiff3 menu plugin ..."
+msgstr "KDiff3 menüüplugina teave..."
+
+#: kdiff3fileitemaction.cpp:284
+msgid ""
+"KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+"KDiff3 failitoimingute plugin: autoriõigus (C) 2011: Joachim Eibl\n"
+"KDiff3 kodulehekülg: http://kdiff3.sourceforge.net\n"
+"\n"
+
+#: kdiff3fileitemaction.cpp:286
+msgid ""
+"Using the contextmenu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else \"Save\" the first file for later. It "
+"will appear in the \"Compare With ...\" submenu. Then use \"Compare With\" "
+"on second file.\n"
+"For a 3-way merge first \"Save\" the base file, then the branch to merge and "
+"choose \"3-way merge with base\" on the other branch which will be used as "
+"destination.\n"
+"Same also applies to directory comparison and merge."
+msgstr ""
+"Kontekstimenüü laienduse kasutamine:\n"
+"Kahe valitud faili lihtsaks võrdlemiseks vali \"Võrdle\".\n"
+"Kui teine fail asub kuskil mujal, \"salvesta\" esimene fail hilisemaks "
+"kasutamiseks. See ilmub alammenüüsse \"Võrdle failiga...\" Seejärel kasuta "
+"teise faili jaoks käsku \"Võrdle failiga\".\n"
+"Kolme faili ühendamiseks \"salvesta\" kõigepealt baasfail, seejärel "
+"ühendatav variant ja vali \"Kolme faili ühendamine baasiga\" variandiga, "
+"mida kasutatakse sihtfailina.\n"
+"Sama käib kataloogide võrdlemise ja ühendamise kohta."
+
+#: kdiff3fileitemaction.cpp:294
+msgid "About KDiff3 File Item Action Plugin"
+msgstr "KDiff3 failitoimingute plugina teave"
diff --git a/po/et/kdiff3plugin.po b/po/et/kdiff3plugin.po
new file mode 100644 (file)
index 0000000..40e4bae
--- /dev/null
@@ -0,0 +1,98 @@
+# translation of kdiff3plugin.po to Estonian
+# Copyright (C) 2008 This_file_is_part_of_KDE
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Marek Laane <bald@smail.ee>, 2008, 2009, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3plugin\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-05-02 23:27+0300\n"
+"Last-Translator: Marek Laane <bald@smail.ee>\n"
+"Language-Team: Estonian <kde-et@linux.ee>\n"
+"Language: et\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.2\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: kdiff3plugin.cpp:107
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#: kdiff3plugin.cpp:114
+#, kde-format
+msgid "Compare with %1"
+msgstr "Võrdle failiga %1"
+
+#: kdiff3plugin.cpp:120
+#, kde-format
+msgid "Merge with %1"
+msgstr "Ühenda failiga %1"
+
+#: kdiff3plugin.cpp:126
+#, kde-format
+msgid "Save '%1' for later"
+msgstr "Salvesta '%1' hilisemaks"
+
+#: kdiff3plugin.cpp:132
+msgid "3-way merge with base"
+msgstr "Kolme faili ühendamine baasiga"
+
+#: kdiff3plugin.cpp:139
+msgid "Compare with ..."
+msgstr "Võrdle failiga..."
+
+#: kdiff3plugin.cpp:149
+msgid "Clear list"
+msgstr "Puhasta nimekiri"
+
+#: kdiff3plugin.cpp:157
+msgid "Compare"
+msgstr "Võrdle"
+
+#: kdiff3plugin.cpp:163
+msgid "3 way comparison"
+msgstr "Kolme faili võrdlemine"
+
+#: kdiff3plugin.cpp:167
+msgid "About KDiff3 menu plugin ..."
+msgstr "KDiff3 menüüplugina info..."
+
+#: kdiff3plugin.cpp:269
+msgid ""
+"KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+"KDiff3 menüüplugin: autoriõigus (C) 2008: Joachim Eibl\n"
+"KDiff3 kodulehekülg: http://kdiff3.sourceforge.net\n"
+"\n"
+
+#: kdiff3plugin.cpp:271
+msgid ""
+"Using the context menu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else, \"Save\" the first file for later, and "
+"it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With"
+"\" on the second file.\n"
+"For a 3-way merge first, \"Save\" the base file, then the branch to merge, "
+"and then \"3-way merge with base\" on the other branch which will be used as "
+"the destination.\n"
+"The same also applies to directory comparison and merge."
+msgstr ""
+"Kontekstimenüü laienduse kasutamine:\n"
+"Kahe valitud faili lihtsaks võrdlemiseks vali \"Võrdle\".\n"
+"Kui teine fail asub kuskil mujal, \"salvesta\" esimene fail hilisemaks "
+"kasutamiseks. See ilmub alammenüüsse \"Võrdle failiga...\" Seejärel kasuta "
+"teise faili jaoks käsku \"Võrdle failiga\".\n"
+"Kolme faili ühendamiseks \"salvesta\" kõigepealt baasfail, seejärel "
+"ühendatav variant ja vali \"Kolme faili ühendamine baasiga\" variandiga, "
+"mida kasutatakse sihtfailina.\n"
+"Sama käib kataloogide võrdlemise ja ühendamise kohta."
+
+#: kdiff3plugin.cpp:279
+msgid "About KDiff3 Menu Plugin"
+msgstr "KDiff3 menüüplugina teave"
diff --git a/po/fr/CMakeLists.txt b/po/fr/CMakeLists.txt
new file mode 100644 (file)
index 0000000..5d2f6ef
--- /dev/null
@@ -0,0 +1,2 @@
+file(GLOB _po_files *.po)
+GETTEXT_PROCESS_PO_FILES(fr ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
diff --git a/po/fr/kdiff3.po b/po/fr/kdiff3.po
new file mode 100644 (file)
index 0000000..0710df5
--- /dev/null
@@ -0,0 +1,3282 @@
+# translation of kdiff3.po to Français
+# traduction de kdiff3.po vers le Français
+# Copyright (C) 2004, 2005, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+#
+# Simon Depiets <2df@tuxfamily.org>, 2005.
+# Joëlle Cornavin <jcorn@free.fr>, 2008, 2009, 2010, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-07-15 12:08+0200\n"
+"Last-Translator: Joëlle Cornavin <jcorn@free.fr>\n"
+"Language-Team: French <kde-francophone@kde.org>\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Generator: Lokalize 1.2\n"
+
+#: kreplacements/kreplacements.h:105
+msgid "Continue"
+msgstr "Continuer"
+
+#: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158
+#: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512
+msgid "Cancel"
+msgstr "Annuler"
+
+#: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631
+msgid "Quit"
+msgstr "Quitter"
+
+#: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339
+msgid "Ok"
+msgstr "Ok"
+
+#: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715
+msgid "Help"
+msgstr "Aide"
+
+#: kreplacements/kreplacements.cpp:185
+msgid "Defaults"
+msgstr "Par défaut"
+
+#. i18n: file: kdiff3_shell.rc:4
+#. i18n: ectx: Menu (file)
+#: kreplacements/kreplacements.cpp:296 rc.cpp:14
+msgid "&File"
+msgstr "&Fichier"
+
+#: kreplacements/kreplacements.cpp:297
+msgid "&Edit"
+msgstr "&Édition"
+
+#. i18n: file: kdiff3_shell.rc:7
+#. i18n: ectx: Menu (directory)
+#: kreplacements/kreplacements.cpp:298 rc.cpp:17
+msgid "&Directory"
+msgstr "&Dossier"
+
+#. i18n: file: kdiff3_shell.rc:50
+#. i18n: ectx: Menu (movement)
+#: kreplacements/kreplacements.cpp:301 rc.cpp:26
+msgid "&Movement"
+msgstr "D&éplacement"
+
+#. i18n: file: kdiff3_shell.rc:61
+#. i18n: ectx: Menu (diff)
+#: kreplacements/kreplacements.cpp:302 rc.cpp:29
+msgid "D&iffview"
+msgstr "D&ifférences"
+
+#. i18n: file: kdiff3_shell.rc:73
+#. i18n: ectx: Menu (merge)
+#: kreplacements/kreplacements.cpp:303 rc.cpp:32
+msgid "&Merge"
+msgstr "&Fusion"
+
+#. i18n: file: kdiff3_shell.rc:95
+#. i18n: ectx: Menu (window)
+#: kreplacements/kreplacements.cpp:304 rc.cpp:35
+msgid "&Window"
+msgstr "&Fenêtre"
+
+#: kreplacements/kreplacements.cpp:305
+msgid "&Settings"
+msgstr "&Configuration"
+
+#: kreplacements/kreplacements.cpp:306
+msgid "&Help"
+msgstr "&Aide"
+
+#: kreplacements/kreplacements.cpp:353
+msgid "&About"
+msgstr "À &propos"
+
+#: kreplacements/kreplacements.cpp:369
+msgid "A&uthor"
+msgstr "A&uteur"
+
+#: kreplacements/kreplacements.cpp:383
+msgid "&Thanks To"
+msgstr "&Remerciements à"
+
+#. i18n: file: kdiff3_shell.rc:30
+#. i18n: ectx: Menu (dir_current_merge_menu)
+#: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497
+#: rc.cpp:20
+msgid "Current Item Merge Operation"
+msgstr "Opération de fusion de l'élément actuel"
+
+#. i18n: file: kdiff3_shell.rc:38
+#. i18n: ectx: Menu (dir_current_sync_menu)
+#: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498
+#: rc.cpp:23
+msgid "Current Item Sync Operation"
+msgstr "Opération de synchronisation de l'élément actuel"
+
+#: kreplacements/kreplacements.cpp:597
+msgid "Open"
+msgstr "Ouvrir"
+
+#: kreplacements/kreplacements.cpp:606
+msgid "Save"
+msgstr "Enregistrer"
+
+#: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720
+msgid "Save As..."
+msgstr "Enregistrer sous..."
+
+#: kreplacements/kreplacements.cpp:623
+msgid "Print..."
+msgstr "Imprimer..."
+
+#: kreplacements/kreplacements.cpp:639
+msgid "Cut"
+msgstr "Couper"
+
+#: kreplacements/kreplacements.cpp:647
+msgid "Copy"
+msgstr "Copier"
+
+#: kreplacements/kreplacements.cpp:655
+msgid "Paste"
+msgstr "Coller"
+
+#: kreplacements/kreplacements.cpp:663
+msgid "Select All"
+msgstr "Tout sélectionner"
+
+#: kreplacements/kreplacements.cpp:671
+msgid "Show Toolbar"
+msgstr "Afficher la barre d'outils"
+
+#: kreplacements/kreplacements.cpp:679
+msgid "Show &Status Bar"
+msgstr "Afficher l'a barre d'ét&at"
+
+#: kreplacements/kreplacements.cpp:687
+#, kde-format
+msgid "&Configure %1..."
+msgstr "&Configurer %1..."
+
+#: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707
+msgid "About"
+msgstr "À propos de"
+
+#: kreplacements/kreplacements.cpp:722
+msgid "Find"
+msgstr "Chercher"
+
+#: kreplacements/kreplacements.cpp:730
+msgid "Find Next"
+msgstr "Poursuivre la recherche"
+
+#: kreplacements/kreplacements.cpp:750
+msgid "Select Font"
+msgstr "Choisir une police"
+
+#: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676
+msgid ""
+"You selected a variable width font.\n"
+"\n"
+"Because this program doesn't handle variable width fonts\n"
+"correctly, you might experience problems while editing.\n"
+"\n"
+"Do you want to continue or do you want to select another font."
+msgstr ""
+"Vous avez choisi une police à chasse variable.\n"
+"\n"
+"Étant donné que ce programme ne gère pas polices à chasse variable "
+"correctement,\n"
+"vous pourriez rencontrer des problèmes lors de l'édition.\n"
+"\n"
+"Voulez-vous continuer ou choisir une autre police."
+
+#: kreplacements/kreplacements.cpp:792
+msgid "Incompatible font."
+msgstr "Police incompatible."
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Continue at my own risk"
+msgstr "Continuer à vos risques et périls"
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Select another font"
+msgstr "Choisir une autre police"
+
+#: kreplacements/kreplacements.cpp:1134
+msgid "For more documentation, see the help-menu or the subdirectory doc."
+msgstr ""
+"Pour plus d'informations, consultez le menu d'aide ou le fichier de "
+"documentation du sous-dossier."
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "KDiff3-Usage"
+msgstr "Utilisation de KDiff3"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Ignore"
+msgstr "Ignorer"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Exit"
+msgstr "Quitter"
+
+#: diff.cpp:251
+msgid "Writing clipboard data to temp file failed."
+msgstr ""
+"Impossible d'écrire les données du presse-papiers dans un fichier temporaire."
+
+#: diff.cpp:255
+msgid "From Clipboard"
+msgstr "Depuis le presse-papiers"
+
+#: diff.cpp:471
+msgid "Expecting space after closing quotation mark."
+msgstr "Un espace est attendu après le guillemet fermant."
+
+#: diff.cpp:474
+msgid "Not matching quotation marks."
+msgstr "Pas de guillemets appariés."
+
+#: diff.cpp:496
+msgid "Unexpected quotation mark within argument."
+msgstr "Guillemet inattendu dans l'argument."
+
+#: diff.cpp:503
+msgid "No program specified."
+msgstr "Pas de programme spécifié."
+
+#: diff.cpp:605
+#, kde-format
+msgid ""
+"Preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The preprocessing command will be disabled now."
+msgstr ""
+"Il se peut que le pré-traitement ait échoué. Vérifiez cette commande :\n"
+"\n"
+"  %1\n"
+"\n"
+"La commande de pré-traitement sera désactivée dorénavant."
+
+#: diff.cpp:653
+#, kde-format
+msgid ""
+"The line-matching-preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The line-matching-preprocessing command will be disabled now."
+msgstr ""
+"Le pré-traitement de mise en correspondance de lignes a probablement échoué. "
+"Vérifiez cette commande :\n"
+"\n"
+"  %1\n"
+"\n"
+"La commande de pré-traitement de mise en correspondance de lignes sera "
+"désactivée dorénavant."
+
+#: diff.cpp:1776 diff.cpp:1790
+msgid ""
+"Data loss error:\n"
+"If it is reproducible please contact the author.\n"
+msgstr ""
+"Problème de perte de données :\n"
+"Si cela se reproduit, veuillez contacter l'auteur.\n"
+
+#: diff.cpp:1778 diff.cpp:1792
+msgid "Severe Internal Error"
+msgstr "Erreur interne critique"
+
+#: directorymergewindow.cpp:136
+msgid "Mix of links and normal files."
+msgstr "Mélange de liens et de fichiers normaux."
+
+#: directorymergewindow.cpp:143
+msgid "Link: "
+msgstr "Lien : "
+
+#: directorymergewindow.cpp:151
+msgid "Size. "
+msgstr "Taille. "
+
+#: directorymergewindow.cpp:164 directorymergewindow.cpp:174
+msgid "Date & Size: "
+msgstr "Date et taille : "
+
+#: directorymergewindow.cpp:184 directorymergewindow.cpp:190
+#, kde-format
+msgid "Creating temp copy of %1 failed."
+msgstr "Impossible de créer la copie temporaire de %1."
+
+#: directorymergewindow.cpp:201 directorymergewindow.cpp:209
+#, kde-format
+msgid "Opening %1 failed."
+msgstr "Impossible d'ouvrir %1."
+
+#: directorymergewindow.cpp:213
+msgid "Comparing file..."
+msgstr "Comparaison du fichier..."
+
+#: directorymergewindow.cpp:223 directorymergewindow.cpp:229
+#, kde-format
+msgid "Error reading from %1"
+msgstr "Erreur de lecture depuis %1"
+
+#: directorymergewindow.cpp:358
+msgid "Name"
+msgstr "Nom"
+
+#: directorymergewindow.cpp:358
+msgid "Operation"
+msgstr "Opération"
+
+#: directorymergewindow.cpp:358
+msgid "Status"
+msgstr "État"
+
+#: directorymergewindow.cpp:359
+msgid "Unsolved"
+msgstr "Non résolu"
+
+#: directorymergewindow.cpp:359
+msgid "Solved"
+msgstr "Résolu"
+
+#: directorymergewindow.cpp:359
+msgid "Nonwhite"
+msgstr "Non blanc"
+
+#: directorymergewindow.cpp:359
+msgid "White"
+msgstr "Blanc"
+
+#: directorymergewindow.cpp:388
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort "
+"the merge and rescan the directory?"
+msgstr ""
+"Vous effectuez actuellement une fusion de dossier. Voulez-vous vraiment "
+"abandonner la fusion et analyser à nouveau le dossier ?"
+
+#: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655
+#: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823
+msgid "Warning"
+msgstr "Avertissement"
+
+#: directorymergewindow.cpp:390 directorymergewindow.cpp:2965
+msgid "Rescan"
+msgstr "Analyser à nouveau"
+
+#: directorymergewindow.cpp:391 pdiff.cpp:1081
+msgid "Continue Merging"
+msgstr "Poursuivre la fusion"
+
+#: directorymergewindow.cpp:548
+msgid "Opening of directories failed:"
+msgstr "Impossible d'ouvrir les dossiers :"
+
+#: directorymergewindow.cpp:551
+#, kde-format
+msgid "Dir A \"%1\" does not exist or is not a directory.\n"
+msgstr "Le dossier A « %1 » n'existe pas ou n'est pas un dossier.\n"
+
+#: directorymergewindow.cpp:554
+#, kde-format
+msgid "Dir B \"%1\" does not exist or is not a directory.\n"
+msgstr "Le dossier B « %1 » n'existe pas ou n'est pas un dossier.\n"
+
+#: directorymergewindow.cpp:557
+#, kde-format
+msgid "Dir C \"%1\" does not exist or is not a directory.\n"
+msgstr "Le dossier C « %1 » n'existe pas ou n'est pas un dossier.\n"
+
+#: directorymergewindow.cpp:559
+msgid "Directory Open Error"
+msgstr "Erreur lors de l'ouverture du dossier"
+
+#: directorymergewindow.cpp:567
+msgid ""
+"The destination directory must not be the same as A or B when three "
+"directories are merged.\n"
+"Check again before continuing."
+msgstr ""
+"Le dossier de destination ne doit pas être le même que A ou B quand trois "
+"fichiers sont fusionnés.\n"
+"Vérifiez encore avant de continuer."
+
+#: directorymergewindow.cpp:569
+msgid "Parameter Warning"
+msgstr "Avertissement pour les paramètres"
+
+#: directorymergewindow.cpp:574
+msgid "Scanning directories..."
+msgstr "Analyse des dossiers..."
+
+#: directorymergewindow.cpp:607
+msgid "Reading Directory A"
+msgstr "Lecture du dossier A"
+
+#: directorymergewindow.cpp:629
+msgid "Reading Directory B"
+msgstr "Lecture du dossier B"
+
+#: directorymergewindow.cpp:651
+msgid "Reading Directory C"
+msgstr "Lecture du dossier C"
+
+#: directorymergewindow.cpp:677
+msgid "Some subdirectories were not readable in"
+msgstr "Certains sous-dossiers ne sont pas lisibles dans"
+
+#: directorymergewindow.cpp:682
+msgid "Check the permissions of the subdirectories."
+msgstr "Vérifiez les permissions des sous-dossiers."
+
+#: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737
+#: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233
+#: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328
+msgid "Ready."
+msgstr "Prêt."
+
+#: directorymergewindow.cpp:735
+msgid "Directory Comparison Status"
+msgstr "État de la comparaison des dossiers"
+
+#: directorymergewindow.cpp:736
+msgid "Number of subdirectories:"
+msgstr "Nombre de sous-dossiers :"
+
+#: directorymergewindow.cpp:737
+msgid "Number of equal files:"
+msgstr "Nombre de fichiers identiques :"
+
+#: directorymergewindow.cpp:738
+msgid "Number of different files:"
+msgstr "Nombre de fichiers différents :"
+
+#: directorymergewindow.cpp:741
+msgid "Number of manual merges:"
+msgstr "Nombre de fusions manuelles :"
+
+#: directorymergewindow.cpp:912
+msgid "This affects all merge operations."
+msgstr "Ce paramètre affecte toutes les opérations de fusion."
+
+#: directorymergewindow.cpp:913
+msgid "Changing All Merge Operations"
+msgstr "Changement de toutes les opérations de fusion"
+
+#: directorymergewindow.cpp:1312
+msgid "Processing "
+msgstr "En cours "
+
+#: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742
+msgid "To do."
+msgstr "À faire."
+
+#: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996
+msgid "Copy A to B"
+msgstr "Copier A vers B"
+
+#: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997
+msgid "Copy B to A"
+msgstr "Copier B vers A"
+
+#: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998
+msgid "Delete A"
+msgstr "Supprimer A"
+
+#: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999
+msgid "Delete B"
+msgstr "Supprimer B"
+
+#: directorymergewindow.cpp:1814
+msgid "Delete A & B"
+msgstr "Supprimer A et B"
+
+#: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001
+msgid "Merge to A"
+msgstr "Fusionner vers A"
+
+#: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002
+msgid "Merge to B"
+msgstr "Fusionner vers B"
+
+#: directorymergewindow.cpp:1817
+msgid "Merge to A & B"
+msgstr "Fusionner vers A et B"
+
+#: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993
+msgid "Delete (if exists)"
+msgstr "Supprimer (s'il existe)"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+#: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869
+msgid "Merge"
+msgstr "Fusion"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+msgid "Merge (manual)"
+msgstr "Fusion (manuelle)"
+
+#: directorymergewindow.cpp:1824
+msgid "Error: Conflicting File Types"
+msgstr "Erreur : conflit de types de fichiers"
+
+#: directorymergewindow.cpp:1825
+msgid "Error: Changed and Deleted"
+msgstr "Erreur : changé et supprimé"
+
+#: directorymergewindow.cpp:1826
+msgid "Error: Dates are equal but files are not."
+msgstr "Erreur : les dates sont identiques mais les fichiers ne le sont pas."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906
+msgid "This operation is currently not possible."
+msgstr "Cette opération n'est actuellement pas possible."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174
+msgid "Operation Not Possible"
+msgstr "Opération impossible"
+
+#: directorymergewindow.cpp:1945
+msgid ""
+"This should never happen: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"If you know how to reproduce this, please contact the program author."
+msgstr ""
+"Cela ne devrait jamais arriver : \n"
+"\n"
+"mergeResultSaved : m_pMFI=0\n"
+"\n"
+"Si vous savez comment le reproduire, veuillez contacter l'auteur du "
+"programme."
+
+#: directorymergewindow.cpp:1945
+msgid "Program Error"
+msgstr "Erreur du programme"
+
+#: directorymergewindow.cpp:1956
+msgid "An error occurred while copying.\n"
+msgstr "Une erreur est survenue lors de la copie.\n"
+
+#: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025
+#: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105
+#: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123
+#: directorymergewindow.cpp:2374
+msgid "Error"
+msgstr "Erreur"
+
+#: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375
+msgid "Merge Error"
+msgstr "Erreur de fusion"
+
+#: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380
+msgid "Error."
+msgstr "Erreur."
+
+#: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272
+#: directorymergewindow.cpp:2312
+msgid "Done."
+msgstr "Fait."
+
+#: directorymergewindow.cpp:1990
+msgid "Not saved."
+msgstr "Non enregistré."
+
+#: directorymergewindow.cpp:2025
+msgid "Unknown merge operation. (This must never happen!)"
+msgstr "Opération de fusion inconnue. (Ceci ne devrait jamais arriver !)"
+
+#: directorymergewindow.cpp:2057
+msgid "Unknown merge operation."
+msgstr "Opération de fusion inconnue."
+
+#: directorymergewindow.cpp:2072
+msgid ""
+"The merge is about to begin.\n"
+"\n"
+"Choose \"Do it\" if you have read the instructions and know what you are "
+"doing.\n"
+"Choosing \"Simulate it\" will tell you what would happen.\n"
+"\n"
+"Be aware that this program still has beta status and there is NO WARRANTY "
+"whatsoever! Make backups of your vital data!"
+msgstr ""
+"La fusion est sur le point de commencer\n"
+"\n"
+"Choisissez « Effectuer la fusion » si vous avez lu les instructions et savez "
+"ce que vous faites.\n"
+"Choisir « Simuler la fusion » indiquera ce qui arrivera.\n"
+"\n"
+"Sachez que ce programme est encore au stade bêta et qu'il n'y a AUCUNE "
+"GARANTIE d'aucune sorte ! Faites des sauvegardes de vos données vitales !"
+
+#: directorymergewindow.cpp:2077
+msgid "Starting Merge"
+msgstr "Démarrage de la fusion"
+
+#: directorymergewindow.cpp:2078
+msgid "Do It"
+msgstr "Effectuer la fusion"
+
+#: directorymergewindow.cpp:2079
+msgid "Simulate It"
+msgstr "Simuler la fusion"
+
+#: directorymergewindow.cpp:2105
+msgid ""
+"The highlighted item has a different type in the different directories. "
+"Select what to do."
+msgstr ""
+"L'élément mis en surbrillance est d'un type différent dans les différents "
+"dossiers. Choisissez ce qu'il faut faire."
+
+#: directorymergewindow.cpp:2114
+msgid ""
+"The modification dates of the file are equal but the files are not. Select "
+"what to do."
+msgstr ""
+"Les dates de modification du fichier sont identiques, mais les fichiers ne "
+"le sont pas. Choisissez ce qu'il faut faire."
+
+#: directorymergewindow.cpp:2123
+msgid ""
+"The highlighted item was changed in one directory and deleted in the other. "
+"Select what to do."
+msgstr ""
+"L'élément mis en surbrillance a été modifié dans un dossier et supprimé dans "
+"l'autre. Choisissez ce qu'il faut faire."
+
+#: directorymergewindow.cpp:2174
+msgid ""
+"This operation is currently not possible because directory merge is "
+"currently running."
+msgstr ""
+"Cette opération n'est actuellement pas possible car une fusion de dossiers "
+"est en cours."
+
+#: directorymergewindow.cpp:2234
+msgid ""
+"There was an error in the last step.\n"
+"Do you want to continue with the item that caused the error or do you want "
+"to skip this item?"
+msgstr ""
+"Il s'est produit une erreur à la dernière étape.\n"
+"Voulez-vous continuer avec l'élément ayant causé l'erreur ou voulez-vous le "
+"sauter ?"
+
+#: directorymergewindow.cpp:2236
+msgid "Continue merge after an error"
+msgstr "Continuer la fusion après une erreur"
+
+#: directorymergewindow.cpp:2237
+msgid "Continue With Last Item"
+msgstr "Continuer avec le dernier élément"
+
+#: directorymergewindow.cpp:2238
+msgid "Skip Item"
+msgstr "Sauter l'élément"
+
+#: directorymergewindow.cpp:2272
+msgid "Skipped."
+msgstr "Sauté."
+
+#: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493
+msgid "In progress..."
+msgstr "En cours..."
+
+#: directorymergewindow.cpp:2327
+msgid "Merge operation complete."
+msgstr "Opération de fusion terminée."
+
+#: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330
+msgid "Merge Complete"
+msgstr "Fusion terminée"
+
+#: directorymergewindow.cpp:2340
+msgid ""
+"Simulated merge complete: Check if you agree with the proposed operations."
+msgstr ""
+"Simulation de fusion achevée : vérifiez si vous êtes d'accord avec les "
+"opérations proposées."
+
+#: directorymergewindow.cpp:2374
+msgid "An error occurred. Press OK to see detailed information.\n"
+msgstr ""
+"Une erreur s'est produite. Cliquez sur Ok pour avoir les informations "
+"détaillées.\n"
+
+#: directorymergewindow.cpp:2406
+#, kde-format
+msgid "Error: While deleting %1: Creating backup failed."
+msgstr ""
+"Erreur : durant la suppression de %1 : impossible de créer la sauvegarde."
+
+#: directorymergewindow.cpp:2413
+#, kde-format
+msgid "delete directory recursively( %1 )"
+msgstr "supprimer le dossier récursivement( %1 )"
+
+#: directorymergewindow.cpp:2415
+#, kde-format
+msgid "delete( %1 )"
+msgstr "supprimer( %1 )"
+
+#: directorymergewindow.cpp:2430
+msgid "Error: delete dir operation failed while trying to read the directory."
+msgstr ""
+"Erreur : opération de suppression de dossier impossible durant la tentative "
+"de lecture du dossier."
+
+#: directorymergewindow.cpp:2449
+#, kde-format
+msgid "Error: rmdir( %1 ) operation failed."
+msgstr "Erreur : opération de suppression de dossier( %1 ) impossible."
+
+#: directorymergewindow.cpp:2459
+msgid "Error: delete operation failed."
+msgstr "Erreur : opération de suppression impossible."
+
+#: directorymergewindow.cpp:2485
+#, kde-format
+msgid "manual merge( %1, %2, %3 -> %4)"
+msgstr "fusion manuelle(%1, %2, %3 -> %4)"
+
+#: directorymergewindow.cpp:2488
+msgid ""
+"     Note: After a manual merge the user should continue by pressing F7."
+msgstr ""
+"     Remarque : après une fusion manuelle, l'utilisateur devra continuer en "
+"appuyant sur F7."
+
+#: directorymergewindow.cpp:2513
+#, kde-format
+msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed."
+msgstr ""
+"Erreur : copie( %1 -> %2 ) impossible. Impossible de supprimer la "
+"destination existante."
+
+#: directorymergewindow.cpp:2522
+#, kde-format
+msgid "copyLink( %1 -> %2 )"
+msgstr "copier le lien( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2533
+msgid "Error: copyLink failed: Remote links are not yet supported."
+msgstr ""
+"Erreur : copie des liens impossible : les liens distants ne sont pas encore "
+"pris en charge."
+
+#: directorymergewindow.cpp:2539
+msgid "Error: copyLink failed."
+msgstr "Erreur : copie du lien impossible."
+
+#: directorymergewindow.cpp:2564
+#, kde-format
+msgid "copy( %1 -> %2 )"
+msgstr "copie( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2590
+#, kde-format
+msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination."
+msgstr ""
+"Erreur durant le renommage( %1 -> %2 ) : impossible de supprimer la "
+"destination existante."
+
+#: directorymergewindow.cpp:2596
+#, kde-format
+msgid "rename( %1 -> %2 )"
+msgstr "renommer( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2605
+msgid "Error: Rename failed."
+msgstr "Erreur : renommage impossible."
+
+#: directorymergewindow.cpp:2623
+#, kde-format
+msgid "Error during makeDir of %1. Cannot delete existing file."
+msgstr ""
+"Erreur durant la création du dossier de %1. Impossible de supprimer le "
+"fichier existant."
+
+#: directorymergewindow.cpp:2639
+#, kde-format
+msgid "makeDir( %1 )"
+msgstr "création du dossier( %1 )"
+
+#: directorymergewindow.cpp:2649
+msgid "Error while creating directory."
+msgstr "Erreur durant la création du dossier."
+
+#: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784
+msgid "Dest"
+msgstr "Dest"
+
+#: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709
+msgid "Dir"
+msgstr "Dossier"
+
+#: directorymergewindow.cpp:2678
+msgid "Type"
+msgstr "Type"
+
+#: directorymergewindow.cpp:2678
+msgid "Size"
+msgstr "Taille"
+
+#: directorymergewindow.cpp:2679
+msgid "Attr"
+msgstr "Attr"
+
+#: directorymergewindow.cpp:2679
+msgid "Last Modification"
+msgstr "Dernière modification"
+
+#: directorymergewindow.cpp:2679
+msgid "Link-Destination"
+msgstr "Destination du lien"
+
+#: directorymergewindow.cpp:2709 difftextwindow.cpp:401
+msgid "File"
+msgstr "Fichier"
+
+#: directorymergewindow.cpp:2726
+msgid "not available"
+msgstr "non disponible"
+
+#: directorymergewindow.cpp:2746
+msgid "A (Dest): "
+msgstr "A (Dest) : "
+
+#: directorymergewindow.cpp:2749
+msgid "A (Base): "
+msgstr "A (Base) : "
+
+#: directorymergewindow.cpp:2755
+msgid "B (Dest): "
+msgstr "B (Dest) : "
+
+#: directorymergewindow.cpp:2763
+msgid "C (Dest): "
+msgstr "C (Dest) : "
+
+#: directorymergewindow.cpp:2769
+msgid "Dest: "
+msgstr "Dest : "
+
+#: directorymergewindow.cpp:2836
+msgid "Save Directory Merge State As..."
+msgstr "Enregistrer l'état de fusion des dossiers sous..."
+
+#: directorymergewindow.cpp:2959
+msgid "Start/Continue Directory Merge"
+msgstr "Démarrer / Poursuivre la fusion des dossiers"
+
+#: directorymergewindow.cpp:2960
+msgid "Run Operation for Current Item"
+msgstr "Lancer l'opération pour l'élément actuel"
+
+#: directorymergewindow.cpp:2961
+msgid "Compare Selected File"
+msgstr "Comparer le fichier sélectionné"
+
+#: directorymergewindow.cpp:2962
+msgid "Merge Current File"
+msgstr "Fusionner le fichier actuel"
+
+#: directorymergewindow.cpp:2962
+msgid ""
+"Merge\n"
+"File"
+msgstr ""
+"Fusion\n"
+"Fichier"
+
+#: directorymergewindow.cpp:2963
+msgid "Fold All Subdirs"
+msgstr "Replier tous les sous-dossiers"
+
+#: directorymergewindow.cpp:2964
+msgid "Unfold All Subdirs"
+msgstr "Déplier tous les sous-dossiers"
+
+#: directorymergewindow.cpp:2968
+msgid "Choose A for All Items"
+msgstr "Choisir A pour tous les éléments"
+
+#: directorymergewindow.cpp:2969
+msgid "Choose B for All Items"
+msgstr "Choisir B pour tous les éléments"
+
+#: directorymergewindow.cpp:2970
+msgid "Choose C for All Items"
+msgstr "Choisir C pour tous les éléments"
+
+#: directorymergewindow.cpp:2971
+msgid "Auto-Choose Operation for All Items"
+msgstr "Choisir automatiquement l'opération pour tous les éléments"
+
+#: directorymergewindow.cpp:2972
+msgid "No Operation for All Items"
+msgstr "Pas d'opération pour tous les éléments"
+
+#: directorymergewindow.cpp:2977
+msgid "Show Identical Files"
+msgstr "Afficher les fichiers identiques"
+
+#: directorymergewindow.cpp:2977
+msgid ""
+"Identical\n"
+"Files"
+msgstr ""
+"Identiques\n"
+"Fichiers"
+
+#: directorymergewindow.cpp:2978
+msgid "Show Different Files"
+msgstr "Afficher les fichiers différents"
+
+#: directorymergewindow.cpp:2979
+msgid "Show Files only in A"
+msgstr "Afficher les fichiers uniquement dans A"
+
+#: directorymergewindow.cpp:2979
+msgid ""
+"Files\n"
+"only in A"
+msgstr ""
+"Fichiers\n"
+"uniquement dans A"
+
+#: directorymergewindow.cpp:2980
+msgid "Show Files only in B"
+msgstr "Afficher les fichiers uniquement dans B"
+
+#: directorymergewindow.cpp:2980
+msgid ""
+"Files\n"
+"only in B"
+msgstr ""
+"Fichiers\n"
+"uniquement dans B"
+
+#: directorymergewindow.cpp:2981
+msgid "Show Files only in C"
+msgstr "Afficher les fichiers uniquement dans C"
+
+#: directorymergewindow.cpp:2981
+msgid ""
+"Files\n"
+"only in C"
+msgstr ""
+"Fichiers\n"
+"uniquement dans C"
+
+#: directorymergewindow.cpp:2985
+msgid "Compare Explicitly Selected Files"
+msgstr "Comparer les fichiers explicitement sélectionnés"
+
+#: directorymergewindow.cpp:2986
+msgid "Merge Explicitly Selected Files"
+msgstr "Fusionner les fichiers explicitement sélectionnés"
+
+#: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995
+msgid "Do Nothing"
+msgstr "Ne rien faire"
+
+#: directorymergewindow.cpp:2989
+msgid "A"
+msgstr "A"
+
+#: directorymergewindow.cpp:2990
+msgid "B"
+msgstr "B"
+
+#: directorymergewindow.cpp:2991
+msgid "C"
+msgstr "C"
+
+#: directorymergewindow.cpp:3000
+msgid "Delete A && B"
+msgstr "Supprimer A et B"
+
+#: directorymergewindow.cpp:3003
+msgid "Merge to A && B"
+msgstr "Fusionner vers A et B"
+
+#: main.cpp:74 main.cpp:76
+msgid "Ignored. (User defined.)"
+msgstr "Ignoré. (Défini par l'utilisateur)"
+
+#: main.cpp:162
+msgid "kdiff3"
+msgstr "kdiff3"
+
+#: main.cpp:164
+msgid "Tool for Comparison and Merge of Files and Directories"
+msgstr "Outil de comparaison et de fusion de fichiers et de dossiers"
+
+#: main.cpp:165
+msgid "(c) 2002-2011 Joachim Eibl"
+msgstr "(c) 2002-2011 Joachim Eibl"
+
+#: main.cpp:172 kdiff3_part.cpp:303
+msgid "Joachim Eibl"
+msgstr "Joachim Eibl"
+
+#: main.cpp:173
+msgid "Eike Sauer"
+msgstr "Eike Sauer"
+
+#: main.cpp:173
+msgid "Bugfixes, Debian package maintainer"
+msgstr "Corrections de bogues, mainteneur de paquetages Debian"
+
+#: main.cpp:174
+msgid "Sebastien Fricker"
+msgstr "Sebastien Fricker"
+
+#: main.cpp:174
+msgid "Windows installer"
+msgstr "Programme d'installation Windows"
+
+#: main.cpp:175
+msgid "Stephan Binner"
+msgstr "Stephan Binner"
+
+#: main.cpp:175
+msgid "i18n-help"
+msgstr "Aide de i18n"
+
+#: main.cpp:176
+msgid "Stefan Partheymueller"
+msgstr "Stefan Partheymueller"
+
+#: main.cpp:176
+msgid "Clipboard-patch"
+msgstr "Correctif pour le presse-papiers"
+
+#: main.cpp:177
+msgid "David Faure"
+msgstr "David Faure"
+
+#: main.cpp:177
+msgid "KIO-Help"
+msgstr "Aide de KIO"
+
+#: main.cpp:178
+msgid "Bernd Gehrmann"
+msgstr "Bernd Gehrmann"
+
+#: main.cpp:178
+msgid "Class CvsIgnoreList from Cervisia"
+msgstr "Classe CvsIgnoreList de Cervisia"
+
+#: main.cpp:179
+msgid "Andre Woebbeking"
+msgstr "Andre Woebbeking"
+
+#: main.cpp:179
+msgid "Class StringMatcher"
+msgstr "Classe StringMatcher"
+
+#: main.cpp:180
+msgid "Michael Denio"
+msgstr "Michael Denio"
+
+#: main.cpp:180
+msgid "Directory Equality-Coloring patch"
+msgstr "Correctif de coloration d'égalité des dossiers"
+
+#: main.cpp:181
+msgid "Manfred Koehler"
+msgstr "Manfred Koehler"
+
+#: main.cpp:181
+msgid "Fix for slow startup on Windows"
+msgstr "Correction du démarrage lent sous Windows"
+
+#: main.cpp:182
+msgid "Sergey Zorin"
+msgstr "Sergey Zorin"
+
+#: main.cpp:182
+msgid "Diff Ext for Windows"
+msgstr "Extension Diff pour Windows"
+
+#: main.cpp:183
+msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+
+#: main.cpp:183
+msgid "GNU-Diffutils"
+msgstr "GNU-Diffutils"
+
+#: main.cpp:184
+msgid "Tino Boellsterling, Timothy Mee"
+msgstr "Tino Boellsterling, Timothy Mee"
+
+#: main.cpp:184
+msgid "Intensive test, use and feedback"
+msgstr "Tests intensifs, utilisation et retour d'informations"
+
+#: main.cpp:185
+msgid "Michael Schmidt"
+msgstr "Michael Schmidt"
+
+#: main.cpp:185
+msgid "Mac support"
+msgstr "Prise en charge pour Mac"
+
+#: main.cpp:186
+msgid "Valentin Rusu"
+msgstr "Valentin Rusu"
+
+#: main.cpp:186 main.cpp:187
+msgid "KDE4 porting"
+msgstr "Portage vers KDE4"
+
+#: main.cpp:187
+msgid "Albert Astals Cid"
+msgstr "Albert Astals Cid"
+
+#: main.cpp:188
+msgid "Silvan Scherrer"
+msgstr "Silvan Scherrer"
+
+#: main.cpp:188
+msgid "OS2 port"
+msgstr "Portage vers OS2"
+
+#: main.cpp:190
+msgid "+ Many thanks to those who reported bugs and contributed ideas!"
+msgstr ""
+"Et de nombreux remerciements à ceux qui ont signalé des bogues et contribué "
+"à des idées !"
+
+#: main.cpp:196
+msgid "Merge the input."
+msgstr "Fusionner les entrées."
+
+#: main.cpp:197
+msgid "Explicit base file. For compatibility with certain tools."
+msgstr "Fichier de base explicite. Pour la compatibilité avec certains outils."
+
+#: main.cpp:198
+msgid "Output file. Implies -m. E.g.: -o newfile.txt"
+msgstr "Fichier de sortie. Implique -m. Par ex. : -o nouveaufichier.txt"
+
+#: main.cpp:199
+msgid "Output file, again. (For compatibility with certain tools.)"
+msgstr ""
+"Fichier de sortie, encore. (Pour la compatibilité avec certains outils)"
+
+#: main.cpp:200
+msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)"
+msgstr ""
+"Pas d'interface graphique si tous les conflits se résolvent automatiquement. "
+"(Nécessite un fichier -o)"
+
+#: main.cpp:201
+msgid "Don't solve conflicts automatically. (For compatibility...)"
+msgstr ""
+"Ne pas résoudre les conflits automatiquement. (Pour la compatibilité...)"
+
+#: main.cpp:202
+msgid "Visible name replacement for input file 1 (base)."
+msgstr "Remplacement de nom visible pour le fichier d'entrée 1 (base)."
+
+#: main.cpp:203
+msgid "Visible name replacement for input file 2."
+msgstr "Remplacement de nom visible pour le fichier d'entrée 2."
+
+#: main.cpp:204
+msgid "Visible name replacement for input file 3."
+msgstr "Remplacement de nom visible pour le fichier d'entrée 3."
+
+#: main.cpp:205
+msgid "Alternative visible name replacement. Supply this once for every input."
+msgstr ""
+"Remplacement de nom visible secondaire. À fournir une seule fois pour chaque "
+"entrée."
+
+#: main.cpp:206
+msgid ""
+"Override a config setting. Use once for every setting. E.g.: --cs "
+"\"AutoAdvance=1\""
+msgstr ""
+"Annuler un paramètre de configuration. À utiliser une seule fois pour chaque "
+"paramètre. Par ex. : --cs « AutoAdvance=1 »"
+
+#: main.cpp:207
+msgid "Show list of config settings and current values."
+msgstr ""
+"Afficher la liste des paramètres de configuration et les valeurs actuelles."
+
+#: main.cpp:208
+msgid "Use a different config file."
+msgstr "Utiliser un fichier de configuration différent."
+
+#: main.cpp:211
+msgid "file1 to open (base, if not specified via --base)"
+msgstr "fichier 1 à ouvrir (base, si non spécifié, via --base)"
+
+#: main.cpp:212
+msgid "file2 to open"
+msgstr "fichier 2 à ouvrir"
+
+#: main.cpp:213
+msgid "file3 to open"
+msgstr "fichier 3 à ouvrir"
+
+#: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976
+#: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002
+#: mergeresultwindow.cpp:1014
+#, kde-format
+msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)"
+msgstr ""
+"Nombre de conflits non résolus restants : %1 (dont %2 concernent des espaces)"
+
+#: mergeresultwindow.cpp:303
+msgid ""
+"The output has been modified.\n"
+"If you continue your changes will be lost."
+msgstr ""
+"La sortie a été modifiée.\n"
+"Si vous continuez, vos changement seront perdus."
+
+#: mergeresultwindow.cpp:834 pdiff.cpp:532
+msgid "All input files are binary equal."
+msgstr "Tous les fichiers d'entrée sont binairement identiques."
+
+#: mergeresultwindow.cpp:836
+msgid "All input files contain the same text."
+msgstr "Tous les fichiers d'entrée contiennent le même texte."
+
+#: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840
+#: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540
+#, kde-format
+msgid "Files %1 and %2 are binary equal.\n"
+msgstr "Les fichiers %1 et %2 sont binairement identiques.\n"
+
+#: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841
+#: mergeresultwindow.cpp:843
+#, kde-format
+msgid "Files %1 and %2 have equal text.\n"
+msgstr "Les fichiers %1 et%2 ont un texte identique.\n"
+
+#: mergeresultwindow.cpp:849
+msgid "Total number of conflicts: "
+msgstr "Nombre total de conflits : "
+
+#: mergeresultwindow.cpp:850
+msgid ""
+"\n"
+"Nr of automatically solved conflicts: "
+msgstr ""
+"\n"
+"Nombre de conflits résolus automatiquement : "
+
+#: mergeresultwindow.cpp:851
+msgid ""
+"\n"
+"Nr of unsolved conflicts: "
+msgstr ""
+"\n"
+"Nombre de conflits non résolus : "
+
+#: mergeresultwindow.cpp:853
+msgid "Conflicts"
+msgstr "Conflits"
+
+#: mergeresultwindow.cpp:1728
+msgid "<No src line>"
+msgstr "<Pas de ligne source>"
+
+#: mergeresultwindow.cpp:1736
+msgid "<Merge Conflict (Whitespace only)>"
+msgstr "<Conflit de fusion(Espaces seulement)>"
+
+#: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517
+msgid "<Merge Conflict>"
+msgstr "<Conflit de fusion>"
+
+#: mergeresultwindow.cpp:2725
+msgid ""
+"Not all conflicts are solved yet.\n"
+"File not saved.\n"
+msgstr ""
+"Tous les conflits ne sont pas encore résolus.\n"
+"Fichier non enregistré.\n"
+
+#: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736
+msgid "Conflicts Left"
+msgstr "Conflits restants"
+
+#: mergeresultwindow.cpp:2734
+msgid ""
+"There is a line end style conflict. Please choose the line end style "
+"manually.\n"
+"File not saved.\n"
+msgstr ""
+"Il y a un conflit de style de fin de ligne. Veuillez choisir le style de fin "
+"de ligne manuellement.\n"
+"Le fichier n'est pas enregistré.\n"
+
+#: mergeresultwindow.cpp:2748
+msgid ""
+"\n"
+"\n"
+"Creating backup failed. File not saved."
+msgstr ""
+"\n"
+"\n"
+"Création de la sauvegarde impossible. Fichier non enregistré."
+
+#: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792
+msgid "File Save Error"
+msgstr "Erreur lors de l'enregistrement du fichier"
+
+#: mergeresultwindow.cpp:2792
+msgid "Error while writing."
+msgstr "Erreur durant l'écriture."
+
+#: mergeresultwindow.cpp:3122
+msgid "Output"
+msgstr "Sortie"
+
+#: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314
+msgid "[Modified]"
+msgstr "[Modifié]"
+
+#: mergeresultwindow.cpp:3141
+msgid "Encoding for saving"
+msgstr "Encodage pour l'enregistrement"
+
+#: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737
+#: optiondialog.cpp:762
+msgid "Line end style:"
+msgstr "Style de fin de ligne :"
+
+#: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767
+msgid "Unix"
+msgstr "Unix"
+
+#: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737
+msgid "DOS"
+msgstr "DOS"
+
+#: mergeresultwindow.cpp:3229
+msgid "Conflict"
+msgstr "Conflit"
+
+#: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263
+#: mergeresultwindow.cpp:3265
+msgid "Codec from"
+msgstr "Codec depuis"
+
+#: kdiff3_part.cpp:157 kdiff3_part.cpp:234
+msgid "Couldn't find files for comparison."
+msgstr "Impossible de trouver les fichiers pour la comparaison."
+
+#: kdiff3_part.cpp:302
+msgid "KDiff3Part"
+msgstr "KDiff3Part"
+
+#: fileaccess.cpp:612
+msgid ""
+"While trying to make a backup, deleting an older backup failed. \n"
+"Filename: "
+msgstr ""
+"Pendant la tentative de sauvegarde, la suppression d'une sauvegarde "
+"précédente a échoué.\n"
+"Nom du fichier : "
+
+#: fileaccess.cpp:619
+msgid ""
+"While trying to make a backup, renaming failed. \n"
+"Filenames: "
+msgstr ""
+"Pendant la tentative de sauvegarde, le renommage a échoué.\n"
+"Noms des fichiers : "
+
+#: fileaccess.cpp:643
+#, kde-format
+msgid "Getting file status: %1"
+msgstr "Obtention de l'état du fichier : %1"
+
+#: fileaccess.cpp:686
+#, kde-format
+msgid "Reading file: %1"
+msgstr "Lecture du fichier : %1"
+
+#: fileaccess.cpp:723
+#, kde-format
+msgid "Writing file: %1"
+msgstr "Écriture du fichier : %1"
+
+#: fileaccess.cpp:751
+msgid "Out of memory"
+msgstr "Mémoire pleine"
+
+#: fileaccess.cpp:786
+#, kde-format
+msgid "Making directory: %1"
+msgstr "Création du dossier : %1"
+
+#: fileaccess.cpp:806
+#, kde-format
+msgid "Removing directory: %1"
+msgstr "Suppression du dossier : %1"
+
+#: fileaccess.cpp:821
+#, kde-format
+msgid "Removing file: %1"
+msgstr "Suppression du fichier : %1"
+
+#: fileaccess.cpp:837
+#, kde-format
+msgid "Creating symbolic link: %1 -> %2"
+msgstr "Création d'un lien symbolique : %1 -> %2"
+
+#: fileaccess.cpp:864
+#, kde-format
+msgid "Renaming file: %1 -> %2"
+msgstr "Renommage du fichier : %1 -> %2"
+
+#: fileaccess.cpp:897
+#, kde-format
+msgid "Copying file: %1 -> %2"
+msgstr "Copie du fichier : %1 -> %2"
+
+#: fileaccess.cpp:911
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for reading failed. Filename: "
+"%1"
+msgstr ""
+"Erreur durant l'opération de copie du fichier : impossible d'ouvrir le "
+"fichier en lecture. Nom du fichier : %1"
+
+#: fileaccess.cpp:917
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for writing failed. Filename: "
+"%1"
+msgstr ""
+"Erreur durant l'opération de copie du fichier : impossible d'ouvrir le "
+"fichier en écriture. Nom du fichier : %1"
+
+#: fileaccess.cpp:932
+#, kde-format
+msgid "Error during file copy operation: Reading failed. Filename: %1"
+msgstr ""
+"Erreur durant l'opération de copie du fichier : lecture impossible. Nom du "
+"fichier : %1"
+
+#: fileaccess.cpp:941
+#, kde-format
+msgid "Error during file copy operation: Writing failed. Filename: %1"
+msgstr ""
+"Erreur durant l'opération de copie du fichier : écriture impossible. Nom du "
+"fichier : %1"
+
+#: fileaccess.cpp:1231
+msgid "Reading directory: "
+msgstr "Lecture du dossier : "
+
+#: fileaccess.cpp:1355
+#, kde-format
+msgid "Listing directory: %1"
+msgstr "Listage du dossier : %1"
+
+#: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396
+msgid "&Cancel"
+msgstr "&Annuler"
+
+#: difftextwindow.cpp:403
+msgid "Line"
+msgstr "Ligne"
+
+#: difftextwindow.cpp:405
+msgid "Line not available"
+msgstr "Ligne non disponible"
+
+#: difftextwindow.cpp:1703 difftextwindow.cpp:1736
+msgid "Encoding:"
+msgstr "Encodage :"
+
+#: difftextwindow.cpp:1759 kdiff3.cpp:831
+msgid "Top line"
+msgstr "Première ligne"
+
+#: difftextwindow.cpp:1769
+msgid "End"
+msgstr "Fin"
+
+#: kdiff3.cpp:169
+msgid "Current Configuration:"
+msgstr "Configuration actuelle :"
+
+#: kdiff3.cpp:174
+msgid "Config Option Error:"
+msgstr "Erreur d'option de configuration :"
+
+#: kdiff3.cpp:219
+msgid "Option --auto used, but no output file specified."
+msgstr "Option --auto utilisée, mais aucun fichier résultat spécifié."
+
+#: kdiff3.cpp:369
+msgid "Option --auto ignored for directory comparison."
+msgstr "Option --auto ignorée pour la comparaison de dossiers."
+
+#: kdiff3.cpp:405
+msgid "Saving failed."
+msgstr "Impossible d'enregistrer."
+
+#: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214
+msgid "Opening of these files failed:"
+msgstr "Ouverture de ces fichiers impossible :"
+
+#: kdiff3.cpp:449
+msgid "File Open Error"
+msgstr "Erreur d'ouverture d'un fichier"
+
+#: kdiff3.cpp:477
+msgid "Opens documents for comparison..."
+msgstr "Ouvre les documents pour faire une comparaison..."
+
+#: kdiff3.cpp:479
+msgid "Reload"
+msgstr "Recharger"
+
+#: kdiff3.cpp:482
+msgid "Saves the merge result. All conflicts must be solved!"
+msgstr ""
+"Enregistre le résultat de la fusion. Tous les conflits doivent être résolus !"
+
+#: kdiff3.cpp:484
+msgid "Saves the current document as..."
+msgstr "Enregistre le document actuel sous..."
+
+#: kdiff3.cpp:487
+msgid "Print the differences"
+msgstr "Afficher les différences"
+
+#: kdiff3.cpp:490
+msgid "Quits the application"
+msgstr "Quitte l'application"
+
+#: kdiff3.cpp:492
+msgid "Cuts the selected section and puts it to the clipboard"
+msgstr "Coupe la sélection et la place dans le presse-papiers"
+
+#: kdiff3.cpp:494
+msgid "Copies the selected section to the clipboard"
+msgstr "Copie la sélection dans le presse-papiers"
+
+#: kdiff3.cpp:496
+msgid "Pastes the clipboard contents to current position"
+msgstr "Colle le contenu du presse-papiers à la position actuelle"
+
+#: kdiff3.cpp:498
+msgid "Select everything in current window"
+msgstr "Tout sélectionner dans la fenêtre actuelle"
+
+#: kdiff3.cpp:500
+msgid "Search for a string"
+msgstr "Chercher une chaîne"
+
+#: kdiff3.cpp:502
+msgid "Search again for the string"
+msgstr "Chercher à nouveau la chaîne"
+
+#: kdiff3.cpp:507
+msgid "Enables/disables the statusbar"
+msgstr "Active/désactive la barre d'état"
+
+#: kdiff3.cpp:511
+msgid "Configure KDiff3..."
+msgstr "Configurer KDiff3..."
+
+#: kdiff3.cpp:532
+msgid "Go to Current Delta"
+msgstr "Aller au delta actuel"
+
+#: kdiff3.cpp:532
+msgid ""
+"Current\n"
+"Delta"
+msgstr ""
+"Actuel\n"
+"Delta"
+
+#: kdiff3.cpp:534
+msgid "Go to First Delta"
+msgstr "Aller au premier delta"
+
+#: kdiff3.cpp:534
+msgid ""
+"First\n"
+"Delta"
+msgstr ""
+"Premier\n"
+"Delta"
+
+#: kdiff3.cpp:536
+msgid "Go to Last Delta"
+msgstr "Aller au dernier delta"
+
+#: kdiff3.cpp:536
+msgid ""
+"Last\n"
+"Delta"
+msgstr ""
+"Dernier\n"
+"Delta"
+
+#: kdiff3.cpp:538
+msgid "(Skips white space differences when \"Show White Space\" is disabled.)"
+msgstr ""
+"(Saute les différences d'espaces quand « Afficher les espaces » est "
+"désactivé)"
+
+#: kdiff3.cpp:539
+msgid ""
+"(Does not skip white space differences even when \"Show White Space\" is "
+"disabled.)"
+msgstr ""
+"(Ne saute pas les différences d'espaces même quand « Afficher les espaces » "
+"est désactivé)"
+
+#: kdiff3.cpp:540
+msgid "Go to Previous Delta"
+msgstr "Aller au delta précédent"
+
+#: kdiff3.cpp:540
+msgid ""
+"Prev\n"
+"Delta"
+msgstr ""
+"Précédent\n"
+"Delta"
+
+#: kdiff3.cpp:542
+msgid "Go to Next Delta"
+msgstr "Aller au delta suivant"
+
+#: kdiff3.cpp:542
+msgid ""
+"Next\n"
+"Delta"
+msgstr ""
+"Suiv\n"
+"Delta"
+
+#: kdiff3.cpp:544
+msgid "Go to Previous Conflict"
+msgstr "Aller au conflit précédent"
+
+#: kdiff3.cpp:544
+msgid ""
+"Prev\n"
+"Conflict"
+msgstr ""
+"Préc\n"
+"Conflit"
+
+#: kdiff3.cpp:546
+msgid "Go to Next Conflict"
+msgstr "Aller au conflit suivant"
+
+#: kdiff3.cpp:546
+msgid ""
+"Next\n"
+"Conflict"
+msgstr ""
+"Suiv\n"
+"Conflit"
+
+#: kdiff3.cpp:548
+msgid "Go to Previous Unsolved Conflict"
+msgstr "Aller au conflit non résolu précédent"
+
+#: kdiff3.cpp:548
+msgid ""
+"Prev\n"
+"Unsolved"
+msgstr ""
+"Préc\n"
+"Non résolu"
+
+#: kdiff3.cpp:550
+msgid "Go to Next Unsolved Conflict"
+msgstr "Aller au conflit non résolu suivant"
+
+#: kdiff3.cpp:550
+msgid ""
+"Next\n"
+"Unsolved"
+msgstr ""
+"Suiv\n"
+"Non résolu"
+
+#: kdiff3.cpp:552
+msgid "Select Line(s) From A"
+msgstr "Sélectionner la(les) ligne(s) à partir de A"
+
+#: kdiff3.cpp:552
+msgid ""
+"Choose\n"
+"A"
+msgstr ""
+"Choisir\n"
+"A"
+
+#: kdiff3.cpp:553
+msgid "Select Line(s) From B"
+msgstr "Sélectionner la(les) ligne(s) à partir de B"
+
+#: kdiff3.cpp:553
+msgid ""
+"Choose\n"
+"B"
+msgstr ""
+"Choisir\n"
+"B"
+
+#: kdiff3.cpp:554
+msgid "Select Line(s) From C"
+msgstr "Sélectionner la(les) ligne(s) à partir de C"
+
+#: kdiff3.cpp:554
+msgid ""
+"Choose\n"
+"C"
+msgstr ""
+"Choisir\n"
+"C"
+
+#: kdiff3.cpp:555
+msgid "Automatically Go to Next Unsolved Conflict After Source Selection"
+msgstr ""
+"Aller automatiquement au conflit non résolu suivant après sélection de la "
+"source"
+
+#: kdiff3.cpp:555
+msgid ""
+"Auto\n"
+"Next"
+msgstr ""
+"Auto\n"
+"Suivant"
+
+#: kdiff3.cpp:557
+msgid "Show Space && Tabulator Characters for Differences"
+msgstr ""
+"Afficher les caractères d'espacement et de tabulation pour voir les "
+"différences"
+
+#: kdiff3.cpp:557
+msgid ""
+"White\n"
+"Characters"
+msgstr ""
+"Blanc\n"
+"Caractères"
+
+#: kdiff3.cpp:558
+msgid "Show White Space"
+msgstr "Afficher les espaces"
+
+#: kdiff3.cpp:558
+msgid ""
+"White\n"
+"Deltas"
+msgstr ""
+"Blanc\n"
+"Deltas"
+
+#: kdiff3.cpp:560
+msgid "Show Line Numbers"
+msgstr "Afficher les numéros de ligne"
+
+#: kdiff3.cpp:560
+msgid ""
+"Line\n"
+"Numbers"
+msgstr ""
+"Ligne\n"
+"Numéros"
+
+#: kdiff3.cpp:561
+msgid "Choose A Everywhere"
+msgstr "Choisir A partout"
+
+#: kdiff3.cpp:562
+msgid "Choose B Everywhere"
+msgstr "Choisir B partout"
+
+#: kdiff3.cpp:563
+msgid "Choose C Everywhere"
+msgstr "Choisir C partout"
+
+#: kdiff3.cpp:564
+msgid "Choose A for All Unsolved Conflicts"
+msgstr "Choisir A pour tous les conflits non résolus"
+
+#: kdiff3.cpp:565
+msgid "Choose B for All Unsolved Conflicts"
+msgstr "Choisir B pour tous les conflits non résolus"
+
+#: kdiff3.cpp:566
+msgid "Choose C for All Unsolved Conflicts"
+msgstr "Choisir C pour tous les conflits non résolus"
+
+#: kdiff3.cpp:567
+msgid "Choose A for All Unsolved Whitespace Conflicts"
+msgstr "Choisir A pour tous les conflits d'espaces non résolus"
+
+#: kdiff3.cpp:568
+msgid "Choose B for All Unsolved Whitespace Conflicts"
+msgstr "Choisir B pour tous les conflits d'espaces non résolus"
+
+#: kdiff3.cpp:569
+msgid "Choose C for All Unsolved Whitespace Conflicts"
+msgstr "Choisir C pour tous les conflits d'espaces non résolus"
+
+#: kdiff3.cpp:570
+msgid "Automatically Solve Simple Conflicts"
+msgstr "Résoudre automatiquement les conflits simples"
+
+#: kdiff3.cpp:571
+msgid "Set Deltas to Conflicts"
+msgstr "Attribuer des deltas aux conflits"
+
+#: kdiff3.cpp:572
+msgid "Run Regular Expression Auto Merge"
+msgstr "Exécuter la fusion automatique de l'expression rationnelle"
+
+#: kdiff3.cpp:573
+msgid "Automatically Solve History Conflicts"
+msgstr "Résoudre automatiquement les conflits d'historique"
+
+#: kdiff3.cpp:574
+msgid "Split Diff At Selection"
+msgstr "Scinder les différences à la sélection"
+
+#: kdiff3.cpp:575
+msgid "Join Selected Diffs"
+msgstr "Réunir les différences sélectionnées"
+
+#: kdiff3.cpp:577
+msgid "Show Window A"
+msgstr "Afficher la fenêtre A"
+
+#: kdiff3.cpp:578
+msgid "Show Window B"
+msgstr "Afficher la fenêtre B"
+
+#: kdiff3.cpp:579
+msgid "Show Window C"
+msgstr "Afficher la fenêtre C"
+
+#: kdiff3.cpp:580 kdiff3.cpp:591
+msgid "Focus Next Window"
+msgstr "Mettre le focus sur la fenêtre suivante"
+
+#: kdiff3.cpp:582
+msgid "Normal Overview"
+msgstr "Vue d'ensemble normale"
+
+#: kdiff3.cpp:583
+msgid "A vs. B Overview"
+msgstr "Vue d'ensemble de A par rapport à B"
+
+#: kdiff3.cpp:584
+msgid "A vs. C Overview"
+msgstr "Vue d'ensemble de A par rapport à C"
+
+#: kdiff3.cpp:585
+msgid "B vs. C Overview"
+msgstr "Vue d'ensemble de B par rapport à C"
+
+#: kdiff3.cpp:586
+msgid "Word Wrap Diff Windows"
+msgstr "Retour à la ligne automatique des fenêtres d'affichage de différences"
+
+#: kdiff3.cpp:587
+msgid "Add Manual Diff Alignment"
+msgstr "Ajouter l'alignement manuel des différences"
+
+#: kdiff3.cpp:588
+msgid "Clear All Manual Diff Alignments"
+msgstr "Effacer tous les alignements manuels des différences"
+
+#: kdiff3.cpp:593
+msgid "Focus Prev Window"
+msgstr "Mettre le focus sur la fenêtre précédente"
+
+#: kdiff3.cpp:594
+msgid "Toggle Split Orientation"
+msgstr "Changer l'orientation du séparateur"
+
+#: kdiff3.cpp:596
+msgid "Dir && Text Split Screen View"
+msgstr "Vue de l'écran divisé en dossier et texte"
+
+#: kdiff3.cpp:598
+msgid "Toggle Between Dir && Text View"
+msgstr "Basculer entre l'affichage du dossier et l'affichage du texte"
+
+#: kdiff3.cpp:654 pdiff.cpp:1812
+msgid "The merge result hasn't been saved."
+msgstr "Le résultat de la fusion n'a pas été enregistré."
+
+#: kdiff3.cpp:656
+msgid "Save && Quit"
+msgstr "Enregistrer et quitter"
+
+#: kdiff3.cpp:657
+msgid "Quit Without Saving"
+msgstr "Quitter sans enregistrer"
+
+#: kdiff3.cpp:665 pdiff.cpp:1823
+msgid "Saving the merge result failed."
+msgstr "Enregistrement du résultat de la fusion impossible."
+
+#: kdiff3.cpp:676 pdiff.cpp:1078
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort?"
+msgstr ""
+"Vous effectuez actuellement une fusion de dossiers. Voulez-vous vraiment "
+"l'interrompre ?"
+
+#: kdiff3.cpp:701
+msgid "Saving file..."
+msgstr "Enregistrement du fichier..."
+
+#: kdiff3.cpp:718
+msgid "Saving file with a new filename..."
+msgstr "Enregistrement du fichier sous un nouveau nom..."
+
+#: kdiff3.cpp:781
+msgid "Printing not implemented."
+msgstr "Impression non implémentée."
+
+#: kdiff3.cpp:815
+msgid "Printing..."
+msgstr "Impression..."
+
+#: kdiff3.cpp:956
+msgid "Selection"
+msgstr "Sélection"
+
+#: kdiff3.cpp:982
+msgid "Printing completed."
+msgstr "L'impression est terminée."
+
+#: kdiff3.cpp:986
+msgid "Printing aborted."
+msgstr "Impression interrompue."
+
+#: kdiff3.cpp:993
+msgid "Exiting..."
+msgstr "Fermeture..."
+
+#: kdiff3.cpp:1006
+msgid "Toggling toolbar..."
+msgstr "(Dés)Activation de la barre d'outils..."
+
+#: kdiff3.cpp:1027
+msgid "Toggle the statusbar..."
+msgstr "(Dés)Activation de la barre d'état..."
+
+#: smalldialogs.cpp:58
+msgid "A (Base):"
+msgstr "A (base) :"
+
+#: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99
+#: smalldialogs.cpp:142
+msgid "File..."
+msgstr "Fichier..."
+
+#: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101
+#: smalldialogs.cpp:144
+msgid "Dir..."
+msgstr "Dossier..."
+
+#: smalldialogs.cpp:93
+msgid "C (Optional):"
+msgstr "C (optionnel) :"
+
+#: smalldialogs.cpp:116
+msgid "Swap/Copy Names ..."
+msgstr "Permuter / Copier les noms..."
+
+#: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123
+#, kde-format
+msgid "Swap %1<->%2"
+msgstr "Permuter %1<->%2"
+
+#: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126
+#, kde-format
+msgid "Copy %1->Output"
+msgstr "Copier %1->Sortie"
+
+#: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129
+#, kde-format
+msgid "Swap %1<->Output"
+msgstr "Permuter %1<->Sortie"
+
+#: smalldialogs.cpp:136
+msgid "Output (optional):"
+msgstr "Sortie (optionnel) :"
+
+#: smalldialogs.cpp:168
+msgid "Configure..."
+msgstr "Configurer..."
+
+#: smalldialogs.cpp:174
+msgid "&OK"
+msgstr "&Ok"
+
+#: smalldialogs.cpp:362
+msgid "Search text:"
+msgstr "Texte à chercher :"
+
+#: smalldialogs.cpp:369
+msgid "Case sensitive"
+msgstr "Tenir compte de la casse"
+
+#: smalldialogs.cpp:372
+msgid "Search A"
+msgstr "Chercher dans A"
+
+#: smalldialogs.cpp:377
+msgid "Search B"
+msgstr "Chercher dans B"
+
+#: smalldialogs.cpp:382
+msgid "Search C"
+msgstr "Chercher dans C"
+
+#: smalldialogs.cpp:387
+msgid "Search output"
+msgstr "Chercher dans la sortie"
+
+#: smalldialogs.cpp:392
+msgid "&Search"
+msgstr "&Chercher"
+
+#: smalldialogs.cpp:409
+msgid "Regular Expression Tester"
+msgstr "Contrôleur d'expressions rationnelles"
+
+#: smalldialogs.cpp:414 optiondialog.cpp:936
+msgid "Auto merge regular expression:"
+msgstr "Expression rationnelle de fusion automatique :"
+
+#: smalldialogs.cpp:422
+msgid "Example auto merge line:"
+msgstr "Exemple de ligne de fusion automatique :"
+
+#: smalldialogs.cpp:424
+msgid "To test auto merge, copy a line as used in your files."
+msgstr ""
+"Pour effectuer un test de fusion automatique, copiez une ligne comme utilisé "
+"dans vos fichiers."
+
+#: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494
+msgid "Match result:"
+msgstr "Résultat de la correspondance :"
+
+#: smalldialogs.cpp:441 optiondialog.cpp:962
+msgid "History start regular expression:"
+msgstr "Expression rationnelle de début d'historique :"
+
+#: smalldialogs.cpp:449
+msgid "Example history start line (with leading comment):"
+msgstr "Exemple de ligne de début d'historique (avec commentaire de départ) :"
+
+#: smalldialogs.cpp:451
+msgid ""
+"Copy a history start line as used in your files,\n"
+"including the leading comment."
+msgstr ""
+"Copiez une ligne de début d'historique comme utilisé dans vos fichiers,\n"
+"y compris le commentaire de départ."
+
+#: smalldialogs.cpp:469 optiondialog.cpp:972
+msgid "History entry start regular expression:"
+msgstr "Expression rationnelle de début d'un élément d'historique :"
+
+#: smalldialogs.cpp:477
+msgid "History sort key order:"
+msgstr "Ordre des clés de tri de l'historique :"
+
+#: smalldialogs.cpp:485
+msgid "Example history entry start line (without leading comment):"
+msgstr ""
+"Exemple de ligne de début d'élément d'historique (avec commentaire de "
+"départ) :"
+
+#: smalldialogs.cpp:487
+msgid ""
+"Copy a history entry start line as used in your files,\n"
+"but omit the leading comment."
+msgstr ""
+"Copiez une ligne de début d'élément d'historique comme utilisé dans vos "
+"fichiers,\n"
+"mais en omettant le commentaire de départ."
+
+#: smalldialogs.cpp:501
+msgid "Sort key result:"
+msgstr "Résultat de la clé de tri :"
+
+#: smalldialogs.cpp:508
+msgid "OK"
+msgstr "Ok"
+
+#: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583
+msgid "Match success."
+msgstr "Correspondance correcte."
+
+#: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589
+msgid "Match failed."
+msgstr "Correspondance incorrecte."
+
+#: smalldialogs.cpp:574
+msgid "Opening and closing parentheses do not match in regular expression."
+msgstr ""
+"Les parenthèses d'ouverture et de fermeture ne correspondent pas dans "
+"l'expression rationnelle."
+
+#: optiondialog.cpp:367
+msgid "Unicode, 8 bit"
+msgstr "Unicode, 8 bit"
+
+#: optiondialog.cpp:368
+msgid "Unicode"
+msgstr "Unicode"
+
+#: optiondialog.cpp:369
+msgid "Latin1"
+msgstr "Latin1"
+
+#: optiondialog.cpp:388
+msgid "Change this if non-ASCII characters are not displayed correctly."
+msgstr ""
+"Changez ce paramètre si les caractères non-ASCII ne sont pas affichés "
+"correctement."
+
+#: optiondialog.cpp:465
+msgid "Configure"
+msgstr "Configurer"
+
+#: optiondialog.cpp:531
+msgid "Font"
+msgstr "Police"
+
+#: optiondialog.cpp:532
+msgid "Editor & Diff Output Font"
+msgstr "Police de l'éditeur et de la sortie de l'analyse des différences"
+
+#: optiondialog.cpp:556
+msgid "Italic font for deltas"
+msgstr "Police en italique pour les deltas"
+
+#: optiondialog.cpp:559
+msgid ""
+"Selects the italic version of the font for differences.\n"
+"If the font doesn't support italic characters, then this does nothing."
+msgstr ""
+"Sélectionne la version italique de la police pour les différences.\n"
+"Si la police ne prend pas en charge les caractères en italique, cette "
+"commande n'a aucun effet."
+
+#: optiondialog.cpp:568
+msgid "Color"
+msgstr "Couleur"
+
+#: optiondialog.cpp:569
+msgid "Colors Settings"
+msgstr "Paramètres des couleurs"
+
+#: optiondialog.cpp:588
+msgid "Editor and Diff Views:"
+msgstr "Vues de l'éditeur et de la fenêtre d'analyse de différences :"
+
+#: optiondialog.cpp:596
+msgid "Foreground color:"
+msgstr "Couleur du premier plan :"
+
+#: optiondialog.cpp:603
+msgid "Background color:"
+msgstr "Couleur de fond :"
+
+#: optiondialog.cpp:612
+msgid "Diff background color:"
+msgstr "Couleur de fond pour l'affichage des différences :"
+
+#: optiondialog.cpp:620
+msgid "Color A:"
+msgstr "Couleur A :"
+
+#: optiondialog.cpp:628
+msgid "Color B:"
+msgstr "Couleur B :"
+
+#: optiondialog.cpp:636
+msgid "Color C:"
+msgstr "Couleur C :"
+
+#: optiondialog.cpp:643
+msgid "Conflict color:"
+msgstr "Couleur des conflits :"
+
+#: optiondialog.cpp:651
+msgid "Current range background color:"
+msgstr "Couleur de fond de la plage actuelle :"
+
+#: optiondialog.cpp:659
+msgid "Current range diff background color:"
+msgstr "Couleur de fond pour les différences dans la plage actuelle :"
+
+#: optiondialog.cpp:666
+msgid "Color for manually aligned difference ranges:"
+msgstr "Couleur pour les plages de différences alignées manuellement :"
+
+#: optiondialog.cpp:672
+msgid "Directory Comparison View:"
+msgstr "Affichage de comparaison des dossiers :"
+
+#: optiondialog.cpp:678
+msgid "Newest file color:"
+msgstr "Couleur pour les fichiers les plus récents :"
+
+#: optiondialog.cpp:682
+msgid ""
+"Changing this color will only be effective when starting the next directory "
+"comparison."
+msgstr ""
+"Le changement de cette couleur ne sera effectif qu'au prochain démarrage de "
+"la comparaison des dossiers."
+
+#: optiondialog.cpp:687
+msgid "Oldest file color:"
+msgstr "Couleur pour les fichiers les plus anciens :"
+
+#: optiondialog.cpp:695
+msgid "Middle age file color:"
+msgstr "Couleur pour les fichiers d'âge moyen :"
+
+#: optiondialog.cpp:703
+msgid "Color for missing files:"
+msgstr "Couleur pour les fichiers manquants :"
+
+#: optiondialog.cpp:717
+msgid "Editor"
+msgstr "Éditeur"
+
+#: optiondialog.cpp:718
+msgid "Editor Behavior"
+msgstr "Comportement de l'éditeur"
+
+#: optiondialog.cpp:732
+msgid "Tab inserts spaces"
+msgstr "Une tabulation insère des espaces"
+
+#: optiondialog.cpp:735
+msgid ""
+"On: Pressing tab generates the appropriate number of spaces.\n"
+"Off: A tab character will be inserted."
+msgstr ""
+"Activé : appuyer sur la touche de tabulation génère le nombre approprié "
+"d'espaces.\n"
+"Désactivé : un caractère de tabulation va être inséré."
+
+#: optiondialog.cpp:741
+msgid "Tab size:"
+msgstr "Taille d'une tabulation :"
+
+#: optiondialog.cpp:747
+msgid "Auto indentation"
+msgstr "Indentation automatique"
+
+#: optiondialog.cpp:750
+msgid "On: The indentation of the previous line is used for a new line.\n"
+msgstr ""
+"Activé : l'indentation de la ligne précédente est utilisée pour une nouvelle "
+"ligne.\n"
+
+#: optiondialog.cpp:754
+msgid "Auto copy selection"
+msgstr "Copier automatiquement la sélection"
+
+#: optiondialog.cpp:757
+msgid ""
+"On: Any selection is immediately written to the clipboard.\n"
+"Off: You must explicitely copy e.g. via Ctrl-C."
+msgstr ""
+"Activé : toute sélection est immédiatement copiée dans le presse-papiers.\n"
+"Désactivé : vous devrez effectuer la copie explicitement (ex. via Ctrl-C)."
+
+#: optiondialog.cpp:768
+msgid "Dos/Windows"
+msgstr "Dos / Windows"
+
+#: optiondialog.cpp:769
+msgid "Autodetect"
+msgstr "Détection automatique"
+
+#: optiondialog.cpp:772
+msgid ""
+"Sets the line endings for when an edited file is saved.\n"
+"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A"
+msgstr ""
+"Configure les fins de ligne quand un fichier modifié est enregistré.\n"
+"DOS/Windows : CR+LF ; Unix : LF ; avec CR=0D, LF=0A"
+
+#: optiondialog.cpp:784
+msgid "Diff"
+msgstr "Analyse des différences"
+
+#: optiondialog.cpp:785
+msgid "Diff Settings"
+msgstr "Paramètres de l'analyse des différences"
+
+#: optiondialog.cpp:809
+msgid "Treat as white space."
+msgstr "Considérer comme des espaces."
+
+#: optiondialog.cpp:811
+msgid "Ignore numbers"
+msgstr "Ignorer les nombres"
+
+#: optiondialog.cpp:814
+msgid ""
+"Ignore number characters during line matching phase. (Similar to Ignore "
+"white space.)\n"
+"Might help to compare files with numeric data."
+msgstr ""
+"Ignorer les caractères numériques durant une phase de mise en correspondance "
+"de lignes. (Similaire à « Ignorer les espaces »).\n"
+"Peut aider à comparer des fichiers comportant des données numériques."
+
+#: optiondialog.cpp:819
+msgid "Ignore C/C++ comments"
+msgstr "Ignorer les commentaires C/C++"
+
+#: optiondialog.cpp:821
+msgid "Treat C/C++ comments like white space."
+msgstr "Considérer les commentaires C/C++ comme des espaces."
+
+#: optiondialog.cpp:825
+msgid "Ignore case"
+msgstr "Ignorer la casse"
+
+#: optiondialog.cpp:828
+msgid "Treat case differences like white space changes. ('a'<=>'A')"
+msgstr ""
+"Considérer les différences de casse comme des changements d'espaces. "
+"(« a »<=>« A »)"
+
+#: optiondialog.cpp:832
+msgid "Preprocessor command:"
+msgstr "Commande du pré-processeur :"
+
+#: optiondialog.cpp:836
+msgid "User defined pre-processing. (See the docs for details.)"
+msgstr ""
+"Pré-traitement défini par l'utilisateur. (Voir les documentations pour les "
+"détails)"
+
+#: optiondialog.cpp:839
+msgid "Line-matching preprocessor command:"
+msgstr "Commande du pré-processeur pour la mise en correspondance de lignes :"
+
+#: optiondialog.cpp:843
+msgid ""
+"This pre-processor is only used during line matching.\n"
+"(See the docs for details.)"
+msgstr ""
+"Ce pré-processeur n'est utilisé que durant la mise en correspondance de "
+"lignes.\n"
+"(Consultez la documentation pour les détails)"
+
+#: optiondialog.cpp:846
+msgid "Try hard (slower)"
+msgstr "Essayer encore (plus lent)"
+
+#: optiondialog.cpp:849
+msgid ""
+"Enables the --minimal option for the external diff.\n"
+"The analysis of big files will be much slower."
+msgstr ""
+"Active l'option -minimal pour une analyse de différences externe.\n"
+"L'analyse de gros fichiers sera beaucoup plus lente."
+
+#: optiondialog.cpp:854
+msgid "Align B and C for 3 input files"
+msgstr "Aligner B et C pour 3 fichiers d'entrée"
+
+#: optiondialog.cpp:857
+msgid ""
+"Try to align B and C when comparing or merging three input files.\n"
+"Not recommended for merging because merge might get more complicated.\n"
+"(Default is off.)"
+msgstr ""
+"Essayez d'aligner B et C lors de la comparaison ou de la fusion de trois "
+"fichiers d'entrée.\n"
+"Option non recommandée pour une effectuer une fusion, car cette dernière "
+"pourrait s'en trouver plus complexe.\n"
+"(Par défaut, elle est désactivée)"
+
+#: optiondialog.cpp:870
+msgid "Merge Settings"
+msgstr "Paramètres de la fusion"
+
+#: optiondialog.cpp:885
+msgid "Auto advance delay (ms):"
+msgstr "Délai d'avance automatique (en ms) :"
+
+#: optiondialog.cpp:890
+msgid ""
+"When in Auto-Advance mode the result of the current selection is shown \n"
+"for the specified time, before jumping to the next conflict. Range: 0-2000 ms"
+msgstr ""
+"En mode Avance automatique, le résultat de la sélection actuelle est "
+"affiché \n"
+"pour la période spécifiée, avant d'aller au conflit suivant. Intervalle : "
+"0-2 000 ms"
+
+#: optiondialog.cpp:895
+msgid "Show info dialogs"
+msgstr "Afficher les boîtes de dialogue d'information"
+
+#: optiondialog.cpp:897
+msgid "Show a dialog with information about the number of conflicts."
+msgstr ""
+"Affiche une boîte de dialogue contenant des informations sur le nombre de "
+"conflits."
+
+#: optiondialog.cpp:900
+msgid "White space 2-file merge default:"
+msgstr "Option par défaut pour les espaces lors de la fusion de 2 fichiers :"
+
+#: optiondialog.cpp:904 optiondialog.cpp:917
+msgid "Manual Choice"
+msgstr "Choix manuel"
+
+#: optiondialog.cpp:908 optiondialog.cpp:922
+msgid ""
+"Allow the merge algorithm to automatically select an input for white-space-"
+"only changes."
+msgstr ""
+"Autoriser l'algorithme de fusion à sélectionner automatiquement une entrée "
+"pour les changements d'espaces seuls."
+
+#: optiondialog.cpp:913
+msgid "White space 3-file merge default:"
+msgstr "Option par défaut pour les espaces lors de la fusion de 3 fichiers :"
+
+#: optiondialog.cpp:927
+msgid "Automatic Merge Regular Expression"
+msgstr "Expression rationnelle de fusion automatique"
+
+#: optiondialog.cpp:940
+msgid ""
+"Regular expression for lines where KDiff3 should automatically choose one "
+"source.\n"
+"When a line with a conflict matches the regular expression then\n"
+"- if available - C, otherwise B will be chosen."
+msgstr ""
+"Expression rationnelle pour les lignes depuis lesquelles KDiff3 devra "
+"choisir automatiquement une source.\n"
+"Lorsqu'une ligne présentant un conflit correspond à l'expression "
+"rationnelle, alors\n"
+"la ligne C - si elle est disponible, sera choisie, sinon ce sera la ligne B."
+
+#: optiondialog.cpp:946
+msgid "Run regular expression auto merge on merge start"
+msgstr ""
+"Exécuter la fusion automatique des expressions rationnelles au démarrage de "
+"la fusion"
+
+#: optiondialog.cpp:948
+msgid ""
+"Run the merge for auto merge regular expressions\n"
+"immediately when a merge starts.\n"
+msgstr ""
+"Exécute la fusion pour les expressions rationnelles de fusion automatique\n"
+"immédiatement lorsqu'une fusion démarre.\n"
+
+#: optiondialog.cpp:953
+msgid "Version Control History Merging"
+msgstr "Fusion de l'historique du contrôle de versions"
+
+#: optiondialog.cpp:966
+msgid ""
+"Regular expression for the start of the version control history entry.\n"
+"Usually this line contains the \"$Log$\" keyword.\n"
+"Default value: \".*\\$Log.*\\$.*\""
+msgstr ""
+"Expression rationnelle pour le début de la ligne d'historique de contrôle de "
+"versions.\n"
+"Habituellement, cette ligne contient le mot clé « $Log$ ».\n"
+"Valeur par défaut : « .*\\$Log.*\\$.* »"
+
+#: optiondialog.cpp:984
+msgid ""
+"A version control history entry consists of several lines.\n"
+"Specify the regular expression to detect the first line (without the leading "
+"comment).\n"
+"Use parentheses to group the keys you want to use for sorting.\n"
+"If left empty, then KDiff3 assumes that empty lines separate history "
+"entries.\n"
+"See the documentation for details."
+msgstr ""
+"Un élément d'historique de contrôle de versions se compose de plusieurs "
+"lignes.\n"
+"Spécifiez l'expression rationnelle utilisée pour détecter la première ligne "
+"(sans le commentaire de début).\n"
+"Regroupez à l'aide de parenthèses les clés que vous voulez utiliser pour le "
+"tri.\n"
+"SI ce champ reste vide, alors KDiff3 part du principe que les lignes vides "
+"séparent les éléments de l'historique.\n"
+"Consultez la documentation pour les détails."
+
+#: optiondialog.cpp:992
+msgid "History merge sorting"
+msgstr "Tri de fusion de l'historique"
+
+#: optiondialog.cpp:994
+msgid "Sort version control history by a key."
+msgstr "Trie l'historique de contrôle de versions par clé."
+
+#: optiondialog.cpp:1004
+msgid "History entry start sort key order:"
+msgstr "Ordre des clés de tri du début de l'élément de l'historique :"
+
+#: optiondialog.cpp:1008
+msgid ""
+"Each pair of parentheses used in the regular expression for the history "
+"start entry\n"
+"groups a key that can be used for sorting.\n"
+"Specify the list of keys (that are numbered in order of occurrence\n"
+"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n"
+"If left empty, then no sorting will be done.\n"
+"See the documentation for details."
+msgstr ""
+"Chaque paire de parenthèses utilisée dans l'expression rationnelle pour "
+"l'élément de début de l'historique\n"
+"regroupe une clé susceptible d'être employée pour le tri.\n"
+"Spécifiez la liste des clés (qui sont numérotées par ordre d'occurrence, \n"
+"en commençant par 1) en utilisant « , » comme séparateur (par ex. "
+"« 4,5,6,1,2,3,7 »).\n"
+"Si ce champ reste vide, alors aucun tri ne sera effectué.\n"
+"Consultez la documentation pour les détails."
+
+#: optiondialog.cpp:1019
+msgid "Merge version control history on merge start"
+msgstr ""
+"Fusionner l'historique de contrôle de versions lors du démarrage de la fusion"
+
+#: optiondialog.cpp:1021
+msgid "Run version control history automerge on merge start."
+msgstr ""
+"Exécuter la fusion automatique de l'historique de contrôle de versions au "
+"début de la fusion."
+
+#: optiondialog.cpp:1025
+msgid "Max number of history entries:"
+msgstr "Nombre maximal d'éléments d'historique :"
+
+#: optiondialog.cpp:1028
+msgid "Cut off after specified number. Use -1 for infinite number of entries."
+msgstr ""
+"Couper après le nombre spécifié. Utiliser -1 pour un nombre illimité "
+"d'éléments."
+
+#: optiondialog.cpp:1032
+msgid "Test your regular expressions"
+msgstr "Testez vos expressions rationnelles"
+
+#: optiondialog.cpp:1037
+msgid "Irrelevant merge command:"
+msgstr "Commande de fusion non pertinente :"
+
+#: optiondialog.cpp:1041
+msgid ""
+"If specified this script is run after automerge\n"
+"when no other relevant changes were detected.\n"
+"Called with the parameters: filename1 filename2 filename3"
+msgstr ""
+"Si indiquée, ce script est lancé après une fusion automatique\n"
+"quand aucun autre changement pertinent n'a été détecté.\n"
+"Appelée avec les paramètres : nomfichier1 nomfichier2 nomfichier3"
+
+#: optiondialog.cpp:1047
+msgid "Auto save and quit on merge without conflicts"
+msgstr "Enregistrer automatiquement et quitter en cas de fusion sans conflits"
+
+#: optiondialog.cpp:1050
+msgid ""
+"If KDiff3 was started for a file-merge from the command line and all\n"
+"conflicts are solvable without user interaction then automatically save and "
+"quit.\n"
+"(Similar to command line option \"--auto\".)"
+msgstr ""
+"Lorsque KDiff3 a été lancé depuis la ligne de commande pour effectuer une "
+"fusion de fichiers et\n"
+"que tous les conflits peuvent être résolus sans interaction de "
+"l'utilisateur, alors cette commande enregistre automatiquement et ferme "
+"l'application.\n"
+"(Similaire à l'option en ligne de commande « --auto »)"
+
+#: optiondialog.cpp:1061 optiondialog.cpp:1062
+msgid "Directory"
+msgstr "Dossier"
+
+#: optiondialog.cpp:1075
+msgid "Recursive directories"
+msgstr "Dossiers récursifs"
+
+#: optiondialog.cpp:1077
+msgid "Whether to analyze subdirectories or not."
+msgstr "Si vous voulez ou non analyser les sous-dossiers."
+
+#: optiondialog.cpp:1079
+msgid "File pattern(s):"
+msgstr "Motif(s) de fichiers :"
+
+#: optiondialog.cpp:1084
+msgid ""
+"Pattern(s) of files to be analyzed. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Motif(s) de fichiers à analyser. \n"
+"Jokers : « * » et «  ? » \n"
+"Plusieurs motifs peuvent être spécifiés à l'aide du séparateur : « ; »"
+
+#: optiondialog.cpp:1090
+msgid "File-anti-pattern(s):"
+msgstr "Motif(s) de fichiers refusé(s) :"
+
+#: optiondialog.cpp:1095
+msgid ""
+"Pattern(s) of files to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Motif(s) de fichiers à exclure de l'analyse.\n"
+"Jokers : « * » et « ? »\n"
+"Plusieurs motifs peuvent être spécifiés à l'aide du séparateur : « ; »"
+
+#: optiondialog.cpp:1101
+msgid "Dir-anti-pattern(s):"
+msgstr "Motif(s) de dossiers exclu(s) :"
+
+#: optiondialog.cpp:1106
+msgid ""
+"Pattern(s) of directories to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Motif(s) des dossiers à exclure de l'analyse. \n"
+"Jokers : « * » et « ? »\n"
+"Plusieurs motifs peuvent être spécifiés à l'aide du séparateur : « ; »"
+
+#: optiondialog.cpp:1112
+msgid "Use .cvsignore"
+msgstr "Utiliser .cvsignore"
+
+#: optiondialog.cpp:1115
+msgid ""
+"Extends the antipattern to anything that would be ignored by CVS.\n"
+"Via local \".cvsignore\" files this can be directory specific."
+msgstr ""
+"Étend l'exclusion de motif(s) à tout ce qui serait ignoré par CVS.\n"
+"Via les fichiers « .cvsignore » locaux, ce peut être spécifique à un dossier."
+
+#: optiondialog.cpp:1120
+msgid "Find hidden files and directories"
+msgstr "Chercher les fichiers et les dossiers cachés"
+
+#: optiondialog.cpp:1123
+msgid "Finds files and directories with the hidden attribute."
+msgstr "Cherche les fichiers et les dossiers ayant l'attribut « caché »."
+
+#: optiondialog.cpp:1125
+msgid "Finds files and directories starting with '.'."
+msgstr "Cherche les fichiers et les dossiers commençant par « . »."
+
+#: optiondialog.cpp:1129
+msgid "Follow file links"
+msgstr "Suivre les liens vers des fichiers"
+
+#: optiondialog.cpp:1132
+msgid ""
+"On: Compare the file the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+"Activé : compare le fichier sur lequel pointe le lien.\n"
+"Désactivé : compare les liens."
+
+#: optiondialog.cpp:1137
+msgid "Follow directory links"
+msgstr "Suivre les liens vers un dossier"
+
+#: optiondialog.cpp:1140
+msgid ""
+"On: Compare the directory the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+"Activé : compare le dossier sur lequel pointe le lien.\n"
+"Désactivé : compare les liens."
+
+#: optiondialog.cpp:1156
+msgid "Case sensitive filename comparison"
+msgstr "Tenir compte de la casse lors de la comparaison des noms de fichiers"
+
+#: optiondialog.cpp:1159
+msgid ""
+"The directory comparison will compare files or directories when their names "
+"match.\n"
+"Set this option if the case of the names must match. (Default for Windows is "
+"off, otherwise on.)"
+msgstr ""
+"La comparaison de dossiers compare les fichiers ou les dossiers lorsque "
+"leurs noms correspondent.\n"
+"Réglez cette option si la casse des noms doit correspondre. (Désactivée par "
+"défaut pour Windows, sinon Activée)"
+
+#: optiondialog.cpp:1163
+msgid "File Comparison Mode"
+msgstr "Mode de comparaison de fichiers"
+
+#: optiondialog.cpp:1169
+msgid "Binary comparison"
+msgstr "Comparaison binaire"
+
+#: optiondialog.cpp:1170
+msgid "Binary comparison of each file. (Default)"
+msgstr "Comparaison binaire de chaque fichier. (Par défaut)"
+
+#: optiondialog.cpp:1173
+msgid "Full analysis"
+msgstr "Analyse complète"
+
+#: optiondialog.cpp:1174
+msgid ""
+"Do a full analysis and show statistics information in extra columns.\n"
+"(Slower than a binary comparison, much slower for binary files.)"
+msgstr ""
+"Effectue une analyse complète et affiche les informations statistiques dans "
+"des colonnes supplémentaires.\n"
+"(Plus lente qu'une comparaison binaire, beaucoup plus pour les fichiers "
+"binaires)"
+
+#: optiondialog.cpp:1178
+msgid "Trust the size and modification date (unsafe)"
+msgstr "Se fier à la taille et à la date de modification (peu sûr)"
+
+#: optiondialog.cpp:1179
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"Files with equal contents but different modification dates will appear as "
+"different.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"Suppose que les fichiers sont identiques si la date de modification et la "
+"longueur du fichier sont égales.\n"
+"Les fichiers ayant un contenu identique mais des dates de modification "
+"distinctes apparaîtront comme étant différents.\n"
+"Utile pour les dossiers volumineux ou les réseaux lents."
+
+#: optiondialog.cpp:1184
+msgid ""
+"Trust the size and date, but use binary comparison if date does not match "
+"(unsafe)"
+msgstr ""
+"Se fier à la tailler et à la date, mais utiliser la comparaison binaire si "
+"la date ne correspond pas (peu sûr)"
+
+#: optiondialog.cpp:1185
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"If the dates are not equal but the sizes are, use binary comparison.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"Suppose que les fichiers sont identiques si la date de modification et la "
+"longueur du fichier sont égales.\n"
+"Si la date n'est pas identique mais que les tailles le sont, utilise la "
+"comparaison binaire.\n"
+"Utile pour les dossiers volumineux ou les réseaux lents."
+
+#: optiondialog.cpp:1190
+msgid "Trust the size (unsafe)"
+msgstr "Se fier à la taille (peu sûr)"
+
+#: optiondialog.cpp:1191
+msgid ""
+"Assume that files are equal if their file lengths are equal.\n"
+"Useful for big directories or slow networks when the date is modified during "
+"download."
+msgstr ""
+"Suppose que tous les fichiers sont identiques si leurs longueurs sont "
+"égales.\n"
+"Utile pour les dossiers volumineux ou les réseaux lents, quand la taille est "
+"modifiée durant le téléchargement."
+
+#: optiondialog.cpp:1199
+msgid "Synchronize directories"
+msgstr "Synchroniser les dossiers"
+
+#: optiondialog.cpp:1202
+msgid ""
+"Offers to store files in both directories so that\n"
+"both directories are the same afterwards.\n"
+"Works only when comparing two directories without specifying a destination."
+msgstr ""
+"Propose d'enregistrer les fichiers dans les deux dossiers pour que les deux "
+"dossiers soient identiques ensuite.\n"
+"Fonctionne seulement quand la comparaison de deux dossiers ne spécifie pas "
+"de destination."
+
+#: optiondialog.cpp:1208
+msgid "White space differences considered equal"
+msgstr "Différences d'espaces considérées comme égales"
+
+#: optiondialog.cpp:1211
+msgid ""
+"If files differ only by white space consider them equal.\n"
+"This is only active when full analysis is chosen."
+msgstr ""
+"Si les fichiers ne diffèrent que par des espaces, ils sont considérés comme "
+"identiques.\n"
+"Cette fonction n'est active que si vous choisissez l'analyse complète."
+
+#: optiondialog.cpp:1217
+msgid "Copy newer instead of merging (unsafe)"
+msgstr "Copier le plus récent au lieu de fusionner (peu sûr)"
+
+#: optiondialog.cpp:1220
+msgid ""
+"Don't look inside, just take the newer file.\n"
+"(Use this only if you know what you are doing!)\n"
+"Only effective when comparing two directories."
+msgstr ""
+"N'ouvre pas le fichier, se contente de prendre le plus récent.\n"
+"(À n'utilisez que si vous savez ce que vous faites !)\n"
+"Option effective seulement lors de la comparaison de dossiers."
+
+#: optiondialog.cpp:1225
+msgid "Backup files (.orig)"
+msgstr "Sauvegarder les fichiers (.orig)"
+
+#: optiondialog.cpp:1228
+msgid ""
+"If a file would be saved over an old file, then the old file\n"
+"will be renamed with a '.orig' extension instead of being deleted."
+msgstr ""
+"Quand il s'agira d'enregistrer un fichier sur un fichier plus ancien, alors "
+"l'ancien\n"
+"sera renommé avec une extension « .orig » au lieu d'être supprimé."
+
+#: optiondialog.cpp:1301 optiondialog.cpp:1302
+msgid "Regional Settings"
+msgstr "Paramètres régionaux"
+
+#: optiondialog.cpp:1402
+msgid "Language (restart required)"
+msgstr "Langue (redémarrage nécessaire)"
+
+#: optiondialog.cpp:1445
+msgid ""
+"Choose the language of the GUI strings or \"Auto\".\n"
+"For a change of language to take place, quit and restart KDiff3."
+msgstr ""
+"Choisissez la langue des chaînes de l'interface graphique ou « Auto ».\n"
+"Pour qu'un changement de langue entre en vigueur, quittez et redémarrez "
+"KDiff3."
+
+#: optiondialog.cpp:1463
+msgid "Use the same encoding for everything:"
+msgstr "Utiliser le même encodage pour tout :"
+
+#: optiondialog.cpp:1466
+msgid ""
+"Enable this allows to change all encodings by changing the first only.\n"
+"Disable this if different individual settings are needed."
+msgstr ""
+"Cocher cette option permet de changer tous les encodages en ne modifiant que "
+"le premier.\n"
+"Décochez-la si des paramètres individuels différents sont nécessaires."
+
+#: optiondialog.cpp:1471
+msgid "Note: Local Encoding is "
+msgstr "Remarque : l'encodage local est"
+
+#: optiondialog.cpp:1475
+msgid "File Encoding for A:"
+msgstr "Encodage du fichier pour A :"
+
+#: optiondialog.cpp:1481
+msgid ""
+"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n"
+"If the file is not Unicode then the selected encoding will be used as "
+"fallback.\n"
+"(Unicode detection depends on the first bytes of a file.)"
+msgstr ""
+"Si cette option est cochée, alors l'encodage Unicode (UTF-16 ou UTF-8) sera "
+"détecté.\n"
+"Si le fichier n'est pas en Unicode, alors l'encodage sélectionné sera "
+"utilisé comme solution de repli.\n"
+"(La détection de l'Unicode repose sur les premiers octets d'un fichier)."
+
+#: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503
+msgid "Auto Detect Unicode"
+msgstr "Détecter automatiquement Unicode"
+
+#: optiondialog.cpp:1490
+msgid "File Encoding for B:"
+msgstr "Encodage du fichier pour B :"
+
+#: optiondialog.cpp:1499
+msgid "File Encoding for C:"
+msgstr "Encodage du fichier pour C :"
+
+#: optiondialog.cpp:1508
+msgid "File Encoding for Merge Output and Saving:"
+msgstr "Encodage du fichier pour la sortie de la fusion et l'enregistrement :"
+
+#: optiondialog.cpp:1512
+msgid "Auto Select"
+msgstr "Sélectionner automatiquement"
+
+#: optiondialog.cpp:1515
+msgid ""
+"If enabled then the encoding from the input files is used.\n"
+"In ambiguous cases a dialog will ask the user to choose the encoding for "
+"saving."
+msgstr ""
+"Si cette option est cochée, alors l'encodage provenant des fichiers d'entrée "
+"est utilisé.\n"
+"Dans les cas ambigus, une boîte de dialogue demandera à l'utilisateur de "
+"choisir l'encodage pour l'enregistrement."
+
+#: optiondialog.cpp:1519
+msgid "File Encoding for Preprocessor Files:"
+msgstr "Encodage du fichier pour les fichiers pré-processeurs :"
+
+#: optiondialog.cpp:1530
+msgid "Right To Left Language"
+msgstr "Langue de droite à gauche"
+
+#: optiondialog.cpp:1533
+msgid ""
+"Some languages are read from right to left.\n"
+"This setting will change the viewer and editor accordingly."
+msgstr ""
+"Certaines langue se lisent de droite à gauche.\n"
+"Ce paramètre changera l'afficheur et l'éditeur en conséquence."
+
+#: optiondialog.cpp:1548
+msgid "Integration"
+msgstr "Intégration"
+
+#: optiondialog.cpp:1549
+msgid "Integration Settings"
+msgstr "Paramètres d'intégration"
+
+#: optiondialog.cpp:1563
+msgid "Command line options to ignore:"
+msgstr "Options en ligne de commande à ignorer :"
+
+#: optiondialog.cpp:1568
+msgid ""
+"List of command line options that should be ignored when KDiff3 is used by "
+"other tools.\n"
+"Several values can be specified if separated via ';'\n"
+"This will suppress the \"Unknown option\" error."
+msgstr ""
+"Liste des options en ligne de commande qui devront être ignorées quand "
+"KDiff3 est utilisé par d'autres outils.\n"
+"Plusieurs valeurs peuvent être spécifiées si on les sépare par des « ; »,\n"
+"ce qui supprimera l'erreur « Option inconnue »."
+
+#: optiondialog.cpp:1575
+msgid "Quit also via Escape key"
+msgstr "Quitter également à l'aide de la touche Echap"
+
+#: optiondialog.cpp:1578
+msgid ""
+"Fast method to exit.\n"
+"For those who are used to using the Escape key."
+msgstr ""
+"Méthode rapide pour sortir de l'application.\n"
+"Pour les personnes qui sont habituées à utiliser la touche Echap."
+
+#: optiondialog.cpp:1583
+msgid "Integrate with ClearCase"
+msgstr "Intégrer avec ClearCase"
+
+#: optiondialog.cpp:1586
+msgid ""
+"Integrate with Rational ClearCase from IBM.\n"
+"Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n"
+"(Only enabled when ClearCase \"bin\" directory is in the path.)"
+msgstr ""
+"Intégrer avec Rational ClearCase d'IBM.\n"
+"Change le fichier « map » en sous-dossier « lib/mgrs » de ClearCase\n"
+"(Activé uniquement quand le dossier « bin » de ClearCase est dans "
+"l'emplacement)."
+
+#: optiondialog.cpp:1592
+msgid "Remove ClearCase Integration"
+msgstr "Supprimer l'intégration de ClearCase"
+
+#: optiondialog.cpp:1595
+msgid ""
+"Restore the old \"map\" file from before doing the ClearCase integration."
+msgstr ""
+"Restaurer à partir de l'ancien fichier « map » avant d'effectuer "
+"l'intégration de Clearcase."
+
+#: optiondialog.cpp:1680
+msgid "Incompatible Font"
+msgstr "Police incompatible"
+
+#: optiondialog.cpp:1681
+msgid "Continue at Own Risk"
+msgstr "Continuer à vos risques et périls"
+
+#: optiondialog.cpp:1682
+msgid "Select Another Font"
+msgstr "Sélectionner une autre police"
+
+#: optiondialog.cpp:1717
+msgid "This resets all options. Not only those of the current topic."
+msgstr ""
+"Cette commande réinitialise toutes les options. Pas seulement celles de la "
+"rubrique actuelle."
+
+#: pdiff.cpp:260
+msgid "PreprocessorCmd: "
+msgstr "Commande de pré-processeur : "
+
+#: pdiff.cpp:265
+msgid "The following option(s) you selected might change data:\n"
+msgstr ""
+"Les options suivantes que vous avez choisies risquent de changer les "
+"données :\n"
+
+#: pdiff.cpp:266
+msgid ""
+"\n"
+"Most likely this is not wanted during a merge.\n"
+"Do you want to disable these settings or continue with these settings active?"
+msgstr ""
+"\n"
+"Il est fort probable que ce ne soit pas souhaité durant une fusion.\n"
+"Voulez-vous désactiver ces réglages ou continuer avec ces paramètres actifs ?"
+
+#: pdiff.cpp:268
+msgid "Option Unsafe for Merging"
+msgstr "Option peu sûre pour une fusion"
+
+#: pdiff.cpp:269
+msgid "Use These Options During Merge"
+msgstr "Utiliser ces options durant la fusion"
+
+#: pdiff.cpp:270
+msgid "Disable Unsafe Options"
+msgstr "Désactiver les options peu sûres"
+
+#: pdiff.cpp:300
+msgid "Loading A"
+msgstr "Chargement de A"
+
+#: pdiff.cpp:304
+msgid "Loading B"
+msgstr "Chargement de B"
+
+#: pdiff.cpp:321 pdiff.cpp:347
+msgid "Diff: A <-> B"
+msgstr "Différences : A <-> B"
+
+#: pdiff.cpp:327 pdiff.cpp:372
+msgid "Linediff: A <-> B"
+msgstr "Différences de lignes : A <-> B"
+
+#: pdiff.cpp:338
+msgid "Loading C"
+msgstr "Chargement de C"
+
+#: pdiff.cpp:350
+msgid "Diff: B <-> C"
+msgstr "Différences : B <-> C"
+
+#: pdiff.cpp:353
+msgid "Diff: A <-> C"
+msgstr "Différences : A <-> C"
+
+#: pdiff.cpp:375
+msgid "Linediff: B <-> C"
+msgstr "Différences de lignes : B <-> C"
+
+#: pdiff.cpp:378
+msgid "Linediff: A <-> C"
+msgstr "Différences de lignes : A <-> C"
+
+#: pdiff.cpp:534
+msgid "All input files contain the same text, but are not binary equal."
+msgstr ""
+"Tous les fichiers d'entrée contiennent le même texte, mais ne sont pas "
+"binairement identiques."
+
+#: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541
+#, kde-format
+msgid "Files %1 and %2 have equal text, but are not binary equal. \n"
+msgstr ""
+"Les fichiers %1 et %2 ont le même texte, mais ne sont pas binairement "
+"identiques. \n"
+
+#: pdiff.cpp:551
+msgid ""
+"Some inputfiles don't seem to be pure textfiles.\n"
+"Note that the KDiff3-merge was not meant for binary data.\n"
+"Continue at your own risk."
+msgstr ""
+"Certains fichiers d'entrée ne semblent pas être des fichiers texte pur.\n"
+"Notez que la fusion KDiff3 n'a pas été prévue pour les données binaires.\n"
+"Continuez à vos risques et périls."
+
+#: pdiff.cpp:566
+#, kde-format
+msgid ""
+"Some input characters could not be converted to valid unicode.\n"
+"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n"
+"Don't save the result if unsure. Continue at your own risk.\n"
+"Affected input files are in %1."
+msgstr ""
+"Il est impossible de convertir certains caractères d'entrée en Unicode "
+"valable.\n"
+"Il se peut que vous utilisiez un codec incorrect. (ex. UTF-8 pour les "
+"fichiers non-UTF-8).\n"
+"N'enregistrez pas le résultat si vous avez un doute. Poursuivez à vos "
+"propres risques.\n"
+"Les fichiers affectés sont dans %1."
+
+#: pdiff.cpp:1080
+msgid "Abort"
+msgstr "Abandonner"
+
+#: pdiff.cpp:1087 pdiff.cpp:1175
+msgid "Opening files..."
+msgstr "Ouverture des fichiers..."
+
+#: pdiff.cpp:1152 pdiff.cpp:1223
+msgid "File open error"
+msgstr "Erreur d'ouverture du fichier"
+
+#: pdiff.cpp:1255
+msgid "Cutting selection..."
+msgstr "Coupe de la sélection..."
+
+#: pdiff.cpp:1276
+msgid "Copying selection to clipboard..."
+msgstr "Copie de la sélection dans le presse-papiers..."
+
+#: pdiff.cpp:1292
+msgid "Inserting clipboard contents..."
+msgstr "Insertion du contenu du presse-papiers..."
+
+#: pdiff.cpp:1814
+msgid "Save && Continue"
+msgstr "Enregistrer et continuer"
+
+#: pdiff.cpp:1815
+msgid "Continue Without Saving"
+msgstr "Continuer sans enregistrer"
+
+#: pdiff.cpp:2018
+msgid "Search complete."
+msgstr "Recherche terminée."
+
+#: pdiff.cpp:2018
+msgid "Search Complete"
+msgstr "Recherche terminée"
+
+#: pdiff.cpp:2252
+msgid "Nothing is selected in either diff input window."
+msgstr ""
+"Rien n'est sélectionné dans l'une ou l'autre des fenêtres d'entrée des "
+"différences."
+
+#: pdiff.cpp:2252
+msgid "Error while adding manual diff range"
+msgstr "Erreur lors de l'ajout d'une plage de différences manuel"
+
+#: kdiff3_shell.cpp:76
+msgid ""
+"Could not initialize the KDiff3 part.\n"
+"This usually happens due to an installation problem. Please read the README-"
+"file in the source package for details."
+msgstr ""
+"Impossible d'initialiser le composant KDiff.\n"
+"Cet incident arrive d'ordinaire à cause d'un problème d'installation. "
+"Veuillez consulter le fichier README dans le paquetage source pour plus de "
+"détails."
+
+#: rc.cpp:1
+msgctxt "NAME OF TRANSLATORS"
+msgid "Your names"
+msgstr "Joëlle Cornavin"
+
+#: rc.cpp:2
+msgctxt "EMAIL OF TRANSLATORS"
+msgid "Your emails"
+msgstr "jcorn@free.fr"
+
+#. i18n: file: kdiff3_part.rc:4
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:5
+msgid "&KDiff3"
+msgstr "&KDiff3"
+
+#. i18n: file: kdiff3_part.rc:13
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:8
+msgid "Configure KDiff3"
+msgstr "Configurer KDiff3"
+
+#. i18n: file: kdiff3_part.rc:16
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:11
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#. i18n: file: kdiff3_shell.rc:106
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:38
+msgid "Main Toolbar"
+msgstr "Barre principale"
diff --git a/po/fr/kdiff3fileitemactionplugin.po b/po/fr/kdiff3fileitemactionplugin.po
new file mode 100644 (file)
index 0000000..1870d76
--- /dev/null
@@ -0,0 +1,102 @@
+# translation of kdiff3fileitemactionplugin.po to Français
+# Copyright (C) YEAR This_file_is_part_of_KDE
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Joëlle Cornavin <jcorn@free.fr>, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3fileitemactionplugin\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-07-15 12:09+0200\n"
+"Last-Translator: Joëlle Cornavin <jcorn@free.fr>\n"
+"Language-Team: French <kde-francophone@kde.org>\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.2\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#: kdiff3fileitemaction.cpp:94
+msgid "KDiff3 ..."
+msgstr "KDiff3 ..."
+
+#: kdiff3fileitemaction.cpp:125
+#, kde-format
+msgid "Compare with %1"
+msgstr "Comparer avec %1"
+
+#: kdiff3fileitemaction.cpp:131
+#, kde-format
+msgid "Merge with %1"
+msgstr "Fusionner avec %1"
+
+#: kdiff3fileitemaction.cpp:137
+#, kde-format
+msgid "Save '%1' for later"
+msgstr "Enregistrer « %1 » pour plus tard"
+
+#: kdiff3fileitemaction.cpp:143
+msgid "3-way merge with base"
+msgstr "Fusion de trois versions de fichiers avec la base"
+
+#: kdiff3fileitemaction.cpp:150
+msgid "Compare with ..."
+msgstr "Comparer avec..."
+
+#: kdiff3fileitemaction.cpp:162
+msgid "Clear list"
+msgstr "Effacer la liste"
+
+#: kdiff3fileitemaction.cpp:170
+msgid "Compare"
+msgstr "Comparer"
+
+#: kdiff3fileitemaction.cpp:176
+msgid "3 way comparison"
+msgstr "Comparaison de trois versions de fichiers"
+
+#: kdiff3fileitemaction.cpp:180
+msgid "About KDiff3 menu plugin ..."
+msgstr "À propos du module externe du menu KDiff3..."
+
+#: kdiff3fileitemaction.cpp:284
+msgid ""
+"KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+"Module externe d'action sur des éléments de fichiers pour KDiff3. Copyright "
+"(C) 2011 Joachim Eibl\n"
+"Page d'accueil de KDiff3 : http://kdiff3.sourceforge.net\n"
+"\n"
+
+#: kdiff3fileitemaction.cpp:286
+msgid ""
+"Using the contextmenu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else \"Save\" the first file for later. It "
+"will appear in the \"Compare With ...\" submenu. Then use \"Compare With\" "
+"on second file.\n"
+"For a 3-way merge first \"Save\" the base file, then the branch to merge and "
+"choose \"3-way merge with base\" on the other branch which will be used as "
+"destination.\n"
+"Same also applies to directory comparison and merge."
+msgstr ""
+"Utilisation de l'extension du menu contextuel :\n"
+"Pou une comparaison simple de deux fichiers sélectionnés, choisissez "
+"« Comparer ».\n"
+"Si l'autre fichier se trouve dans un autre endroit quelconque, "
+"« enregistrez » le premier fichier pour plus tard. Il apparaîtra dans le "
+"sous-menu « Comparer avec... ». Puis utilisez « Comparer avec » sur le "
+"second fichier.\n"
+"Pour une fusion de 3 fichiers, « enregistrez » d'abord le fichier base, puis "
+"la branche à fusionner et choisissez « Fusion de trois versions de fichiers "
+"avec la base » sur l'autre branche, qui sera utilisée comme destination.\n"
+"Le même principe s'applique à la comparaison et à la fusion de dossiers."
+
+#: kdiff3fileitemaction.cpp:294
+msgid "About KDiff3 File Item Action Plugin"
+msgstr ""
+"À propos du module externe d'action sur des éléments de fichiers pour KDiff3"
diff --git a/po/fr/kdiff3plugin.po b/po/fr/kdiff3plugin.po
new file mode 100644 (file)
index 0000000..e6e2139
--- /dev/null
@@ -0,0 +1,101 @@
+# translation of kdiff3plugin.po to Français
+# Copyright (C) YEAR This_file_is_part_of_KDE
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Stanislas Zeller <uncensored.assault@gmail.com>, 2008, 2009, 2010.
+# Joëlle Cornavin <jcorn@free.fr>, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3plugin\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-07-15 12:10+0200\n"
+"Last-Translator: Joëlle Cornavin <jcorn@free.fr>\n"
+"Language-Team: French <kde-francophone@kde.org>\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Generator: Lokalize 1.2\n"
+
+#: kdiff3plugin.cpp:107
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#: kdiff3plugin.cpp:114
+#, kde-format
+msgid "Compare with %1"
+msgstr "Comparer avec %1"
+
+#: kdiff3plugin.cpp:120
+#, kde-format
+msgid "Merge with %1"
+msgstr "Fusionner avec %1"
+
+#: kdiff3plugin.cpp:126
+#, kde-format
+msgid "Save '%1' for later"
+msgstr "Enregistrer « %1 » pour plus tard"
+
+#: kdiff3plugin.cpp:132
+msgid "3-way merge with base"
+msgstr "Fusion de trois  versions avec une base"
+
+#: kdiff3plugin.cpp:139
+msgid "Compare with ..."
+msgstr "Comparer avec..."
+
+#: kdiff3plugin.cpp:149
+msgid "Clear list"
+msgstr "Effacer la liste"
+
+#: kdiff3plugin.cpp:157
+msgid "Compare"
+msgstr "Comparer"
+
+#: kdiff3plugin.cpp:163
+msgid "3 way comparison"
+msgstr "Comparaison de trois versions"
+
+#: kdiff3plugin.cpp:167
+msgid "About KDiff3 menu plugin ..."
+msgstr "À propos du module externe du menu KDiff3..."
+
+#: kdiff3plugin.cpp:269
+msgid ""
+"KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+"Module externe du menu KDiff3 sous copyright (C) 2008 Joachim Eibl\n"
+"Page d'accueil de KDiff3 : http://kdiff3.sourceforge.net\n"
+"\n"
+
+#: kdiff3plugin.cpp:271
+msgid ""
+"Using the context menu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else, \"Save\" the first file for later, and "
+"it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With"
+"\" on the second file.\n"
+"For a 3-way merge first, \"Save\" the base file, then the branch to merge, "
+"and then \"3-way merge with base\" on the other branch which will be used as "
+"the destination.\n"
+"The same also applies to directory comparison and merge."
+msgstr ""
+"Utilisation de l'extension du menu contextuel :\n"
+"Pour une comparaison simple de deux fichiers sélectionnés, choisissez "
+"« Comparer ».\n"
+"Si l'autre fichier se trouve dans un autre emplacement, « enregistrez » le "
+"premier fichier pour plus tard, et il apparaîtra dans le sous-menu "
+"« Comparer avec...». Utilisez ensuite « Comparer avec » sur le deuxième "
+"fichier.\n"
+"Pour la fusion de trois versions, « enregistrez » d'abord le fichier de "
+"base, puis la branche à fusionner et ensuite « Fusion de trois versions avec "
+"la base » sur l'autre branche qui sera utilisé comme destination. \n"
+"Le même processus s'applique à la comparaison et à la fusion de dossiers."
+
+#: kdiff3plugin.cpp:279
+msgid "About KDiff3 Menu Plugin"
+msgstr "À propos du module externe du menu KDiff3"
diff --git a/po/ga/CMakeLists.txt b/po/ga/CMakeLists.txt
new file mode 100644 (file)
index 0000000..a7b9865
--- /dev/null
@@ -0,0 +1,2 @@
+file(GLOB _po_files *.po)
+GETTEXT_PROCESS_PO_FILES(ga ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
diff --git a/po/ga/kdiff3.po b/po/ga/kdiff3.po
new file mode 100644 (file)
index 0000000..e51e687
--- /dev/null
@@ -0,0 +1,2927 @@
+# Irish translation of kdiff3
+# Copyright (C) 2009 This_file_is_part_of_KDE
+# This file is distributed under the same license as the kdiff3 package.
+# Kevin Scannell <kscanne@gmail.com>, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: playground-devtools/kdiff3.po\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2008-04-18 14:59-0500\n"
+"Last-Translator: Kevin Scannell <kscanne@gmail.com>\n"
+"Language-Team: Irish <gaeilge-gnulinux@lists.sourceforge.net>\n"
+"Language: ga\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=5; plural=n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n < 11 ? "
+"3 : 4\n"
+
+#: kreplacements/kreplacements.h:105
+msgid "Continue"
+msgstr "Lean ar aghaidh"
+
+#: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158
+#: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512
+msgid "Cancel"
+msgstr "Cealaigh"
+
+#: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631
+msgid "Quit"
+msgstr "Scoir"
+
+#: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339
+msgid "Ok"
+msgstr "OK"
+
+#: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715
+msgid "Help"
+msgstr "Cabhair"
+
+#: kreplacements/kreplacements.cpp:185
+msgid "Defaults"
+msgstr "Réamhshocruithe"
+
+#. i18n: file: kdiff3_shell.rc:4
+#. i18n: ectx: Menu (file)
+#: kreplacements/kreplacements.cpp:296 rc.cpp:14
+msgid "&File"
+msgstr "&Comhad"
+
+#: kreplacements/kreplacements.cpp:297
+msgid "&Edit"
+msgstr "&Eagar"
+
+#. i18n: file: kdiff3_shell.rc:7
+#. i18n: ectx: Menu (directory)
+#: kreplacements/kreplacements.cpp:298 rc.cpp:17
+msgid "&Directory"
+msgstr "&Comhadlann"
+
+#. i18n: file: kdiff3_shell.rc:50
+#. i18n: ectx: Menu (movement)
+#: kreplacements/kreplacements.cpp:301 rc.cpp:26
+msgid "&Movement"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:61
+#. i18n: ectx: Menu (diff)
+#: kreplacements/kreplacements.cpp:302 rc.cpp:29
+msgid "D&iffview"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:73
+#. i18n: ectx: Menu (merge)
+#: kreplacements/kreplacements.cpp:303 rc.cpp:32
+msgid "&Merge"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:95
+#. i18n: ectx: Menu (window)
+#: kreplacements/kreplacements.cpp:304 rc.cpp:35
+msgid "&Window"
+msgstr "&Fuinneog"
+
+#: kreplacements/kreplacements.cpp:305
+msgid "&Settings"
+msgstr "&Socruithe"
+
+#: kreplacements/kreplacements.cpp:306
+msgid "&Help"
+msgstr "&Cabhair"
+
+#: kreplacements/kreplacements.cpp:353
+msgid "&About"
+msgstr "&Eolas"
+
+#: kreplacements/kreplacements.cpp:369
+msgid "A&uthor"
+msgstr "Ú&dar"
+
+#: kreplacements/kreplacements.cpp:383
+msgid "&Thanks To"
+msgstr "&Buíochas le"
+
+#. i18n: file: kdiff3_shell.rc:30
+#. i18n: ectx: Menu (dir_current_merge_menu)
+#: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497
+#: rc.cpp:20
+msgid "Current Item Merge Operation"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:38
+#. i18n: ectx: Menu (dir_current_sync_menu)
+#: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498
+#: rc.cpp:23
+msgid "Current Item Sync Operation"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:597
+msgid "Open"
+msgstr "Oscail"
+
+#: kreplacements/kreplacements.cpp:606
+msgid "Save"
+msgstr "Sábháil"
+
+#: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720
+msgid "Save As..."
+msgstr "Sábháil Mar..."
+
+#: kreplacements/kreplacements.cpp:623
+msgid "Print..."
+msgstr "Priontáil..."
+
+#: kreplacements/kreplacements.cpp:639
+msgid "Cut"
+msgstr "Gearr"
+
+#: kreplacements/kreplacements.cpp:647
+msgid "Copy"
+msgstr "Cóipeáil"
+
+#: kreplacements/kreplacements.cpp:655
+msgid "Paste"
+msgstr "Greamaigh"
+
+#: kreplacements/kreplacements.cpp:663
+msgid "Select All"
+msgstr "Roghnaigh Uile"
+
+#: kreplacements/kreplacements.cpp:671
+msgid "Show Toolbar"
+msgstr "Taispeáin an Barra Uirlisí"
+
+#: kreplacements/kreplacements.cpp:679
+msgid "Show &Status Bar"
+msgstr "Taispeáin an Barra &Stádais"
+
+#: kreplacements/kreplacements.cpp:687
+#, kde-format
+msgid "&Configure %1..."
+msgstr "&Cumraigh %1..."
+
+#: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707
+msgid "About"
+msgstr "Eolas"
+
+#: kreplacements/kreplacements.cpp:722
+msgid "Find"
+msgstr "Aimsigh"
+
+#: kreplacements/kreplacements.cpp:730
+msgid "Find Next"
+msgstr "An Chéad Cheann Eile"
+
+#: kreplacements/kreplacements.cpp:750
+msgid "Select Font"
+msgstr "Roghnaigh Cló"
+
+#: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676
+msgid ""
+"You selected a variable width font.\n"
+"\n"
+"Because this program doesn't handle variable width fonts\n"
+"correctly, you might experience problems while editing.\n"
+"\n"
+"Do you want to continue or do you want to select another font."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:792
+msgid "Incompatible font."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Continue at my own risk"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Select another font"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1134
+msgid "For more documentation, see the help-menu or the subdirectory doc."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "KDiff3-Usage"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Ignore"
+msgstr "Déan neamhaird de"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Exit"
+msgstr "Scoir"
+
+#: diff.cpp:251
+msgid "Writing clipboard data to temp file failed."
+msgstr ""
+
+#: diff.cpp:255
+msgid "From Clipboard"
+msgstr ""
+
+#: diff.cpp:471
+msgid "Expecting space after closing quotation mark."
+msgstr ""
+
+#: diff.cpp:474
+msgid "Not matching quotation marks."
+msgstr ""
+
+#: diff.cpp:496
+msgid "Unexpected quotation mark within argument."
+msgstr ""
+
+#: diff.cpp:503
+msgid "No program specified."
+msgstr ""
+
+#: diff.cpp:605
+#, kde-format
+msgid ""
+"Preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The preprocessing command will be disabled now."
+msgstr ""
+
+#: diff.cpp:653
+#, kde-format
+msgid ""
+"The line-matching-preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The line-matching-preprocessing command will be disabled now."
+msgstr ""
+
+#: diff.cpp:1776 diff.cpp:1790
+msgid ""
+"Data loss error:\n"
+"If it is reproducible please contact the author.\n"
+msgstr ""
+
+#: diff.cpp:1778 diff.cpp:1792
+msgid "Severe Internal Error"
+msgstr ""
+
+#: directorymergewindow.cpp:136
+msgid "Mix of links and normal files."
+msgstr ""
+
+#: directorymergewindow.cpp:143
+msgid "Link: "
+msgstr ""
+
+#: directorymergewindow.cpp:151
+msgid "Size. "
+msgstr ""
+
+#: directorymergewindow.cpp:164 directorymergewindow.cpp:174
+msgid "Date & Size: "
+msgstr ""
+
+#: directorymergewindow.cpp:184 directorymergewindow.cpp:190
+#, kde-format
+msgid "Creating temp copy of %1 failed."
+msgstr ""
+
+#: directorymergewindow.cpp:201 directorymergewindow.cpp:209
+#, kde-format
+msgid "Opening %1 failed."
+msgstr ""
+
+#: directorymergewindow.cpp:213
+msgid "Comparing file..."
+msgstr ""
+
+#: directorymergewindow.cpp:223 directorymergewindow.cpp:229
+#, kde-format
+msgid "Error reading from %1"
+msgstr "Earráid agus %1 á léamh"
+
+#: directorymergewindow.cpp:358
+msgid "Name"
+msgstr "Ainm"
+
+#: directorymergewindow.cpp:358
+msgid "Operation"
+msgstr "Oibríocht"
+
+#: directorymergewindow.cpp:358
+msgid "Status"
+msgstr "Stádas"
+
+#: directorymergewindow.cpp:359
+msgid "Unsolved"
+msgstr ""
+
+#: directorymergewindow.cpp:359
+msgid "Solved"
+msgstr ""
+
+#: directorymergewindow.cpp:359
+msgid "Nonwhite"
+msgstr ""
+
+#: directorymergewindow.cpp:359
+msgid "White"
+msgstr "Bán"
+
+#: directorymergewindow.cpp:388
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort "
+"the merge and rescan the directory?"
+msgstr ""
+
+#: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655
+#: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823
+msgid "Warning"
+msgstr "Rabhadh"
+
+#: directorymergewindow.cpp:390 directorymergewindow.cpp:2965
+msgid "Rescan"
+msgstr "Athscan"
+
+#: directorymergewindow.cpp:391 pdiff.cpp:1081
+msgid "Continue Merging"
+msgstr ""
+
+#: directorymergewindow.cpp:548
+msgid "Opening of directories failed:"
+msgstr ""
+
+#: directorymergewindow.cpp:551
+#, kde-format
+msgid "Dir A \"%1\" does not exist or is not a directory.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:554
+#, kde-format
+msgid "Dir B \"%1\" does not exist or is not a directory.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:557
+#, kde-format
+msgid "Dir C \"%1\" does not exist or is not a directory.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:559
+msgid "Directory Open Error"
+msgstr ""
+
+#: directorymergewindow.cpp:567
+msgid ""
+"The destination directory must not be the same as A or B when three "
+"directories are merged.\n"
+"Check again before continuing."
+msgstr ""
+
+#: directorymergewindow.cpp:569
+msgid "Parameter Warning"
+msgstr ""
+
+#: directorymergewindow.cpp:574
+msgid "Scanning directories..."
+msgstr ""
+
+#: directorymergewindow.cpp:607
+msgid "Reading Directory A"
+msgstr ""
+
+#: directorymergewindow.cpp:629
+msgid "Reading Directory B"
+msgstr ""
+
+#: directorymergewindow.cpp:651
+msgid "Reading Directory C"
+msgstr ""
+
+#: directorymergewindow.cpp:677
+msgid "Some subdirectories were not readable in"
+msgstr ""
+
+#: directorymergewindow.cpp:682
+msgid "Check the permissions of the subdirectories."
+msgstr ""
+
+#: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737
+#: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233
+#: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328
+msgid "Ready."
+msgstr "Réidh."
+
+#: directorymergewindow.cpp:735
+msgid "Directory Comparison Status"
+msgstr ""
+
+#: directorymergewindow.cpp:736
+msgid "Number of subdirectories:"
+msgstr ""
+
+#: directorymergewindow.cpp:737
+msgid "Number of equal files:"
+msgstr ""
+
+#: directorymergewindow.cpp:738
+msgid "Number of different files:"
+msgstr ""
+
+#: directorymergewindow.cpp:741
+msgid "Number of manual merges:"
+msgstr ""
+
+#: directorymergewindow.cpp:912
+msgid "This affects all merge operations."
+msgstr ""
+
+#: directorymergewindow.cpp:913
+msgid "Changing All Merge Operations"
+msgstr ""
+
+#: directorymergewindow.cpp:1312
+msgid "Processing "
+msgstr ""
+
+#: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742
+msgid "To do."
+msgstr ""
+
+#: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996
+msgid "Copy A to B"
+msgstr ""
+
+#: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997
+msgid "Copy B to A"
+msgstr ""
+
+#: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998
+msgid "Delete A"
+msgstr ""
+
+#: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999
+msgid "Delete B"
+msgstr ""
+
+#: directorymergewindow.cpp:1814
+msgid "Delete A & B"
+msgstr ""
+
+#: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001
+msgid "Merge to A"
+msgstr ""
+
+#: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002
+msgid "Merge to B"
+msgstr ""
+
+#: directorymergewindow.cpp:1817
+msgid "Merge to A & B"
+msgstr ""
+
+#: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993
+msgid "Delete (if exists)"
+msgstr ""
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+#: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869
+msgid "Merge"
+msgstr "Cumaisc"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+msgid "Merge (manual)"
+msgstr ""
+
+#: directorymergewindow.cpp:1824
+msgid "Error: Conflicting File Types"
+msgstr ""
+
+#: directorymergewindow.cpp:1825
+msgid "Error: Changed and Deleted"
+msgstr ""
+
+#: directorymergewindow.cpp:1826
+msgid "Error: Dates are equal but files are not."
+msgstr ""
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906
+msgid "This operation is currently not possible."
+msgstr ""
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174
+msgid "Operation Not Possible"
+msgstr ""
+
+#: directorymergewindow.cpp:1945
+msgid ""
+"This should never happen: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"If you know how to reproduce this, please contact the program author."
+msgstr ""
+
+#: directorymergewindow.cpp:1945
+msgid "Program Error"
+msgstr ""
+
+#: directorymergewindow.cpp:1956
+msgid "An error occurred while copying.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025
+#: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105
+#: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123
+#: directorymergewindow.cpp:2374
+msgid "Error"
+msgstr "Earráid"
+
+#: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375
+msgid "Merge Error"
+msgstr ""
+
+#: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380
+msgid "Error."
+msgstr "Earráid."
+
+#: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272
+#: directorymergewindow.cpp:2312
+msgid "Done."
+msgstr "Críochnaithe."
+
+#: directorymergewindow.cpp:1990
+msgid "Not saved."
+msgstr ""
+
+#: directorymergewindow.cpp:2025
+msgid "Unknown merge operation. (This must never happen!)"
+msgstr ""
+
+#: directorymergewindow.cpp:2057
+msgid "Unknown merge operation."
+msgstr ""
+
+#: directorymergewindow.cpp:2072
+msgid ""
+"The merge is about to begin.\n"
+"\n"
+"Choose \"Do it\" if you have read the instructions and know what you are "
+"doing.\n"
+"Choosing \"Simulate it\" will tell you what would happen.\n"
+"\n"
+"Be aware that this program still has beta status and there is NO WARRANTY "
+"whatsoever! Make backups of your vital data!"
+msgstr ""
+
+#: directorymergewindow.cpp:2077
+msgid "Starting Merge"
+msgstr ""
+
+#: directorymergewindow.cpp:2078
+msgid "Do It"
+msgstr ""
+
+#: directorymergewindow.cpp:2079
+msgid "Simulate It"
+msgstr ""
+
+#: directorymergewindow.cpp:2105
+msgid ""
+"The highlighted item has a different type in the different directories. "
+"Select what to do."
+msgstr ""
+
+#: directorymergewindow.cpp:2114
+msgid ""
+"The modification dates of the file are equal but the files are not. Select "
+"what to do."
+msgstr ""
+
+#: directorymergewindow.cpp:2123
+msgid ""
+"The highlighted item was changed in one directory and deleted in the other. "
+"Select what to do."
+msgstr ""
+
+#: directorymergewindow.cpp:2174
+msgid ""
+"This operation is currently not possible because directory merge is "
+"currently running."
+msgstr ""
+
+#: directorymergewindow.cpp:2234
+msgid ""
+"There was an error in the last step.\n"
+"Do you want to continue with the item that caused the error or do you want "
+"to skip this item?"
+msgstr ""
+
+#: directorymergewindow.cpp:2236
+msgid "Continue merge after an error"
+msgstr ""
+
+#: directorymergewindow.cpp:2237
+msgid "Continue With Last Item"
+msgstr ""
+
+#: directorymergewindow.cpp:2238
+msgid "Skip Item"
+msgstr ""
+
+#: directorymergewindow.cpp:2272
+msgid "Skipped."
+msgstr ""
+
+#: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493
+msgid "In progress..."
+msgstr ""
+
+#: directorymergewindow.cpp:2327
+msgid "Merge operation complete."
+msgstr ""
+
+#: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330
+msgid "Merge Complete"
+msgstr ""
+
+#: directorymergewindow.cpp:2340
+msgid ""
+"Simulated merge complete: Check if you agree with the proposed operations."
+msgstr ""
+
+#: directorymergewindow.cpp:2374
+msgid "An error occurred. Press OK to see detailed information.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:2406
+#, kde-format
+msgid "Error: While deleting %1: Creating backup failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2413
+#, kde-format
+msgid "delete directory recursively( %1 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2415
+#, kde-format
+msgid "delete( %1 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2430
+msgid "Error: delete dir operation failed while trying to read the directory."
+msgstr ""
+
+#: directorymergewindow.cpp:2449
+#, kde-format
+msgid "Error: rmdir( %1 ) operation failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2459
+msgid "Error: delete operation failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2485
+#, kde-format
+msgid "manual merge( %1, %2, %3 -> %4)"
+msgstr ""
+
+#: directorymergewindow.cpp:2488
+msgid ""
+"     Note: After a manual merge the user should continue by pressing F7."
+msgstr ""
+
+#: directorymergewindow.cpp:2513
+#, kde-format
+msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2522
+#, kde-format
+msgid "copyLink( %1 -> %2 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2533
+msgid "Error: copyLink failed: Remote links are not yet supported."
+msgstr ""
+
+#: directorymergewindow.cpp:2539
+msgid "Error: copyLink failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2564
+#, kde-format
+msgid "copy( %1 -> %2 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2590
+#, kde-format
+msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination."
+msgstr ""
+
+#: directorymergewindow.cpp:2596
+#, kde-format
+msgid "rename( %1 -> %2 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2605
+msgid "Error: Rename failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2623
+#, kde-format
+msgid "Error during makeDir of %1. Cannot delete existing file."
+msgstr ""
+
+#: directorymergewindow.cpp:2639
+#, kde-format
+msgid "makeDir( %1 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2649
+msgid "Error while creating directory."
+msgstr ""
+
+#: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784
+msgid "Dest"
+msgstr ""
+
+#: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709
+msgid "Dir"
+msgstr ""
+
+#: directorymergewindow.cpp:2678
+msgid "Type"
+msgstr "Cineál"
+
+#: directorymergewindow.cpp:2678
+msgid "Size"
+msgstr "Méid"
+
+#: directorymergewindow.cpp:2679
+msgid "Attr"
+msgstr ""
+
+#: directorymergewindow.cpp:2679
+msgid "Last Modification"
+msgstr ""
+
+#: directorymergewindow.cpp:2679
+msgid "Link-Destination"
+msgstr ""
+
+#: directorymergewindow.cpp:2709 difftextwindow.cpp:401
+msgid "File"
+msgstr "Comhad"
+
+#: directorymergewindow.cpp:2726
+msgid "not available"
+msgstr "níl ar fáil"
+
+#: directorymergewindow.cpp:2746
+msgid "A (Dest): "
+msgstr ""
+
+#: directorymergewindow.cpp:2749
+msgid "A (Base): "
+msgstr ""
+
+#: directorymergewindow.cpp:2755
+msgid "B (Dest): "
+msgstr ""
+
+#: directorymergewindow.cpp:2763
+msgid "C (Dest): "
+msgstr ""
+
+#: directorymergewindow.cpp:2769
+msgid "Dest: "
+msgstr ""
+
+#: directorymergewindow.cpp:2836
+msgid "Save Directory Merge State As..."
+msgstr ""
+
+#: directorymergewindow.cpp:2959
+msgid "Start/Continue Directory Merge"
+msgstr ""
+
+#: directorymergewindow.cpp:2960
+msgid "Run Operation for Current Item"
+msgstr ""
+
+#: directorymergewindow.cpp:2961
+msgid "Compare Selected File"
+msgstr ""
+
+#: directorymergewindow.cpp:2962
+msgid "Merge Current File"
+msgstr ""
+
+#: directorymergewindow.cpp:2962
+msgid ""
+"Merge\n"
+"File"
+msgstr ""
+
+#: directorymergewindow.cpp:2963
+msgid "Fold All Subdirs"
+msgstr ""
+
+#: directorymergewindow.cpp:2964
+msgid "Unfold All Subdirs"
+msgstr ""
+
+#: directorymergewindow.cpp:2968
+msgid "Choose A for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2969
+msgid "Choose B for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2970
+msgid "Choose C for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2971
+msgid "Auto-Choose Operation for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2972
+msgid "No Operation for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2977
+msgid "Show Identical Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2977
+msgid ""
+"Identical\n"
+"Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2978
+msgid "Show Different Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2979
+msgid "Show Files only in A"
+msgstr ""
+
+#: directorymergewindow.cpp:2979
+msgid ""
+"Files\n"
+"only in A"
+msgstr ""
+
+#: directorymergewindow.cpp:2980
+msgid "Show Files only in B"
+msgstr ""
+
+#: directorymergewindow.cpp:2980
+msgid ""
+"Files\n"
+"only in B"
+msgstr ""
+
+#: directorymergewindow.cpp:2981
+msgid "Show Files only in C"
+msgstr ""
+
+#: directorymergewindow.cpp:2981
+msgid ""
+"Files\n"
+"only in C"
+msgstr ""
+
+#: directorymergewindow.cpp:2985
+msgid "Compare Explicitly Selected Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2986
+msgid "Merge Explicitly Selected Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995
+msgid "Do Nothing"
+msgstr "Ná Déan Faic"
+
+#: directorymergewindow.cpp:2989
+msgid "A"
+msgstr "A"
+
+#: directorymergewindow.cpp:2990
+msgid "B"
+msgstr "B"
+
+#: directorymergewindow.cpp:2991
+msgid "C"
+msgstr "C"
+
+#: directorymergewindow.cpp:3000
+msgid "Delete A && B"
+msgstr ""
+
+#: directorymergewindow.cpp:3003
+msgid "Merge to A && B"
+msgstr ""
+
+#: main.cpp:74 main.cpp:76
+msgid "Ignored. (User defined.)"
+msgstr ""
+
+#: main.cpp:162
+msgid "kdiff3"
+msgstr "kdiff3"
+
+#: main.cpp:164
+msgid "Tool for Comparison and Merge of Files and Directories"
+msgstr ""
+
+#: main.cpp:165
+#, fuzzy
+#| msgid "(c) 2002-2009 Joachim Eibl"
+msgid "(c) 2002-2011 Joachim Eibl"
+msgstr "© 2002-2009 Joachim Eibl"
+
+#: main.cpp:172 kdiff3_part.cpp:303
+msgid "Joachim Eibl"
+msgstr "Joachim Eibl"
+
+#: main.cpp:173
+msgid "Eike Sauer"
+msgstr "Eike Sauer"
+
+#: main.cpp:173
+msgid "Bugfixes, Debian package maintainer"
+msgstr ""
+
+#: main.cpp:174
+msgid "Sebastien Fricker"
+msgstr "Sebastien Fricker"
+
+#: main.cpp:174
+msgid "Windows installer"
+msgstr "Suiteálaí Windows"
+
+#: main.cpp:175
+msgid "Stephan Binner"
+msgstr "Stephan Binner"
+
+#: main.cpp:175
+msgid "i18n-help"
+msgstr ""
+
+#: main.cpp:176
+msgid "Stefan Partheymueller"
+msgstr "Stefan Partheymueller"
+
+#: main.cpp:176
+msgid "Clipboard-patch"
+msgstr ""
+
+#: main.cpp:177
+msgid "David Faure"
+msgstr "David Faure"
+
+#: main.cpp:177
+msgid "KIO-Help"
+msgstr ""
+
+#: main.cpp:178
+msgid "Bernd Gehrmann"
+msgstr "Bernd Gehrmann"
+
+#: main.cpp:178
+msgid "Class CvsIgnoreList from Cervisia"
+msgstr ""
+
+#: main.cpp:179
+msgid "Andre Woebbeking"
+msgstr "Andre Woebbeking"
+
+#: main.cpp:179
+msgid "Class StringMatcher"
+msgstr ""
+
+#: main.cpp:180
+msgid "Michael Denio"
+msgstr "Michael Denio"
+
+#: main.cpp:180
+msgid "Directory Equality-Coloring patch"
+msgstr ""
+
+#: main.cpp:181
+msgid "Manfred Koehler"
+msgstr "Manfred Koehler"
+
+#: main.cpp:181
+msgid "Fix for slow startup on Windows"
+msgstr ""
+
+#: main.cpp:182
+msgid "Sergey Zorin"
+msgstr "Sergey Zorin"
+
+#: main.cpp:182
+msgid "Diff Ext for Windows"
+msgstr ""
+
+#: main.cpp:183
+msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+
+#: main.cpp:183
+msgid "GNU-Diffutils"
+msgstr "GNU-Diffutils"
+
+#: main.cpp:184
+msgid "Tino Boellsterling, Timothy Mee"
+msgstr "Tino Boellsterling, Timothy Mee"
+
+#: main.cpp:184
+msgid "Intensive test, use and feedback"
+msgstr ""
+
+#: main.cpp:185
+msgid "Michael Schmidt"
+msgstr "Michael Schmidt"
+
+#: main.cpp:185
+msgid "Mac support"
+msgstr "Tacaíocht Mac"
+
+#: main.cpp:186
+msgid "Valentin Rusu"
+msgstr "Valentin Rusu"
+
+#: main.cpp:186 main.cpp:187
+msgid "KDE4 porting"
+msgstr "Leagan KDE4"
+
+#: main.cpp:187
+msgid "Albert Astals Cid"
+msgstr "Albert Astals Cid"
+
+#: main.cpp:188
+msgid "Silvan Scherrer"
+msgstr ""
+
+#: main.cpp:188
+msgid "OS2 port"
+msgstr ""
+
+#: main.cpp:190
+msgid "+ Many thanks to those who reported bugs and contributed ideas!"
+msgstr ""
+
+#: main.cpp:196
+msgid "Merge the input."
+msgstr ""
+
+#: main.cpp:197
+msgid "Explicit base file. For compatibility with certain tools."
+msgstr ""
+
+#: main.cpp:198
+msgid "Output file. Implies -m. E.g.: -o newfile.txt"
+msgstr ""
+
+#: main.cpp:199
+msgid "Output file, again. (For compatibility with certain tools.)"
+msgstr ""
+
+#: main.cpp:200
+msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)"
+msgstr ""
+
+#: main.cpp:201
+msgid "Don't solve conflicts automatically. (For compatibility...)"
+msgstr ""
+
+#: main.cpp:202
+msgid "Visible name replacement for input file 1 (base)."
+msgstr ""
+
+#: main.cpp:203
+msgid "Visible name replacement for input file 2."
+msgstr ""
+
+#: main.cpp:204
+msgid "Visible name replacement for input file 3."
+msgstr ""
+
+#: main.cpp:205
+msgid "Alternative visible name replacement. Supply this once for every input."
+msgstr ""
+
+#: main.cpp:206
+msgid ""
+"Override a config setting. Use once for every setting. E.g.: --cs "
+"\"AutoAdvance=1\""
+msgstr ""
+
+#: main.cpp:207
+msgid "Show list of config settings and current values."
+msgstr ""
+
+#: main.cpp:208
+msgid "Use a different config file."
+msgstr ""
+
+#: main.cpp:211
+msgid "file1 to open (base, if not specified via --base)"
+msgstr ""
+
+#: main.cpp:212
+msgid "file2 to open"
+msgstr ""
+
+#: main.cpp:213
+msgid "file3 to open"
+msgstr ""
+
+#: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976
+#: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002
+#: mergeresultwindow.cpp:1014
+#, kde-format
+msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)"
+msgstr ""
+
+#: mergeresultwindow.cpp:303
+msgid ""
+"The output has been modified.\n"
+"If you continue your changes will be lost."
+msgstr ""
+
+#: mergeresultwindow.cpp:834 pdiff.cpp:532
+msgid "All input files are binary equal."
+msgstr ""
+
+#: mergeresultwindow.cpp:836
+msgid "All input files contain the same text."
+msgstr ""
+
+#: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840
+#: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540
+#, kde-format
+msgid "Files %1 and %2 are binary equal.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841
+#: mergeresultwindow.cpp:843
+#, kde-format
+msgid "Files %1 and %2 have equal text.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:849
+msgid "Total number of conflicts: "
+msgstr ""
+
+#: mergeresultwindow.cpp:850
+msgid ""
+"\n"
+"Nr of automatically solved conflicts: "
+msgstr ""
+
+#: mergeresultwindow.cpp:851
+msgid ""
+"\n"
+"Nr of unsolved conflicts: "
+msgstr ""
+
+#: mergeresultwindow.cpp:853
+msgid "Conflicts"
+msgstr "Coinbhleachtaí"
+
+#: mergeresultwindow.cpp:1728
+msgid "<No src line>"
+msgstr ""
+
+#: mergeresultwindow.cpp:1736
+msgid "<Merge Conflict (Whitespace only)>"
+msgstr ""
+
+#: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517
+msgid "<Merge Conflict>"
+msgstr ""
+
+#: mergeresultwindow.cpp:2725
+msgid ""
+"Not all conflicts are solved yet.\n"
+"File not saved.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736
+msgid "Conflicts Left"
+msgstr ""
+
+#: mergeresultwindow.cpp:2734
+msgid ""
+"There is a line end style conflict. Please choose the line end style "
+"manually.\n"
+"File not saved.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:2748
+msgid ""
+"\n"
+"\n"
+"Creating backup failed. File not saved."
+msgstr ""
+
+#: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792
+msgid "File Save Error"
+msgstr ""
+
+#: mergeresultwindow.cpp:2792
+msgid "Error while writing."
+msgstr ""
+
+#: mergeresultwindow.cpp:3122
+msgid "Output"
+msgstr "Aschur"
+
+#: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314
+msgid "[Modified]"
+msgstr ""
+
+#: mergeresultwindow.cpp:3141
+msgid "Encoding for saving"
+msgstr ""
+
+#: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737
+#: optiondialog.cpp:762
+msgid "Line end style:"
+msgstr ""
+
+#: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767
+msgid "Unix"
+msgstr ""
+
+#: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737
+msgid "DOS"
+msgstr "DOS"
+
+#: mergeresultwindow.cpp:3229
+msgid "Conflict"
+msgstr "Coinbhleacht"
+
+#: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263
+#: mergeresultwindow.cpp:3265
+msgid "Codec from"
+msgstr ""
+
+#: kdiff3_part.cpp:157 kdiff3_part.cpp:234
+msgid "Couldn't find files for comparison."
+msgstr ""
+
+#: kdiff3_part.cpp:302
+msgid "KDiff3Part"
+msgstr "KDiff3Part"
+
+#: fileaccess.cpp:612
+msgid ""
+"While trying to make a backup, deleting an older backup failed. \n"
+"Filename: "
+msgstr ""
+
+#: fileaccess.cpp:619
+msgid ""
+"While trying to make a backup, renaming failed. \n"
+"Filenames: "
+msgstr ""
+
+#: fileaccess.cpp:643
+#, kde-format
+msgid "Getting file status: %1"
+msgstr ""
+
+#: fileaccess.cpp:686
+#, kde-format
+msgid "Reading file: %1"
+msgstr ""
+
+#: fileaccess.cpp:723
+#, kde-format
+msgid "Writing file: %1"
+msgstr ""
+
+#: fileaccess.cpp:751
+msgid "Out of memory"
+msgstr "Cuimhne ídithe"
+
+#: fileaccess.cpp:786
+#, kde-format
+msgid "Making directory: %1"
+msgstr ""
+
+#: fileaccess.cpp:806
+#, kde-format
+msgid "Removing directory: %1"
+msgstr ""
+
+#: fileaccess.cpp:821
+#, kde-format
+msgid "Removing file: %1"
+msgstr ""
+
+#: fileaccess.cpp:837
+#, kde-format
+msgid "Creating symbolic link: %1 -> %2"
+msgstr ""
+
+#: fileaccess.cpp:864
+#, kde-format
+msgid "Renaming file: %1 -> %2"
+msgstr ""
+
+#: fileaccess.cpp:897
+#, kde-format
+msgid "Copying file: %1 -> %2"
+msgstr ""
+
+#: fileaccess.cpp:911
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for reading failed. Filename: "
+"%1"
+msgstr ""
+
+#: fileaccess.cpp:917
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for writing failed. Filename: "
+"%1"
+msgstr ""
+
+#: fileaccess.cpp:932
+#, kde-format
+msgid "Error during file copy operation: Reading failed. Filename: %1"
+msgstr ""
+
+#: fileaccess.cpp:941
+#, kde-format
+msgid "Error during file copy operation: Writing failed. Filename: %1"
+msgstr ""
+
+#: fileaccess.cpp:1231
+msgid "Reading directory: "
+msgstr ""
+
+#: fileaccess.cpp:1355
+#, kde-format
+msgid "Listing directory: %1"
+msgstr ""
+
+#: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396
+msgid "&Cancel"
+msgstr "&Cealaigh"
+
+#: difftextwindow.cpp:403
+msgid "Line"
+msgstr "Líne"
+
+#: difftextwindow.cpp:405
+msgid "Line not available"
+msgstr ""
+
+#: difftextwindow.cpp:1703 difftextwindow.cpp:1736
+msgid "Encoding:"
+msgstr "Ionchódú:"
+
+#: difftextwindow.cpp:1759 kdiff3.cpp:831
+msgid "Top line"
+msgstr ""
+
+#: difftextwindow.cpp:1769
+msgid "End"
+msgstr "Deireadh"
+
+#: kdiff3.cpp:169
+msgid "Current Configuration:"
+msgstr ""
+
+#: kdiff3.cpp:174
+msgid "Config Option Error:"
+msgstr ""
+
+#: kdiff3.cpp:219
+msgid "Option --auto used, but no output file specified."
+msgstr ""
+
+#: kdiff3.cpp:369
+msgid "Option --auto ignored for directory comparison."
+msgstr ""
+
+#: kdiff3.cpp:405
+msgid "Saving failed."
+msgstr ""
+
+#: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214
+msgid "Opening of these files failed:"
+msgstr ""
+
+#: kdiff3.cpp:449
+msgid "File Open Error"
+msgstr ""
+
+#: kdiff3.cpp:477
+msgid "Opens documents for comparison..."
+msgstr ""
+
+#: kdiff3.cpp:479
+msgid "Reload"
+msgstr "Athluchtaigh"
+
+#: kdiff3.cpp:482
+msgid "Saves the merge result. All conflicts must be solved!"
+msgstr ""
+
+#: kdiff3.cpp:484
+msgid "Saves the current document as..."
+msgstr ""
+
+#: kdiff3.cpp:487
+msgid "Print the differences"
+msgstr ""
+
+#: kdiff3.cpp:490
+msgid "Quits the application"
+msgstr "Éirigh as an bhfeidhmchlár"
+
+#: kdiff3.cpp:492
+msgid "Cuts the selected section and puts it to the clipboard"
+msgstr "Gearr an rannán roghnaithe agus cuir é sa ghearrthaisce"
+
+#: kdiff3.cpp:494
+msgid "Copies the selected section to the clipboard"
+msgstr "Cuir cóip den rannán roghnaithe sa ghearrthaisce"
+
+#: kdiff3.cpp:496
+#, fuzzy
+#| msgid "Pastes the clipboard contents to actual position"
+msgid "Pastes the clipboard contents to current position"
+msgstr "Greamaigh inneachar na gearrthaisce ag ionad an chúrsóra"
+
+#: kdiff3.cpp:498
+msgid "Select everything in current window"
+msgstr ""
+
+#: kdiff3.cpp:500
+msgid "Search for a string"
+msgstr ""
+
+#: kdiff3.cpp:502
+msgid "Search again for the string"
+msgstr ""
+
+#: kdiff3.cpp:507
+msgid "Enables/disables the statusbar"
+msgstr "Cumasaigh/díchumasaigh an barra stádais"
+
+#: kdiff3.cpp:511
+msgid "Configure KDiff3..."
+msgstr ""
+
+#: kdiff3.cpp:532
+msgid "Go to Current Delta"
+msgstr ""
+
+#: kdiff3.cpp:532
+msgid ""
+"Current\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:534
+msgid "Go to First Delta"
+msgstr ""
+
+#: kdiff3.cpp:534
+msgid ""
+"First\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:536
+msgid "Go to Last Delta"
+msgstr ""
+
+#: kdiff3.cpp:536
+msgid ""
+"Last\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:538
+msgid "(Skips white space differences when \"Show White Space\" is disabled.)"
+msgstr ""
+
+#: kdiff3.cpp:539
+msgid ""
+"(Does not skip white space differences even when \"Show White Space\" is "
+"disabled.)"
+msgstr ""
+
+#: kdiff3.cpp:540
+msgid "Go to Previous Delta"
+msgstr ""
+
+#: kdiff3.cpp:540
+msgid ""
+"Prev\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:542
+msgid "Go to Next Delta"
+msgstr ""
+
+#: kdiff3.cpp:542
+msgid ""
+"Next\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:544
+msgid "Go to Previous Conflict"
+msgstr ""
+
+#: kdiff3.cpp:544
+msgid ""
+"Prev\n"
+"Conflict"
+msgstr ""
+
+#: kdiff3.cpp:546
+msgid "Go to Next Conflict"
+msgstr ""
+
+#: kdiff3.cpp:546
+msgid ""
+"Next\n"
+"Conflict"
+msgstr ""
+
+#: kdiff3.cpp:548
+msgid "Go to Previous Unsolved Conflict"
+msgstr ""
+
+#: kdiff3.cpp:548
+msgid ""
+"Prev\n"
+"Unsolved"
+msgstr ""
+
+#: kdiff3.cpp:550
+msgid "Go to Next Unsolved Conflict"
+msgstr ""
+
+#: kdiff3.cpp:550
+msgid ""
+"Next\n"
+"Unsolved"
+msgstr ""
+
+#: kdiff3.cpp:552
+msgid "Select Line(s) From A"
+msgstr ""
+
+#: kdiff3.cpp:552
+msgid ""
+"Choose\n"
+"A"
+msgstr ""
+
+#: kdiff3.cpp:553
+msgid "Select Line(s) From B"
+msgstr ""
+
+#: kdiff3.cpp:553
+msgid ""
+"Choose\n"
+"B"
+msgstr ""
+
+#: kdiff3.cpp:554
+msgid "Select Line(s) From C"
+msgstr ""
+
+#: kdiff3.cpp:554
+msgid ""
+"Choose\n"
+"C"
+msgstr ""
+
+#: kdiff3.cpp:555
+msgid "Automatically Go to Next Unsolved Conflict After Source Selection"
+msgstr ""
+
+#: kdiff3.cpp:555
+msgid ""
+"Auto\n"
+"Next"
+msgstr ""
+
+#: kdiff3.cpp:557
+msgid "Show Space && Tabulator Characters for Differences"
+msgstr ""
+
+#: kdiff3.cpp:557
+msgid ""
+"White\n"
+"Characters"
+msgstr ""
+
+#: kdiff3.cpp:558
+msgid "Show White Space"
+msgstr ""
+
+#: kdiff3.cpp:558
+msgid ""
+"White\n"
+"Deltas"
+msgstr ""
+
+#: kdiff3.cpp:560
+msgid "Show Line Numbers"
+msgstr ""
+
+#: kdiff3.cpp:560
+msgid ""
+"Line\n"
+"Numbers"
+msgstr ""
+
+#: kdiff3.cpp:561
+msgid "Choose A Everywhere"
+msgstr ""
+
+#: kdiff3.cpp:562
+msgid "Choose B Everywhere"
+msgstr ""
+
+#: kdiff3.cpp:563
+msgid "Choose C Everywhere"
+msgstr ""
+
+#: kdiff3.cpp:564
+msgid "Choose A for All Unsolved Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:565
+msgid "Choose B for All Unsolved Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:566
+msgid "Choose C for All Unsolved Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:567
+msgid "Choose A for All Unsolved Whitespace Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:568
+msgid "Choose B for All Unsolved Whitespace Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:569
+msgid "Choose C for All Unsolved Whitespace Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:570
+msgid "Automatically Solve Simple Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:571
+msgid "Set Deltas to Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:572
+msgid "Run Regular Expression Auto Merge"
+msgstr ""
+
+#: kdiff3.cpp:573
+msgid "Automatically Solve History Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:574
+msgid "Split Diff At Selection"
+msgstr ""
+
+#: kdiff3.cpp:575
+msgid "Join Selected Diffs"
+msgstr ""
+
+#: kdiff3.cpp:577
+msgid "Show Window A"
+msgstr ""
+
+#: kdiff3.cpp:578
+msgid "Show Window B"
+msgstr ""
+
+#: kdiff3.cpp:579
+msgid "Show Window C"
+msgstr ""
+
+#: kdiff3.cpp:580 kdiff3.cpp:591
+msgid "Focus Next Window"
+msgstr ""
+
+#: kdiff3.cpp:582
+msgid "Normal Overview"
+msgstr ""
+
+#: kdiff3.cpp:583
+msgid "A vs. B Overview"
+msgstr ""
+
+#: kdiff3.cpp:584
+msgid "A vs. C Overview"
+msgstr ""
+
+#: kdiff3.cpp:585
+msgid "B vs. C Overview"
+msgstr ""
+
+#: kdiff3.cpp:586
+msgid "Word Wrap Diff Windows"
+msgstr ""
+
+#: kdiff3.cpp:587
+msgid "Add Manual Diff Alignment"
+msgstr ""
+
+#: kdiff3.cpp:588
+msgid "Clear All Manual Diff Alignments"
+msgstr ""
+
+#: kdiff3.cpp:593
+msgid "Focus Prev Window"
+msgstr ""
+
+#: kdiff3.cpp:594
+msgid "Toggle Split Orientation"
+msgstr ""
+
+#: kdiff3.cpp:596
+msgid "Dir && Text Split Screen View"
+msgstr ""
+
+#: kdiff3.cpp:598
+msgid "Toggle Between Dir && Text View"
+msgstr ""
+
+#: kdiff3.cpp:654 pdiff.cpp:1812
+msgid "The merge result hasn't been saved."
+msgstr ""
+
+#: kdiff3.cpp:656
+msgid "Save && Quit"
+msgstr ""
+
+#: kdiff3.cpp:657
+msgid "Quit Without Saving"
+msgstr ""
+
+#: kdiff3.cpp:665 pdiff.cpp:1823
+msgid "Saving the merge result failed."
+msgstr ""
+
+#: kdiff3.cpp:676 pdiff.cpp:1078
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort?"
+msgstr ""
+
+#: kdiff3.cpp:701
+msgid "Saving file..."
+msgstr "Comhad á shábháil..."
+
+#: kdiff3.cpp:718
+msgid "Saving file with a new filename..."
+msgstr "Comhad á shábháil le hainm comhaid nua..."
+
+#: kdiff3.cpp:781
+#, fuzzy
+#| msgid "Printing aborted."
+msgid "Printing not implemented."
+msgstr "Priontáil tobscortha."
+
+#: kdiff3.cpp:815
+msgid "Printing..."
+msgstr "Á Phriontáil..."
+
+#: kdiff3.cpp:956
+msgid "Selection"
+msgstr "Roghnú"
+
+#: kdiff3.cpp:982
+msgid "Printing completed."
+msgstr ""
+
+#: kdiff3.cpp:986
+msgid "Printing aborted."
+msgstr "Priontáil tobscortha."
+
+#: kdiff3.cpp:993
+msgid "Exiting..."
+msgstr "Ag scor..."
+
+#: kdiff3.cpp:1006
+msgid "Toggling toolbar..."
+msgstr "Barra uirlisí á scoránú..."
+
+#: kdiff3.cpp:1027
+msgid "Toggle the statusbar..."
+msgstr "Scoránaigh an barra stádais..."
+
+#: smalldialogs.cpp:58
+msgid "A (Base):"
+msgstr ""
+
+#: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99
+#: smalldialogs.cpp:142
+msgid "File..."
+msgstr "Comhad..."
+
+#: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101
+#: smalldialogs.cpp:144
+msgid "Dir..."
+msgstr ""
+
+#: smalldialogs.cpp:93
+msgid "C (Optional):"
+msgstr ""
+
+#: smalldialogs.cpp:116
+msgid "Swap/Copy Names ..."
+msgstr ""
+
+#: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123
+#, kde-format
+msgid "Swap %1<->%2"
+msgstr ""
+
+#: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126
+#, kde-format
+msgid "Copy %1->Output"
+msgstr ""
+
+#: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129
+#, kde-format
+msgid "Swap %1<->Output"
+msgstr ""
+
+#: smalldialogs.cpp:136
+msgid "Output (optional):"
+msgstr ""
+
+#: smalldialogs.cpp:168
+msgid "Configure..."
+msgstr "Cumraigh..."
+
+#: smalldialogs.cpp:174
+msgid "&OK"
+msgstr "&OK"
+
+#: smalldialogs.cpp:362
+msgid "Search text:"
+msgstr ""
+
+#: smalldialogs.cpp:369
+msgid "Case sensitive"
+msgstr "Cásíogair"
+
+#: smalldialogs.cpp:372
+msgid "Search A"
+msgstr ""
+
+#: smalldialogs.cpp:377
+msgid "Search B"
+msgstr ""
+
+#: smalldialogs.cpp:382
+msgid "Search C"
+msgstr ""
+
+#: smalldialogs.cpp:387
+msgid "Search output"
+msgstr ""
+
+#: smalldialogs.cpp:392
+msgid "&Search"
+msgstr "&Cuardach"
+
+#: smalldialogs.cpp:409
+msgid "Regular Expression Tester"
+msgstr ""
+
+#: smalldialogs.cpp:414 optiondialog.cpp:936
+msgid "Auto merge regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:422
+msgid "Example auto merge line:"
+msgstr ""
+
+#: smalldialogs.cpp:424
+msgid "To test auto merge, copy a line as used in your files."
+msgstr ""
+
+#: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494
+msgid "Match result:"
+msgstr ""
+
+#: smalldialogs.cpp:441 optiondialog.cpp:962
+msgid "History start regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:449
+msgid "Example history start line (with leading comment):"
+msgstr ""
+
+#: smalldialogs.cpp:451
+msgid ""
+"Copy a history start line as used in your files,\n"
+"including the leading comment."
+msgstr ""
+
+#: smalldialogs.cpp:469 optiondialog.cpp:972
+msgid "History entry start regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:477
+msgid "History sort key order:"
+msgstr ""
+
+#: smalldialogs.cpp:485
+msgid "Example history entry start line (without leading comment):"
+msgstr ""
+
+#: smalldialogs.cpp:487
+msgid ""
+"Copy a history entry start line as used in your files,\n"
+"but omit the leading comment."
+msgstr ""
+
+#: smalldialogs.cpp:501
+msgid "Sort key result:"
+msgstr ""
+
+#: smalldialogs.cpp:508
+msgid "OK"
+msgstr "OK"
+
+#: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583
+msgid "Match success."
+msgstr ""
+
+#: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589
+msgid "Match failed."
+msgstr ""
+
+#: smalldialogs.cpp:574
+msgid "Opening and closing parentheses do not match in regular expression."
+msgstr ""
+
+#: optiondialog.cpp:367
+msgid "Unicode, 8 bit"
+msgstr ""
+
+#: optiondialog.cpp:368
+msgid "Unicode"
+msgstr "Unicode"
+
+#: optiondialog.cpp:369
+msgid "Latin1"
+msgstr "ISO 8859-1"
+
+#: optiondialog.cpp:388
+msgid "Change this if non-ASCII characters are not displayed correctly."
+msgstr ""
+
+#: optiondialog.cpp:465
+msgid "Configure"
+msgstr "Cumraigh"
+
+#: optiondialog.cpp:531
+msgid "Font"
+msgstr "Cló"
+
+#: optiondialog.cpp:532
+msgid "Editor & Diff Output Font"
+msgstr ""
+
+#: optiondialog.cpp:556
+msgid "Italic font for deltas"
+msgstr ""
+
+#: optiondialog.cpp:559
+msgid ""
+"Selects the italic version of the font for differences.\n"
+"If the font doesn't support italic characters, then this does nothing."
+msgstr ""
+
+#: optiondialog.cpp:568
+msgid "Color"
+msgstr "Dath"
+
+#: optiondialog.cpp:569
+msgid "Colors Settings"
+msgstr ""
+
+#: optiondialog.cpp:588
+msgid "Editor and Diff Views:"
+msgstr ""
+
+#: optiondialog.cpp:596
+msgid "Foreground color:"
+msgstr "Dath an tulra:"
+
+#: optiondialog.cpp:603
+msgid "Background color:"
+msgstr "Dath an chúlra:"
+
+#: optiondialog.cpp:612
+msgid "Diff background color:"
+msgstr ""
+
+#: optiondialog.cpp:620
+msgid "Color A:"
+msgstr ""
+
+#: optiondialog.cpp:628
+msgid "Color B:"
+msgstr ""
+
+#: optiondialog.cpp:636
+msgid "Color C:"
+msgstr ""
+
+#: optiondialog.cpp:643
+msgid "Conflict color:"
+msgstr ""
+
+#: optiondialog.cpp:651
+msgid "Current range background color:"
+msgstr ""
+
+#: optiondialog.cpp:659
+msgid "Current range diff background color:"
+msgstr ""
+
+#: optiondialog.cpp:666
+msgid "Color for manually aligned difference ranges:"
+msgstr ""
+
+#: optiondialog.cpp:672
+msgid "Directory Comparison View:"
+msgstr ""
+
+#: optiondialog.cpp:678
+msgid "Newest file color:"
+msgstr ""
+
+#: optiondialog.cpp:682
+msgid ""
+"Changing this color will only be effective when starting the next directory "
+"comparison."
+msgstr ""
+
+#: optiondialog.cpp:687
+msgid "Oldest file color:"
+msgstr ""
+
+#: optiondialog.cpp:695
+msgid "Middle age file color:"
+msgstr ""
+
+#: optiondialog.cpp:703
+msgid "Color for missing files:"
+msgstr ""
+
+#: optiondialog.cpp:717
+msgid "Editor"
+msgstr "Eagarthóir"
+
+#: optiondialog.cpp:718
+msgid "Editor Behavior"
+msgstr ""
+
+#: optiondialog.cpp:732
+msgid "Tab inserts spaces"
+msgstr ""
+
+#: optiondialog.cpp:735
+msgid ""
+"On: Pressing tab generates the appropriate number of spaces.\n"
+"Off: A tab character will be inserted."
+msgstr ""
+
+#: optiondialog.cpp:741
+msgid "Tab size:"
+msgstr ""
+
+#: optiondialog.cpp:747
+msgid "Auto indentation"
+msgstr ""
+
+#: optiondialog.cpp:750
+msgid "On: The indentation of the previous line is used for a new line.\n"
+msgstr ""
+
+#: optiondialog.cpp:754
+msgid "Auto copy selection"
+msgstr ""
+
+#: optiondialog.cpp:757
+msgid ""
+"On: Any selection is immediately written to the clipboard.\n"
+"Off: You must explicitely copy e.g. via Ctrl-C."
+msgstr ""
+
+#: optiondialog.cpp:768
+#, fuzzy
+#| msgid "&Window"
+msgid "Dos/Windows"
+msgstr "&Fuinneog"
+
+#: optiondialog.cpp:769
+#, fuzzy
+#| msgid "Auto Select"
+msgid "Autodetect"
+msgstr "Roghnaigh go hUathoibríoch"
+
+#: optiondialog.cpp:772
+msgid ""
+"Sets the line endings for when an edited file is saved.\n"
+"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A"
+msgstr ""
+
+#: optiondialog.cpp:784
+msgid "Diff"
+msgstr "Diff"
+
+#: optiondialog.cpp:785
+msgid "Diff Settings"
+msgstr "Socruithe Diff"
+
+#: optiondialog.cpp:809
+msgid "Treat as white space."
+msgstr "Déileálfar leis mar spás bán."
+
+#: optiondialog.cpp:811
+msgid "Ignore numbers"
+msgstr "Déan neamhaird d'uimhreacha"
+
+#: optiondialog.cpp:814
+msgid ""
+"Ignore number characters during line matching phase. (Similar to Ignore "
+"white space.)\n"
+"Might help to compare files with numeric data."
+msgstr ""
+
+#: optiondialog.cpp:819
+msgid "Ignore C/C++ comments"
+msgstr ""
+
+#: optiondialog.cpp:821
+msgid "Treat C/C++ comments like white space."
+msgstr "Déileálfar le nótaí tráchta C/C++ mar spás bán."
+
+#: optiondialog.cpp:825
+msgid "Ignore case"
+msgstr ""
+
+#: optiondialog.cpp:828
+msgid "Treat case differences like white space changes. ('a'<=>'A')"
+msgstr ""
+"Déileálfar le difríochtaí i gcás mar athruithe sa spás bán. ('a'<=>'A')"
+
+#: optiondialog.cpp:832
+msgid "Preprocessor command:"
+msgstr ""
+
+#: optiondialog.cpp:836
+msgid "User defined pre-processing. (See the docs for details.)"
+msgstr ""
+
+#: optiondialog.cpp:839
+msgid "Line-matching preprocessor command:"
+msgstr ""
+
+#: optiondialog.cpp:843
+msgid ""
+"This pre-processor is only used during line matching.\n"
+"(See the docs for details.)"
+msgstr ""
+
+#: optiondialog.cpp:846
+msgid "Try hard (slower)"
+msgstr ""
+
+#: optiondialog.cpp:849
+msgid ""
+"Enables the --minimal option for the external diff.\n"
+"The analysis of big files will be much slower."
+msgstr ""
+
+#: optiondialog.cpp:854
+msgid "Align B and C for 3 input files"
+msgstr ""
+
+#: optiondialog.cpp:857
+msgid ""
+"Try to align B and C when comparing or merging three input files.\n"
+"Not recommended for merging because merge might get more complicated.\n"
+"(Default is off.)"
+msgstr ""
+
+#: optiondialog.cpp:870
+msgid "Merge Settings"
+msgstr ""
+
+#: optiondialog.cpp:885
+msgid "Auto advance delay (ms):"
+msgstr ""
+
+#: optiondialog.cpp:890
+msgid ""
+"When in Auto-Advance mode the result of the current selection is shown \n"
+"for the specified time, before jumping to the next conflict. Range: 0-2000 ms"
+msgstr ""
+
+#: optiondialog.cpp:895
+msgid "Show info dialogs"
+msgstr ""
+
+#: optiondialog.cpp:897
+msgid "Show a dialog with information about the number of conflicts."
+msgstr ""
+
+#: optiondialog.cpp:900
+msgid "White space 2-file merge default:"
+msgstr ""
+
+#: optiondialog.cpp:904 optiondialog.cpp:917
+msgid "Manual Choice"
+msgstr ""
+
+#: optiondialog.cpp:908 optiondialog.cpp:922
+msgid ""
+"Allow the merge algorithm to automatically select an input for white-space-"
+"only changes."
+msgstr ""
+
+#: optiondialog.cpp:913
+msgid "White space 3-file merge default:"
+msgstr ""
+
+#: optiondialog.cpp:927
+msgid "Automatic Merge Regular Expression"
+msgstr ""
+
+#: optiondialog.cpp:940
+msgid ""
+"Regular expression for lines where KDiff3 should automatically choose one "
+"source.\n"
+"When a line with a conflict matches the regular expression then\n"
+"- if available - C, otherwise B will be chosen."
+msgstr ""
+
+#: optiondialog.cpp:946
+msgid "Run regular expression auto merge on merge start"
+msgstr ""
+
+#: optiondialog.cpp:948
+msgid ""
+"Run the merge for auto merge regular expressions\n"
+"immediately when a merge starts.\n"
+msgstr ""
+
+#: optiondialog.cpp:953
+msgid "Version Control History Merging"
+msgstr ""
+
+#: optiondialog.cpp:966
+msgid ""
+"Regular expression for the start of the version control history entry.\n"
+"Usually this line contains the \"$Log$\" keyword.\n"
+"Default value: \".*\\$Log.*\\$.*\""
+msgstr ""
+
+#: optiondialog.cpp:984
+msgid ""
+"A version control history entry consists of several lines.\n"
+"Specify the regular expression to detect the first line (without the leading "
+"comment).\n"
+"Use parentheses to group the keys you want to use for sorting.\n"
+"If left empty, then KDiff3 assumes that empty lines separate history "
+"entries.\n"
+"See the documentation for details."
+msgstr ""
+
+#: optiondialog.cpp:992
+msgid "History merge sorting"
+msgstr ""
+
+#: optiondialog.cpp:994
+msgid "Sort version control history by a key."
+msgstr ""
+
+#: optiondialog.cpp:1004
+msgid "History entry start sort key order:"
+msgstr ""
+
+#: optiondialog.cpp:1008
+msgid ""
+"Each pair of parentheses used in the regular expression for the history "
+"start entry\n"
+"groups a key that can be used for sorting.\n"
+"Specify the list of keys (that are numbered in order of occurrence\n"
+"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n"
+"If left empty, then no sorting will be done.\n"
+"See the documentation for details."
+msgstr ""
+
+#: optiondialog.cpp:1019
+msgid "Merge version control history on merge start"
+msgstr ""
+
+#: optiondialog.cpp:1021
+msgid "Run version control history automerge on merge start."
+msgstr ""
+
+#: optiondialog.cpp:1025
+msgid "Max number of history entries:"
+msgstr ""
+
+#: optiondialog.cpp:1028
+msgid "Cut off after specified number. Use -1 for infinite number of entries."
+msgstr ""
+
+#: optiondialog.cpp:1032
+msgid "Test your regular expressions"
+msgstr ""
+
+#: optiondialog.cpp:1037
+msgid "Irrelevant merge command:"
+msgstr ""
+
+#: optiondialog.cpp:1041
+msgid ""
+"If specified this script is run after automerge\n"
+"when no other relevant changes were detected.\n"
+"Called with the parameters: filename1 filename2 filename3"
+msgstr ""
+
+#: optiondialog.cpp:1047
+msgid "Auto save and quit on merge without conflicts"
+msgstr ""
+
+#: optiondialog.cpp:1050
+msgid ""
+"If KDiff3 was started for a file-merge from the command line and all\n"
+"conflicts are solvable without user interaction then automatically save and "
+"quit.\n"
+"(Similar to command line option \"--auto\".)"
+msgstr ""
+
+#: optiondialog.cpp:1061 optiondialog.cpp:1062
+msgid "Directory"
+msgstr "Comhadlann"
+
+#: optiondialog.cpp:1075
+msgid "Recursive directories"
+msgstr ""
+
+#: optiondialog.cpp:1077
+msgid "Whether to analyze subdirectories or not."
+msgstr ""
+
+#: optiondialog.cpp:1079
+msgid "File pattern(s):"
+msgstr ""
+
+#: optiondialog.cpp:1084
+msgid ""
+"Pattern(s) of files to be analyzed. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1090
+msgid "File-anti-pattern(s):"
+msgstr ""
+
+#: optiondialog.cpp:1095
+msgid ""
+"Pattern(s) of files to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1101
+msgid "Dir-anti-pattern(s):"
+msgstr ""
+
+#: optiondialog.cpp:1106
+msgid ""
+"Pattern(s) of directories to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1112
+msgid "Use .cvsignore"
+msgstr ""
+
+#: optiondialog.cpp:1115
+msgid ""
+"Extends the antipattern to anything that would be ignored by CVS.\n"
+"Via local \".cvsignore\" files this can be directory specific."
+msgstr ""
+
+#: optiondialog.cpp:1120
+msgid "Find hidden files and directories"
+msgstr ""
+
+#: optiondialog.cpp:1123
+msgid "Finds files and directories with the hidden attribute."
+msgstr ""
+
+#: optiondialog.cpp:1125
+msgid "Finds files and directories starting with '.'."
+msgstr ""
+
+#: optiondialog.cpp:1129
+msgid "Follow file links"
+msgstr ""
+
+#: optiondialog.cpp:1132
+msgid ""
+"On: Compare the file the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+
+#: optiondialog.cpp:1137
+msgid "Follow directory links"
+msgstr ""
+
+#: optiondialog.cpp:1140
+msgid ""
+"On: Compare the directory the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+
+#: optiondialog.cpp:1156
+msgid "Case sensitive filename comparison"
+msgstr ""
+
+#: optiondialog.cpp:1159
+msgid ""
+"The directory comparison will compare files or directories when their names "
+"match.\n"
+"Set this option if the case of the names must match. (Default for Windows is "
+"off, otherwise on.)"
+msgstr ""
+
+#: optiondialog.cpp:1163
+msgid "File Comparison Mode"
+msgstr ""
+
+#: optiondialog.cpp:1169
+msgid "Binary comparison"
+msgstr ""
+
+#: optiondialog.cpp:1170
+msgid "Binary comparison of each file. (Default)"
+msgstr ""
+
+#: optiondialog.cpp:1173
+msgid "Full analysis"
+msgstr ""
+
+#: optiondialog.cpp:1174
+msgid ""
+"Do a full analysis and show statistics information in extra columns.\n"
+"(Slower than a binary comparison, much slower for binary files.)"
+msgstr ""
+
+#: optiondialog.cpp:1178
+msgid "Trust the size and modification date (unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1179
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"Files with equal contents but different modification dates will appear as "
+"different.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+
+#: optiondialog.cpp:1184
+msgid ""
+"Trust the size and date, but use binary comparison if date does not match "
+"(unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1185
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"If the dates are not equal but the sizes are, use binary comparison.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+
+#: optiondialog.cpp:1190
+msgid "Trust the size (unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1191
+msgid ""
+"Assume that files are equal if their file lengths are equal.\n"
+"Useful for big directories or slow networks when the date is modified during "
+"download."
+msgstr ""
+
+#: optiondialog.cpp:1199
+msgid "Synchronize directories"
+msgstr ""
+
+#: optiondialog.cpp:1202
+msgid ""
+"Offers to store files in both directories so that\n"
+"both directories are the same afterwards.\n"
+"Works only when comparing two directories without specifying a destination."
+msgstr ""
+
+#: optiondialog.cpp:1208
+msgid "White space differences considered equal"
+msgstr ""
+
+#: optiondialog.cpp:1211
+msgid ""
+"If files differ only by white space consider them equal.\n"
+"This is only active when full analysis is chosen."
+msgstr ""
+
+#: optiondialog.cpp:1217
+msgid "Copy newer instead of merging (unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1220
+msgid ""
+"Don't look inside, just take the newer file.\n"
+"(Use this only if you know what you are doing!)\n"
+"Only effective when comparing two directories."
+msgstr ""
+
+#: optiondialog.cpp:1225
+msgid "Backup files (.orig)"
+msgstr ""
+
+#: optiondialog.cpp:1228
+msgid ""
+"If a file would be saved over an old file, then the old file\n"
+"will be renamed with a '.orig' extension instead of being deleted."
+msgstr ""
+
+#: optiondialog.cpp:1301 optiondialog.cpp:1302
+msgid "Regional Settings"
+msgstr ""
+
+#: optiondialog.cpp:1402
+msgid "Language (restart required)"
+msgstr ""
+
+#: optiondialog.cpp:1445
+msgid ""
+"Choose the language of the GUI strings or \"Auto\".\n"
+"For a change of language to take place, quit and restart KDiff3."
+msgstr ""
+
+#: optiondialog.cpp:1463
+msgid "Use the same encoding for everything:"
+msgstr ""
+
+#: optiondialog.cpp:1466
+msgid ""
+"Enable this allows to change all encodings by changing the first only.\n"
+"Disable this if different individual settings are needed."
+msgstr ""
+
+#: optiondialog.cpp:1471
+msgid "Note: Local Encoding is "
+msgstr ""
+
+#: optiondialog.cpp:1475
+msgid "File Encoding for A:"
+msgstr ""
+
+#: optiondialog.cpp:1481
+msgid ""
+"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n"
+"If the file is not Unicode then the selected encoding will be used as "
+"fallback.\n"
+"(Unicode detection depends on the first bytes of a file.)"
+msgstr ""
+
+#: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503
+msgid "Auto Detect Unicode"
+msgstr ""
+
+#: optiondialog.cpp:1490
+msgid "File Encoding for B:"
+msgstr ""
+
+#: optiondialog.cpp:1499
+msgid "File Encoding for C:"
+msgstr ""
+
+#: optiondialog.cpp:1508
+msgid "File Encoding for Merge Output and Saving:"
+msgstr ""
+
+#: optiondialog.cpp:1512
+msgid "Auto Select"
+msgstr "Roghnaigh go hUathoibríoch"
+
+#: optiondialog.cpp:1515
+msgid ""
+"If enabled then the encoding from the input files is used.\n"
+"In ambiguous cases a dialog will ask the user to choose the encoding for "
+"saving."
+msgstr ""
+
+#: optiondialog.cpp:1519
+msgid "File Encoding for Preprocessor Files:"
+msgstr ""
+
+#: optiondialog.cpp:1530
+msgid "Right To Left Language"
+msgstr ""
+
+#: optiondialog.cpp:1533
+msgid ""
+"Some languages are read from right to left.\n"
+"This setting will change the viewer and editor accordingly."
+msgstr ""
+
+#: optiondialog.cpp:1548
+msgid "Integration"
+msgstr "Comhtháthú"
+
+#: optiondialog.cpp:1549
+msgid "Integration Settings"
+msgstr ""
+
+#: optiondialog.cpp:1563
+msgid "Command line options to ignore:"
+msgstr ""
+
+#: optiondialog.cpp:1568
+msgid ""
+"List of command line options that should be ignored when KDiff3 is used by "
+"other tools.\n"
+"Several values can be specified if separated via ';'\n"
+"This will suppress the \"Unknown option\" error."
+msgstr ""
+
+#: optiondialog.cpp:1575
+msgid "Quit also via Escape key"
+msgstr ""
+
+#: optiondialog.cpp:1578
+msgid ""
+"Fast method to exit.\n"
+"For those who are used to using the Escape key."
+msgstr ""
+
+#: optiondialog.cpp:1583
+msgid "Integrate with ClearCase"
+msgstr ""
+
+#: optiondialog.cpp:1586
+msgid ""
+"Integrate with Rational ClearCase from IBM.\n"
+"Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n"
+"(Only enabled when ClearCase \"bin\" directory is in the path.)"
+msgstr ""
+
+#: optiondialog.cpp:1592
+msgid "Remove ClearCase Integration"
+msgstr ""
+
+#: optiondialog.cpp:1595
+msgid ""
+"Restore the old \"map\" file from before doing the ClearCase integration."
+msgstr ""
+
+#: optiondialog.cpp:1680
+msgid "Incompatible Font"
+msgstr ""
+
+#: optiondialog.cpp:1681
+msgid "Continue at Own Risk"
+msgstr ""
+
+#: optiondialog.cpp:1682
+msgid "Select Another Font"
+msgstr ""
+
+#: optiondialog.cpp:1717
+msgid "This resets all options. Not only those of the current topic."
+msgstr ""
+
+#: pdiff.cpp:260
+msgid "PreprocessorCmd: "
+msgstr ""
+
+#: pdiff.cpp:265
+msgid "The following option(s) you selected might change data:\n"
+msgstr ""
+
+#: pdiff.cpp:266
+msgid ""
+"\n"
+"Most likely this is not wanted during a merge.\n"
+"Do you want to disable these settings or continue with these settings active?"
+msgstr ""
+
+#: pdiff.cpp:268
+msgid "Option Unsafe for Merging"
+msgstr ""
+
+#: pdiff.cpp:269
+msgid "Use These Options During Merge"
+msgstr ""
+
+#: pdiff.cpp:270
+msgid "Disable Unsafe Options"
+msgstr ""
+
+#: pdiff.cpp:300
+msgid "Loading A"
+msgstr ""
+
+#: pdiff.cpp:304
+msgid "Loading B"
+msgstr ""
+
+#: pdiff.cpp:321 pdiff.cpp:347
+msgid "Diff: A <-> B"
+msgstr ""
+
+#: pdiff.cpp:327 pdiff.cpp:372
+msgid "Linediff: A <-> B"
+msgstr ""
+
+#: pdiff.cpp:338
+msgid "Loading C"
+msgstr ""
+
+#: pdiff.cpp:350
+msgid "Diff: B <-> C"
+msgstr ""
+
+#: pdiff.cpp:353
+msgid "Diff: A <-> C"
+msgstr ""
+
+#: pdiff.cpp:375
+msgid "Linediff: B <-> C"
+msgstr ""
+
+#: pdiff.cpp:378
+msgid "Linediff: A <-> C"
+msgstr ""
+
+#: pdiff.cpp:534
+msgid "All input files contain the same text, but are not binary equal."
+msgstr ""
+
+#: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541
+#, kde-format
+msgid "Files %1 and %2 have equal text, but are not binary equal. \n"
+msgstr ""
+
+#: pdiff.cpp:551
+msgid ""
+"Some inputfiles don't seem to be pure textfiles.\n"
+"Note that the KDiff3-merge was not meant for binary data.\n"
+"Continue at your own risk."
+msgstr ""
+
+#: pdiff.cpp:566
+#, kde-format
+msgid ""
+"Some input characters could not be converted to valid unicode.\n"
+"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n"
+"Don't save the result if unsure. Continue at your own risk.\n"
+"Affected input files are in %1."
+msgstr ""
+
+#: pdiff.cpp:1080
+msgid "Abort"
+msgstr "Tobscoir"
+
+#: pdiff.cpp:1087 pdiff.cpp:1175
+msgid "Opening files..."
+msgstr ""
+
+#: pdiff.cpp:1152 pdiff.cpp:1223
+msgid "File open error"
+msgstr ""
+
+#: pdiff.cpp:1255
+msgid "Cutting selection..."
+msgstr "Roghnúchán á ghearradh..."
+
+#: pdiff.cpp:1276
+msgid "Copying selection to clipboard..."
+msgstr "Roghnúchán á chóipeáil go dtí an ghearrthaisce..."
+
+#: pdiff.cpp:1292
+msgid "Inserting clipboard contents..."
+msgstr "Inneachar na gearrthaisce á ionsá..."
+
+#: pdiff.cpp:1814
+msgid "Save && Continue"
+msgstr ""
+
+#: pdiff.cpp:1815
+msgid "Continue Without Saving"
+msgstr ""
+
+#: pdiff.cpp:2018
+msgid "Search complete."
+msgstr ""
+
+#: pdiff.cpp:2018
+msgid "Search Complete"
+msgstr ""
+
+#: pdiff.cpp:2252
+msgid "Nothing is selected in either diff input window."
+msgstr ""
+
+#: pdiff.cpp:2252
+msgid "Error while adding manual diff range"
+msgstr ""
+
+#: kdiff3_shell.cpp:76
+msgid ""
+"Could not initialize the KDiff3 part.\n"
+"This usually happens due to an installation problem. Please read the README-"
+"file in the source package for details."
+msgstr ""
+
+#: rc.cpp:1
+msgctxt "NAME OF TRANSLATORS"
+msgid "Your names"
+msgstr "Kevin Scannell"
+
+#: rc.cpp:2
+msgctxt "EMAIL OF TRANSLATORS"
+msgid "Your emails"
+msgstr "kscanne at gmail dot com"
+
+#. i18n: file: kdiff3_part.rc:4
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:5
+msgid "&KDiff3"
+msgstr ""
+
+#. i18n: file: kdiff3_part.rc:13
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:8
+msgid "Configure KDiff3"
+msgstr ""
+
+#. i18n: file: kdiff3_part.rc:16
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:11
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#. i18n: file: kdiff3_shell.rc:106
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:38
+msgid "Main Toolbar"
+msgstr "Príomhbharra Uirlisí"
+
+#~ msgid "C&ontinue"
+#~ msgstr "&Lean ar aghaidh"
diff --git a/po/ga/kdiff3plugin.po b/po/ga/kdiff3plugin.po
new file mode 100644 (file)
index 0000000..0c97a94
--- /dev/null
@@ -0,0 +1,85 @@
+# Irish translation of kdiff3plugin
+# Copyright (C) 2009 This_file_is_part_of_KDE
+# This file is distributed under the same license as the kdiff3plugin package.
+# Kevin Scannell <kscanne@gmail.com>, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3plugin.po\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2008-08-04 12:52-0500\n"
+"Last-Translator: Kevin Scannell <kscanne@gmail.com>\n"
+"Language-Team: Irish <gaeilge-gnulinux@lists.sourceforge.net>\n"
+"Language: ga\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=5; plural=n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n < 11 ? "
+"3 : 4\n"
+
+#: kdiff3plugin.cpp:107
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#: kdiff3plugin.cpp:114
+#, kde-format
+msgid "Compare with %1"
+msgstr ""
+
+#: kdiff3plugin.cpp:120
+#, kde-format
+msgid "Merge with %1"
+msgstr ""
+
+#: kdiff3plugin.cpp:126
+#, kde-format
+msgid "Save '%1' for later"
+msgstr ""
+
+#: kdiff3plugin.cpp:132
+msgid "3-way merge with base"
+msgstr ""
+
+#: kdiff3plugin.cpp:139
+msgid "Compare with ..."
+msgstr ""
+
+#: kdiff3plugin.cpp:149
+msgid "Clear list"
+msgstr ""
+
+#: kdiff3plugin.cpp:157
+msgid "Compare"
+msgstr "Cuir i gComparáid"
+
+#: kdiff3plugin.cpp:163
+msgid "3 way comparison"
+msgstr ""
+
+#: kdiff3plugin.cpp:167
+msgid "About KDiff3 menu plugin ..."
+msgstr ""
+
+#: kdiff3plugin.cpp:269
+msgid ""
+"KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+
+#: kdiff3plugin.cpp:271
+msgid ""
+"Using the context menu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else, \"Save\" the first file for later, and "
+"it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With"
+"\" on the second file.\n"
+"For a 3-way merge first, \"Save\" the base file, then the branch to merge, "
+"and then \"3-way merge with base\" on the other branch which will be used as "
+"the destination.\n"
+"The same also applies to directory comparison and merge."
+msgstr ""
+
+#: kdiff3plugin.cpp:279
+msgid "About KDiff3 Menu Plugin"
+msgstr ""
diff --git a/po/gl/CMakeLists.txt b/po/gl/CMakeLists.txt
new file mode 100644 (file)
index 0000000..83ff925
--- /dev/null
@@ -0,0 +1,2 @@
+file(GLOB _po_files *.po)
+GETTEXT_PROCESS_PO_FILES(gl ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
diff --git a/po/gl/kdiff3.po b/po/gl/kdiff3.po
new file mode 100644 (file)
index 0000000..958c388
--- /dev/null
@@ -0,0 +1,3291 @@
+# translation of kdiff3.po to galician
+#
+# mvillarino <mvillarino@users.sourceforge.net>, 2006, 2007, 2008, 2009.
+# Marce Villarino <mvillarino@users.sourceforge.net>, 2009.
+# Marce Villarino <mvillarino@gmail.com>, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2010-07-03 17:12+0200\n"
+"Last-Translator: Marce Villarino <mvillarino@gmail.com>\n"
+"Language-Team: Galician <kde-i18n-doc@kde.org>\n"
+"Language: gl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.0\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Environment: kde\n"
+"X-Accelerator-Marker: &\n"
+"X-Text-Markup: kde4\n"
+
+#: kreplacements/kreplacements.h:105
+msgid "Continue"
+msgstr "Continuar"
+
+#: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158
+#: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512
+msgid "Cancel"
+msgstr "Cancelar"
+
+#: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631
+msgid "Quit"
+msgstr "Sair"
+
+#: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339
+msgid "Ok"
+msgstr "Aceitar"
+
+#: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715
+msgid "Help"
+msgstr "Axuda"
+
+#: kreplacements/kreplacements.cpp:185
+msgid "Defaults"
+msgstr "Valores predeterminados"
+
+#. i18n: file: kdiff3_shell.rc:4
+#. i18n: ectx: Menu (file)
+#: kreplacements/kreplacements.cpp:296 rc.cpp:14
+msgid "&File"
+msgstr "&Ficheiro"
+
+#: kreplacements/kreplacements.cpp:297
+msgid "&Edit"
+msgstr "&Editar"
+
+#. i18n: file: kdiff3_shell.rc:7
+#. i18n: ectx: Menu (directory)
+#: kreplacements/kreplacements.cpp:298 rc.cpp:17
+msgid "&Directory"
+msgstr "Ca&rtafol"
+
+#. i18n: file: kdiff3_shell.rc:50
+#. i18n: ectx: Menu (movement)
+#: kreplacements/kreplacements.cpp:301 rc.cpp:26
+msgid "&Movement"
+msgstr "&Movimento"
+
+#. i18n: file: kdiff3_shell.rc:61
+#. i18n: ectx: Menu (diff)
+#: kreplacements/kreplacements.cpp:302 rc.cpp:29
+msgid "D&iffview"
+msgstr "&Diferenzas"
+
+#. i18n: file: kdiff3_shell.rc:73
+#. i18n: ectx: Menu (merge)
+#: kreplacements/kreplacements.cpp:303 rc.cpp:32
+msgid "&Merge"
+msgstr "Fu&ndir"
+
+#. i18n: file: kdiff3_shell.rc:95
+#. i18n: ectx: Menu (window)
+#: kreplacements/kreplacements.cpp:304 rc.cpp:35
+msgid "&Window"
+msgstr "F&iestra"
+
+#: kreplacements/kreplacements.cpp:305
+msgid "&Settings"
+msgstr "&Configuración"
+
+#: kreplacements/kreplacements.cpp:306
+msgid "&Help"
+msgstr "&Axuda"
+
+#: kreplacements/kreplacements.cpp:353
+msgid "&About"
+msgstr "&Acerca de"
+
+#: kreplacements/kreplacements.cpp:369
+msgid "A&uthor"
+msgstr "A&utor"
+
+#: kreplacements/kreplacements.cpp:383
+msgid "&Thanks To"
+msgstr "A&gradecimentos"
+
+#. i18n: file: kdiff3_shell.rc:30
+#. i18n: ectx: Menu (dir_current_merge_menu)
+#: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497
+#: rc.cpp:20
+msgid "Current Item Merge Operation"
+msgstr "Operación de fusión do ítem actual"
+
+#. i18n: file: kdiff3_shell.rc:38
+#. i18n: ectx: Menu (dir_current_sync_menu)
+#: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498
+#: rc.cpp:23
+msgid "Current Item Sync Operation"
+msgstr "Operación de sincronizazón do ítem actual"
+
+#: kreplacements/kreplacements.cpp:597
+msgid "Open"
+msgstr "Abrir"
+
+#: kreplacements/kreplacements.cpp:606
+msgid "Save"
+msgstr "Gardar"
+
+#: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720
+msgid "Save As..."
+msgstr "Gardar como..."
+
+#: kreplacements/kreplacements.cpp:623
+msgid "Print..."
+msgstr "Imprimir..."
+
+#: kreplacements/kreplacements.cpp:639
+msgid "Cut"
+msgstr "Cortar"
+
+#: kreplacements/kreplacements.cpp:647
+msgid "Copy"
+msgstr "Copiar"
+
+#: kreplacements/kreplacements.cpp:655
+msgid "Paste"
+msgstr "Apegar"
+
+#: kreplacements/kreplacements.cpp:663
+msgid "Select All"
+msgstr "Escoller todo"
+
+#: kreplacements/kreplacements.cpp:671
+msgid "Show Toolbar"
+msgstr "Mostrar a barra de Ferramentas"
+
+#: kreplacements/kreplacements.cpp:679
+#, fuzzy
+#| msgid "Show &Statusbar"
+msgid "Show &Status Bar"
+msgstr "Mostrar a barra de &Estado"
+
+#: kreplacements/kreplacements.cpp:687
+#, kde-format
+msgid "&Configure %1..."
+msgstr "&Configurar %1..."
+
+#: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707
+msgid "About"
+msgstr "Acerca de"
+
+#: kreplacements/kreplacements.cpp:722
+msgid "Find"
+msgstr "Procurar"
+
+#: kreplacements/kreplacements.cpp:730
+msgid "Find Next"
+msgstr "Procurar o seguinte"
+
+#: kreplacements/kreplacements.cpp:750
+msgid "Select Font"
+msgstr "Escoller o tipo de letra"
+
+#: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676
+msgid ""
+"You selected a variable width font.\n"
+"\n"
+"Because this program doesn't handle variable width fonts\n"
+"correctly, you might experience problems while editing.\n"
+"\n"
+"Do you want to continue or do you want to select another font."
+msgstr ""
+"Escolleu un tamaño de letra variábel.\n"
+"\n"
+"Dado que este programa non manexa correctamente os tipos de letra\n"
+"de ancho variábel, pode ter problemas ao editar.\n"
+"\n"
+"Desexa continuar ou prefere escoller outro tipo de letra."
+
+#: kreplacements/kreplacements.cpp:792
+msgid "Incompatible font."
+msgstr "Fonte tipográfica incompatíbel."
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Continue at my own risk"
+msgstr "Continuar baixo a miña responsabilidade"
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Select another font"
+msgstr "Escoller outro tipo de letra"
+
+#: kreplacements/kreplacements.cpp:1134
+msgid "For more documentation, see the help-menu or the subdirectory doc."
+msgstr ""
+"Para obter máis documentación, consulte o menú axuda ou o cartafol de "
+"documentación."
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "KDiff3-Usage"
+msgstr "Utilización de KDiff3"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Ignore"
+msgstr "Ignorar"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Exit"
+msgstr "Sair"
+
+#: diff.cpp:251
+msgid "Writing clipboard data to temp file failed."
+msgstr ""
+"Fallou a escritura de dados do portarretallos para o ficheiro temporal."
+
+#: diff.cpp:255
+msgid "From Clipboard"
+msgstr "Do portarretallos"
+
+#: diff.cpp:471
+msgid "Expecting space after closing quotation mark."
+msgstr ""
+
+#: diff.cpp:474
+msgid "Not matching quotation marks."
+msgstr ""
+
+#: diff.cpp:496
+msgid "Unexpected quotation mark within argument."
+msgstr ""
+
+#: diff.cpp:503
+msgid "No program specified."
+msgstr ""
+
+#: diff.cpp:605
+#, kde-format
+msgid ""
+"Preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The preprocessing command will be disabled now."
+msgstr ""
+"Posibelmente fallase o preprocesamento. Verifique este comando:\n"
+"%1\n"
+"O comando de preprocesamento vai ser desactivado."
+
+#: diff.cpp:653
+#, kde-format
+msgid ""
+"The line-matching-preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The line-matching-preprocessing command will be disabled now."
+msgstr ""
+"Posibelmente fallase o preprocesamento con procura de liñas. Verifique  este "
+"comando:\n"
+"%1\n"
+"O comando de preprocesamento con procura de liñas vai ser desactivado."
+
+#: diff.cpp:1776 diff.cpp:1790
+#, fuzzy
+#| msgid ""
+#| "Data loss error:\n"
+#| "If it is reproducable please contact the author.\n"
+msgid ""
+"Data loss error:\n"
+"If it is reproducible please contact the author.\n"
+msgstr ""
+"Erro de perda de dados:\n"
+"Se fose reproducíbel, contacte co autor.\n"
+
+#: diff.cpp:1778 diff.cpp:1792
+msgid "Severe Internal Error"
+msgstr "Erro interno grave"
+
+#: directorymergewindow.cpp:136
+msgid "Mix of links and normal files."
+msgstr "Mistura de ligazóns e ficheiros normais."
+
+#: directorymergewindow.cpp:143
+msgid "Link: "
+msgstr "Ligazón: "
+
+#: directorymergewindow.cpp:151
+msgid "Size. "
+msgstr "Tamaño. "
+
+#: directorymergewindow.cpp:164 directorymergewindow.cpp:174
+msgid "Date & Size: "
+msgstr "Data e tamaño: "
+
+#: directorymergewindow.cpp:184 directorymergewindow.cpp:190
+#, kde-format
+msgid "Creating temp copy of %1 failed."
+msgstr "Fallou a criación da copia temporal de %1."
+
+#: directorymergewindow.cpp:201 directorymergewindow.cpp:209
+#, kde-format
+msgid "Opening %1 failed."
+msgstr "Fallou a abertura de %1."
+
+#: directorymergewindow.cpp:213
+msgid "Comparing file..."
+msgstr "A comparar o ficheiro..."
+
+#: directorymergewindow.cpp:223 directorymergewindow.cpp:229
+#, kde-format
+msgid "Error reading from %1"
+msgstr "Aconteceu un erro ao ler de %1"
+
+#: directorymergewindow.cpp:358
+msgid "Name"
+msgstr "Nome"
+
+#: directorymergewindow.cpp:358
+msgid "Operation"
+msgstr "Operación"
+
+#: directorymergewindow.cpp:358
+msgid "Status"
+msgstr "Estado"
+
+#: directorymergewindow.cpp:359
+msgid "Unsolved"
+msgstr "Non resolvido"
+
+#: directorymergewindow.cpp:359
+msgid "Solved"
+msgstr "Resolvido"
+
+#: directorymergewindow.cpp:359
+msgid "Nonwhite"
+msgstr "Non valeiro"
+
+#: directorymergewindow.cpp:359
+msgid "White"
+msgstr "Valeiro"
+
+#: directorymergewindow.cpp:388
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort "
+"the merge and rescan the directory?"
+msgstr ""
+"Está a facer unha fusión de cartafoles. Desexa realmente interromper a "
+"fusión e analisar o cartafol de novo?"
+
+#: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655
+#: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823
+msgid "Warning"
+msgstr "Aviso"
+
+#: directorymergewindow.cpp:390 directorymergewindow.cpp:2965
+msgid "Rescan"
+msgstr "Analisar de novo"
+
+#: directorymergewindow.cpp:391 pdiff.cpp:1081
+msgid "Continue Merging"
+msgstr "Continuar coa fusión"
+
+#: directorymergewindow.cpp:548
+msgid "Opening of directories failed:"
+msgstr "Fallou o aceso aos cartafoles:"
+
+#: directorymergewindow.cpp:551
+#, kde-format
+msgid "Dir A \"%1\" does not exist or is not a directory.\n"
+msgstr "O cartafol A «%1» non existe ou non é un cartafol.\n"
+
+#: directorymergewindow.cpp:554
+#, kde-format
+msgid "Dir B \"%1\" does not exist or is not a directory.\n"
+msgstr "O cartafol B «%1» non existe ou non é un cartafol.\n"
+
+#: directorymergewindow.cpp:557
+#, kde-format
+msgid "Dir C \"%1\" does not exist or is not a directory.\n"
+msgstr "O cartafol C «%1» non existe ou non é un cartafol.\n"
+
+#: directorymergewindow.cpp:559
+msgid "Directory Open Error"
+msgstr "Erro de aceso ao cartafol"
+
+#: directorymergewindow.cpp:567
+msgid ""
+"The destination directory must not be the same as A or B when three "
+"directories are merged.\n"
+"Check again before continuing."
+msgstr ""
+"O cartafol de destino non pode ser o mesmo que o A ou o B cando son "
+"fusionados tres cartafoles.\n"
+"Verifique de novo antes de continuar."
+
+#: directorymergewindow.cpp:569
+msgid "Parameter Warning"
+msgstr "Aviso de parámetro"
+
+#: directorymergewindow.cpp:574
+msgid "Scanning directories..."
+msgstr "A analisar os cartafoles..."
+
+#: directorymergewindow.cpp:607
+msgid "Reading Directory A"
+msgstr "Lendo o cartafol A"
+
+#: directorymergewindow.cpp:629
+msgid "Reading Directory B"
+msgstr "Lendo o cartafol B"
+
+#: directorymergewindow.cpp:651
+msgid "Reading Directory C"
+msgstr "Lendo o cartafol C"
+
+#: directorymergewindow.cpp:677
+msgid "Some subdirectories were not readable in"
+msgstr "Algúns dos subcartafoles non eran lexíbeis"
+
+#: directorymergewindow.cpp:682
+msgid "Check the permissions of the subdirectories."
+msgstr "Verifique os permisos dos subcartafoles."
+
+#: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737
+#: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233
+#: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328
+msgid "Ready."
+msgstr "Listo."
+
+#: directorymergewindow.cpp:735
+msgid "Directory Comparison Status"
+msgstr "Estado da comparación do cartafol"
+
+#: directorymergewindow.cpp:736
+msgid "Number of subdirectories:"
+msgstr "Número de subcartafoles:"
+
+#: directorymergewindow.cpp:737
+msgid "Number of equal files:"
+msgstr "Número de ficheiros iguais:"
+
+#: directorymergewindow.cpp:738
+msgid "Number of different files:"
+msgstr "Número de ficheiros diferentes:"
+
+#: directorymergewindow.cpp:741
+msgid "Number of manual merges:"
+msgstr "Número de fusións manuais:"
+
+#: directorymergewindow.cpp:912
+msgid "This affects all merge operations."
+msgstr "Isto afecta a todas as operacións de fusión."
+
+#: directorymergewindow.cpp:913
+msgid "Changing All Merge Operations"
+msgstr "A mudar todas as operacións de fusión"
+
+#: directorymergewindow.cpp:1312
+msgid "Processing "
+msgstr "A procesar"
+
+#: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742
+msgid "To do."
+msgstr "Por facer."
+
+#: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996
+msgid "Copy A to B"
+msgstr "Copiar A para B"
+
+#: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997
+msgid "Copy B to A"
+msgstr "Copiar B para A"
+
+#: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998
+msgid "Delete A"
+msgstr "Borrar A"
+
+#: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999
+msgid "Delete B"
+msgstr "Borrar B"
+
+#: directorymergewindow.cpp:1814
+msgid "Delete A & B"
+msgstr "Borrar A e B"
+
+#: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001
+msgid "Merge to A"
+msgstr "Xuntar en A"
+
+#: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002
+msgid "Merge to B"
+msgstr "Xuntar en B"
+
+#: directorymergewindow.cpp:1817
+msgid "Merge to A & B"
+msgstr "Xuntar en A e B"
+
+#: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993
+msgid "Delete (if exists)"
+msgstr "Borrar (se existe)"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+#: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869
+msgid "Merge"
+msgstr "Xuntar"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+msgid "Merge (manual)"
+msgstr "Xuntar (manual)"
+
+#: directorymergewindow.cpp:1824
+msgid "Error: Conflicting File Types"
+msgstr "Erro: Tipos de ficheiros en conflito"
+
+#: directorymergewindow.cpp:1825
+msgid "Error: Changed and Deleted"
+msgstr ""
+
+#: directorymergewindow.cpp:1826
+msgid "Error: Dates are equal but files are not."
+msgstr "Erro: As datas son iguais pero os ficheiros non."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906
+msgid "This operation is currently not possible."
+msgstr "Esta operación non é posíbel de momento."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174
+msgid "Operation Not Possible"
+msgstr "Operación non posíbel"
+
+#: directorymergewindow.cpp:1945
+msgid ""
+"This should never happen: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"If you know how to reproduce this, please contact the program author."
+msgstr ""
+"Isto nunca debera acontecer:\n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"Se sabe como reproducir isto, por favor contacte co autor do programa."
+
+#: directorymergewindow.cpp:1945
+msgid "Program Error"
+msgstr "Erro no programa"
+
+#: directorymergewindow.cpp:1956
+msgid "An error occurred while copying.\n"
+msgstr "Aconteceu un erro ao copiar.\n"
+
+#: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025
+#: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105
+#: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123
+#: directorymergewindow.cpp:2374
+msgid "Error"
+msgstr "Erro"
+
+#: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375
+msgid "Merge Error"
+msgstr "Erro na fusión"
+
+#: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380
+msgid "Error."
+msgstr "Erro."
+
+#: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272
+#: directorymergewindow.cpp:2312
+msgid "Done."
+msgstr "Terminado."
+
+#: directorymergewindow.cpp:1990
+msgid "Not saved."
+msgstr "Non gardado."
+
+#: directorymergewindow.cpp:2025
+msgid "Unknown merge operation. (This must never happen!)"
+msgstr "Operación de fusión descoñecida. (Isto non debera acontecer nunca!) "
+
+#: directorymergewindow.cpp:2057
+msgid "Unknown merge operation."
+msgstr "Operación de fusión descoñecida."
+
+#: directorymergewindow.cpp:2072
+msgid ""
+"The merge is about to begin.\n"
+"\n"
+"Choose \"Do it\" if you have read the instructions and know what you are "
+"doing.\n"
+"Choosing \"Simulate it\" will tell you what would happen.\n"
+"\n"
+"Be aware that this program still has beta status and there is NO WARRANTY "
+"whatsoever! Make backups of your vital data!"
+msgstr ""
+"A fusión está a piques de comezar.\n"
+"\n"
+"Escolla «Facela» se leu as instrucións e sabe o que está a facer.\n"
+"Se escolle «Simulala» saberá o que acontecería.\n"
+"\n"
+"Teña en conta que este programa aínda está en estado Beta e Non Hai Ningunha "
+"GARANTÍA! Faga copias de seguridade dos seus dados vitais!"
+
+#: directorymergewindow.cpp:2077
+msgid "Starting Merge"
+msgstr "A iniciar a fusión"
+
+#: directorymergewindow.cpp:2078
+msgid "Do It"
+msgstr "Face-la"
+
+#: directorymergewindow.cpp:2079
+msgid "Simulate It"
+msgstr "Simula-la"
+
+#: directorymergewindow.cpp:2105
+msgid ""
+"The highlighted item has a different type in the different directories. "
+"Select what to do."
+msgstr ""
+"O elemento realzado ten un tipo diferente nos cartafoles. Escolla que facer."
+
+#: directorymergewindow.cpp:2114
+msgid ""
+"The modification dates of the file are equal but the files are not. Select "
+"what to do."
+msgstr ""
+"As datas de modificación dos ficheiros son iguais pero estes non o son. "
+"Escolla que facer."
+
+#: directorymergewindow.cpp:2123
+#, fuzzy
+#| msgid ""
+#| "The highlighted item has a different type in the different directories. "
+#| "Select what to do."
+msgid ""
+"The highlighted item was changed in one directory and deleted in the other. "
+"Select what to do."
+msgstr ""
+"O elemento realzado ten un tipo diferente nos cartafoles. Escolla que facer."
+
+#: directorymergewindow.cpp:2174
+msgid ""
+"This operation is currently not possible because directory merge is "
+"currently running."
+msgstr ""
+"Esta operación non é posíbel de momento porque se está a fundir o cartafol."
+
+#: directorymergewindow.cpp:2234
+msgid ""
+"There was an error in the last step.\n"
+"Do you want to continue with the item that caused the error or do you want "
+"to skip this item?"
+msgstr ""
+"Aconteceu un erro no último paso.\n"
+"Desexa continuar co ítem que causou o erro ou desexa salta-lo?"
+
+#: directorymergewindow.cpp:2236
+msgid "Continue merge after an error"
+msgstr "Continuar a fusión após un erro"
+
+#: directorymergewindow.cpp:2237
+msgid "Continue With Last Item"
+msgstr "Continuar co último ítem"
+
+#: directorymergewindow.cpp:2238
+msgid "Skip Item"
+msgstr "Saltar o ítem"
+
+#: directorymergewindow.cpp:2272
+msgid "Skipped."
+msgstr "Ignorado."
+
+#: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493
+msgid "In progress..."
+msgstr "En progreso..."
+
+#: directorymergewindow.cpp:2327
+msgid "Merge operation complete."
+msgstr "A operación de fusión terminou."
+
+#: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330
+msgid "Merge Complete"
+msgstr "Fusión completada"
+
+#: directorymergewindow.cpp:2340
+msgid ""
+"Simulated merge complete: Check if you agree with the proposed operations."
+msgstr ""
+"A simulación da fusión terminou: Comprobe se concorda coas operacións "
+"propostas."
+
+#: directorymergewindow.cpp:2374
+msgid "An error occurred. Press OK to see detailed information.\n"
+msgstr "Aconteceu un erro. Prema en Aceitar para ver información detallada.\n"
+
+#: directorymergewindow.cpp:2406
+#, kde-format
+msgid "Error: While deleting %1: Creating backup failed."
+msgstr "Erro: Ao tentar borrar %1: a criación da copia de seguridade fallou."
+
+#: directorymergewindow.cpp:2413
+#, kde-format
+msgid "delete directory recursively( %1 )"
+msgstr "borrar recursivamente os cartafoles (%1)"
+
+#: directorymergewindow.cpp:2415
+#, kde-format
+msgid "delete( %1 )"
+msgstr "borrar (%1) "
+
+#: directorymergewindow.cpp:2430
+msgid "Error: delete dir operation failed while trying to read the directory."
+msgstr ""
+"Erro: a operación de borrado do cartafol fallou ao tentar ler o cartafol."
+
+#: directorymergewindow.cpp:2449
+#, kde-format
+msgid "Error: rmdir( %1 ) operation failed."
+msgstr "Erro: a operación rmdir (%1) fallou."
+
+#: directorymergewindow.cpp:2459
+msgid "Error: delete operation failed."
+msgstr "Erro: a operación de borrado fallou."
+
+#: directorymergewindow.cpp:2485
+#, kde-format
+msgid "manual merge( %1, %2, %3 -> %4)"
+msgstr "unión manual(%1, %2, %3 -> %4)"
+
+#: directorymergewindow.cpp:2488
+msgid ""
+"     Note: After a manual merge the user should continue by pressing F7."
+msgstr "     Nota: Após unha unión manual debe continuar premendo F7."
+
+#: directorymergewindow.cpp:2513
+#, kde-format
+msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed."
+msgstr "Erro: A copia (%1 -> %2) fallou. Non se borrou o destino existente."
+
+#: directorymergewindow.cpp:2522
+#, kde-format
+msgid "copyLink( %1 -> %2 )"
+msgstr "copyLink(%1 -> %2)"
+
+#: directorymergewindow.cpp:2533
+msgid "Error: copyLink failed: Remote links are not yet supported."
+msgstr "Erro: copyLink fallou: As ligazóns remotas aínda non están soportadas."
+
+#: directorymergewindow.cpp:2539
+msgid "Error: copyLink failed."
+msgstr "Erro: copyLink fallou."
+
+#: directorymergewindow.cpp:2564
+#, kde-format
+msgid "copy( %1 -> %2 )"
+msgstr "copia(%1 -> %2)"
+
+#: directorymergewindow.cpp:2590
+#, kde-format
+msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination."
+msgstr ""
+"Erro ao mudar o nome (%1 -> %2): Non foi posíbel borrar o destino existente."
+
+#: directorymergewindow.cpp:2596
+#, kde-format
+msgid "rename( %1 -> %2 )"
+msgstr "mudar o nome (%1 -> %2)"
+
+#: directorymergewindow.cpp:2605
+msgid "Error: Rename failed."
+msgstr "Erro: fallou a mudanza do nome."
+
+#: directorymergewindow.cpp:2623
+#, kde-format
+msgid "Error during makeDir of %1. Cannot delete existing file."
+msgstr ""
+"Erro durante makeDir de %1. Non foi posíbel borrar o ficheiro existente."
+
+#: directorymergewindow.cpp:2639
+#, kde-format
+msgid "makeDir( %1 )"
+msgstr "makeDir(%1)"
+
+#: directorymergewindow.cpp:2649
+msgid "Error while creating directory."
+msgstr "Erro ao criar o cartafol."
+
+#: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784
+msgid "Dest"
+msgstr "Dest"
+
+#: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709
+msgid "Dir"
+msgstr "Dir"
+
+#: directorymergewindow.cpp:2678
+msgid "Type"
+msgstr "Tipo"
+
+#: directorymergewindow.cpp:2678
+msgid "Size"
+msgstr "Tamaño"
+
+#: directorymergewindow.cpp:2679
+msgid "Attr"
+msgstr "Atrib"
+
+#: directorymergewindow.cpp:2679
+msgid "Last Modification"
+msgstr "Última modificación"
+
+#: directorymergewindow.cpp:2679
+msgid "Link-Destination"
+msgstr "Destino da ligazón"
+
+#: directorymergewindow.cpp:2709 difftextwindow.cpp:401
+msgid "File"
+msgstr "Ficheiro"
+
+#: directorymergewindow.cpp:2726
+msgid "not available"
+msgstr "non dispoñíbel"
+
+#: directorymergewindow.cpp:2746
+msgid "A (Dest): "
+msgstr "A (Dest): "
+
+#: directorymergewindow.cpp:2749
+msgid "A (Base): "
+msgstr "A (Base): "
+
+#: directorymergewindow.cpp:2755
+msgid "B (Dest): "
+msgstr "B (Dest): "
+
+#: directorymergewindow.cpp:2763
+msgid "C (Dest): "
+msgstr "C (Dest): "
+
+#: directorymergewindow.cpp:2769
+msgid "Dest: "
+msgstr "Dest: "
+
+#: directorymergewindow.cpp:2836
+msgid "Save Directory Merge State As..."
+msgstr "Gardar o estado da fusión de cartafoles como..."
+
+#: directorymergewindow.cpp:2959
+msgid "Start/Continue Directory Merge"
+msgstr "Iniciar/Continuar a fusión do cartafol"
+
+#: directorymergewindow.cpp:2960
+msgid "Run Operation for Current Item"
+msgstr "Executar a operación no ítem actual"
+
+#: directorymergewindow.cpp:2961
+msgid "Compare Selected File"
+msgstr "Comparar o ficheiro escollido"
+
+#: directorymergewindow.cpp:2962
+msgid "Merge Current File"
+msgstr "Fundir o ficheiro actual"
+
+#: directorymergewindow.cpp:2962
+msgid ""
+"Merge\n"
+"File"
+msgstr ""
+"Xuntar\n"
+"o ficheiro"
+
+#: directorymergewindow.cpp:2963
+msgid "Fold All Subdirs"
+msgstr "Recoller todos os subcartafoles"
+
+#: directorymergewindow.cpp:2964
+msgid "Unfold All Subdirs"
+msgstr "Expandir todos os subcartafoles"
+
+#: directorymergewindow.cpp:2968
+msgid "Choose A for All Items"
+msgstr "Escoller todos os itens de A"
+
+#: directorymergewindow.cpp:2969
+msgid "Choose B for All Items"
+msgstr "Escoller todos os itens de B"
+
+#: directorymergewindow.cpp:2970
+msgid "Choose C for All Items"
+msgstr "Escoller todos os itens de C"
+
+#: directorymergewindow.cpp:2971
+msgid "Auto-Choose Operation for All Items"
+msgstr "Escoller automaticamente a operación para todos os itens"
+
+#: directorymergewindow.cpp:2972
+msgid "No Operation for All Items"
+msgstr "Ningunha operación para todos os itens"
+
+#: directorymergewindow.cpp:2977
+msgid "Show Identical Files"
+msgstr "Mostrar os ficheiros idénticos"
+
+#: directorymergewindow.cpp:2977
+msgid ""
+"Identical\n"
+"Files"
+msgstr ""
+"Ficheiros\n"
+"idénticos"
+
+#: directorymergewindow.cpp:2978
+msgid "Show Different Files"
+msgstr "Mostrar os ficheiros diferentes"
+
+#: directorymergewindow.cpp:2979
+msgid "Show Files only in A"
+msgstr "Mostrar os ficheiros só en A"
+
+#: directorymergewindow.cpp:2979
+msgid ""
+"Files\n"
+"only in A"
+msgstr ""
+"Ficheiros\n"
+"só en A"
+
+#: directorymergewindow.cpp:2980
+msgid "Show Files only in B"
+msgstr "Mostrar os ficheiros só en B"
+
+#: directorymergewindow.cpp:2980
+msgid ""
+"Files\n"
+"only in B"
+msgstr ""
+"Ficheiros\n"
+"só en B"
+
+#: directorymergewindow.cpp:2981
+msgid "Show Files only in C"
+msgstr "Mostrar os ficheiros só en C"
+
+#: directorymergewindow.cpp:2981
+msgid ""
+"Files\n"
+"only in C"
+msgstr "Ficheiros só en C"
+
+#: directorymergewindow.cpp:2985
+msgid "Compare Explicitly Selected Files"
+msgstr "Comparar os ficheiros escollidos explicitamente"
+
+#: directorymergewindow.cpp:2986
+msgid "Merge Explicitly Selected Files"
+msgstr "Fundir os ficheiros escollidos explicitamente"
+
+#: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995
+msgid "Do Nothing"
+msgstr "Non facer ren"
+
+#: directorymergewindow.cpp:2989
+msgid "A"
+msgstr "A"
+
+#: directorymergewindow.cpp:2990
+msgid "B"
+msgstr "B"
+
+#: directorymergewindow.cpp:2991
+msgid "C"
+msgstr "C"
+
+#: directorymergewindow.cpp:3000
+msgid "Delete A && B"
+msgstr "Borrar A e B"
+
+#: directorymergewindow.cpp:3003
+msgid "Merge to A && B"
+msgstr "Xuntar en A e B"
+
+#: main.cpp:74 main.cpp:76
+msgid "Ignored. (User defined.)"
+msgstr ""
+
+#: main.cpp:162
+msgid "kdiff3"
+msgstr "kdiff3"
+
+#: main.cpp:164
+msgid "Tool for Comparison and Merge of Files and Directories"
+msgstr "Ferramenta para comparar e fundir ficheiros e cartafoles"
+
+#: main.cpp:165
+#, fuzzy
+#| msgid "(c) 2002-2008 Joachim Eibl"
+msgid "(c) 2002-2011 Joachim Eibl"
+msgstr "(c) 2002-2008 Joachim Eibl"
+
+#: main.cpp:172 kdiff3_part.cpp:303
+msgid "Joachim Eibl"
+msgstr "Joachim Eibl"
+
+#: main.cpp:173
+msgid "Eike Sauer"
+msgstr "Eike Sauer"
+
+#: main.cpp:173
+msgid "Bugfixes, Debian package maintainer"
+msgstr "Correcións, mantenedor do paquete de Debian"
+
+#: main.cpp:174
+msgid "Sebastien Fricker"
+msgstr "Sebastien Fricker"
+
+#: main.cpp:174
+msgid "Windows installer"
+msgstr "Instalador para Windows"
+
+#: main.cpp:175
+msgid "Stephan Binner"
+msgstr "Stephan Binner"
+
+#: main.cpp:175
+msgid "i18n-help"
+msgstr "axuda coa i18n"
+
+#: main.cpp:176
+msgid "Stefan Partheymueller"
+msgstr "Stefan Partheymueller"
+
+#: main.cpp:176
+msgid "Clipboard-patch"
+msgstr "Parte para o portarretallos"
+
+#: main.cpp:177
+msgid "David Faure"
+msgstr "David Faure"
+
+#: main.cpp:177
+msgid "KIO-Help"
+msgstr "Axuda cos KIO"
+
+#: main.cpp:178
+msgid "Bernd Gehrmann"
+msgstr "Bernd Gehrmann"
+
+#: main.cpp:178
+msgid "Class CvsIgnoreList from Cervisia"
+msgstr "Clase CvsIgnoreList de Cervisia"
+
+#: main.cpp:179
+msgid "Andre Woebbeking"
+msgstr "Andre Woebbeking"
+
+#: main.cpp:179
+msgid "Class StringMatcher"
+msgstr "Clase StringMatcher"
+
+#: main.cpp:180
+msgid "Michael Denio"
+msgstr "Michael Denio"
+
+#: main.cpp:180
+msgid "Directory Equality-Coloring patch"
+msgstr "Parche para colorir e igualdades en cartafoles"
+
+#: main.cpp:181
+msgid "Manfred Koehler"
+msgstr "Manfred Koehler"
+
+#: main.cpp:181
+msgid "Fix for slow startup on Windows"
+msgstr "Correción do arranque lento en Windows"
+
+#: main.cpp:182
+msgid "Sergey Zorin"
+msgstr "Sergey Zorin"
+
+#: main.cpp:182
+msgid "Diff Ext for Windows"
+msgstr "Diff Ext para Windows"
+
+#: main.cpp:183
+msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+
+#: main.cpp:183
+msgid "GNU-Diffutils"
+msgstr "As utilidades Diff de GNU"
+
+#: main.cpp:184
+msgid "Tino Boellsterling, Timothy Mee"
+msgstr "Tino Boellsterling, Timothy Mee"
+
+#: main.cpp:184
+msgid "Intensive test, use and feedback"
+msgstr "Probas intensivas, utilización e comentarios"
+
+#: main.cpp:185
+msgid "Michael Schmidt"
+msgstr "Michael Schmidt"
+
+#: main.cpp:185
+msgid "Mac support"
+msgstr "Soporte para Mac"
+
+#: main.cpp:186
+msgid "Valentin Rusu"
+msgstr "Valentin Rusu"
+
+#: main.cpp:186 main.cpp:187
+msgid "KDE4 porting"
+msgstr "Porte a KDE4"
+
+#: main.cpp:187
+msgid "Albert Astals Cid"
+msgstr "Albert Astals Cid"
+
+#: main.cpp:188
+msgid "Silvan Scherrer"
+msgstr ""
+
+#: main.cpp:188
+msgid "OS2 port"
+msgstr ""
+
+#: main.cpp:190
+msgid "+ Many thanks to those who reported bugs and contributed ideas!"
+msgstr "+ Grazas a todos os que comunicaron erros e contribuiron ideas!"
+
+#: main.cpp:196
+msgid "Merge the input."
+msgstr "Fundir a entrada."
+
+#: main.cpp:197
+msgid "Explicit base file. For compatibility with certain tools."
+msgstr ""
+"Ficheiro de base explícito. Para compatibilidade con certas ferramentas."
+
+#: main.cpp:198
+msgid "Output file. Implies -m. E.g.: -o newfile.txt"
+msgstr "Ficheiro de saída. Implica -m. P.ex.: -o novoficheiro.txt"
+
+#: main.cpp:199
+msgid "Output file, again. (For compatibility with certain tools.)"
+msgstr ""
+"Ficheiro de saída, de novo. (Para compatibilidade con certas ferramentas)"
+
+#: main.cpp:200
+msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)"
+msgstr ""
+"Sen interface se todos os conflitos son resolvidos automaticamente. (Precisa "
+"de -o ficheiro) "
+
+#: main.cpp:201
+msgid "Don't solve conflicts automatically. (For compatibility...)"
+msgstr "Non resolver os conflitos automaticamente. (Para compatibilidade...)"
+
+#: main.cpp:202
+msgid "Visible name replacement for input file 1 (base)."
+msgstr "Substitución do nome visíbel para o ficheiro de entrada 1 (base)."
+
+#: main.cpp:203
+msgid "Visible name replacement for input file 2."
+msgstr "Substitución do nome visíbel para o ficheiro de entrada 2."
+
+#: main.cpp:204
+msgid "Visible name replacement for input file 3."
+msgstr "Substitución do nome visíbel para o ficheiro de entrada 3."
+
+#: main.cpp:205
+msgid "Alternative visible name replacement. Supply this once for every input."
+msgstr ""
+"Substitución alternativa do nome visíbel. Indique isto para cada entrada."
+
+#: main.cpp:206
+msgid ""
+"Override a config setting. Use once for every setting. E.g.: --cs "
+"\"AutoAdvance=1\""
+msgstr ""
+"Substitúe unha opción de configuración. Use unha vez para cada opción. P. "
+"ex.: --cs \" AutoAdvance=1\""
+
+#: main.cpp:207
+msgid "Show list of config settings and current values."
+msgstr "Mostra unha lista das opcións de configuración e os valores actuais."
+
+#: main.cpp:208
+msgid "Use a different config file."
+msgstr "Usar un ficheiro de configuración diferente."
+
+#: main.cpp:211
+msgid "file1 to open (base, if not specified via --base)"
+msgstr "o ficheiro 1 a abrir (base, se non foi indicado mediante --base)"
+
+#: main.cpp:212
+msgid "file2 to open"
+msgstr "o ficheiro 2 a abrir"
+
+#: main.cpp:213
+msgid "file3 to open"
+msgstr "o ficheiro 3 a abrir"
+
+#: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976
+#: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002
+#: mergeresultwindow.cpp:1014
+#, kde-format
+msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)"
+msgstr ""
+"Número de conflitos por resolver: %1 (dos cales %2 son espazos en branco)"
+
+#: mergeresultwindow.cpp:303
+msgid ""
+"The output has been modified.\n"
+"If you continue your changes will be lost."
+msgstr ""
+"O resultado foi modificado.\n"
+"Se continúa as súas modificacións serán esquecidas."
+
+#: mergeresultwindow.cpp:834 pdiff.cpp:532
+msgid "All input files are binary equal."
+msgstr "Todos os ficheiros de entrada son iguais a nível binario."
+
+#: mergeresultwindow.cpp:836
+msgid "All input files contain the same text."
+msgstr "Todos os ficheiros de entrada conteñen o mesmo texto."
+
+#: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840
+#: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540
+#, kde-format
+msgid "Files %1 and %2 are binary equal.\n"
+msgstr "Os ficheiros %1 e %2 son iguais a nível binario.\n"
+
+#: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841
+#: mergeresultwindow.cpp:843
+#, kde-format
+msgid "Files %1 and %2 have equal text.\n"
+msgstr "Os ficheiros %1 e %2 teñen texto igual.\n"
+
+#: mergeresultwindow.cpp:849
+msgid "Total number of conflicts: "
+msgstr "Número total de conflitos: "
+
+#: mergeresultwindow.cpp:850
+msgid ""
+"\n"
+"Nr of automatically solved conflicts: "
+msgstr ""
+"\n"
+"Número conflitos resolvidos automaticamente: "
+
+#: mergeresultwindow.cpp:851
+msgid ""
+"\n"
+"Nr of unsolved conflicts: "
+msgstr ""
+"\n"
+"Número de conflitos por resolver: "
+
+#: mergeresultwindow.cpp:853
+msgid "Conflicts"
+msgstr "Conflitos"
+
+#: mergeresultwindow.cpp:1728
+msgid "<No src line>"
+msgstr "<Sen liña de orixe>"
+
+#: mergeresultwindow.cpp:1736
+msgid "<Merge Conflict (Whitespace only)>"
+msgstr "<Conflito na fusión (Só espazos en branco)>"
+
+#: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517
+msgid "<Merge Conflict>"
+msgstr "<Conflito na fusión>"
+
+#: mergeresultwindow.cpp:2725
+msgid ""
+"Not all conflicts are solved yet.\n"
+"File not saved.\n"
+msgstr ""
+"Aínda non se resolveron todos os conflitos.\n"
+"O ficheiro non foi gardado.\n"
+
+#: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736
+msgid "Conflicts Left"
+msgstr "Aínda hai conflitos"
+
+#: mergeresultwindow.cpp:2734
+msgid ""
+"There is a line end style conflict. Please choose the line end style "
+"manually.\n"
+"File not saved.\n"
+msgstr ""
+"Hai un conflito no estilo do fin de liña. Escóllao manualmente.\n"
+"Non se gardou o ficheiro.\n"
+
+#: mergeresultwindow.cpp:2748
+msgid ""
+"\n"
+"\n"
+"Creating backup failed. File not saved."
+msgstr ""
+"\n"
+"\n"
+"A criación da salvagarda fallou. O ficheiro non foi gardado."
+
+#: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792
+msgid "File Save Error"
+msgstr "Erro ao gardar o ficheiro"
+
+#: mergeresultwindow.cpp:2792
+msgid "Error while writing."
+msgstr "Erro ao gardar."
+
+#: mergeresultwindow.cpp:3122
+msgid "Output"
+msgstr "Saída"
+
+#: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314
+msgid "[Modified]"
+msgstr "[Modificado]"
+
+#: mergeresultwindow.cpp:3141
+msgid "Encoding for saving"
+msgstr "Codificación para gardar"
+
+#: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737
+#: optiondialog.cpp:762
+msgid "Line end style:"
+msgstr "Estilo do fin de liña:"
+
+#: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767
+msgid "Unix"
+msgstr "Unix"
+
+#: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737
+msgid "DOS"
+msgstr "DOS"
+
+#: mergeresultwindow.cpp:3229
+msgid "Conflict"
+msgstr "Conflito"
+
+#: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263
+#: mergeresultwindow.cpp:3265
+msgid "Codec from"
+msgstr "Códec de"
+
+#: kdiff3_part.cpp:157 kdiff3_part.cpp:234
+msgid "Couldn't find files for comparison."
+msgstr "Non foi posíbel achar os ficheiros a comparar."
+
+#: kdiff3_part.cpp:302
+msgid "KDiff3Part"
+msgstr "KDiff3Part"
+
+#: fileaccess.cpp:612
+msgid ""
+"While trying to make a backup, deleting an older backup failed. \n"
+"Filename: "
+msgstr ""
+"Ao tentar facer unha copia de seguridade, fallou o borrado dunha copia "
+"anterior.\n"
+"Ficheiro: "
+
+#: fileaccess.cpp:619
+msgid ""
+"While trying to make a backup, renaming failed. \n"
+"Filenames: "
+msgstr ""
+"Ao tentar facer unha copia de seguridade, fallou a mudanza do nome.\n"
+"Ficheiros: "
+
+#: fileaccess.cpp:643
+#, kde-format
+msgid "Getting file status: %1"
+msgstr "A obter o estado do ficheiro: %1"
+
+#: fileaccess.cpp:686
+#, kde-format
+msgid "Reading file: %1"
+msgstr "A ler o ficheiro: %1"
+
+#: fileaccess.cpp:723
+#, kde-format
+msgid "Writing file: %1"
+msgstr "A escreber o ficheiro: %1"
+
+#: fileaccess.cpp:751
+msgid "Out of memory"
+msgstr "Esgotou a memoria"
+
+#: fileaccess.cpp:786
+#, kde-format
+msgid "Making directory: %1"
+msgstr "A criar o cartafol: %1"
+
+#: fileaccess.cpp:806
+#, kde-format
+msgid "Removing directory: %1"
+msgstr "A borrar o cartafol: %1"
+
+#: fileaccess.cpp:821
+#, kde-format
+msgid "Removing file: %1"
+msgstr "A borrar o ficheiro. %1"
+
+#: fileaccess.cpp:837
+#, kde-format
+msgid "Creating symbolic link: %1 -> %2"
+msgstr "A criar a ligazón simbólica: %1 -> %2"
+
+#: fileaccess.cpp:864
+#, kde-format
+msgid "Renaming file: %1 -> %2"
+msgstr "A mudar o nome do ficheiro: %1 -> %2"
+
+#: fileaccess.cpp:897
+#, kde-format
+msgid "Copying file: %1 -> %2"
+msgstr "A copiar o ficheiro: %1 -> %2"
+
+#: fileaccess.cpp:911
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for reading failed. Filename: "
+"%1"
+msgstr ""
+"Aconteceu un erro durante o copiado do ficheiro: O aceso ao ficheiro para "
+"leitura fallou. Ficheiro: %1"
+
+#: fileaccess.cpp:917
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for writing failed. Filename: "
+"%1"
+msgstr ""
+"Aconteceu un erro durante a copia do ficheiro: O aceso ao ficheiro para "
+"escrita fallou. Ficheiro: %1"
+
+#: fileaccess.cpp:932
+#, kde-format
+msgid "Error during file copy operation: Reading failed. Filename: %1"
+msgstr ""
+"Aconteceu un erro durante a copia do ficheiro: A leitura fallou. Ficheiro: %1"
+
+#: fileaccess.cpp:941
+#, kde-format
+msgid "Error during file copy operation: Writing failed. Filename: %1"
+msgstr ""
+"Aconteceu un erro durante a copia do ficheiro: A escrita fallou. Ficheiro: %1"
+
+#: fileaccess.cpp:1231
+msgid "Reading directory: "
+msgstr "A ler o cartafol: "
+
+#: fileaccess.cpp:1355
+#, kde-format
+msgid "Listing directory: %1"
+msgstr "A listar o cartafol: %1"
+
+#: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396
+msgid "&Cancel"
+msgstr "&Cancelar"
+
+#: difftextwindow.cpp:403
+msgid "Line"
+msgstr "Liña"
+
+#: difftextwindow.cpp:405
+msgid "Line not available"
+msgstr "Liña non dispoñíbel"
+
+#: difftextwindow.cpp:1703 difftextwindow.cpp:1736
+#, fuzzy
+#| msgid "File Encoding for A:"
+msgid "Encoding:"
+msgstr "Codificación do ficheiro A:"
+
+#: difftextwindow.cpp:1759 kdiff3.cpp:831
+msgid "Top line"
+msgstr "Liña superior"
+
+#: difftextwindow.cpp:1769
+msgid "End"
+msgstr "Fin"
+
+#: kdiff3.cpp:169
+msgid "Current Configuration:"
+msgstr "Configuración actual:"
+
+#: kdiff3.cpp:174
+msgid "Config Option Error:"
+msgstr "Erro da opción de configuración:"
+
+#: kdiff3.cpp:219
+msgid "Option --auto used, but no output file specified."
+msgstr ""
+"Indicouse a opción --auto, pero non se especificou ningún ficheiro de  saída."
+
+#: kdiff3.cpp:369
+msgid "Option --auto ignored for directory comparison."
+msgstr "A opción --auto é ignorada para a comparación de cartafoles."
+
+#: kdiff3.cpp:405
+msgid "Saving failed."
+msgstr "O gardado fallou."
+
+#: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214
+msgid "Opening of these files failed:"
+msgstr "Fallou o aceso a estes ficheiros:"
+
+#: kdiff3.cpp:449
+msgid "File Open Error"
+msgstr "Erro de aceso ao ficheiro"
+
+#: kdiff3.cpp:477
+msgid "Opens documents for comparison..."
+msgstr "Abre os documentos para comparalos..."
+
+#: kdiff3.cpp:479
+msgid "Reload"
+msgstr "Cargar de novo"
+
+#: kdiff3.cpp:482
+msgid "Saves the merge result. All conflicts must be solved!"
+msgstr ""
+"Garda o resultado da fusión. Todos os conflitos deben estar resolvidos!"
+
+#: kdiff3.cpp:484
+msgid "Saves the current document as..."
+msgstr "Garda o documento actual como..."
+
+#: kdiff3.cpp:487
+msgid "Print the differences"
+msgstr "Imprimir as diferenzas"
+
+#: kdiff3.cpp:490
+msgid "Quits the application"
+msgstr "Sai da aplicación"
+
+#: kdiff3.cpp:492
+msgid "Cuts the selected section and puts it to the clipboard"
+msgstr "Corta a sección escollida e colócaa no portarretallos"
+
+#: kdiff3.cpp:494
+msgid "Copies the selected section to the clipboard"
+msgstr "Copia a sección escollida no portarretallos"
+
+#: kdiff3.cpp:496
+#, fuzzy
+#| msgid "Pastes the clipboard contents to actual position"
+msgid "Pastes the clipboard contents to current position"
+msgstr "Apega o contido do portarretallos na posición actual"
+
+#: kdiff3.cpp:498
+msgid "Select everything in current window"
+msgstr "Escolle todo na fiestra actual"
+
+#: kdiff3.cpp:500
+msgid "Search for a string"
+msgstr "Procura un texto"
+
+#: kdiff3.cpp:502
+msgid "Search again for the string"
+msgstr "Procura de novo o texto"
+
+#: kdiff3.cpp:507
+msgid "Enables/disables the statusbar"
+msgstr "Habilita/deshabilita a barra de estado"
+
+#: kdiff3.cpp:511
+msgid "Configure KDiff3..."
+msgstr "Configurar KDiff3..."
+
+#: kdiff3.cpp:532
+msgid "Go to Current Delta"
+msgstr "Ir para o delta actual"
+
+#: kdiff3.cpp:532
+msgid ""
+"Current\n"
+"Delta"
+msgstr ""
+"Delta\n"
+"actual"
+
+#: kdiff3.cpp:534
+msgid "Go to First Delta"
+msgstr "Ir para o primeiro delta"
+
+#: kdiff3.cpp:534
+msgid ""
+"First\n"
+"Delta"
+msgstr ""
+"Primeiro\n"
+"delta"
+
+#: kdiff3.cpp:536
+msgid "Go to Last Delta"
+msgstr "Ir para o último delta"
+
+#: kdiff3.cpp:536
+msgid ""
+"Last\n"
+"Delta"
+msgstr ""
+"Último\n"
+"delta"
+
+#: kdiff3.cpp:538
+msgid "(Skips white space differences when \"Show White Space\" is disabled.)"
+msgstr ""
+"(Ignora as diferenzas de espazos se «Mostrar os espazos en branco» está "
+"deshabilitado.)"
+
+#: kdiff3.cpp:539
+msgid ""
+"(Does not skip white space differences even when \"Show White Space\" is "
+"disabled.)"
+msgstr ""
+"(Non ignora as diferenzas de espazos mesmo se «Mostrar os espazos en branco» "
+"está deshabilitado.)"
+
+#: kdiff3.cpp:540
+msgid "Go to Previous Delta"
+msgstr "Ir para o delta anterior"
+
+#: kdiff3.cpp:540
+msgid ""
+"Prev\n"
+"Delta"
+msgstr "Delta anterior"
+
+#: kdiff3.cpp:542
+msgid "Go to Next Delta"
+msgstr "Ir para o seguinte delta"
+
+#: kdiff3.cpp:542
+msgid ""
+"Next\n"
+"Delta"
+msgstr "Seguinte delta"
+
+#: kdiff3.cpp:544
+msgid "Go to Previous Conflict"
+msgstr "Ir para o conflito anterior"
+
+#: kdiff3.cpp:544
+msgid ""
+"Prev\n"
+"Conflict"
+msgstr ""
+"Conflito\n"
+"anterior"
+
+#: kdiff3.cpp:546
+msgid "Go to Next Conflict"
+msgstr "Ir para o seguinte conflito"
+
+#: kdiff3.cpp:546
+msgid ""
+"Next\n"
+"Conflict"
+msgstr "Seguinte conflito"
+
+#: kdiff3.cpp:548
+msgid "Go to Previous Unsolved Conflict"
+msgstr "Ir para o anterior conflito por resolver"
+
+#: kdiff3.cpp:548
+msgid ""
+"Prev\n"
+"Unsolved"
+msgstr ""
+"Non resolvido\n"
+"anterior"
+
+#: kdiff3.cpp:550
+msgid "Go to Next Unsolved Conflict"
+msgstr "Ir para o seguinte conflito por resolver"
+
+#: kdiff3.cpp:550
+msgid ""
+"Next\n"
+"Unsolved"
+msgstr ""
+"Seguinte\n"
+"non resolvido"
+
+#: kdiff3.cpp:552
+msgid "Select Line(s) From A"
+msgstr "Escoller as liñas de A"
+
+#: kdiff3.cpp:552
+msgid ""
+"Choose\n"
+"A"
+msgstr ""
+"Escoller\n"
+"A"
+
+#: kdiff3.cpp:553
+msgid "Select Line(s) From B"
+msgstr "Escoller as liñas de B"
+
+#: kdiff3.cpp:553
+msgid ""
+"Choose\n"
+"B"
+msgstr ""
+"Escoller\n"
+"B"
+
+#: kdiff3.cpp:554
+msgid "Select Line(s) From C"
+msgstr "Escoller as liñas de C"
+
+#: kdiff3.cpp:554
+msgid ""
+"Choose\n"
+"C"
+msgstr ""
+"Escoller\n"
+"C"
+
+#: kdiff3.cpp:555
+msgid "Automatically Go to Next Unsolved Conflict After Source Selection"
+msgstr ""
+"Ir automaticamente para o seguinte conflito por resolver tras escoller a "
+"fonte"
+
+#: kdiff3.cpp:555
+msgid ""
+"Auto\n"
+"Next"
+msgstr ""
+"Ir automaticamente\n"
+"ao seguinte"
+
+#: kdiff3.cpp:557
+msgid "Show Space && Tabulator Characters for Differences"
+msgstr "Mostrar as diferenzas de espazos e tabulacións"
+
+#: kdiff3.cpp:557
+msgid ""
+"White\n"
+"Characters"
+msgstr ""
+"Caracteres\n"
+"en branco"
+
+#: kdiff3.cpp:558
+msgid "Show White Space"
+msgstr "Mostrar os espazos en branco"
+
+#: kdiff3.cpp:558
+msgid ""
+"White\n"
+"Deltas"
+msgstr ""
+"Deltas\n"
+"en branco"
+
+#: kdiff3.cpp:560
+msgid "Show Line Numbers"
+msgstr "Mostrar os números de liña"
+
+#: kdiff3.cpp:560
+msgid ""
+"Line\n"
+"Numbers"
+msgstr ""
+"Números\n"
+"de liña"
+
+#: kdiff3.cpp:561
+msgid "Choose A Everywhere"
+msgstr "Escoller A en todas partes"
+
+#: kdiff3.cpp:562
+msgid "Choose B Everywhere"
+msgstr "Escoller B en todas partes"
+
+#: kdiff3.cpp:563
+msgid "Choose C Everywhere"
+msgstr "Escoller C en todas partes"
+
+#: kdiff3.cpp:564
+msgid "Choose A for All Unsolved Conflicts"
+msgstr "Escoller A en todos os conflitos por resolver"
+
+#: kdiff3.cpp:565
+msgid "Choose B for All Unsolved Conflicts"
+msgstr "Escoller B en todos os conflitos por resolver"
+
+#: kdiff3.cpp:566
+msgid "Choose C for All Unsolved Conflicts"
+msgstr "Escoller C en todos os conflitos por resolver"
+
+#: kdiff3.cpp:567
+msgid "Choose A for All Unsolved Whitespace Conflicts"
+msgstr "Escoller A en todos os conflitos de espazos por resolver"
+
+#: kdiff3.cpp:568
+msgid "Choose B for All Unsolved Whitespace Conflicts"
+msgstr "Escoller B en todos os conflitos de espazos por resolver"
+
+#: kdiff3.cpp:569
+msgid "Choose C for All Unsolved Whitespace Conflicts"
+msgstr "Escoller C en todos os conflitos de espazos resolver"
+
+#: kdiff3.cpp:570
+msgid "Automatically Solve Simple Conflicts"
+msgstr "Resolver automaticamente os conflitos simples"
+
+#: kdiff3.cpp:571
+msgid "Set Deltas to Conflicts"
+msgstr "Pasar os deltas para conflitos"
+
+#: kdiff3.cpp:572
+msgid "Run Regular Expression Auto Merge"
+msgstr "Executar a fusión automática de expresións regulares"
+
+#: kdiff3.cpp:573
+msgid "Automatically Solve History Conflicts"
+msgstr "Resolver automaticamente os conflitos do histórico"
+
+#: kdiff3.cpp:574
+msgid "Split Diff At Selection"
+msgstr "Dividir a diferenza na selección"
+
+#: kdiff3.cpp:575
+msgid "Join Selected Diffs"
+msgstr "Xuntar as diferenzas escollidas"
+
+#: kdiff3.cpp:577
+msgid "Show Window A"
+msgstr "Mostrar a fiestra A"
+
+#: kdiff3.cpp:578
+msgid "Show Window B"
+msgstr "Mostrar a fiestra B"
+
+#: kdiff3.cpp:579
+msgid "Show Window C"
+msgstr "Mostrar a fiestra C"
+
+#: kdiff3.cpp:580 kdiff3.cpp:591
+msgid "Focus Next Window"
+msgstr "Focar a próxima fiestra"
+
+#: kdiff3.cpp:582
+msgid "Normal Overview"
+msgstr "Resumo normal"
+
+#: kdiff3.cpp:583
+msgid "A vs. B Overview"
+msgstr "Resumo A vs. B"
+
+#: kdiff3.cpp:584
+msgid "A vs. C Overview"
+msgstr "Resumo A vs. C"
+
+#: kdiff3.cpp:585
+msgid "B vs. C Overview"
+msgstr "Resumo B vs. C"
+
+#: kdiff3.cpp:586
+msgid "Word Wrap Diff Windows"
+msgstr "Saltar de liña nas fiestras de diferenzas"
+
+#: kdiff3.cpp:587
+msgid "Add Manual Diff Alignment"
+msgstr "Engadir o aliñamento manual das diferenzas"
+
+#: kdiff3.cpp:588
+msgid "Clear All Manual Diff Alignments"
+msgstr "Limpar todos os aliñamentos de diferenzas manuais"
+
+#: kdiff3.cpp:593
+msgid "Focus Prev Window"
+msgstr "Focar a fiestra anterior"
+
+#: kdiff3.cpp:594
+msgid "Toggle Split Orientation"
+msgstr "Comutar a orientación da repartición"
+
+#: kdiff3.cpp:596
+msgid "Dir && Text Split Screen View"
+msgstr "Dividir a vista de cartafoles e texto"
+
+#: kdiff3.cpp:598
+msgid "Toggle Between Dir && Text View"
+msgstr "Comutar entre a fiestra de cartafoles e de texto"
+
+#: kdiff3.cpp:654 pdiff.cpp:1812
+msgid "The merge result hasn't been saved."
+msgstr "O resultado da fusión aínda non foi gardado."
+
+#: kdiff3.cpp:656
+msgid "Save && Quit"
+msgstr "Gardar e sair"
+
+#: kdiff3.cpp:657
+msgid "Quit Without Saving"
+msgstr "Sair sen gardar"
+
+#: kdiff3.cpp:665 pdiff.cpp:1823
+msgid "Saving the merge result failed."
+msgstr "O gardado do resultado da fusión fallou."
+
+#: kdiff3.cpp:676 pdiff.cpp:1078
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort?"
+msgstr "Está a facer unha fusión de cartafoles. Desexa realmente abortala?"
+
+#: kdiff3.cpp:701
+msgid "Saving file..."
+msgstr "A gardar o ficheiro..."
+
+#: kdiff3.cpp:718
+msgid "Saving file with a new filename..."
+msgstr "A gardar o ficheiro cun nome novo..."
+
+#: kdiff3.cpp:781
+#, fuzzy
+#| msgid "Printing completed."
+msgid "Printing not implemented."
+msgstr "A impresión terminou."
+
+#: kdiff3.cpp:815
+msgid "Printing..."
+msgstr "A imprimir..."
+
+#: kdiff3.cpp:956
+msgid "Selection"
+msgstr "Selección"
+
+#: kdiff3.cpp:982
+msgid "Printing completed."
+msgstr "A impresión terminou."
+
+#: kdiff3.cpp:986
+msgid "Printing aborted."
+msgstr "Cancelouse a impresión."
+
+#: kdiff3.cpp:993
+msgid "Exiting..."
+msgstr "A sair..."
+
+#: kdiff3.cpp:1006
+msgid "Toggling toolbar..."
+msgstr "A comutar a barra de ferramentas..."
+
+#: kdiff3.cpp:1027
+msgid "Toggle the statusbar..."
+msgstr "Comutar a barra de estado..."
+
+#: smalldialogs.cpp:58
+msgid "A (Base):"
+msgstr "A (Base) :"
+
+#: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99
+#: smalldialogs.cpp:142
+msgid "File..."
+msgstr "Ficheiro..."
+
+#: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101
+#: smalldialogs.cpp:144
+msgid "Dir..."
+msgstr "Cartafol..."
+
+#: smalldialogs.cpp:93
+msgid "C (Optional):"
+msgstr "C (Opcional):"
+
+#: smalldialogs.cpp:116
+msgid "Swap/Copy Names ..."
+msgstr "Trocar/Copiar os nomes ..."
+
+#: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123
+#, kde-format
+msgid "Swap %1<->%2"
+msgstr "Trocar %1<->%2"
+
+#: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126
+#, kde-format
+msgid "Copy %1->Output"
+msgstr "Copiar %1->Resultado"
+
+#: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129
+#, kde-format
+msgid "Swap %1<->Output"
+msgstr "Trocar %1<->Resultado"
+
+#: smalldialogs.cpp:136
+msgid "Output (optional):"
+msgstr "Resultado (opcional):"
+
+#: smalldialogs.cpp:168
+msgid "Configure..."
+msgstr "Configurar..."
+
+#: smalldialogs.cpp:174
+msgid "&OK"
+msgstr "&Aceitar"
+
+#: smalldialogs.cpp:362
+msgid "Search text:"
+msgstr "Texto da procura:"
+
+#: smalldialogs.cpp:369
+msgid "Case sensitive"
+msgstr "Distinguir a capitalización"
+
+#: smalldialogs.cpp:372
+msgid "Search A"
+msgstr "Procurar A"
+
+#: smalldialogs.cpp:377
+msgid "Search B"
+msgstr "Procurar B"
+
+#: smalldialogs.cpp:382
+msgid "Search C"
+msgstr "Procurar C"
+
+#: smalldialogs.cpp:387
+msgid "Search output"
+msgstr "Resultado da procura"
+
+#: smalldialogs.cpp:392
+msgid "&Search"
+msgstr "&Procurar"
+
+#: smalldialogs.cpp:409
+msgid "Regular Expression Tester"
+msgstr "Comprobación de expresións regulares"
+
+#: smalldialogs.cpp:414 optiondialog.cpp:936
+msgid "Auto merge regular expression:"
+msgstr "Expresión regular de fusión automática:"
+
+#: smalldialogs.cpp:422
+msgid "Example auto merge line:"
+msgstr "Liña de fusión automática de exemplo:"
+
+#: smalldialogs.cpp:424
+#, fuzzy
+#| msgid "For auto merge test copy a line as used in your files."
+msgid "To test auto merge, copy a line as used in your files."
+msgstr ""
+"Para probar a fusión automática, copie unha liña como sexa usada nos seus "
+"ficheiros."
+
+#: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494
+msgid "Match result:"
+msgstr "Resultado correspondente:"
+
+#: smalldialogs.cpp:441 optiondialog.cpp:962
+msgid "History start regular expression:"
+msgstr "Expresión regular do inicio do histórico:"
+
+#: smalldialogs.cpp:449
+msgid "Example history start line (with leading comment):"
+msgstr "Liña inicial do histórico do exemplo (co comentario inicial):"
+
+#: smalldialogs.cpp:451
+msgid ""
+"Copy a history start line as used in your files,\n"
+"including the leading comment."
+msgstr ""
+"Copie unha liña inicial do histórico, como é usada nos seus ficheiros,\n"
+"incluindo o comentario inicial."
+
+#: smalldialogs.cpp:469 optiondialog.cpp:972
+msgid "History entry start regular expression:"
+msgstr "Expresión regular do inicio do elemento de histórico:"
+
+#: smalldialogs.cpp:477
+msgid "History sort key order:"
+msgstr "Orden da chave do histórico:"
+
+#: smalldialogs.cpp:485
+msgid "Example history entry start line (without leading comment):"
+msgstr ""
+"Liña inicial da entrada do histórico de exemplo (sen o comentario inicial):"
+
+#: smalldialogs.cpp:487
+msgid ""
+"Copy a history entry start line as used in your files,\n"
+"but omit the leading comment."
+msgstr ""
+"Copie unha liña inicial de entrada no histórico, como a usada nos seus  "
+"ficheiros,\n"
+"pero omita o comentario inicial."
+
+#: smalldialogs.cpp:501
+msgid "Sort key result:"
+msgstr "Resultado da chave de ordenación:"
+
+#: smalldialogs.cpp:508
+msgid "OK"
+msgstr "Aceptar"
+
+#: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583
+msgid "Match success."
+msgstr "Éxito na correspondencia."
+
+#: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589
+msgid "Match failed."
+msgstr "A correspondencia fallou."
+
+#: smalldialogs.cpp:574
+#, fuzzy
+#| msgid "Opening and closing parentheses don't match in regular expression."
+msgid "Opening and closing parentheses do not match in regular expression."
+msgstr "Os parénteses de abertura e peche non casan na expresión regular."
+
+#: optiondialog.cpp:367
+msgid "Unicode, 8 bit"
+msgstr "Unicode, 8 bit"
+
+#: optiondialog.cpp:368
+msgid "Unicode"
+msgstr "Unicode"
+
+#: optiondialog.cpp:369
+msgid "Latin1"
+msgstr "Latin1"
+
+#: optiondialog.cpp:388
+msgid "Change this if non-ASCII characters are not displayed correctly."
+msgstr "Mude isto se os carácteres non-ASCII non son mostrados correctamente."
+
+#: optiondialog.cpp:465
+msgid "Configure"
+msgstr "Configurar"
+
+#: optiondialog.cpp:531
+msgid "Font"
+msgstr "Tipo de letra"
+
+#: optiondialog.cpp:532
+msgid "Editor & Diff Output Font"
+msgstr "Tipo de letra do resultado de Diff e do editor"
+
+#: optiondialog.cpp:556
+msgid "Italic font for deltas"
+msgstr "Texto itálico para os deltas"
+
+#: optiondialog.cpp:559
+msgid ""
+"Selects the italic version of the font for differences.\n"
+"If the font doesn't support italic characters, then this does nothing."
+msgstr ""
+"Escolle a versión itálica do texto para as diferenzas.\n"
+"Se o tipo de letra non soporta carácteres itálicos, isto non fará nada."
+
+#: optiondialog.cpp:568
+msgid "Color"
+msgstr "Cor"
+
+#: optiondialog.cpp:569
+msgid "Colors Settings"
+msgstr "Configuración das cores"
+
+#: optiondialog.cpp:588
+msgid "Editor and Diff Views:"
+msgstr "Vistas do editor e das diferenzas:"
+
+#: optiondialog.cpp:596
+msgid "Foreground color:"
+msgstr "Cor principal:"
+
+#: optiondialog.cpp:603
+msgid "Background color:"
+msgstr "Cor de fondo:"
+
+#: optiondialog.cpp:612
+msgid "Diff background color:"
+msgstr "Cor de fondo das diferenzas:"
+
+#: optiondialog.cpp:620
+msgid "Color A:"
+msgstr "Cor A:"
+
+#: optiondialog.cpp:628
+msgid "Color B:"
+msgstr "Cor B:"
+
+#: optiondialog.cpp:636
+msgid "Color C:"
+msgstr "Cor C:"
+
+#: optiondialog.cpp:643
+msgid "Conflict color:"
+msgstr "Cor de conflito:"
+
+#: optiondialog.cpp:651
+msgid "Current range background color:"
+msgstr "Cor de fondo do rango actual:"
+
+#: optiondialog.cpp:659
+msgid "Current range diff background color:"
+msgstr "Cor de fondo da diferenza do rango actual:"
+
+#: optiondialog.cpp:666
+msgid "Color for manually aligned difference ranges:"
+msgstr "Cor dos rangos de diferenzas aliñados manualmente:"
+
+#: optiondialog.cpp:672
+msgid "Directory Comparison View:"
+msgstr "Vista de comparación dos cartafoles:"
+
+#: optiondialog.cpp:678
+msgid "Newest file color:"
+msgstr "Cor do ficheiro máis recente:"
+
+#: optiondialog.cpp:682
+msgid ""
+"Changing this color will only be effective when starting the next directory "
+"comparison."
+msgstr ""
+"Se muda esta cor, só terá efeito ao iniciar a próxima comparación de "
+"cartafoles."
+
+#: optiondialog.cpp:687
+msgid "Oldest file color:"
+msgstr "Cor do ficheiro máis antigo:"
+
+#: optiondialog.cpp:695
+msgid "Middle age file color:"
+msgstr "Cor dos ficheiros intermedios:"
+
+#: optiondialog.cpp:703
+msgid "Color for missing files:"
+msgstr "Cor dos ficheiros en falta:"
+
+#: optiondialog.cpp:717
+msgid "Editor"
+msgstr "Editor"
+
+#: optiondialog.cpp:718
+msgid "Editor Behavior"
+msgstr "Comportamento do editor"
+
+#: optiondialog.cpp:732
+msgid "Tab inserts spaces"
+msgstr "O tabulador insere espazos"
+
+#: optiondialog.cpp:735
+#, fuzzy
+#| msgid ""
+#| "On: Pressing tab generates the appropriate number of spaces.\n"
+#| "Off: A Tab-character will be inserted."
+msgid ""
+"On: Pressing tab generates the appropriate number of spaces.\n"
+"Off: A tab character will be inserted."
+msgstr ""
+"Sinalado: se preme Tab xera o número apropriado de espazos.\n"
+"Non sinalado: será introducido un carácter Tab."
+
+#: optiondialog.cpp:741
+msgid "Tab size:"
+msgstr "Tamaño das tabulacións:"
+
+#: optiondialog.cpp:747
+msgid "Auto indentation"
+msgstr "Sangrado automático"
+
+#: optiondialog.cpp:750
+msgid "On: The indentation of the previous line is used for a new line.\n"
+msgstr "Sinalado: O sangrado da liña anterior é usado na nova liña.\n"
+
+#: optiondialog.cpp:754
+msgid "Auto copy selection"
+msgstr "Copiar automaticamente a selección"
+
+#: optiondialog.cpp:757
+msgid ""
+"On: Any selection is immediately written to the clipboard.\n"
+"Off: You must explicitely copy e.g. via Ctrl-C."
+msgstr ""
+"Sinalado: calquera selección é posta automaticamente no portarretallos.\n"
+"Non sinalado: Terá que copiar explicitamente, p.ex., con Ctrl+C."
+
+#: optiondialog.cpp:768
+#, fuzzy
+#| msgid "&Window"
+msgid "Dos/Windows"
+msgstr "F&iestra"
+
+#: optiondialog.cpp:769
+#, fuzzy
+#| msgid "Auto Select"
+msgid "Autodetect"
+msgstr "Escoller automaticamente"
+
+#: optiondialog.cpp:772
+msgid ""
+"Sets the line endings for when an edited file is saved.\n"
+"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A"
+msgstr ""
+"Escolle os fins de liña para cando un ficheiro editado é gravado.\n"
+"DOS/Windows: CR+LF; UNIX: LF; con CR=0D, LF=0A"
+
+#: optiondialog.cpp:784
+msgid "Diff"
+msgstr "Diff"
+
+#: optiondialog.cpp:785
+msgid "Diff Settings"
+msgstr "Configuración de Diff"
+
+#: optiondialog.cpp:809
+msgid "Treat as white space."
+msgstr "Tratar como espazo en branco."
+
+#: optiondialog.cpp:811
+msgid "Ignore numbers"
+msgstr "Ignorar os números"
+
+#: optiondialog.cpp:814
+msgid ""
+"Ignore number characters during line matching phase. (Similar to Ignore "
+"white space.)\n"
+"Might help to compare files with numeric data."
+msgstr ""
+"Ignora os caracteres numéricos durante a fase de correspondencia das liñas. "
+"(Semellante a Ignorar os espazos).\n"
+"Pode axudar a comparar ficheiros con dados numéricos."
+
+#: optiondialog.cpp:819
+msgid "Ignore C/C++ comments"
+msgstr "Ignorar os comentarios de C/C++"
+
+#: optiondialog.cpp:821
+msgid "Treat C/C++ comments like white space."
+msgstr "Tratar os comentarios de C/C++ como espazo en branco."
+
+#: optiondialog.cpp:825
+msgid "Ignore case"
+msgstr "Ignorar a capitalización"
+
+#: optiondialog.cpp:828
+msgid "Treat case differences like white space changes. ('a'<=>'A')"
+msgstr ""
+"Trata as diferenzas de capitalización como mudanzas de espazo en branco. "
+"(«a»<=>«A») "
+
+#: optiondialog.cpp:832
+msgid "Preprocessor command:"
+msgstr "Comando do preprocesador:"
+
+#: optiondialog.cpp:836
+msgid "User defined pre-processing. (See the docs for details.)"
+msgstr ""
+"Preprocesamento definido polo usuario. (Consulte a documentación para máis "
+"detalles). "
+
+#: optiondialog.cpp:839
+msgid "Line-matching preprocessor command:"
+msgstr "Comando do preprocesador para a correspondencia de liñas:"
+
+#: optiondialog.cpp:843
+msgid ""
+"This pre-processor is only used during line matching.\n"
+"(See the docs for details.)"
+msgstr ""
+"Este preprocesador só é usado na correspondencia das liñas.\n"
+"(Consulte a documentación para máis detalles). "
+
+#: optiondialog.cpp:846
+msgid "Try hard (slower)"
+msgstr "Tentar con persistencia (lento)"
+
+#: optiondialog.cpp:849
+msgid ""
+"Enables the --minimal option for the external diff.\n"
+"The analysis of big files will be much slower."
+msgstr ""
+"Activa a opción --minimal do «diff».\n"
+"A análise dos ficheiros grandes será moito máis lenta."
+
+#: optiondialog.cpp:854
+msgid "Align B and C for 3 input files"
+msgstr "Aliñar B e C para 3 ficheiros de entrada"
+
+#: optiondialog.cpp:857
+msgid ""
+"Try to align B and C when comparing or merging three input files.\n"
+"Not recommended for merging because merge might get more complicated.\n"
+"(Default is off.)"
+msgstr ""
+"Tenta aliñan B e C ao comparar ou fusionar tres ficheiros de entrada.\n"
+"Non se recomenda á hora de fusionar porque se pode complicar.\n"
+"(Por omisión esta deshabilitado)."
+
+#: optiondialog.cpp:870
+msgid "Merge Settings"
+msgstr "Configuración da fusión"
+
+#: optiondialog.cpp:885
+msgid "Auto advance delay (ms):"
+msgstr "Atraso no avance automático (ms):"
+
+#: optiondialog.cpp:890
+msgid ""
+"When in Auto-Advance mode the result of the current selection is shown \n"
+"for the specified time, before jumping to the next conflict. Range: 0-2000 ms"
+msgstr ""
+"Cando estexa no modo de Avance Automático, o resultado da selección actual\n"
+"é mostrado durante o tempo indicado, antes de ir para o seguinte conflito. "
+"Rango: 0-2000 ms"
+
+#: optiondialog.cpp:895
+msgid "Show info dialogs"
+msgstr "Mostrar os diálogos de información"
+
+#: optiondialog.cpp:897
+msgid "Show a dialog with information about the number of conflicts."
+msgstr "Mostra un diálogo con información acerca do número de conflitos."
+
+#: optiondialog.cpp:900
+msgid "White space 2-file merge default:"
+msgstr "Fusión de espazo en branco por omisión con 2 ficheiros:"
+
+#: optiondialog.cpp:904 optiondialog.cpp:917
+msgid "Manual Choice"
+msgstr "Escolla manual"
+
+#: optiondialog.cpp:908 optiondialog.cpp:922
+msgid ""
+"Allow the merge algorithm to automatically select an input for white-space-"
+"only changes."
+msgstr ""
+"Permítelle ao algoritmo de unión escoller automaticamente o ficheiro a "
+"utilizar para os cambios de só espazo en branco."
+
+#: optiondialog.cpp:913
+msgid "White space 3-file merge default:"
+msgstr "Fusión de espazo en branco con 3 ficheiros:"
+
+#: optiondialog.cpp:927
+msgid "Automatic Merge Regular Expression"
+msgstr "Expresión regular de fusión automática"
+
+#: optiondialog.cpp:940
+msgid ""
+"Regular expression for lines where KDiff3 should automatically choose one "
+"source.\n"
+"When a line with a conflict matches the regular expression then\n"
+"- if available - C, otherwise B will be chosen."
+msgstr ""
+"A expresión regular das liñas nas que KDiff3 deberá escoller automaticamente "
+"unha orixe.\n"
+"Cando unha liña cun conflito corresponda coa expresión regular entón \n"
+"C -se está dispoñíbel-, en caso contrario será escollido B."
+
+#: optiondialog.cpp:946
+msgid "Run regular expression auto merge on merge start"
+msgstr "Executar a unión automática da expresión regular ao iniciar a fusión"
+
+#: optiondialog.cpp:948
+msgid ""
+"Run the merge for auto merge regular expressions\n"
+"immediately when a merge starts.\n"
+msgstr ""
+"Executa a fusión para as expresións regulares de fusión automática\n"
+"imediatamente após o inicio dunha fusión.\n"
+
+#: optiondialog.cpp:953
+msgid "Version Control History Merging"
+msgstr "Fusión do histórico do control de versións"
+
+#: optiondialog.cpp:966
+#, fuzzy
+#| msgid ""
+#| "Regular expression for the start of the version control history entry.\n"
+#| "Usually this line contains the \"$Log$\"-keyword.\n"
+#| "Default value: \".*\\$Log.*\\$.*\""
+msgid ""
+"Regular expression for the start of the version control history entry.\n"
+"Usually this line contains the \"$Log$\" keyword.\n"
+"Default value: \".*\\$Log.*\\$.*\""
+msgstr ""
+"A expresión regular para o inicio de entrada de histórico do control de "
+"versións.\n"
+"Normalmente, este valor contén a palabra-chave «$Log$».\n"
+"Valor por omisión: «.*\\$Log.*\\$.*»"
+
+#: optiondialog.cpp:984
+msgid ""
+"A version control history entry consists of several lines.\n"
+"Specify the regular expression to detect the first line (without the leading "
+"comment).\n"
+"Use parentheses to group the keys you want to use for sorting.\n"
+"If left empty, then KDiff3 assumes that empty lines separate history "
+"entries.\n"
+"See the documentation for details."
+msgstr ""
+"Un elemento de histórico do control de versión ten varias liñas.\n"
+"Indique a expresión regular usada para detectar a primeira liña (sen o "
+"comentario inicial).\n"
+"Use os parénteses para agrupar as chaves que desexa usar na ordenación.\n"
+"Se o deixa en branco, KDiff3 asume que as liñas en branco separan os itens "
+"do histórico.\n"
+"Consulte documentación para saber máis detalles."
+
+#: optiondialog.cpp:992
+msgid "History merge sorting"
+msgstr "Ordenación da fusión do histórico"
+
+#: optiondialog.cpp:994
+msgid "Sort version control history by a key."
+msgstr "Ordenar o histórico do control de versións por unha chave."
+
+#: optiondialog.cpp:1004
+msgid "History entry start sort key order:"
+msgstr "Orden da chave de ordenación do inicio da entrada no histórico:"
+
+#: optiondialog.cpp:1008
+#, fuzzy
+#| msgid ""
+#| "Each parentheses used in the regular expression for the history start "
+#| "entry\n"
+#| "groups a key that can be used for sorting.\n"
+#| "Specify the list of keys (that are numbered in order of occurrence\n"
+#| "starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n"
+#| "If left empty, then no sorting will be done.\n"
+#| "See the documentation for details."
+msgid ""
+"Each pair of parentheses used in the regular expression for the history "
+"start entry\n"
+"groups a key that can be used for sorting.\n"
+"Specify the list of keys (that are numbered in order of occurrence\n"
+"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n"
+"If left empty, then no sorting will be done.\n"
+"See the documentation for details."
+msgstr ""
+"Cada paréntese usado na expresión regular para o elemento inicial do "
+"histórico\n"
+"agrupa unha chave que pode ser usada na ordenación.\n"
+"Indique a lista de chaves (que son numeradas por orden de ocorrencia,\n"
+"comezando polo 1), usando a «,» como separador (p.ex., «4,5,6,1,2,3,7»).\n"
+"De deixalo en branco, non será feita ningunha ordenación.\n"
+"Consulte a documentación para saber máis detalles."
+
+#: optiondialog.cpp:1019
+msgid "Merge version control history on merge start"
+msgstr "Unir o histórico do control de versións ao iniciar a fusión"
+
+#: optiondialog.cpp:1021
+msgid "Run version control history automerge on merge start."
+msgstr ""
+"Executa a fusión automática do histórico do control de versións ao iniciar a "
+"fusión."
+
+#: optiondialog.cpp:1025
+msgid "Max number of history entries:"
+msgstr "Número máximo de entradas do histórico:"
+
+#: optiondialog.cpp:1028
+msgid "Cut off after specified number. Use -1 for infinite number of entries."
+msgstr "Remata tras este número de entradas. Empregue -1 para infinitas."
+
+#: optiondialog.cpp:1032
+msgid "Test your regular expressions"
+msgstr "Comprobar as expresións regulares"
+
+#: optiondialog.cpp:1037
+msgid "Irrelevant merge command:"
+msgstr "Comando de fusión irrelevante:"
+
+#: optiondialog.cpp:1041
+msgid ""
+"If specified this script is run after automerge\n"
+"when no other relevant changes were detected.\n"
+"Called with the parameters: filename1 filename2 filename3"
+msgstr ""
+"De indicarse, este script é executado após a fusión automática,\n"
+"cando non sexan detectadas máis mudanzas relevantes.\n"
+"É invocado cos parámetros: ficheiro1 ficheiro2 ficheiro3"
+
+#: optiondialog.cpp:1047
+msgid "Auto save and quit on merge without conflicts"
+msgstr "Garda automaticamente e sai tras unha fusión sen conflitos"
+
+#: optiondialog.cpp:1050
+#, fuzzy
+#| msgid ""
+#| "When KDiff3 was started for a file-merge from the commandline and all\n"
+#| "conflicts are solvable without user interaction then automatically save "
+#| "and quit.\n"
+#| "(Similar to command line option \"--auto\"."
+msgid ""
+"If KDiff3 was started for a file-merge from the command line and all\n"
+"conflicts are solvable without user interaction then automatically save and "
+"quit.\n"
+"(Similar to command line option \"--auto\".)"
+msgstr ""
+"Cando KDiff3 teña sido iniciado desde a liña de comandos para fusionar\n"
+"ficheiros e todos os conflitos sexan resolúbeis sen interacción do usuario,\n"
+"entón garda automaticamente e sai.\n"
+"(Similar á opción da liña de comandos «--auto»)."
+
+#: optiondialog.cpp:1061 optiondialog.cpp:1062
+msgid "Directory"
+msgstr "Cartafol"
+
+#: optiondialog.cpp:1075
+msgid "Recursive directories"
+msgstr "Cartafoles recursivos"
+
+#: optiondialog.cpp:1077
+msgid "Whether to analyze subdirectories or not."
+msgstr "Indica se debe analisar os subcartafoles ou non."
+
+#: optiondialog.cpp:1079
+msgid "File pattern(s):"
+msgstr "Padróns de ficheiros:"
+
+#: optiondialog.cpp:1084
+msgid ""
+"Pattern(s) of files to be analyzed. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Os padróns dos ficheiros a analisar.\n"
+"Caracteres de substitución: «*» e «?»\n"
+"Pode indicar varios padróns usando o separador: «;»"
+
+#: optiondialog.cpp:1090
+msgid "File-anti-pattern(s):"
+msgstr "Antipadróns de ficheiros:"
+
+#: optiondialog.cpp:1095
+msgid ""
+"Pattern(s) of files to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Os padróns dos ficheiros a excluir da análise.\n"
+"Caracteres de substitución: «*» e «?»\n"
+"Pode indicar varios padróns usando o separador: «;»"
+
+#: optiondialog.cpp:1101
+msgid "Dir-anti-pattern(s):"
+msgstr "Antipadróns de cartafoles:"
+
+#: optiondialog.cpp:1106
+msgid ""
+"Pattern(s) of directories to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Os padróns dos cartafoles a excluir da análise.\n"
+"Caracteres de substitución: «*» e «?»\n"
+"Pode indicar varios padróns usando o separador: «;»"
+
+#: optiondialog.cpp:1112
+msgid "Use .cvsignore"
+msgstr "Empregar .cvsignore"
+
+#: optiondialog.cpp:1115
+#, fuzzy
+#| msgid ""
+#| "Extends the antipattern to anything that would be ignored by CVS.\n"
+#| "Via local \".cvsignore\"-files this can be directory specific."
+msgid ""
+"Extends the antipattern to anything that would be ignored by CVS.\n"
+"Via local \".cvsignore\" files this can be directory specific."
+msgstr ""
+"Estende o antipadrón a todo o que sería ignorado polo CVS.\n"
+"Isto pode ser específico para cada cartafol, mediante os ficheiros «."
+"cvsignore» locais."
+
+#: optiondialog.cpp:1120
+msgid "Find hidden files and directories"
+msgstr "Procurar ficheiros e cartafoles acochados"
+
+#: optiondialog.cpp:1123
+msgid "Finds files and directories with the hidden attribute."
+msgstr "Procura os ficheiros e cartafoles co atributo «acochado»."
+
+#: optiondialog.cpp:1125
+msgid "Finds files and directories starting with '.'."
+msgstr "Procura os ficheiros e cartafoles que comecen por «.»."
+
+#: optiondialog.cpp:1129
+msgid "Follow file links"
+msgstr "Seguir as ligazóns de ficheiros"
+
+#: optiondialog.cpp:1132
+msgid ""
+"On: Compare the file the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+"Sinalado: Compara o ficheiro ao que aponta a ligazón.\n"
+"Non sinalado: Compara as ligazóns."
+
+#: optiondialog.cpp:1137
+msgid "Follow directory links"
+msgstr "Seguir as ligazóns de cartafoles"
+
+#: optiondialog.cpp:1140
+msgid ""
+"On: Compare the directory the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+"Sinalado: Compara o cartafol ao que aponta a ligazón.\n"
+"Non sinalado: Compara as ligazóns."
+
+#: optiondialog.cpp:1156
+msgid "Case sensitive filename comparison"
+msgstr "Comparación de nomes de ficheiros sensíbel á capitalización"
+
+#: optiondialog.cpp:1159
+msgid ""
+"The directory comparison will compare files or directories when their names "
+"match.\n"
+"Set this option if the case of the names must match. (Default for Windows is "
+"off, otherwise on.)"
+msgstr ""
+"A comparación de cartafoles comparará os ficheiros ou cartafoles cando os "
+"seus nomes casen.\n"
+"Configure esta opción, se os nomes deben corresponder. (Por omisión, en "
+"Windows, non está sinalada; caso contrario, está sinalada.)"
+
+#: optiondialog.cpp:1163
+msgid "File Comparison Mode"
+msgstr "Modo de comparación dos ficheiros"
+
+#: optiondialog.cpp:1169
+msgid "Binary comparison"
+msgstr "Comparación binaria"
+
+#: optiondialog.cpp:1170
+msgid "Binary comparison of each file. (Default)"
+msgstr "Comparación binaria de cada ficheiro. (Por omisión)"
+
+#: optiondialog.cpp:1173
+msgid "Full analysis"
+msgstr "Análise completa"
+
+#: optiondialog.cpp:1174
+msgid ""
+"Do a full analysis and show statistics information in extra columns.\n"
+"(Slower than a binary comparison, much slower for binary files.)"
+msgstr ""
+"Fai unha análise completa e mostra informacións estatísticas en colunas "
+"adicionais.\n"
+"(Máis lento que a comparación binaria, moito máis lento para ficheiros "
+"binarios.)"
+
+#: optiondialog.cpp:1178
+msgid "Trust the size and modification date (unsafe)"
+msgstr "Confiar no tamaño e data de modificación (inseguro)"
+
+#: optiondialog.cpp:1179
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"Files with equal contents but different modification dates will appear as "
+"different.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"Asume que os ficheiros son iguais se a data de modificación e o tamaño do  "
+"ficheiro son iguais.\n"
+"Os ficheiros con contidos iguais pero datas de modificación diferentes "
+"aparecerán como diferentes.\n"
+"Útil con cartafoles grandes ou redes lentas."
+
+#: optiondialog.cpp:1184
+#, fuzzy
+#| msgid ""
+#| "Trust the size and date, but use binary comparison if date doesn't match "
+#| "(unsafe)"
+msgid ""
+"Trust the size and date, but use binary comparison if date does not match "
+"(unsafe)"
+msgstr ""
+"Confiar no tamaño e data, pero usar a comparación binaria se a data non casa "
+"(inseguro)"
+
+#: optiondialog.cpp:1185
+#, fuzzy
+#| msgid ""
+#| "Assume that files are equal if the modification date and file length are "
+#| "equal.\n"
+#| "If the date isn't equal but the sizes are, use binary comparison.\n"
+#| "Useful for big directories or slow networks."
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"If the dates are not equal but the sizes are, use binary comparison.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"Asume que os ficheiros son iguais se a data de modificación e o tamaño do  "
+"ficheiro son iguais.\n"
+"Se a data non é igual pero sí o son os tamaños, emprega a comparación "
+"binaria.\n"
+"Útil con cartafoles grandes ou redes lentas."
+
+#: optiondialog.cpp:1190
+msgid "Trust the size (unsafe)"
+msgstr "Confiar no tamaño (inseguro)"
+
+#: optiondialog.cpp:1191
+msgid ""
+"Assume that files are equal if their file lengths are equal.\n"
+"Useful for big directories or slow networks when the date is modified during "
+"download."
+msgstr ""
+"Asume que os ficheiros son iguais se o seu tamaño é igual.\n"
+"Útil para cartafoles grandes ou redes lentas cando a data é modificada na "
+"transferencia."
+
+#: optiondialog.cpp:1199
+msgid "Synchronize directories"
+msgstr "Sincronizar os cartafoles"
+
+#: optiondialog.cpp:1202
+msgid ""
+"Offers to store files in both directories so that\n"
+"both directories are the same afterwards.\n"
+"Works only when comparing two directories without specifying a destination."
+msgstr ""
+"Oferece almacenar os ficheiros en ambos cartafoles\n"
+"para que ambos fiquen iguais.\n"
+"Funciona só ao comparar dous cartafoles sen indicar un destino."
+
+#: optiondialog.cpp:1208
+msgid "White space differences considered equal"
+msgstr "As diferenzas en espazos en branco son consideradas como iguais"
+
+#: optiondialog.cpp:1211
+msgid ""
+"If files differ only by white space consider them equal.\n"
+"This is only active when full analysis is chosen."
+msgstr ""
+"Se os ficheiros só diferen en espazos en branco considéraos iguais.\n"
+"Isto está activo só cando é escollida a análise completa."
+
+#: optiondialog.cpp:1217
+msgid "Copy newer instead of merging (unsafe)"
+msgstr "Copiar o máis recente en vez de fundir (inseguro)"
+
+#: optiondialog.cpp:1220
+msgid ""
+"Don't look inside, just take the newer file.\n"
+"(Use this only if you know what you are doing!)\n"
+"Only effective when comparing two directories."
+msgstr ""
+"Non analisa os ficheiros, simplesmente colle o ficheiro máis recente.\n"
+"(Use isto só se sabe o que está a facer!)\n"
+"Só é efectivo ao comparar dous cartafoles."
+
+#: optiondialog.cpp:1225
+msgid "Backup files (.orig)"
+msgstr "Salvagardar os ficheiros (.orig)"
+
+#: optiondialog.cpp:1228
+#, fuzzy
+#| msgid ""
+#| "When a file would be saved over an old file, then the old file\n"
+#| "will be renamed with a '.orig'-extension instead of being deleted."
+msgid ""
+"If a file would be saved over an old file, then the old file\n"
+"will be renamed with a '.orig' extension instead of being deleted."
+msgstr ""
+"Cando un ficheiro vaia ser gardado por cima dun anterior, entón o mudarase\n"
+"o nome do ficheiro antigo cunha extensión «.orig» en vez de ser borrado."
+
+#: optiondialog.cpp:1301 optiondialog.cpp:1302
+msgid "Regional Settings"
+msgstr "Configuración rexional"
+
+#: optiondialog.cpp:1402
+msgid "Language (restart required)"
+msgstr "Lingua (requere reiniciar)"
+
+#: optiondialog.cpp:1445
+#, fuzzy
+#| msgid ""
+#| "Choose the language of the GUI-strings or \"Auto\".\n"
+#| "For a change of language to take place, quit and restart KDiff3."
+msgid ""
+"Choose the language of the GUI strings or \"Auto\".\n"
+"For a change of language to take place, quit and restart KDiff3."
+msgstr ""
+"Escolla a lingua da interface gráfica ou «Auto».\n"
+"Para mudar de lingua ten que reiniciar KDiff3."
+
+#: optiondialog.cpp:1463
+msgid "Use the same encoding for everything:"
+msgstr "Utilizar a mesma codificación para todo:"
+
+#: optiondialog.cpp:1466
+msgid ""
+"Enable this allows to change all encodings by changing the first only.\n"
+"Disable this if different individual settings are needed."
+msgstr ""
+"Sinale isto para permitir modificar todas as codificacións trocando só a "
+"primeira.\n"
+"Non o sinale se precisa axustes individuais."
+
+#: optiondialog.cpp:1471
+msgid "Note: Local Encoding is "
+msgstr "Nota: A codificación local é"
+
+#: optiondialog.cpp:1475
+msgid "File Encoding for A:"
+msgstr "Codificación do ficheiro A:"
+
+#: optiondialog.cpp:1481
+msgid ""
+"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n"
+"If the file is not Unicode then the selected encoding will be used as "
+"fallback.\n"
+"(Unicode detection depends on the first bytes of a file.)"
+msgstr ""
+"Se sinala esta opción entón detectarase a codificación Unicode (UTF-16 ou "
+"UTF-8).\n"
+"Se o ficheiro non é Unicode entón empregarase a codificación escollida a "
+"xeito de reserva.\n"
+"(A detección de Unicode depende dos primeiros bytes do ficheiro.)"
+
+#: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503
+msgid "Auto Detect Unicode"
+msgstr "Detectar automaticamente Unicode"
+
+#: optiondialog.cpp:1490
+msgid "File Encoding for B:"
+msgstr "Codificación do ficheiro B:"
+
+#: optiondialog.cpp:1499
+msgid "File Encoding for C:"
+msgstr "Codificación do ficheiro C:"
+
+#: optiondialog.cpp:1508
+msgid "File Encoding for Merge Output and Saving:"
+msgstr "Codificazón do ficheiro para fusionar o resultado e gardar:"
+
+#: optiondialog.cpp:1512
+msgid "Auto Select"
+msgstr "Escoller automaticamente"
+
+#: optiondialog.cpp:1515
+msgid ""
+"If enabled then the encoding from the input files is used.\n"
+"In ambiguous cases a dialog will ask the user to choose the encoding for "
+"saving."
+msgstr ""
+"Se sinala esta opción entón será usada a codificación dos ficheiros de "
+"entrada.\n"
+"En casos ambiguos un diálogo requeriralle que escolla a codificación."
+
+#: optiondialog.cpp:1519
+msgid "File Encoding for Preprocessor Files:"
+msgstr "Codificación dos ficheiros de preprocesador:"
+
+#: optiondialog.cpp:1530
+msgid "Right To Left Language"
+msgstr "Lingua da direita para a esquerda"
+
+#: optiondialog.cpp:1533
+msgid ""
+"Some languages are read from right to left.\n"
+"This setting will change the viewer and editor accordingly."
+msgstr ""
+"Algunhas linguas son lidas da direita para esquerda.\n"
+"Esta opción modifica o visor e editor de acordo con elas."
+
+#: optiondialog.cpp:1548
+msgid "Integration"
+msgstr "Integración"
+
+#: optiondialog.cpp:1549
+msgid "Integration Settings"
+msgstr "Configuración da integración"
+
+#: optiondialog.cpp:1563
+msgid "Command line options to ignore:"
+msgstr "Opcións da liña de comandos a ignorar:"
+
+#: optiondialog.cpp:1568
+#, fuzzy
+#| msgid ""
+#| "List of command line options that should be ignored when KDiff3 is used "
+#| "by other tools.\n"
+#| "Several values can be specified if separated via ';'\n"
+#| "This will suppress the \"Unknown option\"-error."
+msgid ""
+"List of command line options that should be ignored when KDiff3 is used by "
+"other tools.\n"
+"Several values can be specified if separated via ';'\n"
+"This will suppress the \"Unknown option\" error."
+msgstr ""
+"Unha lista das opcións da liña de comandos que deberán ser ignoradas, cando "
+"KDiff3 sexa usado por outras ferramentas.\n"
+"Se desexa indicar varios valores, sepáreos por «;»\n"
+"Isto elimina o erro de «Opción descoñecida»."
+
+#: optiondialog.cpp:1575
+msgid "Quit also via Escape key"
+msgstr "Sair tamén coa tecla Esc"
+
+#: optiondialog.cpp:1578
+#, fuzzy
+#| msgid ""
+#| "Fast method to exit.\n"
+#| "For those who are used to using the Escape-key."
+msgid ""
+"Fast method to exit.\n"
+"For those who are used to using the Escape key."
+msgstr ""
+"Un sistema rápido de sair.\n"
+"Para quen teña o costume de empregar a tecla de Escape."
+
+#: optiondialog.cpp:1583
+msgid "Integrate with ClearCase"
+msgstr "Integrar con ClearCase"
+
+#: optiondialog.cpp:1586
+#, fuzzy
+#| msgid ""
+#| "Integrate with Rational ClearCase from IBM.\n"
+#| "Modifies the \"map\" file in ClearCase-subdir \"lib/mgrs\"\n"
+#| "(Only enabled when ClearCase \"bin\" directory is in the path.)"
+msgid ""
+"Integrate with Rational ClearCase from IBM.\n"
+"Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n"
+"(Only enabled when ClearCase \"bin\" directory is in the path.)"
+msgstr ""
+"Integra con Rational ClearCase de IBM.\n"
+"Modifica o ficheiro de «mapa» no subcartafol de ClearCase «lib/mgrs»\n"
+"(Só é habilitado de atopar o cartafol «bin» de ClearCase na rota.)"
+
+#: optiondialog.cpp:1592
+msgid "Remove ClearCase Integration"
+msgstr "Retirar a integración con ClearCase"
+
+#: optiondialog.cpp:1595
+#, fuzzy
+#| msgid ""
+#| "Restore the old \"map\" file from before doing the Clearcase integration."
+msgid ""
+"Restore the old \"map\" file from before doing the ClearCase integration."
+msgstr ""
+"Repón o ficheiro de «mapa» vello existente antes de integrar con Clearcase."
+
+#: optiondialog.cpp:1680
+msgid "Incompatible Font"
+msgstr "Fonte tipográfica incompatíbel"
+
+#: optiondialog.cpp:1681
+msgid "Continue at Own Risk"
+msgstr "Continuar baixo a miña responsabilidade"
+
+#: optiondialog.cpp:1682
+msgid "Select Another Font"
+msgstr "Escoller outro tipo de letra"
+
+#: optiondialog.cpp:1717
+msgid "This resets all options. Not only those of the current topic."
+msgstr "Isto repón todas as opcións, non só as do tema actual."
+
+#: pdiff.cpp:260
+msgid "PreprocessorCmd: "
+msgstr "Comando do preprocesador: "
+
+#: pdiff.cpp:265
+msgid "The following option(s) you selected might change data:\n"
+msgstr "As seguintes opcións que escolleu poden modificar os dados:\n"
+
+#: pdiff.cpp:266
+msgid ""
+"\n"
+"Most likely this is not wanted during a merge.\n"
+"Do you want to disable these settings or continue with these settings active?"
+msgstr ""
+"\n"
+"Case seguro que isto non é desexábel durante unha fusión.\n"
+"Desexa deshabilitar estes axustes ou continuar con eles activos?"
+
+#: pdiff.cpp:268
+msgid "Option Unsafe for Merging"
+msgstr "Opción insegura para fusión"
+
+#: pdiff.cpp:269
+msgid "Use These Options During Merge"
+msgstr "Usar estas opcións durante a fusión"
+
+#: pdiff.cpp:270
+msgid "Disable Unsafe Options"
+msgstr "Deshabilitar as opcións inseguras"
+
+#: pdiff.cpp:300
+msgid "Loading A"
+msgstr "Cargando A"
+
+#: pdiff.cpp:304
+msgid "Loading B"
+msgstr "Cargando B"
+
+#: pdiff.cpp:321 pdiff.cpp:347
+msgid "Diff: A <-> B"
+msgstr "Diferenzas: A <-> B"
+
+#: pdiff.cpp:327 pdiff.cpp:372
+msgid "Linediff: A <-> B"
+msgstr "Dif. liñas: A <-> B"
+
+#: pdiff.cpp:338
+msgid "Loading C"
+msgstr "Cargando C"
+
+#: pdiff.cpp:350
+msgid "Diff: B <-> C"
+msgstr "Diferenzas: B <-> C"
+
+#: pdiff.cpp:353
+msgid "Diff: A <-> C"
+msgstr "Diferenzas: A <-> C"
+
+#: pdiff.cpp:375
+msgid "Linediff: B <-> C"
+msgstr "Dif. liñas: B <-> C"
+
+#: pdiff.cpp:378
+msgid "Linediff: A <-> C"
+msgstr "Dif. liñas: A <-> C"
+
+#: pdiff.cpp:534
+msgid "All input files contain the same text, but are not binary equal."
+msgstr ""
+"Todos os ficheiros de entrada conteñen o mesmo texto, pero non son iguais a  "
+"nível binario."
+
+#: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541
+#, kde-format
+msgid "Files %1 and %2 have equal text, but are not binary equal. \n"
+msgstr ""
+"Os ficheiros %1 e %2 teñen texto igual, pero non son iguais a nível "
+"binario.\n"
+
+#: pdiff.cpp:551
+msgid ""
+"Some inputfiles don't seem to be pure textfiles.\n"
+"Note that the KDiff3-merge was not meant for binary data.\n"
+"Continue at your own risk."
+msgstr ""
+"Algúns dos ficheiros de entrada non parecen ser ficheiros de texto puros.\n"
+"Lembre que a fusión de KDiff3 non foi pensada para os dados binarios.\n"
+"Continúe a súa conta e risco."
+
+#: pdiff.cpp:566
+#, kde-format
+msgid ""
+"Some input characters could not be converted to valid unicode.\n"
+"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n"
+"Don't save the result if unsure. Continue at your own risk.\n"
+"Affected input files are in %1."
+msgstr ""
+
+#: pdiff.cpp:1080
+msgid "Abort"
+msgstr "Interromper"
+
+#: pdiff.cpp:1087 pdiff.cpp:1175
+msgid "Opening files..."
+msgstr "A abrir os ficheiros..."
+
+#: pdiff.cpp:1152 pdiff.cpp:1223
+msgid "File open error"
+msgstr "Erro ao abrir o ficheiro"
+
+#: pdiff.cpp:1255
+msgid "Cutting selection..."
+msgstr "A cortar a selección..."
+
+#: pdiff.cpp:1276
+msgid "Copying selection to clipboard..."
+msgstr "A copiar a selección para o portarretallos..."
+
+#: pdiff.cpp:1292
+msgid "Inserting clipboard contents..."
+msgstr "A inserir o contido do portarretallos..."
+
+#: pdiff.cpp:1814
+msgid "Save && Continue"
+msgstr "Gardar e continuar"
+
+#: pdiff.cpp:1815
+msgid "Continue Without Saving"
+msgstr "Continuar sen gardar"
+
+#: pdiff.cpp:2018
+msgid "Search complete."
+msgstr "Procura terminada."
+
+#: pdiff.cpp:2018
+msgid "Search Complete"
+msgstr "Procura terminada"
+
+#: pdiff.cpp:2252
+msgid "Nothing is selected in either diff input window."
+msgstr ""
+"Non hai nada escollido en ningunha das fiestras de entrada das diferenzas."
+
+#: pdiff.cpp:2252
+msgid "Error while adding manual diff range"
+msgstr "Aconteceu un erro ao engadir o rango manual de diferenzas"
+
+#: kdiff3_shell.cpp:76
+#, fuzzy
+#| msgid ""
+#| "Could not initialize our part!\n"
+#| "This usually happens due to an installation problem. Please read the "
+#| "README-file in the source package for details."
+msgid ""
+"Could not initialize the KDiff3 part.\n"
+"This usually happens due to an installation problem. Please read the README-"
+"file in the source package for details."
+msgstr ""
+"Non foi posíbel inicializar a nosa componente!\n"
+"Isto acontece normalmente debido a un problema de instalación. Lea o "
+"ficheiro README no paquete coas fontes para máis detalles."
+
+#: rc.cpp:1
+msgctxt "NAME OF TRANSLATORS"
+msgid "Your names"
+msgstr "mvillarino"
+
+#: rc.cpp:2
+msgctxt "EMAIL OF TRANSLATORS"
+msgid "Your emails"
+msgstr "mvillarino@users.sourceforge.net"
+
+#. i18n: file: kdiff3_part.rc:4
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:5
+msgid "&KDiff3"
+msgstr "&KDiff3"
+
+#. i18n: file: kdiff3_part.rc:13
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:8
+msgid "Configure KDiff3"
+msgstr "Configurar KDiff3"
+
+#. i18n: file: kdiff3_part.rc:16
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:11
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#. i18n: file: kdiff3_shell.rc:106
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:38
+msgid "Main Toolbar"
+msgstr "Barra de ferramentas Principal"
diff --git a/po/gl/kdiff3plugin.po b/po/gl/kdiff3plugin.po
new file mode 100644 (file)
index 0000000..440a090
--- /dev/null
@@ -0,0 +1,115 @@
+# translation of kdiff3plugin.po to galician
+# Copyright (C) YEAR This_file_is_part_of_KDE
+# This file is distributed under the same license as the PACKAGE package.
+#
+# mvillarino <mvillarino@users.sourceforge.net>, 2008, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3plugin\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2009-02-04 23:05+0100\n"
+"Last-Translator: mvillarino <mvillarino@users.sourceforge.net>\n"
+"Language-Team: galician <proxecto@trasno.net>\n"
+"Language: gl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Environment: kde\n"
+"X-Accelerator-Marker: &\n"
+"X-Text-Markup: kde4\n"
+
+#: kdiff3plugin.cpp:107
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#: kdiff3plugin.cpp:114
+#, kde-format
+msgid "Compare with %1"
+msgstr "Comparar con %1"
+
+#: kdiff3plugin.cpp:120
+#, kde-format
+msgid "Merge with %1"
+msgstr "Fundir con %1"
+
+#: kdiff3plugin.cpp:126
+#, kde-format
+msgid "Save '%1' for later"
+msgstr "Gardar «%1» para máis tarde"
+
+#: kdiff3plugin.cpp:132
+msgid "3-way merge with base"
+msgstr "Fusión de 3 ficheiros con base"
+
+#: kdiff3plugin.cpp:139
+msgid "Compare with ..."
+msgstr "Comparar con..."
+
+#: kdiff3plugin.cpp:149
+msgid "Clear list"
+msgstr "Borrar a lista"
+
+#: kdiff3plugin.cpp:157
+msgid "Compare"
+msgstr "Comparar"
+
+#: kdiff3plugin.cpp:163
+msgid "3 way comparison"
+msgstr "Comparación de 3 ficheiros"
+
+#: kdiff3plugin.cpp:167
+msgid "About KDiff3 menu plugin ..."
+msgstr "Acerca da extensión do menú de KDiff3..."
+
+#: kdiff3plugin.cpp:269
+msgid ""
+"KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+"Extensión de menú de KDiff3: Copyright (C) 2008 Joachim Eibl\n"
+"Sitio web de KDiff3: http://kdiff3.sourceforge.net\n"
+"\n"
+
+#: kdiff3plugin.cpp:271
+#, fuzzy
+#| msgid ""
+#| "Using the contextmenu extension:\n"
+#| "For simple comparison of two selected files choose \"Compare\".\n"
+#| "If the other file is somewhere else \"Save\" the first file for later. It "
+#| "will appear in the \"Compare With ...\" submenu. Then use \"Compare With"
+#| "\" on second file.\n"
+#| "For a 3-way merge first \"Save\" the base file, then the branch to merge "
+#| "and choose \"3-way merge with base\" on the other branch which will be "
+#| "used as destination.\n"
+#| "Same also applies to directory comparison and merge."
+msgid ""
+"Using the context menu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else, \"Save\" the first file for later, and "
+"it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With"
+"\" on the second file.\n"
+"For a 3-way merge first, \"Save\" the base file, then the branch to merge, "
+"and then \"3-way merge with base\" on the other branch which will be used as "
+"the destination.\n"
+"The same also applies to directory comparison and merge."
+msgstr ""
+"Utilización da extensión de menú contextual:\n"
+"Para unha comparación simples de dous ficheiros escollidos escolla "
+"«Comparar».\n"
+"Se o outro ficheiro está noutro lugar antes debe «Gardar» o ficheiro para "
+"máis tarde. Aparecerá no submenú «Comparar con...». Logo empregue «Comparar "
+"con» no segundo ficheiro.\n"
+"Para unha fusión de 3 ficheiros primeiro debe «Gardar» o ficheiro base, logo "
+"a versión a fundir e logo «Fusión de 3 ficheiros con base» na galla que será "
+"empregada como destino.\n"
+"O mesmo aplícase á comparación e fusión de cartafoles."
+
+#: kdiff3plugin.cpp:279
+#, fuzzy
+#| msgid "About KDiff3 menu plugin ..."
+msgid "About KDiff3 Menu Plugin"
+msgstr "Acerca da extensión do menú de KDiff3..."
diff --git a/po/hi/CMakeLists.txt b/po/hi/CMakeLists.txt
new file mode 100644 (file)
index 0000000..04c3926
--- /dev/null
@@ -0,0 +1,2 @@
+file(GLOB _po_files *.po)
+GETTEXT_PROCESS_PO_FILES(hi ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
diff --git a/po/hi/kdiff3.po b/po/hi/kdiff3.po
new file mode 100644 (file)
index 0000000..2fc8d17
--- /dev/null
@@ -0,0 +1,3105 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2005-01-22 16:10+0530\n"
+"Last-Translator: Ravishankar Shrivastava <raviratlami@gmail.com>\n"
+"Language-Team: indlinux-hindi <indlinux-hindi@lists.sourceforge.net>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Hindi\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+
+#: kreplacements/kreplacements.h:105
+#, fuzzy
+#| msgid "C&ontinue"
+msgid "Continue"
+msgstr "जारी रखें (&o)"
+
+#: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158
+#: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512
+msgid "Cancel"
+msgstr ""
+
+#: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631
+msgid "Quit"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339
+msgid "Ok"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715
+msgid "Help"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:185
+msgid "Defaults"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:4
+#. i18n: ectx: Menu (file)
+#: kreplacements/kreplacements.cpp:296 rc.cpp:14
+#, fuzzy
+msgid "&File"
+msgstr "फ़ाइल..."
+
+#: kreplacements/kreplacements.cpp:297
+#, fuzzy
+msgid "&Edit"
+msgstr "संपादक"
+
+#. i18n: file: kdiff3_shell.rc:7
+#. i18n: ectx: Menu (directory)
+#: kreplacements/kreplacements.cpp:298 rc.cpp:17
+msgid "&Directory"
+msgstr "डिरेक्ट्री (&D)"
+
+#. i18n: file: kdiff3_shell.rc:50
+#. i18n: ectx: Menu (movement)
+#: kreplacements/kreplacements.cpp:301 rc.cpp:26
+msgid "&Movement"
+msgstr "गतिविधि (&M)"
+
+#. i18n: file: kdiff3_shell.rc:61
+#. i18n: ectx: Menu (diff)
+#: kreplacements/kreplacements.cpp:302 rc.cpp:29
+msgid "D&iffview"
+msgstr "डिफव्यू (&i)"
+
+#. i18n: file: kdiff3_shell.rc:73
+#. i18n: ectx: Menu (merge)
+#: kreplacements/kreplacements.cpp:303 rc.cpp:32
+msgid "&Merge"
+msgstr "सम्मिलित करें (&M)"
+
+#. i18n: file: kdiff3_shell.rc:95
+#. i18n: ectx: Menu (window)
+#: kreplacements/kreplacements.cpp:304 rc.cpp:35
+msgid "&Window"
+msgstr "विंडो (&W)"
+
+#: kreplacements/kreplacements.cpp:305
+#, fuzzy
+msgid "&Settings"
+msgstr "डिफ तथा सम्मिलित करने का विन्यास"
+
+#: kreplacements/kreplacements.cpp:306
+msgid "&Help"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:353
+#, fuzzy
+msgid "&About"
+msgstr "छोड़ें"
+
+#: kreplacements/kreplacements.cpp:369
+msgid "A&uthor"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:383
+msgid "&Thanks To"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:30
+#. i18n: ectx: Menu (dir_current_merge_menu)
+#: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497
+#: rc.cpp:20
+msgid "Current Item Merge Operation"
+msgstr "मौजूदा वस्तु सम्मिलित करने की क्रिया"
+
+#. i18n: file: kdiff3_shell.rc:38
+#. i18n: ectx: Menu (dir_current_sync_menu)
+#: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498
+#: rc.cpp:23
+msgid "Current Item Sync Operation"
+msgstr "मौजूदा वस्तु सिंक ऑपरेशन"
+
+#: kreplacements/kreplacements.cpp:597
+#, fuzzy
+msgid "Open"
+msgstr "ऑपरेशन"
+
+#: kreplacements/kreplacements.cpp:606
+#, fuzzy
+msgid "Save"
+msgstr "हल कर लिया गया"
+
+#: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720
+msgid "Save As..."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:623
+#, fuzzy
+msgid "Print..."
+msgstr "बाहर हो रहे हैं..."
+
+#: kreplacements/kreplacements.cpp:639
+msgid "Cut"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:647
+msgid "Copy"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:655
+msgid "Paste"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:663
+#, fuzzy
+msgid "Select All"
+msgstr "अ को मिटाएँ"
+
+#: kreplacements/kreplacements.cpp:671
+msgid "Show Toolbar"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:679
+msgid "Show &Status Bar"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:687
+#, fuzzy, kde-format
+msgid "&Configure %1..."
+msgstr "कॉन्फ़िगर...."
+
+#: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707
+#, fuzzy
+msgid "About"
+msgstr "छोड़ें"
+
+#: kreplacements/kreplacements.cpp:722
+msgid "Find"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:730
+msgid "Find Next"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:750
+#, fuzzy
+msgid "Select Font"
+msgstr "अन्य फ़ॉन्ट चुनें"
+
+#: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676
+msgid ""
+"You selected a variable width font.\n"
+"\n"
+"Because this program doesn't handle variable width fonts\n"
+"correctly, you might experience problems while editing.\n"
+"\n"
+"Do you want to continue or do you want to select another font."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:792
+#, fuzzy
+msgid "Incompatible font."
+msgstr "फ़ॉन्ट असंगत है"
+
+#: kreplacements/kreplacements.cpp:793
+#, fuzzy
+msgid "Continue at my own risk"
+msgstr "अपने स्वयं के जोखिम पर जारी रखें"
+
+#: kreplacements/kreplacements.cpp:793
+#, fuzzy
+msgid "Select another font"
+msgstr "अन्य फ़ॉन्ट चुनें"
+
+#: kreplacements/kreplacements.cpp:1134
+msgid "For more documentation, see the help-menu or the subdirectory doc."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1137
+#, fuzzy
+msgid "KDiff3-Usage"
+msgstr "के-डिफ3"
+
+#: kreplacements/kreplacements.cpp:1137
+#, fuzzy
+msgid "Ignore"
+msgstr "केस अनदेखा करें"
+
+#: kreplacements/kreplacements.cpp:1137
+#, fuzzy
+msgid "Exit"
+msgstr "संपादक"
+
+#: diff.cpp:251
+msgid "Writing clipboard data to temp file failed."
+msgstr "क्लिपबोर्ड डाटा को अस्थाई फ़ाइल में लिखना असफल."
+
+#: diff.cpp:255
+msgid "From Clipboard"
+msgstr "क्लिपबोर्ड से"
+
+#: diff.cpp:471
+msgid "Expecting space after closing quotation mark."
+msgstr ""
+
+#: diff.cpp:474
+msgid "Not matching quotation marks."
+msgstr ""
+
+#: diff.cpp:496
+msgid "Unexpected quotation mark within argument."
+msgstr ""
+
+#: diff.cpp:503
+msgid "No program specified."
+msgstr ""
+
+#: diff.cpp:605
+#, kde-format
+msgid ""
+"Preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The preprocessing command will be disabled now."
+msgstr ""
+
+#: diff.cpp:653
+#, kde-format
+msgid ""
+"The line-matching-preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The line-matching-preprocessing command will be disabled now."
+msgstr ""
+
+#: diff.cpp:1776 diff.cpp:1790
+msgid ""
+"Data loss error:\n"
+"If it is reproducible please contact the author.\n"
+msgstr ""
+
+#: diff.cpp:1778 diff.cpp:1792
+msgid "Severe Internal Error"
+msgstr "गंभीर आंतरिक त्रुटि"
+
+#: directorymergewindow.cpp:136
+msgid "Mix of links and normal files."
+msgstr "कड़ियों की मिलावटें तथा सामान्य फ़ाइलें."
+
+#: directorymergewindow.cpp:143
+msgid "Link: "
+msgstr "कड़ी"
+
+#: directorymergewindow.cpp:151
+msgid "Size. "
+msgstr "आकार."
+
+#: directorymergewindow.cpp:164 directorymergewindow.cpp:174
+msgid "Date & Size: "
+msgstr "तारीख व आकार:"
+
+#: directorymergewindow.cpp:184 directorymergewindow.cpp:190
+#, kde-format
+msgid "Creating temp copy of %1 failed."
+msgstr "%1 की अस्थाई नक़ल बनाना असफल."
+
+#: directorymergewindow.cpp:201 directorymergewindow.cpp:209
+#, kde-format
+msgid "Opening %1 failed."
+msgstr "%1 को खोलना असफल"
+
+#: directorymergewindow.cpp:213
+msgid "Comparing file..."
+msgstr "फ़ाइल की तुलना की जा रही है..."
+
+#: directorymergewindow.cpp:223 directorymergewindow.cpp:229
+#, kde-format
+msgid "Error reading from %1"
+msgstr "%1 से पढ़ने में त्रुटि"
+
+#: directorymergewindow.cpp:358
+msgid "Name"
+msgstr "नाम"
+
+#: directorymergewindow.cpp:358
+msgid "Operation"
+msgstr "ऑपरेशन"
+
+#: directorymergewindow.cpp:358
+msgid "Status"
+msgstr "स्थिति"
+
+#: directorymergewindow.cpp:359
+msgid "Unsolved"
+msgstr "हल नहीं"
+
+#: directorymergewindow.cpp:359
+msgid "Solved"
+msgstr "हल कर लिया गया"
+
+#: directorymergewindow.cpp:359
+msgid "Nonwhite"
+msgstr "सफेद-नहीं"
+
+#: directorymergewindow.cpp:359
+msgid "White"
+msgstr "सफेद"
+
+#: directorymergewindow.cpp:388
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort "
+"the merge and rescan the directory?"
+msgstr ""
+
+#: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655
+#: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823
+msgid "Warning"
+msgstr ""
+
+#: directorymergewindow.cpp:390 directorymergewindow.cpp:2965
+msgid "Rescan"
+msgstr "री-स्कैन"
+
+#: directorymergewindow.cpp:391 pdiff.cpp:1081
+msgid "Continue Merging"
+msgstr "मिलाया जाना जारी रखें"
+
+#: directorymergewindow.cpp:548
+msgid "Opening of directories failed:"
+msgstr "डिरेक्ट्रीज़ खोलना असफल:"
+
+#: directorymergewindow.cpp:551
+#, kde-format
+msgid "Dir A \"%1\" does not exist or is not a directory.\n"
+msgstr "डिरेक्ट्री अ \"%1\" या तो मौजूद नहीं है या फिर वह डिरेक्ट्री नहीं है.\n"
+
+#: directorymergewindow.cpp:554
+#, kde-format
+msgid "Dir B \"%1\" does not exist or is not a directory.\n"
+msgstr "डिरेक्ट्री ब \"%1\" या तो मौजूद नहीं है या फिर वह डिरेक्ट्री नहीं है.\n"
+
+#: directorymergewindow.cpp:557
+#, kde-format
+msgid "Dir C \"%1\" does not exist or is not a directory.\n"
+msgstr "डिरेक्ट्री स \"%1\" या तो मौजूद नहीं है या फिर वह डिरेक्ट्री नहीं है.\n"
+
+#: directorymergewindow.cpp:559
+msgid "Directory Open Error"
+msgstr "डिरेक्ट्री खोलने में त्रुटि"
+
+#: directorymergewindow.cpp:567
+msgid ""
+"The destination directory must not be the same as A or B when three "
+"directories are merged.\n"
+"Check again before continuing."
+msgstr ""
+
+#: directorymergewindow.cpp:569
+msgid "Parameter Warning"
+msgstr "पैरामीटर चेतावनी"
+
+#: directorymergewindow.cpp:574
+msgid "Scanning directories..."
+msgstr "डिरेक्ट्रीज़ स्कैन किया जा रहा है..."
+
+#: directorymergewindow.cpp:607
+msgid "Reading Directory A"
+msgstr "डिरेक्ट्री अ को पढ़ा जा रहा है"
+
+#: directorymergewindow.cpp:629
+msgid "Reading Directory B"
+msgstr "डिरेक्ट्री ब को पढ़ा जा रहा है"
+
+#: directorymergewindow.cpp:651
+msgid "Reading Directory C"
+msgstr "डिरेक्ट्री स को पढ़ा जा रहा है"
+
+#: directorymergewindow.cpp:677
+msgid "Some subdirectories were not readable in"
+msgstr "कुछ सबडिरेक्ट्रीज़ इसमें पढ़े नहीं जा सकने वाले हैं"
+
+#: directorymergewindow.cpp:682
+msgid "Check the permissions of the subdirectories."
+msgstr "सबडिरेक्ट्रीज़ की अनुमतियाँ जाँचें."
+
+#: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737
+#: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233
+#: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328
+msgid "Ready."
+msgstr "तैयार."
+
+#: directorymergewindow.cpp:735
+msgid "Directory Comparison Status"
+msgstr "डिरेक्ट्री तुलना स्थिति"
+
+#: directorymergewindow.cpp:736
+msgid "Number of subdirectories:"
+msgstr "सबडिरेक्ट्रीज़ की संख्या:"
+
+#: directorymergewindow.cpp:737
+msgid "Number of equal files:"
+msgstr "समान फ़ाइलों की संख्या:"
+
+#: directorymergewindow.cpp:738
+msgid "Number of different files:"
+msgstr "भिन्न फ़ाइलों की संख्या:"
+
+#: directorymergewindow.cpp:741
+msgid "Number of manual merges:"
+msgstr "हस्तचालित सम्मिलित करने की संख्या:"
+
+#: directorymergewindow.cpp:912
+msgid "This affects all merge operations."
+msgstr "यह सभी सम्मिलित ऑपरेशन को प्रभावित करेगा"
+
+#: directorymergewindow.cpp:913
+msgid "Changing All Merge Operations"
+msgstr "सभी सम्मिलित करने के ऑपरेशन को बदला जा रहा है"
+
+#: directorymergewindow.cpp:1312
+msgid "Processing "
+msgstr "प्रोसेसिंग"
+
+#: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742
+msgid "To do."
+msgstr "कार्य-सूची"
+
+#: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996
+msgid "Copy A to B"
+msgstr "अ की नक़ल ब में करें"
+
+#: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997
+msgid "Copy B to A"
+msgstr "ब की नक़ल अ में करें"
+
+#: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998
+msgid "Delete A"
+msgstr "अ को मिटाएँ"
+
+#: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999
+msgid "Delete B"
+msgstr "ब को मिटाएँ"
+
+#: directorymergewindow.cpp:1814
+msgid "Delete A & B"
+msgstr "अ तथा ब को मिटाएँ"
+
+#: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001
+msgid "Merge to A"
+msgstr "अ में सम्मिलित करें"
+
+#: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002
+msgid "Merge to B"
+msgstr "ब में सम्मिलित करें"
+
+#: directorymergewindow.cpp:1817
+msgid "Merge to A & B"
+msgstr "अ तथा ब में सम्मिलित करें"
+
+#: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993
+msgid "Delete (if exists)"
+msgstr "मिटाएँ (यदि मौजूद है)"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+#: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869
+msgid "Merge"
+msgstr "सम्मिलित करें"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+msgid "Merge (manual)"
+msgstr "सम्मिलित करें (हस्तचालित)"
+
+#: directorymergewindow.cpp:1824
+msgid "Error: Conflicting File Types"
+msgstr "त्रुटि: परस्पर विरोधी फ़ाइल क़िस्में"
+
+#: directorymergewindow.cpp:1825
+msgid "Error: Changed and Deleted"
+msgstr ""
+
+#: directorymergewindow.cpp:1826
+msgid "Error: Dates are equal but files are not."
+msgstr "त्रुटि: तारीखें तो एक समान हैं, परंतु फ़ाइलें नहीं."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906
+msgid "This operation is currently not possible."
+msgstr "यह ऑपरेशन वर्तमान में संभव नहीं है."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174
+msgid "Operation Not Possible"
+msgstr "ऑपरेशन वर्तमान में संभव नहीं"
+
+#: directorymergewindow.cpp:1945
+msgid ""
+"This should never happen: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"If you know how to reproduce this, please contact the program author."
+msgstr ""
+
+#: directorymergewindow.cpp:1945
+msgid "Program Error"
+msgstr "प्रोग्राम त्रुटि"
+
+#: directorymergewindow.cpp:1956
+msgid "An error occurred while copying.\n"
+msgstr "नक़ल करने के दौरान एक त्रुटि हुई.\n"
+
+#: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025
+#: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105
+#: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123
+#: directorymergewindow.cpp:2374
+#, fuzzy
+msgid "Error"
+msgstr "त्रुटि."
+
+#: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375
+msgid "Merge Error"
+msgstr "सम्मिलित करने में त्रुटि"
+
+#: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380
+msgid "Error."
+msgstr "त्रुटि."
+
+#: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272
+#: directorymergewindow.cpp:2312
+msgid "Done."
+msgstr "सम्पन्न."
+
+#: directorymergewindow.cpp:1990
+msgid "Not saved."
+msgstr "सहेजा नहीं गया."
+
+#: directorymergewindow.cpp:2025
+msgid "Unknown merge operation. (This must never happen!)"
+msgstr "सम्मिलित करने का अज्ञात ऑपरेशन. (ऐसा कभी नहीं होना चाहिए!)"
+
+#: directorymergewindow.cpp:2057
+msgid "Unknown merge operation."
+msgstr "सम्मिलित करने का अज्ञात ऑपरेशन. "
+
+#: directorymergewindow.cpp:2072
+msgid ""
+"The merge is about to begin.\n"
+"\n"
+"Choose \"Do it\" if you have read the instructions and know what you are "
+"doing.\n"
+"Choosing \"Simulate it\" will tell you what would happen.\n"
+"\n"
+"Be aware that this program still has beta status and there is NO WARRANTY "
+"whatsoever! Make backups of your vital data!"
+msgstr ""
+
+#: directorymergewindow.cpp:2077
+msgid "Starting Merge"
+msgstr "सम्मिलित करना प्रारंभ किया जा रहा है"
+
+#: directorymergewindow.cpp:2078
+msgid "Do It"
+msgstr "इसे करें"
+
+#: directorymergewindow.cpp:2079
+msgid "Simulate It"
+msgstr "इसे सिमुलेट करें"
+
+#: directorymergewindow.cpp:2105
+msgid ""
+"The highlighted item has a different type in the different directories. "
+"Select what to do."
+msgstr ""
+
+#: directorymergewindow.cpp:2114
+msgid ""
+"The modification dates of the file are equal but the files are not. Select "
+"what to do."
+msgstr ""
+
+#: directorymergewindow.cpp:2123
+msgid ""
+"The highlighted item was changed in one directory and deleted in the other. "
+"Select what to do."
+msgstr ""
+
+#: directorymergewindow.cpp:2174
+msgid ""
+"This operation is currently not possible because directory merge is "
+"currently running."
+msgstr ""
+
+#: directorymergewindow.cpp:2234
+msgid ""
+"There was an error in the last step.\n"
+"Do you want to continue with the item that caused the error or do you want "
+"to skip this item?"
+msgstr ""
+
+#: directorymergewindow.cpp:2236
+msgid "Continue merge after an error"
+msgstr "त्रुटि के बाद भी सम्मिलित करना जारी रखें"
+
+#: directorymergewindow.cpp:2237
+msgid "Continue With Last Item"
+msgstr "पिछली वस्तु के साथ जारी रखें"
+
+#: directorymergewindow.cpp:2238
+msgid "Skip Item"
+msgstr "वस्तु छोड़ें"
+
+#: directorymergewindow.cpp:2272
+msgid "Skipped."
+msgstr "छोड़ा."
+
+#: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493
+msgid "In progress..."
+msgstr "प्रगति पर है..."
+
+#: directorymergewindow.cpp:2327
+msgid "Merge operation complete."
+msgstr "सम्मिलित करने की क्रिया पूरी हुई."
+
+#: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330
+msgid "Merge Complete"
+msgstr "सम्मिलित करना सम्पन्न"
+
+#: directorymergewindow.cpp:2340
+msgid ""
+"Simulated merge complete: Check if you agree with the proposed operations."
+msgstr ""
+
+#: directorymergewindow.cpp:2374
+msgid "An error occurred. Press OK to see detailed information.\n"
+msgstr "एक त्रुटि हुई. विस्तृत जानकारी देखने के लिए ठीक को दबाएँ\n"
+
+#: directorymergewindow.cpp:2406
+#, kde-format
+msgid "Error: While deleting %1: Creating backup failed."
+msgstr "त्रुटि: %1 को मिटाने के दौरान: बैकअप बनाने में असफल."
+
+#: directorymergewindow.cpp:2413
+#, kde-format
+msgid "delete directory recursively( %1 )"
+msgstr "डिरेक्ट्री ( %1 ) को रिकर्सिवली मिटाएँ"
+
+#: directorymergewindow.cpp:2415
+#, kde-format
+msgid "delete( %1 )"
+msgstr "मिटाएं (%1)"
+
+#: directorymergewindow.cpp:2430
+msgid "Error: delete dir operation failed while trying to read the directory."
+msgstr "त्रुटि: डिरेक्ट्री को पढ़ने की कोशिश में डिरेक्ट्री मिटाने का कार्य असफल."
+
+#: directorymergewindow.cpp:2449
+#, kde-format
+msgid "Error: rmdir( %1 ) operation failed."
+msgstr "त्रुटि: rmdir( %1 ) क्रिया असफल."
+
+#: directorymergewindow.cpp:2459
+msgid "Error: delete operation failed."
+msgstr "त्रुटि: डिरेक्ट्री मिटाने का कार्य असफल."
+
+#: directorymergewindow.cpp:2485
+#, kde-format
+msgid "manual merge( %1, %2, %3 -> %4)"
+msgstr "हस्तचालित सम्मिलित करें( %1, %2, %3 -> %4)"
+
+#: directorymergewindow.cpp:2488
+msgid ""
+"     Note: After a manual merge the user should continue by pressing F7."
+msgstr ""
+"टीप: हस्तचालित सम्मिलित करने के बाद उपयोक्ता को F7 को दबाकर जारी रखना चाहिए."
+
+#: directorymergewindow.cpp:2513
+#, kde-format
+msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed."
+msgstr "त्रुटि: नक़ल ( %1 -> %2 ) असफल. मौजूदा गंतव्य को मिटाना असफल."
+
+#: directorymergewindow.cpp:2522
+#, kde-format
+msgid "copyLink( %1 -> %2 )"
+msgstr "कापीलिंक ( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2533
+msgid "Error: copyLink failed: Remote links are not yet supported."
+msgstr "त्रुटि: कापीलिंक असफल: रिमोट कड़ियाँ अभी समर्थित नहीं हैं."
+
+#: directorymergewindow.cpp:2539
+msgid "Error: copyLink failed."
+msgstr "त्रुटि: कापीलिंक असफल."
+
+#: directorymergewindow.cpp:2564
+#, kde-format
+msgid "copy( %1 -> %2 )"
+msgstr "नक़ल( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2590
+#, kde-format
+msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination."
+msgstr ""
+
+#: directorymergewindow.cpp:2596
+#, kde-format
+msgid "rename( %1 -> %2 )"
+msgstr "नाम बदलें( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2605
+msgid "Error: Rename failed."
+msgstr "त्रुटि: नाम-बदलना असफल."
+
+#: directorymergewindow.cpp:2623
+#, kde-format
+msgid "Error during makeDir of %1. Cannot delete existing file."
+msgstr "%1 के मेकडिर के दौरान त्रुटि. मौजूदा फ़ाइल मिटा नहीं सकते."
+
+#: directorymergewindow.cpp:2639
+#, kde-format
+msgid "makeDir( %1 )"
+msgstr "मेकडिर( %1 )"
+
+#: directorymergewindow.cpp:2649
+msgid "Error while creating directory."
+msgstr "डिरेक्ट्री बनाने के दौरान त्रुटि."
+
+#: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784
+msgid "Dest"
+msgstr "गंतव्य"
+
+#: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709
+msgid "Dir"
+msgstr "डिर."
+
+#: directorymergewindow.cpp:2678
+msgid "Type"
+msgstr "क़िस्म"
+
+#: directorymergewindow.cpp:2678
+msgid "Size"
+msgstr "आकार"
+
+#: directorymergewindow.cpp:2679
+msgid "Attr"
+msgstr "एट्रि."
+
+#: directorymergewindow.cpp:2679
+msgid "Last Modification"
+msgstr "अंतिम परिवर्धन"
+
+#: directorymergewindow.cpp:2679
+msgid "Link-Destination"
+msgstr "लिंक-गंतव्य"
+
+#: directorymergewindow.cpp:2709 difftextwindow.cpp:401
+#, fuzzy
+msgid "File"
+msgstr "फ़ाइल..."
+
+#: directorymergewindow.cpp:2726
+msgid "not available"
+msgstr "उपलब्ध नहीं"
+
+#: directorymergewindow.cpp:2746
+msgid "A (Dest): "
+msgstr "A (गंत.): "
+
+#: directorymergewindow.cpp:2749
+msgid "A (Base): "
+msgstr "A (आधार): "
+
+#: directorymergewindow.cpp:2755
+msgid "B (Dest): "
+msgstr "B (गंत.): "
+
+#: directorymergewindow.cpp:2763
+msgid "C (Dest): "
+msgstr "C (गंत.): "
+
+#: directorymergewindow.cpp:2769
+msgid "Dest: "
+msgstr "गंतव्य:"
+
+#: directorymergewindow.cpp:2836
+#, fuzzy
+msgid "Save Directory Merge State As..."
+msgstr "डिरेक्ट्री सम्मिलित करें"
+
+#: directorymergewindow.cpp:2959
+msgid "Start/Continue Directory Merge"
+msgstr "डिरेक्ट्री सम्मिलित करना प्रारंभ करें/जारी रखें"
+
+#: directorymergewindow.cpp:2960
+msgid "Run Operation for Current Item"
+msgstr "मौज़ूदा वस्तु के लिए ऑपरेशन चलाएँ"
+
+#: directorymergewindow.cpp:2961
+msgid "Compare Selected File"
+msgstr "चयनित फ़ाइल की तुलना करें"
+
+#: directorymergewindow.cpp:2962
+msgid "Merge Current File"
+msgstr "मौज़ूदा फ़ाइल सम्मिलित करें"
+
+#: directorymergewindow.cpp:2962
+#, fuzzy
+msgid ""
+"Merge\n"
+"File"
+msgstr "सम्मिलित करें"
+
+#: directorymergewindow.cpp:2963
+msgid "Fold All Subdirs"
+msgstr "सभी सबडिरेक्ट्रीज फ़ोल्ड करें"
+
+#: directorymergewindow.cpp:2964
+msgid "Unfold All Subdirs"
+msgstr "सभी सबडिरेक्ट्रीज अनफ़ोल्ड करें"
+
+#: directorymergewindow.cpp:2968
+msgid "Choose A for All Items"
+msgstr "सभी वस्तुओं के लिए अ का चयन करें"
+
+#: directorymergewindow.cpp:2969
+msgid "Choose B for All Items"
+msgstr "सभी वस्तुओं के लिए ब का चयन करें"
+
+#: directorymergewindow.cpp:2970
+msgid "Choose C for All Items"
+msgstr "सभी वस्तुओं के लिए स का चयन करें"
+
+#: directorymergewindow.cpp:2971
+msgid "Auto-Choose Operation for All Items"
+msgstr "सभी वस्तुओं के लिए क्रिया स्वचालित चयन करें"
+
+#: directorymergewindow.cpp:2972
+msgid "No Operation for All Items"
+msgstr "सभी वस्तुओं के लिए कोई क्रिया नहीं"
+
+#: directorymergewindow.cpp:2977
+msgid "Show Identical Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2977
+msgid ""
+"Identical\n"
+"Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2978
+#, fuzzy
+msgid "Show Different Files"
+msgstr "भिन्न फ़ाइलों की संख्या:"
+
+#: directorymergewindow.cpp:2979
+msgid "Show Files only in A"
+msgstr ""
+
+#: directorymergewindow.cpp:2979
+msgid ""
+"Files\n"
+"only in A"
+msgstr ""
+
+#: directorymergewindow.cpp:2980
+msgid "Show Files only in B"
+msgstr ""
+
+#: directorymergewindow.cpp:2980
+msgid ""
+"Files\n"
+"only in B"
+msgstr ""
+
+#: directorymergewindow.cpp:2981
+msgid "Show Files only in C"
+msgstr ""
+
+#: directorymergewindow.cpp:2981
+msgid ""
+"Files\n"
+"only in C"
+msgstr ""
+
+#: directorymergewindow.cpp:2985
+#, fuzzy
+msgid "Compare Explicitly Selected Files"
+msgstr "चयनित फ़ाइल की तुलना करें"
+
+#: directorymergewindow.cpp:2986
+#, fuzzy
+msgid "Merge Explicitly Selected Files"
+msgstr "चयनित फ़ाइल की तुलना करें"
+
+#: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995
+msgid "Do Nothing"
+msgstr "कुछ नहीं करें"
+
+#: directorymergewindow.cpp:2989
+msgid "A"
+msgstr "अ"
+
+#: directorymergewindow.cpp:2990
+msgid "B"
+msgstr "ब"
+
+#: directorymergewindow.cpp:2991
+msgid "C"
+msgstr "स"
+
+#: directorymergewindow.cpp:3000
+msgid "Delete A && B"
+msgstr "अ तथा ब को मिटाएँ"
+
+#: directorymergewindow.cpp:3003
+msgid "Merge to A && B"
+msgstr "अ तथा ब में सम्मिलित करें"
+
+#: main.cpp:74 main.cpp:76
+msgid "Ignored. (User defined.)"
+msgstr ""
+
+#: main.cpp:162
+#, fuzzy
+msgid "kdiff3"
+msgstr "के-डिफ3"
+
+#: main.cpp:164
+msgid "Tool for Comparison and Merge of Files and Directories"
+msgstr ""
+
+#: main.cpp:165
+msgid "(c) 2002-2011 Joachim Eibl"
+msgstr ""
+
+#: main.cpp:172 kdiff3_part.cpp:303
+msgid "Joachim Eibl"
+msgstr ""
+
+#: main.cpp:173
+msgid "Eike Sauer"
+msgstr ""
+
+#: main.cpp:173
+msgid "Bugfixes, Debian package maintainer"
+msgstr ""
+
+#: main.cpp:174
+msgid "Sebastien Fricker"
+msgstr ""
+
+#: main.cpp:174
+msgid "Windows installer"
+msgstr ""
+
+#: main.cpp:175
+msgid "Stephan Binner"
+msgstr ""
+
+#: main.cpp:175
+msgid "i18n-help"
+msgstr ""
+
+#: main.cpp:176
+msgid "Stefan Partheymueller"
+msgstr ""
+
+#: main.cpp:176
+#, fuzzy
+msgid "Clipboard-patch"
+msgstr "क्लिपबोर्ड से"
+
+#: main.cpp:177
+msgid "David Faure"
+msgstr ""
+
+#: main.cpp:177
+msgid "KIO-Help"
+msgstr ""
+
+#: main.cpp:178
+msgid "Bernd Gehrmann"
+msgstr ""
+
+#: main.cpp:178
+msgid "Class CvsIgnoreList from Cervisia"
+msgstr ""
+
+#: main.cpp:179
+msgid "Andre Woebbeking"
+msgstr ""
+
+#: main.cpp:179
+msgid "Class StringMatcher"
+msgstr ""
+
+#: main.cpp:180
+msgid "Michael Denio"
+msgstr ""
+
+#: main.cpp:180
+#, fuzzy
+msgid "Directory Equality-Coloring patch"
+msgstr "डिरेक्ट्री तुलना स्थिति"
+
+#: main.cpp:181
+msgid "Manfred Koehler"
+msgstr ""
+
+#: main.cpp:181
+msgid "Fix for slow startup on Windows"
+msgstr ""
+
+#: main.cpp:182
+#, fuzzy
+msgid "Sergey Zorin"
+msgstr "सम्मिलित करने में त्रुटि"
+
+#: main.cpp:182
+msgid "Diff Ext for Windows"
+msgstr ""
+
+#: main.cpp:183
+msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+msgstr ""
+
+#: main.cpp:183
+msgid "GNU-Diffutils"
+msgstr ""
+
+#: main.cpp:184
+msgid "Tino Boellsterling, Timothy Mee"
+msgstr ""
+
+#: main.cpp:184
+msgid "Intensive test, use and feedback"
+msgstr ""
+
+#: main.cpp:185
+msgid "Michael Schmidt"
+msgstr ""
+
+#: main.cpp:185
+msgid "Mac support"
+msgstr ""
+
+#: main.cpp:186
+msgid "Valentin Rusu"
+msgstr ""
+
+#: main.cpp:186 main.cpp:187
+#, fuzzy
+msgid "KDE4 porting"
+msgstr "कुछ नहीं करें"
+
+#: main.cpp:187
+msgid "Albert Astals Cid"
+msgstr ""
+
+#: main.cpp:188
+msgid "Silvan Scherrer"
+msgstr ""
+
+#: main.cpp:188
+msgid "OS2 port"
+msgstr ""
+
+#: main.cpp:190
+msgid "+ Many thanks to those who reported bugs and contributed ideas!"
+msgstr ""
+
+#: main.cpp:196
+msgid "Merge the input."
+msgstr "इनपुट सम्मिलित करें."
+
+#: main.cpp:197
+msgid "Explicit base file. For compatibility with certain tools."
+msgstr ""
+
+#: main.cpp:198
+msgid "Output file. Implies -m. E.g.: -o newfile.txt"
+msgstr "आउटपुट फ़ाइल. इम्प्लाइस -m. उदा.: -o newfile.txt"
+
+#: main.cpp:199
+msgid "Output file, again. (For compatibility with certain tools.)"
+msgstr "आउटपुट फ़ाइल, फिर से. (कुछ औज़ारों के साथ कम्पेटिबिलिटी के लिए.)"
+
+#: main.cpp:200
+msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)"
+msgstr ""
+
+#: main.cpp:201
+msgid "Don't solve conflicts automatically. (For compatibility...)"
+msgstr ""
+
+#: main.cpp:202
+msgid "Visible name replacement for input file 1 (base)."
+msgstr "इनपुट फ़ाइल 1 (आधार) के लिए विजिबल नाम रीप्लेसमेंट."
+
+#: main.cpp:203
+msgid "Visible name replacement for input file 2."
+msgstr "इनपुट फ़ाइल 2 के लिए विजिबल नाम रीप्लेसमेंट."
+
+#: main.cpp:204
+msgid "Visible name replacement for input file 3."
+msgstr "इनपुट फ़ाइल 3 के लिए विजिबल नाम रीप्लेसमेंट."
+
+#: main.cpp:205
+msgid "Alternative visible name replacement. Supply this once for every input."
+msgstr ""
+
+#: main.cpp:206
+msgid ""
+"Override a config setting. Use once for every setting. E.g.: --cs "
+"\"AutoAdvance=1\""
+msgstr ""
+
+#: main.cpp:207
+msgid "Show list of config settings and current values."
+msgstr ""
+
+#: main.cpp:208
+#, fuzzy
+msgid "Use a different config file."
+msgstr "भिन्न फ़ाइलों की संख्या:"
+
+#: main.cpp:211
+msgid "file1 to open (base, if not specified via --base)"
+msgstr "खोलने के लिए फ़ाइल1 (आधार, यदि इसके द्वारा निर्दिष्ट नहीं --base)"
+
+#: main.cpp:212
+msgid "file2 to open"
+msgstr "खोलने के लिए फ़ाइल2"
+
+#: main.cpp:213
+msgid "file3 to open"
+msgstr "खोलने के लिए फ़ाइल3"
+
+#: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976
+#: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002
+#: mergeresultwindow.cpp:1014
+#, fuzzy, kde-format
+msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)"
+msgstr "बचे हुए समाधान-रहित विरोधाभासों की संख्या: %1"
+
+#: mergeresultwindow.cpp:303
+msgid ""
+"The output has been modified.\n"
+"If you continue your changes will be lost."
+msgstr ""
+"आउटपुट परिवर्धित किया जा चुका है.\n"
+"यदि आप जारी रखते हैं तो आपके परिवर्तन खो जाएँगे."
+
+#: mergeresultwindow.cpp:834 pdiff.cpp:532
+msgid "All input files are binary equal."
+msgstr "सभी इनपुट फ़ाइलें बाइनरी समान हैं."
+
+#: mergeresultwindow.cpp:836
+msgid "All input files contain the same text."
+msgstr "सभी इनपुट फ़ाइलें एक ही पाठ रखे हैं."
+
+#: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840
+#: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540
+#, fuzzy, kde-format
+msgid "Files %1 and %2 are binary equal.\n"
+msgstr "फ़ाइलें ब तथा स बाइनरी समान हैं.\n"
+
+#: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841
+#: mergeresultwindow.cpp:843
+#, fuzzy, kde-format
+msgid "Files %1 and %2 have equal text.\n"
+msgstr "फ़ाइलें अ तथा ब में पाठ समान हैं.\n"
+
+#: mergeresultwindow.cpp:849
+msgid "Total number of conflicts: "
+msgstr "परस्पर विरोधों की कुल संख्या:"
+
+#: mergeresultwindow.cpp:850
+msgid ""
+"\n"
+"Nr of automatically solved conflicts: "
+msgstr ""
+"\n"
+"स्वचालित समाधान किए विरोधाभासों की संख्या: "
+
+#: mergeresultwindow.cpp:851
+msgid ""
+"\n"
+"Nr of unsolved conflicts: "
+msgstr ""
+"\n"
+"समाधान-रहित विरोधाभासों की संख्या: "
+
+#: mergeresultwindow.cpp:853
+msgid "Conflicts"
+msgstr "परस्पर विरोध"
+
+#: mergeresultwindow.cpp:1728
+msgid "<No src line>"
+msgstr "<कोई स्रोत पंक्ति नहीं>"
+
+#: mergeresultwindow.cpp:1736
+#, fuzzy
+msgid "<Merge Conflict (Whitespace only)>"
+msgstr "<विरोधाभास सम्मिलित करें>"
+
+#: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517
+msgid "<Merge Conflict>"
+msgstr "<विरोधाभास सम्मिलित करें>"
+
+#: mergeresultwindow.cpp:2725
+msgid ""
+"Not all conflicts are solved yet.\n"
+"File not saved.\n"
+msgstr ""
+"अब तक सभी विरोधाभासों का समाधान नहीं किया गया है.\n"
+"फ़ाइल सहेजा नहीं गया.\n"
+
+#: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736
+msgid "Conflicts Left"
+msgstr "विरोधाभास बायाँ "
+
+#: mergeresultwindow.cpp:2734
+msgid ""
+"There is a line end style conflict. Please choose the line end style "
+"manually.\n"
+"File not saved.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:2748
+msgid ""
+"\n"
+"\n"
+"Creating backup failed. File not saved."
+msgstr ""
+
+#: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792
+msgid "File Save Error"
+msgstr "फ़ाइल सहेजने में त्रुटि"
+
+#: mergeresultwindow.cpp:2792
+msgid "Error while writing."
+msgstr "लिखने के दौरान त्रुटि."
+
+#: mergeresultwindow.cpp:3122
+msgid "Output"
+msgstr "आउटपुट"
+
+#: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314
+msgid "[Modified]"
+msgstr "[परिवर्धित]"
+
+#: mergeresultwindow.cpp:3141
+msgid "Encoding for saving"
+msgstr ""
+
+#: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737
+#: optiondialog.cpp:762
+msgid "Line end style:"
+msgstr "पंक्ति ख़त्म होने की शैलीः"
+
+#: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767
+msgid "Unix"
+msgstr ""
+
+#: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737
+msgid "DOS"
+msgstr ""
+
+#: mergeresultwindow.cpp:3229
+#, fuzzy
+#| msgid "Conflicts"
+msgid "Conflict"
+msgstr "परस्पर विरोध"
+
+#: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263
+#: mergeresultwindow.cpp:3265
+msgid "Codec from"
+msgstr ""
+
+#: kdiff3_part.cpp:157 kdiff3_part.cpp:234
+msgid "Couldn't find files for comparison."
+msgstr "तुलना के लिए फ़ाइलों को नहीं ढूंढ सका"
+
+#: kdiff3_part.cpp:302
+msgid "KDiff3Part"
+msgstr "के-डिफ3पार्ट"
+
+#: fileaccess.cpp:612
+msgid ""
+"While trying to make a backup, deleting an older backup failed. \n"
+"Filename: "
+msgstr ""
+
+#: fileaccess.cpp:619
+msgid ""
+"While trying to make a backup, renaming failed. \n"
+"Filenames: "
+msgstr ""
+
+#: fileaccess.cpp:643
+#, kde-format
+msgid "Getting file status: %1"
+msgstr "फ़ाइल स्थिति प्राप्त की जा रही है: %1"
+
+#: fileaccess.cpp:686
+#, kde-format
+msgid "Reading file: %1"
+msgstr "फ़ाइल पढ़ा जा रहा है: %1"
+
+#: fileaccess.cpp:723
+#, kde-format
+msgid "Writing file: %1"
+msgstr "फ़ाइल: %1 लिखा जा रहा है"
+
+#: fileaccess.cpp:751
+msgid "Out of memory"
+msgstr "मेमोरी कम पड़ गई"
+
+#: fileaccess.cpp:786
+#, kde-format
+msgid "Making directory: %1"
+msgstr "डिरेक्ट्री बनाया जा रहा है: %1"
+
+#: fileaccess.cpp:806
+#, kde-format
+msgid "Removing directory: %1"
+msgstr "डिरेक्ट्री मिटाया जा रहा है: %1"
+
+#: fileaccess.cpp:821
+#, kde-format
+msgid "Removing file: %1"
+msgstr "फ़ाइल मिटाया जा रहा है: %1"
+
+#: fileaccess.cpp:837
+#, kde-format
+msgid "Creating symbolic link: %1 -> %2"
+msgstr "सिंबालिक कड़ी बनाई जा रही है: %1 -> %2"
+
+#: fileaccess.cpp:864
+#, kde-format
+msgid "Renaming file: %1 -> %2"
+msgstr "फ़ाइलनाम बदला जा रहा है: %1 -> %2"
+
+#: fileaccess.cpp:897
+#, kde-format
+msgid "Copying file: %1 -> %2"
+msgstr "फ़ाइल नक़ल की जा रही है: %1 -> %2"
+
+#: fileaccess.cpp:911
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for reading failed. Filename: "
+"%1"
+msgstr ""
+"फ़ाइल की नक़ल करने की क्रिया के दौरान त्रुटि: फ़ाइल को पढ़ने के लिए खोलने में असफल. फ़ाइल-"
+"नाम: %1"
+
+#: fileaccess.cpp:917
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for writing failed. Filename: "
+"%1"
+msgstr ""
+"फ़ाइल की नक़ल करने की क्रिया के दौरान त्रुटि: फ़ाइल को लिखने के लिए खोलने में असफल. फ़ाइल-"
+"नाम: %1"
+
+#: fileaccess.cpp:932
+#, kde-format
+msgid "Error during file copy operation: Reading failed. Filename: %1"
+msgstr "फ़ाइल की नक़ल करने की क्रिया के दौरान त्रुटि: पढ़ने में असफल. फ़ाइल-नाम: %1"
+
+#: fileaccess.cpp:941
+#, kde-format
+msgid "Error during file copy operation: Writing failed. Filename: %1"
+msgstr "फ़ाइल की नक़ल करने की क्रिया के दौरान त्रुटि: लिखने में असफल. फ़ाइल-नाम: %1"
+
+#: fileaccess.cpp:1231
+msgid "Reading directory: "
+msgstr "डिरेक्ट्री को पढ़ा जा रहा है:"
+
+#: fileaccess.cpp:1355
+#, kde-format
+msgid "Listing directory: %1"
+msgstr "डिरेक्ट्री सूचीबद्ध की जा रही है: %1"
+
+#: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396
+msgid "&Cancel"
+msgstr ""
+
+#: difftextwindow.cpp:403
+#, fuzzy
+msgid "Line"
+msgstr "कड़ी"
+
+#: difftextwindow.cpp:405
+#, fuzzy
+msgid "Line not available"
+msgstr "उपलब्ध नहीं"
+
+#: difftextwindow.cpp:1703 difftextwindow.cpp:1736
+msgid "Encoding:"
+msgstr ""
+
+#: difftextwindow.cpp:1759 kdiff3.cpp:831
+#, fuzzy
+msgid "Top line"
+msgstr "शीर्ष पंक्ति %1"
+
+#: difftextwindow.cpp:1769
+msgid "End"
+msgstr "अंत"
+
+#: kdiff3.cpp:169
+#, fuzzy
+msgid "Current Configuration:"
+msgstr "मौजूदा वस्तु सिंक ऑपरेशन"
+
+#: kdiff3.cpp:174
+#, fuzzy
+msgid "Config Option Error:"
+msgstr "फ़ाइल खोलने में त्रुटि"
+
+#: kdiff3.cpp:219
+msgid "Option --auto used, but no output file specified."
+msgstr "विकल्प --auto का उपयोग किया गया, परंतु कोई आउटपुट फ़ाइल निर्दिष्ट नहीं."
+
+#: kdiff3.cpp:369
+msgid "Option --auto ignored for directory comparison."
+msgstr "विकल्प --auto को डिरेक्ट्री तुलना करने में छोड़ा गया."
+
+#: kdiff3.cpp:405
+msgid "Saving failed."
+msgstr "सहेजने में असफल."
+
+#: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214
+msgid "Opening of these files failed:"
+msgstr "इन फ़ाइलों को खोलना असफल:"
+
+#: kdiff3.cpp:449
+msgid "File Open Error"
+msgstr "फ़ाइल खोलने में त्रुटि"
+
+#: kdiff3.cpp:477
+msgid "Opens documents for comparison..."
+msgstr "दस्तावेज़ों को तुलना के लिए खोलता है..."
+
+#: kdiff3.cpp:479
+#, fuzzy
+msgid "Reload"
+msgstr "तैयार."
+
+#: kdiff3.cpp:482
+msgid "Saves the merge result. All conflicts must be solved!"
+msgstr ""
+
+#: kdiff3.cpp:484
+msgid "Saves the current document as..."
+msgstr "मौजूदा दस्तावेज़ ऐसे सहेजता है..."
+
+#: kdiff3.cpp:487
+msgid "Print the differences"
+msgstr ""
+
+#: kdiff3.cpp:490
+msgid "Quits the application"
+msgstr "अनुप्रयोग से बाहर होता है"
+
+#: kdiff3.cpp:492
+msgid "Cuts the selected section and puts it to the clipboard"
+msgstr ""
+
+#: kdiff3.cpp:494
+msgid "Copies the selected section to the clipboard"
+msgstr "चुने हुए अंश को क्लिपबोर्ड पर नक़ल करता है"
+
+#: kdiff3.cpp:496
+#, fuzzy
+#| msgid "Pastes the clipboard contents to actual position"
+msgid "Pastes the clipboard contents to current position"
+msgstr "क्लिपबोर्ड अवयवों को सही स्थान पर चिपकाता है"
+
+#: kdiff3.cpp:498
+msgid "Select everything in current window"
+msgstr ""
+
+#: kdiff3.cpp:500
+msgid "Search for a string"
+msgstr "स्ट्रिंग के लिए ढूंढें"
+
+#: kdiff3.cpp:502
+msgid "Search again for the string"
+msgstr "स्ट्रिंग के लिए फिर से ढूंढें"
+
+#: kdiff3.cpp:507
+msgid "Enables/disables the statusbar"
+msgstr "स्थिति-पट्टी सक्षम/अक्षम करें"
+
+#: kdiff3.cpp:511
+msgid "Configure KDiff3..."
+msgstr "के-डिफ3 को कॉन्फ़िगर करें..."
+
+#: kdiff3.cpp:532
+msgid "Go to Current Delta"
+msgstr "मौज़ूदा डेल्टा में जाएँ"
+
+#: kdiff3.cpp:532
+#, fuzzy
+msgid ""
+"Current\n"
+"Delta"
+msgstr "मौज़ूदा डेल्टा में जाएँ"
+
+#: kdiff3.cpp:534
+msgid "Go to First Delta"
+msgstr "प्रथम डेल्टा में जाएँ"
+
+#: kdiff3.cpp:534
+#, fuzzy
+msgid ""
+"First\n"
+"Delta"
+msgstr "प्रथम डेल्टा में जाएँ"
+
+#: kdiff3.cpp:536
+msgid "Go to Last Delta"
+msgstr "अंतिम डेल्टा में जाएँ"
+
+#: kdiff3.cpp:536
+#, fuzzy
+msgid ""
+"Last\n"
+"Delta"
+msgstr "अंतिम डेल्टा में जाएँ"
+
+#: kdiff3.cpp:538
+msgid "(Skips white space differences when \"Show White Space\" is disabled.)"
+msgstr ""
+
+#: kdiff3.cpp:539
+msgid ""
+"(Does not skip white space differences even when \"Show White Space\" is "
+"disabled.)"
+msgstr ""
+
+#: kdiff3.cpp:540
+msgid "Go to Previous Delta"
+msgstr "पिछला डेल्टा में जाएँ"
+
+#: kdiff3.cpp:540
+#, fuzzy
+msgid ""
+"Prev\n"
+"Delta"
+msgstr "पिछला डेल्टा में जाएँ"
+
+#: kdiff3.cpp:542
+msgid "Go to Next Delta"
+msgstr "अगला डेल्टा में जाएँ"
+
+#: kdiff3.cpp:542
+#, fuzzy
+msgid ""
+"Next\n"
+"Delta"
+msgstr "अगला डेल्टा में जाएँ"
+
+#: kdiff3.cpp:544
+msgid "Go to Previous Conflict"
+msgstr "पिछले परस्पर विरोधों में जाएँ"
+
+#: kdiff3.cpp:544
+#, fuzzy
+msgid ""
+"Prev\n"
+"Conflict"
+msgstr "परस्पर विरोध"
+
+#: kdiff3.cpp:546
+msgid "Go to Next Conflict"
+msgstr "अगले परस्पर विरोधों में जाएँ"
+
+#: kdiff3.cpp:546
+#, fuzzy
+msgid ""
+"Next\n"
+"Conflict"
+msgstr "अगले परस्पर विरोधों में जाएँ"
+
+#: kdiff3.cpp:548
+msgid "Go to Previous Unsolved Conflict"
+msgstr "पिछले समाधान-रहित परस्पर विरोधों में जाएँ"
+
+#: kdiff3.cpp:548
+#, fuzzy
+msgid ""
+"Prev\n"
+"Unsolved"
+msgstr "हल नहीं"
+
+#: kdiff3.cpp:550
+msgid "Go to Next Unsolved Conflict"
+msgstr "अगले समाधान-रहित परस्पर विरोधों में जाएँ"
+
+#: kdiff3.cpp:550
+#, fuzzy
+msgid ""
+"Next\n"
+"Unsolved"
+msgstr "हल नहीं"
+
+#: kdiff3.cpp:552
+msgid "Select Line(s) From A"
+msgstr "अ से लाइन चुनें"
+
+#: kdiff3.cpp:552
+msgid ""
+"Choose\n"
+"A"
+msgstr ""
+
+#: kdiff3.cpp:553
+msgid "Select Line(s) From B"
+msgstr "ब से लाइन चुनें"
+
+#: kdiff3.cpp:553
+msgid ""
+"Choose\n"
+"B"
+msgstr ""
+
+#: kdiff3.cpp:554
+msgid "Select Line(s) From C"
+msgstr "स से लाइन चुनें"
+
+#: kdiff3.cpp:554
+msgid ""
+"Choose\n"
+"C"
+msgstr ""
+
+#: kdiff3.cpp:555
+msgid "Automatically Go to Next Unsolved Conflict After Source Selection"
+msgstr ""
+
+#: kdiff3.cpp:555
+#, fuzzy
+msgid ""
+"Auto\n"
+"Next"
+msgstr "स्वचालित नक़ल चयन"
+
+#: kdiff3.cpp:557
+msgid "Show Space && Tabulator Characters for Differences"
+msgstr "भिन्नताओं के लिए टेबुलेटर अक्षर तथा जगह दिखाएँ "
+
+#: kdiff3.cpp:557
+msgid ""
+"White\n"
+"Characters"
+msgstr ""
+
+#: kdiff3.cpp:558
+msgid "Show White Space"
+msgstr "सफेद जगह दिखाएँ"
+
+#: kdiff3.cpp:558
+msgid ""
+"White\n"
+"Deltas"
+msgstr ""
+
+#: kdiff3.cpp:560
+msgid "Show Line Numbers"
+msgstr "पंक्ति क्रमांक दिखाएँ"
+
+#: kdiff3.cpp:560
+#, fuzzy
+msgid ""
+"Line\n"
+"Numbers"
+msgstr "पंक्ति क्रमांक दिखाएँ"
+
+#: kdiff3.cpp:561
+msgid "Choose A Everywhere"
+msgstr "सभी जगह अ चुनें"
+
+#: kdiff3.cpp:562
+msgid "Choose B Everywhere"
+msgstr "सभी जगह ब चुनें"
+
+#: kdiff3.cpp:563
+msgid "Choose C Everywhere"
+msgstr "सभी जगह स चुनें"
+
+#: kdiff3.cpp:564
+msgid "Choose A for All Unsolved Conflicts"
+msgstr "सभी समाधान-रहित परस्पर विरोधों के लिए अ चुनें"
+
+#: kdiff3.cpp:565
+msgid "Choose B for All Unsolved Conflicts"
+msgstr "सभी समाधान-रहित परस्पर विरोधों के लिए ब चुनें"
+
+#: kdiff3.cpp:566
+msgid "Choose C for All Unsolved Conflicts"
+msgstr "सभी समाधान-रहित परस्पर विरोधों के लिए स चुनें"
+
+#: kdiff3.cpp:567
+msgid "Choose A for All Unsolved Whitespace Conflicts"
+msgstr "सभी समाधान-रहित सफेद-जगह परस्पर विरोधों के लिए अ चुनें"
+
+#: kdiff3.cpp:568
+msgid "Choose B for All Unsolved Whitespace Conflicts"
+msgstr "सभी समाधान-रहित सफेद-जगह परस्पर विरोधों के लिए ब चुनें"
+
+#: kdiff3.cpp:569
+msgid "Choose C for All Unsolved Whitespace Conflicts"
+msgstr "सभी समाधान-रहित सफेद-जगह परस्पर विरोधों के लिए स चुनें"
+
+#: kdiff3.cpp:570
+msgid "Automatically Solve Simple Conflicts"
+msgstr "सादा परस्पर विरोधों का स्वचालित समाधान करें"
+
+#: kdiff3.cpp:571
+msgid "Set Deltas to Conflicts"
+msgstr "डेल्टा को परस्पर विरोधों में सेट करें"
+
+#: kdiff3.cpp:572
+msgid "Run Regular Expression Auto Merge"
+msgstr ""
+
+#: kdiff3.cpp:573
+#, fuzzy
+msgid "Automatically Solve History Conflicts"
+msgstr "सादा परस्पर विरोधों का स्वचालित समाधान करें"
+
+#: kdiff3.cpp:574
+msgid "Split Diff At Selection"
+msgstr ""
+
+#: kdiff3.cpp:575
+#, fuzzy
+msgid "Join Selected Diffs"
+msgstr "चयनित फ़ाइल की तुलना करें"
+
+#: kdiff3.cpp:577
+msgid "Show Window A"
+msgstr "विंडो अ दिखाएँ"
+
+#: kdiff3.cpp:578
+msgid "Show Window B"
+msgstr "विंडो ब दिखाएँ"
+
+#: kdiff3.cpp:579
+msgid "Show Window C"
+msgstr "विंडो स दिखाएँ"
+
+#: kdiff3.cpp:580 kdiff3.cpp:591
+msgid "Focus Next Window"
+msgstr "अगले विंडो पर फोकस"
+
+#: kdiff3.cpp:582
+msgid "Normal Overview"
+msgstr "सामान्य ओवरव्यू"
+
+#: kdiff3.cpp:583
+msgid "A vs. B Overview"
+msgstr "अ वि. ब ओवरव्यू"
+
+#: kdiff3.cpp:584
+msgid "A vs. C Overview"
+msgstr "अ वि. स ओवरव्यू"
+
+#: kdiff3.cpp:585
+msgid "B vs. C Overview"
+msgstr "ब वि. स ओवरव्यू"
+
+#: kdiff3.cpp:586
+msgid "Word Wrap Diff Windows"
+msgstr "वर्ड व्रेप डिफ विंडोज़"
+
+#: kdiff3.cpp:587
+msgid "Add Manual Diff Alignment"
+msgstr ""
+
+#: kdiff3.cpp:588
+msgid "Clear All Manual Diff Alignments"
+msgstr ""
+
+#: kdiff3.cpp:593
+msgid "Focus Prev Window"
+msgstr "पिछले विंडो में फोकस"
+
+#: kdiff3.cpp:594
+msgid "Toggle Split Orientation"
+msgstr "अलग करने की दिशा टॉगल करें"
+
+#: kdiff3.cpp:596
+msgid "Dir && Text Split Screen View"
+msgstr "डिरेक्ट्री तथा पाठ स्प्लिट स्क्रीन दृश्य"
+
+#: kdiff3.cpp:598
+msgid "Toggle Between Dir && Text View"
+msgstr "डिरेक्ट्री तथा पाठ दृश्य के बीच टॉगल करें"
+
+#: kdiff3.cpp:654 pdiff.cpp:1812
+msgid "The merge result hasn't been saved."
+msgstr "सम्मिलित करने का परिणाम अभी सहेजा नहीं गया."
+
+#: kdiff3.cpp:656
+msgid "Save && Quit"
+msgstr "सहेजें तथा बाहर हों"
+
+#: kdiff3.cpp:657
+msgid "Quit Without Saving"
+msgstr "सहेजे बगैर बाहर हों"
+
+#: kdiff3.cpp:665 pdiff.cpp:1823
+msgid "Saving the merge result failed."
+msgstr "सम्मिलित किया जाने का परिणाम सहेजना असफल."
+
+#: kdiff3.cpp:676 pdiff.cpp:1078
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort?"
+msgstr ""
+
+#: kdiff3.cpp:701
+msgid "Saving file..."
+msgstr "फ़ाइल सहेजा जा रहा है..."
+
+#: kdiff3.cpp:718
+msgid "Saving file with a new filename..."
+msgstr "फ़ाइल नए फ़ाइलनाम के साथ सहेजा जा रहा है..."
+
+#: kdiff3.cpp:781
+#, fuzzy
+msgid "Printing not implemented."
+msgstr "सम्मिलित करने की क्रिया पूरी हुई."
+
+#: kdiff3.cpp:815
+#, fuzzy
+msgid "Printing..."
+msgstr "बाहर हो रहे हैं..."
+
+#: kdiff3.cpp:956
+#, fuzzy
+msgid "Selection"
+msgstr "अन्य फ़ॉन्ट चुनें"
+
+#: kdiff3.cpp:982
+#, fuzzy
+msgid "Printing completed."
+msgstr "सम्मिलित करने की क्रिया पूरी हुई."
+
+#: kdiff3.cpp:986
+#, fuzzy
+msgid "Printing aborted."
+msgstr "सम्मिलित करने की क्रिया पूरी हुई."
+
+#: kdiff3.cpp:993
+msgid "Exiting..."
+msgstr "बाहर हो रहे हैं..."
+
+#: kdiff3.cpp:1006
+msgid "Toggling toolbar..."
+msgstr "टूलबार टॉगल किया जा रहा है..."
+
+#: kdiff3.cpp:1027
+msgid "Toggle the statusbar..."
+msgstr "स्थिति पट्टी टॉगल करें..."
+
+#: smalldialogs.cpp:58
+msgid "A (Base):"
+msgstr "अ (बेस):"
+
+#: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99
+#: smalldialogs.cpp:142
+msgid "File..."
+msgstr "फ़ाइल..."
+
+#: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101
+#: smalldialogs.cpp:144
+msgid "Dir..."
+msgstr "डिर.:"
+
+#: smalldialogs.cpp:93
+msgid "C (Optional):"
+msgstr "स (वैकल्पिक):"
+
+#: smalldialogs.cpp:116
+msgid "Swap/Copy Names ..."
+msgstr ""
+
+#: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123
+#, kde-format
+msgid "Swap %1<->%2"
+msgstr ""
+
+#: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126
+#, kde-format
+msgid "Copy %1->Output"
+msgstr ""
+
+#: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129
+#, kde-format
+msgid "Swap %1<->Output"
+msgstr ""
+
+#: smalldialogs.cpp:136
+msgid "Output (optional):"
+msgstr "आउटपुट (वैकल्पिक):"
+
+#: smalldialogs.cpp:168
+msgid "Configure..."
+msgstr "कॉन्फ़िगर...."
+
+#: smalldialogs.cpp:174
+msgid "&OK"
+msgstr ""
+
+#: smalldialogs.cpp:362
+msgid "Search text:"
+msgstr "पाठ ढूंढें:"
+
+#: smalldialogs.cpp:369
+msgid "Case sensitive"
+msgstr "केस सेंसिटिव"
+
+#: smalldialogs.cpp:372
+msgid "Search A"
+msgstr "ढूंढें अ"
+
+#: smalldialogs.cpp:377
+msgid "Search B"
+msgstr "ढूंढें ब"
+
+#: smalldialogs.cpp:382
+msgid "Search C"
+msgstr "ढूंढें स"
+
+#: smalldialogs.cpp:387
+msgid "Search output"
+msgstr "ढूंढने के पश्चात् आउटपुट"
+
+#: smalldialogs.cpp:392
+msgid "&Search"
+msgstr "ढूंढें (&S)"
+
+#: smalldialogs.cpp:409
+msgid "Regular Expression Tester"
+msgstr ""
+
+#: smalldialogs.cpp:414 optiondialog.cpp:936
+msgid "Auto merge regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:422
+msgid "Example auto merge line:"
+msgstr ""
+
+#: smalldialogs.cpp:424
+msgid "To test auto merge, copy a line as used in your files."
+msgstr ""
+
+#: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494
+msgid "Match result:"
+msgstr ""
+
+#: smalldialogs.cpp:441 optiondialog.cpp:962
+msgid "History start regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:449
+msgid "Example history start line (with leading comment):"
+msgstr ""
+
+#: smalldialogs.cpp:451
+msgid ""
+"Copy a history start line as used in your files,\n"
+"including the leading comment."
+msgstr ""
+
+#: smalldialogs.cpp:469 optiondialog.cpp:972
+msgid "History entry start regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:477
+msgid "History sort key order:"
+msgstr ""
+
+#: smalldialogs.cpp:485
+msgid "Example history entry start line (without leading comment):"
+msgstr ""
+
+#: smalldialogs.cpp:487
+msgid ""
+"Copy a history entry start line as used in your files,\n"
+"but omit the leading comment."
+msgstr ""
+
+#: smalldialogs.cpp:501
+msgid "Sort key result:"
+msgstr ""
+
+#: smalldialogs.cpp:508
+msgid "OK"
+msgstr ""
+
+#: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583
+msgid "Match success."
+msgstr ""
+
+#: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589
+#, fuzzy
+msgid "Match failed."
+msgstr "सहेजने में असफल."
+
+#: smalldialogs.cpp:574
+msgid "Opening and closing parentheses do not match in regular expression."
+msgstr ""
+
+#: optiondialog.cpp:367
+msgid "Unicode, 8 bit"
+msgstr ""
+
+#: optiondialog.cpp:368
+msgid "Unicode"
+msgstr ""
+
+#: optiondialog.cpp:369
+msgid "Latin1"
+msgstr ""
+
+#: optiondialog.cpp:388
+msgid "Change this if non-ASCII characters are not displayed correctly."
+msgstr ""
+
+#: optiondialog.cpp:465
+#, fuzzy
+msgid "Configure"
+msgstr "कॉन्फ़िगर...."
+
+#: optiondialog.cpp:531
+msgid "Font"
+msgstr ""
+
+#: optiondialog.cpp:532
+msgid "Editor & Diff Output Font"
+msgstr "संपादक तथा डिफ़ आउटपुट फ़ॉन्ट"
+
+#: optiondialog.cpp:556
+msgid "Italic font for deltas"
+msgstr "डेल्टाज़ के लिए इटैलिक फ़ॉन्ट"
+
+#: optiondialog.cpp:559
+msgid ""
+"Selects the italic version of the font for differences.\n"
+"If the font doesn't support italic characters, then this does nothing."
+msgstr ""
+
+#: optiondialog.cpp:568
+msgid "Color"
+msgstr "रंग"
+
+#: optiondialog.cpp:569
+#, fuzzy
+msgid "Colors Settings"
+msgstr "क्षेत्रीय विन्यास"
+
+#: optiondialog.cpp:588
+msgid "Editor and Diff Views:"
+msgstr ""
+
+#: optiondialog.cpp:596
+msgid "Foreground color:"
+msgstr "अग्रभूमि का रंगः"
+
+#: optiondialog.cpp:603
+msgid "Background color:"
+msgstr "पृष्ठभूमि का रंगः"
+
+#: optiondialog.cpp:612
+msgid "Diff background color:"
+msgstr "डिफ पृष्ठभूमि रंगः"
+
+#: optiondialog.cpp:620
+msgid "Color A:"
+msgstr "रंग अ:"
+
+#: optiondialog.cpp:628
+msgid "Color B:"
+msgstr "रंग ब:"
+
+#: optiondialog.cpp:636
+msgid "Color C:"
+msgstr "रंग स:"
+
+#: optiondialog.cpp:643
+msgid "Conflict color:"
+msgstr "विरोधाभास के लिए रंग:"
+
+#: optiondialog.cpp:651
+msgid "Current range background color:"
+msgstr "वर्तमान सीमा पृष्ठभूमि रंग:"
+
+#: optiondialog.cpp:659
+msgid "Current range diff background color:"
+msgstr "वर्तमान सीमा डिफ पृष्ठभूमि रंग:"
+
+#: optiondialog.cpp:666
+msgid "Color for manually aligned difference ranges:"
+msgstr ""
+
+#: optiondialog.cpp:672
+#, fuzzy
+msgid "Directory Comparison View:"
+msgstr "डिरेक्ट्री तुलना स्थिति"
+
+#: optiondialog.cpp:678
+msgid "Newest file color:"
+msgstr ""
+
+#: optiondialog.cpp:682
+msgid ""
+"Changing this color will only be effective when starting the next directory "
+"comparison."
+msgstr ""
+
+#: optiondialog.cpp:687
+msgid "Oldest file color:"
+msgstr ""
+
+#: optiondialog.cpp:695
+msgid "Middle age file color:"
+msgstr ""
+
+#: optiondialog.cpp:703
+msgid "Color for missing files:"
+msgstr ""
+
+#: optiondialog.cpp:717
+msgid "Editor"
+msgstr "संपादक"
+
+#: optiondialog.cpp:718
+msgid "Editor Behavior"
+msgstr "संपादक व्यवहार"
+
+#: optiondialog.cpp:732
+msgid "Tab inserts spaces"
+msgstr "टैब जगह प्रविष्ट करता है"
+
+#: optiondialog.cpp:735
+msgid ""
+"On: Pressing tab generates the appropriate number of spaces.\n"
+"Off: A tab character will be inserted."
+msgstr ""
+
+#: optiondialog.cpp:741
+msgid "Tab size:"
+msgstr "टैब आकारः"
+
+#: optiondialog.cpp:747
+msgid "Auto indentation"
+msgstr "स्वचालित हाशिया छोड़ना"
+
+#: optiondialog.cpp:750
+msgid "On: The indentation of the previous line is used for a new line.\n"
+msgstr ""
+
+#: optiondialog.cpp:754
+msgid "Auto copy selection"
+msgstr "स्वचालित नक़ल चयन"
+
+#: optiondialog.cpp:757
+msgid ""
+"On: Any selection is immediately written to the clipboard.\n"
+"Off: You must explicitely copy e.g. via Ctrl-C."
+msgstr ""
+
+#: optiondialog.cpp:768
+#, fuzzy
+#| msgid "&Window"
+msgid "Dos/Windows"
+msgstr "विंडो (&W)"
+
+#: optiondialog.cpp:769
+#, fuzzy
+msgid "Autodetect"
+msgstr "स्वचालित नक़ल चयन"
+
+#: optiondialog.cpp:772
+msgid ""
+"Sets the line endings for when an edited file is saved.\n"
+"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A"
+msgstr ""
+
+#: optiondialog.cpp:784
+#, fuzzy
+msgid "Diff"
+msgstr "के-डिफ3"
+
+#: optiondialog.cpp:785
+#, fuzzy
+msgid "Diff Settings"
+msgstr "डिफ तथा सम्मिलित करने का विन्यास"
+
+#: optiondialog.cpp:809
+#, fuzzy
+msgid "Treat as white space."
+msgstr "C/C++ कमेंट्स को सफेद जगह के रूप में समझें"
+
+#: optiondialog.cpp:811
+msgid "Ignore numbers"
+msgstr "संख्याओं को अनदेखा करें"
+
+#: optiondialog.cpp:814
+msgid ""
+"Ignore number characters during line matching phase. (Similar to Ignore "
+"white space.)\n"
+"Might help to compare files with numeric data."
+msgstr ""
+
+#: optiondialog.cpp:819
+msgid "Ignore C/C++ comments"
+msgstr "C/C++ कमेंट्स को अनदेखा करें"
+
+#: optiondialog.cpp:821
+msgid "Treat C/C++ comments like white space."
+msgstr "C/C++ कमेंट्स को सफेद जगह के रूप में समझें"
+
+#: optiondialog.cpp:825
+msgid "Ignore case"
+msgstr "केस अनदेखा करें"
+
+#: optiondialog.cpp:828
+msgid "Treat case differences like white space changes. ('a'<=>'A')"
+msgstr "केस डिफरेंसेस को सफेद जगह परिवर्तन के रूप में समझें. ('a'<=>'A')"
+
+#: optiondialog.cpp:832
+msgid "Preprocessor command:"
+msgstr "प्री-प्रोसेसर कमांड:"
+
+#: optiondialog.cpp:836
+msgid "User defined pre-processing. (See the docs for details.)"
+msgstr "उपयोक्ता पारिभाषित प्री-प्रोसेसिंग. (विवरण के लिए दस्तावेज़ देखें.)"
+
+#: optiondialog.cpp:839
+msgid "Line-matching preprocessor command:"
+msgstr "लाइन-मैचिंग प्री-प्रोसेसर कमांड:"
+
+#: optiondialog.cpp:843
+msgid ""
+"This pre-processor is only used during line matching.\n"
+"(See the docs for details.)"
+msgstr ""
+
+#: optiondialog.cpp:846
+msgid "Try hard (slower)"
+msgstr "गंभीर कोशिश करें (धीमा)"
+
+#: optiondialog.cpp:849
+msgid ""
+"Enables the --minimal option for the external diff.\n"
+"The analysis of big files will be much slower."
+msgstr ""
+
+#: optiondialog.cpp:854
+msgid "Align B and C for 3 input files"
+msgstr ""
+
+#: optiondialog.cpp:857
+msgid ""
+"Try to align B and C when comparing or merging three input files.\n"
+"Not recommended for merging because merge might get more complicated.\n"
+"(Default is off.)"
+msgstr ""
+
+#: optiondialog.cpp:870
+#, fuzzy
+msgid "Merge Settings"
+msgstr "डिफ तथा सम्मिलित करने का विन्यास"
+
+#: optiondialog.cpp:885
+msgid "Auto advance delay (ms):"
+msgstr "स्वचालित एडवान्स देरी (मि.से.):"
+
+#: optiondialog.cpp:890
+msgid ""
+"When in Auto-Advance mode the result of the current selection is shown \n"
+"for the specified time, before jumping to the next conflict. Range: 0-2000 ms"
+msgstr ""
+
+#: optiondialog.cpp:895
+#, fuzzy
+#| msgid "Show Window A"
+msgid "Show info dialogs"
+msgstr "विंडो अ दिखाएँ"
+
+#: optiondialog.cpp:897
+msgid "Show a dialog with information about the number of conflicts."
+msgstr ""
+
+#: optiondialog.cpp:900
+msgid "White space 2-file merge default:"
+msgstr "सफेद जगह 2-फ़ाइल सम्मिलित डिफ़ॉल्ट:"
+
+#: optiondialog.cpp:904 optiondialog.cpp:917
+msgid "Manual Choice"
+msgstr "हस्तचालित चुनाव"
+
+#: optiondialog.cpp:908 optiondialog.cpp:922
+msgid ""
+"Allow the merge algorithm to automatically select an input for white-space-"
+"only changes."
+msgstr ""
+
+#: optiondialog.cpp:913
+msgid "White space 3-file merge default:"
+msgstr "सफेद जगह 3-फ़ाइल सम्मिलित डिफ़ॉल्ट:"
+
+#: optiondialog.cpp:927
+msgid "Automatic Merge Regular Expression"
+msgstr ""
+
+#: optiondialog.cpp:940
+msgid ""
+"Regular expression for lines where KDiff3 should automatically choose one "
+"source.\n"
+"When a line with a conflict matches the regular expression then\n"
+"- if available - C, otherwise B will be chosen."
+msgstr ""
+
+#: optiondialog.cpp:946
+msgid "Run regular expression auto merge on merge start"
+msgstr ""
+
+#: optiondialog.cpp:948
+msgid ""
+"Run the merge for auto merge regular expressions\n"
+"immediately when a merge starts.\n"
+msgstr ""
+
+#: optiondialog.cpp:953
+msgid "Version Control History Merging"
+msgstr ""
+
+#: optiondialog.cpp:966
+msgid ""
+"Regular expression for the start of the version control history entry.\n"
+"Usually this line contains the \"$Log$\" keyword.\n"
+"Default value: \".*\\$Log.*\\$.*\""
+msgstr ""
+
+#: optiondialog.cpp:984
+msgid ""
+"A version control history entry consists of several lines.\n"
+"Specify the regular expression to detect the first line (without the leading "
+"comment).\n"
+"Use parentheses to group the keys you want to use for sorting.\n"
+"If left empty, then KDiff3 assumes that empty lines separate history "
+"entries.\n"
+"See the documentation for details."
+msgstr ""
+
+#: optiondialog.cpp:992
+msgid "History merge sorting"
+msgstr ""
+
+#: optiondialog.cpp:994
+msgid "Sort version control history by a key."
+msgstr ""
+
+#: optiondialog.cpp:1004
+msgid "History entry start sort key order:"
+msgstr ""
+
+#: optiondialog.cpp:1008
+msgid ""
+"Each pair of parentheses used in the regular expression for the history "
+"start entry\n"
+"groups a key that can be used for sorting.\n"
+"Specify the list of keys (that are numbered in order of occurrence\n"
+"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n"
+"If left empty, then no sorting will be done.\n"
+"See the documentation for details."
+msgstr ""
+
+#: optiondialog.cpp:1019
+msgid "Merge version control history on merge start"
+msgstr ""
+
+#: optiondialog.cpp:1021
+msgid "Run version control history automerge on merge start."
+msgstr ""
+
+#: optiondialog.cpp:1025
+#, fuzzy
+msgid "Max number of history entries:"
+msgstr "सबडिरेक्ट्रीज़ की संख्या:"
+
+#: optiondialog.cpp:1028
+msgid "Cut off after specified number. Use -1 for infinite number of entries."
+msgstr ""
+
+#: optiondialog.cpp:1032
+msgid "Test your regular expressions"
+msgstr ""
+
+#: optiondialog.cpp:1037
+msgid "Irrelevant merge command:"
+msgstr ""
+
+#: optiondialog.cpp:1041
+msgid ""
+"If specified this script is run after automerge\n"
+"when no other relevant changes were detected.\n"
+"Called with the parameters: filename1 filename2 filename3"
+msgstr ""
+
+#: optiondialog.cpp:1047
+msgid "Auto save and quit on merge without conflicts"
+msgstr ""
+
+#: optiondialog.cpp:1050
+msgid ""
+"If KDiff3 was started for a file-merge from the command line and all\n"
+"conflicts are solvable without user interaction then automatically save and "
+"quit.\n"
+"(Similar to command line option \"--auto\".)"
+msgstr ""
+
+#: optiondialog.cpp:1061 optiondialog.cpp:1062
+#, fuzzy
+#| msgid "&Directory"
+msgid "Directory"
+msgstr "डिरेक्ट्री (&D)"
+
+#: optiondialog.cpp:1075
+msgid "Recursive directories"
+msgstr "डिरेक्ट्रीज़ रिकर्सिव करें"
+
+#: optiondialog.cpp:1077
+msgid "Whether to analyze subdirectories or not."
+msgstr "क्या सबडिरेक्ट्रीज़ को विश्लेषण करना है या नहीं. "
+
+#: optiondialog.cpp:1079
+msgid "File pattern(s):"
+msgstr "फ़ाइल पैटर्न:"
+
+#: optiondialog.cpp:1084
+msgid ""
+"Pattern(s) of files to be analyzed. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1090
+msgid "File-anti-pattern(s):"
+msgstr "फ़ाइल-एन्टी-पैटर्न:"
+
+#: optiondialog.cpp:1095
+msgid ""
+"Pattern(s) of files to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1101
+msgid "Dir-anti-pattern(s):"
+msgstr "डिर-एन्टी-पैटर्न:"
+
+#: optiondialog.cpp:1106
+msgid ""
+"Pattern(s) of directories to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1112
+msgid "Use .cvsignore"
+msgstr ".cvsignore का उपयोग करें"
+
+#: optiondialog.cpp:1115
+msgid ""
+"Extends the antipattern to anything that would be ignored by CVS.\n"
+"Via local \".cvsignore\" files this can be directory specific."
+msgstr ""
+
+#: optiondialog.cpp:1120
+msgid "Find hidden files and directories"
+msgstr "छुपी फ़ाइलों तथा डिरेक्ट्रीज़ ढूंढें"
+
+#: optiondialog.cpp:1123
+msgid "Finds files and directories with the hidden attribute."
+msgstr "हिडन एट्रिब्यूट वाली फ़ाइल तथा डिरेक्ट्रीज़ को ढूंढें."
+
+#: optiondialog.cpp:1125
+msgid "Finds files and directories starting with '.'."
+msgstr "'.'. से प्रारंभ हो रहे फ़ाइल तथा डिरेक्ट्रीज़ को ढूंढें"
+
+#: optiondialog.cpp:1129
+msgid "Follow file links"
+msgstr "फ़ाइल कड़ियों का अनुसरण करें"
+
+#: optiondialog.cpp:1132
+msgid ""
+"On: Compare the file the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+
+#: optiondialog.cpp:1137
+msgid "Follow directory links"
+msgstr "डिरेक्ट्री कड़ियों का अनुसरण करें"
+
+#: optiondialog.cpp:1140
+msgid ""
+"On: Compare the directory the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+
+#: optiondialog.cpp:1156
+msgid "Case sensitive filename comparison"
+msgstr ""
+
+#: optiondialog.cpp:1159
+msgid ""
+"The directory comparison will compare files or directories when their names "
+"match.\n"
+"Set this option if the case of the names must match. (Default for Windows is "
+"off, otherwise on.)"
+msgstr ""
+
+#: optiondialog.cpp:1163
+msgid "File Comparison Mode"
+msgstr "फ़ाइल तुलना मोड"
+
+#: optiondialog.cpp:1169
+msgid "Binary comparison"
+msgstr "बाइनरी तुलना"
+
+#: optiondialog.cpp:1170
+msgid "Binary comparison of each file. (Default)"
+msgstr "प्रत्येक फ़ाइल की बाइनरी तुलना. (डिफ़ॉल्ट)"
+
+#: optiondialog.cpp:1173
+msgid "Full analysis"
+msgstr "पूर्ण विश्लेषण"
+
+#: optiondialog.cpp:1174
+msgid ""
+"Do a full analysis and show statistics information in extra columns.\n"
+"(Slower than a binary comparison, much slower for binary files.)"
+msgstr ""
+
+#: optiondialog.cpp:1178
+#, fuzzy
+msgid "Trust the size and modification date (unsafe)"
+msgstr "परिवर्धन तारीख पर भरोसा करें (असुरक्षित)"
+
+#: optiondialog.cpp:1179
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"Files with equal contents but different modification dates will appear as "
+"different.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+
+#: optiondialog.cpp:1184
+#, fuzzy
+msgid ""
+"Trust the size and date, but use binary comparison if date does not match "
+"(unsafe)"
+msgstr "परिवर्धन तारीख पर भरोसा करें (असुरक्षित)"
+
+#: optiondialog.cpp:1185
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"If the dates are not equal but the sizes are, use binary comparison.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+
+#: optiondialog.cpp:1190
+msgid "Trust the size (unsafe)"
+msgstr "आकार पर भरोसा करें (असुरक्षित)"
+
+#: optiondialog.cpp:1191
+msgid ""
+"Assume that files are equal if their file lengths are equal.\n"
+"Useful for big directories or slow networks when the date is modified during "
+"download."
+msgstr ""
+
+#: optiondialog.cpp:1199
+msgid "Synchronize directories"
+msgstr "डिरेक्ट्रीज़ सिंक्रोनाइज़ करें"
+
+#: optiondialog.cpp:1202
+msgid ""
+"Offers to store files in both directories so that\n"
+"both directories are the same afterwards.\n"
+"Works only when comparing two directories without specifying a destination."
+msgstr ""
+
+#: optiondialog.cpp:1208
+#, fuzzy
+msgid "White space differences considered equal"
+msgstr "सफेद जगह 3-फ़ाइल सम्मिलित डिफ़ॉल्ट:"
+
+#: optiondialog.cpp:1211
+msgid ""
+"If files differ only by white space consider them equal.\n"
+"This is only active when full analysis is chosen."
+msgstr ""
+
+#: optiondialog.cpp:1217
+msgid "Copy newer instead of merging (unsafe)"
+msgstr "सम्मिलित करने के बजाए नए की नक़ल करें (असुरक्षित)"
+
+#: optiondialog.cpp:1220
+msgid ""
+"Don't look inside, just take the newer file.\n"
+"(Use this only if you know what you are doing!)\n"
+"Only effective when comparing two directories."
+msgstr ""
+
+#: optiondialog.cpp:1225
+msgid "Backup files (.orig)"
+msgstr "बैकअप फ़ाइलें (.orig)"
+
+#: optiondialog.cpp:1228
+msgid ""
+"If a file would be saved over an old file, then the old file\n"
+"will be renamed with a '.orig' extension instead of being deleted."
+msgstr ""
+
+#: optiondialog.cpp:1301 optiondialog.cpp:1302
+msgid "Regional Settings"
+msgstr "क्षेत्रीय विन्यास"
+
+#: optiondialog.cpp:1402
+msgid "Language (restart required)"
+msgstr "भाषा (फिर से प्रारंभ करना आवश्यक है)"
+
+#: optiondialog.cpp:1445
+msgid ""
+"Choose the language of the GUI strings or \"Auto\".\n"
+"For a change of language to take place, quit and restart KDiff3."
+msgstr ""
+
+#: optiondialog.cpp:1463
+msgid "Use the same encoding for everything:"
+msgstr ""
+
+#: optiondialog.cpp:1466
+msgid ""
+"Enable this allows to change all encodings by changing the first only.\n"
+"Disable this if different individual settings are needed."
+msgstr ""
+
+#: optiondialog.cpp:1471
+#, fuzzy
+msgid "Note: Local Encoding is "
+msgstr "स्थानीय एनकोडिंग इस्तेमाल करें"
+
+#: optiondialog.cpp:1475
+msgid "File Encoding for A:"
+msgstr ""
+
+#: optiondialog.cpp:1481
+msgid ""
+"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n"
+"If the file is not Unicode then the selected encoding will be used as "
+"fallback.\n"
+"(Unicode detection depends on the first bytes of a file.)"
+msgstr ""
+
+#: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503
+msgid "Auto Detect Unicode"
+msgstr ""
+
+#: optiondialog.cpp:1490
+msgid "File Encoding for B:"
+msgstr ""
+
+#: optiondialog.cpp:1499
+msgid "File Encoding for C:"
+msgstr ""
+
+#: optiondialog.cpp:1508
+msgid "File Encoding for Merge Output and Saving:"
+msgstr ""
+
+#: optiondialog.cpp:1512
+#, fuzzy
+msgid "Auto Select"
+msgstr "स्वचालित नक़ल चयन"
+
+#: optiondialog.cpp:1515
+msgid ""
+"If enabled then the encoding from the input files is used.\n"
+"In ambiguous cases a dialog will ask the user to choose the encoding for "
+"saving."
+msgstr ""
+
+#: optiondialog.cpp:1519
+msgid "File Encoding for Preprocessor Files:"
+msgstr ""
+
+#: optiondialog.cpp:1530
+msgid "Right To Left Language"
+msgstr ""
+
+#: optiondialog.cpp:1533
+msgid ""
+"Some languages are read from right to left.\n"
+"This setting will change the viewer and editor accordingly."
+msgstr ""
+
+#: optiondialog.cpp:1548
+#, fuzzy
+msgid "Integration"
+msgstr "ऑपरेशन"
+
+#: optiondialog.cpp:1549
+#, fuzzy
+msgid "Integration Settings"
+msgstr "क्षेत्रीय विन्यास"
+
+#: optiondialog.cpp:1563
+msgid "Command line options to ignore:"
+msgstr ""
+
+#: optiondialog.cpp:1568
+msgid ""
+"List of command line options that should be ignored when KDiff3 is used by "
+"other tools.\n"
+"Several values can be specified if separated via ';'\n"
+"This will suppress the \"Unknown option\" error."
+msgstr ""
+
+#: optiondialog.cpp:1575
+msgid "Quit also via Escape key"
+msgstr ""
+
+#: optiondialog.cpp:1578
+msgid ""
+"Fast method to exit.\n"
+"For those who are used to using the Escape key."
+msgstr ""
+
+#: optiondialog.cpp:1583
+msgid "Integrate with ClearCase"
+msgstr ""
+
+#: optiondialog.cpp:1586
+msgid ""
+"Integrate with Rational ClearCase from IBM.\n"
+"Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n"
+"(Only enabled when ClearCase \"bin\" directory is in the path.)"
+msgstr ""
+
+#: optiondialog.cpp:1592
+msgid "Remove ClearCase Integration"
+msgstr ""
+
+#: optiondialog.cpp:1595
+msgid ""
+"Restore the old \"map\" file from before doing the ClearCase integration."
+msgstr ""
+
+#: optiondialog.cpp:1680
+msgid "Incompatible Font"
+msgstr "फ़ॉन्ट असंगत है"
+
+#: optiondialog.cpp:1681
+msgid "Continue at Own Risk"
+msgstr "अपने स्वयं के जोखिम पर जारी रखें"
+
+#: optiondialog.cpp:1682
+msgid "Select Another Font"
+msgstr "अन्य फ़ॉन्ट चुनें"
+
+#: optiondialog.cpp:1717
+msgid "This resets all options. Not only those of the current topic."
+msgstr "यह सभी विकल्पों को रीसेट करता है. सिर्फ उनको ही नहीं जो मौजूदा विषय में हैं. "
+
+#: pdiff.cpp:260
+msgid "PreprocessorCmd: "
+msgstr "प्री-प्रोसेसर-कमांड:"
+
+#: pdiff.cpp:265
+msgid "The following option(s) you selected might change data:\n"
+msgstr "निम्न विकल्प जो आपने चुने हैं वे डाटा को बदल सकते हैं:\n"
+
+#: pdiff.cpp:266
+msgid ""
+"\n"
+"Most likely this is not wanted during a merge.\n"
+"Do you want to disable these settings or continue with these settings active?"
+msgstr ""
+
+#: pdiff.cpp:268
+msgid "Option Unsafe for Merging"
+msgstr "सम्मिलित करने के लिए विकल्प असुरक्षित हैं"
+
+#: pdiff.cpp:269
+msgid "Use These Options During Merge"
+msgstr "इन विकल्पों का उपयोग सम्मिलित करने के दौरान करें"
+
+#: pdiff.cpp:270
+msgid "Disable Unsafe Options"
+msgstr "असुरक्षित विकल्प अक्षम करें"
+
+#: pdiff.cpp:300
+msgid "Loading A"
+msgstr "अ लोड किया जा रहा है"
+
+#: pdiff.cpp:304
+msgid "Loading B"
+msgstr "ब लोड किया जा रहा है"
+
+#: pdiff.cpp:321 pdiff.cpp:347
+msgid "Diff: A <-> B"
+msgstr "डिफ: अ <-> ब"
+
+#: pdiff.cpp:327 pdiff.cpp:372
+msgid "Linediff: A <-> B"
+msgstr "लाइनडिफ: अ <-> ब"
+
+#: pdiff.cpp:338
+msgid "Loading C"
+msgstr "स लोड किया जा रहा है"
+
+#: pdiff.cpp:350
+msgid "Diff: B <-> C"
+msgstr "डिफ: ब <-> स"
+
+#: pdiff.cpp:353
+msgid "Diff: A <-> C"
+msgstr "डिफ: अ <-> स"
+
+#: pdiff.cpp:375
+msgid "Linediff: B <-> C"
+msgstr "लाइनडिफ: ब <-> स"
+
+#: pdiff.cpp:378
+msgid "Linediff: A <-> C"
+msgstr "लाइनडिफ: अ <-> स"
+
+#: pdiff.cpp:534
+#, fuzzy
+msgid "All input files contain the same text, but are not binary equal."
+msgstr "सभी इनपुट फ़ाइलें एक ही पाठ रखे हैं."
+
+#: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541
+#, fuzzy, kde-format
+msgid "Files %1 and %2 have equal text, but are not binary equal. \n"
+msgstr "फ़ाइलें अ तथा ब बाइनरी समान हैं.\n"
+
+#: pdiff.cpp:551
+msgid ""
+"Some inputfiles don't seem to be pure textfiles.\n"
+"Note that the KDiff3-merge was not meant for binary data.\n"
+"Continue at your own risk."
+msgstr ""
+
+#: pdiff.cpp:566
+#, kde-format
+msgid ""
+"Some input characters could not be converted to valid unicode.\n"
+"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n"
+"Don't save the result if unsure. Continue at your own risk.\n"
+"Affected input files are in %1."
+msgstr ""
+
+#: pdiff.cpp:1080
+msgid "Abort"
+msgstr "छोड़ें"
+
+#: pdiff.cpp:1087 pdiff.cpp:1175
+msgid "Opening files..."
+msgstr "फ़ाइलें खोली जा रही हैं..."
+
+#: pdiff.cpp:1152 pdiff.cpp:1223
+msgid "File open error"
+msgstr "फ़ाइल खोलने में त्रुटि"
+
+#: pdiff.cpp:1255
+msgid "Cutting selection..."
+msgstr "चयन को काटा जा रहा है..."
+
+#: pdiff.cpp:1276
+msgid "Copying selection to clipboard..."
+msgstr "चुने हुए की नकल क्लिपबोर्ड पर बनाया जा रहा है..."
+
+#: pdiff.cpp:1292
+msgid "Inserting clipboard contents..."
+msgstr "क्लिपबोर्ड के वस्तुओं को प्रविष्ट किया जा रहा है..."
+
+#: pdiff.cpp:1814
+msgid "Save && Continue"
+msgstr "सहेजें तथा जारी रखें"
+
+#: pdiff.cpp:1815
+msgid "Continue Without Saving"
+msgstr "सहेजे बगैर जारी रखें"
+
+#: pdiff.cpp:2018
+msgid "Search complete."
+msgstr "ढूंढना सम्पन्न"
+
+#: pdiff.cpp:2018
+msgid "Search Complete"
+msgstr "ढूंढना सम्पन्न"
+
+#: pdiff.cpp:2252
+msgid "Nothing is selected in either diff input window."
+msgstr ""
+
+#: pdiff.cpp:2252
+#, fuzzy
+msgid "Error while adding manual diff range"
+msgstr "डिरेक्ट्री बनाने के दौरान त्रुटि."
+
+#: kdiff3_shell.cpp:76
+msgid ""
+"Could not initialize the KDiff3 part.\n"
+"This usually happens due to an installation problem. Please read the README-"
+"file in the source package for details."
+msgstr ""
+
+#: rc.cpp:1
+msgctxt "NAME OF TRANSLATORS"
+msgid "Your names"
+msgstr ""
+
+#: rc.cpp:2
+msgctxt "EMAIL OF TRANSLATORS"
+msgid "Your emails"
+msgstr ""
+
+#. i18n: file: kdiff3_part.rc:4
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:5
+msgid "&KDiff3"
+msgstr "के-डिफ3 (&K)"
+
+#. i18n: file: kdiff3_part.rc:13
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:8
+msgid "Configure KDiff3"
+msgstr "के-डिफ3 को कॉन्फ़िगर करें"
+
+#. i18n: file: kdiff3_part.rc:16
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:11
+msgid "KDiff3"
+msgstr "के-डिफ3"
+
+#. i18n: file: kdiff3_shell.rc:106
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:38
+msgid "Main Toolbar"
+msgstr ""
+
+#~ msgid "Directory Merge"
+#~ msgstr "डिरेक्ट्री सम्मिलित करें"
+
+#~ msgid "C&ontinue"
+#~ msgstr "जारी रखें (&o)"
+
+#~ msgid ""
+#~ "_: NAME OF TRANSLATORS\n"
+#~ "Your names"
+#~ msgstr "रविशंकर श्रीवास्तव"
+
+#~ msgid ""
+#~ "_: EMAIL OF TRANSLATORS\n"
+#~ "Your emails"
+#~ msgstr "raviratlami@yahoo.com"
+
+#~ msgid "Enables/disables the toolbar"
+#~ msgstr "औज़ार-पट्टी सक्षम/अक्षम करें"
+
+#~ msgid "Files A and B are binary equal.\n"
+#~ msgstr "फ़ाइलें अ तथा ब बाइनरी समान हैं.\n"
+
+#~ msgid "Files A and C are binary equal.\n"
+#~ msgstr "फ़ाइलें अ तथा स बाइनरी समान हैं.\n"
+
+#~ msgid "Files A and C have equal text. \n"
+#~ msgstr "फ़ाइलें अ तथा स में पाठ समान हैं.\n"
+
+#~ msgid "Files B and C are binary equal.\n"
+#~ msgstr "फ़ाइलें ब तथा स बाइनरी समान हैं.\n"
+
+#~ msgid "Files B and C have equal text. \n"
+#~ msgstr "फ़ाइलें ब तथा स में पाठ समान हैं.\n"
+
+#~ msgid "Preserve carriage return"
+#~ msgstr "कैरिज रिटर्न बनाए रखें"
+
+#, fuzzy
+#~ msgid "Diff and Merge"
+#~ msgstr "डिफ तथा सम्मिलित"
+
+#, fuzzy
+#~ msgid "Save Directory Merge State ..."
+#~ msgstr "डिरेक्ट्री सम्मिलित करें"
+
+#, fuzzy
+#~ msgid "Load Directory Merge State ..."
+#~ msgstr "डिरेक्ट्री सम्मिलित करें"
+
+#, fuzzy
+#~ msgid "Synchronize Directories"
+#~ msgstr "डिरेक्ट्रीज़ सिंक्रोनाइज़ करें"
+
+#, fuzzy
+#~ msgid "Copy Newer Files Instead of Merging"
+#~ msgstr "सम्मिलित करने के बजाए नए की नक़ल करें (असुरक्षित)"
+
+#~ msgid "List only deltas"
+#~ msgstr "सिर्फ डेल्टाज़ की सूची दें"
+
+#~ msgid "Files and directories without change will not appear in the list."
+#~ msgstr "बिना परिवर्तनों के फ़ाइल तथा डिरेक्ट्रीज़ सूची में प्रकट नहीं होंगे."
+
+#, fuzzy
+#~ msgid "no selection"
+#~ msgstr "स्वचालित नक़ल चयन"
+
+#, fuzzy
+#~ msgid "Manually match lines"
+#~ msgstr "हस्तचालित चुनाव"
+
+#~ msgid "Has no effect. For compatibility with certain tools."
+#~ msgstr "कोई प्रभाव नहीं. कुछ औज़ारों के साथ कम्पेटिबिलिटी के लिए."
+
+#~ msgid "For compatibility with certain tools."
+#~ msgstr "कुछ औज़ारों के साथ कम्पेटिबिलिटी के लिए."
+
+#~ msgid "Colors in Editor & Diff Output"
+#~ msgstr "संपादक तथा डिफ़ आउटपुट में रंग"
+
+#~ msgid "Text Diff and Merge Tool"
+#~ msgstr "पाठ डिफ तथा सम्मिलित करने का औज़ार"
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "File not saved."
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "फ़ाइल सहेजा नहीं गया."
+
+#~ msgid "Out of memory while preparing to save."
+#~ msgstr "सहेजने के लिए तैयारी करने के दौरान मेमोरी कम पड़ गई."
diff --git a/po/hne/CMakeLists.txt b/po/hne/CMakeLists.txt
new file mode 100644 (file)
index 0000000..a9b091c
--- /dev/null
@@ -0,0 +1,2 @@
+file(GLOB _po_files *.po)
+GETTEXT_PROCESS_PO_FILES(hne ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
diff --git a/po/hne/kdiff3.po b/po/hne/kdiff3.po
new file mode 100644 (file)
index 0000000..985e7e6
--- /dev/null
@@ -0,0 +1,3054 @@
+#
+# Ravishankar Shrivastava <raviratlami@aol.in>, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2009-03-20 10:56+0530\n"
+"Last-Translator: Ravishankar Shrivastava <raviratlami@aol.in>\n"
+"Language-Team: Hindi <kde-i18n-doc@lists.kde.org>\n"
+"Language: hi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Hindi\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"X-Generator: Lokalize 0.3\n"
+
+#: kreplacements/kreplacements.h:105
+msgid "Continue"
+msgstr "जारी रखव"
+
+#: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158
+#: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512
+msgid "Cancel"
+msgstr " खारिज करव"
+
+#: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631
+msgid "Quit"
+msgstr "बाहिर जाव"
+
+#: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339
+msgid "Ok"
+msgstr "ठीक"
+
+#: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715
+msgid "Help"
+msgstr "मदद"
+
+#: kreplacements/kreplacements.cpp:185
+msgid "Defaults"
+msgstr "डिफाल्ट"
+
+#. i18n: file: kdiff3_shell.rc:4
+#. i18n: ectx: Menu (file)
+#: kreplacements/kreplacements.cpp:296 rc.cpp:14
+msgid "&File"
+msgstr "फाइल (&F)"
+
+#: kreplacements/kreplacements.cpp:297
+msgid "&Edit"
+msgstr "संपादन (&E)"
+
+#. i18n: file: kdiff3_shell.rc:7
+#. i18n: ectx: Menu (directory)
+#: kreplacements/kreplacements.cpp:298 rc.cpp:17
+msgid "&Directory"
+msgstr "डिरेक्टरी (&D)"
+
+#. i18n: file: kdiff3_shell.rc:50
+#. i18n: ectx: Menu (movement)
+#: kreplacements/kreplacements.cpp:301 rc.cpp:26
+msgid "&Movement"
+msgstr "गतिविधि (&M)"
+
+#. i18n: file: kdiff3_shell.rc:61
+#. i18n: ectx: Menu (diff)
+#: kreplacements/kreplacements.cpp:302 rc.cpp:29
+msgid "D&iffview"
+msgstr "डिफव्यू (&i)"
+
+#. i18n: file: kdiff3_shell.rc:73
+#. i18n: ectx: Menu (merge)
+#: kreplacements/kreplacements.cpp:303 rc.cpp:32
+msgid "&Merge"
+msgstr "सम्मिलित करव (&M)"
+
+#. i18n: file: kdiff3_shell.rc:95
+#. i18n: ectx: Menu (window)
+#: kreplacements/kreplacements.cpp:304 rc.cpp:35
+msgid "&Window"
+msgstr "विंडो (&W)"
+
+#: kreplacements/kreplacements.cpp:305
+msgid "&Settings"
+msgstr "सेटिंग (&S)"
+
+#: kreplacements/kreplacements.cpp:306
+msgid "&Help"
+msgstr "मदद (&H)"
+
+#: kreplacements/kreplacements.cpp:353
+msgid "&About"
+msgstr "परिचय (&A)"
+
+#: kreplacements/kreplacements.cpp:369
+msgid "A&uthor"
+msgstr "लेखकः (&u)"
+
+#: kreplacements/kreplacements.cpp:383
+msgid "&Thanks To"
+msgstr "ए मन ल धन्यवाद (&T)"
+
+#. i18n: file: kdiff3_shell.rc:30
+#. i18n: ectx: Menu (dir_current_merge_menu)
+#: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497
+#: rc.cpp:20
+msgid "Current Item Merge Operation"
+msgstr "अभी हाल के चीज सम्मिलित करे के काम"
+
+#. i18n: file: kdiff3_shell.rc:38
+#. i18n: ectx: Menu (dir_current_sync_menu)
+#: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498
+#: rc.cpp:23
+msgid "Current Item Sync Operation"
+msgstr "अभी हाल के चीज सिंक आपरेसन"
+
+#: kreplacements/kreplacements.cpp:597
+msgid "Open"
+msgstr "खोलव"
+
+#: kreplacements/kreplacements.cpp:606
+msgid "Save"
+msgstr "सहेजव"
+
+#: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720
+msgid "Save As..."
+msgstr "अइसन सहेजव..."
+
+#: kreplacements/kreplacements.cpp:623
+msgid "Print..."
+msgstr "छापव..."
+
+#: kreplacements/kreplacements.cpp:639
+msgid "Cut"
+msgstr "काटव"
+
+#: kreplacements/kreplacements.cpp:647
+msgid "Copy"
+msgstr "नकल"
+
+#: kreplacements/kreplacements.cpp:655
+msgid "Paste"
+msgstr "चिपकाव"
+
+#: kreplacements/kreplacements.cpp:663
+msgid "Select All"
+msgstr "सब्बो चुनव"
+
+#: kreplacements/kreplacements.cpp:671
+msgid "Show Toolbar"
+msgstr "औजार-पट्टी देखाव"
+
+#: kreplacements/kreplacements.cpp:679
+#, fuzzy
+msgid "Show &Status Bar"
+msgstr "स्थिति पट्टी देखाव (&S)"
+
+#: kreplacements/kreplacements.cpp:687
+#, kde-format
+msgid "&Configure %1..."
+msgstr "कान्फिगर %1 (&C)..."
+
+#: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707
+msgid "About"
+msgstr "परिचय"
+
+#: kreplacements/kreplacements.cpp:722
+msgid "Find"
+msgstr "खोजव"
+
+#: kreplacements/kreplacements.cpp:730
+msgid "Find Next"
+msgstr "अगला खोजव"
+
+#: kreplacements/kreplacements.cpp:750
+msgid "Select Font"
+msgstr "फोंट चुनव"
+
+#: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676
+msgid ""
+"You selected a variable width font.\n"
+"\n"
+"Because this program doesn't handle variable width fonts\n"
+"correctly, you might experience problems while editing.\n"
+"\n"
+"Do you want to continue or do you want to select another font."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:792
+msgid "Incompatible font."
+msgstr "फोंट असंगत हे"
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Continue at my own risk"
+msgstr "अपने अपन के जोखिम मं जारी रखव"
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Select another font"
+msgstr "अऊ दूसर फोंट चुनव"
+
+#: kreplacements/kreplacements.cpp:1134
+msgid "For more documentation, see the help-menu or the subdirectory doc."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "KDiff3-Usage"
+msgstr "के-डिफ3 उपयोग"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Ignore"
+msgstr "अनदेखा करव"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Exit"
+msgstr "बाहिर"
+
+#: diff.cpp:251
+msgid "Writing clipboard data to temp file failed."
+msgstr "क्लिपबोर्ड डाटा ल अस्थाई फाइल मं लिखना फेल."
+
+#: diff.cpp:255
+msgid "From Clipboard"
+msgstr "क्लिपबोर्ड से"
+
+#: diff.cpp:471
+msgid "Expecting space after closing quotation mark."
+msgstr ""
+
+#: diff.cpp:474
+msgid "Not matching quotation marks."
+msgstr ""
+
+#: diff.cpp:496
+msgid "Unexpected quotation mark within argument."
+msgstr ""
+
+#: diff.cpp:503
+msgid "No program specified."
+msgstr ""
+
+#: diff.cpp:605
+#, kde-format
+msgid ""
+"Preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The preprocessing command will be disabled now."
+msgstr ""
+
+#: diff.cpp:653
+#, kde-format
+msgid ""
+"The line-matching-preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The line-matching-preprocessing command will be disabled now."
+msgstr ""
+
+#: diff.cpp:1776 diff.cpp:1790
+msgid ""
+"Data loss error:\n"
+"If it is reproducible please contact the author.\n"
+msgstr ""
+
+#: diff.cpp:1778 diff.cpp:1792
+msgid "Severe Internal Error"
+msgstr "गंभीर अंदर के गलती"
+
+#: directorymergewindow.cpp:136
+msgid "Mix of links and normal files."
+msgstr "संकली के मिलावटें अउ सामान्य फाइल मन ल."
+
+#: directorymergewindow.cpp:143
+msgid "Link: "
+msgstr "कड़ी"
+
+#: directorymergewindow.cpp:151
+msgid "Size. "
+msgstr "आकार."
+
+#: directorymergewindow.cpp:164 directorymergewindow.cpp:174
+msgid "Date & Size: "
+msgstr "तारीक अउ आकार:"
+
+#: directorymergewindow.cpp:184 directorymergewindow.cpp:190
+#, kde-format
+msgid "Creating temp copy of %1 failed."
+msgstr "%1 के अस्थाई नकल बनाना फेल."
+
+#: directorymergewindow.cpp:201 directorymergewindow.cpp:209
+#, kde-format
+msgid "Opening %1 failed."
+msgstr "%1 ल खोलना फेल"
+
+#: directorymergewindow.cpp:213
+msgid "Comparing file..."
+msgstr "फाइल के तुलना करत हे ..."
+
+#: directorymergewindow.cpp:223 directorymergewindow.cpp:229
+#, kde-format
+msgid "Error reading from %1"
+msgstr "%1 से पढ़े मं गलती"
+
+#: directorymergewindow.cpp:358
+msgid "Name"
+msgstr "नाम"
+
+#: directorymergewindow.cpp:358
+msgid "Operation"
+msgstr "आपरेसन"
+
+#: directorymergewindow.cpp:358
+msgid "Status"
+msgstr "स्थिति"
+
+#: directorymergewindow.cpp:359
+msgid "Unsolved"
+msgstr "हल नइ"
+
+#: directorymergewindow.cpp:359
+msgid "Solved"
+msgstr "हल कर ले गिस"
+
+#: directorymergewindow.cpp:359
+msgid "Nonwhite"
+msgstr "सफेद-नइ"
+
+#: directorymergewindow.cpp:359
+msgid "White"
+msgstr "सफेद"
+
+#: directorymergewindow.cpp:388
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort "
+"the merge and rescan the directory?"
+msgstr ""
+
+#: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655
+#: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823
+msgid "Warning"
+msgstr "चेतावनी"
+
+#: directorymergewindow.cpp:390 directorymergewindow.cpp:2965
+msgid "Rescan"
+msgstr "री-स्कैन"
+
+#: directorymergewindow.cpp:391 pdiff.cpp:1081
+msgid "Continue Merging"
+msgstr "मिलाय जाना जारी रखव"
+
+#: directorymergewindow.cpp:548
+msgid "Opening of directories failed:"
+msgstr "डिरेक्टरीज खोलना फेल:"
+
+#: directorymergewindow.cpp:551
+#, kde-format
+msgid "Dir A \"%1\" does not exist or is not a directory.\n"
+msgstr "डिरेक्टरी अ \"%1\" या तो मौजूद नइ हे या फिर वो डिरेक्टरी नइ हे.\n"
+
+#: directorymergewindow.cpp:554
+#, kde-format
+msgid "Dir B \"%1\" does not exist or is not a directory.\n"
+msgstr "डिरेक्टरी ब \"%1\" या तो मौजूद नइ हे या फिर वो डिरेक्टरी नइ हे.\n"
+
+#: directorymergewindow.cpp:557
+#, kde-format
+msgid "Dir C \"%1\" does not exist or is not a directory.\n"
+msgstr "डिरेक्टरी स \"%1\" या तो मौजूद नइ हे या फिर वो डिरेक्टरी नइ हे.\n"
+
+#: directorymergewindow.cpp:559
+msgid "Directory Open Error"
+msgstr "डिरेक्टरी खोले मं गलती"
+
+#: directorymergewindow.cpp:567
+msgid ""
+"The destination directory must not be the same as A or B when three "
+"directories are merged.\n"
+"Check again before continuing."
+msgstr ""
+
+#: directorymergewindow.cpp:569
+msgid "Parameter Warning"
+msgstr "पैरामीटर चेतावनी"
+
+#: directorymergewindow.cpp:574
+msgid "Scanning directories..."
+msgstr "डिरेक्टरीज स्कैन करत हे..."
+
+#: directorymergewindow.cpp:607
+msgid "Reading Directory A"
+msgstr "डिरेक्टरी अ ल पढ़त हे"
+
+#: directorymergewindow.cpp:629
+msgid "Reading Directory B"
+msgstr "डिरेक्टरी ब ल पढ़त हे"
+
+#: directorymergewindow.cpp:651
+msgid "Reading Directory C"
+msgstr "डिरेक्टरी स ल पढ़त हे"
+
+#: directorymergewindow.cpp:677
+msgid "Some subdirectories were not readable in"
+msgstr "कुछ सबडिरेक्टरीज ये मां पढ़े नइ जा सके वाले हे"
+
+#: directorymergewindow.cpp:682
+msgid "Check the permissions of the subdirectories."
+msgstr "सबडिरेक्टरीज के अनुमति जांचव."
+
+#: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737
+#: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233
+#: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328
+msgid "Ready."
+msgstr "तैयार."
+
+#: directorymergewindow.cpp:735
+msgid "Directory Comparison Status"
+msgstr "डिरेक्टरी तुलना स्थिति"
+
+#: directorymergewindow.cpp:736
+msgid "Number of subdirectories:"
+msgstr "सबडिरेक्टरीज के संख्या:"
+
+#: directorymergewindow.cpp:737
+msgid "Number of equal files:"
+msgstr "समान फाइल मन के संख्या:"
+
+#: directorymergewindow.cpp:738
+msgid "Number of different files:"
+msgstr "भिन्न फाइल मन के संख्या:"
+
+#: directorymergewindow.cpp:741
+msgid "Number of manual merges:"
+msgstr "हस्तचालित सम्मिलित करे के संख्या:"
+
+#: directorymergewindow.cpp:912
+msgid "This affects all merge operations."
+msgstr "ये सब्बो सम्मिलित आपरेसन ल प्रभावित करही"
+
+#: directorymergewindow.cpp:913
+msgid "Changing All Merge Operations"
+msgstr "सब्बो सम्मिलित करे के आपरेसन ल बदलत हे"
+
+#: directorymergewindow.cpp:1312
+msgid "Processing "
+msgstr "प्रोसेसिंग"
+
+#: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742
+msgid "To do."
+msgstr "काम-सूची"
+
+#: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996
+msgid "Copy A to B"
+msgstr "अ के नकल ब मं करव"
+
+#: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997
+msgid "Copy B to A"
+msgstr "ब के नकल अ मं करव"
+
+#: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998
+msgid "Delete A"
+msgstr "अ ल मेटाव"
+
+#: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999
+msgid "Delete B"
+msgstr "ब ल मेटाव"
+
+#: directorymergewindow.cpp:1814
+msgid "Delete A & B"
+msgstr "अ अउ ब ल मेटाव"
+
+#: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001
+msgid "Merge to A"
+msgstr "अ मं सम्मिलित करव"
+
+#: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002
+msgid "Merge to B"
+msgstr "ब मं सम्मिलित करव"
+
+#: directorymergewindow.cpp:1817
+msgid "Merge to A & B"
+msgstr "अ अउ ब मं सम्मिलित करव"
+
+#: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993
+msgid "Delete (if exists)"
+msgstr "मेटाव (यदि मौजूद हे)"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+#: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869
+msgid "Merge"
+msgstr "सम्मिलित करव"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+msgid "Merge (manual)"
+msgstr "सम्मिलित करव (हस्तचालित)"
+
+#: directorymergewindow.cpp:1824
+msgid "Error: Conflicting File Types"
+msgstr "गलती: आपसी विरोधी फाइल किसिम"
+
+#: directorymergewindow.cpp:1825
+msgid "Error: Changed and Deleted"
+msgstr ""
+
+#: directorymergewindow.cpp:1826
+msgid "Error: Dates are equal but files are not."
+msgstr "गलती: तारीकें तहां एक समान हे, फेर फाइल मन ल नइ."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906
+msgid "This operation is currently not possible."
+msgstr "ये आपरेसन अभी हाल के मं संभव नइ हे."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174
+msgid "Operation Not Possible"
+msgstr "आपरेसन अभी हाल के मं संभव नइ"
+
+#: directorymergewindow.cpp:1945
+msgid ""
+"This should never happen: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"If you know how to reproduce this, please contact the program author."
+msgstr ""
+
+#: directorymergewindow.cpp:1945
+msgid "Program Error"
+msgstr "प्रोग्राम गलती"
+
+#: directorymergewindow.cpp:1956
+msgid "An error occurred while copying.\n"
+msgstr "नकल करे के समय एक गलती होइस.\n"
+
+#: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025
+#: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105
+#: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123
+#: directorymergewindow.cpp:2374
+msgid "Error"
+msgstr "गलती"
+
+#: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375
+msgid "Merge Error"
+msgstr "सम्मिलित करे मं गलती"
+
+#: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380
+msgid "Error."
+msgstr "गलती."
+
+#: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272
+#: directorymergewindow.cpp:2312
+msgid "Done."
+msgstr "पूरा."
+
+#: directorymergewindow.cpp:1990
+msgid "Not saved."
+msgstr "सहेजिस नइ गिस."
+
+#: directorymergewindow.cpp:2025
+msgid "Unknown merge operation. (This must never happen!)"
+msgstr "सम्मिलित करे के अग्यात आपरेसन. (अइसन कभू नइ होना चाही!)"
+
+#: directorymergewindow.cpp:2057
+msgid "Unknown merge operation."
+msgstr "सम्मिलित करे के अग्यात आपरेसन. "
+
+#: directorymergewindow.cpp:2072
+msgid ""
+"The merge is about to begin.\n"
+"\n"
+"Choose \"Do it\" if you have read the instructions and know what you are "
+"doing.\n"
+"Choosing \"Simulate it\" will tell you what would happen.\n"
+"\n"
+"Be aware that this program still has beta status and there is NO WARRANTY "
+"whatsoever! Make backups of your vital data!"
+msgstr ""
+
+#: directorymergewindow.cpp:2077
+msgid "Starting Merge"
+msgstr "सम्मिलित करना चालू करत हे"
+
+#: directorymergewindow.cpp:2078
+msgid "Do It"
+msgstr "एला करव"
+
+#: directorymergewindow.cpp:2079
+msgid "Simulate It"
+msgstr "एला सिमुलेट करव"
+
+#: directorymergewindow.cpp:2105
+msgid ""
+"The highlighted item has a different type in the different directories. "
+"Select what to do."
+msgstr ""
+
+#: directorymergewindow.cpp:2114
+msgid ""
+"The modification dates of the file are equal but the files are not. Select "
+"what to do."
+msgstr ""
+
+#: directorymergewindow.cpp:2123
+msgid ""
+"The highlighted item was changed in one directory and deleted in the other. "
+"Select what to do."
+msgstr ""
+
+#: directorymergewindow.cpp:2174
+msgid ""
+"This operation is currently not possible because directory merge is "
+"currently running."
+msgstr ""
+
+#: directorymergewindow.cpp:2234
+msgid ""
+"There was an error in the last step.\n"
+"Do you want to continue with the item that caused the error or do you want "
+"to skip this item?"
+msgstr ""
+
+#: directorymergewindow.cpp:2236
+msgid "Continue merge after an error"
+msgstr "गलती के बाद घलोक सम्मिलित करना जारी रखव"
+
+#: directorymergewindow.cpp:2237
+msgid "Continue With Last Item"
+msgstr "पिछला चीज के साथ जारी रखव"
+
+#: directorymergewindow.cpp:2238
+msgid "Skip Item"
+msgstr "चीज छोड़व"
+
+#: directorymergewindow.cpp:2272
+msgid "Skipped."
+msgstr "छोड़ा."
+
+#: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493
+msgid "In progress..."
+msgstr "प्रगति मं हे..."
+
+#: directorymergewindow.cpp:2327
+msgid "Merge operation complete."
+msgstr "सम्मिलित करे के काम पूरा होइस."
+
+#: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330
+msgid "Merge Complete"
+msgstr "सम्मिलित करना पूरा"
+
+#: directorymergewindow.cpp:2340
+msgid ""
+"Simulated merge complete: Check if you agree with the proposed operations."
+msgstr ""
+
+#: directorymergewindow.cpp:2374
+msgid "An error occurred. Press OK to see detailed information.\n"
+msgstr "एक गलती होइस. विस्तृत जानकारी देखे बर ठीक ल दबाव\n"
+
+#: directorymergewindow.cpp:2406
+#, kde-format
+msgid "Error: While deleting %1: Creating backup failed."
+msgstr "गलती: %1 ल मेटाव के समय: बैकअप बनाए मं फेल."
+
+#: directorymergewindow.cpp:2413
+#, kde-format
+msgid "delete directory recursively( %1 )"
+msgstr "डिरेक्टरी ( %1 ) ल रिकर्सिवली मेटाव"
+
+#: directorymergewindow.cpp:2415
+#, kde-format
+msgid "delete( %1 )"
+msgstr "मेटाव (%1)"
+
+#: directorymergewindow.cpp:2430
+msgid "Error: delete dir operation failed while trying to read the directory."
+msgstr "गलती: डिरेक्टरी ल पढ़े के कोसिस मं डिरेक्टरी मेटाव के काम फेल."
+
+#: directorymergewindow.cpp:2449
+#, kde-format
+msgid "Error: rmdir( %1 ) operation failed."
+msgstr "गलती: rmdir( %1 ) काम फेल."
+
+#: directorymergewindow.cpp:2459
+msgid "Error: delete operation failed."
+msgstr "गलती: डिरेक्टरी मेटाव के काम फेल."
+
+#: directorymergewindow.cpp:2485
+#, kde-format
+msgid "manual merge( %1, %2, %3 -> %4)"
+msgstr "हस्तचालित सम्मिलित करव( %1, %2, %3 -> %4)"
+
+#: directorymergewindow.cpp:2488
+msgid ""
+"     Note: After a manual merge the user should continue by pressing F7."
+msgstr "टीप: हस्तचालित सम्मिलित करे के बाद कमइया ल F7 ल दबाकर जारी रखना चाही."
+
+#: directorymergewindow.cpp:2513
+#, kde-format
+msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed."
+msgstr "गलती: नकल ( %1 -> %2 ) फेल. अभी हाल के गंतव्य ल मिटाना फेल."
+
+#: directorymergewindow.cpp:2522
+#, kde-format
+msgid "copyLink( %1 -> %2 )"
+msgstr "कापीसंकली ( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2533
+msgid "Error: copyLink failed: Remote links are not yet supported."
+msgstr "गलती: कापीसंकली फेल: रिमोट कड़ियाँ अभी समर्थित नइ हे."
+
+#: directorymergewindow.cpp:2539
+msgid "Error: copyLink failed."
+msgstr "गलती: कापीसंकली फेल."
+
+#: directorymergewindow.cpp:2564
+#, kde-format
+msgid "copy( %1 -> %2 )"
+msgstr "नकल( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2590
+#, kde-format
+msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination."
+msgstr ""
+
+#: directorymergewindow.cpp:2596
+#, kde-format
+msgid "rename( %1 -> %2 )"
+msgstr "नाम बदलव( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2605
+msgid "Error: Rename failed."
+msgstr "गलती: नाम-बदलना फेल."
+
+#: directorymergewindow.cpp:2623
+#, kde-format
+msgid "Error during makeDir of %1. Cannot delete existing file."
+msgstr "%1 के मेकडिर के समय गलती. अभी हाल के फाइल मिटा नइ सकहू."
+
+#: directorymergewindow.cpp:2639
+#, kde-format
+msgid "makeDir( %1 )"
+msgstr "मेकडिर( %1 )"
+
+#: directorymergewindow.cpp:2649
+msgid "Error while creating directory."
+msgstr "डिरेक्टरी बनाए के समय गलती."
+
+#: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784
+msgid "Dest"
+msgstr "गंतव्य"
+
+#: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709
+msgid "Dir"
+msgstr "डिर."
+
+#: directorymergewindow.cpp:2678
+msgid "Type"
+msgstr "किसिम"
+
+#: directorymergewindow.cpp:2678
+msgid "Size"
+msgstr "आकार"
+
+#: directorymergewindow.cpp:2679
+msgid "Attr"
+msgstr "एट्रि."
+
+#: directorymergewindow.cpp:2679
+msgid "Last Modification"
+msgstr "आखरी परिवर्धन"
+
+#: directorymergewindow.cpp:2679
+msgid "Link-Destination"
+msgstr "संकली-गंतव्य"
+
+#: directorymergewindow.cpp:2709 difftextwindow.cpp:401
+msgid "File"
+msgstr "फाइल"
+
+#: directorymergewindow.cpp:2726
+msgid "not available"
+msgstr "नइ मिलत"
+
+#: directorymergewindow.cpp:2746
+msgid "A (Dest): "
+msgstr "A (गंत.): "
+
+#: directorymergewindow.cpp:2749
+msgid "A (Base): "
+msgstr "A (आधार): "
+
+#: directorymergewindow.cpp:2755
+msgid "B (Dest): "
+msgstr "B (गंत.): "
+
+#: directorymergewindow.cpp:2763
+msgid "C (Dest): "
+msgstr "C (गंत.): "
+
+#: directorymergewindow.cpp:2769
+msgid "Dest: "
+msgstr "गंतव्य:"
+
+#: directorymergewindow.cpp:2836
+msgid "Save Directory Merge State As..."
+msgstr ""
+
+#: directorymergewindow.cpp:2959
+msgid "Start/Continue Directory Merge"
+msgstr "डिरेक्टरी सम्मिलित करना चालू करव/जारी रखव"
+
+#: directorymergewindow.cpp:2960
+msgid "Run Operation for Current Item"
+msgstr "अभी हाल के चीज बर आपरेसन चलाव"
+
+#: directorymergewindow.cpp:2961
+msgid "Compare Selected File"
+msgstr "चुने गे फाइल के तुलना करव"
+
+#: directorymergewindow.cpp:2962
+msgid "Merge Current File"
+msgstr "अभी हाल के फाइल सम्मिलित करव"
+
+#: directorymergewindow.cpp:2962
+msgid ""
+"Merge\n"
+"File"
+msgstr ""
+"फाइल\n"
+"मिलाव"
+
+#: directorymergewindow.cpp:2963
+msgid "Fold All Subdirs"
+msgstr "सब्बो सबडिरेक्टरीज फोल्ड करव"
+
+#: directorymergewindow.cpp:2964
+msgid "Unfold All Subdirs"
+msgstr "सब्बो सबडिरेक्टरीज अनफोल्ड करव"
+
+#: directorymergewindow.cpp:2968
+msgid "Choose A for All Items"
+msgstr "सब्बो चीज मन बर अ के चुनव"
+
+#: directorymergewindow.cpp:2969
+msgid "Choose B for All Items"
+msgstr "सब्बो चीज मन बर ब के चुनव"
+
+#: directorymergewindow.cpp:2970
+msgid "Choose C for All Items"
+msgstr "सब्बो चीज मन बर स के चुनव"
+
+#: directorymergewindow.cpp:2971
+msgid "Auto-Choose Operation for All Items"
+msgstr "सब्बो चीज मन बर काम अपने अपन चुनव"
+
+#: directorymergewindow.cpp:2972
+msgid "No Operation for All Items"
+msgstr "सब्बो चीज मन बर कोनो काम नइ"
+
+#: directorymergewindow.cpp:2977
+msgid "Show Identical Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2977
+msgid ""
+"Identical\n"
+"Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2978
+msgid "Show Different Files"
+msgstr "भिन्न फाइल देखाव"
+
+#: directorymergewindow.cpp:2979
+msgid "Show Files only in A"
+msgstr ""
+
+#: directorymergewindow.cpp:2979
+msgid ""
+"Files\n"
+"only in A"
+msgstr ""
+
+#: directorymergewindow.cpp:2980
+msgid "Show Files only in B"
+msgstr ""
+
+#: directorymergewindow.cpp:2980
+msgid ""
+"Files\n"
+"only in B"
+msgstr ""
+
+#: directorymergewindow.cpp:2981
+msgid "Show Files only in C"
+msgstr ""
+
+#: directorymergewindow.cpp:2981
+msgid ""
+"Files\n"
+"only in C"
+msgstr ""
+
+#: directorymergewindow.cpp:2985
+msgid "Compare Explicitly Selected Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2986
+msgid "Merge Explicitly Selected Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995
+msgid "Do Nothing"
+msgstr "कुछ नइ करव"
+
+#: directorymergewindow.cpp:2989
+msgid "A"
+msgstr "अ"
+
+#: directorymergewindow.cpp:2990
+msgid "B"
+msgstr "ब"
+
+#: directorymergewindow.cpp:2991
+msgid "C"
+msgstr "स"
+
+#: directorymergewindow.cpp:3000
+msgid "Delete A && B"
+msgstr "अ अउ ब ल मेटाव"
+
+#: directorymergewindow.cpp:3003
+msgid "Merge to A && B"
+msgstr "अ अउ ब मं सम्मिलित करव"
+
+#: main.cpp:74 main.cpp:76
+msgid "Ignored. (User defined.)"
+msgstr ""
+
+#: main.cpp:162
+msgid "kdiff3"
+msgstr "के-डिफ3"
+
+#: main.cpp:164
+msgid "Tool for Comparison and Merge of Files and Directories"
+msgstr ""
+
+#: main.cpp:165
+msgid "(c) 2002-2011 Joachim Eibl"
+msgstr ""
+
+#: main.cpp:172 kdiff3_part.cpp:303
+msgid "Joachim Eibl"
+msgstr ""
+
+#: main.cpp:173
+msgid "Eike Sauer"
+msgstr ""
+
+#: main.cpp:173
+msgid "Bugfixes, Debian package maintainer"
+msgstr ""
+
+#: main.cpp:174
+msgid "Sebastien Fricker"
+msgstr ""
+
+#: main.cpp:174
+msgid "Windows installer"
+msgstr "विंडोस इंस्टालर"
+
+#: main.cpp:175
+msgid "Stephan Binner"
+msgstr "स्टीफन बिनर"
+
+#: main.cpp:175
+msgid "i18n-help"
+msgstr ""
+
+#: main.cpp:176
+msgid "Stefan Partheymueller"
+msgstr ""
+
+#: main.cpp:176
+msgid "Clipboard-patch"
+msgstr "क्लिपबोर्ड पैच"
+
+#: main.cpp:177
+msgid "David Faure"
+msgstr "डेविड फाउरे"
+
+#: main.cpp:177
+msgid "KIO-Help"
+msgstr ""
+
+#: main.cpp:178
+msgid "Bernd Gehrmann"
+msgstr "बर्नद गेहमन"
+
+#: main.cpp:178
+msgid "Class CvsIgnoreList from Cervisia"
+msgstr ""
+
+#: main.cpp:179
+msgid "Andre Woebbeking"
+msgstr ""
+
+#: main.cpp:179
+msgid "Class StringMatcher"
+msgstr ""
+
+#: main.cpp:180
+msgid "Michael Denio"
+msgstr ""
+
+#: main.cpp:180
+msgid "Directory Equality-Coloring patch"
+msgstr ""
+
+#: main.cpp:181
+msgid "Manfred Koehler"
+msgstr ""
+
+#: main.cpp:181
+msgid "Fix for slow startup on Windows"
+msgstr ""
+
+#: main.cpp:182
+msgid "Sergey Zorin"
+msgstr "सर्जेई जोरिन"
+
+#: main.cpp:182
+msgid "Diff Ext for Windows"
+msgstr ""
+
+#: main.cpp:183
+msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+msgstr ""
+
+#: main.cpp:183
+msgid "GNU-Diffutils"
+msgstr ""
+
+#: main.cpp:184
+msgid "Tino Boellsterling, Timothy Mee"
+msgstr ""
+
+#: main.cpp:184
+msgid "Intensive test, use and feedback"
+msgstr ""
+
+#: main.cpp:185
+msgid "Michael Schmidt"
+msgstr "माइकल स्मिट"
+
+#: main.cpp:185
+msgid "Mac support"
+msgstr ""
+
+#: main.cpp:186
+msgid "Valentin Rusu"
+msgstr ""
+
+#: main.cpp:186 main.cpp:187
+msgid "KDE4 porting"
+msgstr "केडीई4 पोर्टिंग"
+
+#: main.cpp:187
+msgid "Albert Astals Cid"
+msgstr "अलबर्ट एस्टल्स सिड"
+
+#: main.cpp:188
+msgid "Silvan Scherrer"
+msgstr ""
+
+#: main.cpp:188
+msgid "OS2 port"
+msgstr ""
+
+#: main.cpp:190
+msgid "+ Many thanks to those who reported bugs and contributed ideas!"
+msgstr ""
+
+#: main.cpp:196
+msgid "Merge the input."
+msgstr "इनपुट मिलाव."
+
+#: main.cpp:197
+msgid "Explicit base file. For compatibility with certain tools."
+msgstr ""
+
+#: main.cpp:198
+msgid "Output file. Implies -m. E.g.: -o newfile.txt"
+msgstr "आउटपुट फाइल. इम्प्लाइस -m. उदा.: -o newfile.txt"
+
+#: main.cpp:199
+msgid "Output file, again. (For compatibility with certain tools.)"
+msgstr "आउटपुट फाइल, फिर से. (कुछ औजार मन के साथ कम्पेटिबिलिटी बर.)"
+
+#: main.cpp:200
+msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)"
+msgstr ""
+
+#: main.cpp:201
+msgid "Don't solve conflicts automatically. (For compatibility...)"
+msgstr ""
+
+#: main.cpp:202
+msgid "Visible name replacement for input file 1 (base)."
+msgstr "इनपुट फाइल 1 (आधार) बर विजिबल नाम रीप्लेसमेंट."
+
+#: main.cpp:203
+msgid "Visible name replacement for input file 2."
+msgstr "इनपुट फाइल 2 बर विजिबल नाम रीप्लेसमेंट."
+
+#: main.cpp:204
+msgid "Visible name replacement for input file 3."
+msgstr "इनपुट फाइल 3 बर विजिबल नाम रीप्लेसमेंट."
+
+#: main.cpp:205
+msgid "Alternative visible name replacement. Supply this once for every input."
+msgstr ""
+
+#: main.cpp:206
+msgid ""
+"Override a config setting. Use once for every setting. E.g.: --cs "
+"\"AutoAdvance=1\""
+msgstr ""
+
+#: main.cpp:207
+msgid "Show list of config settings and current values."
+msgstr ""
+
+#: main.cpp:208
+msgid "Use a different config file."
+msgstr ""
+
+#: main.cpp:211
+msgid "file1 to open (base, if not specified via --base)"
+msgstr "खोले बर फाइल1 (आधार, यदि एखर साथ निरधारित नइ --base)"
+
+#: main.cpp:212
+msgid "file2 to open"
+msgstr "खोले बर फाइल2"
+
+#: main.cpp:213
+msgid "file3 to open"
+msgstr "खोले बर फाइल3"
+
+#: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976
+#: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002
+#: mergeresultwindow.cpp:1014
+#, kde-format
+msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)"
+msgstr ""
+
+#: mergeresultwindow.cpp:303
+msgid ""
+"The output has been modified.\n"
+"If you continue your changes will be lost."
+msgstr ""
+"आउटपुट सुधारे जा गे हे.\n"
+"यदि आप मन जारी रखथो तहां आप मन के बदलाव खो जाही."
+
+#: mergeresultwindow.cpp:834 pdiff.cpp:532
+msgid "All input files are binary equal."
+msgstr "सब्बो इनपुट फाइल बाइनरी समान हे."
+
+#: mergeresultwindow.cpp:836
+msgid "All input files contain the same text."
+msgstr "सब्बो इनपुट फाइल मन ल एके पाठ रखे हे."
+
+#: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840
+#: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540
+#, kde-format
+msgid "Files %1 and %2 are binary equal.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841
+#: mergeresultwindow.cpp:843
+#, kde-format
+msgid "Files %1 and %2 have equal text.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:849
+msgid "Total number of conflicts: "
+msgstr "आपसी विरोधों के कुल संख्या:"
+
+#: mergeresultwindow.cpp:850
+msgid ""
+"\n"
+"Nr of automatically solved conflicts: "
+msgstr ""
+"\n"
+"अपने अपन समाधान करे विरोधाभासों के संख्या: "
+
+#: mergeresultwindow.cpp:851
+msgid ""
+"\n"
+"Nr of unsolved conflicts: "
+msgstr ""
+"\n"
+"समाधान-रहित विरोधाभासों के संख्या: "
+
+#: mergeresultwindow.cpp:853
+msgid "Conflicts"
+msgstr "आपसी विरोध"
+
+#: mergeresultwindow.cpp:1728
+msgid "<No src line>"
+msgstr "<कोई स्रोत लकीर नइ>"
+
+#: mergeresultwindow.cpp:1736
+msgid "<Merge Conflict (Whitespace only)>"
+msgstr "<विरोधाभास (सिरिफ सफेद जगह) सम्मिलित करव>"
+
+#: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517
+msgid "<Merge Conflict>"
+msgstr "<विरोधाभास सम्मिलित करव>"
+
+#: mergeresultwindow.cpp:2725
+msgid ""
+"Not all conflicts are solved yet.\n"
+"File not saved.\n"
+msgstr ""
+"अब तक सब्बो विरोधाभासों के समाधान नइ करे गे हे.\n"
+"फाइल सहेजे नइ गिस.\n"
+
+#: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736
+msgid "Conflicts Left"
+msgstr "विरोधाभास डेरी "
+
+#: mergeresultwindow.cpp:2734
+msgid ""
+"There is a line end style conflict. Please choose the line end style "
+"manually.\n"
+"File not saved.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:2748
+msgid ""
+"\n"
+"\n"
+"Creating backup failed. File not saved."
+msgstr ""
+
+#: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792
+msgid "File Save Error"
+msgstr "फाइल सहेजे मं गलती"
+
+#: mergeresultwindow.cpp:2792
+msgid "Error while writing."
+msgstr "लिखे के समय गलती."
+
+#: mergeresultwindow.cpp:3122
+msgid "Output"
+msgstr "आउटपुट"
+
+#: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314
+msgid "[Modified]"
+msgstr "[परिवर्धित]"
+
+#: mergeresultwindow.cpp:3141
+msgid "Encoding for saving"
+msgstr ""
+
+#: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737
+#: optiondialog.cpp:762
+msgid "Line end style:"
+msgstr "लकीर खतम होए के सैलीः"
+
+#: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767
+msgid "Unix"
+msgstr ""
+
+#: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737
+msgid "DOS"
+msgstr ""
+
+#: mergeresultwindow.cpp:3229
+#, fuzzy
+msgid "Conflict"
+msgstr "आपसी विरोध"
+
+#: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263
+#: mergeresultwindow.cpp:3265
+msgid "Codec from"
+msgstr ""
+
+#: kdiff3_part.cpp:157 kdiff3_part.cpp:234
+msgid "Couldn't find files for comparison."
+msgstr "तुलना बर फाइल मन ल नइ खोज सकिस"
+
+#: kdiff3_part.cpp:302
+msgid "KDiff3Part"
+msgstr "के-डिफ3पार्ट"
+
+#: fileaccess.cpp:612
+msgid ""
+"While trying to make a backup, deleting an older backup failed. \n"
+"Filename: "
+msgstr ""
+
+#: fileaccess.cpp:619
+msgid ""
+"While trying to make a backup, renaming failed. \n"
+"Filenames: "
+msgstr ""
+
+#: fileaccess.cpp:643
+#, kde-format
+msgid "Getting file status: %1"
+msgstr "फाइल स्थिति प्राप्त करत हे : %1"
+
+#: fileaccess.cpp:686
+#, kde-format
+msgid "Reading file: %1"
+msgstr "फ़ाइल पढ़त हे: %1"
+
+#: fileaccess.cpp:723
+#, kde-format
+msgid "Writing file: %1"
+msgstr "फाइल: %1 लिखत हे"
+
+#: fileaccess.cpp:751
+msgid "Out of memory"
+msgstr "मेमोरी कम पड़ गिस"
+
+#: fileaccess.cpp:786
+#, kde-format
+msgid "Making directory: %1"
+msgstr "डिरेक्टरी बनात हे: %1"
+
+#: fileaccess.cpp:806
+#, kde-format
+msgid "Removing directory: %1"
+msgstr "डिरेक्टरी मिटात हे: %1"
+
+#: fileaccess.cpp:821
+#, kde-format
+msgid "Removing file: %1"
+msgstr "फाइल मिटात हे: %1"
+
+#: fileaccess.cpp:837
+#, kde-format
+msgid "Creating symbolic link: %1 -> %2"
+msgstr "सिंबालिक संकली बनावत हे: %1 -> %2"
+
+#: fileaccess.cpp:864
+#, kde-format
+msgid "Renaming file: %1 -> %2"
+msgstr "फाइलनाम बदलत हे: %1 -> %2"
+
+#: fileaccess.cpp:897
+#, kde-format
+msgid "Copying file: %1 -> %2"
+msgstr "फाइल नकल करत हे : %1 -> %2"
+
+#: fileaccess.cpp:911
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for reading failed. Filename: "
+"%1"
+msgstr "फाइल के नकल करे के काम के समय गलती: फाइल ल पढ़े बर खोले मं फेल. फाइल-नाम: %1"
+
+#: fileaccess.cpp:917
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for writing failed. Filename: "
+"%1"
+msgstr "फाइल के नकल करे के काम के समय गलती: फाइल ल लिखे बर खोले मं फेल. फाइल-नाम: %1"
+
+#: fileaccess.cpp:932
+#, kde-format
+msgid "Error during file copy operation: Reading failed. Filename: %1"
+msgstr "फाइल के नकल करे के काम के समय गलती: पढ़े मं फेल. फाइल-नाम: %1"
+
+#: fileaccess.cpp:941
+#, kde-format
+msgid "Error during file copy operation: Writing failed. Filename: %1"
+msgstr "फाइल के नकल करे के काम के समय गलती: लिखे मं फेल. फाइल-नाम: %1"
+
+#: fileaccess.cpp:1231
+msgid "Reading directory: "
+msgstr "डिरेक्टरी ल पढ़त हे:"
+
+#: fileaccess.cpp:1355
+#, kde-format
+msgid "Listing directory: %1"
+msgstr "डिरेक्टरी सूची मं करत हे : %1"
+
+#: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396
+msgid "&Cancel"
+msgstr ""
+
+#: difftextwindow.cpp:403
+msgid "Line"
+msgstr "पंक्ति"
+
+#: difftextwindow.cpp:405
+msgid "Line not available"
+msgstr "लाइन नइ मिलत हे"
+
+#: difftextwindow.cpp:1703 difftextwindow.cpp:1736
+msgid "Encoding:"
+msgstr ""
+
+#: difftextwindow.cpp:1759 kdiff3.cpp:831
+msgid "Top line"
+msgstr "सबसे ऊपर के लाइन"
+
+#: difftextwindow.cpp:1769
+msgid "End"
+msgstr "आखरी"
+
+#: kdiff3.cpp:169
+msgid "Current Configuration:"
+msgstr "अभी हाल के कान्फिगरेसन:"
+
+#: kdiff3.cpp:174
+msgid "Config Option Error:"
+msgstr ""
+
+#: kdiff3.cpp:219
+msgid "Option --auto used, but no output file specified."
+msgstr "विकल्प --auto के उपयोग करिस, तिर कोनो आउटपुट फाइल निरधारित नइ."
+
+#: kdiff3.cpp:369
+msgid "Option --auto ignored for directory comparison."
+msgstr "विकल्प --auto ल डिरेक्टरी तुलना करे मं छोड़ दे गिस."
+
+#: kdiff3.cpp:405
+msgid "Saving failed."
+msgstr "सहेजे मं फेल."
+
+#: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214
+msgid "Opening of these files failed:"
+msgstr "ए फाइल मन ल खोलना फेल:"
+
+#: kdiff3.cpp:449
+msgid "File Open Error"
+msgstr "फाइल खोले मं गलती"
+
+#: kdiff3.cpp:477
+msgid "Opens documents for comparison..."
+msgstr "कागद मन ल तुलना बर खोलथे ..."
+
+#: kdiff3.cpp:479
+msgid "Reload"
+msgstr "री-लोड"
+
+#: kdiff3.cpp:482
+msgid "Saves the merge result. All conflicts must be solved!"
+msgstr ""
+
+#: kdiff3.cpp:484
+msgid "Saves the current document as..."
+msgstr "अभी हाल के कागद अइसन सहेजथे ..."
+
+#: kdiff3.cpp:487
+msgid "Print the differences"
+msgstr ""
+
+#: kdiff3.cpp:490
+msgid "Quits the application"
+msgstr "अनुपरयोग से बाहिर होथे "
+
+#: kdiff3.cpp:492
+msgid "Cuts the selected section and puts it to the clipboard"
+msgstr ""
+
+#: kdiff3.cpp:494
+msgid "Copies the selected section to the clipboard"
+msgstr "चुने हुए अंस ल क्लिपबोर्ड मं नकल करथे "
+
+#: kdiff3.cpp:496
+#, fuzzy
+#| msgid "Pastes the clipboard contents to actual position"
+msgid "Pastes the clipboard contents to current position"
+msgstr "क्लिपबोर्ड अवयव मन ल सही जगह मं चिपकाथे "
+
+#: kdiff3.cpp:498
+msgid "Select everything in current window"
+msgstr ""
+
+#: kdiff3.cpp:500
+msgid "Search for a string"
+msgstr "स्ट्रिंग बर खोजव"
+
+#: kdiff3.cpp:502
+msgid "Search again for the string"
+msgstr "स्ट्रिंग बर फिर से खोजव"
+
+#: kdiff3.cpp:507
+msgid "Enables/disables the statusbar"
+msgstr "स्थिति-पट्टी सक्छम/अक्छम करव"
+
+#: kdiff3.cpp:511
+msgid "Configure KDiff3..."
+msgstr "के-डिफ3 ल कान्फिगर करव..."
+
+#: kdiff3.cpp:532
+msgid "Go to Current Delta"
+msgstr "अभी हाल के डेल्टा मं जाव"
+
+#: kdiff3.cpp:532
+msgid ""
+"Current\n"
+"Delta"
+msgstr ""
+"अभी हाल के\n"
+"  डेल्टा"
+
+#: kdiff3.cpp:534
+msgid "Go to First Delta"
+msgstr "पहिली डेल्टा मं जाव"
+
+#: kdiff3.cpp:534
+msgid ""
+"First\n"
+"Delta"
+msgstr ""
+"पहिली \n"
+"डेल्टा"
+
+#: kdiff3.cpp:536
+msgid "Go to Last Delta"
+msgstr "आखरी डेल्टा मं जाव"
+
+#: kdiff3.cpp:536
+msgid ""
+"Last\n"
+"Delta"
+msgstr ""
+"आखरी\n"
+"डेल्टा"
+
+#: kdiff3.cpp:538
+msgid "(Skips white space differences when \"Show White Space\" is disabled.)"
+msgstr ""
+
+#: kdiff3.cpp:539
+msgid ""
+"(Does not skip white space differences even when \"Show White Space\" is "
+"disabled.)"
+msgstr ""
+
+#: kdiff3.cpp:540
+msgid "Go to Previous Delta"
+msgstr "पिछला डेल्टा मं जाव"
+
+#: kdiff3.cpp:540
+msgid ""
+"Prev\n"
+"Delta"
+msgstr ""
+"पिछला \n"
+"डेल्टा"
+
+#: kdiff3.cpp:542
+msgid "Go to Next Delta"
+msgstr "अगला डेल्टा मं जाव"
+
+#: kdiff3.cpp:542
+msgid ""
+"Next\n"
+"Delta"
+msgstr ""
+"अगला \n"
+"डेल्टा"
+
+#: kdiff3.cpp:544
+msgid "Go to Previous Conflict"
+msgstr "पिछले आपसी विरोधों मं जाव"
+
+#: kdiff3.cpp:544
+msgid ""
+"Prev\n"
+"Conflict"
+msgstr ""
+"पिछला\n"
+"आपसी विरोध"
+
+#: kdiff3.cpp:546
+msgid "Go to Next Conflict"
+msgstr "अगले आपसी विरोधों मं जाव"
+
+#: kdiff3.cpp:546
+msgid ""
+"Next\n"
+"Conflict"
+msgstr ""
+"अगले \n"
+"आपसी विरोध"
+
+#: kdiff3.cpp:548
+msgid "Go to Previous Unsolved Conflict"
+msgstr "पिछले समाधान-रहित आपसी विरोधों मं जाव"
+
+#: kdiff3.cpp:548
+msgid ""
+"Prev\n"
+"Unsolved"
+msgstr ""
+"पिछला\n"
+"हल नइ"
+
+#: kdiff3.cpp:550
+msgid "Go to Next Unsolved Conflict"
+msgstr "अगले समाधान-रहित आपसी विरोधों मं जाव"
+
+#: kdiff3.cpp:550
+msgid ""
+"Next\n"
+"Unsolved"
+msgstr ""
+"अगला\n"
+"हल नइ"
+
+#: kdiff3.cpp:552
+msgid "Select Line(s) From A"
+msgstr "अ से लाइन चुनव"
+
+#: kdiff3.cpp:552
+msgid ""
+"Choose\n"
+"A"
+msgstr ""
+
+#: kdiff3.cpp:553
+msgid "Select Line(s) From B"
+msgstr "ब से लाइन चुनव"
+
+#: kdiff3.cpp:553
+msgid ""
+"Choose\n"
+"B"
+msgstr ""
+
+#: kdiff3.cpp:554
+msgid "Select Line(s) From C"
+msgstr "स से लाइन चुनव"
+
+#: kdiff3.cpp:554
+msgid ""
+"Choose\n"
+"C"
+msgstr ""
+
+#: kdiff3.cpp:555
+msgid "Automatically Go to Next Unsolved Conflict After Source Selection"
+msgstr ""
+
+#: kdiff3.cpp:555
+msgid ""
+"Auto\n"
+"Next"
+msgstr ""
+"अपने अपन \n"
+"अगला"
+
+#: kdiff3.cpp:557
+msgid "Show Space && Tabulator Characters for Differences"
+msgstr "भिन्नताओं बर टेबुलेटर अक्छर अउ जगह देखाव "
+
+#: kdiff3.cpp:557
+msgid ""
+"White\n"
+"Characters"
+msgstr ""
+
+#: kdiff3.cpp:558
+msgid "Show White Space"
+msgstr "सफेद जगह देखाव"
+
+#: kdiff3.cpp:558
+msgid ""
+"White\n"
+"Deltas"
+msgstr ""
+
+#: kdiff3.cpp:560
+msgid "Show Line Numbers"
+msgstr "लकीर नंबर देखाव"
+
+#: kdiff3.cpp:560
+msgid ""
+"Line\n"
+"Numbers"
+msgstr ""
+"लकीर \n"
+"नंबर"
+
+#: kdiff3.cpp:561
+msgid "Choose A Everywhere"
+msgstr "सब्बो जगह अ चुनव"
+
+#: kdiff3.cpp:562
+msgid "Choose B Everywhere"
+msgstr "सब्बो जगह ब चुनव"
+
+#: kdiff3.cpp:563
+msgid "Choose C Everywhere"
+msgstr "सब्बो जगह स चुनव"
+
+#: kdiff3.cpp:564
+msgid "Choose A for All Unsolved Conflicts"
+msgstr "सब्बो समाधान-रहित आपसी विरोधों बर अ चुनव"
+
+#: kdiff3.cpp:565
+msgid "Choose B for All Unsolved Conflicts"
+msgstr "सब्बो समाधान-रहित आपसी विरोधों बर ब चुनव"
+
+#: kdiff3.cpp:566
+msgid "Choose C for All Unsolved Conflicts"
+msgstr "सब्बो समाधान-रहित आपसी विरोधों बर स चुनव"
+
+#: kdiff3.cpp:567
+msgid "Choose A for All Unsolved Whitespace Conflicts"
+msgstr "सब्बो समाधान-रहित सफेद-जगह आपसी विरोधों बर अ चुनव"
+
+#: kdiff3.cpp:568
+msgid "Choose B for All Unsolved Whitespace Conflicts"
+msgstr "सब्बो समाधान-रहित सफेद-जगह आपसी विरोधों बर ब चुनव"
+
+#: kdiff3.cpp:569
+msgid "Choose C for All Unsolved Whitespace Conflicts"
+msgstr "सब्बो समाधान-रहित सफेद-जगह आपसी विरोधों बर स चुनव"
+
+#: kdiff3.cpp:570
+msgid "Automatically Solve Simple Conflicts"
+msgstr "सादा आपसी विरोधों के अपने अपन समाधान करव"
+
+#: kdiff3.cpp:571
+msgid "Set Deltas to Conflicts"
+msgstr "डेल्टा ल आपसी विरोधों मं सेट करव"
+
+#: kdiff3.cpp:572
+msgid "Run Regular Expression Auto Merge"
+msgstr ""
+
+#: kdiff3.cpp:573
+msgid "Automatically Solve History Conflicts"
+msgstr "इतिहास आपसी विरोधों के अपने अपन समाधान करव"
+
+#: kdiff3.cpp:574
+msgid "Split Diff At Selection"
+msgstr ""
+
+#: kdiff3.cpp:575
+msgid "Join Selected Diffs"
+msgstr "चुने गे डिफ मिलाव"
+
+#: kdiff3.cpp:577
+msgid "Show Window A"
+msgstr "विंडो अ देखाव"
+
+#: kdiff3.cpp:578
+msgid "Show Window B"
+msgstr "विंडो ब देखाव"
+
+#: kdiff3.cpp:579
+msgid "Show Window C"
+msgstr "विंडो स देखाव"
+
+#: kdiff3.cpp:580 kdiff3.cpp:591
+msgid "Focus Next Window"
+msgstr "अगले विंडो मं फोकस"
+
+#: kdiff3.cpp:582
+msgid "Normal Overview"
+msgstr "सामान्य ओवरव्यू"
+
+#: kdiff3.cpp:583
+msgid "A vs. B Overview"
+msgstr "अ वि. ब ओवरव्यू"
+
+#: kdiff3.cpp:584
+msgid "A vs. C Overview"
+msgstr "अ वि. स ओवरव्यू"
+
+#: kdiff3.cpp:585
+msgid "B vs. C Overview"
+msgstr "ब वि. स ओवरव्यू"
+
+#: kdiff3.cpp:586
+msgid "Word Wrap Diff Windows"
+msgstr "वर्ड व्रेप डिफ विंडोज"
+
+#: kdiff3.cpp:587
+msgid "Add Manual Diff Alignment"
+msgstr ""
+
+#: kdiff3.cpp:588
+msgid "Clear All Manual Diff Alignments"
+msgstr ""
+
+#: kdiff3.cpp:593
+msgid "Focus Prev Window"
+msgstr "पिछले विंडो मं फोकस"
+
+#: kdiff3.cpp:594
+msgid "Toggle Split Orientation"
+msgstr "अलग करे के दिसा टागल करव"
+
+#: kdiff3.cpp:596
+msgid "Dir && Text Split Screen View"
+msgstr "डिरेक्टरी अउ पाठ स्प्लिट स्क्रीन दृस्य"
+
+#: kdiff3.cpp:598
+msgid "Toggle Between Dir && Text View"
+msgstr "डिरेक्टरी अउ पाठ दृस्य के बीच टागल करव"
+
+#: kdiff3.cpp:654 pdiff.cpp:1812
+msgid "The merge result hasn't been saved."
+msgstr "सम्मिलित करे के परिनाम अभी सहेजे नइ गिस."
+
+#: kdiff3.cpp:656
+msgid "Save && Quit"
+msgstr "सहेजव अउ बाहिर हों"
+
+#: kdiff3.cpp:657
+msgid "Quit Without Saving"
+msgstr "सहेजे बिना बाहिर हों"
+
+#: kdiff3.cpp:665 pdiff.cpp:1823
+msgid "Saving the merge result failed."
+msgstr "सम्मिलित करे जाय के परिनाम सहेजना फेल."
+
+#: kdiff3.cpp:676 pdiff.cpp:1078
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort?"
+msgstr ""
+
+#: kdiff3.cpp:701
+msgid "Saving file..."
+msgstr "फाइल सहेजत हे..."
+
+#: kdiff3.cpp:718
+msgid "Saving file with a new filename..."
+msgstr "फाइल नवा फाइलनाम के साथ सहेजत हे..."
+
+#: kdiff3.cpp:781
+#, fuzzy
+msgid "Printing not implemented."
+msgstr "सम्मिलित करे के काम पूरा होइस."
+
+#: kdiff3.cpp:815
+#, fuzzy
+msgid "Printing..."
+msgstr "छापव..."
+
+#: kdiff3.cpp:956
+#, fuzzy
+msgid "Selection"
+msgstr "फोंट चुनव"
+
+#: kdiff3.cpp:982
+#, fuzzy
+msgid "Printing completed."
+msgstr "सम्मिलित करे के काम पूरा होइस."
+
+#: kdiff3.cpp:986
+#, fuzzy
+msgid "Printing aborted."
+msgstr "सम्मिलित करे के काम पूरा होइस."
+
+#: kdiff3.cpp:993
+msgid "Exiting..."
+msgstr "बाहिर होवत हे..."
+
+#: kdiff3.cpp:1006
+msgid "Toggling toolbar..."
+msgstr "टूलबार टागल करत हे..."
+
+#: kdiff3.cpp:1027
+msgid "Toggle the statusbar..."
+msgstr "स्थिति पट्टी टागल करव..."
+
+#: smalldialogs.cpp:58
+msgid "A (Base):"
+msgstr "अ (बेस):"
+
+#: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99
+#: smalldialogs.cpp:142
+msgid "File..."
+msgstr "फाइल..."
+
+#: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101
+#: smalldialogs.cpp:144
+msgid "Dir..."
+msgstr "डिर.:"
+
+#: smalldialogs.cpp:93
+msgid "C (Optional):"
+msgstr "स (वैकल्पिक):"
+
+#: smalldialogs.cpp:116
+msgid "Swap/Copy Names ..."
+msgstr ""
+
+#: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123
+#, kde-format
+msgid "Swap %1<->%2"
+msgstr ""
+
+#: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126
+#, kde-format
+msgid "Copy %1->Output"
+msgstr ""
+
+#: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129
+#, kde-format
+msgid "Swap %1<->Output"
+msgstr ""
+
+#: smalldialogs.cpp:136
+msgid "Output (optional):"
+msgstr "आउटपुट (वैकल्पिक):"
+
+#: smalldialogs.cpp:168
+msgid "Configure..."
+msgstr "कान्फिगर...."
+
+#: smalldialogs.cpp:174
+msgid "&OK"
+msgstr "ठीक (&O)"
+
+#: smalldialogs.cpp:362
+msgid "Search text:"
+msgstr "पाठ खोजव:"
+
+#: smalldialogs.cpp:369
+msgid "Case sensitive"
+msgstr "केस सेंसिटिव"
+
+#: smalldialogs.cpp:372
+msgid "Search A"
+msgstr "खोजव अ"
+
+#: smalldialogs.cpp:377
+msgid "Search B"
+msgstr "खोजव ब"
+
+#: smalldialogs.cpp:382
+msgid "Search C"
+msgstr "खोजव स"
+
+#: smalldialogs.cpp:387
+msgid "Search output"
+msgstr "खोजे के बाद् आउटपुट"
+
+#: smalldialogs.cpp:392
+msgid "&Search"
+msgstr "खोजव (&S)"
+
+#: smalldialogs.cpp:409
+msgid "Regular Expression Tester"
+msgstr "रेगुलर एक्सप्रेसन जंचइया"
+
+#: smalldialogs.cpp:414 optiondialog.cpp:936
+msgid "Auto merge regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:422
+msgid "Example auto merge line:"
+msgstr ""
+
+#: smalldialogs.cpp:424
+msgid "To test auto merge, copy a line as used in your files."
+msgstr ""
+
+#: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494
+msgid "Match result:"
+msgstr ""
+
+#: smalldialogs.cpp:441 optiondialog.cpp:962
+msgid "History start regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:449
+msgid "Example history start line (with leading comment):"
+msgstr ""
+
+#: smalldialogs.cpp:451
+msgid ""
+"Copy a history start line as used in your files,\n"
+"including the leading comment."
+msgstr ""
+
+#: smalldialogs.cpp:469 optiondialog.cpp:972
+msgid "History entry start regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:477
+msgid "History sort key order:"
+msgstr ""
+
+#: smalldialogs.cpp:485
+msgid "Example history entry start line (without leading comment):"
+msgstr ""
+
+#: smalldialogs.cpp:487
+msgid ""
+"Copy a history entry start line as used in your files,\n"
+"but omit the leading comment."
+msgstr ""
+
+#: smalldialogs.cpp:501
+msgid "Sort key result:"
+msgstr "छंटइया सूची परिनाम:"
+
+#: smalldialogs.cpp:508
+msgid "OK"
+msgstr "ठीक"
+
+#: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583
+msgid "Match success."
+msgstr ""
+
+#: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589
+msgid "Match failed."
+msgstr "मैच फेल."
+
+#: smalldialogs.cpp:574
+msgid "Opening and closing parentheses do not match in regular expression."
+msgstr ""
+
+#: optiondialog.cpp:367
+msgid "Unicode, 8 bit"
+msgstr "युनिकोड, 8 बिट"
+
+#: optiondialog.cpp:368
+msgid "Unicode"
+msgstr "युनिकोड"
+
+#: optiondialog.cpp:369
+msgid "Latin1"
+msgstr "लेटिन-१"
+
+#: optiondialog.cpp:388
+msgid "Change this if non-ASCII characters are not displayed correctly."
+msgstr ""
+
+#: optiondialog.cpp:465
+msgid "Configure"
+msgstr "कान्फिगर...."
+
+#: optiondialog.cpp:531
+msgid "Font"
+msgstr "फोंट"
+
+#: optiondialog.cpp:532
+msgid "Editor & Diff Output Font"
+msgstr "संपादक अउ डिफ आउटपुट फोंट"
+
+#: optiondialog.cpp:556
+msgid "Italic font for deltas"
+msgstr "डेल्टाज बर इटैलिक फोंट"
+
+#: optiondialog.cpp:559
+msgid ""
+"Selects the italic version of the font for differences.\n"
+"If the font doesn't support italic characters, then this does nothing."
+msgstr ""
+
+#: optiondialog.cpp:568
+msgid "Color"
+msgstr "रंग"
+
+#: optiondialog.cpp:569
+msgid "Colors Settings"
+msgstr "रंग सेटिंग"
+
+#: optiondialog.cpp:588
+msgid "Editor and Diff Views:"
+msgstr ""
+
+#: optiondialog.cpp:596
+msgid "Foreground color:"
+msgstr "आगू तरफ के रंगः"
+
+#: optiondialog.cpp:603
+msgid "Background color:"
+msgstr "पिछोत अंगना के रंगः"
+
+#: optiondialog.cpp:612
+msgid "Diff background color:"
+msgstr "डिफ पिछोत अंगना रंगः"
+
+#: optiondialog.cpp:620
+msgid "Color A:"
+msgstr "रंग अ:"
+
+#: optiondialog.cpp:628
+msgid "Color B:"
+msgstr "रंग ब:"
+
+#: optiondialog.cpp:636
+msgid "Color C:"
+msgstr "रंग स:"
+
+#: optiondialog.cpp:643
+msgid "Conflict color:"
+msgstr "विरोधाभास बर रंग:"
+
+#: optiondialog.cpp:651
+msgid "Current range background color:"
+msgstr "अभी हाल के सीमा पिछोत अंगना रंग:"
+
+#: optiondialog.cpp:659
+msgid "Current range diff background color:"
+msgstr "अभी हाल के सीमा डिफ पिछोत अंगना रंग:"
+
+#: optiondialog.cpp:666
+msgid "Color for manually aligned difference ranges:"
+msgstr ""
+
+#: optiondialog.cpp:672
+msgid "Directory Comparison View:"
+msgstr "डिरेक्टरी तुलना दृस्य:"
+
+#: optiondialog.cpp:678
+msgid "Newest file color:"
+msgstr ""
+
+#: optiondialog.cpp:682
+msgid ""
+"Changing this color will only be effective when starting the next directory "
+"comparison."
+msgstr ""
+
+#: optiondialog.cpp:687
+msgid "Oldest file color:"
+msgstr ""
+
+#: optiondialog.cpp:695
+msgid "Middle age file color:"
+msgstr ""
+
+#: optiondialog.cpp:703
+msgid "Color for missing files:"
+msgstr ""
+
+#: optiondialog.cpp:717
+msgid "Editor"
+msgstr "संपादक"
+
+#: optiondialog.cpp:718
+msgid "Editor Behavior"
+msgstr "संपादक व्यवहार"
+
+#: optiondialog.cpp:732
+msgid "Tab inserts spaces"
+msgstr "टैब जगह भरव करथे "
+
+#: optiondialog.cpp:735
+msgid ""
+"On: Pressing tab generates the appropriate number of spaces.\n"
+"Off: A tab character will be inserted."
+msgstr ""
+
+#: optiondialog.cpp:741
+msgid "Tab size:"
+msgstr "टैब आकारः"
+
+#: optiondialog.cpp:747
+msgid "Auto indentation"
+msgstr "अपने अपन हासिया छोड़ना"
+
+#: optiondialog.cpp:750
+msgid "On: The indentation of the previous line is used for a new line.\n"
+msgstr ""
+
+#: optiondialog.cpp:754
+msgid "Auto copy selection"
+msgstr "अपने अपन नकल चयन"
+
+#: optiondialog.cpp:757
+msgid ""
+"On: Any selection is immediately written to the clipboard.\n"
+"Off: You must explicitely copy e.g. via Ctrl-C."
+msgstr ""
+
+#: optiondialog.cpp:768
+#, fuzzy
+#| msgid "&Window"
+msgid "Dos/Windows"
+msgstr "विंडो (&W)"
+
+#: optiondialog.cpp:769
+#, fuzzy
+#| msgid "Auto Select"
+msgid "Autodetect"
+msgstr "अपने आप चुनव"
+
+#: optiondialog.cpp:772
+msgid ""
+"Sets the line endings for when an edited file is saved.\n"
+"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A"
+msgstr ""
+
+#: optiondialog.cpp:784
+msgid "Diff"
+msgstr "डिफ"
+
+#: optiondialog.cpp:785
+msgid "Diff Settings"
+msgstr "डिफ सेटिंग"
+
+#: optiondialog.cpp:809
+msgid "Treat as white space."
+msgstr "सफेद जगह के रूप मं समझव."
+
+#: optiondialog.cpp:811
+msgid "Ignore numbers"
+msgstr "संख्या मन ल अनदेखा करव"
+
+#: optiondialog.cpp:814
+msgid ""
+"Ignore number characters during line matching phase. (Similar to Ignore "
+"white space.)\n"
+"Might help to compare files with numeric data."
+msgstr ""
+
+#: optiondialog.cpp:819
+msgid "Ignore C/C++ comments"
+msgstr "C/C++ कमेंट्स ल अनदेखा करव"
+
+#: optiondialog.cpp:821
+msgid "Treat C/C++ comments like white space."
+msgstr "C/C++ कमेंट्स ल सफेद जगह के रूप मं समझव"
+
+#: optiondialog.cpp:825
+msgid "Ignore case"
+msgstr "केस अनदेखा करव"
+
+#: optiondialog.cpp:828
+msgid "Treat case differences like white space changes. ('a'<=>'A')"
+msgstr "केस डिफरेंसेस ल सफेद जगह बदले के रूप मं समझव. ('a'<=>'A')"
+
+#: optiondialog.cpp:832
+msgid "Preprocessor command:"
+msgstr "प्री-प्रोसेसर कमांड:"
+
+#: optiondialog.cpp:836
+msgid "User defined pre-processing. (See the docs for details.)"
+msgstr "कमइया परिभासित प्री-प्रोसेसिंग. (विवरन बर कागद देखव.)"
+
+#: optiondialog.cpp:839
+msgid "Line-matching preprocessor command:"
+msgstr "लाइन-मैचिंग प्री-प्रोसेसर कमांड:"
+
+#: optiondialog.cpp:843
+msgid ""
+"This pre-processor is only used during line matching.\n"
+"(See the docs for details.)"
+msgstr ""
+
+#: optiondialog.cpp:846
+msgid "Try hard (slower)"
+msgstr "गंभीर कोसिस करव (धीमा)"
+
+#: optiondialog.cpp:849
+msgid ""
+"Enables the --minimal option for the external diff.\n"
+"The analysis of big files will be much slower."
+msgstr ""
+
+#: optiondialog.cpp:854
+msgid "Align B and C for 3 input files"
+msgstr ""
+
+#: optiondialog.cpp:857
+msgid ""
+"Try to align B and C when comparing or merging three input files.\n"
+"Not recommended for merging because merge might get more complicated.\n"
+"(Default is off.)"
+msgstr ""
+
+#: optiondialog.cpp:870
+msgid "Merge Settings"
+msgstr "मिलाय के सेटिंग"
+
+#: optiondialog.cpp:885
+msgid "Auto advance delay (ms):"
+msgstr "अपने अपन एडवान्स देरी (मि.से.):"
+
+#: optiondialog.cpp:890
+msgid ""
+"When in Auto-Advance mode the result of the current selection is shown \n"
+"for the specified time, before jumping to the next conflict. Range: 0-2000 ms"
+msgstr ""
+
+#: optiondialog.cpp:895
+msgid "Show info dialogs"
+msgstr "जानकारी गोठ देखाव"
+
+#: optiondialog.cpp:897
+msgid "Show a dialog with information about the number of conflicts."
+msgstr ""
+
+#: optiondialog.cpp:900
+msgid "White space 2-file merge default:"
+msgstr "सफेद जगह 2-फाइल सम्मिलित डिफाल्ट:"
+
+#: optiondialog.cpp:904 optiondialog.cpp:917
+msgid "Manual Choice"
+msgstr "हस्तचालित चुनाव"
+
+#: optiondialog.cpp:908 optiondialog.cpp:922
+msgid ""
+"Allow the merge algorithm to automatically select an input for white-space-"
+"only changes."
+msgstr ""
+
+#: optiondialog.cpp:913
+msgid "White space 3-file merge default:"
+msgstr "सफेद जगह 3-फाइल सम्मिलित डिफाल्ट:"
+
+#: optiondialog.cpp:927
+msgid "Automatic Merge Regular Expression"
+msgstr ""
+
+#: optiondialog.cpp:940
+msgid ""
+"Regular expression for lines where KDiff3 should automatically choose one "
+"source.\n"
+"When a line with a conflict matches the regular expression then\n"
+"- if available - C, otherwise B will be chosen."
+msgstr ""
+
+#: optiondialog.cpp:946
+msgid "Run regular expression auto merge on merge start"
+msgstr ""
+
+#: optiondialog.cpp:948
+msgid ""
+"Run the merge for auto merge regular expressions\n"
+"immediately when a merge starts.\n"
+msgstr ""
+
+#: optiondialog.cpp:953
+msgid "Version Control History Merging"
+msgstr ""
+
+#: optiondialog.cpp:966
+msgid ""
+"Regular expression for the start of the version control history entry.\n"
+"Usually this line contains the \"$Log$\" keyword.\n"
+"Default value: \".*\\$Log.*\\$.*\""
+msgstr ""
+
+#: optiondialog.cpp:984
+msgid ""
+"A version control history entry consists of several lines.\n"
+"Specify the regular expression to detect the first line (without the leading "
+"comment).\n"
+"Use parentheses to group the keys you want to use for sorting.\n"
+"If left empty, then KDiff3 assumes that empty lines separate history "
+"entries.\n"
+"See the documentation for details."
+msgstr ""
+
+#: optiondialog.cpp:992
+msgid "History merge sorting"
+msgstr ""
+
+#: optiondialog.cpp:994
+msgid "Sort version control history by a key."
+msgstr ""
+
+#: optiondialog.cpp:1004
+msgid "History entry start sort key order:"
+msgstr ""
+
+#: optiondialog.cpp:1008
+msgid ""
+"Each pair of parentheses used in the regular expression for the history "
+"start entry\n"
+"groups a key that can be used for sorting.\n"
+"Specify the list of keys (that are numbered in order of occurrence\n"
+"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n"
+"If left empty, then no sorting will be done.\n"
+"See the documentation for details."
+msgstr ""
+
+#: optiondialog.cpp:1019
+msgid "Merge version control history on merge start"
+msgstr ""
+
+#: optiondialog.cpp:1021
+msgid "Run version control history automerge on merge start."
+msgstr ""
+
+#: optiondialog.cpp:1025
+msgid "Max number of history entries:"
+msgstr "इतिहास प्रविस्टि के सबसे बड़े संख्या:"
+
+#: optiondialog.cpp:1028
+msgid "Cut off after specified number. Use -1 for infinite number of entries."
+msgstr ""
+
+#: optiondialog.cpp:1032
+msgid "Test your regular expressions"
+msgstr ""
+
+#: optiondialog.cpp:1037
+msgid "Irrelevant merge command:"
+msgstr ""
+
+#: optiondialog.cpp:1041
+msgid ""
+"If specified this script is run after automerge\n"
+"when no other relevant changes were detected.\n"
+"Called with the parameters: filename1 filename2 filename3"
+msgstr ""
+
+#: optiondialog.cpp:1047
+msgid "Auto save and quit on merge without conflicts"
+msgstr ""
+
+#: optiondialog.cpp:1050
+msgid ""
+"If KDiff3 was started for a file-merge from the command line and all\n"
+"conflicts are solvable without user interaction then automatically save and "
+"quit.\n"
+"(Similar to command line option \"--auto\".)"
+msgstr ""
+
+#: optiondialog.cpp:1061 optiondialog.cpp:1062
+#, fuzzy
+msgid "Directory"
+msgstr "डिरेक्टरी (&D)"
+
+#: optiondialog.cpp:1075
+msgid "Recursive directories"
+msgstr "डिरेक्टरीज रिकर्सिव करव"
+
+#: optiondialog.cpp:1077
+msgid "Whether to analyze subdirectories or not."
+msgstr "का सबडिरेक्टरीज ल विस्लेसन करना हे या नइ. "
+
+#: optiondialog.cpp:1079
+msgid "File pattern(s):"
+msgstr "फाइल पैटर्न:"
+
+#: optiondialog.cpp:1084
+msgid ""
+"Pattern(s) of files to be analyzed. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1090
+msgid "File-anti-pattern(s):"
+msgstr "फाइल-एन्टी-पैटर्न:"
+
+#: optiondialog.cpp:1095
+msgid ""
+"Pattern(s) of files to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1101
+msgid "Dir-anti-pattern(s):"
+msgstr "डिर-एन्टी-पैटर्न:"
+
+#: optiondialog.cpp:1106
+msgid ""
+"Pattern(s) of directories to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1112
+msgid "Use .cvsignore"
+msgstr ".cvsignore के उपयोग करव"
+
+#: optiondialog.cpp:1115
+msgid ""
+"Extends the antipattern to anything that would be ignored by CVS.\n"
+"Via local \".cvsignore\" files this can be directory specific."
+msgstr ""
+
+#: optiondialog.cpp:1120
+msgid "Find hidden files and directories"
+msgstr "लुकाए फाइल मन ल अउ डिरेक्टरीज खोजव"
+
+#: optiondialog.cpp:1123
+msgid "Finds files and directories with the hidden attribute."
+msgstr "हिडन एट्रिब्यूट वाले फाइल अउ डिरेक्टरीज ल खोजव."
+
+#: optiondialog.cpp:1125
+msgid "Finds files and directories starting with '.'."
+msgstr "'.'. से चालू हो रहे फाइल अउ डिरेक्टरीज ल खोजव"
+
+#: optiondialog.cpp:1129
+msgid "Follow file links"
+msgstr "फाइल संकली के अनुसरन करव"
+
+#: optiondialog.cpp:1132
+msgid ""
+"On: Compare the file the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+
+#: optiondialog.cpp:1137
+msgid "Follow directory links"
+msgstr "डिरेक्टरी संकली के अनुसरन करव"
+
+#: optiondialog.cpp:1140
+msgid ""
+"On: Compare the directory the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+
+#: optiondialog.cpp:1156
+msgid "Case sensitive filename comparison"
+msgstr ""
+
+#: optiondialog.cpp:1159
+msgid ""
+"The directory comparison will compare files or directories when their names "
+"match.\n"
+"Set this option if the case of the names must match. (Default for Windows is "
+"off, otherwise on.)"
+msgstr ""
+
+#: optiondialog.cpp:1163
+msgid "File Comparison Mode"
+msgstr "फाइल तुलना मोड"
+
+#: optiondialog.cpp:1169
+msgid "Binary comparison"
+msgstr "बाइनरी तुलना"
+
+#: optiondialog.cpp:1170
+msgid "Binary comparison of each file. (Default)"
+msgstr "हर एक फाइल के बाइनरी तुलना. (डिफाल्ट)"
+
+#: optiondialog.cpp:1173
+msgid "Full analysis"
+msgstr "पूरा विस्लेसन"
+
+#: optiondialog.cpp:1174
+msgid ""
+"Do a full analysis and show statistics information in extra columns.\n"
+"(Slower than a binary comparison, much slower for binary files.)"
+msgstr ""
+
+#: optiondialog.cpp:1178
+msgid "Trust the size and modification date (unsafe)"
+msgstr "सुधारे के तारीक मं भरोसा करव (असुरक्छित)"
+
+#: optiondialog.cpp:1179
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"Files with equal contents but different modification dates will appear as "
+"different.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+
+#: optiondialog.cpp:1184
+#, fuzzy
+msgid ""
+"Trust the size and date, but use binary comparison if date does not match "
+"(unsafe)"
+msgstr "सुधारे के तारीक मं भरोसा करव (असुरक्छित)"
+
+#: optiondialog.cpp:1185
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"If the dates are not equal but the sizes are, use binary comparison.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+
+#: optiondialog.cpp:1190
+msgid "Trust the size (unsafe)"
+msgstr "आकार मं भरोसा करव (असुरक्छित)"
+
+#: optiondialog.cpp:1191
+msgid ""
+"Assume that files are equal if their file lengths are equal.\n"
+"Useful for big directories or slow networks when the date is modified during "
+"download."
+msgstr ""
+
+#: optiondialog.cpp:1199
+msgid "Synchronize directories"
+msgstr "डिरेक्टरीज सिंक्रोनाइज करव"
+
+#: optiondialog.cpp:1202
+msgid ""
+"Offers to store files in both directories so that\n"
+"both directories are the same afterwards.\n"
+"Works only when comparing two directories without specifying a destination."
+msgstr ""
+
+#: optiondialog.cpp:1208
+msgid "White space differences considered equal"
+msgstr ""
+
+#: optiondialog.cpp:1211
+msgid ""
+"If files differ only by white space consider them equal.\n"
+"This is only active when full analysis is chosen."
+msgstr ""
+
+#: optiondialog.cpp:1217
+msgid "Copy newer instead of merging (unsafe)"
+msgstr "सम्मिलित करे के बदला मा नवा के नकल करव (असुरक्छित)"
+
+#: optiondialog.cpp:1220
+msgid ""
+"Don't look inside, just take the newer file.\n"
+"(Use this only if you know what you are doing!)\n"
+"Only effective when comparing two directories."
+msgstr ""
+
+#: optiondialog.cpp:1225
+msgid "Backup files (.orig)"
+msgstr "बैकअप फाइल मन ल (.orig)"
+
+#: optiondialog.cpp:1228
+msgid ""
+"If a file would be saved over an old file, then the old file\n"
+"will be renamed with a '.orig' extension instead of being deleted."
+msgstr ""
+
+#: optiondialog.cpp:1301 optiondialog.cpp:1302
+msgid "Regional Settings"
+msgstr "छेत्रीय सेटिंग"
+
+#: optiondialog.cpp:1402
+msgid "Language (restart required)"
+msgstr "भाखा (फिर से चालू करना जरूरी हे)"
+
+#: optiondialog.cpp:1445
+msgid ""
+"Choose the language of the GUI strings or \"Auto\".\n"
+"For a change of language to take place, quit and restart KDiff3."
+msgstr ""
+
+#: optiondialog.cpp:1463
+msgid "Use the same encoding for everything:"
+msgstr ""
+
+#: optiondialog.cpp:1466
+msgid ""
+"Enable this allows to change all encodings by changing the first only.\n"
+"Disable this if different individual settings are needed."
+msgstr ""
+
+#: optiondialog.cpp:1471
+msgid "Note: Local Encoding is "
+msgstr "टीप: लोकल एनकोडिंग हे"
+
+#: optiondialog.cpp:1475
+msgid "File Encoding for A:"
+msgstr ""
+
+#: optiondialog.cpp:1481
+msgid ""
+"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n"
+"If the file is not Unicode then the selected encoding will be used as "
+"fallback.\n"
+"(Unicode detection depends on the first bytes of a file.)"
+msgstr ""
+
+#: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503
+msgid "Auto Detect Unicode"
+msgstr ""
+
+#: optiondialog.cpp:1490
+msgid "File Encoding for B:"
+msgstr ""
+
+#: optiondialog.cpp:1499
+msgid "File Encoding for C:"
+msgstr ""
+
+#: optiondialog.cpp:1508
+msgid "File Encoding for Merge Output and Saving:"
+msgstr ""
+
+#: optiondialog.cpp:1512
+msgid "Auto Select"
+msgstr "अपने आप चुनव"
+
+#: optiondialog.cpp:1515
+msgid ""
+"If enabled then the encoding from the input files is used.\n"
+"In ambiguous cases a dialog will ask the user to choose the encoding for "
+"saving."
+msgstr ""
+
+#: optiondialog.cpp:1519
+msgid "File Encoding for Preprocessor Files:"
+msgstr ""
+
+#: optiondialog.cpp:1530
+msgid "Right To Left Language"
+msgstr ""
+
+#: optiondialog.cpp:1533
+msgid ""
+"Some languages are read from right to left.\n"
+"This setting will change the viewer and editor accordingly."
+msgstr ""
+
+#: optiondialog.cpp:1548
+msgid "Integration"
+msgstr "इंटीग्रेसन"
+
+#: optiondialog.cpp:1549
+msgid "Integration Settings"
+msgstr "इंटीग्रेसन सेटिंग"
+
+#: optiondialog.cpp:1563
+msgid "Command line options to ignore:"
+msgstr ""
+
+#: optiondialog.cpp:1568
+msgid ""
+"List of command line options that should be ignored when KDiff3 is used by "
+"other tools.\n"
+"Several values can be specified if separated via ';'\n"
+"This will suppress the \"Unknown option\" error."
+msgstr ""
+
+#: optiondialog.cpp:1575
+msgid "Quit also via Escape key"
+msgstr ""
+
+#: optiondialog.cpp:1578
+msgid ""
+"Fast method to exit.\n"
+"For those who are used to using the Escape key."
+msgstr ""
+
+#: optiondialog.cpp:1583
+msgid "Integrate with ClearCase"
+msgstr ""
+
+#: optiondialog.cpp:1586
+msgid ""
+"Integrate with Rational ClearCase from IBM.\n"
+"Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n"
+"(Only enabled when ClearCase \"bin\" directory is in the path.)"
+msgstr ""
+
+#: optiondialog.cpp:1592
+msgid "Remove ClearCase Integration"
+msgstr ""
+
+#: optiondialog.cpp:1595
+msgid ""
+"Restore the old \"map\" file from before doing the ClearCase integration."
+msgstr ""
+
+#: optiondialog.cpp:1680
+msgid "Incompatible Font"
+msgstr "फोंट असंगत हे"
+
+#: optiondialog.cpp:1681
+msgid "Continue at Own Risk"
+msgstr "अपने अपन के जोखिम मं जारी रखव"
+
+#: optiondialog.cpp:1682
+msgid "Select Another Font"
+msgstr "अऊ दूसर फोंट चुनव"
+
+#: optiondialog.cpp:1717
+msgid "This resets all options. Not only those of the current topic."
+msgstr "ये सब्बो विकल्प मन ल रीसेट करथे . सिरिफ उनको ही नइ जऊन अभी हाल के विसय मं हे. "
+
+#: pdiff.cpp:260
+msgid "PreprocessorCmd: "
+msgstr "प्री-प्रोसेसर-कमांड:"
+
+#: pdiff.cpp:265
+msgid "The following option(s) you selected might change data:\n"
+msgstr "निम्न विकल्प जऊन आप मन चुने हेओ मन डाटा ल बदल सकथो :\n"
+
+#: pdiff.cpp:266
+msgid ""
+"\n"
+"Most likely this is not wanted during a merge.\n"
+"Do you want to disable these settings or continue with these settings active?"
+msgstr ""
+
+#: pdiff.cpp:268
+msgid "Option Unsafe for Merging"
+msgstr "सम्मिलित करे बर विकल्प असुरक्छित हे"
+
+#: pdiff.cpp:269
+msgid "Use These Options During Merge"
+msgstr "ए विकल्प मन के उपयोग सम्मिलित करे के समय करव"
+
+#: pdiff.cpp:270
+msgid "Disable Unsafe Options"
+msgstr "असुरक्छित विकल्प अक्छम करव"
+
+#: pdiff.cpp:300
+msgid "Loading A"
+msgstr "अ लोड करत हे"
+
+#: pdiff.cpp:304
+msgid "Loading B"
+msgstr "ब लोड करत हे"
+
+#: pdiff.cpp:321 pdiff.cpp:347
+msgid "Diff: A <-> B"
+msgstr "डिफ: अ <-> ब"
+
+#: pdiff.cpp:327 pdiff.cpp:372
+msgid "Linediff: A <-> B"
+msgstr "लाइनडिफ: अ <-> ब"
+
+#: pdiff.cpp:338
+msgid "Loading C"
+msgstr "स लोड करत हे"
+
+#: pdiff.cpp:350
+msgid "Diff: B <-> C"
+msgstr "डिफ: ब <-> स"
+
+#: pdiff.cpp:353
+msgid "Diff: A <-> C"
+msgstr "डिफ: अ <-> स"
+
+#: pdiff.cpp:375
+msgid "Linediff: B <-> C"
+msgstr "लाइनडिफ: ब <-> स"
+
+#: pdiff.cpp:378
+msgid "Linediff: A <-> C"
+msgstr "लाइनडिफ: अ <-> स"
+
+#: pdiff.cpp:534
+msgid "All input files contain the same text, but are not binary equal."
+msgstr ""
+
+#: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541
+#, kde-format
+msgid "Files %1 and %2 have equal text, but are not binary equal. \n"
+msgstr ""
+
+#: pdiff.cpp:551
+msgid ""
+"Some inputfiles don't seem to be pure textfiles.\n"
+"Note that the KDiff3-merge was not meant for binary data.\n"
+"Continue at your own risk."
+msgstr ""
+
+#: pdiff.cpp:566
+#, kde-format
+msgid ""
+"Some input characters could not be converted to valid unicode.\n"
+"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n"
+"Don't save the result if unsure. Continue at your own risk.\n"
+"Affected input files are in %1."
+msgstr ""
+
+#: pdiff.cpp:1080
+msgid "Abort"
+msgstr "छोड़व"
+
+#: pdiff.cpp:1087 pdiff.cpp:1175
+msgid "Opening files..."
+msgstr "फाइल मन ल खोलत हे..."
+
+#: pdiff.cpp:1152 pdiff.cpp:1223
+msgid "File open error"
+msgstr "फाइल खोले मं गलती"
+
+#: pdiff.cpp:1255
+msgid "Cutting selection..."
+msgstr "चयन ल काटत हे..."
+
+#: pdiff.cpp:1276
+msgid "Copying selection to clipboard..."
+msgstr "चुने हुए के नकल क्लिपबोर्ड मं बनात हे..."
+
+#: pdiff.cpp:1292
+msgid "Inserting clipboard contents..."
+msgstr "क्लिपबोर्ड के चीज मन ल घुसात हे..."
+
+#: pdiff.cpp:1814
+msgid "Save && Continue"
+msgstr "सहेजव अउ जारी रखव"
+
+#: pdiff.cpp:1815
+msgid "Continue Without Saving"
+msgstr "सहेजे बिना जारी रखव"
+
+#: pdiff.cpp:2018
+msgid "Search complete."
+msgstr "ढूंढना पूरा"
+
+#: pdiff.cpp:2018
+msgid "Search Complete"
+msgstr "ढूंढना पूरा"
+
+#: pdiff.cpp:2252
+msgid "Nothing is selected in either diff input window."
+msgstr ""
+
+#: pdiff.cpp:2252
+msgid "Error while adding manual diff range"
+msgstr ""
+
+#: kdiff3_shell.cpp:76
+msgid ""
+"Could not initialize the KDiff3 part.\n"
+"This usually happens due to an installation problem. Please read the README-"
+"file in the source package for details."
+msgstr ""
+
+#: rc.cpp:1
+msgctxt "NAME OF TRANSLATORS"
+msgid "Your names"
+msgstr "रविसंकर सिरीवास्तव, जी. करूनाकर"
+
+#: rc.cpp:2
+msgctxt "EMAIL OF TRANSLATORS"
+msgid "Your emails"
+msgstr "raviratlami@aol.in"
+
+#. i18n: file: kdiff3_part.rc:4
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:5
+msgid "&KDiff3"
+msgstr "के-डिफ3 (&K)"
+
+#. i18n: file: kdiff3_part.rc:13
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:8
+msgid "Configure KDiff3"
+msgstr "के-डिफ3 ल कान्फिगर करव"
+
+#. i18n: file: kdiff3_part.rc:16
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:11
+msgid "KDiff3"
+msgstr "के-डिफ3"
+
+#. i18n: file: kdiff3_shell.rc:106
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:38
+msgid "Main Toolbar"
+msgstr "मुख्य औजार पट्टी"
+
+#~ msgid "Directory Merge"
+#~ msgstr "डिरेक्टरी सम्मिलित करव"
+
+#~ msgid "C&ontinue"
+#~ msgstr "जारी रखव (&o)"
+
+#~ msgid ""
+#~ "_: NAME OF TRANSLATORS\n"
+#~ "Your names"
+#~ msgstr "रविसंकर सिरीवास्तव"
+
+#~ msgid ""
+#~ "_: EMAIL OF TRANSLATORS\n"
+#~ "Your emails"
+#~ msgstr "raviratlami@yahoo.com"
+
+#~ msgid "Enables/disables the toolbar"
+#~ msgstr "औजार-पट्टी सक्छम/अक्छम करव"
+
+#~ msgid "Files A and B are binary equal.\n"
+#~ msgstr "फाइल मन ल अ अउ ब बाइनरी समान हे.\n"
+
+#~ msgid "Files A and C are binary equal.\n"
+#~ msgstr "फाइल मन ल अ अउ स बाइनरी समान हे.\n"
+
+#~ msgid "Files A and C have equal text. \n"
+#~ msgstr "फाइल मन ल अ अउ स मं पाठ समान हे.\n"
+
+#~ msgid "Files B and C are binary equal.\n"
+#~ msgstr "फाइल मन ल ब अउ स बाइनरी समान हे.\n"
+
+#~ msgid "Files B and C have equal text. \n"
+#~ msgstr "फाइल मन ल ब अउ स मं पाठ समान हे.\n"
+
+#~ msgid "Preserve carriage return"
+#~ msgstr "कैरिज रिटर्न बनाए रखव"
+
+#, fuzzy
+#~ msgid "Diff and Merge"
+#~ msgstr "डिफ अउ सम्मिलित"
+
+#, fuzzy
+#~ msgid "Save Directory Merge State ..."
+#~ msgstr "डिरेक्टरी सम्मिलित करव"
+
+#, fuzzy
+#~ msgid "Load Directory Merge State ..."
+#~ msgstr "डिरेक्टरी सम्मिलित करव"
+
+#, fuzzy
+#~ msgid "Synchronize Directories"
+#~ msgstr "डिरेक्टरीज सिंक्रोनाइज करव"
+
+#, fuzzy
+#~ msgid "Copy Newer Files Instead of Merging"
+#~ msgstr "सम्मिलित करे के बदला मा नवा के नकल करव (असुरक्छित)"
+
+#~ msgid "List only deltas"
+#~ msgstr "सिरिफ डेल्टाज के सूची देव"
+
+#~ msgid "Files and directories without change will not appear in the list."
+#~ msgstr "बिना बदलाव मन के फाइल अउ डिरेक्टरीज सूची मं प्रकट नइ होही."
+
+#, fuzzy
+#~ msgid "no selection"
+#~ msgstr "अपने अपन नकल चयन"
+
+#, fuzzy
+#~ msgid "Manually match lines"
+#~ msgstr "हस्तचालित चुनाव"
+
+#~ msgid "Has no effect. For compatibility with certain tools."
+#~ msgstr "कोई प्रभाव नइ. कुछ औजार मन के साथ कम्पेटिबिलिटी बर."
+
+#~ msgid "For compatibility with certain tools."
+#~ msgstr "कुछ औजार मन के साथ कम्पेटिबिलिटी बर."
+
+#~ msgid "Colors in Editor & Diff Output"
+#~ msgstr "संपादक अउ डिफ आउटपुट मं रंग"
+
+#~ msgid "Text Diff and Merge Tool"
+#~ msgstr "पाठ डिफ अउ सम्मिलित करे के औजार"
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "File not saved."
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "फाइल सहेजे नइ गिस."
+
+#~ msgid "Out of memory while preparing to save."
+#~ msgstr "सहेजे बर तैयारी करे के समय मेमोरी कम पड़ गिस."
diff --git a/po/hr/CMakeLists.txt b/po/hr/CMakeLists.txt
new file mode 100644 (file)
index 0000000..d405b08
--- /dev/null
@@ -0,0 +1,2 @@
+file(GLOB _po_files *.po)
+GETTEXT_PROCESS_PO_FILES(hr ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
diff --git a/po/hr/kdiff3.po b/po/hr/kdiff3.po
new file mode 100644 (file)
index 0000000..dc04a0f
--- /dev/null
@@ -0,0 +1,2916 @@
+# Translation of kdiff3 to Croatian
+#
+# Andrej Dundovic <adundovi@gmail.com>, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2010-01-24 16:47+0100\n"
+"Last-Translator: Andrej Dundovic <adundovi@gmail.com>\n"
+"Language-Team: Croatian <kde-croatia-list@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: hr\n"
+"X-Generator: Lokalize 1.0\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"X-Environment: kde\n"
+"X-Accelerator-Marker: &\n"
+"X-Text-Markup: kde4\n"
+
+#: kreplacements/kreplacements.h:105
+msgid "Continue"
+msgstr ""
+
+#: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158
+#: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512
+msgid "Cancel"
+msgstr ""
+
+#: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631
+msgid "Quit"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339
+msgid "Ok"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715
+msgid "Help"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:185
+msgid "Defaults"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:4
+#. i18n: ectx: Menu (file)
+#: kreplacements/kreplacements.cpp:296 rc.cpp:14
+msgid "&File"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:297
+msgid "&Edit"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:7
+#. i18n: ectx: Menu (directory)
+#: kreplacements/kreplacements.cpp:298 rc.cpp:17
+msgid "&Directory"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:50
+#. i18n: ectx: Menu (movement)
+#: kreplacements/kreplacements.cpp:301 rc.cpp:26
+msgid "&Movement"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:61
+#. i18n: ectx: Menu (diff)
+#: kreplacements/kreplacements.cpp:302 rc.cpp:29
+msgid "D&iffview"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:73
+#. i18n: ectx: Menu (merge)
+#: kreplacements/kreplacements.cpp:303 rc.cpp:32
+msgid "&Merge"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:95
+#. i18n: ectx: Menu (window)
+#: kreplacements/kreplacements.cpp:304 rc.cpp:35
+msgid "&Window"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:305
+msgid "&Settings"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:306
+msgid "&Help"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:353
+msgid "&About"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:369
+msgid "A&uthor"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:383
+msgid "&Thanks To"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:30
+#. i18n: ectx: Menu (dir_current_merge_menu)
+#: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497
+#: rc.cpp:20
+msgid "Current Item Merge Operation"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:38
+#. i18n: ectx: Menu (dir_current_sync_menu)
+#: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498
+#: rc.cpp:23
+msgid "Current Item Sync Operation"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:597
+msgid "Open"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:606
+msgid "Save"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720
+msgid "Save As..."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:623
+msgid "Print..."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:639
+msgid "Cut"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:647
+msgid "Copy"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:655
+msgid "Paste"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:663
+msgid "Select All"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:671
+msgid "Show Toolbar"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:679
+msgid "Show &Status Bar"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:687
+#, kde-format
+msgid "&Configure %1..."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707
+msgid "About"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:722
+msgid "Find"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:730
+msgid "Find Next"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:750
+msgid "Select Font"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676
+msgid ""
+"You selected a variable width font.\n"
+"\n"
+"Because this program doesn't handle variable width fonts\n"
+"correctly, you might experience problems while editing.\n"
+"\n"
+"Do you want to continue or do you want to select another font."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:792
+msgid "Incompatible font."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Continue at my own risk"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Select another font"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1134
+msgid "For more documentation, see the help-menu or the subdirectory doc."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "KDiff3-Usage"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Ignore"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Exit"
+msgstr ""
+
+#: diff.cpp:251
+msgid "Writing clipboard data to temp file failed."
+msgstr ""
+
+#: diff.cpp:255
+msgid "From Clipboard"
+msgstr ""
+
+#: diff.cpp:471
+msgid "Expecting space after closing quotation mark."
+msgstr ""
+
+#: diff.cpp:474
+msgid "Not matching quotation marks."
+msgstr ""
+
+#: diff.cpp:496
+msgid "Unexpected quotation mark within argument."
+msgstr ""
+
+#: diff.cpp:503
+msgid "No program specified."
+msgstr ""
+
+#: diff.cpp:605
+#, kde-format
+msgid ""
+"Preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The preprocessing command will be disabled now."
+msgstr ""
+
+#: diff.cpp:653
+#, kde-format
+msgid ""
+"The line-matching-preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The line-matching-preprocessing command will be disabled now."
+msgstr ""
+
+#: diff.cpp:1776 diff.cpp:1790
+msgid ""
+"Data loss error:\n"
+"If it is reproducible please contact the author.\n"
+msgstr ""
+
+#: diff.cpp:1778 diff.cpp:1792
+msgid "Severe Internal Error"
+msgstr ""
+
+#: directorymergewindow.cpp:136
+msgid "Mix of links and normal files."
+msgstr ""
+
+#: directorymergewindow.cpp:143
+msgid "Link: "
+msgstr ""
+
+#: directorymergewindow.cpp:151
+msgid "Size. "
+msgstr ""
+
+#: directorymergewindow.cpp:164 directorymergewindow.cpp:174
+msgid "Date & Size: "
+msgstr ""
+
+#: directorymergewindow.cpp:184 directorymergewindow.cpp:190
+#, kde-format
+msgid "Creating temp copy of %1 failed."
+msgstr ""
+
+#: directorymergewindow.cpp:201 directorymergewindow.cpp:209
+#, kde-format
+msgid "Opening %1 failed."
+msgstr ""
+
+#: directorymergewindow.cpp:213
+msgid "Comparing file..."
+msgstr ""
+
+#: directorymergewindow.cpp:223 directorymergewindow.cpp:229
+#, kde-format
+msgid "Error reading from %1"
+msgstr ""
+
+#: directorymergewindow.cpp:358
+msgid "Name"
+msgstr ""
+
+#: directorymergewindow.cpp:358
+msgid "Operation"
+msgstr ""
+
+#: directorymergewindow.cpp:358
+msgid "Status"
+msgstr ""
+
+#: directorymergewindow.cpp:359
+msgid "Unsolved"
+msgstr ""
+
+#: directorymergewindow.cpp:359
+msgid "Solved"
+msgstr ""
+
+#: directorymergewindow.cpp:359
+msgid "Nonwhite"
+msgstr ""
+
+#: directorymergewindow.cpp:359
+msgid "White"
+msgstr "Bijelo"
+
+#: directorymergewindow.cpp:388
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort "
+"the merge and rescan the directory?"
+msgstr ""
+
+#: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655
+#: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823
+msgid "Warning"
+msgstr ""
+
+#: directorymergewindow.cpp:390 directorymergewindow.cpp:2965
+msgid "Rescan"
+msgstr ""
+
+#: directorymergewindow.cpp:391 pdiff.cpp:1081
+msgid "Continue Merging"
+msgstr ""
+
+#: directorymergewindow.cpp:548
+msgid "Opening of directories failed:"
+msgstr ""
+
+#: directorymergewindow.cpp:551
+#, kde-format
+msgid "Dir A \"%1\" does not exist or is not a directory.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:554
+#, kde-format
+msgid "Dir B \"%1\" does not exist or is not a directory.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:557
+#, kde-format
+msgid "Dir C \"%1\" does not exist or is not a directory.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:559
+msgid "Directory Open Error"
+msgstr ""
+
+#: directorymergewindow.cpp:567
+msgid ""
+"The destination directory must not be the same as A or B when three "
+"directories are merged.\n"
+"Check again before continuing."
+msgstr ""
+
+#: directorymergewindow.cpp:569
+msgid "Parameter Warning"
+msgstr ""
+
+#: directorymergewindow.cpp:574
+msgid "Scanning directories..."
+msgstr ""
+
+#: directorymergewindow.cpp:607
+msgid "Reading Directory A"
+msgstr ""
+
+#: directorymergewindow.cpp:629
+msgid "Reading Directory B"
+msgstr ""
+
+#: directorymergewindow.cpp:651
+msgid "Reading Directory C"
+msgstr ""
+
+#: directorymergewindow.cpp:677
+msgid "Some subdirectories were not readable in"
+msgstr ""
+
+#: directorymergewindow.cpp:682
+msgid "Check the permissions of the subdirectories."
+msgstr ""
+
+#: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737
+#: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233
+#: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328
+msgid "Ready."
+msgstr ""
+
+#: directorymergewindow.cpp:735
+msgid "Directory Comparison Status"
+msgstr ""
+
+#: directorymergewindow.cpp:736
+msgid "Number of subdirectories:"
+msgstr ""
+
+#: directorymergewindow.cpp:737
+msgid "Number of equal files:"
+msgstr ""
+
+#: directorymergewindow.cpp:738
+msgid "Number of different files:"
+msgstr ""
+
+#: directorymergewindow.cpp:741
+msgid "Number of manual merges:"
+msgstr ""
+
+#: directorymergewindow.cpp:912
+msgid "This affects all merge operations."
+msgstr ""
+
+#: directorymergewindow.cpp:913
+msgid "Changing All Merge Operations"
+msgstr ""
+
+#: directorymergewindow.cpp:1312
+msgid "Processing "
+msgstr ""
+
+#: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742
+msgid "To do."
+msgstr ""
+
+#: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996
+msgid "Copy A to B"
+msgstr ""
+
+#: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997
+msgid "Copy B to A"
+msgstr ""
+
+#: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998
+msgid "Delete A"
+msgstr ""
+
+#: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999
+msgid "Delete B"
+msgstr ""
+
+#: directorymergewindow.cpp:1814
+msgid "Delete A & B"
+msgstr ""
+
+#: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001
+msgid "Merge to A"
+msgstr ""
+
+#: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002
+msgid "Merge to B"
+msgstr ""
+
+#: directorymergewindow.cpp:1817
+msgid "Merge to A & B"
+msgstr ""
+
+#: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993
+msgid "Delete (if exists)"
+msgstr ""
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+#: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869
+msgid "Merge"
+msgstr ""
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+msgid "Merge (manual)"
+msgstr ""
+
+#: directorymergewindow.cpp:1824
+msgid "Error: Conflicting File Types"
+msgstr ""
+
+#: directorymergewindow.cpp:1825
+msgid "Error: Changed and Deleted"
+msgstr ""
+
+#: directorymergewindow.cpp:1826
+msgid "Error: Dates are equal but files are not."
+msgstr ""
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906
+msgid "This operation is currently not possible."
+msgstr ""
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174
+msgid "Operation Not Possible"
+msgstr ""
+
+#: directorymergewindow.cpp:1945
+msgid ""
+"This should never happen: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"If you know how to reproduce this, please contact the program author."
+msgstr ""
+
+#: directorymergewindow.cpp:1945
+msgid "Program Error"
+msgstr ""
+
+#: directorymergewindow.cpp:1956
+msgid "An error occurred while copying.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025
+#: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105
+#: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123
+#: directorymergewindow.cpp:2374
+msgid "Error"
+msgstr ""
+
+#: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375
+msgid "Merge Error"
+msgstr ""
+
+#: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380
+msgid "Error."
+msgstr ""
+
+#: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272
+#: directorymergewindow.cpp:2312
+msgid "Done."
+msgstr ""
+
+#: directorymergewindow.cpp:1990
+msgid "Not saved."
+msgstr ""
+
+#: directorymergewindow.cpp:2025
+msgid "Unknown merge operation. (This must never happen!)"
+msgstr ""
+
+#: directorymergewindow.cpp:2057
+msgid "Unknown merge operation."
+msgstr ""
+
+#: directorymergewindow.cpp:2072
+msgid ""
+"The merge is about to begin.\n"
+"\n"
+"Choose \"Do it\" if you have read the instructions and know what you are "
+"doing.\n"
+"Choosing \"Simulate it\" will tell you what would happen.\n"
+"\n"
+"Be aware that this program still has beta status and there is NO WARRANTY "
+"whatsoever! Make backups of your vital data!"
+msgstr ""
+
+#: directorymergewindow.cpp:2077
+msgid "Starting Merge"
+msgstr ""
+
+#: directorymergewindow.cpp:2078
+msgid "Do It"
+msgstr ""
+
+#: directorymergewindow.cpp:2079
+msgid "Simulate It"
+msgstr ""
+
+#: directorymergewindow.cpp:2105
+msgid ""
+"The highlighted item has a different type in the different directories. "
+"Select what to do."
+msgstr ""
+
+#: directorymergewindow.cpp:2114
+msgid ""
+"The modification dates of the file are equal but the files are not. Select "
+"what to do."
+msgstr ""
+
+#: directorymergewindow.cpp:2123
+msgid ""
+"The highlighted item was changed in one directory and deleted in the other. "
+"Select what to do."
+msgstr ""
+
+#: directorymergewindow.cpp:2174
+msgid ""
+"This operation is currently not possible because directory merge is "
+"currently running."
+msgstr ""
+
+#: directorymergewindow.cpp:2234
+msgid ""
+"There was an error in the last step.\n"
+"Do you want to continue with the item that caused the error or do you want "
+"to skip this item?"
+msgstr ""
+
+#: directorymergewindow.cpp:2236
+msgid "Continue merge after an error"
+msgstr ""
+
+#: directorymergewindow.cpp:2237
+msgid "Continue With Last Item"
+msgstr ""
+
+#: directorymergewindow.cpp:2238
+msgid "Skip Item"
+msgstr ""
+
+#: directorymergewindow.cpp:2272
+msgid "Skipped."
+msgstr ""
+
+#: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493
+msgid "In progress..."
+msgstr ""
+
+#: directorymergewindow.cpp:2327
+msgid "Merge operation complete."
+msgstr ""
+
+#: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330
+msgid "Merge Complete"
+msgstr ""
+
+#: directorymergewindow.cpp:2340
+msgid ""
+"Simulated merge complete: Check if you agree with the proposed operations."
+msgstr ""
+
+#: directorymergewindow.cpp:2374
+msgid "An error occurred. Press OK to see detailed information.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:2406
+#, kde-format
+msgid "Error: While deleting %1: Creating backup failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2413
+#, kde-format
+msgid "delete directory recursively( %1 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2415
+#, kde-format
+msgid "delete( %1 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2430
+msgid "Error: delete dir operation failed while trying to read the directory."
+msgstr ""
+
+#: directorymergewindow.cpp:2449
+#, kde-format
+msgid "Error: rmdir( %1 ) operation failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2459
+msgid "Error: delete operation failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2485
+#, kde-format
+msgid "manual merge( %1, %2, %3 -> %4)"
+msgstr ""
+
+#: directorymergewindow.cpp:2488
+msgid ""
+"     Note: After a manual merge the user should continue by pressing F7."
+msgstr ""
+
+#: directorymergewindow.cpp:2513
+#, kde-format
+msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2522
+#, kde-format
+msgid "copyLink( %1 -> %2 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2533
+msgid "Error: copyLink failed: Remote links are not yet supported."
+msgstr ""
+
+#: directorymergewindow.cpp:2539
+msgid "Error: copyLink failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2564
+#, kde-format
+msgid "copy( %1 -> %2 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2590
+#, kde-format
+msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination."
+msgstr ""
+
+#: directorymergewindow.cpp:2596
+#, kde-format
+msgid "rename( %1 -> %2 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2605
+msgid "Error: Rename failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2623
+#, kde-format
+msgid "Error during makeDir of %1. Cannot delete existing file."
+msgstr ""
+
+#: directorymergewindow.cpp:2639
+#, kde-format
+msgid "makeDir( %1 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2649
+msgid "Error while creating directory."
+msgstr ""
+
+#: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784
+msgid "Dest"
+msgstr ""
+
+#: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709
+msgid "Dir"
+msgstr ""
+
+#: directorymergewindow.cpp:2678
+msgid "Type"
+msgstr ""
+
+#: directorymergewindow.cpp:2678
+msgid "Size"
+msgstr ""
+
+#: directorymergewindow.cpp:2679
+msgid "Attr"
+msgstr ""
+
+#: directorymergewindow.cpp:2679
+msgid "Last Modification"
+msgstr ""
+
+#: directorymergewindow.cpp:2679
+msgid "Link-Destination"
+msgstr ""
+
+#: directorymergewindow.cpp:2709 difftextwindow.cpp:401
+msgid "File"
+msgstr ""
+
+#: directorymergewindow.cpp:2726
+msgid "not available"
+msgstr ""
+
+#: directorymergewindow.cpp:2746
+msgid "A (Dest): "
+msgstr ""
+
+#: directorymergewindow.cpp:2749
+msgid "A (Base): "
+msgstr ""
+
+#: directorymergewindow.cpp:2755
+msgid "B (Dest): "
+msgstr ""
+
+#: directorymergewindow.cpp:2763
+msgid "C (Dest): "
+msgstr ""
+
+#: directorymergewindow.cpp:2769
+msgid "Dest: "
+msgstr ""
+
+#: directorymergewindow.cpp:2836
+msgid "Save Directory Merge State As..."
+msgstr ""
+
+#: directorymergewindow.cpp:2959
+msgid "Start/Continue Directory Merge"
+msgstr ""
+
+#: directorymergewindow.cpp:2960
+msgid "Run Operation for Current Item"
+msgstr ""
+
+#: directorymergewindow.cpp:2961
+msgid "Compare Selected File"
+msgstr ""
+
+#: directorymergewindow.cpp:2962
+msgid "Merge Current File"
+msgstr ""
+
+#: directorymergewindow.cpp:2962
+msgid ""
+"Merge\n"
+"File"
+msgstr ""
+
+#: directorymergewindow.cpp:2963
+msgid "Fold All Subdirs"
+msgstr ""
+
+#: directorymergewindow.cpp:2964
+msgid "Unfold All Subdirs"
+msgstr ""
+
+#: directorymergewindow.cpp:2968
+msgid "Choose A for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2969
+msgid "Choose B for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2970
+msgid "Choose C for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2971
+msgid "Auto-Choose Operation for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2972
+msgid "No Operation for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2977
+msgid "Show Identical Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2977
+msgid ""
+"Identical\n"
+"Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2978
+msgid "Show Different Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2979
+msgid "Show Files only in A"
+msgstr ""
+
+#: directorymergewindow.cpp:2979
+msgid ""
+"Files\n"
+"only in A"
+msgstr ""
+
+#: directorymergewindow.cpp:2980
+msgid "Show Files only in B"
+msgstr ""
+
+#: directorymergewindow.cpp:2980
+msgid ""
+"Files\n"
+"only in B"
+msgstr ""
+
+#: directorymergewindow.cpp:2981
+msgid "Show Files only in C"
+msgstr ""
+
+#: directorymergewindow.cpp:2981
+msgid ""
+"Files\n"
+"only in C"
+msgstr ""
+
+#: directorymergewindow.cpp:2985
+msgid "Compare Explicitly Selected Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2986
+msgid "Merge Explicitly Selected Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995
+msgid "Do Nothing"
+msgstr ""
+
+#: directorymergewindow.cpp:2989
+msgid "A"
+msgstr ""
+
+#: directorymergewindow.cpp:2990
+msgid "B"
+msgstr ""
+
+#: directorymergewindow.cpp:2991
+msgid "C"
+msgstr ""
+
+#: directorymergewindow.cpp:3000
+msgid "Delete A && B"
+msgstr ""
+
+#: directorymergewindow.cpp:3003
+msgid "Merge to A && B"
+msgstr ""
+
+#: main.cpp:74 main.cpp:76
+msgid "Ignored. (User defined.)"
+msgstr ""
+
+#: main.cpp:162
+msgid "kdiff3"
+msgstr ""
+
+#: main.cpp:164
+msgid "Tool for Comparison and Merge of Files and Directories"
+msgstr ""
+
+#: main.cpp:165
+msgid "(c) 2002-2011 Joachim Eibl"
+msgstr ""
+
+#: main.cpp:172 kdiff3_part.cpp:303
+msgid "Joachim Eibl"
+msgstr ""
+
+#: main.cpp:173
+msgid "Eike Sauer"
+msgstr ""
+
+#: main.cpp:173
+msgid "Bugfixes, Debian package maintainer"
+msgstr ""
+
+#: main.cpp:174
+msgid "Sebastien Fricker"
+msgstr ""
+
+#: main.cpp:174
+msgid "Windows installer"
+msgstr ""
+
+#: main.cpp:175
+msgid "Stephan Binner"
+msgstr ""
+
+#: main.cpp:175
+msgid "i18n-help"
+msgstr ""
+
+#: main.cpp:176
+msgid "Stefan Partheymueller"
+msgstr ""
+
+#: main.cpp:176
+msgid "Clipboard-patch"
+msgstr ""
+
+#: main.cpp:177
+msgid "David Faure"
+msgstr ""
+
+#: main.cpp:177
+msgid "KIO-Help"
+msgstr ""
+
+#: main.cpp:178
+msgid "Bernd Gehrmann"
+msgstr ""
+
+#: main.cpp:178
+msgid "Class CvsIgnoreList from Cervisia"
+msgstr ""
+
+#: main.cpp:179
+msgid "Andre Woebbeking"
+msgstr ""
+
+#: main.cpp:179
+msgid "Class StringMatcher"
+msgstr ""
+
+#: main.cpp:180
+msgid "Michael Denio"
+msgstr ""
+
+#: main.cpp:180
+msgid "Directory Equality-Coloring patch"
+msgstr ""
+
+#: main.cpp:181
+msgid "Manfred Koehler"
+msgstr ""
+
+#: main.cpp:181
+msgid "Fix for slow startup on Windows"
+msgstr ""
+
+#: main.cpp:182
+msgid "Sergey Zorin"
+msgstr ""
+
+#: main.cpp:182
+msgid "Diff Ext for Windows"
+msgstr ""
+
+#: main.cpp:183
+msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+msgstr ""
+
+#: main.cpp:183
+msgid "GNU-Diffutils"
+msgstr ""
+
+#: main.cpp:184
+msgid "Tino Boellsterling, Timothy Mee"
+msgstr ""
+
+#: main.cpp:184
+msgid "Intensive test, use and feedback"
+msgstr ""
+
+#: main.cpp:185
+msgid "Michael Schmidt"
+msgstr ""
+
+#: main.cpp:185
+msgid "Mac support"
+msgstr ""
+
+#: main.cpp:186
+msgid "Valentin Rusu"
+msgstr ""
+
+#: main.cpp:186 main.cpp:187
+msgid "KDE4 porting"
+msgstr ""
+
+#: main.cpp:187
+msgid "Albert Astals Cid"
+msgstr ""
+
+#: main.cpp:188
+msgid "Silvan Scherrer"
+msgstr ""
+
+#: main.cpp:188
+msgid "OS2 port"
+msgstr ""
+
+#: main.cpp:190
+msgid "+ Many thanks to those who reported bugs and contributed ideas!"
+msgstr ""
+
+#: main.cpp:196
+msgid "Merge the input."
+msgstr ""
+
+#: main.cpp:197
+msgid "Explicit base file. For compatibility with certain tools."
+msgstr ""
+
+#: main.cpp:198
+msgid "Output file. Implies -m. E.g.: -o newfile.txt"
+msgstr ""
+
+#: main.cpp:199
+msgid "Output file, again. (For compatibility with certain tools.)"
+msgstr ""
+
+#: main.cpp:200
+msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)"
+msgstr ""
+
+#: main.cpp:201
+msgid "Don't solve conflicts automatically. (For compatibility...)"
+msgstr ""
+
+#: main.cpp:202
+msgid "Visible name replacement for input file 1 (base)."
+msgstr ""
+
+#: main.cpp:203
+msgid "Visible name replacement for input file 2."
+msgstr ""
+
+#: main.cpp:204
+msgid "Visible name replacement for input file 3."
+msgstr ""
+
+#: main.cpp:205
+msgid "Alternative visible name replacement. Supply this once for every input."
+msgstr ""
+
+#: main.cpp:206
+msgid ""
+"Override a config setting. Use once for every setting. E.g.: --cs "
+"\"AutoAdvance=1\""
+msgstr ""
+
+#: main.cpp:207
+msgid "Show list of config settings and current values."
+msgstr ""
+
+#: main.cpp:208
+msgid "Use a different config file."
+msgstr ""
+
+#: main.cpp:211
+msgid "file1 to open (base, if not specified via --base)"
+msgstr ""
+
+#: main.cpp:212
+msgid "file2 to open"
+msgstr ""
+
+#: main.cpp:213
+msgid "file3 to open"
+msgstr ""
+
+#: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976
+#: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002
+#: mergeresultwindow.cpp:1014
+#, kde-format
+msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)"
+msgstr ""
+
+#: mergeresultwindow.cpp:303
+msgid ""
+"The output has been modified.\n"
+"If you continue your changes will be lost."
+msgstr ""
+
+#: mergeresultwindow.cpp:834 pdiff.cpp:532
+msgid "All input files are binary equal."
+msgstr ""
+
+#: mergeresultwindow.cpp:836
+msgid "All input files contain the same text."
+msgstr ""
+
+#: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840
+#: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540
+#, kde-format
+msgid "Files %1 and %2 are binary equal.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841
+#: mergeresultwindow.cpp:843
+#, kde-format
+msgid "Files %1 and %2 have equal text.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:849
+msgid "Total number of conflicts: "
+msgstr ""
+
+#: mergeresultwindow.cpp:850
+msgid ""
+"\n"
+"Nr of automatically solved conflicts: "
+msgstr ""
+
+#: mergeresultwindow.cpp:851
+msgid ""
+"\n"
+"Nr of unsolved conflicts: "
+msgstr ""
+
+#: mergeresultwindow.cpp:853
+msgid "Conflicts"
+msgstr ""
+
+#: mergeresultwindow.cpp:1728
+msgid "<No src line>"
+msgstr ""
+
+#: mergeresultwindow.cpp:1736
+msgid "<Merge Conflict (Whitespace only)>"
+msgstr ""
+
+#: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517
+msgid "<Merge Conflict>"
+msgstr ""
+
+#: mergeresultwindow.cpp:2725
+msgid ""
+"Not all conflicts are solved yet.\n"
+"File not saved.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736
+msgid "Conflicts Left"
+msgstr ""
+
+#: mergeresultwindow.cpp:2734
+msgid ""
+"There is a line end style conflict. Please choose the line end style "
+"manually.\n"
+"File not saved.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:2748
+msgid ""
+"\n"
+"\n"
+"Creating backup failed. File not saved."
+msgstr ""
+
+#: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792
+msgid "File Save Error"
+msgstr ""
+
+#: mergeresultwindow.cpp:2792
+msgid "Error while writing."
+msgstr ""
+
+#: mergeresultwindow.cpp:3122
+msgid "Output"
+msgstr ""
+
+#: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314
+msgid "[Modified]"
+msgstr ""
+
+#: mergeresultwindow.cpp:3141
+msgid "Encoding for saving"
+msgstr ""
+
+#: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737
+#: optiondialog.cpp:762
+msgid "Line end style:"
+msgstr ""
+
+#: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767
+msgid "Unix"
+msgstr ""
+
+#: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737
+msgid "DOS"
+msgstr ""
+
+#: mergeresultwindow.cpp:3229
+msgid "Conflict"
+msgstr ""
+
+#: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263
+#: mergeresultwindow.cpp:3265
+msgid "Codec from"
+msgstr ""
+
+#: kdiff3_part.cpp:157 kdiff3_part.cpp:234
+msgid "Couldn't find files for comparison."
+msgstr ""
+
+#: kdiff3_part.cpp:302
+msgid "KDiff3Part"
+msgstr ""
+
+#: fileaccess.cpp:612
+msgid ""
+"While trying to make a backup, deleting an older backup failed. \n"
+"Filename: "
+msgstr ""
+
+#: fileaccess.cpp:619
+msgid ""
+"While trying to make a backup, renaming failed. \n"
+"Filenames: "
+msgstr ""
+
+#: fileaccess.cpp:643
+#, kde-format
+msgid "Getting file status: %1"
+msgstr ""
+
+#: fileaccess.cpp:686
+#, kde-format
+msgid "Reading file: %1"
+msgstr ""
+
+#: fileaccess.cpp:723
+#, kde-format
+msgid "Writing file: %1"
+msgstr ""
+
+#: fileaccess.cpp:751
+msgid "Out of memory"
+msgstr ""
+
+#: fileaccess.cpp:786
+#, kde-format
+msgid "Making directory: %1"
+msgstr ""
+
+#: fileaccess.cpp:806
+#, kde-format
+msgid "Removing directory: %1"
+msgstr ""
+
+#: fileaccess.cpp:821
+#, kde-format
+msgid "Removing file: %1"
+msgstr ""
+
+#: fileaccess.cpp:837
+#, kde-format
+msgid "Creating symbolic link: %1 -> %2"
+msgstr ""
+
+#: fileaccess.cpp:864
+#, kde-format
+msgid "Renaming file: %1 -> %2"
+msgstr ""
+
+#: fileaccess.cpp:897
+#, kde-format
+msgid "Copying file: %1 -> %2"
+msgstr ""
+
+#: fileaccess.cpp:911
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for reading failed. Filename: "
+"%1"
+msgstr ""
+
+#: fileaccess.cpp:917
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for writing failed. Filename: "
+"%1"
+msgstr ""
+
+#: fileaccess.cpp:932
+#, kde-format
+msgid "Error during file copy operation: Reading failed. Filename: %1"
+msgstr ""
+
+#: fileaccess.cpp:941
+#, kde-format
+msgid "Error during file copy operation: Writing failed. Filename: %1"
+msgstr ""
+
+#: fileaccess.cpp:1231
+msgid "Reading directory: "
+msgstr ""
+
+#: fileaccess.cpp:1355
+#, kde-format
+msgid "Listing directory: %1"
+msgstr ""
+
+#: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396
+msgid "&Cancel"
+msgstr ""
+
+#: difftextwindow.cpp:403
+msgid "Line"
+msgstr ""
+
+#: difftextwindow.cpp:405
+msgid "Line not available"
+msgstr ""
+
+#: difftextwindow.cpp:1703 difftextwindow.cpp:1736
+msgid "Encoding:"
+msgstr ""
+
+#: difftextwindow.cpp:1759 kdiff3.cpp:831
+msgid "Top line"
+msgstr ""
+
+#: difftextwindow.cpp:1769
+msgid "End"
+msgstr ""
+
+#: kdiff3.cpp:169
+msgid "Current Configuration:"
+msgstr ""
+
+#: kdiff3.cpp:174
+msgid "Config Option Error:"
+msgstr ""
+
+#: kdiff3.cpp:219
+msgid "Option --auto used, but no output file specified."
+msgstr ""
+
+#: kdiff3.cpp:369
+msgid "Option --auto ignored for directory comparison."
+msgstr ""
+
+#: kdiff3.cpp:405
+msgid "Saving failed."
+msgstr ""
+
+#: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214
+msgid "Opening of these files failed:"
+msgstr ""
+
+#: kdiff3.cpp:449
+msgid "File Open Error"
+msgstr ""
+
+#: kdiff3.cpp:477
+msgid "Opens documents for comparison..."
+msgstr ""
+
+#: kdiff3.cpp:479
+msgid "Reload"
+msgstr ""
+
+#: kdiff3.cpp:482
+msgid "Saves the merge result. All conflicts must be solved!"
+msgstr ""
+
+#: kdiff3.cpp:484
+msgid "Saves the current document as..."
+msgstr ""
+
+#: kdiff3.cpp:487
+msgid "Print the differences"
+msgstr ""
+
+#: kdiff3.cpp:490
+msgid "Quits the application"
+msgstr ""
+
+#: kdiff3.cpp:492
+msgid "Cuts the selected section and puts it to the clipboard"
+msgstr ""
+
+#: kdiff3.cpp:494
+msgid "Copies the selected section to the clipboard"
+msgstr ""
+
+#: kdiff3.cpp:496
+msgid "Pastes the clipboard contents to current position"
+msgstr ""
+
+#: kdiff3.cpp:498
+msgid "Select everything in current window"
+msgstr ""
+
+#: kdiff3.cpp:500
+msgid "Search for a string"
+msgstr ""
+
+#: kdiff3.cpp:502
+msgid "Search again for the string"
+msgstr ""
+
+#: kdiff3.cpp:507
+msgid "Enables/disables the statusbar"
+msgstr ""
+
+#: kdiff3.cpp:511
+msgid "Configure KDiff3..."
+msgstr ""
+
+#: kdiff3.cpp:532
+msgid "Go to Current Delta"
+msgstr ""
+
+#: kdiff3.cpp:532
+msgid ""
+"Current\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:534
+msgid "Go to First Delta"
+msgstr ""
+
+#: kdiff3.cpp:534
+msgid ""
+"First\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:536
+msgid "Go to Last Delta"
+msgstr ""
+
+#: kdiff3.cpp:536
+msgid ""
+"Last\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:538
+msgid "(Skips white space differences when \"Show White Space\" is disabled.)"
+msgstr ""
+
+#: kdiff3.cpp:539
+msgid ""
+"(Does not skip white space differences even when \"Show White Space\" is "
+"disabled.)"
+msgstr ""
+
+#: kdiff3.cpp:540
+msgid "Go to Previous Delta"
+msgstr ""
+
+#: kdiff3.cpp:540
+msgid ""
+"Prev\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:542
+msgid "Go to Next Delta"
+msgstr ""
+
+#: kdiff3.cpp:542
+msgid ""
+"Next\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:544
+msgid "Go to Previous Conflict"
+msgstr ""
+
+#: kdiff3.cpp:544
+msgid ""
+"Prev\n"
+"Conflict"
+msgstr ""
+
+#: kdiff3.cpp:546
+msgid "Go to Next Conflict"
+msgstr ""
+
+#: kdiff3.cpp:546
+msgid ""
+"Next\n"
+"Conflict"
+msgstr ""
+
+#: kdiff3.cpp:548
+msgid "Go to Previous Unsolved Conflict"
+msgstr ""
+
+#: kdiff3.cpp:548
+msgid ""
+"Prev\n"
+"Unsolved"
+msgstr ""
+
+#: kdiff3.cpp:550
+msgid "Go to Next Unsolved Conflict"
+msgstr ""
+
+#: kdiff3.cpp:550
+msgid ""
+"Next\n"
+"Unsolved"
+msgstr ""
+
+#: kdiff3.cpp:552
+msgid "Select Line(s) From A"
+msgstr ""
+
+#: kdiff3.cpp:552
+msgid ""
+"Choose\n"
+"A"
+msgstr ""
+
+#: kdiff3.cpp:553
+msgid "Select Line(s) From B"
+msgstr ""
+
+#: kdiff3.cpp:553
+msgid ""
+"Choose\n"
+"B"
+msgstr ""
+
+#: kdiff3.cpp:554
+msgid "Select Line(s) From C"
+msgstr ""
+
+#: kdiff3.cpp:554
+msgid ""
+"Choose\n"
+"C"
+msgstr ""
+
+#: kdiff3.cpp:555
+msgid "Automatically Go to Next Unsolved Conflict After Source Selection"
+msgstr ""
+
+#: kdiff3.cpp:555
+msgid ""
+"Auto\n"
+"Next"
+msgstr ""
+
+#: kdiff3.cpp:557
+msgid "Show Space && Tabulator Characters for Differences"
+msgstr ""
+
+#: kdiff3.cpp:557
+msgid ""
+"White\n"
+"Characters"
+msgstr ""
+
+#: kdiff3.cpp:558
+msgid "Show White Space"
+msgstr ""
+
+#: kdiff3.cpp:558
+msgid ""
+"White\n"
+"Deltas"
+msgstr ""
+
+#: kdiff3.cpp:560
+msgid "Show Line Numbers"
+msgstr ""
+
+#: kdiff3.cpp:560
+msgid ""
+"Line\n"
+"Numbers"
+msgstr ""
+
+#: kdiff3.cpp:561
+msgid "Choose A Everywhere"
+msgstr ""
+
+#: kdiff3.cpp:562
+msgid "Choose B Everywhere"
+msgstr ""
+
+#: kdiff3.cpp:563
+msgid "Choose C Everywhere"
+msgstr ""
+
+#: kdiff3.cpp:564
+msgid "Choose A for All Unsolved Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:565
+msgid "Choose B for All Unsolved Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:566
+msgid "Choose C for All Unsolved Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:567
+msgid "Choose A for All Unsolved Whitespace Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:568
+msgid "Choose B for All Unsolved Whitespace Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:569
+msgid "Choose C for All Unsolved Whitespace Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:570
+msgid "Automatically Solve Simple Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:571
+msgid "Set Deltas to Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:572
+msgid "Run Regular Expression Auto Merge"
+msgstr ""
+
+#: kdiff3.cpp:573
+msgid "Automatically Solve History Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:574
+msgid "Split Diff At Selection"
+msgstr ""
+
+#: kdiff3.cpp:575
+msgid "Join Selected Diffs"
+msgstr ""
+
+#: kdiff3.cpp:577
+msgid "Show Window A"
+msgstr ""
+
+#: kdiff3.cpp:578
+msgid "Show Window B"
+msgstr ""
+
+#: kdiff3.cpp:579
+msgid "Show Window C"
+msgstr ""
+
+#: kdiff3.cpp:580 kdiff3.cpp:591
+msgid "Focus Next Window"
+msgstr ""
+
+#: kdiff3.cpp:582
+msgid "Normal Overview"
+msgstr ""
+
+#: kdiff3.cpp:583
+msgid "A vs. B Overview"
+msgstr ""
+
+#: kdiff3.cpp:584
+msgid "A vs. C Overview"
+msgstr ""
+
+#: kdiff3.cpp:585
+msgid "B vs. C Overview"
+msgstr ""
+
+#: kdiff3.cpp:586
+msgid "Word Wrap Diff Windows"
+msgstr ""
+
+#: kdiff3.cpp:587
+msgid "Add Manual Diff Alignment"
+msgstr ""
+
+#: kdiff3.cpp:588
+msgid "Clear All Manual Diff Alignments"
+msgstr ""
+
+#: kdiff3.cpp:593
+msgid "Focus Prev Window"
+msgstr ""
+
+#: kdiff3.cpp:594
+msgid "Toggle Split Orientation"
+msgstr ""
+
+#: kdiff3.cpp:596
+msgid "Dir && Text Split Screen View"
+msgstr ""
+
+#: kdiff3.cpp:598
+msgid "Toggle Between Dir && Text View"
+msgstr ""
+
+#: kdiff3.cpp:654 pdiff.cpp:1812
+msgid "The merge result hasn't been saved."
+msgstr ""
+
+#: kdiff3.cpp:656
+msgid "Save && Quit"
+msgstr ""
+
+#: kdiff3.cpp:657
+msgid "Quit Without Saving"
+msgstr ""
+
+#: kdiff3.cpp:665 pdiff.cpp:1823
+msgid "Saving the merge result failed."
+msgstr ""
+
+#: kdiff3.cpp:676 pdiff.cpp:1078
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort?"
+msgstr ""
+
+#: kdiff3.cpp:701
+msgid "Saving file..."
+msgstr ""
+
+#: kdiff3.cpp:718
+msgid "Saving file with a new filename..."
+msgstr ""
+
+#: kdiff3.cpp:781
+msgid "Printing not implemented."
+msgstr ""
+
+#: kdiff3.cpp:815
+msgid "Printing..."
+msgstr ""
+
+#: kdiff3.cpp:956
+msgid "Selection"
+msgstr ""
+
+#: kdiff3.cpp:982
+msgid "Printing completed."
+msgstr ""
+
+#: kdiff3.cpp:986
+msgid "Printing aborted."
+msgstr ""
+
+#: kdiff3.cpp:993
+msgid "Exiting..."
+msgstr ""
+
+#: kdiff3.cpp:1006
+msgid "Toggling toolbar..."
+msgstr ""
+
+#: kdiff3.cpp:1027
+msgid "Toggle the statusbar..."
+msgstr ""
+
+#: smalldialogs.cpp:58
+msgid "A (Base):"
+msgstr ""
+
+#: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99
+#: smalldialogs.cpp:142
+msgid "File..."
+msgstr ""
+
+#: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101
+#: smalldialogs.cpp:144
+msgid "Dir..."
+msgstr ""
+
+#: smalldialogs.cpp:93
+msgid "C (Optional):"
+msgstr ""
+
+#: smalldialogs.cpp:116
+msgid "Swap/Copy Names ..."
+msgstr ""
+
+#: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123
+#, kde-format
+msgid "Swap %1<->%2"
+msgstr ""
+
+#: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126
+#, kde-format
+msgid "Copy %1->Output"
+msgstr ""
+
+#: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129
+#, kde-format
+msgid "Swap %1<->Output"
+msgstr ""
+
+#: smalldialogs.cpp:136
+msgid "Output (optional):"
+msgstr ""
+
+#: smalldialogs.cpp:168
+msgid "Configure..."
+msgstr ""
+
+#: smalldialogs.cpp:174
+msgid "&OK"
+msgstr ""
+
+#: smalldialogs.cpp:362
+msgid "Search text:"
+msgstr ""
+
+#: smalldialogs.cpp:369
+msgid "Case sensitive"
+msgstr ""
+
+#: smalldialogs.cpp:372
+msgid "Search A"
+msgstr ""
+
+#: smalldialogs.cpp:377
+msgid "Search B"
+msgstr ""
+
+#: smalldialogs.cpp:382
+msgid "Search C"
+msgstr ""
+
+#: smalldialogs.cpp:387
+msgid "Search output"
+msgstr ""
+
+#: smalldialogs.cpp:392
+msgid "&Search"
+msgstr ""
+
+#: smalldialogs.cpp:409
+msgid "Regular Expression Tester"
+msgstr ""
+
+#: smalldialogs.cpp:414 optiondialog.cpp:936
+msgid "Auto merge regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:422
+msgid "Example auto merge line:"
+msgstr ""
+
+#: smalldialogs.cpp:424
+msgid "To test auto merge, copy a line as used in your files."
+msgstr ""
+
+#: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494
+msgid "Match result:"
+msgstr ""
+
+#: smalldialogs.cpp:441 optiondialog.cpp:962
+msgid "History start regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:449
+msgid "Example history start line (with leading comment):"
+msgstr ""
+
+#: smalldialogs.cpp:451
+msgid ""
+"Copy a history start line as used in your files,\n"
+"including the leading comment."
+msgstr ""
+
+#: smalldialogs.cpp:469 optiondialog.cpp:972
+msgid "History entry start regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:477
+msgid "History sort key order:"
+msgstr ""
+
+#: smalldialogs.cpp:485
+msgid "Example history entry start line (without leading comment):"
+msgstr ""
+
+#: smalldialogs.cpp:487
+msgid ""
+"Copy a history entry start line as used in your files,\n"
+"but omit the leading comment."
+msgstr ""
+
+#: smalldialogs.cpp:501
+msgid "Sort key result:"
+msgstr ""
+
+#: smalldialogs.cpp:508
+msgid "OK"
+msgstr ""
+
+#: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583
+msgid "Match success."
+msgstr ""
+
+#: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589
+msgid "Match failed."
+msgstr ""
+
+#: smalldialogs.cpp:574
+msgid "Opening and closing parentheses do not match in regular expression."
+msgstr ""
+
+#: optiondialog.cpp:367
+msgid "Unicode, 8 bit"
+msgstr ""
+
+#: optiondialog.cpp:368
+msgid "Unicode"
+msgstr ""
+
+#: optiondialog.cpp:369
+msgid "Latin1"
+msgstr ""
+
+#: optiondialog.cpp:388
+msgid "Change this if non-ASCII characters are not displayed correctly."
+msgstr ""
+
+#: optiondialog.cpp:465
+msgid "Configure"
+msgstr ""
+
+#: optiondialog.cpp:531
+msgid "Font"
+msgstr ""
+
+#: optiondialog.cpp:532
+msgid "Editor & Diff Output Font"
+msgstr ""
+
+#: optiondialog.cpp:556
+msgid "Italic font for deltas"
+msgstr ""
+
+#: optiondialog.cpp:559
+msgid ""
+"Selects the italic version of the font for differences.\n"
+"If the font doesn't support italic characters, then this does nothing."
+msgstr ""
+
+#: optiondialog.cpp:568
+msgid "Color"
+msgstr ""
+
+#: optiondialog.cpp:569
+msgid "Colors Settings"
+msgstr ""
+
+#: optiondialog.cpp:588
+msgid "Editor and Diff Views:"
+msgstr ""
+
+#: optiondialog.cpp:596
+msgid "Foreground color:"
+msgstr ""
+
+#: optiondialog.cpp:603
+msgid "Background color:"
+msgstr ""
+
+#: optiondialog.cpp:612
+msgid "Diff background color:"
+msgstr ""
+
+#: optiondialog.cpp:620
+msgid "Color A:"
+msgstr ""
+
+#: optiondialog.cpp:628
+msgid "Color B:"
+msgstr ""
+
+#: optiondialog.cpp:636
+msgid "Color C:"
+msgstr ""
+
+#: optiondialog.cpp:643
+msgid "Conflict color:"
+msgstr ""
+
+#: optiondialog.cpp:651
+msgid "Current range background color:"
+msgstr ""
+
+#: optiondialog.cpp:659
+msgid "Current range diff background color:"
+msgstr ""
+
+#: optiondialog.cpp:666
+msgid "Color for manually aligned difference ranges:"
+msgstr ""
+
+#: optiondialog.cpp:672
+msgid "Directory Comparison View:"
+msgstr ""
+
+#: optiondialog.cpp:678
+msgid "Newest file color:"
+msgstr ""
+
+#: optiondialog.cpp:682
+msgid ""
+"Changing this color will only be effective when starting the next directory "
+"comparison."
+msgstr ""
+
+#: optiondialog.cpp:687
+msgid "Oldest file color:"
+msgstr ""
+
+#: optiondialog.cpp:695
+msgid "Middle age file color:"
+msgstr ""
+
+#: optiondialog.cpp:703
+msgid "Color for missing files:"
+msgstr ""
+
+#: optiondialog.cpp:717
+msgid "Editor"
+msgstr ""
+
+#: optiondialog.cpp:718
+msgid "Editor Behavior"
+msgstr ""
+
+#: optiondialog.cpp:732
+msgid "Tab inserts spaces"
+msgstr ""
+
+#: optiondialog.cpp:735
+msgid ""
+"On: Pressing tab generates the appropriate number of spaces.\n"
+"Off: A tab character will be inserted."
+msgstr ""
+
+#: optiondialog.cpp:741
+msgid "Tab size:"
+msgstr ""
+
+#: optiondialog.cpp:747
+msgid "Auto indentation"
+msgstr ""
+
+#: optiondialog.cpp:750
+msgid "On: The indentation of the previous line is used for a new line.\n"
+msgstr ""
+
+#: optiondialog.cpp:754
+msgid "Auto copy selection"
+msgstr ""
+
+#: optiondialog.cpp:757
+msgid ""
+"On: Any selection is immediately written to the clipboard.\n"
+"Off: You must explicitely copy e.g. via Ctrl-C."
+msgstr ""
+
+#: optiondialog.cpp:768
+msgid "Dos/Windows"
+msgstr ""
+
+#: optiondialog.cpp:769
+msgid "Autodetect"
+msgstr ""
+
+#: optiondialog.cpp:772
+msgid ""
+"Sets the line endings for when an edited file is saved.\n"
+"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A"
+msgstr ""
+
+#: optiondialog.cpp:784
+msgid "Diff"
+msgstr ""
+
+#: optiondialog.cpp:785
+msgid "Diff Settings"
+msgstr ""
+
+#: optiondialog.cpp:809
+msgid "Treat as white space."
+msgstr ""
+
+#: optiondialog.cpp:811
+msgid "Ignore numbers"
+msgstr ""
+
+#: optiondialog.cpp:814
+msgid ""
+"Ignore number characters during line matching phase. (Similar to Ignore "
+"white space.)\n"
+"Might help to compare files with numeric data."
+msgstr ""
+
+#: optiondialog.cpp:819
+msgid "Ignore C/C++ comments"
+msgstr ""
+
+#: optiondialog.cpp:821
+msgid "Treat C/C++ comments like white space."
+msgstr ""
+
+#: optiondialog.cpp:825
+msgid "Ignore case"
+msgstr ""
+
+#: optiondialog.cpp:828
+msgid "Treat case differences like white space changes. ('a'<=>'A')"
+msgstr ""
+
+#: optiondialog.cpp:832
+msgid "Preprocessor command:"
+msgstr ""
+
+#: optiondialog.cpp:836
+msgid "User defined pre-processing. (See the docs for details.)"
+msgstr ""
+
+#: optiondialog.cpp:839
+msgid "Line-matching preprocessor command:"
+msgstr ""
+
+#: optiondialog.cpp:843
+msgid ""
+"This pre-processor is only used during line matching.\n"
+"(See the docs for details.)"
+msgstr ""
+
+#: optiondialog.cpp:846
+msgid "Try hard (slower)"
+msgstr ""
+
+#: optiondialog.cpp:849
+msgid ""
+"Enables the --minimal option for the external diff.\n"
+"The analysis of big files will be much slower."
+msgstr ""
+
+#: optiondialog.cpp:854
+msgid "Align B and C for 3 input files"
+msgstr ""
+
+#: optiondialog.cpp:857
+msgid ""
+"Try to align B and C when comparing or merging three input files.\n"
+"Not recommended for merging because merge might get more complicated.\n"
+"(Default is off.)"
+msgstr ""
+
+#: optiondialog.cpp:870
+msgid "Merge Settings"
+msgstr ""
+
+#: optiondialog.cpp:885
+msgid "Auto advance delay (ms):"
+msgstr ""
+
+#: optiondialog.cpp:890
+msgid ""
+"When in Auto-Advance mode the result of the current selection is shown \n"
+"for the specified time, before jumping to the next conflict. Range: 0-2000 ms"
+msgstr ""
+
+#: optiondialog.cpp:895
+msgid "Show info dialogs"
+msgstr ""
+
+#: optiondialog.cpp:897
+msgid "Show a dialog with information about the number of conflicts."
+msgstr ""
+
+#: optiondialog.cpp:900
+msgid "White space 2-file merge default:"
+msgstr ""
+
+#: optiondialog.cpp:904 optiondialog.cpp:917
+msgid "Manual Choice"
+msgstr ""
+
+#: optiondialog.cpp:908 optiondialog.cpp:922
+msgid ""
+"Allow the merge algorithm to automatically select an input for white-space-"
+"only changes."
+msgstr ""
+
+#: optiondialog.cpp:913
+msgid "White space 3-file merge default:"
+msgstr ""
+
+#: optiondialog.cpp:927
+msgid "Automatic Merge Regular Expression"
+msgstr ""
+
+#: optiondialog.cpp:940
+msgid ""
+"Regular expression for lines where KDiff3 should automatically choose one "
+"source.\n"
+"When a line with a conflict matches the regular expression then\n"
+"- if available - C, otherwise B will be chosen."
+msgstr ""
+
+#: optiondialog.cpp:946
+msgid "Run regular expression auto merge on merge start"
+msgstr ""
+
+#: optiondialog.cpp:948
+msgid ""
+"Run the merge for auto merge regular expressions\n"
+"immediately when a merge starts.\n"
+msgstr ""
+
+#: optiondialog.cpp:953
+msgid "Version Control History Merging"
+msgstr ""
+
+#: optiondialog.cpp:966
+msgid ""
+"Regular expression for the start of the version control history entry.\n"
+"Usually this line contains the \"$Log$\" keyword.\n"
+"Default value: \".*\\$Log.*\\$.*\""
+msgstr ""
+
+#: optiondialog.cpp:984
+msgid ""
+"A version control history entry consists of several lines.\n"
+"Specify the regular expression to detect the first line (without the leading "
+"comment).\n"
+"Use parentheses to group the keys you want to use for sorting.\n"
+"If left empty, then KDiff3 assumes that empty lines separate history "
+"entries.\n"
+"See the documentation for details."
+msgstr ""
+
+#: optiondialog.cpp:992
+msgid "History merge sorting"
+msgstr ""
+
+#: optiondialog.cpp:994
+msgid "Sort version control history by a key."
+msgstr ""
+
+#: optiondialog.cpp:1004
+msgid "History entry start sort key order:"
+msgstr ""
+
+#: optiondialog.cpp:1008
+msgid ""
+"Each pair of parentheses used in the regular expression for the history "
+"start entry\n"
+"groups a key that can be used for sorting.\n"
+"Specify the list of keys (that are numbered in order of occurrence\n"
+"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n"
+"If left empty, then no sorting will be done.\n"
+"See the documentation for details."
+msgstr ""
+
+#: optiondialog.cpp:1019
+msgid "Merge version control history on merge start"
+msgstr ""
+
+#: optiondialog.cpp:1021
+msgid "Run version control history automerge on merge start."
+msgstr ""
+
+#: optiondialog.cpp:1025
+msgid "Max number of history entries:"
+msgstr ""
+
+#: optiondialog.cpp:1028
+msgid "Cut off after specified number. Use -1 for infinite number of entries."
+msgstr ""
+
+#: optiondialog.cpp:1032
+msgid "Test your regular expressions"
+msgstr ""
+
+#: optiondialog.cpp:1037
+msgid "Irrelevant merge command:"
+msgstr ""
+
+#: optiondialog.cpp:1041
+msgid ""
+"If specified this script is run after automerge\n"
+"when no other relevant changes were detected.\n"
+"Called with the parameters: filename1 filename2 filename3"
+msgstr ""
+
+#: optiondialog.cpp:1047
+msgid "Auto save and quit on merge without conflicts"
+msgstr ""
+
+#: optiondialog.cpp:1050
+msgid ""
+"If KDiff3 was started for a file-merge from the command line and all\n"
+"conflicts are solvable without user interaction then automatically save and "
+"quit.\n"
+"(Similar to command line option \"--auto\".)"
+msgstr ""
+
+#: optiondialog.cpp:1061 optiondialog.cpp:1062
+msgid "Directory"
+msgstr ""
+
+#: optiondialog.cpp:1075
+msgid "Recursive directories"
+msgstr ""
+
+#: optiondialog.cpp:1077
+msgid "Whether to analyze subdirectories or not."
+msgstr ""
+
+#: optiondialog.cpp:1079
+msgid "File pattern(s):"
+msgstr ""
+
+#: optiondialog.cpp:1084
+msgid ""
+"Pattern(s) of files to be analyzed. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1090
+msgid "File-anti-pattern(s):"
+msgstr ""
+
+#: optiondialog.cpp:1095
+msgid ""
+"Pattern(s) of files to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1101
+msgid "Dir-anti-pattern(s):"
+msgstr ""
+
+#: optiondialog.cpp:1106
+msgid ""
+"Pattern(s) of directories to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1112
+msgid "Use .cvsignore"
+msgstr ""
+
+#: optiondialog.cpp:1115
+msgid ""
+"Extends the antipattern to anything that would be ignored by CVS.\n"
+"Via local \".cvsignore\" files this can be directory specific."
+msgstr ""
+
+#: optiondialog.cpp:1120
+msgid "Find hidden files and directories"
+msgstr ""
+
+#: optiondialog.cpp:1123
+msgid "Finds files and directories with the hidden attribute."
+msgstr ""
+
+#: optiondialog.cpp:1125
+msgid "Finds files and directories starting with '.'."
+msgstr ""
+
+#: optiondialog.cpp:1129
+msgid "Follow file links"
+msgstr ""
+
+#: optiondialog.cpp:1132
+msgid ""
+"On: Compare the file the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+
+#: optiondialog.cpp:1137
+msgid "Follow directory links"
+msgstr ""
+
+#: optiondialog.cpp:1140
+msgid ""
+"On: Compare the directory the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+
+#: optiondialog.cpp:1156
+msgid "Case sensitive filename comparison"
+msgstr ""
+
+#: optiondialog.cpp:1159
+msgid ""
+"The directory comparison will compare files or directories when their names "
+"match.\n"
+"Set this option if the case of the names must match. (Default for Windows is "
+"off, otherwise on.)"
+msgstr ""
+
+#: optiondialog.cpp:1163
+msgid "File Comparison Mode"
+msgstr ""
+
+#: optiondialog.cpp:1169
+msgid "Binary comparison"
+msgstr ""
+
+#: optiondialog.cpp:1170
+msgid "Binary comparison of each file. (Default)"
+msgstr ""
+
+#: optiondialog.cpp:1173
+msgid "Full analysis"
+msgstr ""
+
+#: optiondialog.cpp:1174
+msgid ""
+"Do a full analysis and show statistics information in extra columns.\n"
+"(Slower than a binary comparison, much slower for binary files.)"
+msgstr ""
+
+#: optiondialog.cpp:1178
+msgid "Trust the size and modification date (unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1179
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"Files with equal contents but different modification dates will appear as "
+"different.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+
+#: optiondialog.cpp:1184
+msgid ""
+"Trust the size and date, but use binary comparison if date does not match "
+"(unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1185
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"If the dates are not equal but the sizes are, use binary comparison.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+
+#: optiondialog.cpp:1190
+msgid "Trust the size (unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1191
+msgid ""
+"Assume that files are equal if their file lengths are equal.\n"
+"Useful for big directories or slow networks when the date is modified during "
+"download."
+msgstr ""
+
+#: optiondialog.cpp:1199
+msgid "Synchronize directories"
+msgstr ""
+
+#: optiondialog.cpp:1202
+msgid ""
+"Offers to store files in both directories so that\n"
+"both directories are the same afterwards.\n"
+"Works only when comparing two directories without specifying a destination."
+msgstr ""
+
+#: optiondialog.cpp:1208
+msgid "White space differences considered equal"
+msgstr ""
+
+#: optiondialog.cpp:1211
+msgid ""
+"If files differ only by white space consider them equal.\n"
+"This is only active when full analysis is chosen."
+msgstr ""
+
+#: optiondialog.cpp:1217
+msgid "Copy newer instead of merging (unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1220
+msgid ""
+"Don't look inside, just take the newer file.\n"
+"(Use this only if you know what you are doing!)\n"
+"Only effective when comparing two directories."
+msgstr ""
+
+#: optiondialog.cpp:1225
+msgid "Backup files (.orig)"
+msgstr ""
+
+#: optiondialog.cpp:1228
+msgid ""
+"If a file would be saved over an old file, then the old file\n"
+"will be renamed with a '.orig' extension instead of being deleted."
+msgstr ""
+
+#: optiondialog.cpp:1301 optiondialog.cpp:1302
+msgid "Regional Settings"
+msgstr ""
+
+#: optiondialog.cpp:1402
+msgid "Language (restart required)"
+msgstr ""
+
+#: optiondialog.cpp:1445
+msgid ""
+"Choose the language of the GUI strings or \"Auto\".\n"
+"For a change of language to take place, quit and restart KDiff3."
+msgstr ""
+
+#: optiondialog.cpp:1463
+msgid "Use the same encoding for everything:"
+msgstr ""
+
+#: optiondialog.cpp:1466
+msgid ""
+"Enable this allows to change all encodings by changing the first only.\n"
+"Disable this if different individual settings are needed."
+msgstr ""
+
+#: optiondialog.cpp:1471
+msgid "Note: Local Encoding is "
+msgstr ""
+
+#: optiondialog.cpp:1475
+msgid "File Encoding for A:"
+msgstr ""
+
+#: optiondialog.cpp:1481
+msgid ""
+"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n"
+"If the file is not Unicode then the selected encoding will be used as "
+"fallback.\n"
+"(Unicode detection depends on the first bytes of a file.)"
+msgstr ""
+
+#: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503
+msgid "Auto Detect Unicode"
+msgstr ""
+
+#: optiondialog.cpp:1490
+msgid "File Encoding for B:"
+msgstr ""
+
+#: optiondialog.cpp:1499
+msgid "File Encoding for C:"
+msgstr ""
+
+#: optiondialog.cpp:1508
+msgid "File Encoding for Merge Output and Saving:"
+msgstr ""
+
+#: optiondialog.cpp:1512
+msgid "Auto Select"
+msgstr ""
+
+#: optiondialog.cpp:1515
+msgid ""
+"If enabled then the encoding from the input files is used.\n"
+"In ambiguous cases a dialog will ask the user to choose the encoding for "
+"saving."
+msgstr ""
+
+#: optiondialog.cpp:1519
+msgid "File Encoding for Preprocessor Files:"
+msgstr ""
+
+#: optiondialog.cpp:1530
+msgid "Right To Left Language"
+msgstr ""
+
+#: optiondialog.cpp:1533
+msgid ""
+"Some languages are read from right to left.\n"
+"This setting will change the viewer and editor accordingly."
+msgstr ""
+
+#: optiondialog.cpp:1548
+msgid "Integration"
+msgstr ""
+
+#: optiondialog.cpp:1549
+msgid "Integration Settings"
+msgstr ""
+
+#: optiondialog.cpp:1563
+msgid "Command line options to ignore:"
+msgstr ""
+
+#: optiondialog.cpp:1568
+msgid ""
+"List of command line options that should be ignored when KDiff3 is used by "
+"other tools.\n"
+"Several values can be specified if separated via ';'\n"
+"This will suppress the \"Unknown option\" error."
+msgstr ""
+
+#: optiondialog.cpp:1575
+msgid "Quit also via Escape key"
+msgstr ""
+
+#: optiondialog.cpp:1578
+msgid ""
+"Fast method to exit.\n"
+"For those who are used to using the Escape key."
+msgstr ""
+
+#: optiondialog.cpp:1583
+msgid "Integrate with ClearCase"
+msgstr ""
+
+#: optiondialog.cpp:1586
+msgid ""
+"Integrate with Rational ClearCase from IBM.\n"
+"Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n"
+"(Only enabled when ClearCase \"bin\" directory is in the path.)"
+msgstr ""
+
+#: optiondialog.cpp:1592
+msgid "Remove ClearCase Integration"
+msgstr ""
+
+#: optiondialog.cpp:1595
+msgid ""
+"Restore the old \"map\" file from before doing the ClearCase integration."
+msgstr ""
+
+#: optiondialog.cpp:1680
+msgid "Incompatible Font"
+msgstr ""
+
+#: optiondialog.cpp:1681
+msgid "Continue at Own Risk"
+msgstr ""
+
+#: optiondialog.cpp:1682
+msgid "Select Another Font"
+msgstr ""
+
+#: optiondialog.cpp:1717
+msgid "This resets all options. Not only those of the current topic."
+msgstr ""
+
+#: pdiff.cpp:260
+msgid "PreprocessorCmd: "
+msgstr ""
+
+#: pdiff.cpp:265
+msgid "The following option(s) you selected might change data:\n"
+msgstr ""
+
+#: pdiff.cpp:266
+msgid ""
+"\n"
+"Most likely this is not wanted during a merge.\n"
+"Do you want to disable these settings or continue with these settings active?"
+msgstr ""
+
+#: pdiff.cpp:268
+msgid "Option Unsafe for Merging"
+msgstr ""
+
+#: pdiff.cpp:269
+msgid "Use These Options During Merge"
+msgstr ""
+
+#: pdiff.cpp:270
+msgid "Disable Unsafe Options"
+msgstr ""
+
+#: pdiff.cpp:300
+msgid "Loading A"
+msgstr ""
+
+#: pdiff.cpp:304
+msgid "Loading B"
+msgstr ""
+
+#: pdiff.cpp:321 pdiff.cpp:347
+msgid "Diff: A <-> B"
+msgstr ""
+
+#: pdiff.cpp:327 pdiff.cpp:372
+msgid "Linediff: A <-> B"
+msgstr ""
+
+#: pdiff.cpp:338
+msgid "Loading C"
+msgstr ""
+
+#: pdiff.cpp:350
+msgid "Diff: B <-> C"
+msgstr ""
+
+#: pdiff.cpp:353
+msgid "Diff: A <-> C"
+msgstr ""
+
+#: pdiff.cpp:375
+msgid "Linediff: B <-> C"
+msgstr ""
+
+#: pdiff.cpp:378
+msgid "Linediff: A <-> C"
+msgstr ""
+
+#: pdiff.cpp:534
+msgid "All input files contain the same text, but are not binary equal."
+msgstr ""
+
+#: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541
+#, kde-format
+msgid "Files %1 and %2 have equal text, but are not binary equal. \n"
+msgstr ""
+
+#: pdiff.cpp:551
+msgid ""
+"Some inputfiles don't seem to be pure textfiles.\n"
+"Note that the KDiff3-merge was not meant for binary data.\n"
+"Continue at your own risk."
+msgstr ""
+
+#: pdiff.cpp:566
+#, kde-format
+msgid ""
+"Some input characters could not be converted to valid unicode.\n"
+"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n"
+"Don't save the result if unsure. Continue at your own risk.\n"
+"Affected input files are in %1."
+msgstr ""
+
+#: pdiff.cpp:1080
+msgid "Abort"
+msgstr ""
+
+#: pdiff.cpp:1087 pdiff.cpp:1175
+msgid "Opening files..."
+msgstr ""
+
+#: pdiff.cpp:1152 pdiff.cpp:1223
+msgid "File open error"
+msgstr ""
+
+#: pdiff.cpp:1255
+msgid "Cutting selection..."
+msgstr ""
+
+#: pdiff.cpp:1276
+msgid "Copying selection to clipboard..."
+msgstr ""
+
+#: pdiff.cpp:1292
+msgid "Inserting clipboard contents..."
+msgstr ""
+
+#: pdiff.cpp:1814
+msgid "Save && Continue"
+msgstr ""
+
+#: pdiff.cpp:1815
+msgid "Continue Without Saving"
+msgstr ""
+
+#: pdiff.cpp:2018
+msgid "Search complete."
+msgstr ""
+
+#: pdiff.cpp:2018
+msgid "Search Complete"
+msgstr ""
+
+#: pdiff.cpp:2252
+msgid "Nothing is selected in either diff input window."
+msgstr ""
+
+#: pdiff.cpp:2252
+msgid "Error while adding manual diff range"
+msgstr ""
+
+#: kdiff3_shell.cpp:76
+msgid ""
+"Could not initialize the KDiff3 part.\n"
+"This usually happens due to an installation problem. Please read the README-"
+"file in the source package for details."
+msgstr ""
+
+#: rc.cpp:1
+msgctxt "NAME OF TRANSLATORS"
+msgid "Your names"
+msgstr ""
+
+#: rc.cpp:2
+msgctxt "EMAIL OF TRANSLATORS"
+msgid "Your emails"
+msgstr ""
+
+#. i18n: file: kdiff3_part.rc:4
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:5
+msgid "&KDiff3"
+msgstr ""
+
+#. i18n: file: kdiff3_part.rc:13
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:8
+msgid "Configure KDiff3"
+msgstr ""
+
+#. i18n: file: kdiff3_part.rc:16
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:11
+msgid "KDiff3"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:106
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:38
+msgid "Main Toolbar"
+msgstr ""
diff --git a/po/hr/kdiff3plugin.po b/po/hr/kdiff3plugin.po
new file mode 100644 (file)
index 0000000..70078db
--- /dev/null
@@ -0,0 +1,88 @@
+# Translation of kdiff3plugin to Croatian
+#
+# Andrej Dundovic <adundovi@gmail.com>, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2010-01-24 16:49+0100\n"
+"Last-Translator: Andrej Dundovic <adundovi@gmail.com>\n"
+"Language-Team: Croatian <kde-croatia-list@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: hr\n"
+"X-Generator: Lokalize 1.0\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"X-Environment: kde\n"
+"X-Accelerator-Marker: &\n"
+"X-Text-Markup: kde4\n"
+
+#: kdiff3plugin.cpp:107
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#: kdiff3plugin.cpp:114
+#, kde-format
+msgid "Compare with %1"
+msgstr ""
+
+#: kdiff3plugin.cpp:120
+#, kde-format
+msgid "Merge with %1"
+msgstr ""
+
+#: kdiff3plugin.cpp:126
+#, kde-format
+msgid "Save '%1' for later"
+msgstr ""
+
+#: kdiff3plugin.cpp:132
+msgid "3-way merge with base"
+msgstr ""
+
+#: kdiff3plugin.cpp:139
+msgid "Compare with ..."
+msgstr ""
+
+#: kdiff3plugin.cpp:149
+msgid "Clear list"
+msgstr ""
+
+#: kdiff3plugin.cpp:157
+msgid "Compare"
+msgstr ""
+
+#: kdiff3plugin.cpp:163
+msgid "3 way comparison"
+msgstr ""
+
+#: kdiff3plugin.cpp:167
+msgid "About KDiff3 menu plugin ..."
+msgstr ""
+
+#: kdiff3plugin.cpp:269
+msgid ""
+"KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+
+#: kdiff3plugin.cpp:271
+msgid ""
+"Using the context menu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else, \"Save\" the first file for later, and "
+"it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With"
+"\" on the second file.\n"
+"For a 3-way merge first, \"Save\" the base file, then the branch to merge, "
+"and then \"3-way merge with base\" on the other branch which will be used as "
+"the destination.\n"
+"The same also applies to directory comparison and merge."
+msgstr ""
+
+#: kdiff3plugin.cpp:279
+msgid "About KDiff3 Menu Plugin"
+msgstr ""
diff --git a/po/hu/CMakeLists.txt b/po/hu/CMakeLists.txt
new file mode 100644 (file)
index 0000000..71d49af
--- /dev/null
@@ -0,0 +1,2 @@
+file(GLOB _po_files *.po)
+GETTEXT_PROCESS_PO_FILES(hu ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
diff --git a/po/hu/kdiff3.po b/po/hu/kdiff3.po
new file mode 100644 (file)
index 0000000..df5666c
--- /dev/null
@@ -0,0 +1,3384 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# Tamas Szanto <tszanto@mol.hu>, 2003.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: KDE 3.2\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2004-01-09 11:11+0100\n"
+"Last-Translator: Tamas Szanto <tszanto@mol.hu>\n"
+"Language-Team: Hungarian <kde-lista@sophia.jpte.hu>\n"
+"Language: hu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: kreplacements/kreplacements.h:105
+#, fuzzy
+#| msgid "C&ontinue"
+msgid "Continue"
+msgstr "F&olytatás"
+
+#: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158
+#: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512
+msgid "Cancel"
+msgstr ""
+
+#: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631
+msgid "Quit"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339
+msgid "Ok"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715
+msgid "Help"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:185
+msgid "Defaults"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:4
+#. i18n: ectx: Menu (file)
+#: kreplacements/kreplacements.cpp:296 rc.cpp:14
+#, fuzzy
+#| msgid "File..."
+msgid "&File"
+msgstr "Fájl..."
+
+#: kreplacements/kreplacements.cpp:297
+#, fuzzy
+#| msgid "Editor"
+msgid "&Edit"
+msgstr "Szerkesztő"
+
+#. i18n: file: kdiff3_shell.rc:7
+#. i18n: ectx: Menu (directory)
+#: kreplacements/kreplacements.cpp:298 rc.cpp:17
+msgid "&Directory"
+msgstr "Köny&vtár"
+
+#. i18n: file: kdiff3_shell.rc:50
+#. i18n: ectx: Menu (movement)
+#: kreplacements/kreplacements.cpp:301 rc.cpp:26
+msgid "&Movement"
+msgstr "Mozg&atás"
+
+#. i18n: file: kdiff3_shell.rc:61
+#. i18n: ectx: Menu (diff)
+#: kreplacements/kreplacements.cpp:302 rc.cpp:29
+#, fuzzy
+msgid "D&iffview"
+msgstr "KDiff3"
+
+#. i18n: file: kdiff3_shell.rc:73
+#. i18n: ectx: Menu (merge)
+#: kreplacements/kreplacements.cpp:303 rc.cpp:32
+msgid "&Merge"
+msgstr "Össze&olvasztás"
+
+#. i18n: file: kdiff3_shell.rc:95
+#. i18n: ectx: Menu (window)
+#: kreplacements/kreplacements.cpp:304 rc.cpp:35
+msgid "&Window"
+msgstr "&Ablak"
+
+#: kreplacements/kreplacements.cpp:305
+#, fuzzy
+msgid "&Settings"
+msgstr "A diff és az összeolvasztás beállításai"
+
+#: kreplacements/kreplacements.cpp:306
+msgid "&Help"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:353
+#, fuzzy
+#| msgid "Abort"
+msgid "&About"
+msgstr "Félbeszakítás"
+
+#: kreplacements/kreplacements.cpp:369
+msgid "A&uthor"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:383
+msgid "&Thanks To"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:30
+#. i18n: ectx: Menu (dir_current_merge_menu)
+#: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497
+#: rc.cpp:20
+msgid "Current Item Merge Operation"
+msgstr "Összevonási művelet az aktuális elemmel"
+
+#. i18n: file: kdiff3_shell.rc:38
+#. i18n: ectx: Menu (dir_current_sync_menu)
+#: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498
+#: rc.cpp:23
+msgid "Current Item Sync Operation"
+msgstr "Szinkronizálási művelet az aktuális elemmel"
+
+#: kreplacements/kreplacements.cpp:597
+#, fuzzy
+#| msgid "Operation"
+msgid "Open"
+msgstr "Művelet"
+
+#: kreplacements/kreplacements.cpp:606
+msgid "Save"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720
+msgid "Save As..."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:623
+#, fuzzy
+msgid "Print..."
+msgstr "Kilépés..."
+
+#: kreplacements/kreplacements.cpp:639
+msgid "Cut"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:647
+msgid "Copy"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:655
+msgid "Paste"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:663
+#, fuzzy
+#| msgid "Delete A"
+msgid "Select All"
+msgstr "A törlése"
+
+#: kreplacements/kreplacements.cpp:671
+msgid "Show Toolbar"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:679
+msgid "Show &Status Bar"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:687
+#, fuzzy, kde-format
+#| msgid "Configure..."
+msgid "&Configure %1..."
+msgstr "Beállítás..."
+
+#: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707
+#, fuzzy
+#| msgid "Abort"
+msgid "About"
+msgstr "Félbeszakítás"
+
+#: kreplacements/kreplacements.cpp:722
+msgid "Find"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:730
+msgid "Find Next"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:750
+#, fuzzy
+#| msgid "Select Another Font"
+msgid "Select Font"
+msgstr "Válasszon egy másik betűtípust"
+
+#: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676
+msgid ""
+"You selected a variable width font.\n"
+"\n"
+"Because this program doesn't handle variable width fonts\n"
+"correctly, you might experience problems while editing.\n"
+"\n"
+"Do you want to continue or do you want to select another font."
+msgstr ""
+"Változó szélességű betűket tartalmazó betűtípust választott.\n"
+"\n"
+"Ez a program nem kezeli helyesen a változó szélességű betűket,\n"
+"ezért különféle szerkesztési problémák léphetnek fel.\n"
+"\n"
+"Tovább szeretne lépni vagy inkább más betűtípust választ?"
+
+#: kreplacements/kreplacements.cpp:792
+#, fuzzy
+#| msgid "Incompatible Font"
+msgid "Incompatible font."
+msgstr "Nem kompatibilis betűtípus"
+
+#: kreplacements/kreplacements.cpp:793
+#, fuzzy
+#| msgid "Continue at Own Risk"
+msgid "Continue at my own risk"
+msgstr "Folytatás (kockázatos)"
+
+#: kreplacements/kreplacements.cpp:793
+#, fuzzy
+#| msgid "Select Another Font"
+msgid "Select another font"
+msgstr "Válasszon egy másik betűtípust"
+
+#: kreplacements/kreplacements.cpp:1134
+msgid "For more documentation, see the help-menu or the subdirectory doc."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1137
+#, fuzzy
+#| msgid "KDiff3"
+msgid "KDiff3-Usage"
+msgstr "KDiff3"
+
+#: kreplacements/kreplacements.cpp:1137
+#, fuzzy
+msgid "Ignore"
+msgstr "A számok figyelmen kívül hagyása"
+
+#: kreplacements/kreplacements.cpp:1137
+#, fuzzy
+#| msgid "Editor"
+msgid "Exit"
+msgstr "Szerkesztő"
+
+#: diff.cpp:251
+msgid "Writing clipboard data to temp file failed."
+msgstr ""
+
+#: diff.cpp:255
+msgid "From Clipboard"
+msgstr "A vágólapról"
+
+#: diff.cpp:471
+msgid "Expecting space after closing quotation mark."
+msgstr ""
+
+#: diff.cpp:474
+msgid "Not matching quotation marks."
+msgstr ""
+
+#: diff.cpp:496
+msgid "Unexpected quotation mark within argument."
+msgstr ""
+
+#: diff.cpp:503
+msgid "No program specified."
+msgstr ""
+
+#: diff.cpp:605
+#, kde-format
+msgid ""
+"Preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The preprocessing command will be disabled now."
+msgstr ""
+
+#: diff.cpp:653
+#, kde-format
+msgid ""
+"The line-matching-preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The line-matching-preprocessing command will be disabled now."
+msgstr ""
+
+#: diff.cpp:1776 diff.cpp:1790
+#, fuzzy
+#| msgid ""
+#| "Data loss error:\n"
+#| "If it is reproducable please contact the author.\n"
+msgid ""
+"Data loss error:\n"
+"If it is reproducible please contact the author.\n"
+msgstr ""
+"Adatvesztési hiba:\n"
+"ha a jelenség többször is előfordul, kérjük jelentse be a hibát.\n"
+
+#: diff.cpp:1778 diff.cpp:1792
+msgid "Severe Internal Error"
+msgstr "Súlyos belső hiba történt"
+
+#: directorymergewindow.cpp:136
+msgid "Mix of links and normal files."
+msgstr "Linkek és normál fájlok vegyesen."
+
+#: directorymergewindow.cpp:143
+msgid "Link: "
+msgstr "Link: "
+
+#: directorymergewindow.cpp:151
+msgid "Size. "
+msgstr "Méret. "
+
+#: directorymergewindow.cpp:164 directorymergewindow.cpp:174
+msgid "Date & Size: "
+msgstr "Dátum és méret: "
+
+#: directorymergewindow.cpp:184 directorymergewindow.cpp:190
+#, kde-format
+msgid "Creating temp copy of %1 failed."
+msgstr "Nem sikerült ideiglenes másolatot készíteni a(z) %1 fájlról."
+
+#: directorymergewindow.cpp:201 directorymergewindow.cpp:209
+#, kde-format
+msgid "Opening %1 failed."
+msgstr "%1 megnyitása nem sikerült."
+
+#: directorymergewindow.cpp:213
+#, fuzzy
+msgid "Comparing file..."
+msgstr "A fájl mentése..."
+
+#: directorymergewindow.cpp:223 directorymergewindow.cpp:229
+#, kde-format
+msgid "Error reading from %1"
+msgstr "%1 olvasása közben hiba történt"
+
+#: directorymergewindow.cpp:358
+msgid "Name"
+msgstr "Név"
+
+#: directorymergewindow.cpp:358
+msgid "Operation"
+msgstr "Művelet"
+
+#: directorymergewindow.cpp:358
+msgid "Status"
+msgstr "Állapot"
+
+#: directorymergewindow.cpp:359
+msgid "Unsolved"
+msgstr ""
+
+#: directorymergewindow.cpp:359
+msgid "Solved"
+msgstr ""
+
+#: directorymergewindow.cpp:359
+msgid "Nonwhite"
+msgstr ""
+
+#: directorymergewindow.cpp:359
+msgid "White"
+msgstr ""
+
+#: directorymergewindow.cpp:388
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort "
+"the merge and rescan the directory?"
+msgstr ""
+"Egy könyvtárösszeolvasztás még nem fejeződött be. Biztosan félbe szeretné "
+"szakítani a műveletet és újra be szeretné olvasni a könyvtár tartalmát?"
+
+#: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655
+#: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823
+msgid "Warning"
+msgstr ""
+
+#: directorymergewindow.cpp:390 directorymergewindow.cpp:2965
+msgid "Rescan"
+msgstr "Újraolvasás"
+
+#: directorymergewindow.cpp:391 pdiff.cpp:1081
+msgid "Continue Merging"
+msgstr "A művelet folytatása"
+
+#: directorymergewindow.cpp:548
+msgid "Opening of directories failed:"
+msgstr "Nem sikerült beolvasni ezeket a könyvtárakat:"
+
+#: directorymergewindow.cpp:551
+#, kde-format
+msgid "Dir A \"%1\" does not exist or is not a directory.\n"
+msgstr "Az \"A\" könyvtár (\"%1\") nem létezik vagy más típusú a bejegyzés.\n"
+
+#: directorymergewindow.cpp:554
+#, kde-format
+msgid "Dir B \"%1\" does not exist or is not a directory.\n"
+msgstr "A \"B\" könyvtár (\"%1\") nem létezik vagy más típusú a bejegyzés.\n"
+
+#: directorymergewindow.cpp:557
+#, kde-format
+msgid "Dir C \"%1\" does not exist or is not a directory.\n"
+msgstr "A \"C\" könyvtár (\"%1\") nem létezik vagy más típusú a bejegyzés.\n"
+
+#: directorymergewindow.cpp:559
+msgid "Directory Open Error"
+msgstr "Könyvtármegnyitási hiba"
+
+#: directorymergewindow.cpp:567
+msgid ""
+"The destination directory must not be the same as A or B when three "
+"directories are merged.\n"
+"Check again before continuing."
+msgstr ""
+"A célkönyvtár nem egyezhet meg sem az A, sem a B könyvtárral, ha három "
+"könyvtár lesz összeolvasztva.\n"
+"Továbblépés előtt ellenőrizze az értéket."
+
+#: directorymergewindow.cpp:569
+msgid "Parameter Warning"
+msgstr "Figyelmeztetés - paraméter"
+
+#: directorymergewindow.cpp:574
+#, fuzzy
+msgid "Scanning directories..."
+msgstr "A könyvtárak szinkronizálása"
+
+#: directorymergewindow.cpp:607
+msgid "Reading Directory A"
+msgstr "Az A könyvtár beolvasása"
+
+#: directorymergewindow.cpp:629
+msgid "Reading Directory B"
+msgstr "A B könyvtár beolvasása"
+
+#: directorymergewindow.cpp:651
+msgid "Reading Directory C"
+msgstr "A C könyvtár beolvasása"
+
+#: directorymergewindow.cpp:677
+msgid "Some subdirectories were not readable in"
+msgstr "Néhány alkönyvtár beolvasása nem sikerült itt:"
+
+#: directorymergewindow.cpp:682
+msgid "Check the permissions of the subdirectories."
+msgstr "Ellenőrizze az alkönyvtárak jogosultságait."
+
+#: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737
+#: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233
+#: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328
+msgid "Ready."
+msgstr "Kész."
+
+#: directorymergewindow.cpp:735
+msgid "Directory Comparison Status"
+msgstr "A könyvtárak összehasonlítási állapota"
+
+#: directorymergewindow.cpp:736
+msgid "Number of subdirectories:"
+msgstr "Az alkönyvtárak száma:"
+
+#: directorymergewindow.cpp:737
+msgid "Number of equal files:"
+msgstr "A megegyező fájlok száma:"
+
+#: directorymergewindow.cpp:738
+msgid "Number of different files:"
+msgstr "Az eltérő fájlok száma:"
+
+#: directorymergewindow.cpp:741
+msgid "Number of manual merges:"
+msgstr "A kézi összeolvasztások száma:"
+
+#: directorymergewindow.cpp:912
+msgid "This affects all merge operations."
+msgstr "Ez minden összeolvasztási műveletet érint."
+
+#: directorymergewindow.cpp:913
+msgid "Changing All Merge Operations"
+msgstr "Az összes összeolvasztási művelet megváltoztatása"
+
+#: directorymergewindow.cpp:1312
+msgid "Processing "
+msgstr "Feldolgozás "
+
+#: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742
+msgid "To do."
+msgstr "Feladat."
+
+#: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996
+msgid "Copy A to B"
+msgstr "A másolása B-be"
+
+#: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997
+msgid "Copy B to A"
+msgstr "B másolása A-ba"
+
+#: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998
+msgid "Delete A"
+msgstr "A törlése"
+
+#: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999
+msgid "Delete B"
+msgstr "B törlése"
+
+#: directorymergewindow.cpp:1814
+msgid "Delete A & B"
+msgstr "A és B törlése"
+
+#: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001
+msgid "Merge to A"
+msgstr "Beolvasztás A-ba"
+
+#: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002
+msgid "Merge to B"
+msgstr "Beolvasztás B-be"
+
+#: directorymergewindow.cpp:1817
+msgid "Merge to A & B"
+msgstr "Beolvasztás A és B-be"
+
+#: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993
+msgid "Delete (if exists)"
+msgstr "Törlés (ha létezik)"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+#: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869
+msgid "Merge"
+msgstr "Összeolvasztás"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+msgid "Merge (manual)"
+msgstr "Összeolvasztás (kézi)"
+
+#: directorymergewindow.cpp:1824
+msgid "Error: Conflicting File Types"
+msgstr "Hiba: ütköző fájltípusok"
+
+#: directorymergewindow.cpp:1825
+msgid "Error: Changed and Deleted"
+msgstr ""
+
+#: directorymergewindow.cpp:1826
+msgid "Error: Dates are equal but files are not."
+msgstr "Hiba: a dátumok megegyeznek, de a fájlok nem."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906
+msgid "This operation is currently not possible."
+msgstr "Ez a művelet jelenleg nem lehetséges."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174
+msgid "Operation Not Possible"
+msgstr "A művelet nem lehetséges"
+
+#: directorymergewindow.cpp:1945
+msgid ""
+"This should never happen: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"If you know how to reproduce this, please contact the program author."
+msgstr ""
+"Ez nem normál körülmények között nem történhet meg: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"Ha tudja, hogyan kell ezt a helyzetet reprodukálni, kérem értesítse a "
+"szerzőt."
+
+#: directorymergewindow.cpp:1945
+msgid "Program Error"
+msgstr "Programhiba"
+
+#: directorymergewindow.cpp:1956
+msgid "An error occurred while copying.\n"
+msgstr "Hiba történt másolás közben.\n"
+
+#: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025
+#: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105
+#: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123
+#: directorymergewindow.cpp:2374
+#, fuzzy
+#| msgid "Error."
+msgid "Error"
+msgstr "Hiba."
+
+#: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375
+msgid "Merge Error"
+msgstr "Összeolvasztási hiba"
+
+#: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380
+msgid "Error."
+msgstr "Hiba."
+
+#: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272
+#: directorymergewindow.cpp:2312
+msgid "Done."
+msgstr "Kész."
+
+#: directorymergewindow.cpp:1990
+msgid "Not saved."
+msgstr "Nincs elmentve."
+
+#: directorymergewindow.cpp:2025
+msgid "Unknown merge operation. (This must never happen!)"
+msgstr ""
+"Ismeretlen összeolvasztási művelet (normál körülmények között nem fordulhat "
+"elő)."
+
+#: directorymergewindow.cpp:2057
+msgid "Unknown merge operation."
+msgstr "Ismeretlen összeolvasztási művelet."
+
+#: directorymergewindow.cpp:2072
+msgid ""
+"The merge is about to begin.\n"
+"\n"
+"Choose \"Do it\" if you have read the instructions and know what you are "
+"doing.\n"
+"Choosing \"Simulate it\" will tell you what would happen.\n"
+"\n"
+"Be aware that this program still has beta status and there is NO WARRANTY "
+"whatsoever! Make backups of your vital data!"
+msgstr ""
+"Az összeolvasztás előkészítése megtörtént.\n"
+"\n"
+"Kattintson a \"Kezdődjön\" gombra, ha elolvasta a leírást és tudja, mi fog "
+"történni.\n"
+"Kattintson a \"Szimuláció\" gombra, ha látni szeretné, mi fog történni.\n"
+"\n"
+"Ez a program még béta állapotú, ezért nincs garancia a hibátlan működésre. A "
+"fontos adatokról mindenképpen készítsen biztonsági másolatot!"
+
+#: directorymergewindow.cpp:2077
+msgid "Starting Merge"
+msgstr "Az összeolvasztás megkezdése"
+
+#: directorymergewindow.cpp:2078
+msgid "Do It"
+msgstr "Kezdődjön"
+
+#: directorymergewindow.cpp:2079
+msgid "Simulate It"
+msgstr "Szimuláció"
+
+#: directorymergewindow.cpp:2105
+msgid ""
+"The highlighted item has a different type in the different directories. "
+"Select what to do."
+msgstr ""
+"A kijelölt elem típusa eltérő a könyvtárakban. Válassza ki, mit szeretne "
+"tenni."
+
+#: directorymergewindow.cpp:2114
+msgid ""
+"The modification dates of the file are equal but the files are not. Select "
+"what to do."
+msgstr ""
+"A két fájl utolsó módosítási dátuma megegyezik, de a fájlok tartalma nem. Mi "
+"történjen?"
+
+#: directorymergewindow.cpp:2123
+#, fuzzy
+#| msgid ""
+#| "The highlighted item has a different type in the different directories. "
+#| "Select what to do."
+msgid ""
+"The highlighted item was changed in one directory and deleted in the other. "
+"Select what to do."
+msgstr ""
+"A kijelölt elem típusa eltérő a könyvtárakban. Válassza ki, mit szeretne "
+"tenni."
+
+#: directorymergewindow.cpp:2174
+#, fuzzy
+msgid ""
+"This operation is currently not possible because directory merge is "
+"currently running."
+msgstr ""
+"Ez a művelet most nem hajtható végre, mert folyamatban van egy "
+"könyvtárösszeolvasztás."
+
+#: directorymergewindow.cpp:2234
+msgid ""
+"There was an error in the last step.\n"
+"Do you want to continue with the item that caused the error or do you want "
+"to skip this item?"
+msgstr ""
+"Hiba történt az utolsó lépsnél.\n"
+"Folytatni szeretné a műveletet a hiba ellenére vagy át szeretné ugrani a "
+"hibát okozó elemet?"
+
+#: directorymergewindow.cpp:2236
+msgid "Continue merge after an error"
+msgstr "Az összeolvasztás folytatása hiba esetén is"
+
+#: directorymergewindow.cpp:2237
+msgid "Continue With Last Item"
+msgstr "Folytatás az utolsó elemmel"
+
+#: directorymergewindow.cpp:2238
+msgid "Skip Item"
+msgstr "Az elem átlépése"
+
+#: directorymergewindow.cpp:2272
+msgid "Skipped."
+msgstr "Átlépve."
+
+#: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493
+msgid "In progress..."
+msgstr "Folyamatban..."
+
+#: directorymergewindow.cpp:2327
+msgid "Merge operation complete."
+msgstr "Az összeolvasztási művelet befejeződött."
+
+#: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330
+msgid "Merge Complete"
+msgstr "Az összeolvasztás befejeződött"
+
+#: directorymergewindow.cpp:2340
+msgid ""
+"Simulated merge complete: Check if you agree with the proposed operations."
+msgstr ""
+"A szimulált összeolvasztás befejeződött: ellenőrizze, hogy elfogadhatók-e a "
+"javasolt műveletek."
+
+#: directorymergewindow.cpp:2374
+msgid "An error occurred. Press OK to see detailed information.\n"
+msgstr "Hiba történt. Kattintson az OK gombra részletes tájékoztatáshoz.\n"
+
+#: directorymergewindow.cpp:2406
+#, kde-format
+msgid "Error: While deleting %1: Creating backup failed."
+msgstr ""
+"Hiba történt %1 törlése közben: nem sikerült létrehozni egy biztonsági "
+"másolatot."
+
+#: directorymergewindow.cpp:2413
+#, kde-format
+msgid "delete directory recursively( %1 )"
+msgstr "könyvtár (%1) törlése az alkönyvtárakkal együtt"
+
+#: directorymergewindow.cpp:2415
+#, kde-format
+msgid "delete( %1 )"
+msgstr "törlés (%1)"
+
+#: directorymergewindow.cpp:2430
+msgid "Error: delete dir operation failed while trying to read the directory."
+msgstr ""
+"Hiba történt: a könyvtártörlés során, a könyvtár beolvasásakor, hiba történt."
+
+#: directorymergewindow.cpp:2449
+#, kde-format
+msgid "Error: rmdir( %1 ) operation failed."
+msgstr "Hiba: egy rmdir (%1) művelet nem sikerült."
+
+#: directorymergewindow.cpp:2459
+msgid "Error: delete operation failed."
+msgstr "Hiba történt: a törlési művelet nem sikerült."
+
+#: directorymergewindow.cpp:2485
+#, kde-format
+msgid "manual merge( %1, %2, %3 -> %4)"
+msgstr "kézi összeolvasztás (%1, %2, %3 -> %4)"
+
+#: directorymergewindow.cpp:2488
+#, fuzzy
+msgid ""
+"     Note: After a manual merge the user should continue by pressing F7."
+msgstr ""
+"     Megjegyzés: kézi összeolvasztás esetén a felhasználónak az F7-tel kell "
+"továbblépnie."
+
+#: directorymergewindow.cpp:2513
+#, kde-format
+msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed."
+msgstr ""
+"Hiba: egy másolás (%1 -> %2) nem sikerült. Nem sikerült törölni a már létező "
+"másolási célpontot."
+
+#: directorymergewindow.cpp:2522
+#, kde-format
+msgid "copyLink( %1 -> %2 )"
+msgstr "Link másolása (%1 -> %2)"
+
+#: directorymergewindow.cpp:2533
+msgid "Error: copyLink failed: Remote links are not yet supported."
+msgstr ""
+"Hiba: egy link másolása nem sikerült. Távoli linkeket nem lehet használni."
+
+#: directorymergewindow.cpp:2539
+msgid "Error: copyLink failed."
+msgstr "Hiba történt: egy link másolása nem sikerült."
+
+#: directorymergewindow.cpp:2564
+#, kde-format
+msgid "copy( %1 -> %2 )"
+msgstr "másolás (%1 -> %2)"
+
+#: directorymergewindow.cpp:2590
+#, kde-format
+msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination."
+msgstr "Hiba történt átnevezés (%1 -> %2) közben: a célfájl nem törölhető."
+
+#: directorymergewindow.cpp:2596
+#, kde-format
+msgid "rename( %1 -> %2 )"
+msgstr "átnevezés (%1 -> %2)"
+
+#: directorymergewindow.cpp:2605
+msgid "Error: Rename failed."
+msgstr "Hiba történt: egy átnevezés nem sikerült."
+
+#: directorymergewindow.cpp:2623
+#, kde-format
+msgid "Error during makeDir of %1. Cannot delete existing file."
+msgstr ""
+"Hiba történt a könyvtár (%1) létrehozása közben. A már létező fájl nem "
+"törölhető."
+
+#: directorymergewindow.cpp:2639
+#, kde-format
+msgid "makeDir( %1 )"
+msgstr "Könyvtár létrehozása (%1)"
+
+#: directorymergewindow.cpp:2649
+msgid "Error while creating directory."
+msgstr "Hiba történt egy könyvtár létrehozása közben."
+
+#: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784
+msgid "Dest"
+msgstr "Cél"
+
+#: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709
+msgid "Dir"
+msgstr "Könyvtár"
+
+#: directorymergewindow.cpp:2678
+msgid "Type"
+msgstr "Típus"
+
+#: directorymergewindow.cpp:2678
+msgid "Size"
+msgstr "Méret"
+
+#: directorymergewindow.cpp:2679
+msgid "Attr"
+msgstr "Attribútum"
+
+#: directorymergewindow.cpp:2679
+msgid "Last Modification"
+msgstr "Utolsó módosítás"
+
+#: directorymergewindow.cpp:2679
+msgid "Link-Destination"
+msgstr "Link-Cél"
+
+#: directorymergewindow.cpp:2709 difftextwindow.cpp:401
+#, fuzzy
+#| msgid "File..."
+msgid "File"
+msgstr "Fájl..."
+
+#: directorymergewindow.cpp:2726
+msgid "not available"
+msgstr "nem áll rendelkezésre"
+
+#: directorymergewindow.cpp:2746
+msgid "A (Dest): "
+msgstr "A (cél):"
+
+#: directorymergewindow.cpp:2749
+msgid "A (Base): "
+msgstr "A (alap):"
+
+#: directorymergewindow.cpp:2755
+msgid "B (Dest): "
+msgstr "B (cél):"
+
+#: directorymergewindow.cpp:2763
+msgid "C (Dest): "
+msgstr "C (cél):"
+
+#: directorymergewindow.cpp:2769
+msgid "Dest: "
+msgstr "Cél: "
+
+#: directorymergewindow.cpp:2836
+#, fuzzy
+msgid "Save Directory Merge State As..."
+msgstr "Könyvtárösszeolvasztás"
+
+#: directorymergewindow.cpp:2959
+msgid "Start/Continue Directory Merge"
+msgstr "A könyvtárösszeolvasztás kezdése/folytatása"
+
+#: directorymergewindow.cpp:2960
+msgid "Run Operation for Current Item"
+msgstr "A művelet végrehajtása az aktuális elemen"
+
+#: directorymergewindow.cpp:2961
+msgid "Compare Selected File"
+msgstr "A kiválasztott fájl összehasonlítása"
+
+#: directorymergewindow.cpp:2962
+msgid "Merge Current File"
+msgstr "Az aktuális fájl összeolvasztása"
+
+#: directorymergewindow.cpp:2962
+#, fuzzy
+#| msgid "Merge"
+msgid ""
+"Merge\n"
+"File"
+msgstr "Összeolvasztás"
+
+#: directorymergewindow.cpp:2963
+msgid "Fold All Subdirs"
+msgstr "Az alkönyvtárak összecsukása"
+
+#: directorymergewindow.cpp:2964
+msgid "Unfold All Subdirs"
+msgstr "Az alkönyvtárak kibontása"
+
+#: directorymergewindow.cpp:2968
+msgid "Choose A for All Items"
+msgstr "Az 'A' kiválasztása az összes elemhez"
+
+#: directorymergewindow.cpp:2969
+msgid "Choose B for All Items"
+msgstr "A 'B' kiválasztása az összes elemhez"
+
+#: directorymergewindow.cpp:2970
+msgid "Choose C for All Items"
+msgstr "A 'C' kiválasztása az összes elemhez"
+
+#: directorymergewindow.cpp:2971
+msgid "Auto-Choose Operation for All Items"
+msgstr "Automatikus kiválasztás az összes elemnél"
+
+#: directorymergewindow.cpp:2972
+msgid "No Operation for All Items"
+msgstr "Nincs művelet az összes elemre"
+
+#: directorymergewindow.cpp:2977
+msgid "Show Identical Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2977
+msgid ""
+"Identical\n"
+"Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2978
+#, fuzzy
+msgid "Show Different Files"
+msgstr "Az eltérő fájlok száma:"
+
+#: directorymergewindow.cpp:2979
+msgid "Show Files only in A"
+msgstr ""
+
+#: directorymergewindow.cpp:2979
+msgid ""
+"Files\n"
+"only in A"
+msgstr ""
+
+#: directorymergewindow.cpp:2980
+msgid "Show Files only in B"
+msgstr ""
+
+#: directorymergewindow.cpp:2980
+msgid ""
+"Files\n"
+"only in B"
+msgstr ""
+
+#: directorymergewindow.cpp:2981
+msgid "Show Files only in C"
+msgstr ""
+
+#: directorymergewindow.cpp:2981
+msgid ""
+"Files\n"
+"only in C"
+msgstr ""
+
+#: directorymergewindow.cpp:2985
+#, fuzzy
+msgid "Compare Explicitly Selected Files"
+msgstr "A kiválasztott fájl összehasonlítása"
+
+#: directorymergewindow.cpp:2986
+#, fuzzy
+msgid "Merge Explicitly Selected Files"
+msgstr "A kiválasztott fájl összehasonlítása"
+
+#: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995
+msgid "Do Nothing"
+msgstr "Nem kell semmit tenni"
+
+#: directorymergewindow.cpp:2989
+msgid "A"
+msgstr "A"
+
+#: directorymergewindow.cpp:2990
+msgid "B"
+msgstr "B"
+
+#: directorymergewindow.cpp:2991
+msgid "C"
+msgstr "C"
+
+#: directorymergewindow.cpp:3000
+#, fuzzy
+msgid "Delete A && B"
+msgstr "A és B törlése"
+
+#: directorymergewindow.cpp:3003
+#, fuzzy
+msgid "Merge to A && B"
+msgstr "Beolvasztás A és B-be"
+
+#: main.cpp:74 main.cpp:76
+msgid "Ignored. (User defined.)"
+msgstr ""
+
+#: main.cpp:162
+#, fuzzy
+#| msgid "KDiff3"
+msgid "kdiff3"
+msgstr "KDiff3"
+
+#: main.cpp:164
+msgid "Tool for Comparison and Merge of Files and Directories"
+msgstr ""
+
+#: main.cpp:165
+msgid "(c) 2002-2011 Joachim Eibl"
+msgstr ""
+
+#: main.cpp:172 kdiff3_part.cpp:303
+msgid "Joachim Eibl"
+msgstr ""
+
+#: main.cpp:173
+msgid "Eike Sauer"
+msgstr ""
+
+#: main.cpp:173
+msgid "Bugfixes, Debian package maintainer"
+msgstr ""
+
+#: main.cpp:174
+msgid "Sebastien Fricker"
+msgstr ""
+
+#: main.cpp:174
+msgid "Windows installer"
+msgstr ""
+
+#: main.cpp:175
+msgid "Stephan Binner"
+msgstr ""
+
+#: main.cpp:175
+msgid "i18n-help"
+msgstr ""
+
+#: main.cpp:176
+msgid "Stefan Partheymueller"
+msgstr ""
+
+#: main.cpp:176
+#, fuzzy
+#| msgid "From Clipboard"
+msgid "Clipboard-patch"
+msgstr "A vágólapról"
+
+#: main.cpp:177
+msgid "David Faure"
+msgstr ""
+
+#: main.cpp:177
+msgid "KIO-Help"
+msgstr ""
+
+#: main.cpp:178
+msgid "Bernd Gehrmann"
+msgstr ""
+
+#: main.cpp:178
+msgid "Class CvsIgnoreList from Cervisia"
+msgstr ""
+
+#: main.cpp:179
+msgid "Andre Woebbeking"
+msgstr ""
+
+#: main.cpp:179
+msgid "Class StringMatcher"
+msgstr ""
+
+#: main.cpp:180
+msgid "Michael Denio"
+msgstr ""
+
+#: main.cpp:180
+#, fuzzy
+#| msgid "Directory Comparison Status"
+msgid "Directory Equality-Coloring patch"
+msgstr "A könyvtárak összehasonlítási állapota"
+
+#: main.cpp:181
+msgid "Manfred Koehler"
+msgstr ""
+
+#: main.cpp:181
+msgid "Fix for slow startup on Windows"
+msgstr ""
+
+#: main.cpp:182
+#, fuzzy
+#| msgid "Merge Error"
+msgid "Sergey Zorin"
+msgstr "Összeolvasztási hiba"
+
+#: main.cpp:182
+msgid "Diff Ext for Windows"
+msgstr ""
+
+#: main.cpp:183
+msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+msgstr ""
+
+#: main.cpp:183
+msgid "GNU-Diffutils"
+msgstr ""
+
+#: main.cpp:184
+msgid "Tino Boellsterling, Timothy Mee"
+msgstr ""
+
+#: main.cpp:184
+msgid "Intensive test, use and feedback"
+msgstr ""
+
+#: main.cpp:185
+msgid "Michael Schmidt"
+msgstr ""
+
+#: main.cpp:185
+msgid "Mac support"
+msgstr ""
+
+#: main.cpp:186
+msgid "Valentin Rusu"
+msgstr ""
+
+#: main.cpp:186 main.cpp:187
+#, fuzzy
+#| msgid "Do Nothing"
+msgid "KDE4 porting"
+msgstr "Nem kell semmit tenni"
+
+#: main.cpp:187
+msgid "Albert Astals Cid"
+msgstr ""
+
+#: main.cpp:188
+msgid "Silvan Scherrer"
+msgstr ""
+
+#: main.cpp:188
+msgid "OS2 port"
+msgstr ""
+
+#: main.cpp:190
+msgid "+ Many thanks to those who reported bugs and contributed ideas!"
+msgstr ""
+
+#: main.cpp:196
+msgid "Merge the input."
+msgstr "Összeolvasztás a bemenettel."
+
+#: main.cpp:197
+msgid "Explicit base file. For compatibility with certain tools."
+msgstr "Az alapfájl explicit kijelölése. Kompatibilitási célokat szolgál."
+
+#: main.cpp:198
+msgid "Output file. Implies -m. E.g.: -o newfile.txt"
+msgstr ""
+"A kimeneti fájl neve. Maga után vonja a -m opciót. Például: -o újfájl.txt"
+
+#: main.cpp:199
+msgid "Output file, again. (For compatibility with certain tools.)"
+msgstr "A kimeneti fájl neve, még egyszer. Kompatibilitási célokat szolgál."
+
+#: main.cpp:200
+msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)"
+msgstr ""
+"Nem jelenjen meg grafikus felület, ha az összes ütközés automatikusan "
+"feloldható. (A -o fájlnév opcióval használható.)"
+
+#: main.cpp:201
+msgid "Don't solve conflicts automatically. (For compatibility...)"
+msgstr ""
+"Az ütközések automatikus feloldásának kikapcsolása. Kompatibilitási célokat "
+"szolgál."
+
+#: main.cpp:202
+#, fuzzy
+msgid "Visible name replacement for input file 1 (base)."
+msgstr ""
+"A megjelenített név cseréje. Minden bemenethez csak egyszer kell megadni."
+
+#: main.cpp:203
+#, fuzzy
+msgid "Visible name replacement for input file 2."
+msgstr ""
+"A megjelenített név cseréje. Minden bemenethez csak egyszer kell megadni."
+
+#: main.cpp:204
+#, fuzzy
+msgid "Visible name replacement for input file 3."
+msgstr ""
+"A megjelenített név cseréje. Minden bemenethez csak egyszer kell megadni."
+
+#: main.cpp:205
+#, fuzzy
+msgid "Alternative visible name replacement. Supply this once for every input."
+msgstr ""
+"A megjelenített név cseréje. Minden bemenethez csak egyszer kell megadni."
+
+#: main.cpp:206
+msgid ""
+"Override a config setting. Use once for every setting. E.g.: --cs "
+"\"AutoAdvance=1\""
+msgstr ""
+
+#: main.cpp:207
+msgid "Show list of config settings and current values."
+msgstr ""
+
+#: main.cpp:208
+#, fuzzy
+msgid "Use a different config file."
+msgstr "Az eltérő fájlok száma:"
+
+#: main.cpp:211
+msgid "file1 to open (base, if not specified via --base)"
+msgstr ""
+"a megnyitandó fájl (1) - ez lesz az alap, ha nincs megadva a --base opció"
+
+#: main.cpp:212
+msgid "file2 to open"
+msgstr "a megnyitandó fájl (2)"
+
+#: main.cpp:213
+msgid "file3 to open"
+msgstr "a megnyitandó fájl (3)"
+
+#: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976
+#: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002
+#: mergeresultwindow.cpp:1014
+#, fuzzy, kde-format
+msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)"
+msgstr ""
+"\n"
+"A fel nem oldott ütközések száma: "
+
+#: mergeresultwindow.cpp:303
+msgid ""
+"The output has been modified.\n"
+"If you continue your changes will be lost."
+msgstr ""
+"A kimenet megváltozott.\n"
+"Ha továbblép, a módosítások elvesznek."
+
+#: mergeresultwindow.cpp:834 pdiff.cpp:532
+msgid "All input files are binary equal."
+msgstr "Az összes bemeneti fájl megegyezik (bináris módban)."
+
+#: mergeresultwindow.cpp:836
+msgid "All input files contain the same text."
+msgstr "Az összes bemeneti fájl megegyezik (szöveges módban)."
+
+#: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840
+#: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540
+#, fuzzy, kde-format
+msgid "Files %1 and %2 are binary equal.\n"
+msgstr "B és C binárisan megegyezik.\n"
+
+#: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841
+#: mergeresultwindow.cpp:843
+#, fuzzy, kde-format
+msgid "Files %1 and %2 have equal text.\n"
+msgstr "A és B szövege megegyezik.\n"
+
+#: mergeresultwindow.cpp:849
+msgid "Total number of conflicts: "
+msgstr "Az ütközések száma: "
+
+#: mergeresultwindow.cpp:850
+msgid ""
+"\n"
+"Nr of automatically solved conflicts: "
+msgstr ""
+"\n"
+"Az automatikusan feloldott ütközések száma: "
+
+#: mergeresultwindow.cpp:851
+msgid ""
+"\n"
+"Nr of unsolved conflicts: "
+msgstr ""
+"\n"
+"A fel nem oldott ütközések száma: "
+
+#: mergeresultwindow.cpp:853
+msgid "Conflicts"
+msgstr "Ütközések"
+
+#: mergeresultwindow.cpp:1728
+msgid "<No src line>"
+msgstr "<Nincs forrássor>"
+
+#: mergeresultwindow.cpp:1736
+#, fuzzy
+msgid "<Merge Conflict (Whitespace only)>"
+msgstr "<Összeolvasztási ütközés>"
+
+#: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517
+msgid "<Merge Conflict>"
+msgstr "<Összeolvasztási ütközés>"
+
+#: mergeresultwindow.cpp:2725
+msgid ""
+"Not all conflicts are solved yet.\n"
+"File not saved.\n"
+msgstr ""
+"Még nincs feloldva az összes ütközés.\n"
+"A fájl nem lesz elmentve.\n"
+
+#: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736
+msgid "Conflicts Left"
+msgstr "Megmaradt ütközések"
+
+#: mergeresultwindow.cpp:2734
+msgid ""
+"There is a line end style conflict. Please choose the line end style "
+"manually.\n"
+"File not saved.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:2748
+msgid ""
+"\n"
+"\n"
+"Creating backup failed. File not saved."
+msgstr ""
+
+#: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792
+msgid "File Save Error"
+msgstr "Fájlmentési hiba"
+
+#: mergeresultwindow.cpp:2792
+msgid "Error while writing."
+msgstr "Hiba történt írás közben."
+
+#: mergeresultwindow.cpp:3122
+msgid "Output"
+msgstr ""
+
+#: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314
+msgid "[Modified]"
+msgstr "[Módosítva]"
+
+#: mergeresultwindow.cpp:3141
+msgid "Encoding for saving"
+msgstr ""
+
+#: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737
+#: optiondialog.cpp:762
+msgid "Line end style:"
+msgstr ""
+
+#: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767
+msgid "Unix"
+msgstr ""
+
+#: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737
+msgid "DOS"
+msgstr ""
+
+#: mergeresultwindow.cpp:3229
+#, fuzzy
+#| msgid "Conflicts"
+msgid "Conflict"
+msgstr "Ütközések"
+
+#: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263
+#: mergeresultwindow.cpp:3265
+msgid "Codec from"
+msgstr ""
+
+#: kdiff3_part.cpp:157 kdiff3_part.cpp:234
+msgid "Couldn't find files for comparison."
+msgstr "Nem található összehasonlítható fájlpár."
+
+#: kdiff3_part.cpp:302
+msgid "KDiff3Part"
+msgstr "KDiff3Part"
+
+#: fileaccess.cpp:612
+msgid ""
+"While trying to make a backup, deleting an older backup failed. \n"
+"Filename: "
+msgstr ""
+"Biztonsági mentés készítése közben egy régebbi biztonsági mentést nem "
+"sikerült törölni. \n"
+"Fájlnév: "
+
+#: fileaccess.cpp:619
+msgid ""
+"While trying to make a backup, renaming failed. \n"
+"Filenames: "
+msgstr ""
+"Biztonsági mentés készítése közben egy átnevezés nem sikerült. \n"
+"A fájlok nevei: "
+
+#: fileaccess.cpp:643
+#, kde-format
+msgid "Getting file status: %1"
+msgstr "A fájlállapot lekérdezése: %1"
+
+#: fileaccess.cpp:686
+#, kde-format
+msgid "Reading file: %1"
+msgstr "Fájl beolvasása: %1"
+
+#: fileaccess.cpp:723
+#, kde-format
+msgid "Writing file: %1"
+msgstr "Fájl írása: %1"
+
+#: fileaccess.cpp:751
+msgid "Out of memory"
+msgstr "Elfogyott a memória"
+
+#: fileaccess.cpp:786
+#, kde-format
+msgid "Making directory: %1"
+msgstr "Könyvtár létrehozása: %1"
+
+#: fileaccess.cpp:806
+#, kde-format
+msgid "Removing directory: %1"
+msgstr "Könyvtár törlése: %1"
+
+#: fileaccess.cpp:821
+#, kde-format
+msgid "Removing file: %1"
+msgstr "Fájl törlése: %1"
+
+#: fileaccess.cpp:837
+#, kde-format
+msgid "Creating symbolic link: %1 -> %2"
+msgstr "Szimbolikus link létrehozása: %1 -> %2"
+
+#: fileaccess.cpp:864
+#, kde-format
+msgid "Renaming file: %1 -> %2"
+msgstr "Fájl átnevezése: %1 -> %2"
+
+#: fileaccess.cpp:897
+#, kde-format
+msgid "Copying file: %1 -> %2"
+msgstr "Fájl másolása: %1 -> %2"
+
+#: fileaccess.cpp:911
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for reading failed. Filename: "
+"%1"
+msgstr ""
+"Hiba történt fájlmásolás közben: nem sikerült olvasásra megnyitni egy fájlt. "
+"A fájl neve: %1"
+
+#: fileaccess.cpp:917
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for writing failed. Filename: "
+"%1"
+msgstr ""
+"Hiba történt fájlmásolás közben: nem sikerült írásra megnyitni egy fájlt. A "
+"fájl neve: %1"
+
+#: fileaccess.cpp:932
+#, kde-format
+msgid "Error during file copy operation: Reading failed. Filename: %1"
+msgstr ""
+"Hiba történt fájlmásolás közben: egy olvasási művelet nem sikerült. A fájl "
+"neve: %1"
+
+#: fileaccess.cpp:941
+#, kde-format
+msgid "Error during file copy operation: Writing failed. Filename: %1"
+msgstr ""
+"Hiba történt fájlmásolás közben: egy írási művelet nem sikerült. A fájl "
+"neve: %1"
+
+#: fileaccess.cpp:1231
+msgid "Reading directory: "
+msgstr "Könyvtár beolvasása: "
+
+#: fileaccess.cpp:1355
+#, kde-format
+msgid "Listing directory: %1"
+msgstr "Könyvtár kilistázása: %1"
+
+#: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396
+msgid "&Cancel"
+msgstr ""
+
+#: difftextwindow.cpp:403
+#, fuzzy
+#| msgid "Link: "
+msgid "Line"
+msgstr "Link: "
+
+#: difftextwindow.cpp:405
+#, fuzzy
+#| msgid "not available"
+msgid "Line not available"
+msgstr "nem áll rendelkezésre"
+
+#: difftextwindow.cpp:1703 difftextwindow.cpp:1736
+msgid "Encoding:"
+msgstr ""
+
+#: difftextwindow.cpp:1759 kdiff3.cpp:831
+#, fuzzy
+msgid "Top line"
+msgstr "Felső sor - %1"
+
+#: difftextwindow.cpp:1769
+msgid "End"
+msgstr "Vég"
+
+#: kdiff3.cpp:169
+#, fuzzy
+msgid "Current Configuration:"
+msgstr "Szinkronizálási művelet az aktuális elemmel"
+
+#: kdiff3.cpp:174
+#, fuzzy
+msgid "Config Option Error:"
+msgstr "Fájlmegnyitási hiba"
+
+#: kdiff3.cpp:219
+msgid "Option --auto used, but no output file specified."
+msgstr ""
+"Az --auto opciót használná a program, de nincs megadva a kimeneti fájl."
+
+#: kdiff3.cpp:369
+msgid "Option --auto ignored for directory comparison."
+msgstr ""
+"Az --auto opció figyelmen kívül lesz hagyva könyvtárak összehasonlításánál."
+
+#: kdiff3.cpp:405
+msgid "Saving failed."
+msgstr "A mentés nem sikerült."
+
+#: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214
+msgid "Opening of these files failed:"
+msgstr "Nem sikerült megnyitni a következő fájlokat:"
+
+#: kdiff3.cpp:449
+msgid "File Open Error"
+msgstr "Fájlmegnyitási hiba"
+
+#: kdiff3.cpp:477
+msgid "Opens documents for comparison..."
+msgstr "Dokumentumok megnyitása összehasonlításhoz..."
+
+#: kdiff3.cpp:479
+#, fuzzy
+#| msgid "Ready."
+msgid "Reload"
+msgstr "Kész."
+
+#: kdiff3.cpp:482
+msgid "Saves the merge result. All conflicts must be solved!"
+msgstr ""
+"Az összeolvasztás eredményének elmentése. Minden ütközést fel kell oldani."
+
+#: kdiff3.cpp:484
+msgid "Saves the current document as..."
+msgstr "Az aktuális dokumentum mentése mint..."
+
+#: kdiff3.cpp:487
+msgid "Print the differences"
+msgstr ""
+
+#: kdiff3.cpp:490
+msgid "Quits the application"
+msgstr "Kilépés az alkalmazásból"
+
+#: kdiff3.cpp:492
+msgid "Cuts the selected section and puts it to the clipboard"
+msgstr "Kivágja a kijelölt részt és a vágólapra helyezi"
+
+#: kdiff3.cpp:494
+msgid "Copies the selected section to the clipboard"
+msgstr "Kimásolja a kijelölt részt és a vágólapra helyezi"
+
+#: kdiff3.cpp:496
+#, fuzzy
+#| msgid "Pastes the clipboard contents to actual position"
+msgid "Pastes the clipboard contents to current position"
+msgstr "Beilleszti a vágólap tartalmát az aktuális pozíciónál"
+
+#: kdiff3.cpp:498
+msgid "Select everything in current window"
+msgstr ""
+
+#: kdiff3.cpp:500
+msgid "Search for a string"
+msgstr "Sztring keresése"
+
+#: kdiff3.cpp:502
+msgid "Search again for the string"
+msgstr "A sztring keresése újból"
+
+#: kdiff3.cpp:507
+msgid "Enables/disables the statusbar"
+msgstr "Az állapotsor ki-be kapcsolása"
+
+#: kdiff3.cpp:511
+msgid "Configure KDiff3..."
+msgstr "A KDiff3 beállításai..."
+
+#: kdiff3.cpp:532
+msgid "Go to Current Delta"
+msgstr "Ugrás az aktuális deltára..."
+
+#: kdiff3.cpp:532
+#, fuzzy
+#| msgid "Go to Current Delta"
+msgid ""
+"Current\n"
+"Delta"
+msgstr "Ugrás az aktuális deltára..."
+
+#: kdiff3.cpp:534
+msgid "Go to First Delta"
+msgstr "Ugrás az első deltára"
+
+#: kdiff3.cpp:534
+#, fuzzy
+#| msgid "Go to First Delta"
+msgid ""
+"First\n"
+"Delta"
+msgstr "Ugrás az első deltára"
+
+#: kdiff3.cpp:536
+msgid "Go to Last Delta"
+msgstr "Ugrás az utolsó deltára"
+
+#: kdiff3.cpp:536
+#, fuzzy
+#| msgid "Go to Last Delta"
+msgid ""
+"Last\n"
+"Delta"
+msgstr "Ugrás az utolsó deltára"
+
+#: kdiff3.cpp:538
+msgid "(Skips white space differences when \"Show White Space\" is disabled.)"
+msgstr ""
+
+#: kdiff3.cpp:539
+msgid ""
+"(Does not skip white space differences even when \"Show White Space\" is "
+"disabled.)"
+msgstr ""
+
+#: kdiff3.cpp:540
+msgid "Go to Previous Delta"
+msgstr "Ugrás az előző deltára"
+
+#: kdiff3.cpp:540
+#, fuzzy
+#| msgid "Go to Previous Delta"
+msgid ""
+"Prev\n"
+"Delta"
+msgstr "Ugrás az előző deltára"
+
+#: kdiff3.cpp:542
+msgid "Go to Next Delta"
+msgstr "Ugrás a következő deltára"
+
+#: kdiff3.cpp:542
+#, fuzzy
+#| msgid "Go to Next Delta"
+msgid ""
+"Next\n"
+"Delta"
+msgstr "Ugrás a következő deltára"
+
+#: kdiff3.cpp:544
+msgid "Go to Previous Conflict"
+msgstr "Ugrás az előző ütközésre"
+
+#: kdiff3.cpp:544
+#, fuzzy
+#| msgid "Conflicts"
+msgid ""
+"Prev\n"
+"Conflict"
+msgstr "Ütközések"
+
+#: kdiff3.cpp:546
+msgid "Go to Next Conflict"
+msgstr "Ugrás a következő ütközésre"
+
+#: kdiff3.cpp:546
+#, fuzzy
+#| msgid "Go to Next Conflict"
+msgid ""
+"Next\n"
+"Conflict"
+msgstr "Ugrás a következő ütközésre"
+
+#: kdiff3.cpp:548
+msgid "Go to Previous Unsolved Conflict"
+msgstr "Ugrás az előző feloldatlan ütközésre"
+
+#: kdiff3.cpp:548
+msgid ""
+"Prev\n"
+"Unsolved"
+msgstr ""
+
+#: kdiff3.cpp:550
+msgid "Go to Next Unsolved Conflict"
+msgstr "Ugrás a következő feloldatlan ütközésre"
+
+#: kdiff3.cpp:550
+msgid ""
+"Next\n"
+"Unsolved"
+msgstr ""
+
+#: kdiff3.cpp:552
+msgid "Select Line(s) From A"
+msgstr "Sor(ok) kiválasztása A-ból"
+
+#: kdiff3.cpp:552
+msgid ""
+"Choose\n"
+"A"
+msgstr ""
+
+#: kdiff3.cpp:553
+msgid "Select Line(s) From B"
+msgstr "Sor(ok) kiválasztása B-ből"
+
+#: kdiff3.cpp:553
+msgid ""
+"Choose\n"
+"B"
+msgstr ""
+
+#: kdiff3.cpp:554
+msgid "Select Line(s) From C"
+msgstr "Sor(ok) kiválasztása C-ből"
+
+#: kdiff3.cpp:554
+msgid ""
+"Choose\n"
+"C"
+msgstr ""
+
+#: kdiff3.cpp:555
+msgid "Automatically Go to Next Unsolved Conflict After Source Selection"
+msgstr ""
+"A forrás kiválasztása után automatikus ugrás a következő feloldatlan "
+"ütközésre"
+
+#: kdiff3.cpp:555
+#, fuzzy
+msgid ""
+"Auto\n"
+"Next"
+msgstr "A kijelölt adatok automatikus kimásolása a vágólapra"
+
+#: kdiff3.cpp:557
+msgid "Show Space && Tabulator Characters for Differences"
+msgstr "A szóközök és tabulátorok megjelenítése eltéréseknél"
+
+#: kdiff3.cpp:557
+msgid ""
+"White\n"
+"Characters"
+msgstr ""
+
+#: kdiff3.cpp:558
+msgid "Show White Space"
+msgstr "Az üres karakterek megjelenítése"
+
+#: kdiff3.cpp:558
+msgid ""
+"White\n"
+"Deltas"
+msgstr ""
+
+#: kdiff3.cpp:560
+msgid "Show Line Numbers"
+msgstr "A sorszámok megjelenítése"
+
+#: kdiff3.cpp:560
+#, fuzzy
+#| msgid "Show Line Numbers"
+msgid ""
+"Line\n"
+"Numbers"
+msgstr "A sorszámok megjelenítése"
+
+#: kdiff3.cpp:561
+msgid "Choose A Everywhere"
+msgstr "A kiválasztása mindenhol"
+
+#: kdiff3.cpp:562
+msgid "Choose B Everywhere"
+msgstr "B kiválasztása mindenhol"
+
+#: kdiff3.cpp:563
+msgid "Choose C Everywhere"
+msgstr "C kiválasztása mindenhol"
+
+#: kdiff3.cpp:564
+#, fuzzy
+msgid "Choose A for All Unsolved Conflicts"
+msgstr "A kiválasztása az összes feloldatlan ütközéshez"
+
+#: kdiff3.cpp:565
+#, fuzzy
+msgid "Choose B for All Unsolved Conflicts"
+msgstr "B kiválasztása az összes feloldatlan ütközéshez"
+
+#: kdiff3.cpp:566
+#, fuzzy
+msgid "Choose C for All Unsolved Conflicts"
+msgstr "C kiválasztása az összes feloldatlan ütközéshez"
+
+#: kdiff3.cpp:567
+#, fuzzy
+msgid "Choose A for All Unsolved Whitespace Conflicts"
+msgstr "A kiválasztása az összes feloldatlan elválasztókarakter-ütközéshez"
+
+#: kdiff3.cpp:568
+#, fuzzy
+msgid "Choose B for All Unsolved Whitespace Conflicts"
+msgstr "B kiválasztása az összes feloldatlan elválasztókarakter-ütközéshez"
+
+#: kdiff3.cpp:569
+#, fuzzy
+msgid "Choose C for All Unsolved Whitespace Conflicts"
+msgstr "C kiválasztása az összes feloldatlan elválasztókarakter-ütközéshez"
+
+#: kdiff3.cpp:570
+msgid "Automatically Solve Simple Conflicts"
+msgstr "Az egyszerű ütközések automatikus feloldása"
+
+#: kdiff3.cpp:571
+msgid "Set Deltas to Conflicts"
+msgstr "Delták beállítása az ütközésekhez"
+
+#: kdiff3.cpp:572
+msgid "Run Regular Expression Auto Merge"
+msgstr ""
+
+#: kdiff3.cpp:573
+#, fuzzy
+msgid "Automatically Solve History Conflicts"
+msgstr "Az egyszerű ütközések automatikus feloldása"
+
+#: kdiff3.cpp:574
+msgid "Split Diff At Selection"
+msgstr ""
+
+#: kdiff3.cpp:575
+#, fuzzy
+msgid "Join Selected Diffs"
+msgstr "A kiválasztott fájl összehasonlítása"
+
+#: kdiff3.cpp:577
+msgid "Show Window A"
+msgstr "Az A ablak megjelenítése"
+
+#: kdiff3.cpp:578
+msgid "Show Window B"
+msgstr "A B ablak megjelenítése"
+
+#: kdiff3.cpp:579
+msgid "Show Window C"
+msgstr "A C ablak megjelenítése"
+
+#: kdiff3.cpp:580 kdiff3.cpp:591
+msgid "Focus Next Window"
+msgstr "Fókusz a következő ablakra"
+
+#: kdiff3.cpp:582
+msgid "Normal Overview"
+msgstr ""
+
+#: kdiff3.cpp:583
+msgid "A vs. B Overview"
+msgstr ""
+
+#: kdiff3.cpp:584
+msgid "A vs. C Overview"
+msgstr ""
+
+#: kdiff3.cpp:585
+msgid "B vs. C Overview"
+msgstr ""
+
+#: kdiff3.cpp:586
+msgid "Word Wrap Diff Windows"
+msgstr ""
+
+#: kdiff3.cpp:587
+msgid "Add Manual Diff Alignment"
+msgstr ""
+
+#: kdiff3.cpp:588
+msgid "Clear All Manual Diff Alignments"
+msgstr ""
+
+#: kdiff3.cpp:593
+msgid "Focus Prev Window"
+msgstr "Fókusz az előző ablakra"
+
+#: kdiff3.cpp:594
+msgid "Toggle Split Orientation"
+msgstr "A megosztás irányának megváltoztatása"
+
+#: kdiff3.cpp:596
+msgid "Dir && Text Split Screen View"
+msgstr "Osztott nézet (könyvtár és szöveg)"
+
+#: kdiff3.cpp:598
+msgid "Toggle Between Dir && Text View"
+msgstr "Váltás a könyvtár- és szöveges nézet között"
+
+#: kdiff3.cpp:654 pdiff.cpp:1812
+msgid "The merge result hasn't been saved."
+msgstr "Az összeolvasztás eredménye még nincs elmentve."
+
+#: kdiff3.cpp:656
+msgid "Save && Quit"
+msgstr "Mentés és kilépés"
+
+#: kdiff3.cpp:657
+msgid "Quit Without Saving"
+msgstr "Kilépés mentés nélkül"
+
+#: kdiff3.cpp:665 pdiff.cpp:1823
+msgid "Saving the merge result failed."
+msgstr "Az összeolvasztás eredményét nem sikerült elmenteni."
+
+#: kdiff3.cpp:676 pdiff.cpp:1078
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort?"
+msgstr ""
+"Éppen folyamatban van egy könyvtárösszeolvasztás. Biztosan félbe szeretné "
+"szakítani a műveletet?"
+
+#: kdiff3.cpp:701
+msgid "Saving file..."
+msgstr "A fájl mentése..."
+
+#: kdiff3.cpp:718
+msgid "Saving file with a new filename..."
+msgstr "A fájl elmentése más néven..."
+
+#: kdiff3.cpp:781
+#, fuzzy
+msgid "Printing not implemented."
+msgstr "Az összeolvasztási művelet befejeződött."
+
+#: kdiff3.cpp:815
+#, fuzzy
+msgid "Printing..."
+msgstr "Kilépés..."
+
+#: kdiff3.cpp:956
+#, fuzzy
+#| msgid "Select Another Font"
+msgid "Selection"
+msgstr "Válasszon egy másik betűtípust"
+
+#: kdiff3.cpp:982
+#, fuzzy
+msgid "Printing completed."
+msgstr "Az összeolvasztási művelet befejeződött."
+
+#: kdiff3.cpp:986
+#, fuzzy
+msgid "Printing aborted."
+msgstr "Az összeolvasztási művelet befejeződött."
+
+#: kdiff3.cpp:993
+msgid "Exiting..."
+msgstr "Kilépés..."
+
+#: kdiff3.cpp:1006
+msgid "Toggling toolbar..."
+msgstr "Az eszköztár átkapcsolása..."
+
+#: kdiff3.cpp:1027
+msgid "Toggle the statusbar..."
+msgstr "Az állapotsor átkapcsolása..."
+
+#: smalldialogs.cpp:58
+msgid "A (Base):"
+msgstr "A (alap):"
+
+#: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99
+#: smalldialogs.cpp:142
+msgid "File..."
+msgstr "Fájl..."
+
+#: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101
+#: smalldialogs.cpp:144
+msgid "Dir..."
+msgstr "Könyvtár..."
+
+#: smalldialogs.cpp:93
+msgid "C (Optional):"
+msgstr "C (opcionális):"
+
+#: smalldialogs.cpp:116
+msgid "Swap/Copy Names ..."
+msgstr ""
+
+#: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123
+#, kde-format
+msgid "Swap %1<->%2"
+msgstr ""
+
+#: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126
+#, kde-format
+msgid "Copy %1->Output"
+msgstr ""
+
+#: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129
+#, kde-format
+msgid "Swap %1<->Output"
+msgstr ""
+
+#: smalldialogs.cpp:136
+msgid "Output (optional):"
+msgstr "Kimenet (opcionális):"
+
+#: smalldialogs.cpp:168
+msgid "Configure..."
+msgstr "Beállítás..."
+
+#: smalldialogs.cpp:174
+msgid "&OK"
+msgstr ""
+
+#: smalldialogs.cpp:362
+#, fuzzy
+msgid "Search text:"
+msgstr "A keresett szöveg:"
+
+#: smalldialogs.cpp:369
+msgid "Case sensitive"
+msgstr "Nagybetűérzékeny"
+
+#: smalldialogs.cpp:372
+msgid "Search A"
+msgstr "A keresése"
+
+#: smalldialogs.cpp:377
+msgid "Search B"
+msgstr "B keresése"
+
+#: smalldialogs.cpp:382
+msgid "Search C"
+msgstr "C keresése"
+
+#: smalldialogs.cpp:387
+msgid "Search output"
+msgstr "A keresés kimenete"
+
+#: smalldialogs.cpp:392
+msgid "&Search"
+msgstr "&Keresés"
+
+#: smalldialogs.cpp:409
+msgid "Regular Expression Tester"
+msgstr ""
+
+#: smalldialogs.cpp:414 optiondialog.cpp:936
+msgid "Auto merge regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:422
+msgid "Example auto merge line:"
+msgstr ""
+
+#: smalldialogs.cpp:424
+msgid "To test auto merge, copy a line as used in your files."
+msgstr ""
+
+#: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494
+msgid "Match result:"
+msgstr ""
+
+#: smalldialogs.cpp:441 optiondialog.cpp:962
+msgid "History start regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:449
+msgid "Example history start line (with leading comment):"
+msgstr ""
+
+#: smalldialogs.cpp:451
+msgid ""
+"Copy a history start line as used in your files,\n"
+"including the leading comment."
+msgstr ""
+
+#: smalldialogs.cpp:469 optiondialog.cpp:972
+msgid "History entry start regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:477
+msgid "History sort key order:"
+msgstr ""
+
+#: smalldialogs.cpp:485
+msgid "Example history entry start line (without leading comment):"
+msgstr ""
+
+#: smalldialogs.cpp:487
+msgid ""
+"Copy a history entry start line as used in your files,\n"
+"but omit the leading comment."
+msgstr ""
+
+#: smalldialogs.cpp:501
+msgid "Sort key result:"
+msgstr ""
+
+#: smalldialogs.cpp:508
+msgid "OK"
+msgstr ""
+
+#: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583
+msgid "Match success."
+msgstr ""
+
+#: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589
+#, fuzzy
+msgid "Match failed."
+msgstr "A mentés nem sikerült."
+
+#: smalldialogs.cpp:574
+msgid "Opening and closing parentheses do not match in regular expression."
+msgstr ""
+
+#: optiondialog.cpp:367
+msgid "Unicode, 8 bit"
+msgstr ""
+
+#: optiondialog.cpp:368
+msgid "Unicode"
+msgstr ""
+
+#: optiondialog.cpp:369
+msgid "Latin1"
+msgstr ""
+
+#: optiondialog.cpp:388
+#, fuzzy
+msgid "Change this if non-ASCII characters are not displayed correctly."
+msgstr ""
+"Akkor kell esetleg bejelölni, ha a nem ASCII karakterek helytelenül jelennek "
+"meg."
+
+#: optiondialog.cpp:465
+#, fuzzy
+#| msgid "Configure..."
+msgid "Configure"
+msgstr "Beállítás..."
+
+#: optiondialog.cpp:531
+msgid "Font"
+msgstr ""
+
+#: optiondialog.cpp:532
+msgid "Editor & Diff Output Font"
+msgstr "A szerkesztő és a diff-kimenet betűtípusa"
+
+#: optiondialog.cpp:556
+msgid "Italic font for deltas"
+msgstr "Dőlt betűk az eltéréseknél"
+
+#: optiondialog.cpp:559
+msgid ""
+"Selects the italic version of the font for differences.\n"
+"If the font doesn't support italic characters, then this does nothing."
+msgstr ""
+"Ennek hatására a program az eltérések megjelenítéséhez dőlt betűket fog "
+"használni.\n"
+"Ha a betűtípus nem tartalmaz dőlt betűket, akkor az opciónak nincs hatása."
+
+#: optiondialog.cpp:568
+msgid "Color"
+msgstr "Szín"
+
+#: optiondialog.cpp:569
+msgid "Colors Settings"
+msgstr ""
+
+#: optiondialog.cpp:588
+msgid "Editor and Diff Views:"
+msgstr ""
+
+#: optiondialog.cpp:596
+msgid "Foreground color:"
+msgstr "Előtérszín:"
+
+#: optiondialog.cpp:603
+msgid "Background color:"
+msgstr "Háttérszín:"
+
+#: optiondialog.cpp:612
+msgid "Diff background color:"
+msgstr "A diff szöveg háttérszíne:"
+
+#: optiondialog.cpp:620
+msgid "Color A:"
+msgstr "A szín:"
+
+#: optiondialog.cpp:628
+msgid "Color B:"
+msgstr "B szín:"
+
+#: optiondialog.cpp:636
+msgid "Color C:"
+msgstr "C szín:"
+
+#: optiondialog.cpp:643
+msgid "Conflict color:"
+msgstr "Ütközési szín:"
+
+#: optiondialog.cpp:651
+msgid "Current range background color:"
+msgstr "A jelenlegi tartomány háttérszíne:"
+
+#: optiondialog.cpp:659
+msgid "Current range diff background color:"
+msgstr "A jelenlegi tartomány diff-jének háttérszíne:"
+
+#: optiondialog.cpp:666
+msgid "Color for manually aligned difference ranges:"
+msgstr ""
+
+#: optiondialog.cpp:672
+#, fuzzy
+msgid "Directory Comparison View:"
+msgstr "A könyvtárak összehasonlítási állapota"
+
+#: optiondialog.cpp:678
+msgid "Newest file color:"
+msgstr ""
+
+#: optiondialog.cpp:682
+msgid ""
+"Changing this color will only be effective when starting the next directory "
+"comparison."
+msgstr ""
+
+#: optiondialog.cpp:687
+msgid "Oldest file color:"
+msgstr ""
+
+#: optiondialog.cpp:695
+msgid "Middle age file color:"
+msgstr ""
+
+#: optiondialog.cpp:703
+msgid "Color for missing files:"
+msgstr ""
+
+#: optiondialog.cpp:717
+msgid "Editor"
+msgstr "Szerkesztő"
+
+#: optiondialog.cpp:718
+#, fuzzy
+msgid "Editor Behavior"
+msgstr "A szerkesztő működési jellemzői"
+
+#: optiondialog.cpp:732
+msgid "Tab inserts spaces"
+msgstr "A Tab billentyű szóközöket szúrjon be"
+
+#: optiondialog.cpp:735
+#, fuzzy
+#| msgid ""
+#| "On: Pressing tab generates the appropriate number of spaces.\n"
+#| "Off: A Tab-character will be inserted."
+msgid ""
+"On: Pressing tab generates the appropriate number of spaces.\n"
+"Off: A tab character will be inserted."
+msgstr ""
+"Ha be van jelölve: a Tab lenyomásakor a megadott számú szóköz kerül a "
+"szövegbe.\n"
+"Ha nincs bejelölve: a Tab lenyomásakor Tab karakter kerül a szövegbe.."
+
+#: optiondialog.cpp:741
+msgid "Tab size:"
+msgstr "Tabulátorméret:"
+
+#: optiondialog.cpp:747
+msgid "Auto indentation"
+msgstr "A behúzás megőrzése"
+
+#: optiondialog.cpp:750
+msgid "On: The indentation of the previous line is used for a new line.\n"
+msgstr ""
+"Ha be van jelölve: új sor kezdésekor az előző sor behúzását használja a "
+"program.\n"
+
+#: optiondialog.cpp:754
+msgid "Auto copy selection"
+msgstr "A kijelölt adatok automatikus kimásolása a vágólapra"
+
+#: optiondialog.cpp:757
+msgid ""
+"On: Any selection is immediately written to the clipboard.\n"
+"Off: You must explicitely copy e.g. via Ctrl-C."
+msgstr ""
+"Ha be van jelölve: a kijelölt adatok másolata mindig automatikusan a "
+"vágólapra kerül.\n"
+"Ha nincs bejelölve: a másolás csak parancsra történik meg (pl. a Ctrl+C-vel)."
+
+#: optiondialog.cpp:768
+#, fuzzy
+#| msgid "&Window"
+msgid "Dos/Windows"
+msgstr "&Ablak"
+
+#: optiondialog.cpp:769
+#, fuzzy
+msgid "Autodetect"
+msgstr "A kijelölt adatok automatikus kimásolása a vágólapra"
+
+#: optiondialog.cpp:772
+msgid ""
+"Sets the line endings for when an edited file is saved.\n"
+"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A"
+msgstr ""
+
+#: optiondialog.cpp:784
+#, fuzzy
+msgid "Diff"
+msgstr "KDiff3"
+
+#: optiondialog.cpp:785
+#, fuzzy
+msgid "Diff Settings"
+msgstr "A diff és az összeolvasztás beállításai"
+
+#: optiondialog.cpp:809
+#, fuzzy
+msgid "Treat as white space."
+msgstr "A C/C++-megjegyzések üres helynek tekintése."
+
+#: optiondialog.cpp:811
+msgid "Ignore numbers"
+msgstr "A számok figyelmen kívül hagyása"
+
+#: optiondialog.cpp:814
+msgid ""
+"Ignore number characters during line matching phase. (Similar to Ignore "
+"white space.)\n"
+"Might help to compare files with numeric data."
+msgstr ""
+"A számjegyek figyelmen kívül hagyása sorillesztésnél. (Hasonló 'Az üres "
+"karakterek figyelmen kívül hagyása' opcióhoz.)\n"
+"Néha szükség lehet erre az opcióra számadatokat tartalmazó fájlok "
+"összehasonlításánál."
+
+#: optiondialog.cpp:819
+#, fuzzy
+msgid "Ignore C/C++ comments"
+msgstr "A C/C++-megjegyzések figyelmen kívül hagyása"
+
+#: optiondialog.cpp:821
+msgid "Treat C/C++ comments like white space."
+msgstr "A C/C++-megjegyzések üres helynek tekintése."
+
+#: optiondialog.cpp:825
+#, fuzzy
+msgid "Ignore case"
+msgstr "A számok figyelmen kívül hagyása"
+
+#: optiondialog.cpp:828
+msgid "Treat case differences like white space changes. ('a'<=>'A')"
+msgstr ""
+
+#: optiondialog.cpp:832
+msgid "Preprocessor command:"
+msgstr "Előfeldolgozási parancs:"
+
+#: optiondialog.cpp:836
+msgid "User defined pre-processing. (See the docs for details.)"
+msgstr ""
+"A felhasználó által megadott előfeldolgozás használata (a részletek a "
+"dokumentációban találhatók)."
+
+#: optiondialog.cpp:839
+msgid "Line-matching preprocessor command:"
+msgstr "Sorösszehasonlítási előparancs:"
+
+#: optiondialog.cpp:843
+msgid ""
+"This pre-processor is only used during line matching.\n"
+"(See the docs for details.)"
+msgstr ""
+"Ezt a parancsot sorillesztésnél használja a program.\n"
+"(A részletek a dokumentációban találhatók.)"
+
+#: optiondialog.cpp:846
+msgid "Try hard (slower)"
+msgstr "Alaposabb próbálkozás (lassabb)"
+
+#: optiondialog.cpp:849
+msgid ""
+"Enables the --minimal option for the external diff.\n"
+"The analysis of big files will be much slower."
+msgstr ""
+"Bekapcsolja a --minimal opciót a külső diff programnál.\n"
+"Hatására a sebesség jelentősen lecsökkenhet nagy fájlok esetén."
+
+#: optiondialog.cpp:854
+msgid "Align B and C for 3 input files"
+msgstr ""
+
+#: optiondialog.cpp:857
+msgid ""
+"Try to align B and C when comparing or merging three input files.\n"
+"Not recommended for merging because merge might get more complicated.\n"
+"(Default is off.)"
+msgstr ""
+
+#: optiondialog.cpp:870
+#, fuzzy
+msgid "Merge Settings"
+msgstr "A diff és az összeolvasztás beállításai"
+
+#: optiondialog.cpp:885
+msgid "Auto advance delay (ms):"
+msgstr "Automatikus léptetési késleltetés (ms):"
+
+#: optiondialog.cpp:890
+msgid ""
+"When in Auto-Advance mode the result of the current selection is shown \n"
+"for the specified time, before jumping to the next conflict. Range: 0-2000 ms"
+msgstr ""
+"Automatikus léptetés esetén a megadott ideig a kijelölt rész látszik,\n"
+"utána a program automatikusan a következő ütközésre lép. A megengedett "
+"értéktartomány: 0-2000 ms"
+
+#: optiondialog.cpp:895
+#, fuzzy
+#| msgid "Show Window A"
+msgid "Show info dialogs"
+msgstr "Az A ablak megjelenítése"
+
+#: optiondialog.cpp:897
+msgid "Show a dialog with information about the number of conflicts."
+msgstr ""
+
+#: optiondialog.cpp:900
+msgid "White space 2-file merge default:"
+msgstr "Üres karakterek 2 fájl összeolvasztásánál (alapértelmezés):"
+
+#: optiondialog.cpp:904 optiondialog.cpp:917
+#, fuzzy
+msgid "Manual Choice"
+msgstr "Kézi választás"
+
+#: optiondialog.cpp:908 optiondialog.cpp:922
+msgid ""
+"Allow the merge algorithm to automatically select an input for white-space-"
+"only changes."
+msgstr ""
+"Lehetővé teszi az összeolvasztási algoritmusnak, hogy automatikusan "
+"kiválassza a megfelelő bemenetet, ha az üres helyek megváltozását kell nézni."
+
+#: optiondialog.cpp:913
+msgid "White space 3-file merge default:"
+msgstr "Üres karakterek 2 fájl összeolvasztásánál (alapértelmezés):"
+
+#: optiondialog.cpp:927
+msgid "Automatic Merge Regular Expression"
+msgstr ""
+
+#: optiondialog.cpp:940
+msgid ""
+"Regular expression for lines where KDiff3 should automatically choose one "
+"source.\n"
+"When a line with a conflict matches the regular expression then\n"
+"- if available - C, otherwise B will be chosen."
+msgstr ""
+
+#: optiondialog.cpp:946
+msgid "Run regular expression auto merge on merge start"
+msgstr ""
+
+#: optiondialog.cpp:948
+msgid ""
+"Run the merge for auto merge regular expressions\n"
+"immediately when a merge starts.\n"
+msgstr ""
+
+#: optiondialog.cpp:953
+msgid "Version Control History Merging"
+msgstr ""
+
+#: optiondialog.cpp:966
+msgid ""
+"Regular expression for the start of the version control history entry.\n"
+"Usually this line contains the \"$Log$\" keyword.\n"
+"Default value: \".*\\$Log.*\\$.*\""
+msgstr ""
+
+#: optiondialog.cpp:984
+msgid ""
+"A version control history entry consists of several lines.\n"
+"Specify the regular expression to detect the first line (without the leading "
+"comment).\n"
+"Use parentheses to group the keys you want to use for sorting.\n"
+"If left empty, then KDiff3 assumes that empty lines separate history "
+"entries.\n"
+"See the documentation for details."
+msgstr ""
+
+#: optiondialog.cpp:992
+msgid "History merge sorting"
+msgstr ""
+
+#: optiondialog.cpp:994
+msgid "Sort version control history by a key."
+msgstr ""
+
+#: optiondialog.cpp:1004
+msgid "History entry start sort key order:"
+msgstr ""
+
+#: optiondialog.cpp:1008
+msgid ""
+"Each pair of parentheses used in the regular expression for the history "
+"start entry\n"
+"groups a key that can be used for sorting.\n"
+"Specify the list of keys (that are numbered in order of occurrence\n"
+"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n"
+"If left empty, then no sorting will be done.\n"
+"See the documentation for details."
+msgstr ""
+
+#: optiondialog.cpp:1019
+msgid "Merge version control history on merge start"
+msgstr ""
+
+#: optiondialog.cpp:1021
+msgid "Run version control history automerge on merge start."
+msgstr ""
+
+#: optiondialog.cpp:1025
+#, fuzzy
+msgid "Max number of history entries:"
+msgstr "Az alkönyvtárak száma:"
+
+#: optiondialog.cpp:1028
+msgid "Cut off after specified number. Use -1 for infinite number of entries."
+msgstr ""
+
+#: optiondialog.cpp:1032
+msgid "Test your regular expressions"
+msgstr ""
+
+#: optiondialog.cpp:1037
+msgid "Irrelevant merge command:"
+msgstr ""
+
+#: optiondialog.cpp:1041
+msgid ""
+"If specified this script is run after automerge\n"
+"when no other relevant changes were detected.\n"
+"Called with the parameters: filename1 filename2 filename3"
+msgstr ""
+
+#: optiondialog.cpp:1047
+msgid "Auto save and quit on merge without conflicts"
+msgstr ""
+
+#: optiondialog.cpp:1050
+msgid ""
+"If KDiff3 was started for a file-merge from the command line and all\n"
+"conflicts are solvable without user interaction then automatically save and "
+"quit.\n"
+"(Similar to command line option \"--auto\".)"
+msgstr ""
+
+#: optiondialog.cpp:1061 optiondialog.cpp:1062
+#, fuzzy
+#| msgid "&Directory"
+msgid "Directory"
+msgstr "Köny&vtár"
+
+#: optiondialog.cpp:1075
+msgid "Recursive directories"
+msgstr "Az alkönyvtárakban is"
+
+#: optiondialog.cpp:1077
+msgid "Whether to analyze subdirectories or not."
+msgstr ""
+"Itt lehet megadni, hogy az összehasonlítás az alkönyvtárak tartalmára is "
+"kiterjedjen-e."
+
+#: optiondialog.cpp:1079
+msgid "File pattern(s):"
+msgstr "Fájlminták:"
+
+#: optiondialog.cpp:1084
+msgid ""
+"Pattern(s) of files to be analyzed. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Az ellenőrzendő fájlok mintája. \n"
+"Használható illesztési karakterek: '*' és '?'\n"
+"Több minta is megadható pontosvesszővel elválasztva."
+
+#: optiondialog.cpp:1090
+msgid "File-anti-pattern(s):"
+msgstr "Kizáró fájlminták:"
+
+#: optiondialog.cpp:1095
+msgid ""
+"Pattern(s) of files to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"A műveletből kizárni kívánt fájlok mintája. \n"
+"Használható illesztési karakterek: '*' és '?'\n"
+"Több minta is megadható pontosvesszővel elválasztva."
+
+#: optiondialog.cpp:1101
+msgid "Dir-anti-pattern(s):"
+msgstr "Kizáró könyvtárminták:"
+
+#: optiondialog.cpp:1106
+msgid ""
+"Pattern(s) of directories to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"A műveletből kizárni kívánt könyvtárak mintája. \n"
+"Használható illesztési karakterek: '*' és '?'\n"
+"Több minta is megadható pontosvesszővel elválasztva."
+
+#: optiondialog.cpp:1112
+msgid "Use .cvsignore"
+msgstr "A .cvsignore használata"
+
+#: optiondialog.cpp:1115
+#, fuzzy
+#| msgid ""
+#| "Extends the antipattern to anything that would be ignored by CVS.\n"
+#| "Via local \".cvsignore\"-files this can be directory specific."
+msgid ""
+"Extends the antipattern to anything that would be ignored by CVS.\n"
+"Via local \".cvsignore\" files this can be directory specific."
+msgstr ""
+"A kizárási mintát kiterjeszti a CVS által figyelmen kívül hagyott fájlokra.\n"
+"A \".cvsignore\" fájlok segítségével ez minden könyvtárban külön megadható."
+
+#: optiondialog.cpp:1120
+msgid "Find hidden files and directories"
+msgstr "A keresések a rejtett fájlokra és könyvtárakra is terjedjenek ki"
+
+#: optiondialog.cpp:1123
+msgid "Finds files and directories with the hidden attribute."
+msgstr "A keresések terjedjenek ki a rejtett fájlokra és könyvtárakra is."
+
+#: optiondialog.cpp:1125
+msgid "Finds files and directories starting with '.'."
+msgstr ""
+"A keresések a ponttal kezdődő nevű fájlokra és könyvtárakra is terjedjenek "
+"ki."
+
+#: optiondialog.cpp:1129
+msgid "Follow file links"
+msgstr "A fájllinkek követése"
+
+#: optiondialog.cpp:1132
+msgid ""
+"On: Compare the file the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+"Be: összehasonlítás a link által mutatott fájllal.\n"
+"Ki: a linkek összehasonlítása."
+
+#: optiondialog.cpp:1137
+msgid "Follow directory links"
+msgstr "A linkek követése"
+
+#: optiondialog.cpp:1140
+msgid ""
+"On: Compare the directory the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+"Ha be van jelölve: a linkek által mutatott könyvtárak lesznek "
+"összehasonlítva.\n"
+"Ha nincs bejelölve: maguk a linkek lesznek összehasonlítva."
+
+#: optiondialog.cpp:1156
+msgid "Case sensitive filename comparison"
+msgstr ""
+
+#: optiondialog.cpp:1159
+msgid ""
+"The directory comparison will compare files or directories when their names "
+"match.\n"
+"Set this option if the case of the names must match. (Default for Windows is "
+"off, otherwise on.)"
+msgstr ""
+
+#: optiondialog.cpp:1163
+msgid "File Comparison Mode"
+msgstr ""
+
+#: optiondialog.cpp:1169
+#, fuzzy
+msgid "Binary comparison"
+msgstr "A könyvtárak összehasonlítási állapota"
+
+#: optiondialog.cpp:1170
+msgid "Binary comparison of each file. (Default)"
+msgstr ""
+
+#: optiondialog.cpp:1173
+msgid "Full analysis"
+msgstr ""
+
+#: optiondialog.cpp:1174
+msgid ""
+"Do a full analysis and show statistics information in extra columns.\n"
+"(Slower than a binary comparison, much slower for binary files.)"
+msgstr ""
+
+#: optiondialog.cpp:1178
+#, fuzzy
+msgid "Trust the size and modification date (unsafe)"
+msgstr "A módosítási dátum valósnak feltételezése (nem megbízható!)"
+
+#: optiondialog.cpp:1179
+#, fuzzy
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"Files with equal contents but different modification dates will appear as "
+"different.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"Két fájlt egyezőnek feltételez majd a program, ha a hosszuk és az utolsó "
+"módosítás dátuma megegyezik.\n"
+"Nagy könyvtárak vagy lassú hálózat esetén lehet erre szükség."
+
+#: optiondialog.cpp:1184
+#, fuzzy
+msgid ""
+"Trust the size and date, but use binary comparison if date does not match "
+"(unsafe)"
+msgstr "A módosítási dátum valósnak feltételezése (nem megbízható!)"
+
+#: optiondialog.cpp:1185
+#, fuzzy
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"If the dates are not equal but the sizes are, use binary comparison.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"Két fájlt egyezőnek feltételez majd a program, ha a hosszuk és az utolsó "
+"módosítás dátuma megegyezik.\n"
+"Nagy könyvtárak vagy lassú hálózat esetén lehet erre szükség."
+
+#: optiondialog.cpp:1190
+msgid "Trust the size (unsafe)"
+msgstr "A méret valósnak feltételezése (nem megbízható!)"
+
+#: optiondialog.cpp:1191
+msgid ""
+"Assume that files are equal if their file lengths are equal.\n"
+"Useful for big directories or slow networks when the date is modified during "
+"download."
+msgstr ""
+"Két fájlt egyezőnek feltételez majd a program, ha a hosszuk megegyezik.\n"
+"Nagy könyvtárak vagy lassú hálózat esetén lehet erre szükség, ha letöltéskor "
+"a módosítási dátum megváltozik."
+
+#: optiondialog.cpp:1199
+msgid "Synchronize directories"
+msgstr "A könyvtárak szinkronizálása"
+
+#: optiondialog.cpp:1202
+msgid ""
+"Offers to store files in both directories so that\n"
+"both directories are the same afterwards.\n"
+"Works only when comparing two directories without specifying a destination."
+msgstr ""
+"A program másolja át a fájlokat mindkét könyvtárba - ilyenkor\n"
+"összehasonlítás után a könyvtárak meg fognak egyezni.\n"
+"Csak akkor működik, ha az összehasonlításnál nincs megadva a cél."
+
+#: optiondialog.cpp:1208
+#, fuzzy
+msgid "White space differences considered equal"
+msgstr "Üres karakterek 2 fájl összeolvasztásánál (alapértelmezés):"
+
+#: optiondialog.cpp:1211
+msgid ""
+"If files differ only by white space consider them equal.\n"
+"This is only active when full analysis is chosen."
+msgstr ""
+
+#: optiondialog.cpp:1217
+msgid "Copy newer instead of merging (unsafe)"
+msgstr "Az újabb másolása összeolvasztás helyett (nem megbízható!)."
+
+#: optiondialog.cpp:1220
+msgid ""
+"Don't look inside, just take the newer file.\n"
+"(Use this only if you know what you are doing!)\n"
+"Only effective when comparing two directories."
+msgstr ""
+"Nem kell a fájlok tartalmával törődni, csak az újabb fájlt kell venni.\n"
+"Csak akkor használja, ha tudja, milyen következményekkel jár ez a művelet!\n"
+"Az opciónak csak két könyvtár összehasonlításakor van hatása."
+
+#: optiondialog.cpp:1225
+msgid "Backup files (.orig)"
+msgstr "Biztonsági mentések (.orig)"
+
+#: optiondialog.cpp:1228
+#, fuzzy
+#| msgid ""
+#| "When a file would be saved over an old file, then the old file\n"
+#| "will be renamed with a '.orig'-extension instead of being deleted."
+msgid ""
+"If a file would be saved over an old file, then the old file\n"
+"will be renamed with a '.orig' extension instead of being deleted."
+msgstr ""
+"Mielőtt a program egy régebbi fájlt felülírna az újabbal, a régi fájl\n"
+"legyen átnevezve '.orig' kiterjesztéssel (törlés helyett)."
+
+#: optiondialog.cpp:1301 optiondialog.cpp:1302
+msgid "Regional Settings"
+msgstr ""
+
+#: optiondialog.cpp:1402
+msgid "Language (restart required)"
+msgstr ""
+
+#: optiondialog.cpp:1445
+msgid ""
+"Choose the language of the GUI strings or \"Auto\".\n"
+"For a change of language to take place, quit and restart KDiff3."
+msgstr ""
+
+#: optiondialog.cpp:1463
+msgid "Use the same encoding for everything:"
+msgstr ""
+
+#: optiondialog.cpp:1466
+msgid ""
+"Enable this allows to change all encodings by changing the first only.\n"
+"Disable this if different individual settings are needed."
+msgstr ""
+
+#: optiondialog.cpp:1471
+#, fuzzy
+msgid "Note: Local Encoding is "
+msgstr "A helyi kódolás használata"
+
+#: optiondialog.cpp:1475
+msgid "File Encoding for A:"
+msgstr ""
+
+#: optiondialog.cpp:1481
+msgid ""
+"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n"
+"If the file is not Unicode then the selected encoding will be used as "
+"fallback.\n"
+"(Unicode detection depends on the first bytes of a file.)"
+msgstr ""
+
+#: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503
+msgid "Auto Detect Unicode"
+msgstr ""
+
+#: optiondialog.cpp:1490
+msgid "File Encoding for B:"
+msgstr ""
+
+#: optiondialog.cpp:1499
+msgid "File Encoding for C:"
+msgstr ""
+
+#: optiondialog.cpp:1508
+msgid "File Encoding for Merge Output and Saving:"
+msgstr ""
+
+#: optiondialog.cpp:1512
+#, fuzzy
+msgid "Auto Select"
+msgstr "A kijelölt adatok automatikus kimásolása a vágólapra"
+
+#: optiondialog.cpp:1515
+msgid ""
+"If enabled then the encoding from the input files is used.\n"
+"In ambiguous cases a dialog will ask the user to choose the encoding for "
+"saving."
+msgstr ""
+
+#: optiondialog.cpp:1519
+msgid "File Encoding for Preprocessor Files:"
+msgstr ""
+
+#: optiondialog.cpp:1530
+msgid "Right To Left Language"
+msgstr ""
+
+#: optiondialog.cpp:1533
+msgid ""
+"Some languages are read from right to left.\n"
+"This setting will change the viewer and editor accordingly."
+msgstr ""
+
+#: optiondialog.cpp:1548
+#, fuzzy
+msgid "Integration"
+msgstr "Művelet"
+
+#: optiondialog.cpp:1549
+msgid "Integration Settings"
+msgstr ""
+
+#: optiondialog.cpp:1563
+msgid "Command line options to ignore:"
+msgstr ""
+
+#: optiondialog.cpp:1568
+msgid ""
+"List of command line options that should be ignored when KDiff3 is used by "
+"other tools.\n"
+"Several values can be specified if separated via ';'\n"
+"This will suppress the \"Unknown option\" error."
+msgstr ""
+
+#: optiondialog.cpp:1575
+msgid "Quit also via Escape key"
+msgstr ""
+
+#: optiondialog.cpp:1578
+msgid ""
+"Fast method to exit.\n"
+"For those who are used to using the Escape key."
+msgstr ""
+
+#: optiondialog.cpp:1583
+msgid "Integrate with ClearCase"
+msgstr ""
+
+#: optiondialog.cpp:1586
+msgid ""
+"Integrate with Rational ClearCase from IBM.\n"
+"Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n"
+"(Only enabled when ClearCase \"bin\" directory is in the path.)"
+msgstr ""
+
+#: optiondialog.cpp:1592
+msgid "Remove ClearCase Integration"
+msgstr ""
+
+#: optiondialog.cpp:1595
+msgid ""
+"Restore the old \"map\" file from before doing the ClearCase integration."
+msgstr ""
+
+#: optiondialog.cpp:1680
+msgid "Incompatible Font"
+msgstr "Nem kompatibilis betűtípus"
+
+#: optiondialog.cpp:1681
+msgid "Continue at Own Risk"
+msgstr "Folytatás (kockázatos)"
+
+#: optiondialog.cpp:1682
+msgid "Select Another Font"
+msgstr "Válasszon egy másik betűtípust"
+
+#: optiondialog.cpp:1717
+msgid "This resets all options. Not only those of the current topic."
+msgstr ""
+"Ezzel alapállapotba hozható az összes beállítás (nem csak az aktuális témáé)."
+
+#: pdiff.cpp:260
+#, fuzzy
+msgid "PreprocessorCmd: "
+msgstr "Előfeldolgozási parancs:"
+
+#: pdiff.cpp:265
+msgid "The following option(s) you selected might change data:\n"
+msgstr ""
+
+#: pdiff.cpp:266
+msgid ""
+"\n"
+"Most likely this is not wanted during a merge.\n"
+"Do you want to disable these settings or continue with these settings active?"
+msgstr ""
+
+#: pdiff.cpp:268
+msgid "Option Unsafe for Merging"
+msgstr ""
+
+#: pdiff.cpp:269
+msgid "Use These Options During Merge"
+msgstr ""
+
+#: pdiff.cpp:270
+msgid "Disable Unsafe Options"
+msgstr ""
+
+#: pdiff.cpp:300
+msgid "Loading A"
+msgstr "A betöltése"
+
+#: pdiff.cpp:304
+msgid "Loading B"
+msgstr "B betöltése"
+
+#: pdiff.cpp:321 pdiff.cpp:347
+msgid "Diff: A <-> B"
+msgstr "Diff: A <-> B"
+
+#: pdiff.cpp:327 pdiff.cpp:372
+msgid "Linediff: A <-> B"
+msgstr "Sordiff: A <-> B"
+
+#: pdiff.cpp:338
+msgid "Loading C"
+msgstr "C betöltése"
+
+#: pdiff.cpp:350
+msgid "Diff: B <-> C"
+msgstr "Diff: B <-> C"
+
+#: pdiff.cpp:353
+msgid "Diff: A <-> C"
+msgstr "Diff: A <-> C"
+
+#: pdiff.cpp:375
+msgid "Linediff: B <-> C"
+msgstr "Linediff: B <-> C"
+
+#: pdiff.cpp:378
+msgid "Linediff: A <-> C"
+msgstr "Linediff: A <-> C"
+
+#: pdiff.cpp:534
+#, fuzzy
+msgid "All input files contain the same text, but are not binary equal."
+msgstr "Az összes bemeneti fájl megegyezik (szöveges módban)."
+
+#: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541
+#, fuzzy, kde-format
+msgid "Files %1 and %2 have equal text, but are not binary equal. \n"
+msgstr "A és B fájl binárisan megegyezik.\n"
+
+#: pdiff.cpp:551
+msgid ""
+"Some inputfiles don't seem to be pure textfiles.\n"
+"Note that the KDiff3-merge was not meant for binary data.\n"
+"Continue at your own risk."
+msgstr ""
+"Néhány bemeneti fáj bináris fájlnak tűnik.\n"
+"A KDiff3-féle összeolvasztás szöveges fájlok kezelésére való.\n"
+"Csak akkor lépjen tovább, ha valóban ezt szeretne."
+
+#: pdiff.cpp:566
+#, kde-format
+msgid ""
+"Some input characters could not be converted to valid unicode.\n"
+"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n"
+"Don't save the result if unsure. Continue at your own risk.\n"
+"Affected input files are in %1."
+msgstr ""
+
+#: pdiff.cpp:1080
+msgid "Abort"
+msgstr "Félbeszakítás"
+
+#: pdiff.cpp:1087 pdiff.cpp:1175
+msgid "Opening files..."
+msgstr "Fájlok megnyitása..."
+
+#: pdiff.cpp:1152 pdiff.cpp:1223
+msgid "File open error"
+msgstr "Fájlmegnyitási hiba"
+
+#: pdiff.cpp:1255
+msgid "Cutting selection..."
+msgstr "A kijelölt adatok kivágása..."
+
+#: pdiff.cpp:1276
+msgid "Copying selection to clipboard..."
+msgstr "A kijelölt adatok másolása a vágólapra..."
+
+#: pdiff.cpp:1292
+msgid "Inserting clipboard contents..."
+msgstr "A vágólap tartalmának beillesztése..."
+
+#: pdiff.cpp:1814
+msgid "Save && Continue"
+msgstr "Mentés és folytatás"
+
+#: pdiff.cpp:1815
+msgid "Continue Without Saving"
+msgstr "Folytatás mentés nélkül"
+
+#: pdiff.cpp:2018
+msgid "Search complete."
+msgstr "A keresés befejeződött."
+
+#: pdiff.cpp:2018
+msgid "Search Complete"
+msgstr "A keresés befejeződött"
+
+#: pdiff.cpp:2252
+msgid "Nothing is selected in either diff input window."
+msgstr ""
+
+#: pdiff.cpp:2252
+#, fuzzy
+msgid "Error while adding manual diff range"
+msgstr "Hiba történt egy könyvtár létrehozása közben."
+
+#: kdiff3_shell.cpp:76
+#, fuzzy
+#| msgid ""
+#| "Could not find our part!\n"
+#| "This usually happens due to an installation problem. Please read the "
+#| "README-file in the source package for details."
+msgid ""
+"Could not initialize the KDiff3 part.\n"
+"This usually happens due to an installation problem. Please read the README-"
+"file in the source package for details."
+msgstr ""
+"A keresett komponens nem található.\n"
+"Ez a hiba valószínűleg valamilyen telepítési probléma következménye. További "
+"információ a forráscsomagban található README fájlban található."
+
+#: rc.cpp:1
+msgctxt "NAME OF TRANSLATORS"
+msgid "Your names"
+msgstr ""
+
+#: rc.cpp:2
+msgctxt "EMAIL OF TRANSLATORS"
+msgid "Your emails"
+msgstr ""
+
+#. i18n: file: kdiff3_part.rc:4
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:5
+msgid "&KDiff3"
+msgstr "&KDiff3"
+
+#. i18n: file: kdiff3_part.rc:13
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:8
+msgid "Configure KDiff3"
+msgstr "A KDiff3 beállításai"
+
+#. i18n: file: kdiff3_part.rc:16
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:11
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#. i18n: file: kdiff3_shell.rc:106
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:38
+msgid "Main Toolbar"
+msgstr ""
+
+#~ msgid "Directory Merge"
+#~ msgstr "Könyvtárösszeolvasztás"
+
+#~ msgid "C&ontinue"
+#~ msgstr "F&olytatás"
+
+#~ msgid ""
+#~ "_: NAME OF TRANSLATORS\n"
+#~ "Your names"
+#~ msgstr "Szántó Tamás"
+
+#~ msgid ""
+#~ "_: EMAIL OF TRANSLATORS\n"
+#~ "Your emails"
+#~ msgstr "tszanto@mol.hu"
+
+#~ msgid "Enables/disables the toolbar"
+#~ msgstr "Az eszköztár ki-be kapcsolása"
+
+#~ msgid "Files A and B are binary equal.\n"
+#~ msgstr "A és B fájl binárisan megegyezik.\n"
+
+#~ msgid "Files A and C are binary equal.\n"
+#~ msgstr "A és C fájl binárisan megegyezik.\n"
+
+#~ msgid "Files A and C have equal text. \n"
+#~ msgstr "A és C szövege megegyezik. \n"
+
+#~ msgid "Files B and C are binary equal.\n"
+#~ msgstr "B és C binárisan megegyezik.\n"
+
+#~ msgid "Files B and C have equal text. \n"
+#~ msgstr "B és C szövege megegyezik.\n"
+
+#~ msgid "Preserve carriage return"
+#~ msgstr "A CR (kocsivissza) karakterek megőrzése"
+
+#~ msgid ""
+#~ "Show carriage return characters '\\r' if they exist.\n"
+#~ "Helps to compare files that were modified under different operating "
+#~ "systems."
+#~ msgstr ""
+#~ "A kocsivissza ('\\r') karakterek megjelenítése.\n"
+#~ "Segít a különféle operációs rendszerekben megváltoztatott szövegek "
+#~ "eltéréseinek kezelésénél."
+
+#, fuzzy
+#~ msgid "Diff and Merge"
+#~ msgstr "Diff és összeolvasztás"
+
+#, fuzzy
+#~ msgid "Save Directory Merge State ..."
+#~ msgstr "Könyvtárösszeolvasztás"
+
+#, fuzzy
+#~ msgid "Load Directory Merge State ..."
+#~ msgstr "Könyvtárösszeolvasztás"
+
+#, fuzzy
+#~ msgid "Synchronize Directories"
+#~ msgstr "A könyvtárak szinkronizálása"
+
+#, fuzzy
+#~ msgid "Copy Newer Files Instead of Merging"
+#~ msgstr "Az újabb másolása összeolvasztás helyett (nem megbízható!)."
+
+#~ msgid "List only deltas"
+#~ msgstr "Csak az eltérések jelenjenek meg"
+
+#~ msgid "Files and directories without change will not appear in the list."
+#~ msgstr "A listában nem jelennek meg a nem módosult fájlok és könyvtárak."
+
+#, fuzzy
+#~ msgid "no selection"
+#~ msgstr "A kijelölt adatok automatikus kimásolása a vágólapra"
+
+#, fuzzy
+#~ msgid "Manually match lines"
+#~ msgstr "Kézi választás"
+
+#, fuzzy
+#~ msgid "Has no effect. For compatibility with certain tools."
+#~ msgstr "Néhány eszközzel való kompatibilitásért."
+
+#~ msgid "For compatibility with certain tools."
+#~ msgstr "Néhány eszközzel való kompatibilitásért."
+
+#~ msgid "Colors in Editor & Diff Output"
+#~ msgstr "A szerkesztő és a diff-kimenet színei"
+
+#~ msgid "Text Diff and Merge Tool"
+#~ msgstr "Szöveges eszköz diff készítéséhez és összeolvasztáshoz"
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "File not saved."
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "A fájl nem lett elmentve."
+
+#~ msgid "Out of memory while preparing to save."
+#~ msgstr "A mentés előkészítése közben elfogyott a memória."
+
+#~ msgid "Delete (If Exists)"
+#~ msgstr "Törlés (ha létezik)"
+
+#~ msgid "Delete A and B"
+#~ msgstr "A és B törlése"
+
+#~ msgid "Merge to A and B"
+#~ msgstr "Beolvasztás A és B-be"
+
+#, fuzzy
+#~ msgid "Error writing temporary file: %1"
+#~ msgstr "Fájl írása: %1"
+
+#~ msgid "Convert to upper case"
+#~ msgstr "Konvertálás nagybetűkre"
+
+#~ msgid ""
+#~ "Turn all lower case characters to upper case on reading. (e.g.: 'a'->'A')"
+#~ msgstr "A kisbetűk nagybetűkké alakítása olvasáskor (pl. 'a' -> 'A')"
+
+#, fuzzy
+#~ msgid "Convert to upper case\n"
+#~ msgstr "Konvertálás nagybetűkre"
+
+#~ msgid ""
+#~ "Running the external diff failed.\n"
+#~ "Check if the diff works, if the program can write in the temp folder or "
+#~ "if the disk is full.\n"
+#~ "The external diff option will be disabled now and the internal diff will "
+#~ "be used."
+#~ msgstr ""
+#~ "Nem sikerült futtatni a külső diff programot.\n"
+#~ "Ellenőrizze, hogy a program használható-e, tud-e írni az ideiglenes "
+#~ "könyvtárba és van-e elég szabad hely a lemezen.\n"
+#~ "A külső diff program le lesz tiltva, helyette a beépített diff program "
+#~ "lesz felhasználva."
diff --git a/po/hu/kdiff3plugin.po b/po/hu/kdiff3plugin.po
new file mode 100644 (file)
index 0000000..0f377cf
--- /dev/null
@@ -0,0 +1,100 @@
+# Copyright (C) YEAR This_file_is_part_of_KDE
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Laszlo Papp <djszapi@archlinux.us>, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2010-02-04 02:00+0100\n"
+"Last-Translator: Laszlo Papp <djszapi@archlinux.us>\n"
+"Language-Team: Hungarian <kde-i18n-doc@kde.org>\n"
+"Language: hu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.0\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: kdiff3plugin.cpp:107
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#: kdiff3plugin.cpp:114
+#, kde-format
+msgid "Compare with %1"
+msgstr "Összehasonlítás %1-vel"
+
+#: kdiff3plugin.cpp:120
+#, kde-format
+msgid "Merge with %1"
+msgstr "Egyesítés %1-vel"
+
+#: kdiff3plugin.cpp:126
+#, kde-format
+msgid "Save '%1' for later"
+msgstr "'%1' mentése későbbre"
+
+#: kdiff3plugin.cpp:132
+msgid "3-way merge with base"
+msgstr "3 utas egyesítés az alappal"
+
+#: kdiff3plugin.cpp:139
+msgid "Compare with ..."
+msgstr "Összehasonlítás ezzel ..."
+
+#: kdiff3plugin.cpp:149
+msgid "Clear list"
+msgstr "Lista kiürítése"
+
+#: kdiff3plugin.cpp:157
+msgid "Compare"
+msgstr "Összehasonlítás"
+
+#: kdiff3plugin.cpp:163
+msgid "3 way comparison"
+msgstr "3 utas összehasonlítás"
+
+#: kdiff3plugin.cpp:167
+msgid "About KDiff3 menu plugin ..."
+msgstr "KDiff3 menü bővítmény névjegye ..."
+
+#: kdiff3plugin.cpp:269
+msgid ""
+"KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+"KDiff3 Menü Bővítmény: Szerzői jog (C) 2008 Joachim Eibl\n"
+"KDiff3 honlap: http://kdiff3.sourceforge.net\n"
+"\n"
+
+#: kdiff3plugin.cpp:271
+msgid ""
+"Using the context menu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else, \"Save\" the first file for later, and "
+"it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With"
+"\" on the second file.\n"
+"For a 3-way merge first, \"Save\" the base file, then the branch to merge, "
+"and then \"3-way merge with base\" on the other branch which will be used as "
+"the destination.\n"
+"The same also applies to directory comparison and merge."
+msgstr ""
+"Az összefüggés menü kiegészítésének használata:\n"
+"Két kiválasztott fájl egyszerű összehasonlításáért válassza az "
+"\"Összehasonlítás\"-t.\n"
+"Ha a másik fájl valahol máshol található, \"Mentse el\" az első fájlt "
+"későbbre, és ez fog feltűnni az \"Összehasonlítás ezzel...\" almenüben. "
+"Aztán használja az \"Összehasonlítás a második fájllal.\n"
+"Egy 3 utas egyesítésért először, \"Mentse el\" az alap fájlt, aztán az ágat "
+"egyesítésre, és aztán \"3 utas egyesítés az alappal\" a másik elágazáson, "
+"amelyik célállomásként lesz használva.\n"
+"Ugyanazt alkalmazzák a könyvtárra is összehasonlítás és egyesítés céljából."
+
+#: kdiff3plugin.cpp:279
+#, fuzzy
+#| msgid "About KDiff3 menu plugin ..."
+msgid "About KDiff3 Menu Plugin"
+msgstr "KDiff3 menü bővítmény névjegye ..."
diff --git a/po/is/CMakeLists.txt b/po/is/CMakeLists.txt
new file mode 100644 (file)
index 0000000..8fcf713
--- /dev/null
@@ -0,0 +1,2 @@
+file(GLOB _po_files *.po)
+GETTEXT_PROCESS_PO_FILES(is ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
diff --git a/po/is/kdiff3.po b/po/is/kdiff3.po
new file mode 100644 (file)
index 0000000..4e613df
--- /dev/null
@@ -0,0 +1,3019 @@
+# translation of kdiff3.po to icelandic
+# Copyright (C) YEAR This_file_is_part_of_KDE
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Sveinn í Felli <sveinki@nett.is>, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2009-06-12 13:35+0000\n"
+"Last-Translator: Sveinn í Felli <sveinki@nett.is>\n"
+"Language-Team: icelandic <kde-isl@molar.is>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: Plural-Forms: nplurals=2; plural=n != 1;\n"
+"\n"
+"\n"
+
+#: kreplacements/kreplacements.h:105
+#, fuzzy
+msgid "Continue"
+msgstr "Áfram"
+
+#: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158
+#: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512
+#, fuzzy
+msgid "Cancel"
+msgstr "Hætta við"
+
+#: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631
+#, fuzzy
+msgid "Quit"
+msgstr "Hætta"
+
+#: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339
+#, fuzzy
+msgid "Ok"
+msgstr "Í lagi"
+
+#: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715
+#, fuzzy
+msgid "Help"
+msgstr "Hjálp"
+
+#: kreplacements/kreplacements.cpp:185
+#, fuzzy
+msgid "Defaults"
+msgstr "Sjálfgefið"
+
+#. i18n: file: kdiff3_shell.rc:4
+#. i18n: ectx: Menu (file)
+#: kreplacements/kreplacements.cpp:296 rc.cpp:14
+#, fuzzy
+msgid "&File"
+msgstr "&Skrá"
+
+#: kreplacements/kreplacements.cpp:297
+#, fuzzy
+msgid "&Edit"
+msgstr "Br&eyta"
+
+#. i18n: file: kdiff3_shell.rc:7
+#. i18n: ectx: Menu (directory)
+#: kreplacements/kreplacements.cpp:298 rc.cpp:17
+msgid "&Directory"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:50
+#. i18n: ectx: Menu (movement)
+#: kreplacements/kreplacements.cpp:301 rc.cpp:26
+msgid "&Movement"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:61
+#. i18n: ectx: Menu (diff)
+#: kreplacements/kreplacements.cpp:302 rc.cpp:29
+msgid "D&iffview"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:73
+#. i18n: ectx: Menu (merge)
+#: kreplacements/kreplacements.cpp:303 rc.cpp:32
+msgid "&Merge"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:95
+#. i18n: ectx: Menu (window)
+#: kreplacements/kreplacements.cpp:304 rc.cpp:35
+#, fuzzy
+msgid "&Window"
+msgstr "&Gluggi"
+
+#: kreplacements/kreplacements.cpp:305
+#, fuzzy
+msgid "&Settings"
+msgstr "&Stillingar"
+
+#: kreplacements/kreplacements.cpp:306
+#, fuzzy
+msgid "&Help"
+msgstr "&Hjálp"
+
+#: kreplacements/kreplacements.cpp:353
+#, fuzzy
+msgid "&About"
+msgstr "&Um"
+
+#: kreplacements/kreplacements.cpp:369
+#, fuzzy
+msgid "A&uthor"
+msgstr "Höf&undur"
+
+#: kreplacements/kreplacements.cpp:383
+#, fuzzy
+msgid "&Thanks To"
+msgstr "Þakkir &fá"
+
+#. i18n: file: kdiff3_shell.rc:30
+#. i18n: ectx: Menu (dir_current_merge_menu)
+#: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497
+#: rc.cpp:20
+msgid "Current Item Merge Operation"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:38
+#. i18n: ectx: Menu (dir_current_sync_menu)
+#: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498
+#: rc.cpp:23
+msgid "Current Item Sync Operation"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:597
+#, fuzzy
+msgid "Open"
+msgstr "Opna"
+
+#: kreplacements/kreplacements.cpp:606
+#, fuzzy
+msgid "Save"
+msgstr "Vista"
+
+#: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720
+#, fuzzy
+msgid "Save As..."
+msgstr "Vista sem..."
+
+#: kreplacements/kreplacements.cpp:623
+#, fuzzy
+msgid "Print..."
+msgstr "Prenta..."
+
+#: kreplacements/kreplacements.cpp:639
+#, fuzzy
+msgid "Cut"
+msgstr "Klippa"
+
+#: kreplacements/kreplacements.cpp:647
+#, fuzzy
+msgid "Copy"
+msgstr "Afrita"
+
+#: kreplacements/kreplacements.cpp:655
+#, fuzzy
+msgid "Paste"
+msgstr "Líma"
+
+#: kreplacements/kreplacements.cpp:663
+#, fuzzy
+msgid "Select All"
+msgstr "Velja allt"
+
+#: kreplacements/kreplacements.cpp:671
+#, fuzzy
+msgid "Show Toolbar"
+msgstr "Sýna tækjaslá"
+
+#: kreplacements/kreplacements.cpp:679
+msgid "Show &Status Bar"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:687
+#, fuzzy, kde-format
+msgid "&Configure %1..."
+msgstr "&Stilla %1..."
+
+#: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707
+#, fuzzy
+msgid "About"
+msgstr "Um"
+
+#: kreplacements/kreplacements.cpp:722
+#, fuzzy
+msgid "Find"
+msgstr "Finna"
+
+#: kreplacements/kreplacements.cpp:730
+#, fuzzy
+msgid "Find Next"
+msgstr "Finna næsta"
+
+#: kreplacements/kreplacements.cpp:750
+#, fuzzy
+msgid "Select Font"
+msgstr "Velja letur"
+
+#: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676
+msgid ""
+"You selected a variable width font.\n"
+"\n"
+"Because this program doesn't handle variable width fonts\n"
+"correctly, you might experience problems while editing.\n"
+"\n"
+"Do you want to continue or do you want to select another font."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:792
+msgid "Incompatible font."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Continue at my own risk"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Select another font"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1134
+msgid "For more documentation, see the help-menu or the subdirectory doc."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "KDiff3-Usage"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1137
+#, fuzzy
+msgid "Ignore"
+msgstr "Hunsa"
+
+#: kreplacements/kreplacements.cpp:1137
+#, fuzzy
+msgid "Exit"
+msgstr "Hætta"
+
+#: diff.cpp:251
+msgid "Writing clipboard data to temp file failed."
+msgstr ""
+
+#: diff.cpp:255
+msgid "From Clipboard"
+msgstr ""
+
+#: diff.cpp:471
+msgid "Expecting space after closing quotation mark."
+msgstr ""
+
+#: diff.cpp:474
+msgid "Not matching quotation marks."
+msgstr ""
+
+#: diff.cpp:496
+msgid "Unexpected quotation mark within argument."
+msgstr ""
+
+#: diff.cpp:503
+msgid "No program specified."
+msgstr ""
+
+#: diff.cpp:605
+#, kde-format
+msgid ""
+"Preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The preprocessing command will be disabled now."
+msgstr ""
+
+#: diff.cpp:653
+#, kde-format
+msgid ""
+"The line-matching-preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The line-matching-preprocessing command will be disabled now."
+msgstr ""
+
+#: diff.cpp:1776 diff.cpp:1790
+msgid ""
+"Data loss error:\n"
+"If it is reproducible please contact the author.\n"
+msgstr ""
+
+#: diff.cpp:1778 diff.cpp:1792
+msgid "Severe Internal Error"
+msgstr ""
+
+#: directorymergewindow.cpp:136
+msgid "Mix of links and normal files."
+msgstr ""
+
+#: directorymergewindow.cpp:143
+msgid "Link: "
+msgstr ""
+
+#: directorymergewindow.cpp:151
+msgid "Size. "
+msgstr ""
+
+#: directorymergewindow.cpp:164 directorymergewindow.cpp:174
+msgid "Date & Size: "
+msgstr ""
+
+#: directorymergewindow.cpp:184 directorymergewindow.cpp:190
+#, kde-format
+msgid "Creating temp copy of %1 failed."
+msgstr ""
+
+#: directorymergewindow.cpp:201 directorymergewindow.cpp:209
+#, kde-format
+msgid "Opening %1 failed."
+msgstr ""
+
+#: directorymergewindow.cpp:213
+msgid "Comparing file..."
+msgstr ""
+
+#: directorymergewindow.cpp:223 directorymergewindow.cpp:229
+#, kde-format
+msgid "Error reading from %1"
+msgstr ""
+
+#: directorymergewindow.cpp:358
+#, fuzzy
+msgid "Name"
+msgstr "Nafn"
+
+#: directorymergewindow.cpp:358
+#, fuzzy
+msgid "Operation"
+msgstr "Aðgerð"
+
+#: directorymergewindow.cpp:358
+#, fuzzy
+msgid "Status"
+msgstr "Staða"
+
+#: directorymergewindow.cpp:359
+msgid "Unsolved"
+msgstr ""
+
+#: directorymergewindow.cpp:359
+msgid "Solved"
+msgstr ""
+
+#: directorymergewindow.cpp:359
+msgid "Nonwhite"
+msgstr ""
+
+#: directorymergewindow.cpp:359
+#, fuzzy
+msgid "White"
+msgstr "Hvítur"
+
+#: directorymergewindow.cpp:388
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort "
+"the merge and rescan the directory?"
+msgstr ""
+
+#: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655
+#: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823
+#, fuzzy
+msgid "Warning"
+msgstr "Aðvörun"
+
+#: directorymergewindow.cpp:390 directorymergewindow.cpp:2965
+#, fuzzy
+msgid "Rescan"
+msgstr "Skanna aftur"
+
+#: directorymergewindow.cpp:391 pdiff.cpp:1081
+msgid "Continue Merging"
+msgstr ""
+
+#: directorymergewindow.cpp:548
+msgid "Opening of directories failed:"
+msgstr ""
+
+#: directorymergewindow.cpp:551
+#, kde-format
+msgid "Dir A \"%1\" does not exist or is not a directory.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:554
+#, kde-format
+msgid "Dir B \"%1\" does not exist or is not a directory.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:557
+#, kde-format
+msgid "Dir C \"%1\" does not exist or is not a directory.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:559
+msgid "Directory Open Error"
+msgstr ""
+
+#: directorymergewindow.cpp:567
+msgid ""
+"The destination directory must not be the same as A or B when three "
+"directories are merged.\n"
+"Check again before continuing."
+msgstr ""
+
+#: directorymergewindow.cpp:569
+msgid "Parameter Warning"
+msgstr ""
+
+#: directorymergewindow.cpp:574
+msgid "Scanning directories..."
+msgstr ""
+
+#: directorymergewindow.cpp:607
+msgid "Reading Directory A"
+msgstr ""
+
+#: directorymergewindow.cpp:629
+msgid "Reading Directory B"
+msgstr ""
+
+#: directorymergewindow.cpp:651
+msgid "Reading Directory C"
+msgstr ""
+
+#: directorymergewindow.cpp:677
+msgid "Some subdirectories were not readable in"
+msgstr ""
+
+#: directorymergewindow.cpp:682
+msgid "Check the permissions of the subdirectories."
+msgstr ""
+
+#: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737
+#: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233
+#: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328
+#, fuzzy
+msgid "Ready."
+msgstr "Tilbúin."
+
+#: directorymergewindow.cpp:735
+msgid "Directory Comparison Status"
+msgstr ""
+
+#: directorymergewindow.cpp:736
+msgid "Number of subdirectories:"
+msgstr ""
+
+#: directorymergewindow.cpp:737
+msgid "Number of equal files:"
+msgstr ""
+
+#: directorymergewindow.cpp:738
+msgid "Number of different files:"
+msgstr ""
+
+#: directorymergewindow.cpp:741
+msgid "Number of manual merges:"
+msgstr ""
+
+#: directorymergewindow.cpp:912
+msgid "This affects all merge operations."
+msgstr ""
+
+#: directorymergewindow.cpp:913
+msgid "Changing All Merge Operations"
+msgstr ""
+
+#: directorymergewindow.cpp:1312
+msgid "Processing "
+msgstr ""
+
+#: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742
+msgid "To do."
+msgstr ""
+
+#: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996
+msgid "Copy A to B"
+msgstr ""
+
+#: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997
+msgid "Copy B to A"
+msgstr ""
+
+#: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998
+msgid "Delete A"
+msgstr ""
+
+#: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999
+msgid "Delete B"
+msgstr ""
+
+#: directorymergewindow.cpp:1814
+msgid "Delete A & B"
+msgstr ""
+
+#: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001
+msgid "Merge to A"
+msgstr ""
+
+#: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002
+msgid "Merge to B"
+msgstr ""
+
+#: directorymergewindow.cpp:1817
+msgid "Merge to A & B"
+msgstr ""
+
+#: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993
+msgid "Delete (if exists)"
+msgstr ""
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+#: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869
+#, fuzzy
+msgid "Merge"
+msgstr "Sameina"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+msgid "Merge (manual)"
+msgstr ""
+
+#: directorymergewindow.cpp:1824
+msgid "Error: Conflicting File Types"
+msgstr ""
+
+#: directorymergewindow.cpp:1825
+msgid "Error: Changed and Deleted"
+msgstr ""
+
+#: directorymergewindow.cpp:1826
+msgid "Error: Dates are equal but files are not."
+msgstr ""
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906
+msgid "This operation is currently not possible."
+msgstr ""
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174
+msgid "Operation Not Possible"
+msgstr ""
+
+#: directorymergewindow.cpp:1945
+msgid ""
+"This should never happen: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"If you know how to reproduce this, please contact the program author."
+msgstr ""
+
+#: directorymergewindow.cpp:1945
+msgid "Program Error"
+msgstr ""
+
+#: directorymergewindow.cpp:1956
+msgid "An error occurred while copying.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025
+#: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105
+#: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123
+#: directorymergewindow.cpp:2374
+#, fuzzy
+msgid "Error"
+msgstr "Villa"
+
+#: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375
+msgid "Merge Error"
+msgstr ""
+
+#: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380
+#, fuzzy
+msgid "Error."
+msgstr "Villa."
+
+#: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272
+#: directorymergewindow.cpp:2312
+#, fuzzy
+msgid "Done."
+msgstr "Lokið."
+
+#: directorymergewindow.cpp:1990
+msgid "Not saved."
+msgstr ""
+
+#: directorymergewindow.cpp:2025
+msgid "Unknown merge operation. (This must never happen!)"
+msgstr ""
+
+#: directorymergewindow.cpp:2057
+msgid "Unknown merge operation."
+msgstr ""
+
+#: directorymergewindow.cpp:2072
+msgid ""
+"The merge is about to begin.\n"
+"\n"
+"Choose \"Do it\" if you have read the instructions and know what you are "
+"doing.\n"
+"Choosing \"Simulate it\" will tell you what would happen.\n"
+"\n"
+"Be aware that this program still has beta status and there is NO WARRANTY "
+"whatsoever! Make backups of your vital data!"
+msgstr ""
+
+#: directorymergewindow.cpp:2077
+msgid "Starting Merge"
+msgstr ""
+
+#: directorymergewindow.cpp:2078
+msgid "Do It"
+msgstr ""
+
+#: directorymergewindow.cpp:2079
+msgid "Simulate It"
+msgstr ""
+
+#: directorymergewindow.cpp:2105
+msgid ""
+"The highlighted item has a different type in the different directories. "
+"Select what to do."
+msgstr ""
+
+#: directorymergewindow.cpp:2114
+msgid ""
+"The modification dates of the file are equal but the files are not. Select "
+"what to do."
+msgstr ""
+
+#: directorymergewindow.cpp:2123
+msgid ""
+"The highlighted item was changed in one directory and deleted in the other. "
+"Select what to do."
+msgstr ""
+
+#: directorymergewindow.cpp:2174
+msgid ""
+"This operation is currently not possible because directory merge is "
+"currently running."
+msgstr ""
+
+#: directorymergewindow.cpp:2234
+msgid ""
+"There was an error in the last step.\n"
+"Do you want to continue with the item that caused the error or do you want "
+"to skip this item?"
+msgstr ""
+
+#: directorymergewindow.cpp:2236
+msgid "Continue merge after an error"
+msgstr ""
+
+#: directorymergewindow.cpp:2237
+msgid "Continue With Last Item"
+msgstr ""
+
+#: directorymergewindow.cpp:2238
+msgid "Skip Item"
+msgstr ""
+
+#: directorymergewindow.cpp:2272
+#, fuzzy
+msgid "Skipped."
+msgstr "Sleppt."
+
+#: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493
+msgid "In progress..."
+msgstr ""
+
+#: directorymergewindow.cpp:2327
+msgid "Merge operation complete."
+msgstr ""
+
+#: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330
+msgid "Merge Complete"
+msgstr ""
+
+#: directorymergewindow.cpp:2340
+msgid ""
+"Simulated merge complete: Check if you agree with the proposed operations."
+msgstr ""
+
+#: directorymergewindow.cpp:2374
+msgid "An error occurred. Press OK to see detailed information.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:2406
+#, kde-format
+msgid "Error: While deleting %1: Creating backup failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2413
+#, kde-format
+msgid "delete directory recursively( %1 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2415
+#, kde-format
+msgid "delete( %1 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2430
+msgid "Error: delete dir operation failed while trying to read the directory."
+msgstr ""
+
+#: directorymergewindow.cpp:2449
+#, kde-format
+msgid "Error: rmdir( %1 ) operation failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2459
+msgid "Error: delete operation failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2485
+#, kde-format
+msgid "manual merge( %1, %2, %3 -> %4)"
+msgstr ""
+
+#: directorymergewindow.cpp:2488
+msgid ""
+"     Note: After a manual merge the user should continue by pressing F7."
+msgstr ""
+
+#: directorymergewindow.cpp:2513
+#, kde-format
+msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2522
+#, kde-format
+msgid "copyLink( %1 -> %2 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2533
+msgid "Error: copyLink failed: Remote links are not yet supported."
+msgstr ""
+
+#: directorymergewindow.cpp:2539
+msgid "Error: copyLink failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2564
+#, kde-format
+msgid "copy( %1 -> %2 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2590
+#, kde-format
+msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination."
+msgstr ""
+
+#: directorymergewindow.cpp:2596
+#, kde-format
+msgid "rename( %1 -> %2 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2605
+msgid "Error: Rename failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2623
+#, kde-format
+msgid "Error during makeDir of %1. Cannot delete existing file."
+msgstr ""
+
+#: directorymergewindow.cpp:2639
+#, kde-format
+msgid "makeDir( %1 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2649
+msgid "Error while creating directory."
+msgstr ""
+
+#: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784
+msgid "Dest"
+msgstr ""
+
+#: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709
+msgid "Dir"
+msgstr ""
+
+#: directorymergewindow.cpp:2678
+#, fuzzy
+msgid "Type"
+msgstr "Tegund"
+
+#: directorymergewindow.cpp:2678
+#, fuzzy
+msgid "Size"
+msgstr "Stærð"
+
+#: directorymergewindow.cpp:2679
+msgid "Attr"
+msgstr ""
+
+#: directorymergewindow.cpp:2679
+msgid "Last Modification"
+msgstr ""
+
+#: directorymergewindow.cpp:2679
+msgid "Link-Destination"
+msgstr ""
+
+#: directorymergewindow.cpp:2709 difftextwindow.cpp:401
+#, fuzzy
+msgid "File"
+msgstr "Skrá"
+
+#: directorymergewindow.cpp:2726
+msgid "not available"
+msgstr ""
+
+#: directorymergewindow.cpp:2746
+msgid "A (Dest): "
+msgstr ""
+
+#: directorymergewindow.cpp:2749
+msgid "A (Base): "
+msgstr ""
+
+#: directorymergewindow.cpp:2755
+msgid "B (Dest): "
+msgstr ""
+
+#: directorymergewindow.cpp:2763
+msgid "C (Dest): "
+msgstr ""
+
+#: directorymergewindow.cpp:2769
+msgid "Dest: "
+msgstr ""
+
+#: directorymergewindow.cpp:2836
+msgid "Save Directory Merge State As..."
+msgstr ""
+
+#: directorymergewindow.cpp:2959
+msgid "Start/Continue Directory Merge"
+msgstr ""
+
+#: directorymergewindow.cpp:2960
+msgid "Run Operation for Current Item"
+msgstr ""
+
+#: directorymergewindow.cpp:2961
+msgid "Compare Selected File"
+msgstr ""
+
+#: directorymergewindow.cpp:2962
+msgid "Merge Current File"
+msgstr ""
+
+#: directorymergewindow.cpp:2962
+msgid ""
+"Merge\n"
+"File"
+msgstr ""
+
+#: directorymergewindow.cpp:2963
+msgid "Fold All Subdirs"
+msgstr ""
+
+#: directorymergewindow.cpp:2964
+msgid "Unfold All Subdirs"
+msgstr ""
+
+#: directorymergewindow.cpp:2968
+msgid "Choose A for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2969
+msgid "Choose B for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2970
+msgid "Choose C for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2971
+msgid "Auto-Choose Operation for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2972
+msgid "No Operation for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2977
+msgid "Show Identical Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2977
+msgid ""
+"Identical\n"
+"Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2978
+msgid "Show Different Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2979
+msgid "Show Files only in A"
+msgstr ""
+
+#: directorymergewindow.cpp:2979
+msgid ""
+"Files\n"
+"only in A"
+msgstr ""
+
+#: directorymergewindow.cpp:2980
+msgid "Show Files only in B"
+msgstr ""
+
+#: directorymergewindow.cpp:2980
+msgid ""
+"Files\n"
+"only in B"
+msgstr ""
+
+#: directorymergewindow.cpp:2981
+msgid "Show Files only in C"
+msgstr ""
+
+#: directorymergewindow.cpp:2981
+msgid ""
+"Files\n"
+"only in C"
+msgstr ""
+
+#: directorymergewindow.cpp:2985
+msgid "Compare Explicitly Selected Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2986
+msgid "Merge Explicitly Selected Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995
+#, fuzzy
+msgid "Do Nothing"
+msgstr "Gera ekkert"
+
+#: directorymergewindow.cpp:2989
+#, fuzzy
+msgid "A"
+msgstr "A"
+
+#: directorymergewindow.cpp:2990
+#, fuzzy
+msgid "B"
+msgstr "B"
+
+#: directorymergewindow.cpp:2991
+#, fuzzy
+msgid "C"
+msgstr "C"
+
+#: directorymergewindow.cpp:3000
+msgid "Delete A && B"
+msgstr ""
+
+#: directorymergewindow.cpp:3003
+msgid "Merge to A && B"
+msgstr ""
+
+#: main.cpp:74 main.cpp:76
+msgid "Ignored. (User defined.)"
+msgstr ""
+
+#: main.cpp:162
+msgid "kdiff3"
+msgstr ""
+
+#: main.cpp:164
+msgid "Tool for Comparison and Merge of Files and Directories"
+msgstr ""
+
+#: main.cpp:165
+msgid "(c) 2002-2011 Joachim Eibl"
+msgstr ""
+
+#: main.cpp:172 kdiff3_part.cpp:303
+msgid "Joachim Eibl"
+msgstr ""
+
+#: main.cpp:173
+msgid "Eike Sauer"
+msgstr ""
+
+#: main.cpp:173
+msgid "Bugfixes, Debian package maintainer"
+msgstr ""
+
+#: main.cpp:174
+msgid "Sebastien Fricker"
+msgstr ""
+
+#: main.cpp:174
+msgid "Windows installer"
+msgstr ""
+
+#: main.cpp:175
+#, fuzzy
+msgid "Stephan Binner"
+msgstr "Stephan Binner"
+
+#: main.cpp:175
+msgid "i18n-help"
+msgstr ""
+
+#: main.cpp:176
+msgid "Stefan Partheymueller"
+msgstr ""
+
+#: main.cpp:176
+msgid "Clipboard-patch"
+msgstr ""
+
+#: main.cpp:177
+#, fuzzy
+msgid "David Faure"
+msgstr "David Faure"
+
+#: main.cpp:177
+msgid "KIO-Help"
+msgstr ""
+
+#: main.cpp:178
+#, fuzzy
+msgid "Bernd Gehrmann"
+msgstr "Bernd Gehrmann"
+
+#: main.cpp:178
+msgid "Class CvsIgnoreList from Cervisia"
+msgstr ""
+
+#: main.cpp:179
+msgid "Andre Woebbeking"
+msgstr ""
+
+#: main.cpp:179
+msgid "Class StringMatcher"
+msgstr ""
+
+#: main.cpp:180
+msgid "Michael Denio"
+msgstr ""
+
+#: main.cpp:180
+msgid "Directory Equality-Coloring patch"
+msgstr ""
+
+#: main.cpp:181
+msgid "Manfred Koehler"
+msgstr ""
+
+#: main.cpp:181
+msgid "Fix for slow startup on Windows"
+msgstr ""
+
+#: main.cpp:182
+msgid "Sergey Zorin"
+msgstr ""
+
+#: main.cpp:182
+msgid "Diff Ext for Windows"
+msgstr ""
+
+#: main.cpp:183
+msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+msgstr ""
+
+#: main.cpp:183
+msgid "GNU-Diffutils"
+msgstr ""
+
+#: main.cpp:184
+msgid "Tino Boellsterling, Timothy Mee"
+msgstr ""
+
+#: main.cpp:184
+msgid "Intensive test, use and feedback"
+msgstr ""
+
+#: main.cpp:185
+msgid "Michael Schmidt"
+msgstr ""
+
+#: main.cpp:185
+msgid "Mac support"
+msgstr ""
+
+#: main.cpp:186
+msgid "Valentin Rusu"
+msgstr ""
+
+#: main.cpp:186 main.cpp:187
+msgid "KDE4 porting"
+msgstr ""
+
+#: main.cpp:187
+#, fuzzy
+msgid "Albert Astals Cid"
+msgstr "Albert Astals Cid"
+
+#: main.cpp:188
+msgid "Silvan Scherrer"
+msgstr ""
+
+#: main.cpp:188
+msgid "OS2 port"
+msgstr ""
+
+#: main.cpp:190
+msgid "+ Many thanks to those who reported bugs and contributed ideas!"
+msgstr ""
+
+#: main.cpp:196
+msgid "Merge the input."
+msgstr ""
+
+#: main.cpp:197
+msgid "Explicit base file. For compatibility with certain tools."
+msgstr ""
+
+#: main.cpp:198
+msgid "Output file. Implies -m. E.g.: -o newfile.txt"
+msgstr ""
+
+#: main.cpp:199
+msgid "Output file, again. (For compatibility with certain tools.)"
+msgstr ""
+
+#: main.cpp:200
+msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)"
+msgstr ""
+
+#: main.cpp:201
+msgid "Don't solve conflicts automatically. (For compatibility...)"
+msgstr ""
+
+#: main.cpp:202
+msgid "Visible name replacement for input file 1 (base)."
+msgstr ""
+
+#: main.cpp:203
+msgid "Visible name replacement for input file 2."
+msgstr ""
+
+#: main.cpp:204
+msgid "Visible name replacement for input file 3."
+msgstr ""
+
+#: main.cpp:205
+msgid "Alternative visible name replacement. Supply this once for every input."
+msgstr ""
+
+#: main.cpp:206
+msgid ""
+"Override a config setting. Use once for every setting. E.g.: --cs "
+"\"AutoAdvance=1\""
+msgstr ""
+
+#: main.cpp:207
+msgid "Show list of config settings and current values."
+msgstr ""
+
+#: main.cpp:208
+msgid "Use a different config file."
+msgstr ""
+
+#: main.cpp:211
+msgid "file1 to open (base, if not specified via --base)"
+msgstr ""
+
+#: main.cpp:212
+msgid "file2 to open"
+msgstr ""
+
+#: main.cpp:213
+msgid "file3 to open"
+msgstr ""
+
+#: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976
+#: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002
+#: mergeresultwindow.cpp:1014
+#, kde-format
+msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)"
+msgstr ""
+
+#: mergeresultwindow.cpp:303
+msgid ""
+"The output has been modified.\n"
+"If you continue your changes will be lost."
+msgstr ""
+
+#: mergeresultwindow.cpp:834 pdiff.cpp:532
+msgid "All input files are binary equal."
+msgstr ""
+
+#: mergeresultwindow.cpp:836
+msgid "All input files contain the same text."
+msgstr ""
+
+#: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840
+#: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540
+#, kde-format
+msgid "Files %1 and %2 are binary equal.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841
+#: mergeresultwindow.cpp:843
+#, kde-format
+msgid "Files %1 and %2 have equal text.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:849
+msgid "Total number of conflicts: "
+msgstr ""
+
+#: mergeresultwindow.cpp:850
+msgid ""
+"\n"
+"Nr of automatically solved conflicts: "
+msgstr ""
+
+#: mergeresultwindow.cpp:851
+msgid ""
+"\n"
+"Nr of unsolved conflicts: "
+msgstr ""
+
+#: mergeresultwindow.cpp:853
+msgid "Conflicts"
+msgstr ""
+
+#: mergeresultwindow.cpp:1728
+msgid "<No src line>"
+msgstr ""
+
+#: mergeresultwindow.cpp:1736
+msgid "<Merge Conflict (Whitespace only)>"
+msgstr ""
+
+#: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517
+msgid "<Merge Conflict>"
+msgstr ""
+
+#: mergeresultwindow.cpp:2725
+msgid ""
+"Not all conflicts are solved yet.\n"
+"File not saved.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736
+msgid "Conflicts Left"
+msgstr ""
+
+#: mergeresultwindow.cpp:2734
+msgid ""
+"There is a line end style conflict. Please choose the line end style "
+"manually.\n"
+"File not saved.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:2748
+msgid ""
+"\n"
+"\n"
+"Creating backup failed. File not saved."
+msgstr ""
+
+#: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792
+msgid "File Save Error"
+msgstr ""
+
+#: mergeresultwindow.cpp:2792
+msgid "Error while writing."
+msgstr ""
+
+#: mergeresultwindow.cpp:3122
+#, fuzzy
+msgid "Output"
+msgstr "Úttak"
+
+#: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314
+msgid "[Modified]"
+msgstr ""
+
+#: mergeresultwindow.cpp:3141
+msgid "Encoding for saving"
+msgstr ""
+
+#: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737
+#: optiondialog.cpp:762
+msgid "Line end style:"
+msgstr ""
+
+#: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767
+msgid "Unix"
+msgstr ""
+
+#: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737
+#, fuzzy
+msgid "DOS"
+msgstr "DOS"
+
+#: mergeresultwindow.cpp:3229
+#, fuzzy
+msgid "Conflict"
+msgstr "Árekstrar"
+
+#: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263
+#: mergeresultwindow.cpp:3265
+msgid "Codec from"
+msgstr ""
+
+#: kdiff3_part.cpp:157 kdiff3_part.cpp:234
+msgid "Couldn't find files for comparison."
+msgstr ""
+
+#: kdiff3_part.cpp:302
+msgid "KDiff3Part"
+msgstr ""
+
+#: fileaccess.cpp:612
+msgid ""
+"While trying to make a backup, deleting an older backup failed. \n"
+"Filename: "
+msgstr ""
+
+#: fileaccess.cpp:619
+msgid ""
+"While trying to make a backup, renaming failed. \n"
+"Filenames: "
+msgstr ""
+
+#: fileaccess.cpp:643
+#, kde-format
+msgid "Getting file status: %1"
+msgstr ""
+
+#: fileaccess.cpp:686
+#, kde-format
+msgid "Reading file: %1"
+msgstr ""
+
+#: fileaccess.cpp:723
+#, kde-format
+msgid "Writing file: %1"
+msgstr ""
+
+#: fileaccess.cpp:751
+#, fuzzy
+msgid "Out of memory"
+msgstr "Ekkert minni eftir"
+
+#: fileaccess.cpp:786
+#, kde-format
+msgid "Making directory: %1"
+msgstr ""
+
+#: fileaccess.cpp:806
+#, kde-format
+msgid "Removing directory: %1"
+msgstr ""
+
+#: fileaccess.cpp:821
+#, kde-format
+msgid "Removing file: %1"
+msgstr ""
+
+#: fileaccess.cpp:837
+#, kde-format
+msgid "Creating symbolic link: %1 -> %2"
+msgstr ""
+
+#: fileaccess.cpp:864
+#, kde-format
+msgid "Renaming file: %1 -> %2"
+msgstr ""
+
+#: fileaccess.cpp:897
+#, kde-format
+msgid "Copying file: %1 -> %2"
+msgstr ""
+
+#: fileaccess.cpp:911
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for reading failed. Filename: "
+"%1"
+msgstr ""
+
+#: fileaccess.cpp:917
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for writing failed. Filename: "
+"%1"
+msgstr ""
+
+#: fileaccess.cpp:932
+#, kde-format
+msgid "Error during file copy operation: Reading failed. Filename: %1"
+msgstr ""
+
+#: fileaccess.cpp:941
+#, kde-format
+msgid "Error during file copy operation: Writing failed. Filename: %1"
+msgstr ""
+
+#: fileaccess.cpp:1231
+msgid "Reading directory: "
+msgstr ""
+
+#: fileaccess.cpp:1355
+#, kde-format
+msgid "Listing directory: %1"
+msgstr ""
+
+#: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396
+#, fuzzy
+msgid "&Cancel"
+msgstr "&Hætta við"
+
+#: difftextwindow.cpp:403
+#, fuzzy
+msgid "Line"
+msgstr "Lína"
+
+#: difftextwindow.cpp:405
+msgid "Line not available"
+msgstr ""
+
+#: difftextwindow.cpp:1703 difftextwindow.cpp:1736
+#, fuzzy
+msgid "Encoding:"
+msgstr "Kóðun:"
+
+#: difftextwindow.cpp:1759 kdiff3.cpp:831
+msgid "Top line"
+msgstr ""
+
+#: difftextwindow.cpp:1769
+#, fuzzy
+msgid "End"
+msgstr "Endir"
+
+#: kdiff3.cpp:169
+msgid "Current Configuration:"
+msgstr ""
+
+#: kdiff3.cpp:174
+msgid "Config Option Error:"
+msgstr ""
+
+#: kdiff3.cpp:219
+msgid "Option --auto used, but no output file specified."
+msgstr ""
+
+#: kdiff3.cpp:369
+msgid "Option --auto ignored for directory comparison."
+msgstr ""
+
+#: kdiff3.cpp:405
+msgid "Saving failed."
+msgstr ""
+
+#: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214
+msgid "Opening of these files failed:"
+msgstr ""
+
+#: kdiff3.cpp:449
+msgid "File Open Error"
+msgstr ""
+
+#: kdiff3.cpp:477
+msgid "Opens documents for comparison..."
+msgstr ""
+
+#: kdiff3.cpp:479
+#, fuzzy
+msgid "Reload"
+msgstr "Endurlesa"
+
+#: kdiff3.cpp:482
+msgid "Saves the merge result. All conflicts must be solved!"
+msgstr ""
+
+#: kdiff3.cpp:484
+msgid "Saves the current document as..."
+msgstr ""
+
+#: kdiff3.cpp:487
+msgid "Print the differences"
+msgstr ""
+
+#: kdiff3.cpp:490
+#, fuzzy
+msgid "Quits the application"
+msgstr "Hættir í forritinu"
+
+#: kdiff3.cpp:492
+#, fuzzy
+msgid "Cuts the selected section and puts it to the clipboard"
+msgstr "klippir það sem nú er valið og bætir því við klemmuspjaldið"
+
+#: kdiff3.cpp:494
+#, fuzzy
+msgid "Copies the selected section to the clipboard"
+msgstr "Afritar það sem nú er valið á klemmuspjaldið"
+
+#: kdiff3.cpp:496
+#, fuzzy
+msgid "Pastes the clipboard contents to current position"
+msgstr "Límir innihaldi klemmuspjaldsins á núverandi stað"
+
+#: kdiff3.cpp:498
+msgid "Select everything in current window"
+msgstr ""
+
+#: kdiff3.cpp:500
+msgid "Search for a string"
+msgstr ""
+
+#: kdiff3.cpp:502
+msgid "Search again for the string"
+msgstr ""
+
+#: kdiff3.cpp:507
+#, fuzzy
+msgid "Enables/disables the statusbar"
+msgstr "Virkja/slökkva á stöðustikunni"
+
+#: kdiff3.cpp:511
+msgid "Configure KDiff3..."
+msgstr ""
+
+#: kdiff3.cpp:532
+msgid "Go to Current Delta"
+msgstr ""
+
+#: kdiff3.cpp:532
+msgid ""
+"Current\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:534
+msgid "Go to First Delta"
+msgstr ""
+
+#: kdiff3.cpp:534
+msgid ""
+"First\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:536
+msgid "Go to Last Delta"
+msgstr ""
+
+#: kdiff3.cpp:536
+msgid ""
+"Last\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:538
+msgid "(Skips white space differences when \"Show White Space\" is disabled.)"
+msgstr ""
+
+#: kdiff3.cpp:539
+msgid ""
+"(Does not skip white space differences even when \"Show White Space\" is "
+"disabled.)"
+msgstr ""
+
+#: kdiff3.cpp:540
+msgid "Go to Previous Delta"
+msgstr ""
+
+#: kdiff3.cpp:540
+msgid ""
+"Prev\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:542
+msgid "Go to Next Delta"
+msgstr ""
+
+#: kdiff3.cpp:542
+msgid ""
+"Next\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:544
+msgid "Go to Previous Conflict"
+msgstr ""
+
+#: kdiff3.cpp:544
+msgid ""
+"Prev\n"
+"Conflict"
+msgstr ""
+
+#: kdiff3.cpp:546
+msgid "Go to Next Conflict"
+msgstr ""
+
+#: kdiff3.cpp:546
+msgid ""
+"Next\n"
+"Conflict"
+msgstr ""
+
+#: kdiff3.cpp:548
+msgid "Go to Previous Unsolved Conflict"
+msgstr ""
+
+#: kdiff3.cpp:548
+msgid ""
+"Prev\n"
+"Unsolved"
+msgstr ""
+
+#: kdiff3.cpp:550
+msgid "Go to Next Unsolved Conflict"
+msgstr ""
+
+#: kdiff3.cpp:550
+msgid ""
+"Next\n"
+"Unsolved"
+msgstr ""
+
+#: kdiff3.cpp:552
+msgid "Select Line(s) From A"
+msgstr ""
+
+#: kdiff3.cpp:552
+msgid ""
+"Choose\n"
+"A"
+msgstr ""
+
+#: kdiff3.cpp:553
+msgid "Select Line(s) From B"
+msgstr ""
+
+#: kdiff3.cpp:553
+msgid ""
+"Choose\n"
+"B"
+msgstr ""
+
+#: kdiff3.cpp:554
+msgid "Select Line(s) From C"
+msgstr ""
+
+#: kdiff3.cpp:554
+msgid ""
+"Choose\n"
+"C"
+msgstr ""
+
+#: kdiff3.cpp:555
+msgid "Automatically Go to Next Unsolved Conflict After Source Selection"
+msgstr ""
+
+#: kdiff3.cpp:555
+msgid ""
+"Auto\n"
+"Next"
+msgstr ""
+
+#: kdiff3.cpp:557
+msgid "Show Space && Tabulator Characters for Differences"
+msgstr ""
+
+#: kdiff3.cpp:557
+msgid ""
+"White\n"
+"Characters"
+msgstr ""
+
+#: kdiff3.cpp:558
+msgid "Show White Space"
+msgstr ""
+
+#: kdiff3.cpp:558
+msgid ""
+"White\n"
+"Deltas"
+msgstr ""
+
+#: kdiff3.cpp:560
+msgid "Show Line Numbers"
+msgstr ""
+
+#: kdiff3.cpp:560
+msgid ""
+"Line\n"
+"Numbers"
+msgstr ""
+
+#: kdiff3.cpp:561
+msgid "Choose A Everywhere"
+msgstr ""
+
+#: kdiff3.cpp:562
+msgid "Choose B Everywhere"
+msgstr ""
+
+#: kdiff3.cpp:563
+msgid "Choose C Everywhere"
+msgstr ""
+
+#: kdiff3.cpp:564
+msgid "Choose A for All Unsolved Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:565
+msgid "Choose B for All Unsolved Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:566
+msgid "Choose C for All Unsolved Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:567
+msgid "Choose A for All Unsolved Whitespace Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:568
+msgid "Choose B for All Unsolved Whitespace Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:569
+msgid "Choose C for All Unsolved Whitespace Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:570
+msgid "Automatically Solve Simple Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:571
+msgid "Set Deltas to Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:572
+msgid "Run Regular Expression Auto Merge"
+msgstr ""
+
+#: kdiff3.cpp:573
+msgid "Automatically Solve History Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:574
+msgid "Split Diff At Selection"
+msgstr ""
+
+#: kdiff3.cpp:575
+msgid "Join Selected Diffs"
+msgstr ""
+
+#: kdiff3.cpp:577
+msgid "Show Window A"
+msgstr ""
+
+#: kdiff3.cpp:578
+msgid "Show Window B"
+msgstr ""
+
+#: kdiff3.cpp:579
+msgid "Show Window C"
+msgstr ""
+
+#: kdiff3.cpp:580 kdiff3.cpp:591
+msgid "Focus Next Window"
+msgstr ""
+
+#: kdiff3.cpp:582
+msgid "Normal Overview"
+msgstr ""
+
+#: kdiff3.cpp:583
+msgid "A vs. B Overview"
+msgstr ""
+
+#: kdiff3.cpp:584
+msgid "A vs. C Overview"
+msgstr ""
+
+#: kdiff3.cpp:585
+msgid "B vs. C Overview"
+msgstr ""
+
+#: kdiff3.cpp:586
+msgid "Word Wrap Diff Windows"
+msgstr ""
+
+#: kdiff3.cpp:587
+msgid "Add Manual Diff Alignment"
+msgstr ""
+
+#: kdiff3.cpp:588
+msgid "Clear All Manual Diff Alignments"
+msgstr ""
+
+#: kdiff3.cpp:593
+msgid "Focus Prev Window"
+msgstr ""
+
+#: kdiff3.cpp:594
+msgid "Toggle Split Orientation"
+msgstr ""
+
+#: kdiff3.cpp:596
+msgid "Dir && Text Split Screen View"
+msgstr ""
+
+#: kdiff3.cpp:598
+msgid "Toggle Between Dir && Text View"
+msgstr ""
+
+#: kdiff3.cpp:654 pdiff.cpp:1812
+msgid "The merge result hasn't been saved."
+msgstr ""
+
+#: kdiff3.cpp:656
+msgid "Save && Quit"
+msgstr ""
+
+#: kdiff3.cpp:657
+msgid "Quit Without Saving"
+msgstr ""
+
+#: kdiff3.cpp:665 pdiff.cpp:1823
+msgid "Saving the merge result failed."
+msgstr ""
+
+#: kdiff3.cpp:676 pdiff.cpp:1078
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort?"
+msgstr ""
+
+#: kdiff3.cpp:701
+#, fuzzy
+msgid "Saving file..."
+msgstr "Vista skrá..."
+
+#: kdiff3.cpp:718
+#, fuzzy
+msgid "Saving file with a new filename..."
+msgstr "Vista skrá með nýju skráarnafni..."
+
+#: kdiff3.cpp:781
+#, fuzzy
+msgid "Printing not implemented."
+msgstr "Prentun stöðvuð."
+
+#: kdiff3.cpp:815
+#, fuzzy
+msgid "Printing..."
+msgstr "Prenta..."
+
+#: kdiff3.cpp:956
+#, fuzzy
+msgid "Selection"
+msgstr "Val"
+
+#: kdiff3.cpp:982
+msgid "Printing completed."
+msgstr ""
+
+#: kdiff3.cpp:986
+#, fuzzy
+msgid "Printing aborted."
+msgstr "Prentun stöðvuð."
+
+#: kdiff3.cpp:993
+#, fuzzy
+msgid "Exiting..."
+msgstr "Hætti..."
+
+#: kdiff3.cpp:1006
+#, fuzzy
+msgid "Toggling toolbar..."
+msgstr "Birta/fela tækjaslá..."
+
+#: kdiff3.cpp:1027
+#, fuzzy
+msgid "Toggle the statusbar..."
+msgstr "Birta/fela stöðuslá..."
+
+#: smalldialogs.cpp:58
+msgid "A (Base):"
+msgstr ""
+
+#: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99
+#: smalldialogs.cpp:142
+#, fuzzy
+msgid "File..."
+msgstr "Skrá..."
+
+#: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101
+#: smalldialogs.cpp:144
+msgid "Dir..."
+msgstr ""
+
+#: smalldialogs.cpp:93
+msgid "C (Optional):"
+msgstr ""
+
+#: smalldialogs.cpp:116
+msgid "Swap/Copy Names ..."
+msgstr ""
+
+#: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123
+#, kde-format
+msgid "Swap %1<->%2"
+msgstr ""
+
+#: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126
+#, kde-format
+msgid "Copy %1->Output"
+msgstr ""
+
+#: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129
+#, kde-format
+msgid "Swap %1<->Output"
+msgstr ""
+
+#: smalldialogs.cpp:136
+msgid "Output (optional):"
+msgstr ""
+
+#: smalldialogs.cpp:168
+#, fuzzy
+msgid "Configure..."
+msgstr "Stilla..."
+
+#: smalldialogs.cpp:174
+#, fuzzy
+msgid "&OK"
+msgstr "Í &lagi"
+
+#: smalldialogs.cpp:362
+msgid "Search text:"
+msgstr ""
+
+#: smalldialogs.cpp:369
+#, fuzzy
+msgid "Case sensitive"
+msgstr "Háð há/lágstöfum"
+
+#: smalldialogs.cpp:372
+msgid "Search A"
+msgstr ""
+
+#: smalldialogs.cpp:377
+msgid "Search B"
+msgstr ""
+
+#: smalldialogs.cpp:382
+msgid "Search C"
+msgstr ""
+
+#: smalldialogs.cpp:387
+msgid "Search output"
+msgstr ""
+
+#: smalldialogs.cpp:392
+#, fuzzy
+msgid "&Search"
+msgstr "&Leita"
+
+#: smalldialogs.cpp:409
+msgid "Regular Expression Tester"
+msgstr ""
+
+#: smalldialogs.cpp:414 optiondialog.cpp:936
+msgid "Auto merge regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:422
+msgid "Example auto merge line:"
+msgstr ""
+
+#: smalldialogs.cpp:424
+msgid "To test auto merge, copy a line as used in your files."
+msgstr ""
+
+#: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494
+msgid "Match result:"
+msgstr ""
+
+#: smalldialogs.cpp:441 optiondialog.cpp:962
+msgid "History start regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:449
+msgid "Example history start line (with leading comment):"
+msgstr ""
+
+#: smalldialogs.cpp:451
+msgid ""
+"Copy a history start line as used in your files,\n"
+"including the leading comment."
+msgstr ""
+
+#: smalldialogs.cpp:469 optiondialog.cpp:972
+msgid "History entry start regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:477
+msgid "History sort key order:"
+msgstr ""
+
+#: smalldialogs.cpp:485
+msgid "Example history entry start line (without leading comment):"
+msgstr ""
+
+#: smalldialogs.cpp:487
+msgid ""
+"Copy a history entry start line as used in your files,\n"
+"but omit the leading comment."
+msgstr ""
+
+#: smalldialogs.cpp:501
+msgid "Sort key result:"
+msgstr ""
+
+#: smalldialogs.cpp:508
+#, fuzzy
+msgid "OK"
+msgstr "Í lagi"
+
+#: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583
+msgid "Match success."
+msgstr ""
+
+#: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589
+msgid "Match failed."
+msgstr ""
+
+#: smalldialogs.cpp:574
+msgid "Opening and closing parentheses do not match in regular expression."
+msgstr ""
+
+#: optiondialog.cpp:367
+msgid "Unicode, 8 bit"
+msgstr ""
+
+#: optiondialog.cpp:368
+#, fuzzy
+msgid "Unicode"
+msgstr "Unicode"
+
+#: optiondialog.cpp:369
+#, fuzzy
+msgid "Latin1"
+msgstr "Latin1"
+
+#: optiondialog.cpp:388
+msgid "Change this if non-ASCII characters are not displayed correctly."
+msgstr ""
+
+#: optiondialog.cpp:465
+#, fuzzy
+msgid "Configure"
+msgstr "Stilla"
+
+#: optiondialog.cpp:531
+#, fuzzy
+msgid "Font"
+msgstr "Letur"
+
+#: optiondialog.cpp:532
+msgid "Editor & Diff Output Font"
+msgstr ""
+
+#: optiondialog.cpp:556
+msgid "Italic font for deltas"
+msgstr ""
+
+#: optiondialog.cpp:559
+msgid ""
+"Selects the italic version of the font for differences.\n"
+"If the font doesn't support italic characters, then this does nothing."
+msgstr ""
+
+#: optiondialog.cpp:568
+#, fuzzy
+msgid "Color"
+msgstr "Litur"
+
+#: optiondialog.cpp:569
+msgid "Colors Settings"
+msgstr ""
+
+#: optiondialog.cpp:588
+msgid "Editor and Diff Views:"
+msgstr ""
+
+#: optiondialog.cpp:596
+#, fuzzy
+msgid "Foreground color:"
+msgstr "Litur forgrunns:"
+
+#: optiondialog.cpp:603
+#, fuzzy
+msgid "Background color:"
+msgstr "Bakgrunnslitur:"
+
+#: optiondialog.cpp:612
+msgid "Diff background color:"
+msgstr ""
+
+#: optiondialog.cpp:620
+msgid "Color A:"
+msgstr ""
+
+#: optiondialog.cpp:628
+msgid "Color B:"
+msgstr ""
+
+#: optiondialog.cpp:636
+msgid "Color C:"
+msgstr ""
+
+#: optiondialog.cpp:643
+msgid "Conflict color:"
+msgstr ""
+
+#: optiondialog.cpp:651
+msgid "Current range background color:"
+msgstr ""
+
+#: optiondialog.cpp:659
+msgid "Current range diff background color:"
+msgstr ""
+
+#: optiondialog.cpp:666
+msgid "Color for manually aligned difference ranges:"
+msgstr ""
+
+#: optiondialog.cpp:672
+msgid "Directory Comparison View:"
+msgstr ""
+
+#: optiondialog.cpp:678
+msgid "Newest file color:"
+msgstr ""
+
+#: optiondialog.cpp:682
+msgid ""
+"Changing this color will only be effective when starting the next directory "
+"comparison."
+msgstr ""
+
+#: optiondialog.cpp:687
+msgid "Oldest file color:"
+msgstr ""
+
+#: optiondialog.cpp:695
+msgid "Middle age file color:"
+msgstr ""
+
+#: optiondialog.cpp:703
+msgid "Color for missing files:"
+msgstr ""
+
+#: optiondialog.cpp:717
+#, fuzzy
+msgid "Editor"
+msgstr "Ritill"
+
+#: optiondialog.cpp:718
+msgid "Editor Behavior"
+msgstr ""
+
+#: optiondialog.cpp:732
+msgid "Tab inserts spaces"
+msgstr ""
+
+#: optiondialog.cpp:735
+msgid ""
+"On: Pressing tab generates the appropriate number of spaces.\n"
+"Off: A tab character will be inserted."
+msgstr ""
+
+#: optiondialog.cpp:741
+msgid "Tab size:"
+msgstr ""
+
+#: optiondialog.cpp:747
+msgid "Auto indentation"
+msgstr ""
+
+#: optiondialog.cpp:750
+msgid "On: The indentation of the previous line is used for a new line.\n"
+msgstr ""
+
+#: optiondialog.cpp:754
+msgid "Auto copy selection"
+msgstr ""
+
+#: optiondialog.cpp:757
+msgid ""
+"On: Any selection is immediately written to the clipboard.\n"
+"Off: You must explicitely copy e.g. via Ctrl-C."
+msgstr ""
+
+#: optiondialog.cpp:768
+#, fuzzy
+msgid "Dos/Windows"
+msgstr "&Gluggi"
+
+#: optiondialog.cpp:769
+#, fuzzy
+msgid "Autodetect"
+msgstr "Velja sjálfvirkt"
+
+#: optiondialog.cpp:772
+msgid ""
+"Sets the line endings for when an edited file is saved.\n"
+"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A"
+msgstr ""
+
+#: optiondialog.cpp:784
+#, fuzzy
+msgid "Diff"
+msgstr "Diff"
+
+#: optiondialog.cpp:785
+#, fuzzy
+msgid "Diff Settings"
+msgstr "Stillingar diff"
+
+#: optiondialog.cpp:809
+msgid "Treat as white space."
+msgstr ""
+
+#: optiondialog.cpp:811
+msgid "Ignore numbers"
+msgstr ""
+
+#: optiondialog.cpp:814
+msgid ""
+"Ignore number characters during line matching phase. (Similar to Ignore "
+"white space.)\n"
+"Might help to compare files with numeric data."
+msgstr ""
+
+#: optiondialog.cpp:819
+msgid "Ignore C/C++ comments"
+msgstr ""
+
+#: optiondialog.cpp:821
+msgid "Treat C/C++ comments like white space."
+msgstr ""
+
+#: optiondialog.cpp:825
+#, fuzzy
+msgid "Ignore case"
+msgstr "Hunsa há/lágstafi"
+
+#: optiondialog.cpp:828
+msgid "Treat case differences like white space changes. ('a'<=>'A')"
+msgstr ""
+
+#: optiondialog.cpp:832
+msgid "Preprocessor command:"
+msgstr ""
+
+#: optiondialog.cpp:836
+msgid "User defined pre-processing. (See the docs for details.)"
+msgstr ""
+
+#: optiondialog.cpp:839
+msgid "Line-matching preprocessor command:"
+msgstr ""
+
+#: optiondialog.cpp:843
+msgid ""
+"This pre-processor is only used during line matching.\n"
+"(See the docs for details.)"
+msgstr ""
+
+#: optiondialog.cpp:846
+msgid "Try hard (slower)"
+msgstr ""
+
+#: optiondialog.cpp:849
+msgid ""
+"Enables the --minimal option for the external diff.\n"
+"The analysis of big files will be much slower."
+msgstr ""
+
+#: optiondialog.cpp:854
+msgid "Align B and C for 3 input files"
+msgstr ""
+
+#: optiondialog.cpp:857
+msgid ""
+"Try to align B and C when comparing or merging three input files.\n"
+"Not recommended for merging because merge might get more complicated.\n"
+"(Default is off.)"
+msgstr ""
+
+#: optiondialog.cpp:870
+msgid "Merge Settings"
+msgstr ""
+
+#: optiondialog.cpp:885
+msgid "Auto advance delay (ms):"
+msgstr ""
+
+#: optiondialog.cpp:890
+msgid ""
+"When in Auto-Advance mode the result of the current selection is shown \n"
+"for the specified time, before jumping to the next conflict. Range: 0-2000 ms"
+msgstr ""
+
+#: optiondialog.cpp:895
+msgid "Show info dialogs"
+msgstr ""
+
+#: optiondialog.cpp:897
+msgid "Show a dialog with information about the number of conflicts."
+msgstr ""
+
+#: optiondialog.cpp:900
+msgid "White space 2-file merge default:"
+msgstr ""
+
+#: optiondialog.cpp:904 optiondialog.cpp:917
+msgid "Manual Choice"
+msgstr ""
+
+#: optiondialog.cpp:908 optiondialog.cpp:922
+msgid ""
+"Allow the merge algorithm to automatically select an input for white-space-"
+"only changes."
+msgstr ""
+
+#: optiondialog.cpp:913
+msgid "White space 3-file merge default:"
+msgstr ""
+
+#: optiondialog.cpp:927
+msgid "Automatic Merge Regular Expression"
+msgstr ""
+
+#: optiondialog.cpp:940
+msgid ""
+"Regular expression for lines where KDiff3 should automatically choose one "
+"source.\n"
+"When a line with a conflict matches the regular expression then\n"
+"- if available - C, otherwise B will be chosen."
+msgstr ""
+
+#: optiondialog.cpp:946
+msgid "Run regular expression auto merge on merge start"
+msgstr ""
+
+#: optiondialog.cpp:948
+msgid ""
+"Run the merge for auto merge regular expressions\n"
+"immediately when a merge starts.\n"
+msgstr ""
+
+#: optiondialog.cpp:953
+msgid "Version Control History Merging"
+msgstr ""
+
+#: optiondialog.cpp:966
+msgid ""
+"Regular expression for the start of the version control history entry.\n"
+"Usually this line contains the \"$Log$\" keyword.\n"
+"Default value: \".*\\$Log.*\\$.*\""
+msgstr ""
+
+#: optiondialog.cpp:984
+msgid ""
+"A version control history entry consists of several lines.\n"
+"Specify the regular expression to detect the first line (without the leading "
+"comment).\n"
+"Use parentheses to group the keys you want to use for sorting.\n"
+"If left empty, then KDiff3 assumes that empty lines separate history "
+"entries.\n"
+"See the documentation for details."
+msgstr ""
+
+#: optiondialog.cpp:992
+msgid "History merge sorting"
+msgstr ""
+
+#: optiondialog.cpp:994
+msgid "Sort version control history by a key."
+msgstr ""
+
+#: optiondialog.cpp:1004
+msgid "History entry start sort key order:"
+msgstr ""
+
+#: optiondialog.cpp:1008
+msgid ""
+"Each pair of parentheses used in the regular expression for the history "
+"start entry\n"
+"groups a key that can be used for sorting.\n"
+"Specify the list of keys (that are numbered in order of occurrence\n"
+"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n"
+"If left empty, then no sorting will be done.\n"
+"See the documentation for details."
+msgstr ""
+
+#: optiondialog.cpp:1019
+msgid "Merge version control history on merge start"
+msgstr ""
+
+#: optiondialog.cpp:1021
+msgid "Run version control history automerge on merge start."
+msgstr ""
+
+#: optiondialog.cpp:1025
+msgid "Max number of history entries:"
+msgstr ""
+
+#: optiondialog.cpp:1028
+msgid "Cut off after specified number. Use -1 for infinite number of entries."
+msgstr ""
+
+#: optiondialog.cpp:1032
+msgid "Test your regular expressions"
+msgstr ""
+
+#: optiondialog.cpp:1037
+msgid "Irrelevant merge command:"
+msgstr ""
+
+#: optiondialog.cpp:1041
+msgid ""
+"If specified this script is run after automerge\n"
+"when no other relevant changes were detected.\n"
+"Called with the parameters: filename1 filename2 filename3"
+msgstr ""
+
+#: optiondialog.cpp:1047
+msgid "Auto save and quit on merge without conflicts"
+msgstr ""
+
+#: optiondialog.cpp:1050
+msgid ""
+"If KDiff3 was started for a file-merge from the command line and all\n"
+"conflicts are solvable without user interaction then automatically save and "
+"quit.\n"
+"(Similar to command line option \"--auto\".)"
+msgstr ""
+
+#: optiondialog.cpp:1061 optiondialog.cpp:1062
+#, fuzzy
+msgid "Directory"
+msgstr "Mappa"
+
+#: optiondialog.cpp:1075
+msgid "Recursive directories"
+msgstr ""
+
+#: optiondialog.cpp:1077
+msgid "Whether to analyze subdirectories or not."
+msgstr ""
+
+#: optiondialog.cpp:1079
+msgid "File pattern(s):"
+msgstr ""
+
+#: optiondialog.cpp:1084
+msgid ""
+"Pattern(s) of files to be analyzed. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1090
+msgid "File-anti-pattern(s):"
+msgstr ""
+
+#: optiondialog.cpp:1095
+msgid ""
+"Pattern(s) of files to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1101
+msgid "Dir-anti-pattern(s):"
+msgstr ""
+
+#: optiondialog.cpp:1106
+msgid ""
+"Pattern(s) of directories to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1112
+msgid "Use .cvsignore"
+msgstr ""
+
+#: optiondialog.cpp:1115
+msgid ""
+"Extends the antipattern to anything that would be ignored by CVS.\n"
+"Via local \".cvsignore\" files this can be directory specific."
+msgstr ""
+
+#: optiondialog.cpp:1120
+msgid "Find hidden files and directories"
+msgstr ""
+
+#: optiondialog.cpp:1123
+msgid "Finds files and directories with the hidden attribute."
+msgstr ""
+
+#: optiondialog.cpp:1125
+msgid "Finds files and directories starting with '.'."
+msgstr ""
+
+#: optiondialog.cpp:1129
+msgid "Follow file links"
+msgstr ""
+
+#: optiondialog.cpp:1132
+msgid ""
+"On: Compare the file the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+
+#: optiondialog.cpp:1137
+msgid "Follow directory links"
+msgstr ""
+
+#: optiondialog.cpp:1140
+msgid ""
+"On: Compare the directory the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+
+#: optiondialog.cpp:1156
+msgid "Case sensitive filename comparison"
+msgstr ""
+
+#: optiondialog.cpp:1159
+msgid ""
+"The directory comparison will compare files or directories when their names "
+"match.\n"
+"Set this option if the case of the names must match. (Default for Windows is "
+"off, otherwise on.)"
+msgstr ""
+
+#: optiondialog.cpp:1163
+msgid "File Comparison Mode"
+msgstr ""
+
+#: optiondialog.cpp:1169
+msgid "Binary comparison"
+msgstr ""
+
+#: optiondialog.cpp:1170
+msgid "Binary comparison of each file. (Default)"
+msgstr ""
+
+#: optiondialog.cpp:1173
+msgid "Full analysis"
+msgstr ""
+
+#: optiondialog.cpp:1174
+msgid ""
+"Do a full analysis and show statistics information in extra columns.\n"
+"(Slower than a binary comparison, much slower for binary files.)"
+msgstr ""
+
+#: optiondialog.cpp:1178
+msgid "Trust the size and modification date (unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1179
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"Files with equal contents but different modification dates will appear as "
+"different.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+
+#: optiondialog.cpp:1184
+msgid ""
+"Trust the size and date, but use binary comparison if date does not match "
+"(unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1185
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"If the dates are not equal but the sizes are, use binary comparison.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+
+#: optiondialog.cpp:1190
+msgid "Trust the size (unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1191
+msgid ""
+"Assume that files are equal if their file lengths are equal.\n"
+"Useful for big directories or slow networks when the date is modified during "
+"download."
+msgstr ""
+
+#: optiondialog.cpp:1199
+msgid "Synchronize directories"
+msgstr ""
+
+#: optiondialog.cpp:1202
+msgid ""
+"Offers to store files in both directories so that\n"
+"both directories are the same afterwards.\n"
+"Works only when comparing two directories without specifying a destination."
+msgstr ""
+
+#: optiondialog.cpp:1208
+msgid "White space differences considered equal"
+msgstr ""
+
+#: optiondialog.cpp:1211
+msgid ""
+"If files differ only by white space consider them equal.\n"
+"This is only active when full analysis is chosen."
+msgstr ""
+
+#: optiondialog.cpp:1217
+msgid "Copy newer instead of merging (unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1220
+msgid ""
+"Don't look inside, just take the newer file.\n"
+"(Use this only if you know what you are doing!)\n"
+"Only effective when comparing two directories."
+msgstr ""
+
+#: optiondialog.cpp:1225
+msgid "Backup files (.orig)"
+msgstr ""
+
+#: optiondialog.cpp:1228
+msgid ""
+"If a file would be saved over an old file, then the old file\n"
+"will be renamed with a '.orig' extension instead of being deleted."
+msgstr ""
+
+#: optiondialog.cpp:1301 optiondialog.cpp:1302
+msgid "Regional Settings"
+msgstr ""
+
+#: optiondialog.cpp:1402
+msgid "Language (restart required)"
+msgstr ""
+
+#: optiondialog.cpp:1445
+msgid ""
+"Choose the language of the GUI strings or \"Auto\".\n"
+"For a change of language to take place, quit and restart KDiff3."
+msgstr ""
+
+#: optiondialog.cpp:1463
+msgid "Use the same encoding for everything:"
+msgstr ""
+
+#: optiondialog.cpp:1466
+msgid ""
+"Enable this allows to change all encodings by changing the first only.\n"
+"Disable this if different individual settings are needed."
+msgstr ""
+
+#: optiondialog.cpp:1471
+msgid "Note: Local Encoding is "
+msgstr ""
+
+#: optiondialog.cpp:1475
+msgid "File Encoding for A:"
+msgstr ""
+
+#: optiondialog.cpp:1481
+msgid ""
+"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n"
+"If the file is not Unicode then the selected encoding will be used as "
+"fallback.\n"
+"(Unicode detection depends on the first bytes of a file.)"
+msgstr ""
+
+#: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503
+msgid "Auto Detect Unicode"
+msgstr ""
+
+#: optiondialog.cpp:1490
+msgid "File Encoding for B:"
+msgstr ""
+
+#: optiondialog.cpp:1499
+msgid "File Encoding for C:"
+msgstr ""
+
+#: optiondialog.cpp:1508
+msgid "File Encoding for Merge Output and Saving:"
+msgstr ""
+
+#: optiondialog.cpp:1512
+#, fuzzy
+msgid "Auto Select"
+msgstr "Velja sjálfvirkt"
+
+#: optiondialog.cpp:1515
+msgid ""
+"If enabled then the encoding from the input files is used.\n"
+"In ambiguous cases a dialog will ask the user to choose the encoding for "
+"saving."
+msgstr ""
+
+#: optiondialog.cpp:1519
+msgid "File Encoding for Preprocessor Files:"
+msgstr ""
+
+#: optiondialog.cpp:1530
+msgid "Right To Left Language"
+msgstr ""
+
+#: optiondialog.cpp:1533
+msgid ""
+"Some languages are read from right to left.\n"
+"This setting will change the viewer and editor accordingly."
+msgstr ""
+
+#: optiondialog.cpp:1548
+msgid "Integration"
+msgstr ""
+
+#: optiondialog.cpp:1549
+msgid "Integration Settings"
+msgstr ""
+
+#: optiondialog.cpp:1563
+msgid "Command line options to ignore:"
+msgstr ""
+
+#: optiondialog.cpp:1568
+msgid ""
+"List of command line options that should be ignored when KDiff3 is used by "
+"other tools.\n"
+"Several values can be specified if separated via ';'\n"
+"This will suppress the \"Unknown option\" error."
+msgstr ""
+
+#: optiondialog.cpp:1575
+msgid "Quit also via Escape key"
+msgstr ""
+
+#: optiondialog.cpp:1578
+msgid ""
+"Fast method to exit.\n"
+"For those who are used to using the Escape key."
+msgstr ""
+
+#: optiondialog.cpp:1583
+msgid "Integrate with ClearCase"
+msgstr ""
+
+#: optiondialog.cpp:1586
+msgid ""
+"Integrate with Rational ClearCase from IBM.\n"
+"Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n"
+"(Only enabled when ClearCase \"bin\" directory is in the path.)"
+msgstr ""
+
+#: optiondialog.cpp:1592
+msgid "Remove ClearCase Integration"
+msgstr ""
+
+#: optiondialog.cpp:1595
+msgid ""
+"Restore the old \"map\" file from before doing the ClearCase integration."
+msgstr ""
+
+#: optiondialog.cpp:1680
+msgid "Incompatible Font"
+msgstr ""
+
+#: optiondialog.cpp:1681
+msgid "Continue at Own Risk"
+msgstr ""
+
+#: optiondialog.cpp:1682
+msgid "Select Another Font"
+msgstr ""
+
+#: optiondialog.cpp:1717
+msgid "This resets all options. Not only those of the current topic."
+msgstr ""
+
+#: pdiff.cpp:260
+msgid "PreprocessorCmd: "
+msgstr ""
+
+#: pdiff.cpp:265
+msgid "The following option(s) you selected might change data:\n"
+msgstr ""
+
+#: pdiff.cpp:266
+msgid ""
+"\n"
+"Most likely this is not wanted during a merge.\n"
+"Do you want to disable these settings or continue with these settings active?"
+msgstr ""
+
+#: pdiff.cpp:268
+msgid "Option Unsafe for Merging"
+msgstr ""
+
+#: pdiff.cpp:269
+msgid "Use These Options During Merge"
+msgstr ""
+
+#: pdiff.cpp:270
+msgid "Disable Unsafe Options"
+msgstr ""
+
+#: pdiff.cpp:300
+msgid "Loading A"
+msgstr ""
+
+#: pdiff.cpp:304
+msgid "Loading B"
+msgstr ""
+
+#: pdiff.cpp:321 pdiff.cpp:347
+msgid "Diff: A <-> B"
+msgstr ""
+
+#: pdiff.cpp:327 pdiff.cpp:372
+msgid "Linediff: A <-> B"
+msgstr ""
+
+#: pdiff.cpp:338
+msgid "Loading C"
+msgstr ""
+
+#: pdiff.cpp:350
+msgid "Diff: B <-> C"
+msgstr ""
+
+#: pdiff.cpp:353
+msgid "Diff: A <-> C"
+msgstr ""
+
+#: pdiff.cpp:375
+msgid "Linediff: B <-> C"
+msgstr ""
+
+#: pdiff.cpp:378
+msgid "Linediff: A <-> C"
+msgstr ""
+
+#: pdiff.cpp:534
+msgid "All input files contain the same text, but are not binary equal."
+msgstr ""
+
+#: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541
+#, kde-format
+msgid "Files %1 and %2 have equal text, but are not binary equal. \n"
+msgstr ""
+
+#: pdiff.cpp:551
+msgid ""
+"Some inputfiles don't seem to be pure textfiles.\n"
+"Note that the KDiff3-merge was not meant for binary data.\n"
+"Continue at your own risk."
+msgstr ""
+
+#: pdiff.cpp:566
+#, kde-format
+msgid ""
+"Some input characters could not be converted to valid unicode.\n"
+"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n"
+"Don't save the result if unsure. Continue at your own risk.\n"
+"Affected input files are in %1."
+msgstr ""
+
+#: pdiff.cpp:1080
+#, fuzzy
+msgid "Abort"
+msgstr "Hætta við"
+
+#: pdiff.cpp:1087 pdiff.cpp:1175
+msgid "Opening files..."
+msgstr ""
+
+#: pdiff.cpp:1152 pdiff.cpp:1223
+msgid "File open error"
+msgstr ""
+
+#: pdiff.cpp:1255
+#, fuzzy
+msgid "Cutting selection..."
+msgstr "Klippi val..."
+
+#: pdiff.cpp:1276
+#, fuzzy
+msgid "Copying selection to clipboard..."
+msgstr "Afrita val á klemmuspjald..."
+
+#: pdiff.cpp:1292
+#, fuzzy
+msgid "Inserting clipboard contents..."
+msgstr "Tek af klemmuspjaldi..."
+
+#: pdiff.cpp:1814
+msgid "Save && Continue"
+msgstr ""
+
+#: pdiff.cpp:1815
+msgid "Continue Without Saving"
+msgstr ""
+
+#: pdiff.cpp:2018
+msgid "Search complete."
+msgstr ""
+
+#: pdiff.cpp:2018
+msgid "Search Complete"
+msgstr ""
+
+#: pdiff.cpp:2252
+msgid "Nothing is selected in either diff input window."
+msgstr ""
+
+#: pdiff.cpp:2252
+msgid "Error while adding manual diff range"
+msgstr ""
+
+#: kdiff3_shell.cpp:76
+msgid ""
+"Could not initialize the KDiff3 part.\n"
+"This usually happens due to an installation problem. Please read the README-"
+"file in the source package for details."
+msgstr ""
+
+#: rc.cpp:1
+#, fuzzy
+msgctxt "NAME OF TRANSLATORS"
+msgid "Your names"
+msgstr "Sveinn í Felli"
+
+#: rc.cpp:2
+#, fuzzy
+msgctxt "EMAIL OF TRANSLATORS"
+msgid "Your emails"
+msgstr "sveinki@nett.is"
+
+#. i18n: file: kdiff3_part.rc:4
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:5
+msgid "&KDiff3"
+msgstr ""
+
+#. i18n: file: kdiff3_part.rc:13
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:8
+msgid "Configure KDiff3"
+msgstr ""
+
+#. i18n: file: kdiff3_part.rc:16
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:11
+msgid "KDiff3"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:106
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:38
+#, fuzzy
+msgid "Main Toolbar"
+msgstr "Aðaltækjaslá"
diff --git a/po/is/kdiff3plugin.po b/po/is/kdiff3plugin.po
new file mode 100644 (file)
index 0000000..9744532
--- /dev/null
@@ -0,0 +1,90 @@
+# translation of kdiff3plugin.po to icelandic
+# Copyright (C) YEAR This_file_is_part_of_KDE
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Sveinn í Felli <sveinki@nett.is>, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3plugin\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2009-06-12 13:35+0000\n"
+"Last-Translator: Sveinn í Felli <sveinki@nett.is>\n"
+"Language-Team: icelandic <kde-isl@molar.is>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: Plural-Forms: nplurals=2; plural=n != 1;\n"
+"\n"
+"\n"
+
+#: kdiff3plugin.cpp:107
+msgid "KDiff3"
+msgstr ""
+
+#: kdiff3plugin.cpp:114
+#, kde-format
+msgid "Compare with %1"
+msgstr ""
+
+#: kdiff3plugin.cpp:120
+#, kde-format
+msgid "Merge with %1"
+msgstr ""
+
+#: kdiff3plugin.cpp:126
+#, kde-format
+msgid "Save '%1' for later"
+msgstr ""
+
+#: kdiff3plugin.cpp:132
+msgid "3-way merge with base"
+msgstr ""
+
+#: kdiff3plugin.cpp:139
+msgid "Compare with ..."
+msgstr ""
+
+#: kdiff3plugin.cpp:149
+#, fuzzy
+msgid "Clear list"
+msgstr "Hreinsa lista"
+
+#: kdiff3plugin.cpp:157
+#, fuzzy
+msgid "Compare"
+msgstr "Bera saman"
+
+#: kdiff3plugin.cpp:163
+msgid "3 way comparison"
+msgstr ""
+
+#: kdiff3plugin.cpp:167
+msgid "About KDiff3 menu plugin ..."
+msgstr ""
+
+#: kdiff3plugin.cpp:269
+msgid ""
+"KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+
+#: kdiff3plugin.cpp:271
+msgid ""
+"Using the context menu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else, \"Save\" the first file for later, and "
+"it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With"
+"\" on the second file.\n"
+"For a 3-way merge first, \"Save\" the base file, then the branch to merge, "
+"and then \"3-way merge with base\" on the other branch which will be used as "
+"the destination.\n"
+"The same also applies to directory comparison and merge."
+msgstr ""
+
+#: kdiff3plugin.cpp:279
+msgid "About KDiff3 Menu Plugin"
+msgstr ""
diff --git a/po/it/CMakeLists.txt b/po/it/CMakeLists.txt
new file mode 100644 (file)
index 0000000..ed46c75
--- /dev/null
@@ -0,0 +1,2 @@
+file(GLOB _po_files *.po)
+GETTEXT_PROCESS_PO_FILES(it ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
diff --git a/po/it/kdiff3.po b/po/it/kdiff3.po
new file mode 100644 (file)
index 0000000..28413b9
--- /dev/null
@@ -0,0 +1,3242 @@
+# translation of kdiff3.po to Italian
+# Copyright (C) 2003, 2004, 2005, 2006, 2007, 2009 Free Software Foundation, Inc.
+#
+# Andrea Celli <andrea.celli@libero.it>, 2003, 2004, 2005.
+# Marcello Anni <marcello.anni@alice.it>, 2006, 2007.
+# Giovanni Venturi <jumpyj@tiscali.it>, 2006.
+# Federico Zenith <federico.zenith@member.fsf.org>, 2009, 2010, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-05-15 15:44+0200\n"
+"Last-Translator: Federico Zenith <federico.zenith@member.fsf.org>\n"
+"Language-Team: Italian <kde-i18n-it@kde.org>\n"
+"Language: it\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.2\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: kreplacements/kreplacements.h:105
+msgid "Continue"
+msgstr "Continua"
+
+#: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158
+#: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512
+msgid "Cancel"
+msgstr "Annulla"
+
+#: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631
+msgid "Quit"
+msgstr "Esci"
+
+#: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339
+msgid "Ok"
+msgstr "Ok"
+
+#: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715
+msgid "Help"
+msgstr "Aiuto"
+
+#: kreplacements/kreplacements.cpp:185
+msgid "Defaults"
+msgstr "Valori predefiniti"
+
+#. i18n: file: kdiff3_shell.rc:4
+#. i18n: ectx: Menu (file)
+#: kreplacements/kreplacements.cpp:296 rc.cpp:14
+msgid "&File"
+msgstr "&File"
+
+#: kreplacements/kreplacements.cpp:297
+msgid "&Edit"
+msgstr "&Modifica"
+
+#. i18n: file: kdiff3_shell.rc:7
+#. i18n: ectx: Menu (directory)
+#: kreplacements/kreplacements.cpp:298 rc.cpp:17
+msgid "&Directory"
+msgstr "&Cartella"
+
+#. i18n: file: kdiff3_shell.rc:50
+#. i18n: ectx: Menu (movement)
+#: kreplacements/kreplacements.cpp:301 rc.cpp:26
+msgid "&Movement"
+msgstr "Mo&vimento"
+
+#. i18n: file: kdiff3_shell.rc:61
+#. i18n: ectx: Menu (diff)
+#: kreplacements/kreplacements.cpp:302 rc.cpp:29
+msgid "D&iffview"
+msgstr "V&ista di confronto"
+
+#. i18n: file: kdiff3_shell.rc:73
+#. i18n: ectx: Menu (merge)
+#: kreplacements/kreplacements.cpp:303 rc.cpp:32
+msgid "&Merge"
+msgstr "F&ondi"
+
+#. i18n: file: kdiff3_shell.rc:95
+#. i18n: ectx: Menu (window)
+#: kreplacements/kreplacements.cpp:304 rc.cpp:35
+msgid "&Window"
+msgstr "Fi&nestra"
+
+#: kreplacements/kreplacements.cpp:305
+msgid "&Settings"
+msgstr "Imp&ostazioni"
+
+#: kreplacements/kreplacements.cpp:306
+msgid "&Help"
+msgstr "Ai&uto"
+
+#: kreplacements/kreplacements.cpp:353
+msgid "&About"
+msgstr "&Informazioni"
+
+#: kreplacements/kreplacements.cpp:369
+msgid "A&uthor"
+msgstr "A&utore"
+
+#: kreplacements/kreplacements.cpp:383
+msgid "&Thanks To"
+msgstr "&Ringraziamenti"
+
+#. i18n: file: kdiff3_shell.rc:30
+#. i18n: ectx: Menu (dir_current_merge_menu)
+#: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497
+#: rc.cpp:20
+msgid "Current Item Merge Operation"
+msgstr "Operazione di fusione dell'elemento attuale"
+
+#. i18n: file: kdiff3_shell.rc:38
+#. i18n: ectx: Menu (dir_current_sync_menu)
+#: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498
+#: rc.cpp:23
+msgid "Current Item Sync Operation"
+msgstr "Operazione di sincronizzazione dell'elemento attuale"
+
+#: kreplacements/kreplacements.cpp:597
+msgid "Open"
+msgstr "Apri"
+
+#: kreplacements/kreplacements.cpp:606
+msgid "Save"
+msgstr "Salva"
+
+#: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720
+msgid "Save As..."
+msgstr "Salva come..."
+
+#: kreplacements/kreplacements.cpp:623
+msgid "Print..."
+msgstr "Stampa..."
+
+#: kreplacements/kreplacements.cpp:639
+msgid "Cut"
+msgstr "Taglia"
+
+#: kreplacements/kreplacements.cpp:647
+msgid "Copy"
+msgstr "Copia"
+
+#: kreplacements/kreplacements.cpp:655
+msgid "Paste"
+msgstr "Incolla"
+
+#: kreplacements/kreplacements.cpp:663
+msgid "Select All"
+msgstr "Seleziona tutto"
+
+#: kreplacements/kreplacements.cpp:671
+msgid "Show Toolbar"
+msgstr "Mostra la barra degli strumenti"
+
+#: kreplacements/kreplacements.cpp:679
+msgid "Show &Status Bar"
+msgstr "Mostra la barra di &stato"
+
+#: kreplacements/kreplacements.cpp:687
+#, kde-format
+msgid "&Configure %1..."
+msgstr "&Configura %1..."
+
+#: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707
+msgid "About"
+msgstr "Informazioni"
+
+#: kreplacements/kreplacements.cpp:722
+msgid "Find"
+msgstr "Trova"
+
+#: kreplacements/kreplacements.cpp:730
+msgid "Find Next"
+msgstr "Trova successivo"
+
+#: kreplacements/kreplacements.cpp:750
+msgid "Select Font"
+msgstr "Seleziona carattere"
+
+#: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676
+msgid ""
+"You selected a variable width font.\n"
+"\n"
+"Because this program doesn't handle variable width fonts\n"
+"correctly, you might experience problems while editing.\n"
+"\n"
+"Do you want to continue or do you want to select another font."
+msgstr ""
+"Hai selezionato un carattere a ampiezza variabile.\n"
+"\n"
+"Siccome questo programma non gestisce correttamente questo\n"
+"tipo di caratteri, potresti avere problemi a modificare i file.\n"
+"\n"
+"Vuoi continuare o preferisci cambiare carattere?"
+
+#: kreplacements/kreplacements.cpp:792
+msgid "Incompatible font."
+msgstr "Carattere non compatibile."
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Continue at my own risk"
+msgstr "Continuo a mio rischio"
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Select another font"
+msgstr "Seleziona un altro carattere"
+
+#: kreplacements/kreplacements.cpp:1134
+msgid "For more documentation, see the help-menu or the subdirectory doc."
+msgstr ""
+"Per maggiore documentazione, vedi il menu «Aiuto» o la sottocartella doc."
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "KDiff3-Usage"
+msgstr "Uso di KDiff3"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Ignore"
+msgstr "Ignora"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Exit"
+msgstr "Esci"
+
+#: diff.cpp:251
+msgid "Writing clipboard data to temp file failed."
+msgstr "La copia da appunti a file temporaneo non è riuscita."
+
+#: diff.cpp:255
+msgid "From Clipboard"
+msgstr "Dagli appunti"
+
+#: diff.cpp:471
+msgid "Expecting space after closing quotation mark."
+msgstr "Atteso spazio dopo virgolette di chiusura."
+
+#: diff.cpp:474
+msgid "Not matching quotation marks."
+msgstr "Virgolette corrisponenti mancanti."
+
+#: diff.cpp:496
+msgid "Unexpected quotation mark within argument."
+msgstr "Virgolette inattese in argomento."
+
+#: diff.cpp:503
+msgid "No program specified."
+msgstr "Nessun programma specificato"
+
+#: diff.cpp:605
+#, kde-format
+msgid ""
+"Preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The preprocessing command will be disabled now."
+msgstr ""
+"La pre-elaborazione non sembra riuscita. Controlla questo comando:\n"
+"\n"
+"  %1\n"
+"\n"
+"Il comando di pre-elaborazione verrà ora disabilitato."
+
+#: diff.cpp:653
+#, kde-format
+msgid ""
+"The line-matching-preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The line-matching-preprocessing command will be disabled now."
+msgstr ""
+"La pre-ricerca di righe simili non sembra riuscita. Controlla questo "
+"comando:\n"
+"\n"
+"  %1\n"
+"\n"
+"Il comando di pre-ricerca di righe simili verrà ora disabilitato."
+
+#: diff.cpp:1776 diff.cpp:1790
+msgid ""
+"Data loss error:\n"
+"If it is reproducible please contact the author.\n"
+msgstr ""
+"Errore: perdita dati\n"
+"Se è riproducibile, sei pregato di segnalarlo all'autore.\n"
+
+#: diff.cpp:1778 diff.cpp:1792
+msgid "Severe Internal Error"
+msgstr "Grave errore interno"
+
+#: directorymergewindow.cpp:136
+msgid "Mix of links and normal files."
+msgstr "Insieme di collegamenti e file normali."
+
+#: directorymergewindow.cpp:143
+msgid "Link: "
+msgstr "Collegamento: "
+
+#: directorymergewindow.cpp:151
+msgid "Size. "
+msgstr "Dimensione. "
+
+#: directorymergewindow.cpp:164 directorymergewindow.cpp:174
+msgid "Date & Size: "
+msgstr "Data e dimensione: "
+
+#: directorymergewindow.cpp:184 directorymergewindow.cpp:190
+#, kde-format
+msgid "Creating temp copy of %1 failed."
+msgstr "Creazione di una copia temporanea di %1 non riuscita."
+
+#: directorymergewindow.cpp:201 directorymergewindow.cpp:209
+#, kde-format
+msgid "Opening %1 failed."
+msgstr "Apertura di %1 non riuscita."
+
+#: directorymergewindow.cpp:213
+msgid "Comparing file..."
+msgstr "Confronto del file..."
+
+#: directorymergewindow.cpp:223 directorymergewindow.cpp:229
+#, kde-format
+msgid "Error reading from %1"
+msgstr "Errore nella lettura di %1"
+
+#: directorymergewindow.cpp:358
+msgid "Name"
+msgstr "Nome"
+
+#: directorymergewindow.cpp:358
+msgid "Operation"
+msgstr "Operazione"
+
+#: directorymergewindow.cpp:358
+msgid "Status"
+msgstr "Stato"
+
+#: directorymergewindow.cpp:359
+msgid "Unsolved"
+msgstr "Non risolto"
+
+#: directorymergewindow.cpp:359
+msgid "Solved"
+msgstr "Risolto"
+
+#: directorymergewindow.cpp:359
+msgid "Nonwhite"
+msgstr "Non vuoto"
+
+#: directorymergewindow.cpp:359
+msgid "White"
+msgstr "Vuoto"
+
+#: directorymergewindow.cpp:388
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort "
+"the merge and rescan the directory?"
+msgstr ""
+"Stai fondendo delle cartelle. Sei sicuro di voler interrompere la fusione e "
+"riesaminare la cartella?"
+
+#: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655
+#: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823
+msgid "Warning"
+msgstr "Avviso"
+
+#: directorymergewindow.cpp:390 directorymergewindow.cpp:2965
+msgid "Rescan"
+msgstr "Riesamina"
+
+#: directorymergewindow.cpp:391 pdiff.cpp:1081
+msgid "Continue Merging"
+msgstr "Continua la fusione"
+
+#: directorymergewindow.cpp:548
+msgid "Opening of directories failed:"
+msgstr "Apertura di cartelle non riuscita:"
+
+#: directorymergewindow.cpp:551
+#, kde-format
+msgid "Dir A \"%1\" does not exist or is not a directory.\n"
+msgstr "La cartella A «%1» non esiste o non è una cartella.\n"
+
+#: directorymergewindow.cpp:554
+#, kde-format
+msgid "Dir B \"%1\" does not exist or is not a directory.\n"
+msgstr ""
+"La cartella B «%1» non esiste o non è una cartella.\n"
+".\n"
+
+#: directorymergewindow.cpp:557
+#, kde-format
+msgid "Dir C \"%1\" does not exist or is not a directory.\n"
+msgstr "La cartella C «%1» non esiste o non è una cartella.\n"
+
+#: directorymergewindow.cpp:559
+msgid "Directory Open Error"
+msgstr "Errore nell'apertura di una cartella"
+
+#: directorymergewindow.cpp:567
+msgid ""
+"The destination directory must not be the same as A or B when three "
+"directories are merged.\n"
+"Check again before continuing."
+msgstr ""
+"La cartella di destinazione non può essere la stessa di A o B quando si "
+"fondono tre cartelle.\n"
+"Ricontrolla prima di continuare."
+
+#: directorymergewindow.cpp:569
+msgid "Parameter Warning"
+msgstr "Attenzione ai parametri"
+
+#: directorymergewindow.cpp:574
+msgid "Scanning directories..."
+msgstr "Esame delle cartelle..."
+
+#: directorymergewindow.cpp:607
+msgid "Reading Directory A"
+msgstr "Lettura della cartella A"
+
+#: directorymergewindow.cpp:629
+msgid "Reading Directory B"
+msgstr "Lettura della cartella B"
+
+#: directorymergewindow.cpp:651
+msgid "Reading Directory C"
+msgstr "Lettura della cartella C"
+
+#: directorymergewindow.cpp:677
+msgid "Some subdirectories were not readable in"
+msgstr "Alcune sottocartelle non erano leggibili"
+
+#: directorymergewindow.cpp:682
+msgid "Check the permissions of the subdirectories."
+msgstr "Controlla i permessi per le sottocartelle."
+
+#: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737
+#: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233
+#: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328
+msgid "Ready."
+msgstr "Pronto."
+
+#: directorymergewindow.cpp:735
+msgid "Directory Comparison Status"
+msgstr "Stato del confronto tra cartelle"
+
+#: directorymergewindow.cpp:736
+msgid "Number of subdirectories:"
+msgstr "Numero di sottocartelle:"
+
+#: directorymergewindow.cpp:737
+msgid "Number of equal files:"
+msgstr "Numero di file uguali:"
+
+#: directorymergewindow.cpp:738
+msgid "Number of different files:"
+msgstr "Numero di file diversi:"
+
+#: directorymergewindow.cpp:741
+msgid "Number of manual merges:"
+msgstr "Numero di fusioni manuali:"
+
+#: directorymergewindow.cpp:912
+msgid "This affects all merge operations."
+msgstr "Questo riguarda tutte le operazioni di fusione."
+
+#: directorymergewindow.cpp:913
+msgid "Changing All Merge Operations"
+msgstr "Modifica di tutte le operazioni di fusione"
+
+#: directorymergewindow.cpp:1312
+msgid "Processing "
+msgstr "Elaborazione in corso "
+
+#: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742
+msgid "To do."
+msgstr "Da fare."
+
+#: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996
+msgid "Copy A to B"
+msgstr "Copia A su B"
+
+#: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997
+msgid "Copy B to A"
+msgstr "Copia B su A"
+
+#: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998
+msgid "Delete A"
+msgstr "Elimina A"
+
+#: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999
+msgid "Delete B"
+msgstr "Elimina B"
+
+#: directorymergewindow.cpp:1814
+msgid "Delete A & B"
+msgstr "Elimina A e B"
+
+#: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001
+msgid "Merge to A"
+msgstr "Fondi con A"
+
+#: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002
+msgid "Merge to B"
+msgstr "Fondi con B"
+
+#: directorymergewindow.cpp:1817
+msgid "Merge to A & B"
+msgstr "Fondi con A e B"
+
+#: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993
+msgid "Delete (if exists)"
+msgstr "Elimina (se esiste)"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+#: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869
+msgid "Merge"
+msgstr "Fondi"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+msgid "Merge (manual)"
+msgstr "Fondi (manuale)"
+
+#: directorymergewindow.cpp:1824
+msgid "Error: Conflicting File Types"
+msgstr "Errore: tipi di file in conflitto"
+
+#: directorymergewindow.cpp:1825
+msgid "Error: Changed and Deleted"
+msgstr "Errore: modificato ed eliminato."
+
+#: directorymergewindow.cpp:1826
+msgid "Error: Dates are equal but files are not."
+msgstr "Errore: le date coincidono ma i file sono diversi."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906
+msgid "This operation is currently not possible."
+msgstr "Questa operazione non è attualmente possibile."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174
+msgid "Operation Not Possible"
+msgstr "Operazione non possibile"
+
+#: directorymergewindow.cpp:1945
+msgid ""
+"This should never happen: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"If you know how to reproduce this, please contact the program author."
+msgstr ""
+"Questo non dovrebbe mai succedere:\n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"Se sai come riprodurlo, per favore comunicalo all'autore del programma."
+
+#: directorymergewindow.cpp:1945
+msgid "Program Error"
+msgstr "Errore nel programma"
+
+#: directorymergewindow.cpp:1956
+msgid "An error occurred while copying.\n"
+msgstr "Si è verificato un errore durante la copia.\n"
+
+#: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025
+#: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105
+#: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123
+#: directorymergewindow.cpp:2374
+msgid "Error"
+msgstr "Errore"
+
+#: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375
+msgid "Merge Error"
+msgstr "Errore di fusione"
+
+#: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380
+msgid "Error."
+msgstr "Errore."
+
+#: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272
+#: directorymergewindow.cpp:2312
+msgid "Done."
+msgstr "Fatto."
+
+#: directorymergewindow.cpp:1990
+msgid "Not saved."
+msgstr "Non salvato."
+
+#: directorymergewindow.cpp:2025
+msgid "Unknown merge operation. (This must never happen!)"
+msgstr "Operazione di fusione sconosciuta (non deve mai succedere)."
+
+#: directorymergewindow.cpp:2057
+msgid "Unknown merge operation."
+msgstr "Operazione di fusione sconosciuta."
+
+#: directorymergewindow.cpp:2072
+msgid ""
+"The merge is about to begin.\n"
+"\n"
+"Choose \"Do it\" if you have read the instructions and know what you are "
+"doing.\n"
+"Choosing \"Simulate it\" will tell you what would happen.\n"
+"\n"
+"Be aware that this program still has beta status and there is NO WARRANTY "
+"whatsoever! Make backups of your vital data!"
+msgstr ""
+"La fusione sta per iniziare.\n"
+"\n"
+"Scegli «Procedi» se hai letto le istruzioni e sai cosa stai facendo.\n"
+"\n"
+"Scegli «Simula» per vedere cosa succederebbe.\n"
+"\n"
+"Stai attento perché questo programma è ancora una «beta» e non c'è "
+"<b>nessuna garanzia</b> che funzioni! Fai una copia di sicurezza dei tuoi "
+"dati importanti!"
+
+#: directorymergewindow.cpp:2077
+msgid "Starting Merge"
+msgstr "Inizio della fusione"
+
+#: directorymergewindow.cpp:2078
+msgid "Do It"
+msgstr "Procedi"
+
+#: directorymergewindow.cpp:2079
+msgid "Simulate It"
+msgstr "Simula"
+
+#: directorymergewindow.cpp:2105
+msgid ""
+"The highlighted item has a different type in the different directories. "
+"Select what to do."
+msgstr ""
+"L'elemento evidenziato è di diverso tipo nelle diverse cartelle. Scegli cosa "
+"fare."
+
+#: directorymergewindow.cpp:2114
+msgid ""
+"The modification dates of the file are equal but the files are not. Select "
+"what to do."
+msgstr ""
+"Le date di modifica dei file sono uguali ma i file sono diversi. Scegli cosa "
+"fare."
+
+#: directorymergewindow.cpp:2123
+msgid ""
+"The highlighted item was changed in one directory and deleted in the other. "
+"Select what to do."
+msgstr ""
+"L'elemento evidenziato è stato modificato in una cartella ed eliminato "
+"nell'altra. Scegli cosa fare."
+
+#: directorymergewindow.cpp:2174
+msgid ""
+"This operation is currently not possible because directory merge is "
+"currently running."
+msgstr ""
+"Attualmente non si può effettuare questa operazione perché è in corso una "
+"fusione tra cartelle."
+
+#: directorymergewindow.cpp:2234
+msgid ""
+"There was an error in the last step.\n"
+"Do you want to continue with the item that caused the error or do you want "
+"to skip this item?"
+msgstr ""
+"Si è verificato un errore nell'ultimo passaggio.\n"
+"Vuoi continuare con l'elemento che ha provocato l'errore o vuoi saltarlo?"
+
+#: directorymergewindow.cpp:2236
+msgid "Continue merge after an error"
+msgstr "Continua la fusione dopo un errore"
+
+#: directorymergewindow.cpp:2237
+msgid "Continue With Last Item"
+msgstr "Continua con l'ultimo"
+
+#: directorymergewindow.cpp:2238
+msgid "Skip Item"
+msgstr "Saltalo"
+
+#: directorymergewindow.cpp:2272
+msgid "Skipped."
+msgstr "Saltato."
+
+#: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493
+msgid "In progress..."
+msgstr "In esecuzione..."
+
+#: directorymergewindow.cpp:2327
+msgid "Merge operation complete."
+msgstr "Operazione di fusione completata."
+
+#: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330
+msgid "Merge Complete"
+msgstr "Fusione completata"
+
+#: directorymergewindow.cpp:2340
+msgid ""
+"Simulated merge complete: Check if you agree with the proposed operations."
+msgstr ""
+"Fusione simulata completata: controlla se ti vanno bene le operazioni "
+"proposte."
+
+#: directorymergewindow.cpp:2374
+msgid "An error occurred. Press OK to see detailed information.\n"
+msgstr "Si è verificato un errore. Premi OK per maggiori informazioni.\n"
+
+#: directorymergewindow.cpp:2406
+#, kde-format
+msgid "Error: While deleting %1: Creating backup failed."
+msgstr "Errore: nell'eliminare %1: impossibile creare una copia di sicurezza."
+
+#: directorymergewindow.cpp:2413
+#, kde-format
+msgid "delete directory recursively( %1 )"
+msgstr "elimina cartella ricorsivamente (%1)"
+
+#: directorymergewindow.cpp:2415
+#, kde-format
+msgid "delete( %1 )"
+msgstr "elimina (%1)"
+
+#: directorymergewindow.cpp:2430
+msgid "Error: delete dir operation failed while trying to read the directory."
+msgstr ""
+"Errore: eliminazione della cartella non riuscita durante la sua lettura."
+
+#: directorymergewindow.cpp:2449
+#, kde-format
+msgid "Error: rmdir( %1 ) operation failed."
+msgstr "Errore: operazione di rimozione di una cartella (%1) non riuscita."
+
+#: directorymergewindow.cpp:2459
+msgid "Error: delete operation failed."
+msgstr "Errore: eliminazione non riuscita."
+
+#: directorymergewindow.cpp:2485
+#, kde-format
+msgid "manual merge( %1, %2, %3 -> %4)"
+msgstr "fusione manuale (%1, %2,%3 -> %4)"
+
+#: directorymergewindow.cpp:2488
+msgid ""
+"     Note: After a manual merge the user should continue by pressing F7."
+msgstr ""
+"     Nota: dopo una fusione manuale l'utente dovrebbe premere F7 per "
+"continuare."
+
+#: directorymergewindow.cpp:2513
+#, kde-format
+msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed."
+msgstr ""
+"Errore: copia (%1 -> %2) non riuscita. Eliminazione della destinazione "
+"esistente non riuscita."
+
+#: directorymergewindow.cpp:2522
+#, kde-format
+msgid "copyLink( %1 -> %2 )"
+msgstr "copia collegamento (%1 -> %2)"
+
+#: directorymergewindow.cpp:2533
+msgid "Error: copyLink failed: Remote links are not yet supported."
+msgstr ""
+"Errore: copia di collegamento non riuscita: i collegamenti remoti non sono "
+"ancora supportati."
+
+#: directorymergewindow.cpp:2539
+msgid "Error: copyLink failed."
+msgstr "Errore: copia di collegamento non riuscita."
+
+#: directorymergewindow.cpp:2564
+#, kde-format
+msgid "copy( %1 -> %2 )"
+msgstr "copia (%1 -> %2)"
+
+#: directorymergewindow.cpp:2590
+#, kde-format
+msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination."
+msgstr ""
+"Errore nella rinomina (%1 -> %2): impossibile eliminare la destinazione "
+"esistente."
+
+#: directorymergewindow.cpp:2596
+#, kde-format
+msgid "rename( %1 -> %2 )"
+msgstr "rinomina (%1 -> %2)"
+
+#: directorymergewindow.cpp:2605
+msgid "Error: Rename failed."
+msgstr "Errore: rinomina non riuscita."
+
+#: directorymergewindow.cpp:2623
+#, kde-format
+msgid "Error during makeDir of %1. Cannot delete existing file."
+msgstr ""
+"Errore durante la creazione della cartella %1. Impossibile eliminare un file "
+"esistente."
+
+#: directorymergewindow.cpp:2639
+#, kde-format
+msgid "makeDir( %1 )"
+msgstr "crea cartella (%1)"
+
+#: directorymergewindow.cpp:2649
+msgid "Error while creating directory."
+msgstr "Errore nella creazione di una cartella."
+
+#: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784
+msgid "Dest"
+msgstr "Destinazione"
+
+#: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709
+msgid "Dir"
+msgstr "Cartella"
+
+#: directorymergewindow.cpp:2678
+msgid "Type"
+msgstr "Tipo"
+
+#: directorymergewindow.cpp:2678
+msgid "Size"
+msgstr "Dimensione"
+
+#: directorymergewindow.cpp:2679
+msgid "Attr"
+msgstr "Attributo"
+
+#: directorymergewindow.cpp:2679
+msgid "Last Modification"
+msgstr "Ultima modifica"
+
+#: directorymergewindow.cpp:2679
+msgid "Link-Destination"
+msgstr "Destinazione del collegamento"
+
+#: directorymergewindow.cpp:2709 difftextwindow.cpp:401
+msgid "File"
+msgstr "File"
+
+#: directorymergewindow.cpp:2726
+msgid "not available"
+msgstr "non disponibile"
+
+#: directorymergewindow.cpp:2746
+msgid "A (Dest): "
+msgstr "A (destinazione): "
+
+#: directorymergewindow.cpp:2749
+msgid "A (Base): "
+msgstr "A (base): "
+
+#: directorymergewindow.cpp:2755
+msgid "B (Dest): "
+msgstr "B (destinazione): "
+
+#: directorymergewindow.cpp:2763
+msgid "C (Dest): "
+msgstr "C (destinazione): "
+
+#: directorymergewindow.cpp:2769
+msgid "Dest: "
+msgstr "Destinazione: "
+
+#: directorymergewindow.cpp:2836
+msgid "Save Directory Merge State As..."
+msgstr "Salva lo stato di fusione tra cartelle come..."
+
+#: directorymergewindow.cpp:2959
+msgid "Start/Continue Directory Merge"
+msgstr "Avvia o continua fusione tra cartelle"
+
+#: directorymergewindow.cpp:2960
+msgid "Run Operation for Current Item"
+msgstr "Esegui operazione sull'elemento attuale"
+
+#: directorymergewindow.cpp:2961
+msgid "Compare Selected File"
+msgstr "Confronta il file selezionato"
+
+#: directorymergewindow.cpp:2962
+msgid "Merge Current File"
+msgstr "Fondi il file attuale"
+
+#: directorymergewindow.cpp:2962
+msgid ""
+"Merge\n"
+"File"
+msgstr ""
+"Fondi\n"
+"file"
+
+#: directorymergewindow.cpp:2963
+msgid "Fold All Subdirs"
+msgstr "Chiudi tutte le sottocartelle"
+
+#: directorymergewindow.cpp:2964
+msgid "Unfold All Subdirs"
+msgstr "Apri tutte le sottocartelle"
+
+#: directorymergewindow.cpp:2968
+msgid "Choose A for All Items"
+msgstr "Scegli A per tutti gli elementi"
+
+#: directorymergewindow.cpp:2969
+msgid "Choose B for All Items"
+msgstr "Scegli B per tutti gli elementi"
+
+#: directorymergewindow.cpp:2970
+msgid "Choose C for All Items"
+msgstr "Scegli C per tutti gli elementi"
+
+#: directorymergewindow.cpp:2971
+msgid "Auto-Choose Operation for All Items"
+msgstr "Operazione di scelta automatica per tutti gli elementi"
+
+#: directorymergewindow.cpp:2972
+msgid "No Operation for All Items"
+msgstr "Nessuna operazione per tutti gli elementi"
+
+#: directorymergewindow.cpp:2977
+msgid "Show Identical Files"
+msgstr "Mostra file identici"
+
+#: directorymergewindow.cpp:2977
+msgid ""
+"Identical\n"
+"Files"
+msgstr ""
+"File\n"
+"identici"
+
+#: directorymergewindow.cpp:2978
+msgid "Show Different Files"
+msgstr "Mostra file diversi"
+
+#: directorymergewindow.cpp:2979
+msgid "Show Files only in A"
+msgstr "Mostra file solo in A"
+
+#: directorymergewindow.cpp:2979
+msgid ""
+"Files\n"
+"only in A"
+msgstr ""
+"File\n"
+"solo in A"
+
+#: directorymergewindow.cpp:2980
+msgid "Show Files only in B"
+msgstr "Mostra file solo in B"
+
+#: directorymergewindow.cpp:2980
+msgid ""
+"Files\n"
+"only in B"
+msgstr ""
+"File\n"
+"solo in B"
+
+#: directorymergewindow.cpp:2981
+msgid "Show Files only in C"
+msgstr "Mostra file solo in C"
+
+#: directorymergewindow.cpp:2981
+msgid ""
+"Files\n"
+"only in C"
+msgstr ""
+"File\n"
+"solo in C"
+
+#: directorymergewindow.cpp:2985
+msgid "Compare Explicitly Selected Files"
+msgstr "Confronta file selezionati esplicitamente"
+
+#: directorymergewindow.cpp:2986
+msgid "Merge Explicitly Selected Files"
+msgstr "Fondi file selezionati esplicitamente"
+
+#: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995
+msgid "Do Nothing"
+msgstr "Non fare nulla"
+
+#: directorymergewindow.cpp:2989
+msgid "A"
+msgstr "A"
+
+#: directorymergewindow.cpp:2990
+msgid "B"
+msgstr "B"
+
+#: directorymergewindow.cpp:2991
+msgid "C"
+msgstr "C"
+
+#: directorymergewindow.cpp:3000
+msgid "Delete A && B"
+msgstr "Elimina A e B"
+
+#: directorymergewindow.cpp:3003
+msgid "Merge to A && B"
+msgstr "Fondi con A e B"
+
+#: main.cpp:74 main.cpp:76
+msgid "Ignored. (User defined.)"
+msgstr "Ignorato. (definito dall'utente)"
+
+#: main.cpp:162
+msgid "kdiff3"
+msgstr "kdiff3"
+
+#: main.cpp:164
+msgid "Tool for Comparison and Merge of Files and Directories"
+msgstr "Strumento per il confronto e la fusione di file e cartelle"
+
+#: main.cpp:165
+msgid "(c) 2002-2011 Joachim Eibl"
+msgstr "© 2002-2011 Joachim Eibl"
+
+#: main.cpp:172 kdiff3_part.cpp:303
+msgid "Joachim Eibl"
+msgstr "Joachim Eibl"
+
+#: main.cpp:173
+msgid "Eike Sauer"
+msgstr "Eike Sauer"
+
+#: main.cpp:173
+msgid "Bugfixes, Debian package maintainer"
+msgstr "Correzioni, responsabile del pacchetto di Debian"
+
+#: main.cpp:174
+msgid "Sebastien Fricker"
+msgstr "Sebastien Fricker"
+
+#: main.cpp:174
+msgid "Windows installer"
+msgstr "Installatore per Windows"
+
+#: main.cpp:175
+msgid "Stephan Binner"
+msgstr "Stephan Binner"
+
+#: main.cpp:175
+msgid "i18n-help"
+msgstr "Aiuto per la localizzazione"
+
+#: main.cpp:176
+msgid "Stefan Partheymueller"
+msgstr "Stefan Partheymueller"
+
+#: main.cpp:176
+msgid "Clipboard-patch"
+msgstr "Correzione per gli appunti"
+
+#: main.cpp:177
+msgid "David Faure"
+msgstr "David Faure"
+
+#: main.cpp:177
+msgid "KIO-Help"
+msgstr "Aiuto per KIO"
+
+#: main.cpp:178
+msgid "Bernd Gehrmann"
+msgstr "Bernd Gehrmann"
+
+#: main.cpp:178
+msgid "Class CvsIgnoreList from Cervisia"
+msgstr "Classe CvsIgnoreList da Cervisia"
+
+#: main.cpp:179
+msgid "Andre Woebbeking"
+msgstr "Andre Woebbeking"
+
+#: main.cpp:179
+msgid "Class StringMatcher"
+msgstr "Classe StringMatcher"
+
+#: main.cpp:180
+msgid "Michael Denio"
+msgstr "Michael Denio"
+
+#: main.cpp:180
+msgid "Directory Equality-Coloring patch"
+msgstr "Correzione per la colorazione delle cartelle identiche"
+
+#: main.cpp:181
+msgid "Manfred Koehler"
+msgstr "Manfred Koehler"
+
+#: main.cpp:181
+msgid "Fix for slow startup on Windows"
+msgstr "Correzione per l'avvio lento su Windows"
+
+#: main.cpp:182
+msgid "Sergey Zorin"
+msgstr "Sergey Zorin"
+
+#: main.cpp:182
+msgid "Diff Ext for Windows"
+msgstr "Estensione per le differenze su Windows"
+
+#: main.cpp:183
+msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+
+#: main.cpp:183
+msgid "GNU-Diffutils"
+msgstr "Diffutils di GNU"
+
+#: main.cpp:184
+msgid "Tino Boellsterling, Timothy Mee"
+msgstr "Tino Boellsterling, Timothy Mee"
+
+#: main.cpp:184
+msgid "Intensive test, use and feedback"
+msgstr "Molte prove, uso e segnalazioni"
+
+#: main.cpp:185
+msgid "Michael Schmidt"
+msgstr "Michael Schmidt"
+
+#: main.cpp:185
+msgid "Mac support"
+msgstr "Supporto su Macintosh"
+
+#: main.cpp:186
+msgid "Valentin Rusu"
+msgstr "Valentin Rusu"
+
+#: main.cpp:186 main.cpp:187
+msgid "KDE4 porting"
+msgstr "Trasferimento su KDE4"
+
+#: main.cpp:187
+msgid "Albert Astals Cid"
+msgstr "Albert Astals Cid"
+
+#: main.cpp:188
+msgid "Silvan Scherrer"
+msgstr "Silvan Scherrer"
+
+#: main.cpp:188
+msgid "OS2 port"
+msgstr "Trasferimento su OS2"
+
+#: main.cpp:190
+msgid "+ Many thanks to those who reported bugs and contributed ideas!"
+msgstr "E grazie mille a chi ha segnalato errori o fornito idee!"
+
+#: main.cpp:196
+msgid "Merge the input."
+msgstr "Fondi l'ingresso."
+
+#: main.cpp:197
+msgid "Explicit base file. For compatibility with certain tools."
+msgstr "File di base esplicito. Per compatibilità con certi programmi."
+
+#: main.cpp:198
+msgid "Output file. Implies -m. E.g.: -o newfile.txt"
+msgstr "File di uscita. Implica «-m». Per esempio: -o file_nuovo.txt"
+
+#: main.cpp:199
+msgid "Output file, again. (For compatibility with certain tools.)"
+msgstr "File di uscita, di nuovo. Per compatibilità con certi programmi."
+
+#: main.cpp:200
+msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)"
+msgstr ""
+"Senza interfaccia se ogni conflitto è risolvibile automaticamente. Serve «-o "
+"file»."
+
+#: main.cpp:201
+msgid "Don't solve conflicts automatically. (For compatibility...)"
+msgstr "Non risolvere i conflitti automaticamente. Per compatibilità."
+
+#: main.cpp:202
+msgid "Visible name replacement for input file 1 (base)."
+msgstr "Mostra sostituzione del nome per il file di ingresso 1 (base)."
+
+#: main.cpp:203
+msgid "Visible name replacement for input file 2."
+msgstr "Mostra sostituzione del nome per il file di ingresso 2."
+
+#: main.cpp:204
+msgid "Visible name replacement for input file 3."
+msgstr "Mostra sostituzione del nome per il file di ingresso 3."
+
+#: main.cpp:205
+msgid "Alternative visible name replacement. Supply this once for every input."
+msgstr ""
+"Sostituzione del nome visibile alternativo. Da specificare una volta per "
+"ogni ingresso."
+
+#: main.cpp:206
+msgid ""
+"Override a config setting. Use once for every setting. E.g.: --cs "
+"\"AutoAdvance=1\""
+msgstr ""
+"Ignora un'impostazione di configurazione. Usa una volta per ogni "
+"impostazione. Per esempio: «--cs \"AutoAdvance=1\"»"
+
+#: main.cpp:207
+msgid "Show list of config settings and current values."
+msgstr ""
+"Mostra la lista delle impostazioni di configurazione e i valori attuali."
+
+#: main.cpp:208
+msgid "Use a different config file."
+msgstr "Usa un file di configurazione diverso."
+
+#: main.cpp:211
+msgid "file1 to open (base, if not specified via --base)"
+msgstr "File1 da aprire (base, se non specificato con «--base»)"
+
+#: main.cpp:212
+msgid "file2 to open"
+msgstr "File2 da aprire"
+
+#: main.cpp:213
+msgid "file3 to open"
+msgstr "File3 da aprire"
+
+#: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976
+#: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002
+#: mergeresultwindow.cpp:1014
+#, kde-format
+msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)"
+msgstr "Numero di conflitti non ancora risolti: %1 (di cui %2 sono di spazi)"
+
+#: mergeresultwindow.cpp:303
+msgid ""
+"The output has been modified.\n"
+"If you continue your changes will be lost."
+msgstr ""
+"L'uscita è stata modificata.\n"
+"Se continui le modifiche andranno perse."
+
+#: mergeresultwindow.cpp:834 pdiff.cpp:532
+msgid "All input files are binary equal."
+msgstr "Tutti i file di ingresso sono uguali a livello binario."
+
+#: mergeresultwindow.cpp:836
+msgid "All input files contain the same text."
+msgstr "Tutti i file di ingresso contengono lo stesso testo."
+
+#: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840
+#: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540
+#, kde-format
+msgid "Files %1 and %2 are binary equal.\n"
+msgstr "I file %1 e %2 sono uguali a livello binario.\n"
+
+#: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841
+#: mergeresultwindow.cpp:843
+#, kde-format
+msgid "Files %1 and %2 have equal text.\n"
+msgstr "I file %1 e %2 hanno lo stesso testo.\n"
+
+#: mergeresultwindow.cpp:849
+msgid "Total number of conflicts: "
+msgstr "Numero totale di conflitti: "
+
+#: mergeresultwindow.cpp:850
+msgid ""
+"\n"
+"Nr of automatically solved conflicts: "
+msgstr ""
+"\n"
+"Nº di conflitti risolti automaticamente: "
+
+#: mergeresultwindow.cpp:851
+msgid ""
+"\n"
+"Nr of unsolved conflicts: "
+msgstr ""
+"\n"
+"Nº di conflitti non risolti: "
+
+#: mergeresultwindow.cpp:853
+msgid "Conflicts"
+msgstr "Conflitti"
+
+#: mergeresultwindow.cpp:1728
+msgid "<No src line>"
+msgstr "<riga sorgente mancante>"
+
+#: mergeresultwindow.cpp:1736
+msgid "<Merge Conflict (Whitespace only)>"
+msgstr "<Conflitto di fusione (di soli spazi)>"
+
+#: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517
+msgid "<Merge Conflict>"
+msgstr "<Conflitto di fusione>"
+
+#: mergeresultwindow.cpp:2725
+msgid ""
+"Not all conflicts are solved yet.\n"
+"File not saved.\n"
+msgstr ""
+"Non sono ancora risolti tutti i conflitti.\n"
+"File non salvato.\n"
+
+#: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736
+msgid "Conflicts Left"
+msgstr "Conflitti rimanenti"
+
+#: mergeresultwindow.cpp:2734
+msgid ""
+"There is a line end style conflict. Please choose the line end style "
+"manually.\n"
+"File not saved.\n"
+msgstr ""
+"C'è un conflitto di stili di fine riga. Seleziona manualmente lo stile.\n"
+"File non salvato.\n"
+
+#: mergeresultwindow.cpp:2748
+msgid ""
+"\n"
+"\n"
+"Creating backup failed. File not saved."
+msgstr ""
+"\n"
+"\n"
+"Creazione della copia di sicurezza non riuscita. File non salvato."
+
+#: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792
+msgid "File Save Error"
+msgstr "Errore nel salvataggio del file"
+
+#: mergeresultwindow.cpp:2792
+msgid "Error while writing."
+msgstr "Errore in scrittura."
+
+#: mergeresultwindow.cpp:3122
+msgid "Output"
+msgstr "Uscita"
+
+#: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314
+msgid "[Modified]"
+msgstr "[Modificato]"
+
+#: mergeresultwindow.cpp:3141
+msgid "Encoding for saving"
+msgstr "Codifica per il salvataggio"
+
+#: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737
+#: optiondialog.cpp:762
+msgid "Line end style:"
+msgstr "Tipo di fine riga:"
+
+#: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767
+msgid "Unix"
+msgstr "Unix"
+
+#: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737
+msgid "DOS"
+msgstr "DOS"
+
+#: mergeresultwindow.cpp:3229
+msgid "Conflict"
+msgstr "Conflitto"
+
+#: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263
+#: mergeresultwindow.cpp:3265
+msgid "Codec from"
+msgstr "Codec da"
+
+#: kdiff3_part.cpp:157 kdiff3_part.cpp:234
+msgid "Couldn't find files for comparison."
+msgstr "Impossibile trovare i file da confrontare."
+
+#: kdiff3_part.cpp:302
+msgid "KDiff3Part"
+msgstr "KDiff3Part"
+
+#: fileaccess.cpp:612
+msgid ""
+"While trying to make a backup, deleting an older backup failed. \n"
+"Filename: "
+msgstr ""
+"Cercando di creare una copia di sicurezza, non è stato possibile rimuoverne "
+"una precedente.\n"
+"Nome del file: "
+
+#: fileaccess.cpp:619
+msgid ""
+"While trying to make a backup, renaming failed. \n"
+"Filenames: "
+msgstr ""
+"Cercando di creare una copia di sicurezza, non è riuscita la rinomina.\n"
+"Nomi dei file: "
+
+#: fileaccess.cpp:643
+#, kde-format
+msgid "Getting file status: %1"
+msgstr "Recupero informazioni sullo stato del file: %1"
+
+#: fileaccess.cpp:686
+#, kde-format
+msgid "Reading file: %1"
+msgstr "Lettura del file: %1"
+
+#: fileaccess.cpp:723
+#, kde-format
+msgid "Writing file: %1"
+msgstr "Scrittura del file: %1"
+
+#: fileaccess.cpp:751
+msgid "Out of memory"
+msgstr "Memoria esaurita"
+
+#: fileaccess.cpp:786
+#, kde-format
+msgid "Making directory: %1"
+msgstr "Creazione della cartella: %1"
+
+#: fileaccess.cpp:806
+#, kde-format
+msgid "Removing directory: %1"
+msgstr "Rimozione della cartella: %1"
+
+#: fileaccess.cpp:821
+#, kde-format
+msgid "Removing file: %1"
+msgstr "Rimozione del file: %1"
+
+#: fileaccess.cpp:837
+#, kde-format
+msgid "Creating symbolic link: %1 -> %2"
+msgstr "Creazione del collegamento simbolico: %1 -> %2"
+
+#: fileaccess.cpp:864
+#, kde-format
+msgid "Renaming file: %1 -> %2"
+msgstr "Rinomina del file: %1 -> %2"
+
+#: fileaccess.cpp:897
+#, kde-format
+msgid "Copying file: %1 -> %2"
+msgstr "Copia del file: %1 -> %2"
+
+#: fileaccess.cpp:911
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for reading failed. Filename: "
+"%1"
+msgstr ""
+"Errore durante la copia di un file: apertura del file in lettura non "
+"riuscita. Nome del file: %1"
+
+#: fileaccess.cpp:917
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for writing failed. Filename: "
+"%1"
+msgstr ""
+"Errore durante la copia di un file: l'apertura del file in scrittura non "
+"riuscita. Nome del file: %1"
+
+#: fileaccess.cpp:932
+#, kde-format
+msgid "Error during file copy operation: Reading failed. Filename: %1"
+msgstr ""
+"Errore durante la copia di un file: lettura non riuscita. Nome del file: %1"
+
+#: fileaccess.cpp:941
+#, kde-format
+msgid "Error during file copy operation: Writing failed. Filename: %1"
+msgstr ""
+"Errore durante la copia di un file: Scrittura non riuscita. Nome del file: %1"
+
+#: fileaccess.cpp:1231
+msgid "Reading directory: "
+msgstr "Lettura della cartella: "
+
+#: fileaccess.cpp:1355
+#, kde-format
+msgid "Listing directory: %1"
+msgstr "Elenco della cartella: %1"
+
+#: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396
+msgid "&Cancel"
+msgstr "&Annulla"
+
+#: difftextwindow.cpp:403
+msgid "Line"
+msgstr "Riga"
+
+#: difftextwindow.cpp:405
+msgid "Line not available"
+msgstr "Riga non disponibile"
+
+#: difftextwindow.cpp:1703 difftextwindow.cpp:1736
+msgid "Encoding:"
+msgstr "Codifica:"
+
+#: difftextwindow.cpp:1759 kdiff3.cpp:831
+msgid "Top line"
+msgstr "Riga superiore"
+
+#: difftextwindow.cpp:1769
+msgid "End"
+msgstr "Fine"
+
+#: kdiff3.cpp:169
+msgid "Current Configuration:"
+msgstr "Configurazione attuale:"
+
+#: kdiff3.cpp:174
+msgid "Config Option Error:"
+msgstr "Errore nelle opzioni di configurazione:"
+
+#: kdiff3.cpp:219
+msgid "Option --auto used, but no output file specified."
+msgstr ""
+"Opzione --auto inserita, ma non è stato indicato nessun del file di uscita."
+
+#: kdiff3.cpp:369
+msgid "Option --auto ignored for directory comparison."
+msgstr "Opzione --auto ignorata nel confronto di cartelle."
+
+#: kdiff3.cpp:405
+msgid "Saving failed."
+msgstr "Salvataggio non riuscito."
+
+#: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214
+msgid "Opening of these files failed:"
+msgstr "Apertura di questi file non riuscita:"
+
+#: kdiff3.cpp:449
+msgid "File Open Error"
+msgstr "Errore nell'apertura di un file"
+
+#: kdiff3.cpp:477
+msgid "Opens documents for comparison..."
+msgstr "Apre documenti per confrontarli..."
+
+#: kdiff3.cpp:479
+msgid "Reload"
+msgstr "Ricarica"
+
+#: kdiff3.cpp:482
+msgid "Saves the merge result. All conflicts must be solved!"
+msgstr "Salva il risultato della fusione. Tutti i conflitti vanno risolti!"
+
+#: kdiff3.cpp:484
+msgid "Saves the current document as..."
+msgstr "Salva il documento attuale come..."
+
+#: kdiff3.cpp:487
+msgid "Print the differences"
+msgstr "Stampa le differenze"
+
+#: kdiff3.cpp:490
+msgid "Quits the application"
+msgstr "Esce dall'applicazione"
+
+#: kdiff3.cpp:492
+msgid "Cuts the selected section and puts it to the clipboard"
+msgstr "Taglia la sezione selezionata e la mette negli appunti"
+
+#: kdiff3.cpp:494
+msgid "Copies the selected section to the clipboard"
+msgstr "Copia la sezione selezionata negli appunti"
+
+#: kdiff3.cpp:496
+msgid "Pastes the clipboard contents to current position"
+msgstr "Incolla il contenuto degli appunti nella posizione attuale"
+
+#: kdiff3.cpp:498
+msgid "Select everything in current window"
+msgstr "Seleziona tutto nella finestra attuale"
+
+#: kdiff3.cpp:500
+msgid "Search for a string"
+msgstr "Cerca una stringa"
+
+#: kdiff3.cpp:502
+msgid "Search again for the string"
+msgstr "Cerca di nuovo la stringa"
+
+#: kdiff3.cpp:507
+msgid "Enables/disables the statusbar"
+msgstr "Abilita o disabilita la barra di stato"
+
+#: kdiff3.cpp:511
+msgid "Configure KDiff3..."
+msgstr "Configura KDiff3..."
+
+#: kdiff3.cpp:532
+msgid "Go to Current Delta"
+msgstr "Vai alla differenza attuale"
+
+#: kdiff3.cpp:532
+msgid ""
+"Current\n"
+"Delta"
+msgstr ""
+"Differenza\n"
+"attuale"
+
+#: kdiff3.cpp:534
+msgid "Go to First Delta"
+msgstr "Vai alla prima differenza"
+
+#: kdiff3.cpp:534
+msgid ""
+"First\n"
+"Delta"
+msgstr ""
+"Prima\n"
+"differenza"
+
+#: kdiff3.cpp:536
+msgid "Go to Last Delta"
+msgstr "Vai all'ultima differenza"
+
+#: kdiff3.cpp:536
+msgid ""
+"Last\n"
+"Delta"
+msgstr ""
+"Ultima\n"
+"differenza"
+
+#: kdiff3.cpp:538
+msgid "(Skips white space differences when \"Show White Space\" is disabled.)"
+msgstr ""
+"(Ignora le differenze di soli spazi quando «Mostra spazi» è disattivato)"
+
+#: kdiff3.cpp:539
+msgid ""
+"(Does not skip white space differences even when \"Show White Space\" is "
+"disabled.)"
+msgstr ""
+"(Non salta le differenze di soli spazi bianchi anche quando «Mostra spazi» è "
+"disattivato)"
+
+#: kdiff3.cpp:540
+msgid "Go to Previous Delta"
+msgstr "Vai alla differenza precedente"
+
+#: kdiff3.cpp:540
+msgid ""
+"Prev\n"
+"Delta"
+msgstr ""
+"Differenza\n"
+"precedente"
+
+#: kdiff3.cpp:542
+msgid "Go to Next Delta"
+msgstr "Vai alla differenza successiva"
+
+#: kdiff3.cpp:542
+msgid ""
+"Next\n"
+"Delta"
+msgstr ""
+"Differenza\n"
+"successiva"
+
+#: kdiff3.cpp:544
+msgid "Go to Previous Conflict"
+msgstr "Vai al conflitto precedente"
+
+#: kdiff3.cpp:544
+msgid ""
+"Prev\n"
+"Conflict"
+msgstr ""
+"Conflitto\n"
+"precedente"
+
+#: kdiff3.cpp:546
+msgid "Go to Next Conflict"
+msgstr "Vai al conflitto successivo"
+
+#: kdiff3.cpp:546
+msgid ""
+"Next\n"
+"Conflict"
+msgstr ""
+"Conflitto\n"
+"successivo"
+
+#: kdiff3.cpp:548
+msgid "Go to Previous Unsolved Conflict"
+msgstr "Vai al conflitto non risolto precedente"
+
+#: kdiff3.cpp:548
+msgid ""
+"Prev\n"
+"Unsolved"
+msgstr ""
+"Non risolto\n"
+"precedente"
+
+#: kdiff3.cpp:550
+msgid "Go to Next Unsolved Conflict"
+msgstr "Vai al conflitto non risolto successivo"
+
+#: kdiff3.cpp:550
+msgid ""
+"Next\n"
+"Unsolved"
+msgstr ""
+"Non risolto\n"
+"successivo"
+
+#: kdiff3.cpp:552
+msgid "Select Line(s) From A"
+msgstr "Seleziona righe da A"
+
+#: kdiff3.cpp:552
+msgid ""
+"Choose\n"
+"A"
+msgstr ""
+"Scegli\n"
+"A"
+
+#: kdiff3.cpp:553
+msgid "Select Line(s) From B"
+msgstr "Seleziona righe da B"
+
+#: kdiff3.cpp:553
+msgid ""
+"Choose\n"
+"B"
+msgstr ""
+"Scegli\n"
+"B"
+
+#: kdiff3.cpp:554
+msgid "Select Line(s) From C"
+msgstr "Seleziona righe da C"
+
+#: kdiff3.cpp:554
+msgid ""
+"Choose\n"
+"C"
+msgstr ""
+"Scegli\n"
+"C"
+
+#: kdiff3.cpp:555
+msgid "Automatically Go to Next Unsolved Conflict After Source Selection"
+msgstr ""
+"Vai automaticamente al conflitto non risolto successivo dopo aver "
+"selezionato la fonte"
+
+#: kdiff3.cpp:555
+msgid ""
+"Auto\n"
+"Next"
+msgstr ""
+"Successivo\n"
+"automatico"
+
+#: kdiff3.cpp:557
+msgid "Show Space && Tabulator Characters for Differences"
+msgstr "Mostra spazi e tabulazioni nelle differenze"
+
+#: kdiff3.cpp:557
+msgid ""
+"White\n"
+"Characters"
+msgstr "Spazi"
+
+#: kdiff3.cpp:558
+msgid "Show White Space"
+msgstr "Mostra spazi"
+
+#: kdiff3.cpp:558
+msgid ""
+"White\n"
+"Deltas"
+msgstr ""
+"Differenze\n"
+"di spazi"
+
+#: kdiff3.cpp:560
+msgid "Show Line Numbers"
+msgstr "Mostra numeri di riga"
+
+#: kdiff3.cpp:560
+msgid ""
+"Line\n"
+"Numbers"
+msgstr ""
+"Numeri\n"
+"di riga"
+
+#: kdiff3.cpp:561
+msgid "Choose A Everywhere"
+msgstr "Scegli A ovunque"
+
+#: kdiff3.cpp:562
+msgid "Choose B Everywhere"
+msgstr "Scegli B ovunque"
+
+#: kdiff3.cpp:563
+msgid "Choose C Everywhere"
+msgstr "Scegli C ovunque"
+
+#: kdiff3.cpp:564
+msgid "Choose A for All Unsolved Conflicts"
+msgstr "Scegli A per tutti i conflitti non risolti"
+
+#: kdiff3.cpp:565
+msgid "Choose B for All Unsolved Conflicts"
+msgstr "Scegli B per tutti i conflitti non risolti"
+
+#: kdiff3.cpp:566
+msgid "Choose C for All Unsolved Conflicts"
+msgstr "Scegli C per tutti i conflitti non risolti"
+
+#: kdiff3.cpp:567
+msgid "Choose A for All Unsolved Whitespace Conflicts"
+msgstr "Scegli A per tutti i conflitti di spazi non risolti"
+
+#: kdiff3.cpp:568
+msgid "Choose B for All Unsolved Whitespace Conflicts"
+msgstr "Scegli B per tutti i conflitti di spazi non risolti"
+
+#: kdiff3.cpp:569
+msgid "Choose C for All Unsolved Whitespace Conflicts"
+msgstr "Scegli C per tutti i conflitti di spazi non risolti"
+
+#: kdiff3.cpp:570
+msgid "Automatically Solve Simple Conflicts"
+msgstr "Risolvi automaticamente i conflitti semplici"
+
+#: kdiff3.cpp:571
+msgid "Set Deltas to Conflicts"
+msgstr "Imposta le differenze a conflitti"
+
+#: kdiff3.cpp:572
+msgid "Run Regular Expression Auto Merge"
+msgstr "Esegui la fusione automatica con espressioni regolari"
+
+#: kdiff3.cpp:573
+msgid "Automatically Solve History Conflicts"
+msgstr "Risolvi automaticamente i conflitti di cronologia"
+
+#: kdiff3.cpp:574
+msgid "Split Diff At Selection"
+msgstr "Dividi differenze alla selezione"
+
+#: kdiff3.cpp:575
+msgid "Join Selected Diffs"
+msgstr "Unisci le differenze selezionate"
+
+#: kdiff3.cpp:577
+msgid "Show Window A"
+msgstr "Mostra finestra A"
+
+#: kdiff3.cpp:578
+msgid "Show Window B"
+msgstr "Mostra finestra B"
+
+#: kdiff3.cpp:579
+msgid "Show Window C"
+msgstr "Mostra finestra C"
+
+#: kdiff3.cpp:580 kdiff3.cpp:591
+msgid "Focus Next Window"
+msgstr "Attiva la finestra successiva"
+
+#: kdiff3.cpp:582
+msgid "Normal Overview"
+msgstr "Riassunto normale"
+
+#: kdiff3.cpp:583
+msgid "A vs. B Overview"
+msgstr "Riassunto tra A e B"
+
+#: kdiff3.cpp:584
+msgid "A vs. C Overview"
+msgstr "Riassunto tra A e C"
+
+#: kdiff3.cpp:585
+msgid "B vs. C Overview"
+msgstr "Riassunto tra B e C"
+
+#: kdiff3.cpp:586
+msgid "Word Wrap Diff Windows"
+msgstr "A capo automatico nelle finestre delle differenze"
+
+#: kdiff3.cpp:587
+msgid "Add Manual Diff Alignment"
+msgstr "Aggiungi allineamento manuale delle differenze"
+
+#: kdiff3.cpp:588
+msgid "Clear All Manual Diff Alignments"
+msgstr "Cancella tutti gli allineamenti manuali delle differenze"
+
+#: kdiff3.cpp:593
+msgid "Focus Prev Window"
+msgstr "Attiva la finestra precedente"
+
+#: kdiff3.cpp:594
+msgid "Toggle Split Orientation"
+msgstr "Inverti l'orientamento di divisione"
+
+#: kdiff3.cpp:596
+msgid "Dir && Text Split Screen View"
+msgstr "Vista separata di cartelle e testi"
+
+#: kdiff3.cpp:598
+msgid "Toggle Between Dir && Text View"
+msgstr "Cambia tra vista di testi e di cartelle"
+
+#: kdiff3.cpp:654 pdiff.cpp:1812
+msgid "The merge result hasn't been saved."
+msgstr "Il risultato della fusione non è stato salvato."
+
+#: kdiff3.cpp:656
+msgid "Save && Quit"
+msgstr "Salva ed esci"
+
+#: kdiff3.cpp:657
+msgid "Quit Without Saving"
+msgstr "Esci senza salvare"
+
+#: kdiff3.cpp:665 pdiff.cpp:1823
+msgid "Saving the merge result failed."
+msgstr "Il salvataggio della fusione non è riuscito."
+
+#: kdiff3.cpp:676 pdiff.cpp:1078
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort?"
+msgstr "È in corso una fusione di cartelle. Sei sicuro di voler interrompere?"
+
+#: kdiff3.cpp:701
+msgid "Saving file..."
+msgstr "Salvataggio del file..."
+
+#: kdiff3.cpp:718
+msgid "Saving file with a new filename..."
+msgstr "Salvataggio del file con un nuovo nome..."
+
+#: kdiff3.cpp:781
+msgid "Printing not implemented."
+msgstr "Stampa non implementata."
+
+#: kdiff3.cpp:815
+msgid "Printing..."
+msgstr "Stampa..."
+
+#: kdiff3.cpp:956
+msgid "Selection"
+msgstr "Selezione"
+
+#: kdiff3.cpp:982
+msgid "Printing completed."
+msgstr "Stampa completata."
+
+#: kdiff3.cpp:986
+msgid "Printing aborted."
+msgstr "Stampa interrotta."
+
+#: kdiff3.cpp:993
+msgid "Exiting..."
+msgstr "Uscita..."
+
+#: kdiff3.cpp:1006
+msgid "Toggling toolbar..."
+msgstr "Commutazione della barra degli strumenti..."
+
+#: kdiff3.cpp:1027
+msgid "Toggle the statusbar..."
+msgstr "Commutazione della barra di stato..."
+
+#: smalldialogs.cpp:58
+msgid "A (Base):"
+msgstr "A (Base):"
+
+#: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99
+#: smalldialogs.cpp:142
+msgid "File..."
+msgstr "File..."
+
+#: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101
+#: smalldialogs.cpp:144
+msgid "Dir..."
+msgstr "Cartella..."
+
+#: smalldialogs.cpp:93
+msgid "C (Optional):"
+msgstr "C (Opzionale):"
+
+#: smalldialogs.cpp:116
+msgid "Swap/Copy Names ..."
+msgstr "Scambia e copia nomi..."
+
+#: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123
+#, kde-format
+msgid "Swap %1<->%2"
+msgstr "Scambia %1<->%2"
+
+#: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126
+#, kde-format
+msgid "Copy %1->Output"
+msgstr "Copia %1->Uscita"
+
+#: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129
+#, kde-format
+msgid "Swap %1<->Output"
+msgstr "Scambia %1<->Uscita"
+
+#: smalldialogs.cpp:136
+msgid "Output (optional):"
+msgstr "Uscita (opzionale):"
+
+#: smalldialogs.cpp:168
+msgid "Configure..."
+msgstr "Configura..."
+
+#: smalldialogs.cpp:174
+msgid "&OK"
+msgstr "&OK"
+
+#: smalldialogs.cpp:362
+msgid "Search text:"
+msgstr "Testo da cercare:"
+
+#: smalldialogs.cpp:369
+msgid "Case sensitive"
+msgstr "Distingui le maiuscole"
+
+#: smalldialogs.cpp:372
+msgid "Search A"
+msgstr "Cerca in A"
+
+#: smalldialogs.cpp:377
+msgid "Search B"
+msgstr "Cerca in B"
+
+#: smalldialogs.cpp:382
+msgid "Search C"
+msgstr "Cerca in C"
+
+#: smalldialogs.cpp:387
+msgid "Search output"
+msgstr "Cerca nell'uscita"
+
+#: smalldialogs.cpp:392
+msgid "&Search"
+msgstr "&Cerca"
+
+#: smalldialogs.cpp:409
+msgid "Regular Expression Tester"
+msgstr "Tester delle espressioni regolari"
+
+#: smalldialogs.cpp:414 optiondialog.cpp:936
+msgid "Auto merge regular expression:"
+msgstr "Espressione regolare di fusione automatica:"
+
+#: smalldialogs.cpp:422
+msgid "Example auto merge line:"
+msgstr "Esempio di riga di fusione automatica:"
+
+#: smalldialogs.cpp:424
+msgid "To test auto merge, copy a line as used in your files."
+msgstr "Per provare la fusione automatica, copia una riga così com'è nei file."
+
+#: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494
+msgid "Match result:"
+msgstr "Risultato di corrispondenza:"
+
+#: smalldialogs.cpp:441 optiondialog.cpp:962
+msgid "History start regular expression:"
+msgstr "Espressione regolare dell'inizio di cronologia:"
+
+#: smalldialogs.cpp:449
+msgid "Example history start line (with leading comment):"
+msgstr "Esempio di riga di inizio di cronologia (con commento iniziale):"
+
+#: smalldialogs.cpp:451
+msgid ""
+"Copy a history start line as used in your files,\n"
+"including the leading comment."
+msgstr ""
+"Copia una riga di inizio di cronologia così com'è nei file,\n"
+"incluso il commento iniziale."
+
+#: smalldialogs.cpp:469 optiondialog.cpp:972
+msgid "History entry start regular expression:"
+msgstr "Espressione regolare di inizio dell'elemento di cronologia:"
+
+#: smalldialogs.cpp:477
+msgid "History sort key order:"
+msgstr "Ordine della chiave d'ordinamento cronologico:"
+
+#: smalldialogs.cpp:485
+msgid "Example history entry start line (without leading comment):"
+msgstr ""
+"Esempio di riga di inizio di un elemento di cronologia (senza commento "
+"iniziale):"
+
+#: smalldialogs.cpp:487
+msgid ""
+"Copy a history entry start line as used in your files,\n"
+"but omit the leading comment."
+msgstr ""
+"Copia una riga di inizio di un elemento di cronologia così com'è nei file,\n"
+"ma ometti il commento iniziale."
+
+#: smalldialogs.cpp:501
+msgid "Sort key result:"
+msgstr "Risultato della chiave di ordinamento:"
+
+#: smalldialogs.cpp:508
+msgid "OK"
+msgstr "OK"
+
+#: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583
+msgid "Match success."
+msgstr "Confronto riuscito."
+
+#: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589
+msgid "Match failed."
+msgstr "Confronto non riuscito."
+
+#: smalldialogs.cpp:574
+msgid "Opening and closing parentheses do not match in regular expression."
+msgstr ""
+"Le parentesi aperte e chiuse nell'espressione regolare non corrispondono."
+
+#: optiondialog.cpp:367
+msgid "Unicode, 8 bit"
+msgstr "Unicode, 8 bit"
+
+#: optiondialog.cpp:368
+msgid "Unicode"
+msgstr "Unicode"
+
+#: optiondialog.cpp:369
+msgid "Latin1"
+msgstr "Latin1"
+
+#: optiondialog.cpp:388
+msgid "Change this if non-ASCII characters are not displayed correctly."
+msgstr "Cambialo se i caratteri non-ASCII non vengono mostrati correttamente."
+
+#: optiondialog.cpp:465
+msgid "Configure"
+msgstr "Configura"
+
+#: optiondialog.cpp:531
+msgid "Font"
+msgstr "Carattere"
+
+#: optiondialog.cpp:532
+msgid "Editor & Diff Output Font"
+msgstr "Carattere per l'editor e per l'uscita delle differenze"
+
+#: optiondialog.cpp:556
+msgid "Italic font for deltas"
+msgstr "Carattere corsivo per le differenze"
+
+#: optiondialog.cpp:559
+msgid ""
+"Selects the italic version of the font for differences.\n"
+"If the font doesn't support italic characters, then this does nothing."
+msgstr ""
+"Seleziona la versione corsiva del carattere per le differenze.\n"
+"Se il carattere non supporta il corsivo, non succede nulla."
+
+#: optiondialog.cpp:568
+msgid "Color"
+msgstr "Colore"
+
+#: optiondialog.cpp:569
+msgid "Colors Settings"
+msgstr "Impostazioni dei colori"
+
+#: optiondialog.cpp:588
+msgid "Editor and Diff Views:"
+msgstr "Editor e visore delle differenze:"
+
+#: optiondialog.cpp:596
+msgid "Foreground color:"
+msgstr "Colore di primo piano:"
+
+#: optiondialog.cpp:603
+msgid "Background color:"
+msgstr "Colore di sfondo:"
+
+#: optiondialog.cpp:612
+msgid "Diff background color:"
+msgstr "Colore di sfondo per le differenze:"
+
+#: optiondialog.cpp:620
+msgid "Color A:"
+msgstr "Colore per A:"
+
+#: optiondialog.cpp:628
+msgid "Color B:"
+msgstr "Colore per B:"
+
+#: optiondialog.cpp:636
+msgid "Color C:"
+msgstr "Colore per C:"
+
+#: optiondialog.cpp:643
+msgid "Conflict color:"
+msgstr "Colore per i conflitti:"
+
+#: optiondialog.cpp:651
+msgid "Current range background color:"
+msgstr "Colore di sfondo per l'intervallo attuale:"
+
+#: optiondialog.cpp:659
+msgid "Current range diff background color:"
+msgstr "Colore di sfondo per le differenze dell'intervallo attuale:"
+
+#: optiondialog.cpp:666
+msgid "Color for manually aligned difference ranges:"
+msgstr "Colore per intervalli di differenze allineate manualmente:"
+
+#: optiondialog.cpp:672
+msgid "Directory Comparison View:"
+msgstr "Vista di confronto delle cartelle:"
+
+#: optiondialog.cpp:678
+msgid "Newest file color:"
+msgstr "Colore del file più recente:"
+
+#: optiondialog.cpp:682
+msgid ""
+"Changing this color will only be effective when starting the next directory "
+"comparison."
+msgstr ""
+"Il cambiamento di questo colore sarà effettivo quando si avvierà un nuovo "
+"confronto tra cartelle."
+
+#: optiondialog.cpp:687
+msgid "Oldest file color:"
+msgstr "Colore del file più vecchio:"
+
+#: optiondialog.cpp:695
+msgid "Middle age file color:"
+msgstr "Colore del file di età media:"
+
+#: optiondialog.cpp:703
+msgid "Color for missing files:"
+msgstr "Colore per file mancanti:"
+
+#: optiondialog.cpp:717
+msgid "Editor"
+msgstr "Editor"
+
+#: optiondialog.cpp:718
+msgid "Editor Behavior"
+msgstr "Comportamento dell'editor"
+
+#: optiondialog.cpp:732
+msgid "Tab inserts spaces"
+msgstr "Il tabulatore inserisce spazi"
+
+#: optiondialog.cpp:735
+msgid ""
+"On: Pressing tab generates the appropriate number of spaces.\n"
+"Off: A tab character will be inserted."
+msgstr ""
+"Attivo: premere il tabulatore è come inserire l'appropriato numero di "
+"spazi.\n"
+"Non attivo: viene inserito un carattere di tabulazione."
+
+#: optiondialog.cpp:741
+msgid "Tab size:"
+msgstr "Dimensione della tabulazione:"
+
+#: optiondialog.cpp:747
+msgid "Auto indentation"
+msgstr "Rientro automatico"
+
+#: optiondialog.cpp:750
+msgid "On: The indentation of the previous line is used for a new line.\n"
+msgstr "Attivo: la nuova riga avrà lo stesso rientro della riga precedente.\n"
+
+#: optiondialog.cpp:754
+msgid "Auto copy selection"
+msgstr "Copia automaticamente la selezione"
+
+#: optiondialog.cpp:757
+msgid ""
+"On: Any selection is immediately written to the clipboard.\n"
+"Off: You must explicitely copy e.g. via Ctrl-C."
+msgstr ""
+"Attivo: ogni selezione è immediatamente copiata negli appunti.\n"
+"Non attivo: devi esplicitamente copiarla, per esempio con Ctrl-C."
+
+#: optiondialog.cpp:768
+msgid "Dos/Windows"
+msgstr "DOS/Windows"
+
+#: optiondialog.cpp:769
+msgid "Autodetect"
+msgstr "Riconoscimento automatico"
+
+#: optiondialog.cpp:772
+msgid ""
+"Sets the line endings for when an edited file is saved.\n"
+"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A"
+msgstr ""
+"Imposta il fine riga da usare quando salvi un file modificato:\n"
+"DOS/Windows: CR+LF; Unix: LF; dove CR=0D, LF=0A"
+
+#: optiondialog.cpp:784
+msgid "Diff"
+msgstr "Differenze"
+
+#: optiondialog.cpp:785
+msgid "Diff Settings"
+msgstr "Impostazioni delle differenze"
+
+#: optiondialog.cpp:809
+msgid "Treat as white space."
+msgstr "Tratta come spazio."
+
+#: optiondialog.cpp:811
+msgid "Ignore numbers"
+msgstr "Ignora i numeri"
+
+#: optiondialog.cpp:814
+msgid ""
+"Ignore number characters during line matching phase. (Similar to Ignore "
+"white space.)\n"
+"Might help to compare files with numeric data."
+msgstr ""
+"Ignora i caratteri numerici durante il confronto (simile a «Ignora spazi»).\n"
+"Può essere utile per confrontare file con dati numerici."
+
+#: optiondialog.cpp:819
+msgid "Ignore C/C++ comments"
+msgstr "Ignora i commenti C e C++"
+
+#: optiondialog.cpp:821
+msgid "Treat C/C++ comments like white space."
+msgstr "Tratta i commenti C e C++ come spazi."
+
+#: optiondialog.cpp:825
+msgid "Ignore case"
+msgstr "Ignora le maiuscole"
+
+#: optiondialog.cpp:828
+msgid "Treat case differences like white space changes. ('a'<=>'A')"
+msgstr ""
+"Tratta le differenze tra maiuscole e minuscole come modifiche di spazi "
+"(«a»<=>«A»)."
+
+#: optiondialog.cpp:832
+msgid "Preprocessor command:"
+msgstr "Comando per il preprocessore:"
+
+#: optiondialog.cpp:836
+msgid "User defined pre-processing. (See the docs for details.)"
+msgstr ""
+"Preprocessore definito dall'utente; vedi il manuale per maggiori dettagli."
+
+#: optiondialog.cpp:839
+msgid "Line-matching preprocessor command:"
+msgstr "Preprocessore per il confronto di righe:"
+
+#: optiondialog.cpp:843
+msgid ""
+"This pre-processor is only used during line matching.\n"
+"(See the docs for details.)"
+msgstr ""
+"Questo preprocessore viene utilizzato solo\n"
+"per verificare la corrispondenza di righe;\n"
+"vedi il manuale per maggiori dettagli."
+
+#: optiondialog.cpp:846
+msgid "Try hard (slower)"
+msgstr "Ricerca approfondita (lenta)"
+
+#: optiondialog.cpp:849
+msgid ""
+"Enables the --minimal option for the external diff.\n"
+"The analysis of big files will be much slower."
+msgstr ""
+"Abilita l'opzione --minimal del comando «diff» esterno.\n"
+"L'analisi di grandi file sarà molto più lenta."
+
+#: optiondialog.cpp:854
+msgid "Align B and C for 3 input files"
+msgstr "Allinea B e C per tre file di ingresso"
+
+#: optiondialog.cpp:857
+msgid ""
+"Try to align B and C when comparing or merging three input files.\n"
+"Not recommended for merging because merge might get more complicated.\n"
+"(Default is off.)"
+msgstr ""
+"Cerca di allineare B e C quando si confrontano o fondono tre file di "
+"ingresso.\n"
+"Non è raccomandato per la fusione perché potrebbe divenire più complicata.\n"
+"Come impostazione predefinita è disattivato."
+
+#: optiondialog.cpp:870
+msgid "Merge Settings"
+msgstr "Impostazioni di fusione"
+
+#: optiondialog.cpp:885
+msgid "Auto advance delay (ms):"
+msgstr "Ritardo nell'avanzamento automatico (ms):"
+
+#: optiondialog.cpp:890
+msgid ""
+"When in Auto-Advance mode the result of the current selection is shown \n"
+"for the specified time, before jumping to the next conflict. Range: 0-2000 ms"
+msgstr ""
+"Quando si è in modalità di avanzamento automatico, il risultato della\n"
+"selezione attuale viene mostrato per il tempo specificato, prima di\n"
+"passare al conflitto successivo. Valori ammessi: 0-2000 ms."
+
+#: optiondialog.cpp:895
+msgid "Show info dialogs"
+msgstr "Mostra finestre informative"
+
+#: optiondialog.cpp:897
+msgid "Show a dialog with information about the number of conflicts."
+msgstr "Mostra una finestra con informazioni sul numero di conflitti."
+
+#: optiondialog.cpp:900
+msgid "White space 2-file merge default:"
+msgstr "Trattamento predefinito degli spazi nel fondere due file:"
+
+#: optiondialog.cpp:904 optiondialog.cpp:917
+msgid "Manual Choice"
+msgstr "Scelta manuale"
+
+#: optiondialog.cpp:908 optiondialog.cpp:922
+msgid ""
+"Allow the merge algorithm to automatically select an input for white-space-"
+"only changes."
+msgstr ""
+"Consenti all'algoritmo di fusione di selezionare automaticamente un ingresso "
+"per le modifiche di soli spazi."
+
+#: optiondialog.cpp:913
+msgid "White space 3-file merge default:"
+msgstr "Trattamento predefinito degli spazi nel fondere tre file:"
+
+#: optiondialog.cpp:927
+msgid "Automatic Merge Regular Expression"
+msgstr "Espressione regolare di fusione automatica"
+
+#: optiondialog.cpp:940
+msgid ""
+"Regular expression for lines where KDiff3 should automatically choose one "
+"source.\n"
+"When a line with a conflict matches the regular expression then\n"
+"- if available - C, otherwise B will be chosen."
+msgstr ""
+"Espressione regolare per le righe dove Kdiff3 dovrebbe scegliere "
+"automaticamente una fonte.\n"
+"Quando una riga con un conflitto corrisponde all'espressione regolare,\n"
+"sarà scelto (se disponibile) C, altrimenti B."
+
+#: optiondialog.cpp:946
+msgid "Run regular expression auto merge on merge start"
+msgstr ""
+"Esegui la fusione automatica con espressioni regolari all'avvio della fusione"
+
+#: optiondialog.cpp:948
+msgid ""
+"Run the merge for auto merge regular expressions\n"
+"immediately when a merge starts.\n"
+msgstr ""
+"Esegui la fusione per le espressioni regolari di fusione\n"
+"automatica all'avvio dell'operazione.\n"
+
+#: optiondialog.cpp:953
+msgid "Version Control History Merging"
+msgstr "Fusione della cronologia del controllo di versione"
+
+#: optiondialog.cpp:966
+msgid ""
+"Regular expression for the start of the version control history entry.\n"
+"Usually this line contains the \"$Log$\" keyword.\n"
+"Default value: \".*\\$Log.*\\$.*\""
+msgstr ""
+"Espressione regolare per l'inizio dell'elemento di cronologia del controllo "
+"di versione.\n"
+"Di solito questa riga contiene la parola chiave «$Log$».\n"
+"Valore predefinito: «.*\\$Log.*\\$.*»."
+
+#: optiondialog.cpp:984
+msgid ""
+"A version control history entry consists of several lines.\n"
+"Specify the regular expression to detect the first line (without the leading "
+"comment).\n"
+"Use parentheses to group the keys you want to use for sorting.\n"
+"If left empty, then KDiff3 assumes that empty lines separate history "
+"entries.\n"
+"See the documentation for details."
+msgstr ""
+"Un elemento di cronologia del controllo di versione consiste di diverse "
+"linee.\n"
+"Specifica l'espressione regolare per individuarne la prima (senza il "
+"commento iniziale).\n"
+"Usa le parentesi per raggruppare le chiavi che vuoi usare per "
+"l'ordinamento.\n"
+"Se la parte sinistra è mancante, KDiff3 assume che siano delle linee vuote a "
+"separare gli elementi della cronologia.\n"
+"Vedi la documentazione per i dettagli."
+
+#: optiondialog.cpp:992
+msgid "History merge sorting"
+msgstr "Ordinamento della fusione della cronologia"
+
+#: optiondialog.cpp:994
+msgid "Sort version control history by a key."
+msgstr "Ordina la cronologia del controllo di versione secondo una chiave."
+
+#: optiondialog.cpp:1004
+msgid "History entry start sort key order:"
+msgstr ""
+"Ordine della chiave d'ordinamento d'inizio degli elementi della cronologia:"
+
+#: optiondialog.cpp:1008
+msgid ""
+"Each pair of parentheses used in the regular expression for the history "
+"start entry\n"
+"groups a key that can be used for sorting.\n"
+"Specify the list of keys (that are numbered in order of occurrence\n"
+"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n"
+"If left empty, then no sorting will be done.\n"
+"See the documentation for details."
+msgstr ""
+"Ogni coppia di parentesi usata nell'espressione regolare per la voce di "
+"inizio\n"
+"della cronologia raggruppa una chiave che può essere usata per "
+"l'ordinamento.\n"
+"Specifica l'elenco delle chiavi (numerate in ordine di occorrenza a\n"
+"partire da 1) usando «,» come separatore (per esempio «4,5,6,1,2,3,7»).\n"
+"Se viene lasciato vuoto, non verrà effettuato nessun ordinamento.\n"
+"Consulta la documentazione per i ulteriori dettagli."
+
+#: optiondialog.cpp:1019
+msgid "Merge version control history on merge start"
+msgstr "Fondi la cronologia del controllo di versione all'inizio della fusione"
+
+#: optiondialog.cpp:1021
+msgid "Run version control history automerge on merge start."
+msgstr ""
+"Esegui la fusione automatica della cronologia del controllo di versione "
+"all'inizio della fusione."
+
+#: optiondialog.cpp:1025
+msgid "Max number of history entries:"
+msgstr "Numero massimo di elementi nella cronologia:"
+
+#: optiondialog.cpp:1028
+msgid "Cut off after specified number. Use -1 for infinite number of entries."
+msgstr "Taglia al numero specificato. Usa -1 per un numero infinito di voci."
+
+#: optiondialog.cpp:1032
+msgid "Test your regular expressions"
+msgstr "Prova le espressioni regolari"
+
+#: optiondialog.cpp:1037
+msgid "Irrelevant merge command:"
+msgstr "Comando di fusione irrilevante:"
+
+#: optiondialog.cpp:1041
+msgid ""
+"If specified this script is run after automerge\n"
+"when no other relevant changes were detected.\n"
+"Called with the parameters: filename1 filename2 filename3"
+msgstr ""
+"Se specificato questo script viene eseguito dopo la fusione\n"
+"automatica quando non sono rilevati altri cambiamenti rilevanti.\n"
+"Chiamato con i parametri: nome_file1 nome_file2 nome_file3"
+
+#: optiondialog.cpp:1047
+msgid "Auto save and quit on merge without conflicts"
+msgstr "Salvataggio automatico e uscita in caso di fusione senza conflitti"
+
+#: optiondialog.cpp:1050
+msgid ""
+"If KDiff3 was started for a file-merge from the command line and all\n"
+"conflicts are solvable without user interaction then automatically save and "
+"quit.\n"
+"(Similar to command line option \"--auto\".)"
+msgstr ""
+"Quando KDiff3 viene avviato per una fusione di file dalla riga di comando\n"
+"e tutti i conflitti sono risolvibili senza azione da parte dell'utente,\n"
+"salva automaticamente ed esci.\n"
+"È simile all'opzione da riga di comando «--auto»."
+
+#: optiondialog.cpp:1061 optiondialog.cpp:1062
+msgid "Directory"
+msgstr "Cartella"
+
+#: optiondialog.cpp:1075
+msgid "Recursive directories"
+msgstr "Cartelle ricorsive"
+
+#: optiondialog.cpp:1077
+msgid "Whether to analyze subdirectories or not."
+msgstr "Se analizzare o meno anche le sottocartelle."
+
+#: optiondialog.cpp:1079
+msgid "File pattern(s):"
+msgstr "Schemi di file:"
+
+#: optiondialog.cpp:1084
+msgid ""
+"Pattern(s) of files to be analyzed. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Schemi di file da analizzare.\n"
+"Caratteri jolly: «*» e «?».\n"
+"Si possono specificare più schemi con il separatore «;»."
+
+#: optiondialog.cpp:1090
+msgid "File-anti-pattern(s):"
+msgstr "Schemi di file da escludere:"
+
+#: optiondialog.cpp:1095
+msgid ""
+"Pattern(s) of files to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Schemi di file da escludere dall'analisi.\n"
+"Caratteri jolly: «*» e «?».\n"
+"Si possono specificare più schemi con il separatore «;»."
+
+#: optiondialog.cpp:1101
+msgid "Dir-anti-pattern(s):"
+msgstr "Schemi di cartelle da escludere:"
+
+#: optiondialog.cpp:1106
+msgid ""
+"Pattern(s) of directories to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Schemi di cartelle da escludere dall'analisi.\n"
+"Caratteri jolly: «*» e «?».\n"
+"Si possono specificare più schemi con il separatore «;»."
+
+#: optiondialog.cpp:1112
+msgid "Use .cvsignore"
+msgstr "Usa .cvsignore"
+
+#: optiondialog.cpp:1115
+msgid ""
+"Extends the antipattern to anything that would be ignored by CVS.\n"
+"Via local \".cvsignore\" files this can be directory specific."
+msgstr ""
+"Estendi l'esclusione a tutto quello che sarebbe ignorato da CVS.\n"
+"Si possono usare dei file «.cvsignore» diversi per ogni cartella."
+
+#: optiondialog.cpp:1120
+msgid "Find hidden files and directories"
+msgstr "Trova file e cartelle nascosti"
+
+#: optiondialog.cpp:1123
+msgid "Finds files and directories with the hidden attribute."
+msgstr "Trova file e cartelle con l'attributo «nascosto»."
+
+#: optiondialog.cpp:1125
+msgid "Finds files and directories starting with '.'."
+msgstr "Trova file e cartelle che iniziano con «.»."
+
+#: optiondialog.cpp:1129
+msgid "Follow file links"
+msgstr "Segui i collegamenti dei file"
+
+#: optiondialog.cpp:1132
+msgid ""
+"On: Compare the file the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+"Attivo: confronta il file a cui punta il collegamento.\n"
+"Non attivo: confronta i collegamenti."
+
+#: optiondialog.cpp:1137
+msgid "Follow directory links"
+msgstr "Segui i collegamenti delle cartelle"
+
+#: optiondialog.cpp:1140
+msgid ""
+"On: Compare the directory the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+"Attivo: confronta la cartella a cui punta il collegamento.\n"
+"Non attivo: confronta i collegamenti."
+
+#: optiondialog.cpp:1156
+msgid "Case sensitive filename comparison"
+msgstr "Distingui le maiuscole nel confronto dei nomi dei file"
+
+#: optiondialog.cpp:1159
+msgid ""
+"The directory comparison will compare files or directories when their names "
+"match.\n"
+"Set this option if the case of the names must match. (Default for Windows is "
+"off, otherwise on.)"
+msgstr ""
+"Il confronto tra cartelle confronterà file o cartelle quando i loro nomi "
+"coincideranno.\n"
+"Imposta questa opzione se le lettere maiuscole e minuscole devono essere "
+"considerate diverse. L'opzione predefinita per Windows è disattivo, "
+"altrimenti è attivo."
+
+#: optiondialog.cpp:1163
+msgid "File Comparison Mode"
+msgstr "Modalità di confronto dei file"
+
+#: optiondialog.cpp:1169
+msgid "Binary comparison"
+msgstr "Confronto binario"
+
+#: optiondialog.cpp:1170
+msgid "Binary comparison of each file. (Default)"
+msgstr "Confronto binario per ogni file (predefinito)."
+
+#: optiondialog.cpp:1173
+msgid "Full analysis"
+msgstr "Analisi completa"
+
+#: optiondialog.cpp:1174
+msgid ""
+"Do a full analysis and show statistics information in extra columns.\n"
+"(Slower than a binary comparison, much slower for binary files.)"
+msgstr ""
+"Fai un'analisi completa e mostra informazioni statistiche in nuove colonne.\n"
+"È più lento di un confronto binario e lentissimo su file binari."
+
+#: optiondialog.cpp:1178
+msgid "Trust the size and modification date (unsafe)"
+msgstr "Fidati della grandezza e della data di modifica (non sicuro)"
+
+#: optiondialog.cpp:1179
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"Files with equal contents but different modification dates will appear as "
+"different.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"Assumi che i file sono uguali se hanno la stessa data di modifica e "
+"dimensione.\n"
+"I file con contenuti identici ma diverse date di modifica risulteranno "
+"diversi.\n"
+"Utile per confrontare cartelle grandi o per connessioni lente."
+
+#: optiondialog.cpp:1184
+msgid ""
+"Trust the size and date, but use binary comparison if date does not match "
+"(unsafe)"
+msgstr ""
+"Fidati della grandezza e della data, ma usa il confronto binario se la data "
+"non corrisponde (non sicuro)"
+
+#: optiondialog.cpp:1185
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"If the dates are not equal but the sizes are, use binary comparison.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"Assumi che i file sono uguali se hanno la stessa data di modifica e "
+"dimensione.\n"
+"Se le date non sono uguali ma la dimensione sì, usa il confronto binario.\n"
+"Utile per confrontare cartelle grandi o per connessioni lente."
+
+#: optiondialog.cpp:1190
+msgid "Trust the size (unsafe)"
+msgstr "Fidati della dimensione (non sicuro)"
+
+#: optiondialog.cpp:1191
+msgid ""
+"Assume that files are equal if their file lengths are equal.\n"
+"Useful for big directories or slow networks when the date is modified during "
+"download."
+msgstr ""
+"Assumi che i file sono uguali se hanno la stessa dimensione.\n"
+"Utile per confrontare cartelle grandi o per connessioni lente,\n"
+"dove la data viene modificata nello scaricamento."
+
+#: optiondialog.cpp:1199
+msgid "Synchronize directories"
+msgstr "Sincronizza cartelle"
+
+#: optiondialog.cpp:1202
+msgid ""
+"Offers to store files in both directories so that\n"
+"both directories are the same afterwards.\n"
+"Works only when comparing two directories without specifying a destination."
+msgstr ""
+"Permette di memorizzare i file in entrambe le cartelle,\n"
+"in modo che poi risultino uguali.\n"
+"Funziona solo quando si confrontano due cartelle\n"
+"senza specificare una destinazione."
+
+#: optiondialog.cpp:1208
+msgid "White space differences considered equal"
+msgstr "Differenze di spazi considerate uguali"
+
+#: optiondialog.cpp:1211
+msgid ""
+"If files differ only by white space consider them equal.\n"
+"This is only active when full analysis is chosen."
+msgstr ""
+"Se i file differiscono solo per degli spazi, considerali uguali.\n"
+"Funziona solo quando si effettua un'analisi completa."
+
+#: optiondialog.cpp:1217
+msgid "Copy newer instead of merging (unsafe)"
+msgstr "Copia il più recente invece di fondere (non sicuro)"
+
+#: optiondialog.cpp:1220
+msgid ""
+"Don't look inside, just take the newer file.\n"
+"(Use this only if you know what you are doing!)\n"
+"Only effective when comparing two directories."
+msgstr ""
+"Non guardare i contenuti, prendi il più recente e basta.\n"
+"Usalo solo se sai quello che stai facendo!\n"
+"Funziona solo quando si confrontano due cartelle."
+
+#: optiondialog.cpp:1225
+msgid "Backup files (.orig)"
+msgstr "Copie di sicurezza (.orig)"
+
+#: optiondialog.cpp:1228
+msgid ""
+"If a file would be saved over an old file, then the old file\n"
+"will be renamed with a '.orig' extension instead of being deleted."
+msgstr ""
+"Quando un file sarebbe stato salvato sovrascrivendone su un altro\n"
+"quest'ultimo verrà rinominato con l'estensione «.orig» invece di\n"
+"essere cancellato."
+
+#: optiondialog.cpp:1301 optiondialog.cpp:1302
+msgid "Regional Settings"
+msgstr "Impostazioni locali"
+
+#: optiondialog.cpp:1402
+msgid "Language (restart required)"
+msgstr "Lingua (riavvio necessario)"
+
+#: optiondialog.cpp:1445
+msgid ""
+"Choose the language of the GUI strings or \"Auto\".\n"
+"For a change of language to take place, quit and restart KDiff3."
+msgstr ""
+"Scegli la lingua dell'interfaccia grafica o «Auto».\n"
+"Per cambiare la lingua devi uscire e riavviare KDiff3."
+
+#: optiondialog.cpp:1463
+msgid "Use the same encoding for everything:"
+msgstr "Usa la stessa codifica per tutto:"
+
+#: optiondialog.cpp:1466
+msgid ""
+"Enable this allows to change all encodings by changing the first only.\n"
+"Disable this if different individual settings are needed."
+msgstr ""
+"Permette di cambiare tutte le codifiche cambiando solo la prima.\n"
+"Disattivala se servono impostazioni differenziate."
+
+#: optiondialog.cpp:1471
+msgid "Note: Local Encoding is "
+msgstr "Nota: la codifica locale è "
+
+#: optiondialog.cpp:1475
+msgid "File Encoding for A:"
+msgstr "Codifica per il file A:"
+
+#: optiondialog.cpp:1481
+msgid ""
+"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n"
+"If the file is not Unicode then the selected encoding will be used as "
+"fallback.\n"
+"(Unicode detection depends on the first bytes of a file.)"
+msgstr ""
+"Se abilitato, verrà rilevata la codifica Unicode (UTF-16 o UTF-8).\n"
+"Se il file non è in Unicode, la codifica selezionata sarà usata come "
+"ripiego.\n"
+"La rilevazione di Unicode dipende dai primi byte di un file."
+
+#: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503
+msgid "Auto Detect Unicode"
+msgstr "Rileva Unicode automaticamente"
+
+#: optiondialog.cpp:1490
+msgid "File Encoding for B:"
+msgstr "Codifica per il file B:"
+
+#: optiondialog.cpp:1499
+msgid "File Encoding for C:"
+msgstr "Codifica per il file C:"
+
+#: optiondialog.cpp:1508
+msgid "File Encoding for Merge Output and Saving:"
+msgstr "Codifica per il file fuso e il salvataggio:"
+
+#: optiondialog.cpp:1512
+msgid "Auto Select"
+msgstr "Seleziona automaticamente"
+
+#: optiondialog.cpp:1515
+msgid ""
+"If enabled then the encoding from the input files is used.\n"
+"In ambiguous cases a dialog will ask the user to choose the encoding for "
+"saving."
+msgstr ""
+"Se abilitato viene usata la codifica dei file di ingresso.\n"
+"Nei casi ambigui una finestra chiederà all'utente di scegliere la codifica "
+"per il salvataggio."
+
+#: optiondialog.cpp:1519
+msgid "File Encoding for Preprocessor Files:"
+msgstr "Codifica per i file del preprocessore:"
+
+#: optiondialog.cpp:1530
+msgid "Right To Left Language"
+msgstr "Lingue scritte da destra a sinistra"
+
+#: optiondialog.cpp:1533
+msgid ""
+"Some languages are read from right to left.\n"
+"This setting will change the viewer and editor accordingly."
+msgstr ""
+"Alcune lingue si leggono da destra a sinistra.\n"
+"Questa opzione cambia in tal senso l'editor e la visualizzazione."
+
+#: optiondialog.cpp:1548
+msgid "Integration"
+msgstr "Integrazione"
+
+#: optiondialog.cpp:1549
+msgid "Integration Settings"
+msgstr "Impostazioni di integrazione"
+
+#: optiondialog.cpp:1563
+msgid "Command line options to ignore:"
+msgstr "Opzioni da riga di comando da ignorare:"
+
+#: optiondialog.cpp:1568
+msgid ""
+"List of command line options that should be ignored when KDiff3 is used by "
+"other tools.\n"
+"Several values can be specified if separated via ';'\n"
+"This will suppress the \"Unknown option\" error."
+msgstr ""
+"Lista delle opzioni da riga di comando che dovrebbero essere ignorate quando "
+"KDiff3 viene usato da altri strumenti.\n"
+"Si possono specificare diversi valori se separati con «;»\n"
+"Questo eliminerà l'errore «Opzione sconosciuta»."
+
+#: optiondialog.cpp:1575
+msgid "Quit also via Escape key"
+msgstr "Esci anche con il tasto Esc"
+
+#: optiondialog.cpp:1578
+msgid ""
+"Fast method to exit.\n"
+"For those who are used to using the Escape key."
+msgstr ""
+"Metodo di uscita veloce.\n"
+"Per chi è abituato a usare il tasto Esc."
+
+#: optiondialog.cpp:1583
+msgid "Integrate with ClearCase"
+msgstr "Integra con ClearCase"
+
+#: optiondialog.cpp:1586
+msgid ""
+"Integrate with Rational ClearCase from IBM.\n"
+"Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n"
+"(Only enabled when ClearCase \"bin\" directory is in the path.)"
+msgstr ""
+"Integra con Rational ClearCase di IBM.\n"
+"Modifica il file «map» nella sottocartella di ClearCase «lib/mgrs»\n"
+"(abilitato solo quando la cartella «bin» di ClearCase è nel percorso)."
+
+#: optiondialog.cpp:1592
+msgid "Remove ClearCase Integration"
+msgstr "Rimuovi l'integrazione con ClearCase"
+
+#: optiondialog.cpp:1595
+msgid ""
+"Restore the old \"map\" file from before doing the ClearCase integration."
+msgstr ""
+"Ripristina il vecchio file «map» com'era prima dell'integrazione con "
+"ClearCase."
+
+#: optiondialog.cpp:1680
+msgid "Incompatible Font"
+msgstr "Carattere non compatibile"
+
+#: optiondialog.cpp:1681
+msgid "Continue at Own Risk"
+msgstr "Continua a tuo rischio"
+
+#: optiondialog.cpp:1682
+msgid "Select Another Font"
+msgstr "Scegli un altro carattere"
+
+#: optiondialog.cpp:1717
+msgid "This resets all options. Not only those of the current topic."
+msgstr ""
+"Questo ripristina tutte le opzioni, non solo quelle dell'argomento attuale."
+
+#: pdiff.cpp:260
+msgid "PreprocessorCmd: "
+msgstr "Comando del preprocessore: "
+
+#: pdiff.cpp:265
+msgid "The following option(s) you selected might change data:\n"
+msgstr ""
+"Le opzioni seguenti che hai selezionato potrebbero modificare dei dati:\n"
+
+#: pdiff.cpp:266
+msgid ""
+"\n"
+"Most likely this is not wanted during a merge.\n"
+"Do you want to disable these settings or continue with these settings active?"
+msgstr ""
+"\n"
+"Di solito questo non è quello che si vuole in una fusione.\n"
+"Vuoi disabilitare queste opzioni o continuare mantenendole in funzione?"
+
+#: pdiff.cpp:268
+msgid "Option Unsafe for Merging"
+msgstr "Opzioni non sicure per la fusione"
+
+#: pdiff.cpp:269
+msgid "Use These Options During Merge"
+msgstr "Usa queste opzioni nella fusione"
+
+#: pdiff.cpp:270
+msgid "Disable Unsafe Options"
+msgstr "Disattiva le opzioni non sicure"
+
+#: pdiff.cpp:300
+msgid "Loading A"
+msgstr "Caricamento di A"
+
+#: pdiff.cpp:304
+msgid "Loading B"
+msgstr "Caricamento di B"
+
+#: pdiff.cpp:321 pdiff.cpp:347
+msgid "Diff: A <-> B"
+msgstr "Differenze: A <-> B"
+
+#: pdiff.cpp:327 pdiff.cpp:372
+msgid "Linediff: A <-> B"
+msgstr "Differenze per righe: A <-> B"
+
+#: pdiff.cpp:338
+msgid "Loading C"
+msgstr "Caricamento di C"
+
+#: pdiff.cpp:350
+msgid "Diff: B <-> C"
+msgstr "Differenze: B <-> C"
+
+#: pdiff.cpp:353
+msgid "Diff: A <-> C"
+msgstr "Differenze: A <-> C"
+
+#: pdiff.cpp:375
+msgid "Linediff: B <-> C"
+msgstr "Differenze per righe: B <-> C"
+
+#: pdiff.cpp:378
+msgid "Linediff: A <-> C"
+msgstr "Differenze per righe: A <-> C"
+
+#: pdiff.cpp:534
+msgid "All input files contain the same text, but are not binary equal."
+msgstr ""
+"Tutti i file di ingresso contengono lo stesso testo, ma non sono uguali a "
+"livello binario."
+
+#: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541
+#, kde-format
+msgid "Files %1 and %2 have equal text, but are not binary equal. \n"
+msgstr ""
+"I file %1 e %2 contengono lo stesso testo, ma non sono uguali a livello "
+"binario. \n"
+
+#: pdiff.cpp:551
+msgid ""
+"Some inputfiles don't seem to be pure textfiles.\n"
+"Note that the KDiff3-merge was not meant for binary data.\n"
+"Continue at your own risk."
+msgstr ""
+"Alcuni file di ingresso non sembrano essere file puramente di testo.\n"
+"Tieni conto che la fusione di KDiff3 non è fatta per i file binari.\n"
+"Se vuoi continuare, lo fai a tuo rischio e pericolo."
+
+#: pdiff.cpp:566
+#, kde-format
+msgid ""
+"Some input characters could not be converted to valid unicode.\n"
+"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n"
+"Don't save the result if unsure. Continue at your own risk.\n"
+"Affected input files are in %1."
+msgstr ""
+"Non si è potuto convertire alcuni caratteri in ingresso in Unicode.\n"
+"Forse usi la codifica sbagliata (per esempio UTF8 per file non UTF8).\n"
+"Non salvare i risultati se non sei sicuro. Continua a tuo rischio e "
+"pericolo.\n"
+"I file di ingresso in questione sono in %1."
+
+#: pdiff.cpp:1080
+msgid "Abort"
+msgstr "Interrompi"
+
+#: pdiff.cpp:1087 pdiff.cpp:1175
+msgid "Opening files..."
+msgstr "Apertura dei file..."
+
+#: pdiff.cpp:1152 pdiff.cpp:1223
+msgid "File open error"
+msgstr "Errore nell'apertura del file"
+
+#: pdiff.cpp:1255
+msgid "Cutting selection..."
+msgstr "Taglio della selezione..."
+
+#: pdiff.cpp:1276
+msgid "Copying selection to clipboard..."
+msgstr "Copia della selezione negli appunti..."
+
+#: pdiff.cpp:1292
+msgid "Inserting clipboard contents..."
+msgstr "Inserimento dei contenuti degli appunti..."
+
+#: pdiff.cpp:1814
+msgid "Save && Continue"
+msgstr "Salva e continua"
+
+#: pdiff.cpp:1815
+msgid "Continue Without Saving"
+msgstr "Continua senza salvare"
+
+#: pdiff.cpp:2018
+msgid "Search complete."
+msgstr "Ricerca completata."
+
+#: pdiff.cpp:2018
+msgid "Search Complete"
+msgstr "Ricerca completata"
+
+#: pdiff.cpp:2252
+msgid "Nothing is selected in either diff input window."
+msgstr ""
+"Non è selezionato niente in nessuna delle finestre di ingresso delle "
+"differenze."
+
+#: pdiff.cpp:2252
+msgid "Error while adding manual diff range"
+msgstr "Errore nell'aggiunta di intervalli di differenze manuali"
+
+#: kdiff3_shell.cpp:76
+msgid ""
+"Could not initialize the KDiff3 part.\n"
+"This usually happens due to an installation problem. Please read the README-"
+"file in the source package for details."
+msgstr ""
+"Impossibile inizializzare il componente KDiff3.\n"
+"Questo di solito accade per problemi di installazione. Per maggiori dettagli "
+"leggi il file README nel pacchetto del codice sorgente."
+
+#: rc.cpp:1
+msgctxt "NAME OF TRANSLATORS"
+msgid "Your names"
+msgstr "Federico Zenith,Marcello Anni,Andrea Celli"
+
+#: rc.cpp:2
+msgctxt "EMAIL OF TRANSLATORS"
+msgid "Your emails"
+msgstr "federico.zenith@member.fsf.org,,"
+
+#. i18n: file: kdiff3_part.rc:4
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:5
+msgid "&KDiff3"
+msgstr "&KDiff3"
+
+#. i18n: file: kdiff3_part.rc:13
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:8
+msgid "Configure KDiff3"
+msgstr "Configura KDiff3"
+
+#. i18n: file: kdiff3_part.rc:16
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:11
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#. i18n: file: kdiff3_shell.rc:106
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:38
+msgid "Main Toolbar"
+msgstr "Barra degli strumenti principale"
+
+#~ msgid "Directory Merge"
+#~ msgstr "Fusione di directory"
+
+#~ msgid ""
+#~ "_: NAME OF TRANSLATORS\n"
+#~ "Your names"
+#~ msgstr "Andrea Celli, Marcello Anni"
+
+#~ msgid ""
+#~ "_: EMAIL OF TRANSLATORS\n"
+#~ "Your emails"
+#~ msgstr "andrea.celli@libero.it, marcello.anni@alice.it"
+
+#~ msgid "Enables/disables the toolbar"
+#~ msgstr "Mostra/nascondi la barra degli strumenti"
diff --git a/po/it/kdiff3fileitemactionplugin.po b/po/it/kdiff3fileitemactionplugin.po
new file mode 100644 (file)
index 0000000..51a0df0
--- /dev/null
@@ -0,0 +1,97 @@
+# Copyright (C) YEAR This_file_is_part_of_KDE
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Federico Zenith <federico.zenith@member.fsf.org>, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-05-15 21:53+0200\n"
+"Last-Translator: Federico Zenith <federico.zenith@member.fsf.org>\n"
+"Language-Team: Italian <kde-i18n-it@kde.org>\n"
+"Language: it\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.2\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: kdiff3fileitemaction.cpp:94
+msgid "KDiff3 ..."
+msgstr "KDiff3..."
+
+#: kdiff3fileitemaction.cpp:125
+#, kde-format
+msgid "Compare with %1"
+msgstr "Confronta con %1"
+
+#: kdiff3fileitemaction.cpp:131
+#, kde-format
+msgid "Merge with %1"
+msgstr "Fondi con %1"
+
+#: kdiff3fileitemaction.cpp:137
+#, kde-format
+msgid "Save '%1' for later"
+msgstr "Memorizza «%1»"
+
+#: kdiff3fileitemaction.cpp:143
+msgid "3-way merge with base"
+msgstr "Fusione a tre con base"
+
+#: kdiff3fileitemaction.cpp:150
+msgid "Compare with ..."
+msgstr "Confronta con..."
+
+#: kdiff3fileitemaction.cpp:162
+msgid "Clear list"
+msgstr "Pulisci elenco"
+
+#: kdiff3fileitemaction.cpp:170
+msgid "Compare"
+msgstr "Confronta"
+
+#: kdiff3fileitemaction.cpp:176
+msgid "3 way comparison"
+msgstr "Confronto a tre"
+
+#: kdiff3fileitemaction.cpp:180
+msgid "About KDiff3 menu plugin ..."
+msgstr "Informazioni sull'estensione KDiff3 per menu..."
+
+#: kdiff3fileitemaction.cpp:284
+msgid ""
+"KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+"Estensione KDiff3 per azioni su file: copyright 2011 di Joachim Eibl\n"
+"Pagina Web di KDiff3: http://kdiff3.sourceforge.net\n"
+"\n"
+
+#: kdiff3fileitemaction.cpp:286
+msgid ""
+"Using the contextmenu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else \"Save\" the first file for later. It "
+"will appear in the \"Compare With ...\" submenu. Then use \"Compare With\" "
+"on second file.\n"
+"For a 3-way merge first \"Save\" the base file, then the branch to merge and "
+"choose \"3-way merge with base\" on the other branch which will be used as "
+"destination.\n"
+"Same also applies to directory comparison and merge."
+msgstr ""
+"Usare l'estensione del menu contestuale:\n"
+"Per un confronto semplice di due file selezionati, seleziona «Confronta».\n"
+"Se l'altro file è da un'altra parte, «Memorizza» il primo file: apparirà nel "
+"sottomenu «Confronta con...». Usa quindi «Confronta con» su un secondo "
+"file.\n"
+"Per una fusione a tre «Salva» prima il file di base, quindi il ramo da "
+"fondere e seleziona «Fusione a tre con base» sull'altro ramo che verrà usato "
+"come destinazione.\n"
+"Lo stesso vale per il confronto e la fusione tra cartelle."
+
+#: kdiff3fileitemaction.cpp:294
+msgid "About KDiff3 File Item Action Plugin"
+msgstr "Informazioni sull'estensione KDiff3 per azioni sui file"
diff --git a/po/it/kdiff3plugin.po b/po/it/kdiff3plugin.po
new file mode 100644 (file)
index 0000000..1911b7e
--- /dev/null
@@ -0,0 +1,95 @@
+# translation of kdiff3_plugin.po to Italian
+#
+# Federico Zenith <federico.zenith@member.fsf.org>, 2006, 2007, 2009, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3_plugin\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-05-15 15:46+0200\n"
+"Last-Translator: Federico Zenith <federico.zenith@member.fsf.org>\n"
+"Language-Team: Italian <kde-i18n-it@lists.kde.org>\n"
+"Language: it\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.2\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: kdiff3plugin.cpp:107
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#: kdiff3plugin.cpp:114
+#, kde-format
+msgid "Compare with %1"
+msgstr "Confronta con %1"
+
+#: kdiff3plugin.cpp:120
+#, kde-format
+msgid "Merge with %1"
+msgstr "Fondi con %1"
+
+#: kdiff3plugin.cpp:126
+#, kde-format
+msgid "Save '%1' for later"
+msgstr "Memorizza «%1»"
+
+#: kdiff3plugin.cpp:132
+msgid "3-way merge with base"
+msgstr "Fusione a tre con base"
+
+#: kdiff3plugin.cpp:139
+msgid "Compare with ..."
+msgstr "Confronta con..."
+
+#: kdiff3plugin.cpp:149
+msgid "Clear list"
+msgstr "Pulisci elenco"
+
+#: kdiff3plugin.cpp:157
+msgid "Compare"
+msgstr "Confronta"
+
+#: kdiff3plugin.cpp:163
+msgid "3 way comparison"
+msgstr "Confronto a tre"
+
+#: kdiff3plugin.cpp:167
+msgid "About KDiff3 menu plugin ..."
+msgstr "Informazioni sull'estensione KDiff3 per menu..."
+
+#: kdiff3plugin.cpp:269
+msgid ""
+"KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+"Estensione KDiff3 per menu: copyright 2008 di Joachim Eibl\n"
+"Pagina Web di KDiff3: http://kdiff3.sourceforge.net\n"
+"\n"
+
+#: kdiff3plugin.cpp:271
+msgid ""
+"Using the context menu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else, \"Save\" the first file for later, and "
+"it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With"
+"\" on the second file.\n"
+"For a 3-way merge first, \"Save\" the base file, then the branch to merge, "
+"and then \"3-way merge with base\" on the other branch which will be used as "
+"the destination.\n"
+"The same also applies to directory comparison and merge."
+msgstr ""
+"Usare l'estensione del menu contestuale:\n"
+"Per un semplice confronto tra due file selezionati scegli «Confronta».\n"
+"Se l'altro file è da qualche altra parte, «Memorizza» il primo, e apparirà "
+"nel sottomenu «Confronta con...». Quindi, usa «Confronta con» sul secondo "
+"file.\n"
+"Per una fusione a tre, prima «Memorizza» il file di base, quindi il ramo da "
+"fondere, e poi scegli «Fusione a tre con base» sul ramo di destinazione.\n"
+"Lo stesso vale per il confronto e la fusione tra cartelle."
+
+#: kdiff3plugin.cpp:279
+msgid "About KDiff3 Menu Plugin"
+msgstr "Informazioni sull'estensione KDiff3 per menu"
diff --git a/po/ja/CMakeLists.txt b/po/ja/CMakeLists.txt
new file mode 100644 (file)
index 0000000..c34b0dd
--- /dev/null
@@ -0,0 +1,2 @@
+file(GLOB _po_files *.po)
+GETTEXT_PROCESS_PO_FILES(ja ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
diff --git a/po/ja/kdiff3.po b/po/ja/kdiff3.po
new file mode 100644 (file)
index 0000000..b1ce00c
--- /dev/null
@@ -0,0 +1,3159 @@
+# Translation of kdiff3 into Japanese.
+# SATOH Satoru <ss@kde.gr.jp>, 2004.
+# Yukiko Bando <ybando@k6.dion.ne.jp>, 2008.
+# Fumiaki Okushi <okushi@kde.gr.jp>, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2010-10-03 21:09-0700\n"
+"Last-Translator: Fumiaki Okushi <okushi@kde.gr.jp>\n"
+"Language-Team: Japanese <Kdeveloper@kde.gr.jp>\n"
+"Language: ja\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Accelerator-Marker: &\n"
+"X-Text-Markup: kde4\n"
+
+#: kreplacements/kreplacements.h:105
+msgid "Continue"
+msgstr "続行"
+
+#: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158
+#: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512
+msgid "Cancel"
+msgstr "キャンセル"
+
+#: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631
+msgid "Quit"
+msgstr "終了"
+
+#: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339
+msgid "Ok"
+msgstr "OK"
+
+#: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715
+msgid "Help"
+msgstr "ヘルプ"
+
+#: kreplacements/kreplacements.cpp:185
+msgid "Defaults"
+msgstr "標準設定"
+
+#. i18n: file: kdiff3_shell.rc:4
+#. i18n: ectx: Menu (file)
+#: kreplacements/kreplacements.cpp:296 rc.cpp:14
+msgid "&File"
+msgstr "ファイル(&F)"
+
+#: kreplacements/kreplacements.cpp:297
+msgid "&Edit"
+msgstr "編集(&E)"
+
+#. i18n: file: kdiff3_shell.rc:7
+#. i18n: ectx: Menu (directory)
+#: kreplacements/kreplacements.cpp:298 rc.cpp:17
+msgid "&Directory"
+msgstr "ディレクトリ(&D)"
+
+#. i18n: file: kdiff3_shell.rc:50
+#. i18n: ectx: Menu (movement)
+#: kreplacements/kreplacements.cpp:301 rc.cpp:26
+msgid "&Movement"
+msgstr "移動(&M)"
+
+#. i18n: file: kdiff3_shell.rc:61
+#. i18n: ectx: Menu (diff)
+#: kreplacements/kreplacements.cpp:302 rc.cpp:29
+msgid "D&iffview"
+msgstr "Diff ビュー(&I)"
+
+#. i18n: file: kdiff3_shell.rc:73
+#. i18n: ectx: Menu (merge)
+#: kreplacements/kreplacements.cpp:303 rc.cpp:32
+msgid "&Merge"
+msgstr "マージ(&M)"
+
+#. i18n: file: kdiff3_shell.rc:95
+#. i18n: ectx: Menu (window)
+#: kreplacements/kreplacements.cpp:304 rc.cpp:35
+msgid "&Window"
+msgstr "ウィンドウ(&W)"
+
+#: kreplacements/kreplacements.cpp:305
+msgid "&Settings"
+msgstr "設定(&S)"
+
+#: kreplacements/kreplacements.cpp:306
+msgid "&Help"
+msgstr "ヘルプ(&H)"
+
+#: kreplacements/kreplacements.cpp:353
+msgid "&About"
+msgstr "情報(&A)"
+
+#: kreplacements/kreplacements.cpp:369
+msgid "A&uthor"
+msgstr "作者(&U)"
+
+#: kreplacements/kreplacements.cpp:383
+msgid "&Thanks To"
+msgstr "&Thanks To"
+
+#. i18n: file: kdiff3_shell.rc:30
+#. i18n: ectx: Menu (dir_current_merge_menu)
+#: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497
+#: rc.cpp:20
+msgid "Current Item Merge Operation"
+msgstr "現在の項目のマージ操作"
+
+#. i18n: file: kdiff3_shell.rc:38
+#. i18n: ectx: Menu (dir_current_sync_menu)
+#: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498
+#: rc.cpp:23
+msgid "Current Item Sync Operation"
+msgstr "現在の項目の同期操作"
+
+#: kreplacements/kreplacements.cpp:597
+msgid "Open"
+msgstr "開く"
+
+#: kreplacements/kreplacements.cpp:606
+msgid "Save"
+msgstr "保存"
+
+#: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720
+msgid "Save As..."
+msgstr "名前を付けて保存..."
+
+#: kreplacements/kreplacements.cpp:623
+msgid "Print..."
+msgstr "印刷..."
+
+#: kreplacements/kreplacements.cpp:639
+msgid "Cut"
+msgstr "切り取り"
+
+#: kreplacements/kreplacements.cpp:647
+msgid "Copy"
+msgstr "コピー"
+
+#: kreplacements/kreplacements.cpp:655
+msgid "Paste"
+msgstr "貼り付け"
+
+#: kreplacements/kreplacements.cpp:663
+msgid "Select All"
+msgstr "すべて選択"
+
+#: kreplacements/kreplacements.cpp:671
+msgid "Show Toolbar"
+msgstr "ツールバーを表示"
+
+#: kreplacements/kreplacements.cpp:679
+msgid "Show &Status Bar"
+msgstr "ステータスバーを表示(&S)"
+
+#: kreplacements/kreplacements.cpp:687
+#, kde-format
+msgid "&Configure %1..."
+msgstr "%1 を設定(&C)..."
+
+#: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707
+msgid "About"
+msgstr "情報"
+
+#: kreplacements/kreplacements.cpp:722
+msgid "Find"
+msgstr "検索"
+
+#: kreplacements/kreplacements.cpp:730
+msgid "Find Next"
+msgstr "次を検索"
+
+#: kreplacements/kreplacements.cpp:750
+msgid "Select Font"
+msgstr "フォントを選択"
+
+#: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676
+msgid ""
+"You selected a variable width font.\n"
+"\n"
+"Because this program doesn't handle variable width fonts\n"
+"correctly, you might experience problems while editing.\n"
+"\n"
+"Do you want to continue or do you want to select another font."
+msgstr ""
+"可変幅なフォントを選択しています。\n"
+"\n"
+"このプログラムは可変幅フォントを適切に扱えないので、\n"
+"編集中に問題が発生する可能性があります。\n"
+"\n"
+"自己責任で続行するか、他のフォントを選択してください。"
+
+#: kreplacements/kreplacements.cpp:792
+msgid "Incompatible font."
+msgstr "非互換なフォント"
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Continue at my own risk"
+msgstr "自己責任で続行"
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Select another font"
+msgstr "他のフォントを選択"
+
+#: kreplacements/kreplacements.cpp:1134
+msgid "For more documentation, see the help-menu or the subdirectory doc."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1137
+#, fuzzy
+#| msgid "KDiff3"
+msgid "KDiff3-Usage"
+msgstr "KDiff3"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Ignore"
+msgstr "無視"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Exit"
+msgstr "終了"
+
+#: diff.cpp:251
+msgid "Writing clipboard data to temp file failed."
+msgstr "クリップボードのデータを一時ファイルに書き込めませんでした。"
+
+#: diff.cpp:255
+msgid "From Clipboard"
+msgstr "クリップボードから"
+
+#: diff.cpp:471
+msgid "Expecting space after closing quotation mark."
+msgstr ""
+
+#: diff.cpp:474
+msgid "Not matching quotation marks."
+msgstr ""
+
+#: diff.cpp:496
+msgid "Unexpected quotation mark within argument."
+msgstr ""
+
+#: diff.cpp:503
+msgid "No program specified."
+msgstr ""
+
+#: diff.cpp:605
+#, kde-format
+msgid ""
+"Preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The preprocessing command will be disabled now."
+msgstr ""
+
+#: diff.cpp:653
+#, kde-format
+msgid ""
+"The line-matching-preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The line-matching-preprocessing command will be disabled now."
+msgstr ""
+
+#: diff.cpp:1776 diff.cpp:1790
+msgid ""
+"Data loss error:\n"
+"If it is reproducible please contact the author.\n"
+msgstr ""
+"データ消失エラー:\n"
+"再現可能であれば、プログラムの作者に連絡してください。\n"
+
+#: diff.cpp:1778 diff.cpp:1792
+msgid "Severe Internal Error"
+msgstr "深刻な内部エラー"
+
+#: directorymergewindow.cpp:136
+msgid "Mix of links and normal files."
+msgstr "リンクと普通のファイルが混在しています。"
+
+#: directorymergewindow.cpp:143
+msgid "Link: "
+msgstr "リンク: "
+
+#: directorymergewindow.cpp:151
+msgid "Size. "
+msgstr "サイズ"
+
+#: directorymergewindow.cpp:164 directorymergewindow.cpp:174
+msgid "Date & Size: "
+msgstr "日付とサイズ: "
+
+#: directorymergewindow.cpp:184 directorymergewindow.cpp:190
+#, kde-format
+msgid "Creating temp copy of %1 failed."
+msgstr "%1 の一時コピーの作成に失敗しました。"
+
+#: directorymergewindow.cpp:201 directorymergewindow.cpp:209
+#, kde-format
+msgid "Opening %1 failed."
+msgstr "%1 を開けませんでした。"
+
+#: directorymergewindow.cpp:213
+msgid "Comparing file..."
+msgstr "ファイルを比較中..."
+
+#: directorymergewindow.cpp:223 directorymergewindow.cpp:229
+#, kde-format
+msgid "Error reading from %1"
+msgstr "%1 からの読み込みエラー"
+
+#: directorymergewindow.cpp:358
+msgid "Name"
+msgstr "名前"
+
+#: directorymergewindow.cpp:358
+msgid "Operation"
+msgstr "操作"
+
+#: directorymergewindow.cpp:358
+msgid "Status"
+msgstr "状態"
+
+#: directorymergewindow.cpp:359
+msgid "Unsolved"
+msgstr "未解決"
+
+#: directorymergewindow.cpp:359
+msgid "Solved"
+msgstr "解決済み"
+
+#: directorymergewindow.cpp:359
+msgid "Nonwhite"
+msgstr "ホワイトスペース以外"
+
+#: directorymergewindow.cpp:359
+msgid "White"
+msgstr "ホワイトスペース"
+
+#: directorymergewindow.cpp:388
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort "
+"the merge and rescan the directory?"
+msgstr ""
+"ディレクトリマージを実行中です。本当にマージを中止し、ディレクトリを再スキャ"
+"ンしますか?"
+
+#: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655
+#: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823
+msgid "Warning"
+msgstr "警告"
+
+#: directorymergewindow.cpp:390 directorymergewindow.cpp:2965
+msgid "Rescan"
+msgstr "再スキャン"
+
+#: directorymergewindow.cpp:391 pdiff.cpp:1081
+msgid "Continue Merging"
+msgstr "マージを続行"
+
+#: directorymergewindow.cpp:548
+msgid "Opening of directories failed:"
+msgstr "ディレクトリを開けませんでした:"
+
+#: directorymergewindow.cpp:551
+#, kde-format
+msgid "Dir A \"%1\" does not exist or is not a directory.\n"
+msgstr ""
+"ディレクトリ A <filename>%1</filename> は存在しないか、ディレクトリではありま"
+"せん。\n"
+
+#: directorymergewindow.cpp:554
+#, kde-format
+msgid "Dir B \"%1\" does not exist or is not a directory.\n"
+msgstr ""
+"ディレクトリ B <filename>%1</filename> は存在しないか、ディレクトリではありま"
+"せん。\n"
+
+#: directorymergewindow.cpp:557
+#, kde-format
+msgid "Dir C \"%1\" does not exist or is not a directory.\n"
+msgstr ""
+"ディレクトリ C <filename>%1</filename> は存在しないか、ディレクトリではありま"
+"せん。\n"
+
+#: directorymergewindow.cpp:559
+msgid "Directory Open Error"
+msgstr "ディレクトリのオープンエラー"
+
+#: directorymergewindow.cpp:567
+msgid ""
+"The destination directory must not be the same as A or B when three "
+"directories are merged.\n"
+"Check again before continuing."
+msgstr ""
+"3 つのディレクトリをマージする場合、マージ先ディレクトリは A や B と同じで"
+"あってはいけません。\n"
+"続行する前にもう一度確認してください。"
+
+#: directorymergewindow.cpp:569
+msgid "Parameter Warning"
+msgstr "パラメータ警告"
+
+#: directorymergewindow.cpp:574
+msgid "Scanning directories..."
+msgstr "ディレクトリをスキャン中..."
+
+#: directorymergewindow.cpp:607
+msgid "Reading Directory A"
+msgstr "ディレクトリ A を読み込み中"
+
+#: directorymergewindow.cpp:629
+msgid "Reading Directory B"
+msgstr "ディレクトリ B を読み込み中"
+
+#: directorymergewindow.cpp:651
+msgid "Reading Directory C"
+msgstr "ディレクトリ C を読み込み中"
+
+#: directorymergewindow.cpp:677
+msgid "Some subdirectories were not readable in"
+msgstr "いくつかのサブディレクトリが読み込み不可でした"
+
+#: directorymergewindow.cpp:682
+msgid "Check the permissions of the subdirectories."
+msgstr "サブディレクトリのパーミッションを確認してください。"
+
+#: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737
+#: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233
+#: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328
+msgid "Ready."
+msgstr "準備完了。"
+
+#: directorymergewindow.cpp:735
+msgid "Directory Comparison Status"
+msgstr "ディレクトリ比較状態"
+
+#: directorymergewindow.cpp:736
+msgid "Number of subdirectories:"
+msgstr "サブディレクトリ数:"
+
+#: directorymergewindow.cpp:737
+msgid "Number of equal files:"
+msgstr "等しいファイルの数:"
+
+#: directorymergewindow.cpp:738
+msgid "Number of different files:"
+msgstr "異なるファイルの数:"
+
+#: directorymergewindow.cpp:741
+msgid "Number of manual merges:"
+msgstr "手作業でのマージ数:"
+
+#: directorymergewindow.cpp:912
+msgid "This affects all merge operations."
+msgstr "これはすべてのマージ操作に影響します。"
+
+#: directorymergewindow.cpp:913
+msgid "Changing All Merge Operations"
+msgstr "すべてのマージ操作を更新中"
+
+#: directorymergewindow.cpp:1312
+msgid "Processing "
+msgstr "処理中"
+
+#: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742
+#, fuzzy
+msgid "To do."
+msgstr "To do."
+
+#: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996
+msgid "Copy A to B"
+msgstr "A を B にコピー"
+
+#: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997
+msgid "Copy B to A"
+msgstr "B を A にコピー"
+
+#: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998
+msgid "Delete A"
+msgstr "A を削除"
+
+#: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999
+msgid "Delete B"
+msgstr "B を削除"
+
+#: directorymergewindow.cpp:1814
+msgid "Delete A & B"
+msgstr "A と B を削除"
+
+#: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001
+msgid "Merge to A"
+msgstr "A にマージ"
+
+#: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002
+msgid "Merge to B"
+msgstr "B にマージ"
+
+#: directorymergewindow.cpp:1817
+msgid "Merge to A & B"
+msgstr "A と B にマージ"
+
+#: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993
+msgid "Delete (if exists)"
+msgstr "(存在すれば) 削除"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+#: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869
+msgid "Merge"
+msgstr "マージ"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+msgid "Merge (manual)"
+msgstr "マージ (手作業)"
+
+#: directorymergewindow.cpp:1824
+msgid "Error: Conflicting File Types"
+msgstr "エラー: ファイルタイプが衝突しています"
+
+#: directorymergewindow.cpp:1825
+msgid "Error: Changed and Deleted"
+msgstr ""
+
+#: directorymergewindow.cpp:1826
+msgid "Error: Dates are equal but files are not."
+msgstr "エラー: 日付は同じですが、ファイルは等しくありません。"
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906
+msgid "This operation is currently not possible."
+msgstr "この操作は今はできません。"
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174
+msgid "Operation Not Possible"
+msgstr "操作不可"
+
+#: directorymergewindow.cpp:1945
+msgid ""
+"This should never happen: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"If you know how to reproduce this, please contact the program author."
+msgstr ""
+"これは起きてはならないことです: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"再現可能であれば、プログラムの作者に連絡してください。"
+
+#: directorymergewindow.cpp:1945
+msgid "Program Error"
+msgstr "プログラムエラー"
+
+#: directorymergewindow.cpp:1956
+msgid "An error occurred while copying.\n"
+msgstr "コピー中にエラーが発生しました。\n"
+
+#: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025
+#: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105
+#: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123
+#: directorymergewindow.cpp:2374
+msgid "Error"
+msgstr "エラー"
+
+#: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375
+msgid "Merge Error"
+msgstr "マージエラー"
+
+#: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380
+msgid "Error."
+msgstr "エラー"
+
+#: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272
+#: directorymergewindow.cpp:2312
+msgid "Done."
+msgstr "完了"
+
+#: directorymergewindow.cpp:1990
+msgid "Not saved."
+msgstr "未保存"
+
+#: directorymergewindow.cpp:2025
+msgid "Unknown merge operation. (This must never happen!)"
+msgstr "不明なマージ操作 (これは起きてはならないことです)"
+
+#: directorymergewindow.cpp:2057
+msgid "Unknown merge operation."
+msgstr "不明なマージ操作です。"
+
+#: directorymergewindow.cpp:2072
+msgid ""
+"The merge is about to begin.\n"
+"\n"
+"Choose \"Do it\" if you have read the instructions and know what you are "
+"doing.\n"
+"Choosing \"Simulate it\" will tell you what would happen.\n"
+"\n"
+"Be aware that this program still has beta status and there is NO WARRANTY "
+"whatsoever! Make backups of your vital data!"
+msgstr ""
+"マージ準備完了\n"
+"\n"
+"説明を読んで何をしているか分かっているなら<interface>実行</interface>を選択し"
+"てください。\n"
+"\n"
+"実行する前にマージの結果を知りたいなら<interface>試行</interface>を選択してく"
+"ださい。\n"
+"\n"
+"このプログラムはまだベータ段階で何が起きても無保証だということに注意してくだ"
+"さい!重要なデータはバックアップを取ってください!"
+
+#: directorymergewindow.cpp:2077
+msgid "Starting Merge"
+msgstr "マージ開始"
+
+#: directorymergewindow.cpp:2078
+msgid "Do It"
+msgstr "実行"
+
+#: directorymergewindow.cpp:2079
+msgid "Simulate It"
+msgstr "試行"
+
+#: directorymergewindow.cpp:2105
+msgid ""
+"The highlighted item has a different type in the different directories. "
+"Select what to do."
+msgstr ""
+"強調表示された項目はディレクトリによってタイプが違います。どうするか選択して"
+"ください。"
+
+#: directorymergewindow.cpp:2114
+msgid ""
+"The modification dates of the file are equal but the files are not. Select "
+"what to do."
+msgstr ""
+"ファイルの更新日時は同じですが、ファイルは等しくありません。どうするか選択し"
+"てください。"
+
+#: directorymergewindow.cpp:2123
+msgid ""
+"The highlighted item was changed in one directory and deleted in the other. "
+"Select what to do."
+msgstr ""
+"強調表示された項目は一方のディレクトリで変更され、他方のディレクトリで削除さ"
+"れました。どうするか選択してください。"
+
+#: directorymergewindow.cpp:2174
+msgid ""
+"This operation is currently not possible because directory merge is "
+"currently running."
+msgstr "ディレクトリマージ中なのでこの操作を実行することはできません。"
+
+#: directorymergewindow.cpp:2234
+msgid ""
+"There was an error in the last step.\n"
+"Do you want to continue with the item that caused the error or do you want "
+"to skip this item?"
+msgstr ""
+"最終段階でエラーが発生しました。\n"
+"エラーを起した項目について続行しますか?それともスキップしますか?"
+
+# @title:window?
+#: directorymergewindow.cpp:2236
+msgid "Continue merge after an error"
+msgstr "エラー後のマージ続行"
+
+#: directorymergewindow.cpp:2237
+msgid "Continue With Last Item"
+msgstr "最後の項目について続行"
+
+#: directorymergewindow.cpp:2238
+msgid "Skip Item"
+msgstr "項目をスキップ"
+
+#: directorymergewindow.cpp:2272
+msgid "Skipped."
+msgstr "スキップしました。"
+
+#: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493
+msgid "In progress..."
+msgstr "進行中..."
+
+#: directorymergewindow.cpp:2327
+msgid "Merge operation complete."
+msgstr "マージ操作が完了しました。"
+
+#: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330
+msgid "Merge Complete"
+msgstr "マージ完了"
+
+#: directorymergewindow.cpp:2340
+msgid ""
+"Simulated merge complete: Check if you agree with the proposed operations."
+msgstr "マージ試行完了: この操作をしてもよいか確認してください。"
+
+#: directorymergewindow.cpp:2374
+msgid "An error occurred. Press OK to see detailed information.\n"
+msgstr ""
+"エラーが発生しました。詳細情報を見るには<interface>OK</interface>をクリックし"
+"てください。\n"
+
+#: directorymergewindow.cpp:2406
+#, kde-format
+msgid "Error: While deleting %1: Creating backup failed."
+msgstr "エラー: %1 の削除中にバックアップファイルを作成できませんでした。"
+
+#: directorymergewindow.cpp:2413
+#, kde-format
+msgid "delete directory recursively( %1 )"
+msgstr "再帰的にディレクトリを削除 (%1)"
+
+#: directorymergewindow.cpp:2415
+#, kde-format
+msgid "delete( %1 )"
+msgstr "削除 (%1)"
+
+#: directorymergewindow.cpp:2430
+msgid "Error: delete dir operation failed while trying to read the directory."
+msgstr "エラー: ディレクトリの削除がディレクトリの読み込み中に失敗しました。"
+
+#: directorymergewindow.cpp:2449
+#, kde-format
+msgid "Error: rmdir( %1 ) operation failed."
+msgstr "エラー: ディレクトリの削除 (%1) に失敗しました。"
+
+#: directorymergewindow.cpp:2459
+msgid "Error: delete operation failed."
+msgstr "エラー: 削除に失敗しました。"
+
+#: directorymergewindow.cpp:2485
+#, kde-format
+msgid "manual merge( %1, %2, %3 -> %4)"
+msgstr "手作業でのマージ (%1, %2, %3 -> %4)"
+
+#: directorymergewindow.cpp:2488
+msgid ""
+"     Note: After a manual merge the user should continue by pressing F7."
+msgstr ""
+"<note label='注'>手作業でのマージ後に続行するには F7 を押してください。</"
+"note>"
+
+#: directorymergewindow.cpp:2513
+#, kde-format
+msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed."
+msgstr ""
+"エラー: コピー (%1 -> %2) に失敗しました。既存のコピー先を削除できませんでし"
+"た。"
+
+#: directorymergewindow.cpp:2522
+#, kde-format
+msgid "copyLink( %1 -> %2 )"
+msgstr "リンクをコピー (%1 -> %2)"
+
+#: directorymergewindow.cpp:2533
+msgid "Error: copyLink failed: Remote links are not yet supported."
+msgstr "エラー: リンクのコピーに失敗しました。リモートリンクは未サポートです。"
+
+#: directorymergewindow.cpp:2539
+msgid "Error: copyLink failed."
+msgstr "エラー: リンクのコピーに失敗しました。"
+
+#: directorymergewindow.cpp:2564
+#, kde-format
+msgid "copy( %1 -> %2 )"
+msgstr "コピー (%1 -> %2)"
+
+#: directorymergewindow.cpp:2590
+#, kde-format
+msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination."
+msgstr "名前変更 (%1 -> %2) 中にエラー: 既存のコピー先を削除できません。"
+
+#: directorymergewindow.cpp:2596
+#, kde-format
+msgid "rename( %1 -> %2 )"
+msgstr "名前変更 (%1 -> %2)"
+
+#: directorymergewindow.cpp:2605
+msgid "Error: Rename failed."
+msgstr "エラー: 名前変更に失敗しました。"
+
+#: directorymergewindow.cpp:2623
+#, kde-format
+msgid "Error during makeDir of %1. Cannot delete existing file."
+msgstr ""
+"ディレクトリの作成 (%1) 中にエラーが発生しました。既存のファイルを削除できま"
+"せん。"
+
+#: directorymergewindow.cpp:2639
+#, kde-format
+msgid "makeDir( %1 )"
+msgstr "ディレクトリを作成 (%1)"
+
+#: directorymergewindow.cpp:2649
+msgid "Error while creating directory."
+msgstr "ディレクトリの作成中にエラーが発生しました。"
+
+#: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784
+msgid "Dest"
+msgstr "先"
+
+#: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709
+msgid "Dir"
+msgstr "ディレクトリ"
+
+#: directorymergewindow.cpp:2678
+msgid "Type"
+msgstr "タイプ"
+
+#: directorymergewindow.cpp:2678
+msgid "Size"
+msgstr "サイズ"
+
+#: directorymergewindow.cpp:2679
+msgid "Attr"
+msgstr "属性"
+
+#: directorymergewindow.cpp:2679
+msgid "Last Modification"
+msgstr "最終更新"
+
+#: directorymergewindow.cpp:2679
+msgid "Link-Destination"
+msgstr "リンク先"
+
+#: directorymergewindow.cpp:2709 difftextwindow.cpp:401
+msgid "File"
+msgstr "ファイル"
+
+#: directorymergewindow.cpp:2726
+msgid "not available"
+msgstr "利用不可"
+
+#: directorymergewindow.cpp:2746
+msgid "A (Dest): "
+msgstr "A (先): "
+
+#: directorymergewindow.cpp:2749
+msgid "A (Base): "
+msgstr "A (元): "
+
+#: directorymergewindow.cpp:2755
+msgid "B (Dest): "
+msgstr "B (先): "
+
+#: directorymergewindow.cpp:2763
+msgid "C (Dest): "
+msgstr "C (先): "
+
+#: directorymergewindow.cpp:2769
+msgid "Dest: "
+msgstr "先: "
+
+#: directorymergewindow.cpp:2836
+msgid "Save Directory Merge State As..."
+msgstr "ディレクトリマージの状態を保存..."
+
+#: directorymergewindow.cpp:2959
+msgid "Start/Continue Directory Merge"
+msgstr "ディレクトリマージを開始/続行"
+
+#: directorymergewindow.cpp:2960
+msgid "Run Operation for Current Item"
+msgstr "現在の項目について操作を実行"
+
+#: directorymergewindow.cpp:2961
+msgid "Compare Selected File"
+msgstr "選択ファイルを比較 "
+
+#: directorymergewindow.cpp:2962
+msgid "Merge Current File"
+msgstr "現在のファイルをマージ "
+
+#: directorymergewindow.cpp:2962
+msgid ""
+"Merge\n"
+"File"
+msgstr ""
+"ファイル\n"
+"をマージ"
+
+#: directorymergewindow.cpp:2963
+msgid "Fold All Subdirs"
+msgstr "すべてのサブディレクトリをたたむ"
+
+#: directorymergewindow.cpp:2964
+msgid "Unfold All Subdirs"
+msgstr "すべてのサブディレクトリを展開"
+
+#: directorymergewindow.cpp:2968
+msgid "Choose A for All Items"
+msgstr "すべての項目について A を選択"
+
+#: directorymergewindow.cpp:2969
+msgid "Choose B for All Items"
+msgstr "すべての項目について B を選択"
+
+#: directorymergewindow.cpp:2970
+msgid "Choose C for All Items"
+msgstr "すべての項目について C を選択"
+
+#: directorymergewindow.cpp:2971
+msgid "Auto-Choose Operation for All Items"
+msgstr "すべての項目について自動選択"
+
+#: directorymergewindow.cpp:2972
+msgid "No Operation for All Items"
+msgstr "すべての項目について操作なし"
+
+#: directorymergewindow.cpp:2977
+msgid "Show Identical Files"
+msgstr "等しいファイルを表示"
+
+#: directorymergewindow.cpp:2977
+msgid ""
+"Identical\n"
+"Files"
+msgstr ""
+"等しい\n"
+"ファイル"
+
+#: directorymergewindow.cpp:2978
+msgid "Show Different Files"
+msgstr "異なるファイルを表示"
+
+#: directorymergewindow.cpp:2979
+msgid "Show Files only in A"
+msgstr "A にのみ存在するファイルを表示"
+
+#: directorymergewindow.cpp:2979
+msgid ""
+"Files\n"
+"only in A"
+msgstr ""
+"A にのみ存在\n"
+"するファイル"
+
+#: directorymergewindow.cpp:2980
+msgid "Show Files only in B"
+msgstr "B にのみ存在するファイルを表示"
+
+#: directorymergewindow.cpp:2980
+msgid ""
+"Files\n"
+"only in B"
+msgstr ""
+"B にのみ存在\n"
+"するファイル"
+
+#: directorymergewindow.cpp:2981
+msgid "Show Files only in C"
+msgstr "C にのみ存在するファイルを表示"
+
+#: directorymergewindow.cpp:2981
+msgid ""
+"Files\n"
+"only in C"
+msgstr ""
+"C にのみ存在\n"
+"するファイル"
+
+#: directorymergewindow.cpp:2985
+msgid "Compare Explicitly Selected Files"
+msgstr "明示的に選択したファイルを比較"
+
+#: directorymergewindow.cpp:2986
+msgid "Merge Explicitly Selected Files"
+msgstr "明示的に選択したファイルをマージ"
+
+#: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995
+msgid "Do Nothing"
+msgstr "何もしない"
+
+#: directorymergewindow.cpp:2989
+msgid "A"
+msgstr "A"
+
+#: directorymergewindow.cpp:2990
+msgid "B"
+msgstr "B"
+
+#: directorymergewindow.cpp:2991
+msgid "C"
+msgstr "C"
+
+#: directorymergewindow.cpp:3000
+msgid "Delete A && B"
+msgstr "A と B を削除"
+
+#: directorymergewindow.cpp:3003
+msgid "Merge to A && B"
+msgstr "A と B にマージ"
+
+#: main.cpp:74 main.cpp:76
+msgid "Ignored. (User defined.)"
+msgstr ""
+
+#: main.cpp:162
+msgid "kdiff3"
+msgstr "kdiff3"
+
+#: main.cpp:164
+msgid "Tool for Comparison and Merge of Files and Directories"
+msgstr "ファイルとディレクトリを比較/マージするためのツール"
+
+#: main.cpp:165
+#, fuzzy
+#| msgid "(c) 2002-2009 Joachim Eibl"
+msgid "(c) 2002-2011 Joachim Eibl"
+msgstr "(c) 2002-2009 Joachim Eibl"
+
+#: main.cpp:172 kdiff3_part.cpp:303
+msgid "Joachim Eibl"
+msgstr "Joachim Eibl"
+
+#: main.cpp:173
+msgid "Eike Sauer"
+msgstr "Eike Sauer"
+
+#: main.cpp:173
+msgid "Bugfixes, Debian package maintainer"
+msgstr "バグ修正、Debian パッケージのメンテナ"
+
+#: main.cpp:174
+msgid "Sebastien Fricker"
+msgstr "Sebastien Fricker"
+
+#: main.cpp:174
+msgid "Windows installer"
+msgstr "Windows 用インストーラ"
+
+#: main.cpp:175
+msgid "Stephan Binner"
+msgstr "Stephan Binner"
+
+#: main.cpp:175
+msgid "i18n-help"
+msgstr "ローカライゼーションに関する手助け"
+
+#: main.cpp:176
+msgid "Stefan Partheymueller"
+msgstr "Stefan Partheymueller"
+
+#: main.cpp:176
+msgid "Clipboard-patch"
+msgstr "クリップボードのパッチ"
+
+#: main.cpp:177
+msgid "David Faure"
+msgstr "David Faure"
+
+#: main.cpp:177
+msgid "KIO-Help"
+msgstr ""
+
+#: main.cpp:178
+msgid "Bernd Gehrmann"
+msgstr "Bernd Gehrmann"
+
+#: main.cpp:178
+msgid "Class CvsIgnoreList from Cervisia"
+msgstr ""
+
+#: main.cpp:179
+msgid "Andre Woebbeking"
+msgstr "Andre Woebbeking"
+
+#: main.cpp:179
+msgid "Class StringMatcher"
+msgstr ""
+
+#: main.cpp:180
+msgid "Michael Denio"
+msgstr "Michael Denio"
+
+#: main.cpp:180
+#, fuzzy
+#| msgid "Directory Comparison Status"
+msgid "Directory Equality-Coloring patch"
+msgstr "ディレクトリ比較状態"
+
+#: main.cpp:181
+msgid "Manfred Koehler"
+msgstr "Manfred Koehler"
+
+#: main.cpp:181
+msgid "Fix for slow startup on Windows"
+msgstr ""
+
+#: main.cpp:182
+msgid "Sergey Zorin"
+msgstr "Sergey Zorin"
+
+#: main.cpp:182
+msgid "Diff Ext for Windows"
+msgstr ""
+
+#: main.cpp:183
+msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+
+#: main.cpp:183
+msgid "GNU-Diffutils"
+msgstr ""
+
+#: main.cpp:184
+msgid "Tino Boellsterling, Timothy Mee"
+msgstr "Tino Boellsterling, Timothy Mee"
+
+#: main.cpp:184
+msgid "Intensive test, use and feedback"
+msgstr ""
+
+#: main.cpp:185
+msgid "Michael Schmidt"
+msgstr "Michael Schmidt"
+
+#: main.cpp:185
+msgid "Mac support"
+msgstr "Mac サポート"
+
+#: main.cpp:186
+msgid "Valentin Rusu"
+msgstr "Valentin Rusu"
+
+#: main.cpp:186 main.cpp:187
+msgid "KDE4 porting"
+msgstr "KDE4 への移植"
+
+#: main.cpp:187
+msgid "Albert Astals Cid"
+msgstr "Albert Astals Cid"
+
+#: main.cpp:188
+msgid "Silvan Scherrer"
+msgstr ""
+
+#: main.cpp:188
+msgid "OS2 port"
+msgstr ""
+
+#: main.cpp:190
+msgid "+ Many thanks to those who reported bugs and contributed ideas!"
+msgstr "バグやアイデアを報告してくれた方々に感謝します。"
+
+#: main.cpp:196
+msgid "Merge the input."
+msgstr "入力をマージ"
+
+#: main.cpp:197
+msgid "Explicit base file. For compatibility with certain tools."
+msgstr "明示的にベースファイルを指定 (一部のツールとの互換性のため)"
+
+#: main.cpp:198
+msgid "Output file. Implies -m. E.g.: -o newfile.txt"
+msgstr "出力ファイルを指定。暗示的に -m を指定。例: -o newfile.txt"
+
+#: main.cpp:199
+msgid "Output file, again. (For compatibility with certain tools.)"
+msgstr "出力ファイルを指定 (一部のツールとの互換性のため)"
+
+#: main.cpp:200
+msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)"
+msgstr "すべての衝突を自動解決できる場合は GUI を使用しない (-o file が必要)"
+
+#: main.cpp:201
+msgid "Don't solve conflicts automatically. (For compatibility...)"
+msgstr "衝突を自動解決しない (互換性のため)"
+
+#: main.cpp:202
+msgid "Visible name replacement for input file 1 (base)."
+msgstr "入力ファイル 1 (ベース) の代替表示名"
+
+#: main.cpp:203
+msgid "Visible name replacement for input file 2."
+msgstr "入力ファイル 2 の代替表示名"
+
+#: main.cpp:204
+msgid "Visible name replacement for input file 3."
+msgstr "入力ファイル 3 の代替表示名"
+
+#: main.cpp:205
+msgid "Alternative visible name replacement. Supply this once for every input."
+msgstr "代替表示名。一度設定するとすべての入力に適用されます。"
+
+#: main.cpp:206
+msgid ""
+"Override a config setting. Use once for every setting. E.g.: --cs "
+"\"AutoAdvance=1\""
+msgstr ""
+
+#: main.cpp:207
+msgid "Show list of config settings and current values."
+msgstr "設定項目と現在の値を一覧表示"
+
+#: main.cpp:208
+msgid "Use a different config file."
+msgstr "使用する設定ファイルを指定"
+
+#: main.cpp:211
+msgid "file1 to open (base, if not specified via --base)"
+msgstr "開く file1 (ベース, --base が未指定の場合)"
+
+#: main.cpp:212
+msgid "file2 to open"
+msgstr "開く file2"
+
+#: main.cpp:213
+msgid "file3 to open"
+msgstr "開く file3"
+
+#: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976
+#: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002
+#: mergeresultwindow.cpp:1014
+#, kde-format
+msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)"
+msgstr "未解決の衝突の数: %1 (内 %2 はホワイトスペース)"
+
+#: mergeresultwindow.cpp:303
+msgid ""
+"The output has been modified.\n"
+"If you continue your changes will be lost."
+msgstr ""
+"出力が更新されました。\n"
+"続行すると更新内容は失われます。"
+
+#: mergeresultwindow.cpp:834 pdiff.cpp:532
+msgid "All input files are binary equal."
+msgstr "すべての入力ファイルはバイナリ的に同じです。"
+
+#: mergeresultwindow.cpp:836
+msgid "All input files contain the same text."
+msgstr "すべての入力ファイルのテキストは同じです。"
+
+#: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840
+#: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540
+#, kde-format
+msgid "Files %1 and %2 are binary equal.\n"
+msgstr "ファイル %1 と %2 はバイナリ的に同じです。\n"
+
+#: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841
+#: mergeresultwindow.cpp:843
+#, kde-format
+msgid "Files %1 and %2 have equal text.\n"
+msgstr "ファイル %1 と %2 のテキストは同じです。\n"
+
+#: mergeresultwindow.cpp:849
+msgid "Total number of conflicts: "
+msgstr "衝突の総計: "
+
+#: mergeresultwindow.cpp:850
+msgid ""
+"\n"
+"Nr of automatically solved conflicts: "
+msgstr ""
+"\n"
+"自動解決された衝突の数: "
+
+#: mergeresultwindow.cpp:851
+msgid ""
+"\n"
+"Nr of unsolved conflicts: "
+msgstr ""
+"\n"
+"未解決の衝突の数: "
+
+#: mergeresultwindow.cpp:853
+msgid "Conflicts"
+msgstr "衝突"
+
+#: mergeresultwindow.cpp:1728
+msgid "<No src line>"
+msgstr "<ソース行なし>"
+
+#: mergeresultwindow.cpp:1736
+msgid "<Merge Conflict (Whitespace only)>"
+msgstr "<マージ衝突 (ホワイトスペースのみ)>"
+
+#: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517
+msgid "<Merge Conflict>"
+msgstr "<マージ衝突>"
+
+#: mergeresultwindow.cpp:2725
+msgid ""
+"Not all conflicts are solved yet.\n"
+"File not saved.\n"
+msgstr ""
+"未解決の衝突がまだ残っています。\n"
+"ファイルは保存されていません。\n"
+
+#: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736
+msgid "Conflicts Left"
+msgstr "未解決の衝突があります"
+
+#: mergeresultwindow.cpp:2734
+msgid ""
+"There is a line end style conflict. Please choose the line end style "
+"manually.\n"
+"File not saved.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:2748
+msgid ""
+"\n"
+"\n"
+"Creating backup failed. File not saved."
+msgstr ""
+"\n"
+"\n"
+"バックアップファイルの作成に失敗しました。ファイルは保存されていません。"
+
+#: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792
+msgid "File Save Error"
+msgstr "ファイルの保存エラー"
+
+#: mergeresultwindow.cpp:2792
+msgid "Error while writing."
+msgstr "書き込み中にエラーが発生しました。"
+
+#: mergeresultwindow.cpp:3122
+msgid "Output"
+msgstr "出力"
+
+#: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314
+msgid "[Modified]"
+msgstr "[更新]"
+
+#: mergeresultwindow.cpp:3141
+msgid "Encoding for saving"
+msgstr "保存時のエンコーディング"
+
+#: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737
+#: optiondialog.cpp:762
+msgid "Line end style:"
+msgstr "改行コード:"
+
+#: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767
+msgid "Unix"
+msgstr "Unix"
+
+#: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737
+msgid "DOS"
+msgstr "DOS"
+
+#: mergeresultwindow.cpp:3229
+msgid "Conflict"
+msgstr "衝突"
+
+#: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263
+#: mergeresultwindow.cpp:3265
+msgid "Codec from"
+msgstr ""
+
+#: kdiff3_part.cpp:157 kdiff3_part.cpp:234
+msgid "Couldn't find files for comparison."
+msgstr "比較するファイルを見つけることができませんでした。"
+
+#: kdiff3_part.cpp:302
+msgid "KDiff3Part"
+msgstr "KDiff3Part"
+
+#: fileaccess.cpp:612
+msgid ""
+"While trying to make a backup, deleting an older backup failed. \n"
+"Filename: "
+msgstr ""
+"バックアップの作成中に古いバックアップを削除できませんでした。\n"
+"ファイル名: "
+
+#: fileaccess.cpp:619
+msgid ""
+"While trying to make a backup, renaming failed. \n"
+"Filenames: "
+msgstr ""
+"バックアップの作成中に名前変更に失敗しました。\n"
+"ファイル名: "
+
+#: fileaccess.cpp:643
+#, kde-format
+msgid "Getting file status: %1"
+msgstr "ファイルの状態を取得中: %1"
+
+#: fileaccess.cpp:686
+#, kde-format
+msgid "Reading file: %1"
+msgstr "ファイルを読み込み中: %1"
+
+#: fileaccess.cpp:723
+#, kde-format
+msgid "Writing file: %1"
+msgstr "ファイルに書き込み中: %1"
+
+#: fileaccess.cpp:751
+msgid "Out of memory"
+msgstr "メモリが足りません"
+
+#: fileaccess.cpp:786
+#, kde-format
+msgid "Making directory: %1"
+msgstr "ディレクトリを作成中: %1"
+
+#: fileaccess.cpp:806
+#, kde-format
+msgid "Removing directory: %1"
+msgstr "ディレクトリを削除中: %1"
+
+#: fileaccess.cpp:821
+#, kde-format
+msgid "Removing file: %1"
+msgstr "ファイルを削除中: %1"
+
+#: fileaccess.cpp:837
+#, kde-format
+msgid "Creating symbolic link: %1 -> %2"
+msgstr "シンボリックリンクを作成中: %1 -> %2"
+
+#: fileaccess.cpp:864
+#, kde-format
+msgid "Renaming file: %1 -> %2"
+msgstr "ファイル名を変更中: %1 -> %2"
+
+#: fileaccess.cpp:897
+#, kde-format
+msgid "Copying file: %1 -> %2"
+msgstr "ファイルをコピー中: %1 -> %2"
+
+#: fileaccess.cpp:911
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for reading failed. Filename: "
+"%1"
+msgstr ""
+"ファイルコピー中にエラー: ファイルを読み込みのために開けませんでした。ファイ"
+"ル名: %1"
+
+#: fileaccess.cpp:917
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for writing failed. Filename: "
+"%1"
+msgstr ""
+"ファイルコピー中にエラー: ファイルを書き込みのために開けませんでした。ファイ"
+"ル名: %1"
+
+#: fileaccess.cpp:932
+#, kde-format
+msgid "Error during file copy operation: Reading failed. Filename: %1"
+msgstr "ファイルコピー中にエラー: 読み込みに失敗しました。ファイル名: %1"
+
+#: fileaccess.cpp:941
+#, kde-format
+msgid "Error during file copy operation: Writing failed. Filename: %1"
+msgstr "ファイルコピー中にエラー: 書き込みに失敗しました。ファイル名: %1"
+
+#: fileaccess.cpp:1231
+msgid "Reading directory: "
+msgstr "ディレクトリを読み込み中: "
+
+#: fileaccess.cpp:1355
+#, kde-format
+msgid "Listing directory: %1"
+msgstr "ディレクトリの内容一覧を作成中: %1"
+
+#: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396
+msgid "&Cancel"
+msgstr "キャンセル(&C)"
+
+#: difftextwindow.cpp:403
+msgid "Line"
+msgstr "行"
+
+#: difftextwindow.cpp:405
+msgid "Line not available"
+msgstr "行がありません"
+
+#: difftextwindow.cpp:1703 difftextwindow.cpp:1736
+msgid "Encoding:"
+msgstr "エンコーディング:"
+
+#: difftextwindow.cpp:1759 kdiff3.cpp:831
+msgid "Top line"
+msgstr "上部行"
+
+#: difftextwindow.cpp:1769
+msgid "End"
+msgstr "最後"
+
+#: kdiff3.cpp:169
+msgid "Current Configuration:"
+msgstr "現在の設定:"
+
+#: kdiff3.cpp:174
+msgid "Config Option Error:"
+msgstr "設定オプションのエラー:"
+
+#: kdiff3.cpp:219
+msgid "Option --auto used, but no output file specified."
+msgstr ""
+"オプション <icode>--auto</icode> を使用していますが、出力ファイルが指定されて"
+"いません。"
+
+#: kdiff3.cpp:369
+msgid "Option --auto ignored for directory comparison."
+msgstr ""
+"オプション <icode>--auto</icode> はディレクトリ比較時には無視されます。"
+
+#: kdiff3.cpp:405
+msgid "Saving failed."
+msgstr "保存に失敗しました。"
+
+#: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214
+msgid "Opening of these files failed:"
+msgstr "以下のファイルを開けませんでした:"
+
+#: kdiff3.cpp:449
+msgid "File Open Error"
+msgstr "ファイルのオープンエラー"
+
+#: kdiff3.cpp:477
+msgid "Opens documents for comparison..."
+msgstr "比較のために文書を開きます..."
+
+#: kdiff3.cpp:479
+msgid "Reload"
+msgstr "再読み込み"
+
+#: kdiff3.cpp:482
+msgid "Saves the merge result. All conflicts must be solved!"
+msgstr "マージ結果を保存します。すべての衝突を解決しなければなりません。"
+
+#: kdiff3.cpp:484
+msgid "Saves the current document as..."
+msgstr "現在の文書を別名で保存します..."
+
+#: kdiff3.cpp:487
+msgid "Print the differences"
+msgstr "差異を印刷します"
+
+#: kdiff3.cpp:490
+msgid "Quits the application"
+msgstr "アプリケーションを終了します"
+
+#: kdiff3.cpp:492
+msgid "Cuts the selected section and puts it to the clipboard"
+msgstr "選択範囲を切り取り、クリップボードに格納します"
+
+#: kdiff3.cpp:494
+msgid "Copies the selected section to the clipboard"
+msgstr "選択範囲をコピーし、クリップボードに格納します"
+
+#: kdiff3.cpp:496
+#, fuzzy
+#| msgid "Pastes the clipboard contents to actual position"
+msgid "Pastes the clipboard contents to current position"
+msgstr "クリップボードの内容を現在の位置に貼り付けます"
+
+#: kdiff3.cpp:498
+msgid "Select everything in current window"
+msgstr "現在のウィンドウのすべてを選択します"
+
+#: kdiff3.cpp:500
+msgid "Search for a string"
+msgstr "文字列を検索します"
+
+# StatusTip for FindNext
+#: kdiff3.cpp:502
+msgid "Search again for the string"
+msgstr "文字列の次のマッチを検索します"
+
+#: kdiff3.cpp:507
+msgid "Enables/disables the statusbar"
+msgstr "ステータスバーの表示/非表示を切り替えます"
+
+#: kdiff3.cpp:511
+msgid "Configure KDiff3..."
+msgstr "KDiff3 を設定..."
+
+#: kdiff3.cpp:532
+msgid "Go to Current Delta"
+msgstr "現在の異なる部分に移動"
+
+#: kdiff3.cpp:532
+msgid ""
+"Current\n"
+"Delta"
+msgstr ""
+"現在の\n"
+"異なる部分"
+
+#: kdiff3.cpp:534
+msgid "Go to First Delta"
+msgstr "最初の異なる部分に移動"
+
+#: kdiff3.cpp:534
+msgid ""
+"First\n"
+"Delta"
+msgstr ""
+"最初の\n"
+"異なる部分"
+
+#: kdiff3.cpp:536
+msgid "Go to Last Delta"
+msgstr "最後の異なる部分に移動"
+
+#: kdiff3.cpp:536
+msgid ""
+"Last\n"
+"Delta"
+msgstr ""
+"最後の\n"
+"異なる部分"
+
+#: kdiff3.cpp:538
+msgid "(Skips white space differences when \"Show White Space\" is disabled.)"
+msgstr ""
+"(ホワイトスペースの表示が無効なときはホワイトスペースの差異をスキップする)"
+
+#: kdiff3.cpp:539
+msgid ""
+"(Does not skip white space differences even when \"Show White Space\" is "
+"disabled.)"
+msgstr ""
+"(ホワイトスペースの表示が無効なときもホワイトスペースの差異をスキップしない)"
+
+#: kdiff3.cpp:540
+msgid "Go to Previous Delta"
+msgstr "前の異なる部分に移動"
+
+#: kdiff3.cpp:540
+msgid ""
+"Prev\n"
+"Delta"
+msgstr ""
+"前の\n"
+"異なる部分"
+
+#: kdiff3.cpp:542
+msgid "Go to Next Delta"
+msgstr "次の異なる部分に移動"
+
+#: kdiff3.cpp:542
+msgid ""
+"Next\n"
+"Delta"
+msgstr ""
+"次の\n"
+"異なる部分"
+
+#: kdiff3.cpp:544
+msgid "Go to Previous Conflict"
+msgstr "前の衝突に移動"
+
+#: kdiff3.cpp:544
+msgid ""
+"Prev\n"
+"Conflict"
+msgstr ""
+"前の\n"
+"衝突"
+
+#: kdiff3.cpp:546
+msgid "Go to Next Conflict"
+msgstr "次の衝突に移動"
+
+#: kdiff3.cpp:546
+msgid ""
+"Next\n"
+"Conflict"
+msgstr ""
+"次の\n"
+"衝突"
+
+#: kdiff3.cpp:548
+msgid "Go to Previous Unsolved Conflict"
+msgstr "前の未解決の衝突に移動"
+
+#: kdiff3.cpp:548
+msgid ""
+"Prev\n"
+"Unsolved"
+msgstr ""
+"前の\n"
+"未解決"
+
+#: kdiff3.cpp:550
+msgid "Go to Next Unsolved Conflict"
+msgstr "次の未解決の衝突に移動"
+
+#: kdiff3.cpp:550
+msgid ""
+"Next\n"
+"Unsolved"
+msgstr ""
+"次の\n"
+"未解決"
+
+#: kdiff3.cpp:552
+msgid "Select Line(s) From A"
+msgstr "A からの選択行"
+
+#: kdiff3.cpp:552
+msgid ""
+"Choose\n"
+"A"
+msgstr ""
+"選択\n"
+"A"
+
+#: kdiff3.cpp:553
+msgid "Select Line(s) From B"
+msgstr "B からの選択行"
+
+#: kdiff3.cpp:553
+msgid ""
+"Choose\n"
+"B"
+msgstr ""
+"選択\n"
+"B"
+
+#: kdiff3.cpp:554
+msgid "Select Line(s) From C"
+msgstr "C からの選択行"
+
+#: kdiff3.cpp:554
+msgid ""
+"Choose\n"
+"C"
+msgstr ""
+"選択\n"
+"C"
+
+#: kdiff3.cpp:555
+msgid "Automatically Go to Next Unsolved Conflict After Source Selection"
+msgstr "ソース選択後に自動的に次の未解決の衝突に移動"
+
+#: kdiff3.cpp:555
+msgid ""
+"Auto\n"
+"Next"
+msgstr "自動"
+
+#: kdiff3.cpp:557
+msgid "Show Space && Tabulator Characters for Differences"
+msgstr "スペースとタブ文字を表示"
+
+#: kdiff3.cpp:557
+msgid ""
+"White\n"
+"Characters"
+msgstr ""
+"ホワイト\n"
+"スペース文字"
+
+#: kdiff3.cpp:558
+msgid "Show White Space"
+msgstr "ホワイトスペースを表示"
+
+#: kdiff3.cpp:558
+msgid ""
+"White\n"
+"Deltas"
+msgstr ""
+"ホワイト\n"
+"スペース"
+
+#: kdiff3.cpp:560
+msgid "Show Line Numbers"
+msgstr "行番号を表示"
+
+#: kdiff3.cpp:560
+msgid ""
+"Line\n"
+"Numbers"
+msgstr "行番号"
+
+#: kdiff3.cpp:561
+msgid "Choose A Everywhere"
+msgstr "常に A を選択"
+
+#: kdiff3.cpp:562
+msgid "Choose B Everywhere"
+msgstr "常に B を選択"
+
+#: kdiff3.cpp:563
+msgid "Choose C Everywhere"
+msgstr "常に C を選択"
+
+#: kdiff3.cpp:564
+msgid "Choose A for All Unsolved Conflicts"
+msgstr "未解決の衝突について常に A を選択"
+
+#: kdiff3.cpp:565
+msgid "Choose B for All Unsolved Conflicts"
+msgstr "未解決の衝突について常に B を選択"
+
+#: kdiff3.cpp:566
+msgid "Choose C for All Unsolved Conflicts"
+msgstr "未解決の衝突について常に C を選択"
+
+#: kdiff3.cpp:567
+msgid "Choose A for All Unsolved Whitespace Conflicts"
+msgstr "未解決のホワイトスペースの衝突について常に A を選択"
+
+#: kdiff3.cpp:568
+msgid "Choose B for All Unsolved Whitespace Conflicts"
+msgstr "未解決のホワイトスペースの衝突について常に B を選択"
+
+#: kdiff3.cpp:569
+msgid "Choose C for All Unsolved Whitespace Conflicts"
+msgstr "未解決のホワイトスペースの衝突について常に C を選択"
+
+#: kdiff3.cpp:570
+msgid "Automatically Solve Simple Conflicts"
+msgstr "単純な衝突を自動的に解決"
+
+#: kdiff3.cpp:571
+msgid "Set Deltas to Conflicts"
+msgstr "異なる部分を衝突として設定"
+
+#: kdiff3.cpp:572
+msgid "Run Regular Expression Auto Merge"
+msgstr "正規表現による自動マージを実行"
+
+#: kdiff3.cpp:573
+msgid "Automatically Solve History Conflicts"
+msgstr "履歴の衝突を自動的に解決"
+
+#: kdiff3.cpp:574
+msgid "Split Diff At Selection"
+msgstr "選択した差異を分離"
+
+#: kdiff3.cpp:575
+msgid "Join Selected Diffs"
+msgstr "選択した差異を結合"
+
+#: kdiff3.cpp:577
+msgid "Show Window A"
+msgstr "ウィンドウ A を表示"
+
+#: kdiff3.cpp:578
+msgid "Show Window B"
+msgstr "ウィンドウ B を表示"
+
+#: kdiff3.cpp:579
+msgid "Show Window C"
+msgstr "ウィンドウ C を表示"
+
+#: kdiff3.cpp:580 kdiff3.cpp:591
+msgid "Focus Next Window"
+msgstr "次のウィンドウにフォーカス"
+
+#: kdiff3.cpp:582
+msgid "Normal Overview"
+msgstr "すべて比較 (標準)"
+
+#: kdiff3.cpp:583
+msgid "A vs. B Overview"
+msgstr "A と B を比較"
+
+#: kdiff3.cpp:584
+msgid "A vs. C Overview"
+msgstr "A と C を比較"
+
+#: kdiff3.cpp:585
+msgid "B vs. C Overview"
+msgstr "B と C を比較"
+
+#: kdiff3.cpp:586
+msgid "Word Wrap Diff Windows"
+msgstr "Diff ウィンドウで行を折り返す"
+
+#: kdiff3.cpp:587
+msgid "Add Manual Diff Alignment"
+msgstr ""
+
+#: kdiff3.cpp:588
+msgid "Clear All Manual Diff Alignments"
+msgstr ""
+
+#: kdiff3.cpp:593
+msgid "Focus Prev Window"
+msgstr "前のウィンドウにフォーカス"
+
+#: kdiff3.cpp:594
+msgid "Toggle Split Orientation"
+msgstr "分割方向を切り替え"
+
+#: kdiff3.cpp:596
+msgid "Dir && Text Split Screen View"
+msgstr "ディレクトリ/テキスト分割画面表示"
+
+#: kdiff3.cpp:598
+msgid "Toggle Between Dir && Text View"
+msgstr "ディレクトリ表示/テキスト表示を切り替え"
+
+#: kdiff3.cpp:654 pdiff.cpp:1812
+msgid "The merge result hasn't been saved."
+msgstr "マージ結果は保存されていません。"
+
+#: kdiff3.cpp:656
+msgid "Save && Quit"
+msgstr "保存/終了"
+
+#: kdiff3.cpp:657
+msgid "Quit Without Saving"
+msgstr "保存せずに終了"
+
+#: kdiff3.cpp:665 pdiff.cpp:1823
+msgid "Saving the merge result failed."
+msgstr "マージ結果の保存に失敗しました。"
+
+#: kdiff3.cpp:676 pdiff.cpp:1078
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort?"
+msgstr "ディレクトリマージを実行中です。本当に中止しますか?"
+
+#: kdiff3.cpp:701
+msgid "Saving file..."
+msgstr "ファイルを保存中..."
+
+#: kdiff3.cpp:718
+msgid "Saving file with a new filename..."
+msgstr "名前を付けてファイルを保存中..."
+
+#: kdiff3.cpp:781
+#, fuzzy
+#| msgid "Printing completed."
+msgid "Printing not implemented."
+msgstr "印刷完了。"
+
+#: kdiff3.cpp:815
+msgid "Printing..."
+msgstr "印刷中..."
+
+#: kdiff3.cpp:956
+msgid "Selection"
+msgstr "選択"
+
+#: kdiff3.cpp:982
+msgid "Printing completed."
+msgstr "印刷完了。"
+
+#: kdiff3.cpp:986
+msgid "Printing aborted."
+msgstr "印刷中止。"
+
+#: kdiff3.cpp:993
+msgid "Exiting..."
+msgstr "終了中..."
+
+#: kdiff3.cpp:1006
+msgid "Toggling toolbar..."
+msgstr "ツールバーの表示/非表示を切り替え中..."
+
+#: kdiff3.cpp:1027
+msgid "Toggle the statusbar..."
+msgstr "ステータスバーの表示/非表示を切り替え中..."
+
+#: smalldialogs.cpp:58
+msgid "A (Base):"
+msgstr "A (ベース):"
+
+#: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99
+#: smalldialogs.cpp:142
+msgid "File..."
+msgstr "ファイル..."
+
+#: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101
+#: smalldialogs.cpp:144
+msgid "Dir..."
+msgstr "ディレクトリ..."
+
+#: smalldialogs.cpp:93
+msgid "C (Optional):"
+msgstr "C (オプション):"
+
+#: smalldialogs.cpp:116
+msgid "Swap/Copy Names ..."
+msgstr "名前を交換/コピー..."
+
+#: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123
+#, kde-format
+msgid "Swap %1<->%2"
+msgstr "交換 %1<->%2"
+
+#: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126
+#, kde-format
+msgid "Copy %1->Output"
+msgstr "コピー %1->出力"
+
+#: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129
+#, kde-format
+msgid "Swap %1<->Output"
+msgstr "交換 %1<->出力"
+
+#: smalldialogs.cpp:136
+msgid "Output (optional):"
+msgstr "出力 (オプション):"
+
+#: smalldialogs.cpp:168
+msgid "Configure..."
+msgstr "設定..."
+
+#: smalldialogs.cpp:174
+msgid "&OK"
+msgstr "&OK"
+
+#: smalldialogs.cpp:362
+msgid "Search text:"
+msgstr "検索テキスト:"
+
+#: smalldialogs.cpp:369
+msgid "Case sensitive"
+msgstr "大文字と小文字を区別する"
+
+#: smalldialogs.cpp:372
+msgid "Search A"
+msgstr "A を検索"
+
+#: smalldialogs.cpp:377
+msgid "Search B"
+msgstr "B を検索"
+
+#: smalldialogs.cpp:382
+msgid "Search C"
+msgstr "C を検索"
+
+#: smalldialogs.cpp:387
+msgid "Search output"
+msgstr "出力を検索"
+
+#: smalldialogs.cpp:392
+msgid "&Search"
+msgstr "検索(&S)"
+
+#: smalldialogs.cpp:409
+msgid "Regular Expression Tester"
+msgstr "正規表現テスター"
+
+#: smalldialogs.cpp:414 optiondialog.cpp:936
+msgid "Auto merge regular expression:"
+msgstr "自動マージの正規表現:"
+
+#: smalldialogs.cpp:422
+msgid "Example auto merge line:"
+msgstr "自動マージのテスト行:"
+
+#: smalldialogs.cpp:424
+msgid "To test auto merge, copy a line as used in your files."
+msgstr "自動マージをテストするために、既存のファイルから 1 行コピーします。"
+
+#: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494
+msgid "Match result:"
+msgstr "マッチ結果:"
+
+#: smalldialogs.cpp:441 optiondialog.cpp:962
+msgid "History start regular expression:"
+msgstr "履歴開始の正規表現:"
+
+#: smalldialogs.cpp:449
+msgid "Example history start line (with leading comment):"
+msgstr "履歴開始行の例 (先行するコメントを含めて):"
+
+#: smalldialogs.cpp:451
+msgid ""
+"Copy a history start line as used in your files,\n"
+"including the leading comment."
+msgstr "履歴の開始行を先行するコメントを含めて既存のファイルからコピーします。"
+
+#: smalldialogs.cpp:469 optiondialog.cpp:972
+msgid "History entry start regular expression:"
+msgstr "履歴エントリ開始の正規表現:"
+
+#: smalldialogs.cpp:477
+msgid "History sort key order:"
+msgstr "履歴ソートキーの順序:"
+
+#: smalldialogs.cpp:485
+msgid "Example history entry start line (without leading comment):"
+msgstr "履歴エントリ開始行の例 (先行するコメントを含めずに):"
+
+#: smalldialogs.cpp:487
+msgid ""
+"Copy a history entry start line as used in your files,\n"
+"but omit the leading comment."
+msgstr ""
+"履歴エントリの開始行を先行するコメントを含めずに既存のファイルからコピーしま"
+"す。"
+
+#: smalldialogs.cpp:501
+msgid "Sort key result:"
+msgstr "ソートキーの結果:"
+
+#: smalldialogs.cpp:508
+msgid "OK"
+msgstr "OK"
+
+#: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583
+msgid "Match success."
+msgstr "マッチ成功"
+
+#: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589
+msgid "Match failed."
+msgstr "マッチ失敗"
+
+#: smalldialogs.cpp:574
+msgid "Opening and closing parentheses do not match in regular expression."
+msgstr "正規表現中の左右の括弧が一致していません。"
+
+#: optiondialog.cpp:367
+msgid "Unicode, 8 bit"
+msgstr "Unicode, 8 ビット"
+
+#: optiondialog.cpp:368
+msgid "Unicode"
+msgstr "Unicode"
+
+#: optiondialog.cpp:369
+msgid "Latin1"
+msgstr "Latin1"
+
+#: optiondialog.cpp:388
+msgid "Change this if non-ASCII characters are not displayed correctly."
+msgstr "ASCII 以外の文字が適切に表示されなければ、これを変更してください。"
+
+#: optiondialog.cpp:465
+msgid "Configure"
+msgstr "設定"
+
+#: optiondialog.cpp:531
+msgid "Font"
+msgstr "フォント"
+
+#: optiondialog.cpp:532
+msgid "Editor & Diff Output Font"
+msgstr "エディタ/Diff 出力のフォント"
+
+#: optiondialog.cpp:556
+msgid "Italic font for deltas"
+msgstr "異なる部分をイタリック体で表示する"
+
+#: optiondialog.cpp:559
+msgid ""
+"Selects the italic version of the font for differences.\n"
+"If the font doesn't support italic characters, then this does nothing."
+msgstr ""
+"異なる部分をフォントのイタリック体で表示します。\n"
+"フォントにイタリック体がない場合は、通常のフォントで表示します。"
+
+#: optiondialog.cpp:568
+msgid "Color"
+msgstr "色"
+
+#: optiondialog.cpp:569
+msgid "Colors Settings"
+msgstr "色の設定"
+
+#: optiondialog.cpp:588
+msgid "Editor and Diff Views:"
+msgstr "エディタ/Diff ビュー:"
+
+#: optiondialog.cpp:596
+msgid "Foreground color:"
+msgstr "前景色:"
+
+#: optiondialog.cpp:603
+msgid "Background color:"
+msgstr "背景色:"
+
+#: optiondialog.cpp:612
+msgid "Diff background color:"
+msgstr "Diff 背景色:"
+
+#: optiondialog.cpp:620
+msgid "Color A:"
+msgstr "色 (A):"
+
+#: optiondialog.cpp:628
+msgid "Color B:"
+msgstr "色 (B):"
+
+#: optiondialog.cpp:636
+msgid "Color C:"
+msgstr "色 (C):"
+
+#: optiondialog.cpp:643
+msgid "Conflict color:"
+msgstr "色 (衝突):"
+
+#: optiondialog.cpp:651
+msgid "Current range background color:"
+msgstr "現在の範囲の背景色:"
+
+#: optiondialog.cpp:659
+msgid "Current range diff background color:"
+msgstr "現在の範囲の diff 背景色:"
+
+#: optiondialog.cpp:666
+msgid "Color for manually aligned difference ranges:"
+msgstr ""
+
+#: optiondialog.cpp:672
+msgid "Directory Comparison View:"
+msgstr "ディレクトリ比較ビュー:"
+
+#: optiondialog.cpp:678
+msgid "Newest file color:"
+msgstr "最も新しいファイルの色:"
+
+#: optiondialog.cpp:682
+msgid ""
+"Changing this color will only be effective when starting the next directory "
+"comparison."
+msgstr "色の変更は次回ディレクトリ比較を開始したときに有効になります。"
+
+#: optiondialog.cpp:687
+msgid "Oldest file color:"
+msgstr "最も古いファイルの色:"
+
+#: optiondialog.cpp:695
+msgid "Middle age file color:"
+msgstr "中間のファイルの色:"
+
+#: optiondialog.cpp:703
+msgid "Color for missing files:"
+msgstr "欠落したファイルの色:"
+
+#: optiondialog.cpp:717
+msgid "Editor"
+msgstr "エディタ"
+
+#: optiondialog.cpp:718
+msgid "Editor Behavior"
+msgstr "エディタの挙動"
+
+#: optiondialog.cpp:732
+msgid "Tab inserts spaces"
+msgstr "タブでスペースを挿入する"
+
+#: optiondialog.cpp:735
+msgid ""
+"On: Pressing tab generates the appropriate number of spaces.\n"
+"Off: A tab character will be inserted."
+msgstr ""
+"オン: タブを押すと適切な数のスペースが挿入されます。\n"
+"オフ: タブ文字が挿入されます。"
+
+#: optiondialog.cpp:741
+msgid "Tab size:"
+msgstr "タブサイズ:"
+
+#: optiondialog.cpp:747
+msgid "Auto indentation"
+msgstr "自動字下げ"
+
+#: optiondialog.cpp:750
+msgid "On: The indentation of the previous line is used for a new line.\n"
+msgstr "オン: 新しい改行に前の行の字下げを使います。\n"
+
+#: optiondialog.cpp:754
+msgid "Auto copy selection"
+msgstr "選択を自動的にコピーする"
+
+#: optiondialog.cpp:757
+msgid ""
+"On: Any selection is immediately written to the clipboard.\n"
+"Off: You must explicitely copy e.g. via Ctrl-C."
+msgstr ""
+"オン: すべての選択は直ちにクリップボードに格納されます。\n"
+"オフ: Ctrl+C などで明示的にコピーする必要があります。"
+
+#: optiondialog.cpp:768
+#, fuzzy
+#| msgid "&Window"
+msgid "Dos/Windows"
+msgstr "ウィンドウ(&W)"
+
+#: optiondialog.cpp:769
+#, fuzzy
+#| msgid "Auto Select"
+msgid "Autodetect"
+msgstr "自動選択"
+
+#: optiondialog.cpp:772
+msgid ""
+"Sets the line endings for when an edited file is saved.\n"
+"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A"
+msgstr ""
+"編集したファイルの保存時に使用する改行コードを設定します。\n"
+"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A"
+
+#: optiondialog.cpp:784
+msgid "Diff"
+msgstr "Diff"
+
+#: optiondialog.cpp:785
+msgid "Diff Settings"
+msgstr "Diff の設定"
+
+# 「...を無視する」オプションの補足説明として括弧内に表示される
+#: optiondialog.cpp:809
+msgid "Treat as white space."
+msgstr "ホワイトスペースとして扱う"
+
+#: optiondialog.cpp:811
+msgid "Ignore numbers"
+msgstr "数字を無視する"
+
+#: optiondialog.cpp:814
+msgid ""
+"Ignore number characters during line matching phase. (Similar to Ignore "
+"white space.)\n"
+"Might help to compare files with numeric data."
+msgstr ""
+"行マッチ時に数字の違いを無視します。(ホワイトスペースの違いを無視に類似)\n"
+"数字データファイルを比較する際に有効です。"
+
+#: optiondialog.cpp:819
+msgid "Ignore C/C++ comments"
+msgstr "C/C++ コメントを無視する"
+
+#: optiondialog.cpp:821
+msgid "Treat C/C++ comments like white space."
+msgstr "C/C++ コメントをホワイトスペースとして扱います。"
+
+#: optiondialog.cpp:825
+msgid "Ignore case"
+msgstr "大文字と小文字の違いを無視する"
+
+#: optiondialog.cpp:828
+msgid "Treat case differences like white space changes. ('a'<=>'A')"
+msgstr ""
+"大文字と小文字の違いをホワイトスペースの違いと同様に扱います。('a'<=>'A')"
+
+#: optiondialog.cpp:832
+msgid "Preprocessor command:"
+msgstr "プリプロセッサコマンド:"
+
+#: optiondialog.cpp:836
+msgid "User defined pre-processing. (See the docs for details.)"
+msgstr "ユーザ定義プリプロセッサ (詳細についてはドキュメントを参照)"
+
+#: optiondialog.cpp:839
+msgid "Line-matching preprocessor command:"
+msgstr "行マッチプリプロセッサコマンド:"
+
+#: optiondialog.cpp:843
+msgid ""
+"This pre-processor is only used during line matching.\n"
+"(See the docs for details.)"
+msgstr ""
+"このプリプロセッサは行マッチ時にだけ使われます。\n"
+"(詳細についてはドキュメントを参照)"
+
+#: optiondialog.cpp:846
+msgid "Try hard (slower)"
+msgstr "より小さい差分を見つける (遅い)"
+
+#: optiondialog.cpp:849
+msgid ""
+"Enables the --minimal option for the external diff.\n"
+"The analysis of big files will be much slower."
+msgstr ""
+"外部 diff コマンドについて <icode>--minimal</icode> オプションを有効にしま"
+"す。\n"
+"大きなファイルでは処理速度が非常に遅くなります。"
+
+#: optiondialog.cpp:854
+msgid "Align B and C for 3 input files"
+msgstr ""
+
+#: optiondialog.cpp:857
+msgid ""
+"Try to align B and C when comparing or merging three input files.\n"
+"Not recommended for merging because merge might get more complicated.\n"
+"(Default is off.)"
+msgstr ""
+
+#: optiondialog.cpp:870
+msgid "Merge Settings"
+msgstr "マージの設定"
+
+#: optiondialog.cpp:885
+msgid "Auto advance delay (ms):"
+msgstr "自動前進の遅延 (ミリ秒):"
+
+#: optiondialog.cpp:890
+msgid ""
+"When in Auto-Advance mode the result of the current selection is shown \n"
+"for the specified time, before jumping to the next conflict. Range: 0-2000 ms"
+msgstr ""
+"自動前進モードでは、指定した時間 (0-2000 ミリ秒) ごとに自動的に次の衝突に移動"
+"します。"
+
+#: optiondialog.cpp:895
+msgid "Show info dialogs"
+msgstr "情報ダイアログを表示"
+
+#: optiondialog.cpp:897
+msgid "Show a dialog with information about the number of conflicts."
+msgstr ""
+
+#: optiondialog.cpp:900
+msgid "White space 2-file merge default:"
+msgstr "ホワイトスペース 2 ファイルマージのデフォルト:"
+
+#: optiondialog.cpp:904 optiondialog.cpp:917
+msgid "Manual Choice"
+msgstr "手作業で選択"
+
+#: optiondialog.cpp:908 optiondialog.cpp:922
+msgid ""
+"Allow the merge algorithm to automatically select an input for white-space-"
+"only changes."
+msgstr ""
+"差異がホワイトスペースのみの場合にマージアルゴリズムが自動的に入力を選択する"
+"ようにできます。"
+
+#: optiondialog.cpp:913
+msgid "White space 3-file merge default:"
+msgstr "ホワイトスペース 3 ファイルマージのデフォルト:"
+
+#: optiondialog.cpp:927
+msgid "Automatic Merge Regular Expression"
+msgstr "自動マージの正規表現"
+
+#: optiondialog.cpp:940
+msgid ""
+"Regular expression for lines where KDiff3 should automatically choose one "
+"source.\n"
+"When a line with a conflict matches the regular expression then\n"
+"- if available - C, otherwise B will be chosen."
+msgstr ""
+"KDiff3 に自動的にソースを選択させる行を正規表現で指定します。\n"
+"正規表現にマッチした行に衝突がある場合、\n"
+"C があれば C が、C がなければ B が選択されます。"
+
+#: optiondialog.cpp:946
+msgid "Run regular expression auto merge on merge start"
+msgstr "マージ開始時に正規表現による自動マージを実行する"
+
+#: optiondialog.cpp:948
+msgid ""
+"Run the merge for auto merge regular expressions\n"
+"immediately when a merge starts.\n"
+msgstr "マージ開始時に正規表現による自動マージを実行します。\n"
+
+#: optiondialog.cpp:953
+msgid "Version Control History Merging"
+msgstr "バージョンコントロール履歴マージ"
+
+#: optiondialog.cpp:966
+msgid ""
+"Regular expression for the start of the version control history entry.\n"
+"Usually this line contains the \"$Log$\" keyword.\n"
+"Default value: \".*\\$Log.*\\$.*\""
+msgstr ""
+"バージョンコントロール履歴エントリの開始を正規表現で指定します。\n"
+"通常、開始行には \"$Log$\" キーワードが含まれています。\n"
+"標準設定の値: \".*\\$Log.*\\$.*\""
+
+#: optiondialog.cpp:984
+msgid ""
+"A version control history entry consists of several lines.\n"
+"Specify the regular expression to detect the first line (without the leading "
+"comment).\n"
+"Use parentheses to group the keys you want to use for sorting.\n"
+"If left empty, then KDiff3 assumes that empty lines separate history "
+"entries.\n"
+"See the documentation for details."
+msgstr ""
+"バージョンコントロール履歴のエントリは複数の行から成ります。\n"
+"その最初の行 (先行するコメントを除く) を検出する正規表現を指定します。\n"
+"ソートキーをグループ化するには括弧を使います。\n"
+"このフィールドを空のままにしておくと、KDiff3 は空行をエントリの区切りと見なし"
+"ます。\n"
+"詳細についてはドキュメントを参照してください。"
+
+#: optiondialog.cpp:992
+msgid "History merge sorting"
+msgstr "履歴マージのソート"
+
+#: optiondialog.cpp:994
+msgid "Sort version control history by a key."
+msgstr "バージョンコントロール履歴をキーでソートします。"
+
+#: optiondialog.cpp:1004
+msgid "History entry start sort key order:"
+msgstr ""
+
+#: optiondialog.cpp:1008
+msgid ""
+"Each pair of parentheses used in the regular expression for the history "
+"start entry\n"
+"groups a key that can be used for sorting.\n"
+"Specify the list of keys (that are numbered in order of occurrence\n"
+"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n"
+"If left empty, then no sorting will be done.\n"
+"See the documentation for details."
+msgstr ""
+
+#: optiondialog.cpp:1019
+msgid "Merge version control history on merge start"
+msgstr "マージ開始時にバージョン履歴をマージする"
+
+#: optiondialog.cpp:1021
+msgid "Run version control history automerge on merge start."
+msgstr "マージ開始時に自動的にバージョン履歴をマージします。"
+
+#: optiondialog.cpp:1025
+msgid "Max number of history entries:"
+msgstr "履歴の最大エントリ数:"
+
+#: optiondialog.cpp:1028
+msgid "Cut off after specified number. Use -1 for infinite number of entries."
+msgstr ""
+"指定した数以降のエントリは削除されます。数を制限しない場合は -1 に設定してく"
+"ださい。"
+
+#: optiondialog.cpp:1032
+msgid "Test your regular expressions"
+msgstr "正規表現をテスト"
+
+#: optiondialog.cpp:1037
+msgid "Irrelevant merge command:"
+msgstr ""
+
+#: optiondialog.cpp:1041
+msgid ""
+"If specified this script is run after automerge\n"
+"when no other relevant changes were detected.\n"
+"Called with the parameters: filename1 filename2 filename3"
+msgstr ""
+
+#: optiondialog.cpp:1047
+msgid "Auto save and quit on merge without conflicts"
+msgstr "衝突がなければマージ後に自動的に保存して終了する"
+
+#: optiondialog.cpp:1050
+msgid ""
+"If KDiff3 was started for a file-merge from the command line and all\n"
+"conflicts are solvable without user interaction then automatically save and "
+"quit.\n"
+"(Similar to command line option \"--auto\".)"
+msgstr ""
+"ファイルマージのために KDiff3 がコマンドラインから起動された場合、\n"
+"すべての衝突が自動解決できるときは、自動的に保存して終了します。\n"
+"(コマンドラインオプションの <icode>--auto</icode> に類似)"
+
+#: optiondialog.cpp:1061 optiondialog.cpp:1062
+msgid "Directory"
+msgstr "ディレクトリ"
+
+#: optiondialog.cpp:1075
+msgid "Recursive directories"
+msgstr "ディレクトリを再帰的に解析する"
+
+#: optiondialog.cpp:1077
+msgid "Whether to analyze subdirectories or not."
+msgstr "サブディレクトリを解析するかどうかを指定します。"
+
+#: optiondialog.cpp:1079
+msgid "File pattern(s):"
+msgstr "ファイルパターン:"
+
+#: optiondialog.cpp:1084
+msgid ""
+"Pattern(s) of files to be analyzed. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"解析するファイルのパターン。\n"
+"ワイルドカード: アスタリスク (*) とクエスチョンマーク (?)\n"
+"複数のパターンを指定する場合はセミコロン (;) で区切ります。"
+
+#: optiondialog.cpp:1090
+msgid "File-anti-pattern(s):"
+msgstr "ファイル否定パターン:"
+
+#: optiondialog.cpp:1095
+msgid ""
+"Pattern(s) of files to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"解析から除外するファイルのパターン。\n"
+"ワイルドカード: アスタリスク (*) とクエスチョンマーク (?)\n"
+"複数のパターンを指定する場合はセミコロン (;) で区切ります。"
+
+#: optiondialog.cpp:1101
+msgid "Dir-anti-pattern(s):"
+msgstr "ディレクトリ否定パターン:"
+
+#: optiondialog.cpp:1106
+msgid ""
+"Pattern(s) of directories to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"解析から除外するディレクトリのパターン。\n"
+"ワイルドカード: アスタリスク (*) とクエスチョンマーク (?)\n"
+"複数のパターンを指定する場合はセミコロン (;) で区切ります。"
+
+#: optiondialog.cpp:1112
+msgid "Use .cvsignore"
+msgstr ".cvsignore を使う"
+
+#: optiondialog.cpp:1115
+msgid ""
+"Extends the antipattern to anything that would be ignored by CVS.\n"
+"Via local \".cvsignore\" files this can be directory specific."
+msgstr ""
+"CVS で無視されるすべてについて否定パターンを拡張します。\n"
+"ローカルの <filename>.cvsignore</filename> ファイルによってディレクトリ固有に"
+"利用できます。"
+
+#: optiondialog.cpp:1120
+msgid "Find hidden files and directories"
+msgstr "隠しファイル/ディレクトリを検索する"
+
+#: optiondialog.cpp:1123
+msgid "Finds files and directories with the hidden attribute."
+msgstr "隠し属性を持つファイルとディレクトリを検索します。"
+
+#: optiondialog.cpp:1125
+msgid "Finds files and directories starting with '.'."
+msgstr "ドット (.) で始まるファイルとディレクトリを検索します。"
+
+#: optiondialog.cpp:1129
+msgid "Follow file links"
+msgstr "ファイルリンクを追跡する"
+
+#: optiondialog.cpp:1132
+msgid ""
+"On: Compare the file the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+"オン: リンク先のファイルを比較します。\n"
+"オフ: リンクを比較します。"
+
+#: optiondialog.cpp:1137
+msgid "Follow directory links"
+msgstr "ディレクトリリンクを追跡"
+
+#: optiondialog.cpp:1140
+msgid ""
+"On: Compare the directory the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+"オン: リンク先のディレクトリを比較します。\n"
+"オフ: リンクを比較します。"
+
+#: optiondialog.cpp:1156
+msgid "Case sensitive filename comparison"
+msgstr "大文字と小文字を区別してファイル名を比較する"
+
+#: optiondialog.cpp:1159
+msgid ""
+"The directory comparison will compare files or directories when their names "
+"match.\n"
+"Set this option if the case of the names must match. (Default for Windows is "
+"off, otherwise on.)"
+msgstr ""
+"ディレクトリ比較は名前が一致するファイルおよびディレクトリを比較します。\n"
+"名前の大文字/小文字も一致しなければならない場合は、このオプションを有効にして"
+"ください。\n"
+"(Windows の標準はオフ、その他ではオンです)"
+
+#: optiondialog.cpp:1163
+msgid "File Comparison Mode"
+msgstr "ファイル比較モード"
+
+#: optiondialog.cpp:1169
+msgid "Binary comparison"
+msgstr "バイナリ比較"
+
+#: optiondialog.cpp:1170
+msgid "Binary comparison of each file. (Default)"
+msgstr "それぞれのファイルをバイナリ比較します。(標準)"
+
+#: optiondialog.cpp:1173
+msgid "Full analysis"
+msgstr "完全分析"
+
+#: optiondialog.cpp:1174
+msgid ""
+"Do a full analysis and show statistics information in extra columns.\n"
+"(Slower than a binary comparison, much slower for binary files.)"
+msgstr ""
+"完全な比較を実行し、統計情報を別のカラムに表示します。\n"
+"(バイナリ比較より遅く、バイナリファイルの場合は非常に時間がかかります)"
+
+#: optiondialog.cpp:1178
+msgid "Trust the size and modification date (unsafe)"
+msgstr "サイズと更新日時を信用する (危険)"
+
+#: optiondialog.cpp:1179
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"Files with equal contents but different modification dates will appear as "
+"different.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"ファイルのサイズと更新日時が等しければ、同一のファイルと見なします。\n"
+"内容が同じで更新日時が異なるファイルは、異なるファイルとして示されます。\n"
+"大きなディレクトリや遅いネットワークで有用です。"
+
+#: optiondialog.cpp:1184
+msgid ""
+"Trust the size and date, but use binary comparison if date does not match "
+"(unsafe)"
+msgstr "サイズと更新日時を信用し、日時が異なる場合はバイナリ比較する (危険)"
+
+#: optiondialog.cpp:1185
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"If the dates are not equal but the sizes are, use binary comparison.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"ファイルのサイズと更新日時が等しければ、同一のファイルと見なします。\n"
+"サイズが同じで日時が異なる場合は、バイナリ比較を行います。\n"
+"大きなディレクトリや遅いネットワークで有用です。"
+
+#: optiondialog.cpp:1190
+msgid "Trust the size (unsafe)"
+msgstr "サイズを信用する (危険)"
+
+#: optiondialog.cpp:1191
+msgid ""
+"Assume that files are equal if their file lengths are equal.\n"
+"Useful for big directories or slow networks when the date is modified during "
+"download."
+msgstr ""
+"ファイルのサイズが等しければ、同一のファイルと見なします。\n"
+"大きなディレクトリやダウンロード中に更新日時が変わってしまうような遅いネット"
+"ワークで有用です。"
+
+#: optiondialog.cpp:1199
+msgid "Synchronize directories"
+msgstr "ディレクトリを同期する"
+
+#: optiondialog.cpp:1202
+msgid ""
+"Offers to store files in both directories so that\n"
+"both directories are the same afterwards.\n"
+"Works only when comparing two directories without specifying a destination."
+msgstr ""
+"両方のディレクトリが同じになるようにファイルを配置します。\n"
+"方向を指定せずに二つのディレクトリをマージする場合にのみ機能します。"
+
+#: optiondialog.cpp:1208
+msgid "White space differences considered equal"
+msgstr "ホワイトスペースの違いを無視する"
+
+#: optiondialog.cpp:1211
+msgid ""
+"If files differ only by white space consider them equal.\n"
+"This is only active when full analysis is chosen."
+msgstr ""
+"ファイルの差異がホワイトスペースだけの場合は等しいものと見なします。\n"
+"このオプションは完全分析が選択されているときにのみアクティブになります。"
+
+#: optiondialog.cpp:1217
+msgid "Copy newer instead of merging (unsafe)"
+msgstr "マージではなく、より新しいものをコピー (危険)"
+
+#: optiondialog.cpp:1220
+msgid ""
+"Don't look inside, just take the newer file.\n"
+"(Use this only if you know what you are doing!)\n"
+"Only effective when comparing two directories."
+msgstr ""
+"内容を調べずに単により新しいファイルを取ります。\n"
+"(何をしているのか分かっている場合にのみ使用してください)\n"
+"二つのディレクトリを比較しているときのみ有効です。"
+
+#: optiondialog.cpp:1225
+msgid "Backup files (.orig)"
+msgstr "バックアップファイル (.orig) を残す"
+
+#: optiondialog.cpp:1228
+msgid ""
+"If a file would be saved over an old file, then the old file\n"
+"will be renamed with a '.orig' extension instead of being deleted."
+msgstr ""
+"ファイルを上書き保存する際に、<filename>.orig</filename> 拡張子を付けて元の"
+"ファイルを残します。"
+
+#: optiondialog.cpp:1301 optiondialog.cpp:1302
+msgid "Regional Settings"
+msgstr "言語の設定"
+
+#: optiondialog.cpp:1402
+msgid "Language (restart required)"
+msgstr "言語 (再スタートが必要)"
+
+#: optiondialog.cpp:1445
+msgid ""
+"Choose the language of the GUI strings or \"Auto\".\n"
+"For a change of language to take place, quit and restart KDiff3."
+msgstr ""
+"GUI の言語を選択するか<interface>自動</interface>を選択します。\n"
+"言語の変更を適用するには、KDiff3 を再スタートする必要があります。"
+
+#: optiondialog.cpp:1463
+msgid "Use the same encoding for everything:"
+msgstr "すべてに同じエンコーディングを使う:"
+
+#: optiondialog.cpp:1466
+msgid ""
+"Enable this allows to change all encodings by changing the first only.\n"
+"Disable this if different individual settings are needed."
+msgstr ""
+"このオプションを有効にすると、最初を変更するだけですべてのエンコーディングを"
+"同時に変更できます。\n"
+"それぞれに個別に設定する必要がある場合は、無効にしてください。"
+
+#: optiondialog.cpp:1471
+msgid "Note: Local Encoding is "
+msgstr "現在のロカールエンコーディング: "
+
+#: optiondialog.cpp:1475
+msgid "File Encoding for A:"
+msgstr "A のファイルのエンコーディング:"
+
+#: optiondialog.cpp:1481
+msgid ""
+"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n"
+"If the file is not Unicode then the selected encoding will be used as "
+"fallback.\n"
+"(Unicode detection depends on the first bytes of a file.)"
+msgstr ""
+"これを有効にすると、Unicode (UTF-16 または UTF-8) を自動検出します。\n"
+"ファイルのエンコーディングが Unicode でない場合は、選択されたエンコーディング"
+"を使います。\n"
+"(Unicode 自動検出はファイルの最初の数バイトを調べます)"
+
+#: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503
+msgid "Auto Detect Unicode"
+msgstr "Unicode 自動検出"
+
+#: optiondialog.cpp:1490
+msgid "File Encoding for B:"
+msgstr "B のファイルのエンコーディング:"
+
+#: optiondialog.cpp:1499
+msgid "File Encoding for C:"
+msgstr "C のファイルのエンコーディング:"
+
+#: optiondialog.cpp:1508
+msgid "File Encoding for Merge Output and Saving:"
+msgstr "マージ出力と保存時のエンコーディング:"
+
+#: optiondialog.cpp:1512
+msgid "Auto Select"
+msgstr "自動選択"
+
+#: optiondialog.cpp:1515
+msgid ""
+"If enabled then the encoding from the input files is used.\n"
+"In ambiguous cases a dialog will ask the user to choose the encoding for "
+"saving."
+msgstr ""
+"これを有効にすると、入力ファイルのエンコーディングが使われます。\n"
+"不確かな場合はダイアログが表示され、保存時のエンコーディングを選択するよう促"
+"されます。"
+
+#: optiondialog.cpp:1519
+msgid "File Encoding for Preprocessor Files:"
+msgstr "プリプロセッサファイルのエンコーディング:"
+
+#: optiondialog.cpp:1530
+msgid "Right To Left Language"
+msgstr "右から左に読む言語"
+
+#: optiondialog.cpp:1533
+msgid ""
+"Some languages are read from right to left.\n"
+"This setting will change the viewer and editor accordingly."
+msgstr ""
+"右から左に読む言語で有効にします。\n"
+"この設定によってビューアとエディタの表示が変わります。"
+
+#: optiondialog.cpp:1548
+msgid "Integration"
+msgstr "統合"
+
+#: optiondialog.cpp:1549
+msgid "Integration Settings"
+msgstr "統合の設定"
+
+#: optiondialog.cpp:1563
+msgid "Command line options to ignore:"
+msgstr "無視するコマンドラインオプション:"
+
+#: optiondialog.cpp:1568
+msgid ""
+"List of command line options that should be ignored when KDiff3 is used by "
+"other tools.\n"
+"Several values can be specified if separated via ';'\n"
+"This will suppress the \"Unknown option\" error."
+msgstr ""
+"KDiff3 が他のツールによって使用されるときに無視すべきコマンドラインオプション"
+"のリストです。\n"
+"複数のオプションはセミコロン (;) で区切って指定してください。\n"
+"これによって \"不明なオプション\" エラーを抑制できます。"
+
+#: optiondialog.cpp:1575
+msgid "Quit also via Escape key"
+msgstr ""
+
+#: optiondialog.cpp:1578
+msgid ""
+"Fast method to exit.\n"
+"For those who are used to using the Escape key."
+msgstr ""
+
+#: optiondialog.cpp:1583
+msgid "Integrate with ClearCase"
+msgstr ""
+
+#: optiondialog.cpp:1586
+msgid ""
+"Integrate with Rational ClearCase from IBM.\n"
+"Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n"
+"(Only enabled when ClearCase \"bin\" directory is in the path.)"
+msgstr ""
+
+#: optiondialog.cpp:1592
+msgid "Remove ClearCase Integration"
+msgstr ""
+
+#: optiondialog.cpp:1595
+msgid ""
+"Restore the old \"map\" file from before doing the ClearCase integration."
+msgstr ""
+
+#: optiondialog.cpp:1680
+msgid "Incompatible Font"
+msgstr "非互換なフォント"
+
+#: optiondialog.cpp:1681
+msgid "Continue at Own Risk"
+msgstr "自己責任で続行"
+
+#: optiondialog.cpp:1682
+msgid "Select Another Font"
+msgstr "他のフォントを選択"
+
+#: optiondialog.cpp:1717
+msgid "This resets all options. Not only those of the current topic."
+msgstr ""
+"現在のトピックだけでなく、すべてのオプションを標準設定にリセットします。"
+
+#: pdiff.cpp:260
+msgid "PreprocessorCmd: "
+msgstr "プリプロセッサコマンド: "
+
+#: pdiff.cpp:265
+msgid "The following option(s) you selected might change data:\n"
+msgstr "選択された以下のオプションはデータを変えてしまう可能性があります:\n"
+
+#: pdiff.cpp:266
+msgid ""
+"\n"
+"Most likely this is not wanted during a merge.\n"
+"Do you want to disable these settings or continue with these settings active?"
+msgstr ""
+"\n"
+"通常これはマージ中には望ましくないと考えられます。\n"
+"これらのオプションを無効にしますか?それともこのままマージを続行しますか?"
+
+#: pdiff.cpp:268
+msgid "Option Unsafe for Merging"
+msgstr "危険なマージオプション"
+
+#: pdiff.cpp:269
+msgid "Use These Options During Merge"
+msgstr "このまま続行"
+
+#: pdiff.cpp:270
+msgid "Disable Unsafe Options"
+msgstr "危険なオプションを無効にする"
+
+#: pdiff.cpp:300
+msgid "Loading A"
+msgstr "A を読み込み中"
+
+#: pdiff.cpp:304
+msgid "Loading B"
+msgstr "B を読み込み中"
+
+#: pdiff.cpp:321 pdiff.cpp:347
+msgid "Diff: A <-> B"
+msgstr "Diff: A <-> B"
+
+#: pdiff.cpp:327 pdiff.cpp:372
+msgid "Linediff: A <-> B"
+msgstr "Linediff: A <-> B"
+
+#: pdiff.cpp:338
+msgid "Loading C"
+msgstr "C を読み込み中"
+
+#: pdiff.cpp:350
+msgid "Diff: B <-> C"
+msgstr "Diff: B <-> C"
+
+#: pdiff.cpp:353
+msgid "Diff: A <-> C"
+msgstr "Diff: A <-> C"
+
+#: pdiff.cpp:375
+msgid "Linediff: B <-> C"
+msgstr "Linediff: B <-> C"
+
+#: pdiff.cpp:378
+msgid "Linediff: A <-> C"
+msgstr "Linediff: A <-> C"
+
+#: pdiff.cpp:534
+msgid "All input files contain the same text, but are not binary equal."
+msgstr ""
+"すべての入力ファイルのテキストは同じですが、バイナリ的に等しくありません。"
+
+#: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541
+#, kde-format
+msgid "Files %1 and %2 have equal text, but are not binary equal. \n"
+msgstr ""
+"ファイル %1 と %2 のテキストは同じですが、バイナリ的に等しくありません。\n"
+
+#: pdiff.cpp:551
+msgid ""
+"Some inputfiles don't seem to be pure textfiles.\n"
+"Note that the KDiff3-merge was not meant for binary data.\n"
+"Continue at your own risk."
+msgstr ""
+"入力ファイルのいくつかはテキストファイルではないようです。\n"
+"KDiff3 のマージはバイナリデータでの使用を想定していません。\n"
+"自己責任で続行してください。"
+
+#: pdiff.cpp:566
+#, kde-format
+msgid ""
+"Some input characters could not be converted to valid unicode.\n"
+"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n"
+"Don't save the result if unsure. Continue at your own risk.\n"
+"Affected input files are in %1."
+msgstr ""
+
+#: pdiff.cpp:1080
+msgid "Abort"
+msgstr "中止"
+
+#: pdiff.cpp:1087 pdiff.cpp:1175
+msgid "Opening files..."
+msgstr "ファイルを開いています..."
+
+#: pdiff.cpp:1152 pdiff.cpp:1223
+msgid "File open error"
+msgstr "ファイルのオープンエラー"
+
+#: pdiff.cpp:1255
+msgid "Cutting selection..."
+msgstr "選択範囲を切り取り..."
+
+#: pdiff.cpp:1276
+msgid "Copying selection to clipboard..."
+msgstr "選択範囲をクリップボードにコピー..."
+
+#: pdiff.cpp:1292
+msgid "Inserting clipboard contents..."
+msgstr "クリップボードの内容を挿入..."
+
+#: pdiff.cpp:1814
+msgid "Save && Continue"
+msgstr "保存/続行"
+
+#: pdiff.cpp:1815
+msgid "Continue Without Saving"
+msgstr "保存せずに続行"
+
+#: pdiff.cpp:2018
+msgid "Search complete."
+msgstr "検索が完了しました。"
+
+#: pdiff.cpp:2018
+msgid "Search Complete"
+msgstr "検索完了"
+
+#: pdiff.cpp:2252
+msgid "Nothing is selected in either diff input window."
+msgstr ""
+
+#: pdiff.cpp:2252
+#, fuzzy
+msgid "Error while adding manual diff range"
+msgstr "ディレクトリ作成中にエラー"
+
+#: kdiff3_shell.cpp:76
+#, fuzzy
+#| msgid ""
+#| "Could not initialize the KDiff part.\n"
+#| "This usually happens due to an installation problem. Please read the "
+#| "README-file in the source package for details."
+msgid ""
+"Could not initialize the KDiff3 part.\n"
+"This usually happens due to an installation problem. Please read the README-"
+"file in the source package for details."
+msgstr ""
+"KDiff part を初期化できませんでした。\n"
+"普通これはインストールの問題です。詳細についてはソースパッケージの README "
+"ファイルを参照してください。"
+
+#: rc.cpp:1
+msgctxt "NAME OF TRANSLATORS"
+msgid "Your names"
+msgstr "SATOH Satoru,Yukiko Bando"
+
+#: rc.cpp:2
+msgctxt "EMAIL OF TRANSLATORS"
+msgid "Your emails"
+msgstr "ss@kde.gr.jp,ybando@k6.dion.ne.jp"
+
+#. i18n: file: kdiff3_part.rc:4
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:5
+msgid "&KDiff3"
+msgstr "KDiff3(&K)"
+
+#. i18n: file: kdiff3_part.rc:13
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:8
+msgid "Configure KDiff3"
+msgstr "KDiff3 を設定"
+
+#. i18n: file: kdiff3_part.rc:16
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:11
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#. i18n: file: kdiff3_shell.rc:106
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:38
+msgid "Main Toolbar"
+msgstr "メインツールバー"
diff --git a/po/ja/kdiff3fileitemactionplugin.po b/po/ja/kdiff3fileitemactionplugin.po
new file mode 100644 (file)
index 0000000..49b5af0
--- /dev/null
@@ -0,0 +1,82 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3fileitemactionplugin\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-05-06 23:50-0700\n"
+"Last-Translator: Japanese KDE translation team <Kdeveloper@kde.gr.jp>\n"
+"Language-Team: Japanese <Kdeveloper@kde.gr.jp>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Accelerator-Marker: &\n"
+"X-Text-Markup: kde4\n"
+
+#: kdiff3fileitemaction.cpp:94
+msgid "KDiff3 ..."
+msgstr ""
+
+#: kdiff3fileitemaction.cpp:125
+#, kde-format
+msgid "Compare with %1"
+msgstr ""
+
+#: kdiff3fileitemaction.cpp:131
+#, kde-format
+msgid "Merge with %1"
+msgstr ""
+
+#: kdiff3fileitemaction.cpp:137
+#, kde-format
+msgid "Save '%1' for later"
+msgstr ""
+
+#: kdiff3fileitemaction.cpp:143
+msgid "3-way merge with base"
+msgstr ""
+
+#: kdiff3fileitemaction.cpp:150
+msgid "Compare with ..."
+msgstr ""
+
+#: kdiff3fileitemaction.cpp:162
+msgid "Clear list"
+msgstr ""
+
+#: kdiff3fileitemaction.cpp:170
+msgid "Compare"
+msgstr ""
+
+#: kdiff3fileitemaction.cpp:176
+msgid "3 way comparison"
+msgstr ""
+
+#: kdiff3fileitemaction.cpp:180
+msgid "About KDiff3 menu plugin ..."
+msgstr ""
+
+#: kdiff3fileitemaction.cpp:284
+msgid ""
+"KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+
+#: kdiff3fileitemaction.cpp:286
+msgid ""
+"Using the contextmenu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else \"Save\" the first file for later. It "
+"will appear in the \"Compare With ...\" submenu. Then use \"Compare With\" "
+"on second file.\n"
+"For a 3-way merge first \"Save\" the base file, then the branch to merge and "
+"choose \"3-way merge with base\" on the other branch which will be used as "
+"destination.\n"
+"Same also applies to directory comparison and merge."
+msgstr ""
+
+#: kdiff3fileitemaction.cpp:294
+msgid "About KDiff3 File Item Action Plugin"
+msgstr ""
diff --git a/po/ja/kdiff3plugin.po b/po/ja/kdiff3plugin.po
new file mode 100644 (file)
index 0000000..4a0cab5
--- /dev/null
@@ -0,0 +1,82 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3plugin\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2008-11-30 00:25+0900\n"
+"Last-Translator: Yukiko Bando <ybando@k6.dion.ne.jp>\n"
+"Language-Team: Japanese <Kdeveloper@kde.gr.jp>\n"
+"Language: ja\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Accelerator-Marker: &\n"
+"X-Text-Markup: kde4\n"
+
+#: kdiff3plugin.cpp:107
+msgid "KDiff3"
+msgstr ""
+
+#: kdiff3plugin.cpp:114
+#, kde-format
+msgid "Compare with %1"
+msgstr ""
+
+#: kdiff3plugin.cpp:120
+#, kde-format
+msgid "Merge with %1"
+msgstr ""
+
+#: kdiff3plugin.cpp:126
+#, kde-format
+msgid "Save '%1' for later"
+msgstr ""
+
+#: kdiff3plugin.cpp:132
+msgid "3-way merge with base"
+msgstr ""
+
+#: kdiff3plugin.cpp:139
+msgid "Compare with ..."
+msgstr ""
+
+#: kdiff3plugin.cpp:149
+msgid "Clear list"
+msgstr ""
+
+#: kdiff3plugin.cpp:157
+msgid "Compare"
+msgstr ""
+
+#: kdiff3plugin.cpp:163
+msgid "3 way comparison"
+msgstr ""
+
+#: kdiff3plugin.cpp:167
+msgid "About KDiff3 menu plugin ..."
+msgstr ""
+
+#: kdiff3plugin.cpp:269
+msgid ""
+"KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+
+#: kdiff3plugin.cpp:271
+msgid ""
+"Using the context menu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else, \"Save\" the first file for later, and "
+"it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With"
+"\" on the second file.\n"
+"For a 3-way merge first, \"Save\" the base file, then the branch to merge, "
+"and then \"3-way merge with base\" on the other branch which will be used as "
+"the destination.\n"
+"The same also applies to directory comparison and merge."
+msgstr ""
+
+#: kdiff3plugin.cpp:279
+msgid "About KDiff3 Menu Plugin"
+msgstr ""
diff --git a/po/ka/CMakeLists.txt b/po/ka/CMakeLists.txt
new file mode 100644 (file)
index 0000000..521dc3c
--- /dev/null
@@ -0,0 +1,2 @@
+file(GLOB _po_files *.po)
+GETTEXT_PROCESS_PO_FILES(ka ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
diff --git a/po/ka/kdiff3.po b/po/ka/kdiff3.po
new file mode 100644 (file)
index 0000000..29842be
--- /dev/null
@@ -0,0 +1,3280 @@
+# translation of kdiff3.po to Georgian
+#
+# Rusudan Tsiskreli <r_tsiskreli@caucasus.net>, 2006.
+# რუსუდან ცისკრელი <tsiskreli@gmail.com>, 2006.
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2006-03-28 01:44+0400\n"
+"Last-Translator: Giasher <giasher@telenet.ge>\n"
+"Language-Team:  <www.gia.ge>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.2\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: kreplacements/kreplacements.h:105
+#, fuzzy
+#| msgid "C&ontinue"
+msgid "Continue"
+msgstr "&გაგრძელება"
+
+#: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158
+#: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512
+msgid "Cancel"
+msgstr ""
+
+#: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631
+msgid "Quit"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339
+msgid "Ok"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715
+msgid "Help"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:185
+msgid "Defaults"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:4
+#. i18n: ectx: Menu (file)
+#: kreplacements/kreplacements.cpp:296 rc.cpp:14
+#, fuzzy
+#| msgid "File..."
+msgid "&File"
+msgstr "ფაილი..."
+
+#: kreplacements/kreplacements.cpp:297
+#, fuzzy
+#| msgid "Editor"
+msgid "&Edit"
+msgstr "რედაქტორი"
+
+#. i18n: file: kdiff3_shell.rc:7
+#. i18n: ectx: Menu (directory)
+#: kreplacements/kreplacements.cpp:298 rc.cpp:17
+msgid "&Directory"
+msgstr "&დირექტორია"
+
+#. i18n: file: kdiff3_shell.rc:50
+#. i18n: ectx: Menu (movement)
+#: kreplacements/kreplacements.cpp:301 rc.cpp:26
+msgid "&Movement"
+msgstr "&მოძრაობა"
+
+#. i18n: file: kdiff3_shell.rc:61
+#. i18n: ectx: Menu (diff)
+#: kreplacements/kreplacements.cpp:302 rc.cpp:29
+msgid "D&iffview"
+msgstr "D&iffview"
+
+#. i18n: file: kdiff3_shell.rc:73
+#. i18n: ectx: Menu (merge)
+#: kreplacements/kreplacements.cpp:303 rc.cpp:32
+msgid "&Merge"
+msgstr "შ&ერწყმა"
+
+#. i18n: file: kdiff3_shell.rc:95
+#. i18n: ectx: Menu (window)
+#: kreplacements/kreplacements.cpp:304 rc.cpp:35
+msgid "&Window"
+msgstr "&ფანჯარა"
+
+#: kreplacements/kreplacements.cpp:305
+#, fuzzy
+msgid "&Settings"
+msgstr "Diff & შერწყმის პარამეტრები"
+
+#: kreplacements/kreplacements.cpp:306
+msgid "&Help"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:353
+#, fuzzy
+#| msgid "Abort"
+msgid "&About"
+msgstr "შეწყვეტა"
+
+#: kreplacements/kreplacements.cpp:369
+msgid "A&uthor"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:383
+msgid "&Thanks To"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:30
+#. i18n: ectx: Menu (dir_current_merge_menu)
+#: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497
+#: rc.cpp:20
+msgid "Current Item Merge Operation"
+msgstr "მიმდინარე ელემენტის შერწყმის ოპერაცია"
+
+#. i18n: file: kdiff3_shell.rc:38
+#. i18n: ectx: Menu (dir_current_sync_menu)
+#: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498
+#: rc.cpp:23
+msgid "Current Item Sync Operation"
+msgstr "მიმდინარე ელემენტის სინქრონიზაციის ოპერაცია"
+
+#: kreplacements/kreplacements.cpp:597
+#, fuzzy
+#| msgid "Operation"
+msgid "Open"
+msgstr "ოპერაცია"
+
+#: kreplacements/kreplacements.cpp:606
+#, fuzzy
+#| msgid "Solved"
+msgid "Save"
+msgstr "გადაჭრილი"
+
+#: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720
+msgid "Save As..."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:623
+#, fuzzy
+msgid "Print..."
+msgstr "გამოსვლა..."
+
+#: kreplacements/kreplacements.cpp:639
+msgid "Cut"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:647
+msgid "Copy"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:655
+msgid "Paste"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:663
+#, fuzzy
+#| msgid "Delete A"
+msgid "Select All"
+msgstr "A-ს წაშლა"
+
+#: kreplacements/kreplacements.cpp:671
+msgid "Show Toolbar"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:679
+msgid "Show &Status Bar"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:687
+#, fuzzy, kde-format
+#| msgid "Configure..."
+msgid "&Configure %1..."
+msgstr "კონფიგურაცია..."
+
+#: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707
+#, fuzzy
+#| msgid "Abort"
+msgid "About"
+msgstr "შეწყვეტა"
+
+#: kreplacements/kreplacements.cpp:722
+msgid "Find"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:730
+msgid "Find Next"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:750
+#, fuzzy
+#| msgid "Select Another Font"
+msgid "Select Font"
+msgstr "სხვა შრიფტის ამორჩევა"
+
+#: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676
+msgid ""
+"You selected a variable width font.\n"
+"\n"
+"Because this program doesn't handle variable width fonts\n"
+"correctly, you might experience problems while editing.\n"
+"\n"
+"Do you want to continue or do you want to select another font."
+msgstr ""
+"თქვენ აირჩიეთ შრიფტის ცვლადი სიგანე.\n"
+"\n"
+"რადგან ეს პროგრამა ვერ ამუშავებს შრიფტის ცვლად სიგანეს\n"
+"სწორად, თქვენ შეიძლება რედაქტირებისას პრობლემები შეგექმნათ.\n"
+"\n"
+"გსურთ გააგრძელოთ თუ სხვა შრიფტს აირჩევთ."
+
+#: kreplacements/kreplacements.cpp:792
+#, fuzzy
+#| msgid "Incompatible Font"
+msgid "Incompatible font."
+msgstr "შეუთავსებელი შრიფტი"
+
+#: kreplacements/kreplacements.cpp:793
+#, fuzzy
+#| msgid "Continue at Own Risk"
+msgid "Continue at my own risk"
+msgstr "საკუთარი თავის იმედათ გაგრძელება"
+
+#: kreplacements/kreplacements.cpp:793
+#, fuzzy
+#| msgid "Select Another Font"
+msgid "Select another font"
+msgstr "სხვა შრიფტის ამორჩევა"
+
+#: kreplacements/kreplacements.cpp:1134
+msgid "For more documentation, see the help-menu or the subdirectory doc."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1137
+#, fuzzy
+#| msgid "KDiff3"
+msgid "KDiff3-Usage"
+msgstr "KDiff3"
+
+#: kreplacements/kreplacements.cpp:1137
+#, fuzzy
+#| msgid "Ignore case"
+msgid "Ignore"
+msgstr "რეგისტრის იგნორირება"
+
+#: kreplacements/kreplacements.cpp:1137
+#, fuzzy
+#| msgid "Editor"
+msgid "Exit"
+msgstr "რედაქტორი"
+
+#: diff.cpp:251
+msgid "Writing clipboard data to temp file failed."
+msgstr "ბუფერის მონაცემის დროებით ფაილში ჩაწერა ვერ შედგა."
+
+#: diff.cpp:255
+msgid "From Clipboard"
+msgstr "გაცვლის ბუფერიდან "
+
+#: diff.cpp:471
+msgid "Expecting space after closing quotation mark."
+msgstr ""
+
+#: diff.cpp:474
+msgid "Not matching quotation marks."
+msgstr ""
+
+#: diff.cpp:496
+msgid "Unexpected quotation mark within argument."
+msgstr ""
+
+#: diff.cpp:503
+msgid "No program specified."
+msgstr ""
+
+#: diff.cpp:605
+#, kde-format
+msgid ""
+"Preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The preprocessing command will be disabled now."
+msgstr ""
+"გაგრძელება შესაძლოა ვერ შედგა შემოწმება. შეამოწმეთ ეს ბრძანება:\n"
+"\n"
+"  %1\n"
+"\n"
+"გაგრძელების ბრძანება ახლა გამოირთვება."
+
+#: diff.cpp:653
+#, kde-format
+msgid ""
+"The line-matching-preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The line-matching-preprocessing command will be disabled now."
+msgstr ""
+"ხაზთა დამთხვევა ალბათ ვერ შედგა.  შეამოწმეთ ეს ბრძანება:\n"
+"\n"
+"  %1\n"
+"\n"
+"ხაზთა დამთხვევა ახლა გამოირთვება."
+
+#: diff.cpp:1776 diff.cpp:1790
+#, fuzzy
+#| msgid ""
+#| "Data loss error:\n"
+#| "If it is reproducable please contact the author.\n"
+msgid ""
+"Data loss error:\n"
+"If it is reproducible please contact the author.\n"
+msgstr ""
+"მონაცემების დაკარგვის შეცდომა:\n"
+"თუ ეს მეორდება, გთხოვთ დაუკავშირდეთ ავტორს.\n"
+
+#: diff.cpp:1778 diff.cpp:1792
+msgid "Severe Internal Error"
+msgstr "მკაცრი შინაგანი შეცდომა"
+
+#: directorymergewindow.cpp:136
+msgid "Mix of links and normal files."
+msgstr "ბმულების და ჩოულებრივი ფაილების ნარევი."
+
+#: directorymergewindow.cpp:143
+msgid "Link: "
+msgstr "ბმული: "
+
+#: directorymergewindow.cpp:151
+msgid "Size. "
+msgstr "ზომა. "
+
+#: directorymergewindow.cpp:164 directorymergewindow.cpp:174
+msgid "Date & Size: "
+msgstr "თარიღი და ზომა: "
+
+#: directorymergewindow.cpp:184 directorymergewindow.cpp:190
+#, kde-format
+msgid "Creating temp copy of %1 failed."
+msgstr "%1-ს დროებითი ასლის შექმნა ვერ შედგა."
+
+#: directorymergewindow.cpp:201 directorymergewindow.cpp:209
+#, kde-format
+msgid "Opening %1 failed."
+msgstr "%1-ს გახსნა ვერ შედგა."
+
+#: directorymergewindow.cpp:213
+msgid "Comparing file..."
+msgstr "ფაილების შედარება..."
+
+#: directorymergewindow.cpp:223 directorymergewindow.cpp:229
+#, kde-format
+msgid "Error reading from %1"
+msgstr "%1-ს წაკითხვის შეცდომა"
+
+#: directorymergewindow.cpp:358
+msgid "Name"
+msgstr "სახელი"
+
+#: directorymergewindow.cpp:358
+msgid "Operation"
+msgstr "ოპერაცია"
+
+#: directorymergewindow.cpp:358
+msgid "Status"
+msgstr "სტატუსი"
+
+#: directorymergewindow.cpp:359
+msgid "Unsolved"
+msgstr "გადაუჭრელი"
+
+#: directorymergewindow.cpp:359
+msgid "Solved"
+msgstr "გადაჭრილი"
+
+#: directorymergewindow.cpp:359
+msgid "Nonwhite"
+msgstr "არათეთრი"
+
+#: directorymergewindow.cpp:359
+msgid "White"
+msgstr "თეთრი"
+
+#: directorymergewindow.cpp:388
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort "
+"the merge and rescan the directory?"
+msgstr ""
+"თქვენ ახლა დირექტორიების შერწყმას ახორციელებთ.დარწმუნებული ხართ რომ გსურთ "
+"შერწყმის შეწყვეტა და დირექტორიის თავიდან სკანირება?"
+
+#: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655
+#: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823
+msgid "Warning"
+msgstr ""
+
+#: directorymergewindow.cpp:390 directorymergewindow.cpp:2965
+msgid "Rescan"
+msgstr "თავიდან სკანირება"
+
+#: directorymergewindow.cpp:391 pdiff.cpp:1081
+msgid "Continue Merging"
+msgstr "შერწყმის გაგრძელება"
+
+#: directorymergewindow.cpp:548
+msgid "Opening of directories failed:"
+msgstr "დირექტორიის გახსნა ვერ შედგა:"
+
+#: directorymergewindow.cpp:551
+#, kde-format
+msgid "Dir A \"%1\" does not exist or is not a directory.\n"
+msgstr "Dir A \"%1\" არ არსებობს ან არ არის დირექტორია.\n"
+
+#: directorymergewindow.cpp:554
+#, kde-format
+msgid "Dir B \"%1\" does not exist or is not a directory.\n"
+msgstr "Dir B \"%1\" არ არსებობს ან არ არის დირექტორია.\n"
+
+#: directorymergewindow.cpp:557
+#, kde-format
+msgid "Dir C \"%1\" does not exist or is not a directory.\n"
+msgstr "Dir C \"%1\" არ არსებობს ან არ არის დირექტორია.\n"
+
+#: directorymergewindow.cpp:559
+msgid "Directory Open Error"
+msgstr "დირექტორიის გახსნის შეცდომა"
+
+#: directorymergewindow.cpp:567
+msgid ""
+"The destination directory must not be the same as A or B when three "
+"directories are merged.\n"
+"Check again before continuing."
+msgstr ""
+"დანიშნულების დირექტორია არ უნდა იყოს იგივე A ან B როდესაც ხდება სამი "
+"დირექტორიის შერწყმა.\n"
+"გაგრძელებამდე კიდევ შეამოწმეთ."
+
+#: directorymergewindow.cpp:569
+msgid "Parameter Warning"
+msgstr "გაფრთხილების პარამეტრი"
+
+#: directorymergewindow.cpp:574
+msgid "Scanning directories..."
+msgstr "დირექტორიების სკანირება..."
+
+#: directorymergewindow.cpp:607
+msgid "Reading Directory A"
+msgstr "დირექტორია A-ს წაკითხვა"
+
+#: directorymergewindow.cpp:629
+msgid "Reading Directory B"
+msgstr "დირექტორია B-ს წაკითხვა"
+
+#: directorymergewindow.cpp:651
+msgid "Reading Directory C"
+msgstr "დირექტორია C-ს წაკითხვა"
+
+#: directorymergewindow.cpp:677
+msgid "Some subdirectories were not readable in"
+msgstr "ზოგიერთი ქვედირექტორიის წაკითხვა ვერ განხორციელდა"
+
+#: directorymergewindow.cpp:682
+msgid "Check the permissions of the subdirectories."
+msgstr "ქვედირექტორიების უფლებების შემოწმება."
+
+#: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737
+#: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233
+#: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328
+msgid "Ready."
+msgstr "მზად."
+
+#: directorymergewindow.cpp:735
+msgid "Directory Comparison Status"
+msgstr "დირექტორიის შედარების სტატუსი"
+
+#: directorymergewindow.cpp:736
+msgid "Number of subdirectories:"
+msgstr "ქვედირექტორიების რაოდენობა:"
+
+#: directorymergewindow.cpp:737
+msgid "Number of equal files:"
+msgstr "ტოლი ფაილების რაოდენობა:"
+
+#: directorymergewindow.cpp:738
+msgid "Number of different files:"
+msgstr "განსხვავებული ფაილების რაოდენობა:"
+
+#: directorymergewindow.cpp:741
+msgid "Number of manual merges:"
+msgstr "ხელით შერწყმების რაოდენობა:"
+
+#: directorymergewindow.cpp:912
+msgid "This affects all merge operations."
+msgstr "ეს მოსდის ყველა შერწყმის ოპერაციას."
+
+#: directorymergewindow.cpp:913
+msgid "Changing All Merge Operations"
+msgstr "ყველა შერწყმის ოპერაციების შეცვლა"
+
+#: directorymergewindow.cpp:1312
+msgid "Processing "
+msgstr "მიმდინარეობა "
+
+#: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742
+msgid "To do."
+msgstr "გასაკეთებელი."
+
+#: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996
+msgid "Copy A to B"
+msgstr "A-ს ასლი B-ში"
+
+#: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997
+msgid "Copy B to A"
+msgstr "B-ს ასლი A-ში"
+
+#: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998
+msgid "Delete A"
+msgstr "A-ს წაშლა"
+
+#: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999
+msgid "Delete B"
+msgstr "B-ს წაშლა"
+
+#: directorymergewindow.cpp:1814
+msgid "Delete A & B"
+msgstr "A და B-ს წაშლა"
+
+#: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001
+msgid "Merge to A"
+msgstr "შერწყმა A-სკენ"
+
+#: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002
+msgid "Merge to B"
+msgstr "შერწყმა B-სკენ"
+
+#: directorymergewindow.cpp:1817
+msgid "Merge to A & B"
+msgstr "შერწყმა A და B-სკენ"
+
+#: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993
+msgid "Delete (if exists)"
+msgstr "წაშლა (თუ არსებობს)"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+#: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869
+msgid "Merge"
+msgstr "შერწყმა"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+msgid "Merge (manual)"
+msgstr "შერწყმა (ხელით)"
+
+#: directorymergewindow.cpp:1824
+msgid "Error: Conflicting File Types"
+msgstr "შეცდომა: კონფლიქტურ ფაილთა ტიპები"
+
+#: directorymergewindow.cpp:1825
+msgid "Error: Changed and Deleted"
+msgstr ""
+
+#: directorymergewindow.cpp:1826
+msgid "Error: Dates are equal but files are not."
+msgstr "შეცდომა: თარიღები იდენტურია, მარა ფაილები არა."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906
+msgid "This operation is currently not possible."
+msgstr "ეს ოპერაცია ახლა შეუძლებელია."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174
+msgid "Operation Not Possible"
+msgstr "ოპერაცია შეუძლებელია"
+
+#: directorymergewindow.cpp:1945
+msgid ""
+"This should never happen: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"If you know how to reproduce this, please contact the program author."
+msgstr ""
+"ეს არასდროს არ უნდა მომხდარიყო: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"თუ იცით როგორ განახორციალოთ ეს, გთხოვთ დაუკავსირდეთ პროგრამის ავტორს."
+
+#: directorymergewindow.cpp:1945
+msgid "Program Error"
+msgstr "პროგრამის შეცდომა"
+
+#: directorymergewindow.cpp:1956
+msgid "An error occurred while copying.\n"
+msgstr "ასლის გაკეთებისას შეცდომა მოხდა.\n"
+
+#: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025
+#: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105
+#: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123
+#: directorymergewindow.cpp:2374
+#, fuzzy
+#| msgid "Error."
+msgid "Error"
+msgstr "შეცდომა."
+
+#: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375
+msgid "Merge Error"
+msgstr "შერწმის შეცდომა"
+
+#: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380
+msgid "Error."
+msgstr "შეცდომა."
+
+#: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272
+#: directorymergewindow.cpp:2312
+msgid "Done."
+msgstr "შესრულებულია."
+
+#: directorymergewindow.cpp:1990
+msgid "Not saved."
+msgstr "არაა შენახული."
+
+#: directorymergewindow.cpp:2025
+msgid "Unknown merge operation. (This must never happen!)"
+msgstr "შერწყმის უცნობი ოპერაცია. (ეს არასდროს არ უნდა მომხდარიყო!)"
+
+#: directorymergewindow.cpp:2057
+msgid "Unknown merge operation."
+msgstr "შერწყმის უცნობი ოპერაცია."
+
+#: directorymergewindow.cpp:2072
+msgid ""
+"The merge is about to begin.\n"
+"\n"
+"Choose \"Do it\" if you have read the instructions and know what you are "
+"doing.\n"
+"Choosing \"Simulate it\" will tell you what would happen.\n"
+"\n"
+"Be aware that this program still has beta status and there is NO WARRANTY "
+"whatsoever! Make backups of your vital data!"
+msgstr ""
+"შერწყმა საცაა დაიწყება.\n"
+"\n"
+"აირჩიეთ \"გაკეთება\" თუ წაიკითხეთ ინსტრუქცია და იცით რას აკეტებთ.\n"
+"\"სიმულაციის\" არჩევით გაიგებტ რა მოხდება.\n"
+"\n"
+"გაითვალისწინეთ ეს პროგრამა ჯერ კიდევ ბეტაა და არანაერი გარანტია არ არსებობს! "
+"სასიცოცხლო მნიშვნელობის მონაცემების სარეზერვო ასლები გააკეთეთ!"
+
+#: directorymergewindow.cpp:2077
+msgid "Starting Merge"
+msgstr "შერწყმის დაწყება"
+
+#: directorymergewindow.cpp:2078
+msgid "Do It"
+msgstr "გააკეთე"
+
+#: directorymergewindow.cpp:2079
+msgid "Simulate It"
+msgstr "სიმულაცია"
+
+#: directorymergewindow.cpp:2105
+msgid ""
+"The highlighted item has a different type in the different directories. "
+"Select what to do."
+msgstr ""
+"მარკირებული ელემენტი სხვადასხვა დირექტორიებში სხვადასხვაა. აირჩიეთ რა ქნათ."
+
+#: directorymergewindow.cpp:2114
+msgid ""
+"The modification dates of the file are equal but the files are not. Select "
+"what to do."
+msgstr ""
+"ფაილის მოდიფიკაციის თარიღები იდენტურია მარა ფაილები არა. აირჩიეთ რა გააკეთოთ."
+
+#: directorymergewindow.cpp:2123
+#, fuzzy
+#| msgid ""
+#| "The highlighted item has a different type in the different directories. "
+#| "Select what to do."
+msgid ""
+"The highlighted item was changed in one directory and deleted in the other. "
+"Select what to do."
+msgstr ""
+"მარკირებული ელემენტი სხვადასხვა დირექტორიებში სხვადასხვაა. აირჩიეთ რა ქნათ."
+
+#: directorymergewindow.cpp:2174
+msgid ""
+"This operation is currently not possible because directory merge is "
+"currently running."
+msgstr ""
+"ოპერაცია ახლა შეუძლებელია, რადგან დირექტორიათა შერწყმა უკვე გაშვებულია."
+
+#: directorymergewindow.cpp:2234
+msgid ""
+"There was an error in the last step.\n"
+"Do you want to continue with the item that caused the error or do you want "
+"to skip this item?"
+msgstr ""
+"უკანასკნელ ნაბიჯში შეცდომა მოხდა.\n"
+"გსურთ ამ ელემენტით გაგრძელება, რომლის გამოც გდება შეცდომა, თუ გსურთ "
+"გადაახტეთ მას?"
+
+#: directorymergewindow.cpp:2236
+msgid "Continue merge after an error"
+msgstr "შეცდომის შემდეგ შერწმის გაგრძელება"
+
+#: directorymergewindow.cpp:2237
+msgid "Continue With Last Item"
+msgstr "უკანასკნელი ელემენტით გაგრძელება"
+
+#: directorymergewindow.cpp:2238
+msgid "Skip Item"
+msgstr "ელემენტის გაცდენა"
+
+#: directorymergewindow.cpp:2272
+msgid "Skipped."
+msgstr "გაცდენილია."
+
+#: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493
+msgid "In progress..."
+msgstr "მიმდინარეობს..."
+
+#: directorymergewindow.cpp:2327
+msgid "Merge operation complete."
+msgstr "შერწყმის ოპერაცია დასრულდა."
+
+#: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330
+msgid "Merge Complete"
+msgstr "შერწყმა დასრულდა"
+
+#: directorymergewindow.cpp:2340
+msgid ""
+"Simulated merge complete: Check if you agree with the proposed operations."
+msgstr ""
+"შერწყმის სიმულაცია დასრულდა: შეამოწმეთ თუ ეთანხმებით შემოთავაზებულ "
+"ოპერაციებს."
+
+#: directorymergewindow.cpp:2374
+msgid "An error occurred. Press OK to see detailed information.\n"
+msgstr "შეცდომა მოხდა. დააწკაპუნეთ OK დეტალური ცნობების სანახავად.\n"
+
+#: directorymergewindow.cpp:2406
+#, kde-format
+msgid "Error: While deleting %1: Creating backup failed."
+msgstr "შეცდომა: %1-ს წასლის დროს: სარეზერვო ასლის შექმნა ვერ შედგა."
+
+#: directorymergewindow.cpp:2413
+#, kde-format
+msgid "delete directory recursively( %1 )"
+msgstr "დირექტორიის რეკურსიულად წაშლა( %1 )"
+
+#: directorymergewindow.cpp:2415
+#, kde-format
+msgid "delete( %1 )"
+msgstr "წაშლა( %1 )"
+
+#: directorymergewindow.cpp:2430
+msgid "Error: delete dir operation failed while trying to read the directory."
+msgstr "შეცდომა: დირექტორიის წაშლის ოპერაცია ვერ შედგა წაკითხვის მცდელობისას."
+
+#: directorymergewindow.cpp:2449
+#, kde-format
+msgid "Error: rmdir( %1 ) operation failed."
+msgstr "შეცდომა: rmdir( %1 ) ოპერაცია ვერ შედგა."
+
+#: directorymergewindow.cpp:2459
+msgid "Error: delete operation failed."
+msgstr "შეცდომა: წაშლის ოპპერაცია ვერ შედგა."
+
+#: directorymergewindow.cpp:2485
+#, kde-format
+msgid "manual merge( %1, %2, %3 -> %4)"
+msgstr "ხელით შერწყმა( %1, %2, %3 -> %4)"
+
+#: directorymergewindow.cpp:2488
+msgid ""
+"     Note: After a manual merge the user should continue by pressing F7."
+msgstr ""
+"     გაითვალისწინეთ: ხელით შერწყმის შემდეგ მომხმარებელმა უნდა გააგრძელოს F7-"
+"ის დაჭერით."
+
+#: directorymergewindow.cpp:2513
+#, kde-format
+msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed."
+msgstr ""
+"შეცდომა: ასლი( %1 -> %2 ) ვერ შედგა.არსებული დანიშნულების ფაილის წაშლა ვერ "
+"შედგა."
+
+#: directorymergewindow.cpp:2522
+#, kde-format
+msgid "copyLink( %1 -> %2 )"
+msgstr "copyLink( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2533
+msgid "Error: copyLink failed: Remote links are not yet supported."
+msgstr ""
+"შეცდომა copyLink ვერ შედგა: დაშორებული ბმულები ჯერ არ არის მხარდაჭერილი."
+
+#: directorymergewindow.cpp:2539
+msgid "Error: copyLink failed."
+msgstr "შეცდომა: copyLink ვერ შედგა."
+
+#: directorymergewindow.cpp:2564
+#, kde-format
+msgid "copy( %1 -> %2 )"
+msgstr "ასლი( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2590
+#, kde-format
+msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination."
+msgstr ""
+"შეცდომა სახელის გადარქმევისას( %1 -> %2 ): არსებული დანიშნულების წაშლა "
+"შეუძლებელია."
+
+#: directorymergewindow.cpp:2596
+#, kde-format
+msgid "rename( %1 -> %2 )"
+msgstr "rename( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2605
+msgid "Error: Rename failed."
+msgstr "შეცდომა: სახელის გადარქმევა ვერ შედგა."
+
+#: directorymergewindow.cpp:2623
+#, kde-format
+msgid "Error during makeDir of %1. Cannot delete existing file."
+msgstr "შეცდომა %1-ს makeDir-ის დროს. არსებული ფაილის წაშლა შეუძლებელია,"
+
+#: directorymergewindow.cpp:2639
+#, kde-format
+msgid "makeDir( %1 )"
+msgstr "makeDir( %1 )"
+
+#: directorymergewindow.cpp:2649
+msgid "Error while creating directory."
+msgstr "დირექტორიის შექმნისას შეცდომა."
+
+#: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784
+msgid "Dest"
+msgstr "Dest"
+
+#: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709
+msgid "Dir"
+msgstr "Dir"
+
+#: directorymergewindow.cpp:2678
+msgid "Type"
+msgstr "ტიპი"
+
+#: directorymergewindow.cpp:2678
+msgid "Size"
+msgstr "ზომა"
+
+#: directorymergewindow.cpp:2679
+msgid "Attr"
+msgstr "Attr"
+
+#: directorymergewindow.cpp:2679
+msgid "Last Modification"
+msgstr "უკანასკნელად ჩასწორებულია"
+
+#: directorymergewindow.cpp:2679
+msgid "Link-Destination"
+msgstr "ბმულის დანიშნულება"
+
+#: directorymergewindow.cpp:2709 difftextwindow.cpp:401
+#, fuzzy
+#| msgid "File..."
+msgid "File"
+msgstr "ფაილი..."
+
+#: directorymergewindow.cpp:2726
+msgid "not available"
+msgstr "ხელმიუწვდომელია"
+
+#: directorymergewindow.cpp:2746
+msgid "A (Dest): "
+msgstr "A (Dest): "
+
+#: directorymergewindow.cpp:2749
+msgid "A (Base): "
+msgstr "A (ფუძე): "
+
+#: directorymergewindow.cpp:2755
+msgid "B (Dest): "
+msgstr "B (Dest): "
+
+#: directorymergewindow.cpp:2763
+msgid "C (Dest): "
+msgstr "C (Dest): "
+
+#: directorymergewindow.cpp:2769
+msgid "Dest: "
+msgstr "Dest:"
+
+#: directorymergewindow.cpp:2836
+#, fuzzy
+msgid "Save Directory Merge State As..."
+msgstr "დირექტორიათა შერწყმა"
+
+#: directorymergewindow.cpp:2959
+msgid "Start/Continue Directory Merge"
+msgstr "დირექტორიის შერწყმის დაწყება/გაგრძელება"
+
+#: directorymergewindow.cpp:2960
+msgid "Run Operation for Current Item"
+msgstr "მიმდინარე ელემენტიდან ოპერაციის გაშვება"
+
+#: directorymergewindow.cpp:2961
+msgid "Compare Selected File"
+msgstr "მონიშნული ფაილების შედარება"
+
+#: directorymergewindow.cpp:2962
+msgid "Merge Current File"
+msgstr "მიმდინარე ფაილის შერწყმა"
+
+#: directorymergewindow.cpp:2962
+#, fuzzy
+#| msgid "Merge"
+msgid ""
+"Merge\n"
+"File"
+msgstr "შერწყმა"
+
+#: directorymergewindow.cpp:2963
+msgid "Fold All Subdirs"
+msgstr "ყველა ქვედირექტორიის ჩაკეცვა"
+
+#: directorymergewindow.cpp:2964
+msgid "Unfold All Subdirs"
+msgstr "ყველა ქვედირექტორიის არჩაკეცვა"
+
+#: directorymergewindow.cpp:2968
+msgid "Choose A for All Items"
+msgstr "A -თვის ყველა ელემენტების არჩევა"
+
+#: directorymergewindow.cpp:2969
+msgid "Choose B for All Items"
+msgstr "B -თვის ყველა ელემენტების არჩევა"
+
+#: directorymergewindow.cpp:2970
+msgid "Choose C for All Items"
+msgstr "C -თვის ყველა ელემენტების არჩევა"
+
+#: directorymergewindow.cpp:2971
+msgid "Auto-Choose Operation for All Items"
+msgstr "ყველა ელემენტების ოპერაციების ავტო-არჩევა"
+
+#: directorymergewindow.cpp:2972
+msgid "No Operation for All Items"
+msgstr "ყველა ელემენტისთვის არავითარი ოპერაცია"
+
+#: directorymergewindow.cpp:2977
+msgid "Show Identical Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2977
+msgid ""
+"Identical\n"
+"Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2978
+#, fuzzy
+msgid "Show Different Files"
+msgstr "განსხვავებული ფაილების რაოდენობა:"
+
+#: directorymergewindow.cpp:2979
+msgid "Show Files only in A"
+msgstr ""
+
+#: directorymergewindow.cpp:2979
+msgid ""
+"Files\n"
+"only in A"
+msgstr ""
+
+#: directorymergewindow.cpp:2980
+msgid "Show Files only in B"
+msgstr ""
+
+#: directorymergewindow.cpp:2980
+msgid ""
+"Files\n"
+"only in B"
+msgstr ""
+
+#: directorymergewindow.cpp:2981
+msgid "Show Files only in C"
+msgstr ""
+
+#: directorymergewindow.cpp:2981
+msgid ""
+"Files\n"
+"only in C"
+msgstr ""
+
+#: directorymergewindow.cpp:2985
+#, fuzzy
+msgid "Compare Explicitly Selected Files"
+msgstr "მონიშნული ფაილების შედარება"
+
+#: directorymergewindow.cpp:2986
+#, fuzzy
+msgid "Merge Explicitly Selected Files"
+msgstr "მონიშნული ფაილების შედარება"
+
+#: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995
+msgid "Do Nothing"
+msgstr "არაფრის არ გაკეთება"
+
+#: directorymergewindow.cpp:2989
+msgid "A"
+msgstr "A"
+
+#: directorymergewindow.cpp:2990
+msgid "B"
+msgstr "B"
+
+#: directorymergewindow.cpp:2991
+msgid "C"
+msgstr "C"
+
+#: directorymergewindow.cpp:3000
+msgid "Delete A && B"
+msgstr "A და B წაშლა"
+
+#: directorymergewindow.cpp:3003
+msgid "Merge to A && B"
+msgstr "შერწყმა A და B-სკენ"
+
+#: main.cpp:74 main.cpp:76
+msgid "Ignored. (User defined.)"
+msgstr ""
+
+#: main.cpp:162
+#, fuzzy
+#| msgid "KDiff3"
+msgid "kdiff3"
+msgstr "KDiff3"
+
+#: main.cpp:164
+msgid "Tool for Comparison and Merge of Files and Directories"
+msgstr "ფაილების და საქაღალდეების შედარების და შერწყმის ხელსაწყოები"
+
+#: main.cpp:165
+msgid "(c) 2002-2011 Joachim Eibl"
+msgstr ""
+
+#: main.cpp:172 kdiff3_part.cpp:303
+msgid "Joachim Eibl"
+msgstr ""
+
+#: main.cpp:173
+msgid "Eike Sauer"
+msgstr ""
+
+#: main.cpp:173
+msgid "Bugfixes, Debian package maintainer"
+msgstr ""
+
+#: main.cpp:174
+msgid "Sebastien Fricker"
+msgstr ""
+
+#: main.cpp:174
+msgid "Windows installer"
+msgstr ""
+
+#: main.cpp:175
+msgid "Stephan Binner"
+msgstr ""
+
+#: main.cpp:175
+msgid "i18n-help"
+msgstr ""
+
+#: main.cpp:176
+msgid "Stefan Partheymueller"
+msgstr ""
+
+#: main.cpp:176
+#, fuzzy
+#| msgid "From Clipboard"
+msgid "Clipboard-patch"
+msgstr "გაცვლის ბუფერიდან "
+
+#: main.cpp:177
+msgid "David Faure"
+msgstr ""
+
+#: main.cpp:177
+msgid "KIO-Help"
+msgstr ""
+
+#: main.cpp:178
+msgid "Bernd Gehrmann"
+msgstr ""
+
+#: main.cpp:178
+msgid "Class CvsIgnoreList from Cervisia"
+msgstr ""
+
+#: main.cpp:179
+msgid "Andre Woebbeking"
+msgstr ""
+
+#: main.cpp:179
+msgid "Class StringMatcher"
+msgstr ""
+
+#: main.cpp:180
+msgid "Michael Denio"
+msgstr ""
+
+#: main.cpp:180
+#, fuzzy
+#| msgid "Directory Comparison Status"
+msgid "Directory Equality-Coloring patch"
+msgstr "დირექტორიის შედარების სტატუსი"
+
+#: main.cpp:181
+msgid "Manfred Koehler"
+msgstr ""
+
+#: main.cpp:181
+msgid "Fix for slow startup on Windows"
+msgstr ""
+
+#: main.cpp:182
+#, fuzzy
+#| msgid "Merge Error"
+msgid "Sergey Zorin"
+msgstr "შერწმის შეცდომა"
+
+#: main.cpp:182
+msgid "Diff Ext for Windows"
+msgstr ""
+
+#: main.cpp:183
+msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+msgstr ""
+
+#: main.cpp:183
+msgid "GNU-Diffutils"
+msgstr ""
+
+#: main.cpp:184
+msgid "Tino Boellsterling, Timothy Mee"
+msgstr ""
+
+#: main.cpp:184
+msgid "Intensive test, use and feedback"
+msgstr ""
+
+#: main.cpp:185
+msgid "Michael Schmidt"
+msgstr ""
+
+#: main.cpp:185
+msgid "Mac support"
+msgstr ""
+
+#: main.cpp:186
+msgid "Valentin Rusu"
+msgstr ""
+
+#: main.cpp:186 main.cpp:187
+#, fuzzy
+#| msgid "Do Nothing"
+msgid "KDE4 porting"
+msgstr "არაფრის არ გაკეთება"
+
+#: main.cpp:187
+msgid "Albert Astals Cid"
+msgstr ""
+
+#: main.cpp:188
+msgid "Silvan Scherrer"
+msgstr ""
+
+#: main.cpp:188
+msgid "OS2 port"
+msgstr ""
+
+#: main.cpp:190
+msgid "+ Many thanks to those who reported bugs and contributed ideas!"
+msgstr ""
+"+ დიდი მადლობა მათ ვინც გვატყობინებს ბზიკების შესახებ და გვაწოდებს იდეებს!"
+
+#: main.cpp:196
+msgid "Merge the input."
+msgstr "შეტანის შერწყმა."
+
+#: main.cpp:197
+msgid "Explicit base file. For compatibility with certain tools."
+msgstr ""
+
+#: main.cpp:198
+msgid "Output file. Implies -m. E.g.: -o newfile.txt"
+msgstr "გამონატანის ფაილი. Implies -m. E.g.: -o newfile.txt"
+
+#: main.cpp:199
+msgid "Output file, again. (For compatibility with certain tools.)"
+msgstr ""
+"გამონატანის ფაილი, თავიდან. (განსაზღვრულ ხელსაწყოსთან თავსებადობისთვის.)"
+
+#: main.cpp:200
+msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)"
+msgstr "GUI-ს გარეშე თუ ყველა კონფლიქტო გადაჭრადია. (სსაჭიროებს -o ფაილს)"
+
+#: main.cpp:201
+msgid "Don't solve conflicts automatically. (For compatibility...)"
+msgstr "კონფლიქტების ავტომატურად არ გადაჭრა. (თავსებადობისთვის...)"
+
+#: main.cpp:202
+msgid "Visible name replacement for input file 1 (base)."
+msgstr "ხილული სახელის ჩანაცვლება 1 ფაილისთვის (საბაზისო)."
+
+#: main.cpp:203
+msgid "Visible name replacement for input file 2."
+msgstr "ხილული სახელის ჩანაცვლება 2 ფაილისთვის."
+
+#: main.cpp:204
+msgid "Visible name replacement for input file 3."
+msgstr "ხილული სახელის ჩანაცვლება 3 ფაილისთვის."
+
+#: main.cpp:205
+msgid "Alternative visible name replacement. Supply this once for every input."
+msgstr ""
+"ალტერნატიული ხილული სახელის ჩანაცვლება. მიუთითეთ ერთხელ ყოველი შეყვანისთვის."
+
+#: main.cpp:206
+msgid ""
+"Override a config setting. Use once for every setting. E.g.: --cs "
+"\"AutoAdvance=1\""
+msgstr ""
+
+#: main.cpp:207
+msgid "Show list of config settings and current values."
+msgstr ""
+
+#: main.cpp:208
+#, fuzzy
+msgid "Use a different config file."
+msgstr "განსხვავებული ფაილების რაოდენობა:"
+
+#: main.cpp:211
+msgid "file1 to open (base, if not specified via --base)"
+msgstr "ფაილი3-ის გახსნა (საფუძველი, თუ არაა მითითებული --base)"
+
+#: main.cpp:212
+msgid "file2 to open"
+msgstr "ფაილი2-ის გახსნა"
+
+#: main.cpp:213
+msgid "file3 to open"
+msgstr "ფაილი3-ის გახსნა"
+
+#: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976
+#: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002
+#: mergeresultwindow.cpp:1014
+#, kde-format
+msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)"
+msgstr ""
+"დარჩენილი გადაუჭრელი კონფლიქტების რაოდენობა: %1 (საიდანაც %2 არის ღარი)"
+
+#: mergeresultwindow.cpp:303
+msgid ""
+"The output has been modified.\n"
+"If you continue your changes will be lost."
+msgstr ""
+"გამონატანი ჩასწორებულია.\n"
+"თუ გააგრძელებთ ცვლილებები დაგეკარგებათ."
+
+#: mergeresultwindow.cpp:834 pdiff.cpp:532
+msgid "All input files are binary equal."
+msgstr "ყველა შეტანილი ბაილის ბინარი ტოლია."
+
+#: mergeresultwindow.cpp:836
+msgid "All input files contain the same text."
+msgstr "ყველა შეტანილი ფაილის შეიცავს ერთიდაიგივე ტექსტი."
+
+#: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840
+#: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540
+#, fuzzy, kde-format
+msgid "Files %1 and %2 are binary equal.\n"
+msgstr "B და C ბინარულად ტოლია.\n"
+
+#: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841
+#: mergeresultwindow.cpp:843
+#, fuzzy, kde-format
+msgid "Files %1 and %2 have equal text.\n"
+msgstr "A და B აქვთ ერთიდაიგივე ტექსტი. \n"
+
+#: mergeresultwindow.cpp:849
+msgid "Total number of conflicts: "
+msgstr "კონფლიქტების სრული რაოდენობა: "
+
+#: mergeresultwindow.cpp:850
+msgid ""
+"\n"
+"Nr of automatically solved conflicts: "
+msgstr ""
+"\n"
+"ავტომატურად გადაჭრილი კონფლიქტების რაოდენობა: "
+
+#: mergeresultwindow.cpp:851
+msgid ""
+"\n"
+"Nr of unsolved conflicts: "
+msgstr ""
+"\n"
+"გადაუჭრელი კონფლიქტების რაოდენობა: "
+
+#: mergeresultwindow.cpp:853
+msgid "Conflicts"
+msgstr "კონფლიქტები"
+
+#: mergeresultwindow.cpp:1728
+msgid "<No src line>"
+msgstr "<No src line>"
+
+#: mergeresultwindow.cpp:1736
+msgid "<Merge Conflict (Whitespace only)>"
+msgstr "<Merge Conflict (Whitespace only)>"
+
+#: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517
+msgid "<Merge Conflict>"
+msgstr "<Merge Conflict>"
+
+#: mergeresultwindow.cpp:2725
+msgid ""
+"Not all conflicts are solved yet.\n"
+"File not saved.\n"
+msgstr ""
+"ყველა კონფლიქტი ჯერ არაა გადაჭრილი.\n"
+"ფაილი არაა შენახული.\n"
+
+#: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736
+msgid "Conflicts Left"
+msgstr "დარჩენილი კონფლიქტები"
+
+#: mergeresultwindow.cpp:2734
+msgid ""
+"There is a line end style conflict. Please choose the line end style "
+"manually.\n"
+"File not saved.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:2748
+msgid ""
+"\n"
+"\n"
+"Creating backup failed. File not saved."
+msgstr ""
+"\n"
+"\n"
+"სარეზერვო ასლის შექმნა ვერ შედგა. ფაილი არაა შენახული."
+
+#: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792
+msgid "File Save Error"
+msgstr "ფაილის შენახვის შეცდომა"
+
+#: mergeresultwindow.cpp:2792
+msgid "Error while writing."
+msgstr "ჩაწერისას შეცდომა."
+
+#: mergeresultwindow.cpp:3122
+msgid "Output"
+msgstr "გამონატანი"
+
+#: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314
+msgid "[Modified]"
+msgstr "[ჩასწორებულია]"
+
+#: mergeresultwindow.cpp:3141
+#, fuzzy
+msgid "Encoding for saving"
+msgstr "ფაილის კოდირება C-თვის:"
+
+#: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737
+#: optiondialog.cpp:762
+msgid "Line end style:"
+msgstr "ხაზის დასარულის სტილი:"
+
+#: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767
+msgid "Unix"
+msgstr ""
+
+#: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737
+msgid "DOS"
+msgstr ""
+
+#: mergeresultwindow.cpp:3229
+#, fuzzy
+#| msgid "Conflicts"
+msgid "Conflict"
+msgstr "კონფლიქტები"
+
+#: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263
+#: mergeresultwindow.cpp:3265
+msgid "Codec from"
+msgstr ""
+
+#: kdiff3_part.cpp:157 kdiff3_part.cpp:234
+msgid "Couldn't find files for comparison."
+msgstr "შსადარებელი ფაილები ვერ მოიძებნა."
+
+#: kdiff3_part.cpp:302
+msgid "KDiff3Part"
+msgstr "KDiff3Part"
+
+#: fileaccess.cpp:612
+msgid ""
+"While trying to make a backup, deleting an older backup failed. \n"
+"Filename: "
+msgstr ""
+"სარეზერვო ასლის გაკეთების მცდელობისას, ძველი სარეზერვო ასლის წაშლა ვერ "
+"შედგა. \n"
+"ფაილის სახელი: "
+
+#: fileaccess.cpp:619
+msgid ""
+"While trying to make a backup, renaming failed. \n"
+"Filenames: "
+msgstr ""
+"სარეზერვო ასლის გაკეთების მცდელობისას, სახელის გადარქმევა ვერ შედგა. \n"
+"ფაილის სახელები: "
+
+#: fileaccess.cpp:643
+#, kde-format
+msgid "Getting file status: %1"
+msgstr "ფაილის მდგომარეობის მიღება: %1"
+
+#: fileaccess.cpp:686
+#, kde-format
+msgid "Reading file: %1"
+msgstr "ფაილის წაკითხვა: %1"
+
+#: fileaccess.cpp:723
+#, kde-format
+msgid "Writing file: %1"
+msgstr "ფაილის ჩაწერა: %1"
+
+#: fileaccess.cpp:751
+msgid "Out of memory"
+msgstr "მეხსიერება არაა საკმარისი"
+
+#: fileaccess.cpp:786
+#, kde-format
+msgid "Making directory: %1"
+msgstr "დირექტორიის შექმნა: %1"
+
+#: fileaccess.cpp:806
+#, kde-format
+msgid "Removing directory: %1"
+msgstr "დირექტორიის წაშლა: %1"
+
+#: fileaccess.cpp:821
+#, kde-format
+msgid "Removing file: %1"
+msgstr "ფაილის წაშლა: %1"
+
+#: fileaccess.cpp:837
+#, kde-format
+msgid "Creating symbolic link: %1 -> %2"
+msgstr "სიმბოლური ბმულის შექმნა: %1 -> %2"
+
+#: fileaccess.cpp:864
+#, kde-format
+msgid "Renaming file: %1 -> %2"
+msgstr "ფაილის სახელის გადარქმევა: %1 -> %2"
+
+#: fileaccess.cpp:897
+#, kde-format
+msgid "Copying file: %1 -> %2"
+msgstr "ფაილის ასლი: %1 -> %2"
+
+#: fileaccess.cpp:911
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for reading failed. Filename: "
+"%1"
+msgstr ""
+"შეცდომა ასლის გაკეთების ოპერაციისას: ფაილის წასაკითხად გახსნა ვერ შედგა. "
+"ფაილის სახელი: %1"
+
+#: fileaccess.cpp:917
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for writing failed. Filename: "
+"%1"
+msgstr ""
+"შეცდომა ასლის გაკეთების ოპერაციისას: ფაილის ჩასაწერად გახსნა ვერ შედგა. "
+"ფაილის სახელი: %1"
+
+#: fileaccess.cpp:932
+#, kde-format
+msgid "Error during file copy operation: Reading failed. Filename: %1"
+msgstr ""
+"შეცდომა ასლის გაკეთების ოპერაციისას: წაკითხვა ვერ შედგა. ფაილის სახელი: %1"
+
+#: fileaccess.cpp:941
+#, kde-format
+msgid "Error during file copy operation: Writing failed. Filename: %1"
+msgstr ""
+"შეცდომა ასლის გაკეთების ოპერაციისას: ჩაწერა ვერ შედგა. ფაილის სახელი: %1"
+
+#: fileaccess.cpp:1231
+msgid "Reading directory: "
+msgstr "დირექტორიის წაკითხვა:"
+
+#: fileaccess.cpp:1355
+#, kde-format
+msgid "Listing directory: %1"
+msgstr "დირექტორიის სია: %1"
+
+#: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396
+msgid "&Cancel"
+msgstr ""
+
+#: difftextwindow.cpp:403
+#, fuzzy
+#| msgid "Link: "
+msgid "Line"
+msgstr "ბმული: "
+
+#: difftextwindow.cpp:405
+#, fuzzy
+#| msgid "not available"
+msgid "Line not available"
+msgstr "ხელმიუწვდომელია"
+
+#: difftextwindow.cpp:1703 difftextwindow.cpp:1736
+#, fuzzy
+#| msgid "File Encoding for A:"
+msgid "Encoding:"
+msgstr "ფაილის კოდირება A-თვის:"
+
+#: difftextwindow.cpp:1759 kdiff3.cpp:831
+#, fuzzy
+msgid "Top line"
+msgstr "ზედა ხაზი %1"
+
+#: difftextwindow.cpp:1769
+msgid "End"
+msgstr "დასასრული"
+
+#: kdiff3.cpp:169
+#, fuzzy
+msgid "Current Configuration:"
+msgstr "მიმდინარე ელემენტის სინქრონიზაციის ოპერაცია"
+
+#: kdiff3.cpp:174
+#, fuzzy
+msgid "Config Option Error:"
+msgstr "ფაილის გახსნის შეცდომა"
+
+#: kdiff3.cpp:219
+msgid "Option --auto used, but no output file specified."
+msgstr ""
+"პარამეტრი --auto გამოყენებულია, მაგრამ გამონატანი ფაილი არაა მითითებული."
+
+#: kdiff3.cpp:369
+msgid "Option --auto ignored for directory comparison."
+msgstr "პარამეტრი --auto დირექტორიების შედარებისთვის იგნორირებულია."
+
+#: kdiff3.cpp:405
+msgid "Saving failed."
+msgstr "შენახვა ვერ შედგა."
+
+#: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214
+msgid "Opening of these files failed:"
+msgstr "ამ ფაილების გახსნა ვერ შედგა:"
+
+#: kdiff3.cpp:449
+msgid "File Open Error"
+msgstr "ფაილის გახსნის შეცდომა"
+
+#: kdiff3.cpp:477
+msgid "Opens documents for comparison..."
+msgstr "ხსნის დოკუმენტებს შესადარებლად..."
+
+#: kdiff3.cpp:479
+#, fuzzy
+#| msgid "Ready."
+msgid "Reload"
+msgstr "მზად."
+
+#: kdiff3.cpp:482
+msgid "Saves the merge result. All conflicts must be solved!"
+msgstr "ინახავს შერწყმის შედეგებს. ყველა კონფლიქტი უნდა გადაიჭრას!"
+
+#: kdiff3.cpp:484
+msgid "Saves the current document as..."
+msgstr "მიმდინარე დოკუმენტს ინახავს როგორც..."
+
+#: kdiff3.cpp:487
+msgid "Print the differences"
+msgstr ""
+
+#: kdiff3.cpp:490
+msgid "Quits the application"
+msgstr "პროგრამის დახურვა"
+
+#: kdiff3.cpp:492
+msgid "Cuts the selected section and puts it to the clipboard"
+msgstr "ჭრის მონიშნულ სექციას და გაცვლით ბუფერში ათავსებს"
+
+#: kdiff3.cpp:494
+msgid "Copies the selected section to the clipboard"
+msgstr "მონიშნულ სექციის ასლს ქმნის გაცვლით ბუფერში"
+
+#: kdiff3.cpp:496
+#, fuzzy
+#| msgid "Pastes the clipboard contents to actual position"
+msgid "Pastes the clipboard contents to current position"
+msgstr "გაცვლის ბუფერის შემადგენლობას სვამს მიმდინარე პოზიციაზე"
+
+#: kdiff3.cpp:498
+msgid "Select everything in current window"
+msgstr ""
+
+#: kdiff3.cpp:500
+msgid "Search for a string"
+msgstr "სტრიქონის ძიება"
+
+#: kdiff3.cpp:502
+msgid "Search again for the string"
+msgstr "სტრიქონის თავიდან ძიება"
+
+#: kdiff3.cpp:507
+msgid "Enables/disables the statusbar"
+msgstr "სტატუსის ველს რთავს"
+
+#: kdiff3.cpp:511
+msgid "Configure KDiff3..."
+msgstr "KDiff3 კონფიგურაცია..."
+
+#: kdiff3.cpp:532
+msgid "Go to Current Delta"
+msgstr "მიმდინარე დელტაზე გადასვლა"
+
+#: kdiff3.cpp:532
+#, fuzzy
+#| msgid "Go to Current Delta"
+msgid ""
+"Current\n"
+"Delta"
+msgstr "მიმდინარე დელტაზე გადასვლა"
+
+#: kdiff3.cpp:534
+msgid "Go to First Delta"
+msgstr "პირველ დელტაზე გადასვლა"
+
+#: kdiff3.cpp:534
+#, fuzzy
+#| msgid "Go to First Delta"
+msgid ""
+"First\n"
+"Delta"
+msgstr "პირველ დელტაზე გადასვლა"
+
+#: kdiff3.cpp:536
+msgid "Go to Last Delta"
+msgstr "უკანასკნელ დელტაზე გადასვლა"
+
+#: kdiff3.cpp:536
+#, fuzzy
+#| msgid "Go to Last Delta"
+msgid ""
+"Last\n"
+"Delta"
+msgstr "უკანასკნელ დელტაზე გადასვლა"
+
+#: kdiff3.cpp:538
+msgid "(Skips white space differences when \"Show White Space\" is disabled.)"
+msgstr ""
+
+#: kdiff3.cpp:539
+msgid ""
+"(Does not skip white space differences even when \"Show White Space\" is "
+"disabled.)"
+msgstr ""
+
+#: kdiff3.cpp:540
+msgid "Go to Previous Delta"
+msgstr "წინა დელტაზე გადასვლა"
+
+#: kdiff3.cpp:540
+#, fuzzy
+#| msgid "Go to Previous Delta"
+msgid ""
+"Prev\n"
+"Delta"
+msgstr "წინა დელტაზე გადასვლა"
+
+#: kdiff3.cpp:542
+msgid "Go to Next Delta"
+msgstr "შემდეგ დელტაზე გადასვლა"
+
+#: kdiff3.cpp:542
+#, fuzzy
+#| msgid "Go to Next Delta"
+msgid ""
+"Next\n"
+"Delta"
+msgstr "შემდეგ დელტაზე გადასვლა"
+
+#: kdiff3.cpp:544
+msgid "Go to Previous Conflict"
+msgstr "წინა კონფლიქტზე გადასვლა"
+
+#: kdiff3.cpp:544
+#, fuzzy
+#| msgid "Conflicts"
+msgid ""
+"Prev\n"
+"Conflict"
+msgstr "კონფლიქტები"
+
+#: kdiff3.cpp:546
+msgid "Go to Next Conflict"
+msgstr "შემდეგ კონფლიქტზე გადასვლა"
+
+#: kdiff3.cpp:546
+#, fuzzy
+#| msgid "Go to Next Conflict"
+msgid ""
+"Next\n"
+"Conflict"
+msgstr "შემდეგ კონფლიქტზე გადასვლა"
+
+#: kdiff3.cpp:548
+msgid "Go to Previous Unsolved Conflict"
+msgstr "წინა გადაუჭრელ კონფლიქტზე გადასვლა"
+
+#: kdiff3.cpp:548
+#, fuzzy
+#| msgid "Unsolved"
+msgid ""
+"Prev\n"
+"Unsolved"
+msgstr "გადაუჭრელი"
+
+#: kdiff3.cpp:550
+msgid "Go to Next Unsolved Conflict"
+msgstr "შემდეგ გადაუჭრელ კონფლიქტზე გადასვლა"
+
+#: kdiff3.cpp:550
+#, fuzzy
+#| msgid "Unsolved"
+msgid ""
+"Next\n"
+"Unsolved"
+msgstr "გადაუჭრელი"
+
+#: kdiff3.cpp:552
+msgid "Select Line(s) From A"
+msgstr "აირჩიეთ ხაზ(ებ)ი A-დან"
+
+#: kdiff3.cpp:552
+msgid ""
+"Choose\n"
+"A"
+msgstr ""
+
+#: kdiff3.cpp:553
+msgid "Select Line(s) From B"
+msgstr "აირჩიეთ ხაზ(ებ)ი B-დან"
+
+#: kdiff3.cpp:553
+msgid ""
+"Choose\n"
+"B"
+msgstr ""
+
+#: kdiff3.cpp:554
+msgid "Select Line(s) From C"
+msgstr "აირჩიეთ ხაზ(ებ)ი C-დან"
+
+#: kdiff3.cpp:554
+msgid ""
+"Choose\n"
+"C"
+msgstr ""
+
+#: kdiff3.cpp:555
+msgid "Automatically Go to Next Unsolved Conflict After Source Selection"
+msgstr "წყაროს არჩევისას ავტომატურად გადასვლა შემდეგ გადაუჭრელ კონფლიკტზე"
+
+#: kdiff3.cpp:555
+#, fuzzy
+msgid ""
+"Auto\n"
+"Next"
+msgstr "მონიშვნის ავტო ასლი"
+
+#: kdiff3.cpp:557
+msgid "Show Space && Tabulator Characters for Differences"
+msgstr "ღარების ჩვენება და ტაბულაციის სიმბოლოების განსხვავებისთვის"
+
+#: kdiff3.cpp:557
+msgid ""
+"White\n"
+"Characters"
+msgstr ""
+
+#: kdiff3.cpp:558
+msgid "Show White Space"
+msgstr ""
+
+#: kdiff3.cpp:558
+msgid ""
+"White\n"
+"Deltas"
+msgstr ""
+
+#: kdiff3.cpp:560
+msgid "Show Line Numbers"
+msgstr "ხაზების ნომრების ჩვენება"
+
+#: kdiff3.cpp:560
+#, fuzzy
+#| msgid "Show Line Numbers"
+msgid ""
+"Line\n"
+"Numbers"
+msgstr "ხაზების ნომრების ჩვენება"
+
+#: kdiff3.cpp:561
+msgid "Choose A Everywhere"
+msgstr "ყველგან A-ს არჩევა"
+
+#: kdiff3.cpp:562
+msgid "Choose B Everywhere"
+msgstr "ყველგან B-ს არჩევა"
+
+#: kdiff3.cpp:563
+msgid "Choose C Everywhere"
+msgstr "ყველგან C-ს არჩევა"
+
+#: kdiff3.cpp:564
+msgid "Choose A for All Unsolved Conflicts"
+msgstr "A-ს არჩევა ყველა გადაუჭრელი კონფლიქტისთვის"
+
+#: kdiff3.cpp:565
+msgid "Choose B for All Unsolved Conflicts"
+msgstr "B-ს არჩევა ყველა გადაუჭრელი კონფლიქტისთვის"
+
+#: kdiff3.cpp:566
+msgid "Choose C for All Unsolved Conflicts"
+msgstr "C-ს არჩევა ყველა გადაუჭრელი კონფლიქტისთვის"
+
+#: kdiff3.cpp:567
+msgid "Choose A for All Unsolved Whitespace Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:568
+msgid "Choose B for All Unsolved Whitespace Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:569
+msgid "Choose C for All Unsolved Whitespace Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:570
+msgid "Automatically Solve Simple Conflicts"
+msgstr "მარტივი კონფლიქტების ავრომატურად გადაჭრა"
+
+#: kdiff3.cpp:571
+msgid "Set Deltas to Conflicts"
+msgstr "კონფლიქტებისთვის დელტას მინიჭება"
+
+#: kdiff3.cpp:572
+msgid "Run Regular Expression Auto Merge"
+msgstr ""
+
+#: kdiff3.cpp:573
+#, fuzzy
+msgid "Automatically Solve History Conflicts"
+msgstr "მარტივი კონფლიქტების ავრომატურად გადაჭრა"
+
+#: kdiff3.cpp:574
+msgid "Split Diff At Selection"
+msgstr ""
+
+#: kdiff3.cpp:575
+#, fuzzy
+msgid "Join Selected Diffs"
+msgstr "მონიშნული ფაილების შედარება"
+
+#: kdiff3.cpp:577
+msgid "Show Window A"
+msgstr "ფანჯარა A-ს ჩვენება "
+
+#: kdiff3.cpp:578
+msgid "Show Window B"
+msgstr "ფანჯარა B-ს ჩვენება"
+
+#: kdiff3.cpp:579
+msgid "Show Window C"
+msgstr "ფანჯარა C-ს ჩვენება"
+
+#: kdiff3.cpp:580 kdiff3.cpp:591
+msgid "Focus Next Window"
+msgstr "ფოკუსი შემდეგ ფანჯარაზე"
+
+#: kdiff3.cpp:582
+msgid "Normal Overview"
+msgstr "ჩვეულებრივი გადახედვა"
+
+#: kdiff3.cpp:583
+msgid "A vs. B Overview"
+msgstr "A წინააღმდეგ B გადახედვა"
+
+#: kdiff3.cpp:584
+msgid "A vs. C Overview"
+msgstr "A წინააღმდეგ C გადახედვა"
+
+#: kdiff3.cpp:585
+msgid "B vs. C Overview"
+msgstr "B წინააღმდეგ C გადახედვა"
+
+#: kdiff3.cpp:586
+msgid "Word Wrap Diff Windows"
+msgstr "Word Wrap Diff ფანჯრები"
+
+#: kdiff3.cpp:587
+msgid "Add Manual Diff Alignment"
+msgstr ""
+
+#: kdiff3.cpp:588
+msgid "Clear All Manual Diff Alignments"
+msgstr ""
+
+#: kdiff3.cpp:593
+msgid "Focus Prev Window"
+msgstr "ფოკუსი წინა ფანჯარაზე"
+
+#: kdiff3.cpp:594
+msgid "Toggle Split Orientation"
+msgstr "გახლეჩვის ორიენტაციის გადართვა"
+
+#: kdiff3.cpp:596
+msgid "Dir && Text Split Screen View"
+msgstr "დირექტორიისა და ტექსტი განლაგების ეკრანის ხედი"
+
+#: kdiff3.cpp:598
+msgid "Toggle Between Dir && Text View"
+msgstr "დირექტორიათა და ტექსტის ხედებს შორის გადართვა"
+
+#: kdiff3.cpp:654 pdiff.cpp:1812
+msgid "The merge result hasn't been saved."
+msgstr "შერწყმის შედეგები არ იყო შენახული."
+
+#: kdiff3.cpp:656
+msgid "Save && Quit"
+msgstr "შენახვა და გასვლა"
+
+#: kdiff3.cpp:657
+msgid "Quit Without Saving"
+msgstr "გასვლა შენახვის გარეშე"
+
+#: kdiff3.cpp:665 pdiff.cpp:1823
+msgid "Saving the merge result failed."
+msgstr "შერწყმის შედეგების შენახვა ვერ შედგა."
+
+#: kdiff3.cpp:676 pdiff.cpp:1078
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort?"
+msgstr "თქვენ ახლა დირექტორიათა შერწყმას აკეთებთ. ნამდვილად გსურთ შეწყვეტა?"
+
+#: kdiff3.cpp:701
+msgid "Saving file..."
+msgstr "ფაილის შენახვა..."
+
+#: kdiff3.cpp:718
+msgid "Saving file with a new filename..."
+msgstr "ფაილის ახალი სახელით შენახვა..."
+
+#: kdiff3.cpp:781
+#, fuzzy
+msgid "Printing not implemented."
+msgstr "შერწყმის ოპერაცია დასრულდა."
+
+#: kdiff3.cpp:815
+#, fuzzy
+msgid "Printing..."
+msgstr "გამოსვლა..."
+
+#: kdiff3.cpp:956
+#, fuzzy
+#| msgid "Select Another Font"
+msgid "Selection"
+msgstr "სხვა შრიფტის ამორჩევა"
+
+#: kdiff3.cpp:982
+#, fuzzy
+msgid "Printing completed."
+msgstr "შერწყმის ოპერაცია დასრულდა."
+
+#: kdiff3.cpp:986
+#, fuzzy
+msgid "Printing aborted."
+msgstr "შერწყმის ოპერაცია დასრულდა."
+
+#: kdiff3.cpp:993
+msgid "Exiting..."
+msgstr "გამოსვლა..."
+
+#: kdiff3.cpp:1006
+msgid "Toggling toolbar..."
+msgstr "ხელსაწყოთა პანელის გადართვა..."
+
+#: kdiff3.cpp:1027
+msgid "Toggle the statusbar..."
+msgstr "სტატუსის ზოლის გადართვა..."
+
+#: smalldialogs.cpp:58
+msgid "A (Base):"
+msgstr "A (ფუძე):"
+
+#: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99
+#: smalldialogs.cpp:142
+msgid "File..."
+msgstr "ფაილი..."
+
+#: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101
+#: smalldialogs.cpp:144
+msgid "Dir..."
+msgstr "Dir..."
+
+#: smalldialogs.cpp:93
+msgid "C (Optional):"
+msgstr "C (არასავალდებულო_:"
+
+#: smalldialogs.cpp:116
+msgid "Swap/Copy Names ..."
+msgstr ""
+
+#: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123
+#, kde-format
+msgid "Swap %1<->%2"
+msgstr ""
+
+#: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126
+#, kde-format
+msgid "Copy %1->Output"
+msgstr ""
+
+#: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129
+#, kde-format
+msgid "Swap %1<->Output"
+msgstr ""
+
+#: smalldialogs.cpp:136
+msgid "Output (optional):"
+msgstr "გამონატანი (არასავალდებულო):"
+
+#: smalldialogs.cpp:168
+msgid "Configure..."
+msgstr "კონფიგურაცია..."
+
+#: smalldialogs.cpp:174
+msgid "&OK"
+msgstr ""
+
+#: smalldialogs.cpp:362
+msgid "Search text:"
+msgstr "ტექსტის ძიება:"
+
+#: smalldialogs.cpp:369
+msgid "Case sensitive"
+msgstr "რეგისტრისადმი მგძნობიარე"
+
+#: smalldialogs.cpp:372
+msgid "Search A"
+msgstr "ძიება A"
+
+#: smalldialogs.cpp:377
+msgid "Search B"
+msgstr "ძიება B"
+
+#: smalldialogs.cpp:382
+msgid "Search C"
+msgstr "ძიება C"
+
+#: smalldialogs.cpp:387
+msgid "Search output"
+msgstr "გამონატანის ძიება"
+
+#: smalldialogs.cpp:392
+msgid "&Search"
+msgstr "ძიე&ბა"
+
+#: smalldialogs.cpp:409
+msgid "Regular Expression Tester"
+msgstr ""
+
+#: smalldialogs.cpp:414 optiondialog.cpp:936
+msgid "Auto merge regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:422
+msgid "Example auto merge line:"
+msgstr ""
+
+#: smalldialogs.cpp:424
+msgid "To test auto merge, copy a line as used in your files."
+msgstr ""
+
+#: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494
+msgid "Match result:"
+msgstr ""
+
+#: smalldialogs.cpp:441 optiondialog.cpp:962
+msgid "History start regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:449
+msgid "Example history start line (with leading comment):"
+msgstr ""
+
+#: smalldialogs.cpp:451
+msgid ""
+"Copy a history start line as used in your files,\n"
+"including the leading comment."
+msgstr ""
+
+#: smalldialogs.cpp:469 optiondialog.cpp:972
+msgid "History entry start regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:477
+msgid "History sort key order:"
+msgstr ""
+
+#: smalldialogs.cpp:485
+msgid "Example history entry start line (without leading comment):"
+msgstr ""
+
+#: smalldialogs.cpp:487
+msgid ""
+"Copy a history entry start line as used in your files,\n"
+"but omit the leading comment."
+msgstr ""
+
+#: smalldialogs.cpp:501
+msgid "Sort key result:"
+msgstr ""
+
+#: smalldialogs.cpp:508
+msgid "OK"
+msgstr ""
+
+#: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583
+msgid "Match success."
+msgstr ""
+
+#: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589
+#, fuzzy
+msgid "Match failed."
+msgstr "შენახვა ვერ შედგა."
+
+#: smalldialogs.cpp:574
+msgid "Opening and closing parentheses do not match in regular expression."
+msgstr ""
+
+#: optiondialog.cpp:367
+msgid "Unicode, 8 bit"
+msgstr "უნიკოდი, 8 bit"
+
+#: optiondialog.cpp:368
+msgid "Unicode"
+msgstr "უნიკოდი"
+
+#: optiondialog.cpp:369
+msgid "Latin1"
+msgstr "Latin1"
+
+#: optiondialog.cpp:388
+msgid "Change this if non-ASCII characters are not displayed correctly."
+msgstr "შეცვალე თუ არა ASCII სიმბოლოები არ აისახება მართებულად."
+
+#: optiondialog.cpp:465
+#, fuzzy
+#| msgid "Configure..."
+msgid "Configure"
+msgstr "კონფიგურაცია..."
+
+#: optiondialog.cpp:531
+msgid "Font"
+msgstr ""
+
+#: optiondialog.cpp:532
+msgid "Editor & Diff Output Font"
+msgstr "რედაქტორი და Diff გამონატანის შრიფტი"
+
+#: optiondialog.cpp:556
+msgid "Italic font for deltas"
+msgstr "დელტასთვის კურსივი"
+
+#: optiondialog.cpp:559
+msgid ""
+"Selects the italic version of the font for differences.\n"
+"If the font doesn't support italic characters, then this does nothing."
+msgstr ""
+"ირჩევს კურსივ შრიფტებს განსხვავებისთვის.\n"
+"თუ შრიფტს არ აქვს კურსივის მხარდაჭერა, მაშინ ეს არაფერს არ აკეთებს."
+
+#: optiondialog.cpp:568
+msgid "Color"
+msgstr "ფერი"
+
+#: optiondialog.cpp:569
+#, fuzzy
+msgid "Colors Settings"
+msgstr "რეგიონალური პარამეტრები"
+
+#: optiondialog.cpp:588
+msgid "Editor and Diff Views:"
+msgstr ""
+
+#: optiondialog.cpp:596
+msgid "Foreground color:"
+msgstr "ზედაპირის ფერი:"
+
+#: optiondialog.cpp:603
+msgid "Background color:"
+msgstr "ფონის ფერი:"
+
+#: optiondialog.cpp:612
+msgid "Diff background color:"
+msgstr "Diff ფონის ფერი:"
+
+#: optiondialog.cpp:620
+msgid "Color A:"
+msgstr "ფერი A:"
+
+#: optiondialog.cpp:628
+msgid "Color B:"
+msgstr "ფერი B:"
+
+#: optiondialog.cpp:636
+msgid "Color C:"
+msgstr "ფერი C:"
+
+#: optiondialog.cpp:643
+msgid "Conflict color:"
+msgstr "კონფლიქტის ფერი:"
+
+#: optiondialog.cpp:651
+msgid "Current range background color:"
+msgstr "მიმდინარე შუალედის ფონის ფერი:"
+
+#: optiondialog.cpp:659
+msgid "Current range diff background color:"
+msgstr "მიმდინარე შუალედის diff ფონის ფერი:"
+
+#: optiondialog.cpp:666
+msgid "Color for manually aligned difference ranges:"
+msgstr ""
+
+#: optiondialog.cpp:672
+#, fuzzy
+msgid "Directory Comparison View:"
+msgstr "დირექტორიის შედარების სტატუსი"
+
+#: optiondialog.cpp:678
+msgid "Newest file color:"
+msgstr ""
+
+#: optiondialog.cpp:682
+msgid ""
+"Changing this color will only be effective when starting the next directory "
+"comparison."
+msgstr ""
+
+#: optiondialog.cpp:687
+msgid "Oldest file color:"
+msgstr ""
+
+#: optiondialog.cpp:695
+msgid "Middle age file color:"
+msgstr ""
+
+#: optiondialog.cpp:703
+msgid "Color for missing files:"
+msgstr ""
+
+#: optiondialog.cpp:717
+msgid "Editor"
+msgstr "რედაქტორი"
+
+#: optiondialog.cpp:718
+msgid "Editor Behavior"
+msgstr "რედაქტორის ქცევა"
+
+#: optiondialog.cpp:732
+msgid "Tab inserts spaces"
+msgstr "Tab სვავს ღარებს"
+
+#: optiondialog.cpp:735
+#, fuzzy
+#| msgid ""
+#| "On: Pressing tab generates the appropriate number of spaces.\n"
+#| "Off: A Tab-character will be inserted."
+msgid ""
+"On: Pressing tab generates the appropriate number of spaces.\n"
+"Off: A tab character will be inserted."
+msgstr ""
+"ჩართულია: tab-ის დაჭერა აგენერირებს ღარების განსაზღვრულ რაოდენობას.\n"
+"გამორთულია: ტაბულაციის სიმბოლო იქნება ჩასმული."
+
+#: optiondialog.cpp:741
+msgid "Tab size:"
+msgstr "ჩანართის ზომა:"
+
+#: optiondialog.cpp:747
+msgid "Auto indentation"
+msgstr "ავტო შეწევა"
+
+#: optiondialog.cpp:750
+msgid "On: The indentation of the previous line is used for a new line.\n"
+msgstr "ჩართულია: წინა ხაზის შეწევა გამოიყენება ახალი ხაზისთვის.\n"
+
+#: optiondialog.cpp:754
+msgid "Auto copy selection"
+msgstr "მონიშვნის ავტო ასლი"
+
+#: optiondialog.cpp:757
+msgid ""
+"On: Any selection is immediately written to the clipboard.\n"
+"Off: You must explicitely copy e.g. via Ctrl-C."
+msgstr ""
+"ჩართულია: ნებისმიერი მონიშვნა ჯდება გაცვლის ბუფერში.\n"
+"გამორთულია: თქვენ ასლი უნდა გააკეთოთ მაგ. Ctrl-C."
+
+#: optiondialog.cpp:768
+#, fuzzy
+#| msgid "&Window"
+msgid "Dos/Windows"
+msgstr "&ფანჯარა"
+
+#: optiondialog.cpp:769
+#, fuzzy
+msgid "Autodetect"
+msgstr "მონიშვნის ავტო ასლი"
+
+#: optiondialog.cpp:772
+msgid ""
+"Sets the line endings for when an edited file is saved.\n"
+"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A"
+msgstr ""
+"აყენებს ხაზის ბოლოს როდესაც რედაქტურებული ფაილი ინახება.\n"
+"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A"
+
+#: optiondialog.cpp:784
+#, fuzzy
+msgid "Diff"
+msgstr "KDiff3"
+
+#: optiondialog.cpp:785
+#, fuzzy
+msgid "Diff Settings"
+msgstr "Diff & შერწყმის პარამეტრები"
+
+#: optiondialog.cpp:809
+#, fuzzy
+msgid "Treat as white space."
+msgstr "C/C++ კომენტარების ღარებად განხილვა."
+
+#: optiondialog.cpp:811
+msgid "Ignore numbers"
+msgstr "როცხვების იგნორირება"
+
+#: optiondialog.cpp:814
+msgid ""
+"Ignore number characters during line matching phase. (Similar to Ignore "
+"white space.)\n"
+"Might help to compare files with numeric data."
+msgstr ""
+"რიცხვების იგნორირება ფრაზების შედარებისას. (იგივე ნაერად როგორ ღარების "
+"იგნორირება.)\n"
+"შეიძლება დაგეხმაროთ ციფრული მონაცემებით ფაილების შედარებისას."
+
+#: optiondialog.cpp:819
+msgid "Ignore C/C++ comments"
+msgstr "C/C++ კომენტარების იგნორირება"
+
+#: optiondialog.cpp:821
+msgid "Treat C/C++ comments like white space."
+msgstr "C/C++ კომენტარების ღარებად განხილვა."
+
+#: optiondialog.cpp:825
+msgid "Ignore case"
+msgstr "რეგისტრის იგნორირება"
+
+#: optiondialog.cpp:828
+msgid "Treat case differences like white space changes. ('a'<=>'A')"
+msgstr "რეგისტრის სხვაობის ღარებად განხილვა. ('a'<=>'A')"
+
+#: optiondialog.cpp:832
+msgid "Preprocessor command:"
+msgstr "Preprocessor ბრძანება:"
+
+#: optiondialog.cpp:836
+msgid "User defined pre-processing. (See the docs for details.)"
+msgstr ""
+"მომხმარებლის მიერ განსაზღვრული processing. (დეტალებისთვის იხ. დოკუმენტაცია.)"
+
+#: optiondialog.cpp:839
+msgid "Line-matching preprocessor command:"
+msgstr "ხაზის დამთხვევის preprocessor ბრძანება:"
+
+#: optiondialog.cpp:843
+msgid ""
+"This pre-processor is only used during line matching.\n"
+"(See the docs for details.)"
+msgstr ""
+
+#: optiondialog.cpp:846
+msgid "Try hard (slower)"
+msgstr "მაგრად ცდა (ნელია)"
+
+#: optiondialog.cpp:849
+msgid ""
+"Enables the --minimal option for the external diff.\n"
+"The analysis of big files will be much slower."
+msgstr ""
+"გარე diff-სთვის რთავს --minimal პარამეტრს.\n"
+"დიდი ფაილების ანალიზი ბევრად შენელდება."
+
+#: optiondialog.cpp:854
+msgid "Align B and C for 3 input files"
+msgstr ""
+
+#: optiondialog.cpp:857
+msgid ""
+"Try to align B and C when comparing or merging three input files.\n"
+"Not recommended for merging because merge might get more complicated.\n"
+"(Default is off.)"
+msgstr ""
+
+#: optiondialog.cpp:870
+#, fuzzy
+msgid "Merge Settings"
+msgstr "Diff & შერწყმის პარამეტრები"
+
+#: optiondialog.cpp:885
+msgid "Auto advance delay (ms):"
+msgstr ""
+
+#: optiondialog.cpp:890
+msgid ""
+"When in Auto-Advance mode the result of the current selection is shown \n"
+"for the specified time, before jumping to the next conflict. Range: 0-2000 ms"
+msgstr ""
+
+#: optiondialog.cpp:895
+#, fuzzy
+#| msgid "Show Window A"
+msgid "Show info dialogs"
+msgstr "ფანჯარა A-ს ჩვენება "
+
+#: optiondialog.cpp:897
+msgid "Show a dialog with information about the number of conflicts."
+msgstr ""
+
+#: optiondialog.cpp:900
+msgid "White space 2-file merge default:"
+msgstr ""
+
+#: optiondialog.cpp:904 optiondialog.cpp:917
+msgid "Manual Choice"
+msgstr "ხელით არჩევა"
+
+#: optiondialog.cpp:908 optiondialog.cpp:922
+msgid ""
+"Allow the merge algorithm to automatically select an input for white-space-"
+"only changes."
+msgstr ""
+
+#: optiondialog.cpp:913
+msgid "White space 3-file merge default:"
+msgstr ""
+
+#: optiondialog.cpp:927
+msgid "Automatic Merge Regular Expression"
+msgstr ""
+
+#: optiondialog.cpp:940
+msgid ""
+"Regular expression for lines where KDiff3 should automatically choose one "
+"source.\n"
+"When a line with a conflict matches the regular expression then\n"
+"- if available - C, otherwise B will be chosen."
+msgstr ""
+
+#: optiondialog.cpp:946
+msgid "Run regular expression auto merge on merge start"
+msgstr ""
+
+#: optiondialog.cpp:948
+msgid ""
+"Run the merge for auto merge regular expressions\n"
+"immediately when a merge starts.\n"
+msgstr ""
+
+#: optiondialog.cpp:953
+msgid "Version Control History Merging"
+msgstr ""
+
+#: optiondialog.cpp:966
+msgid ""
+"Regular expression for the start of the version control history entry.\n"
+"Usually this line contains the \"$Log$\" keyword.\n"
+"Default value: \".*\\$Log.*\\$.*\""
+msgstr ""
+
+#: optiondialog.cpp:984
+msgid ""
+"A version control history entry consists of several lines.\n"
+"Specify the regular expression to detect the first line (without the leading "
+"comment).\n"
+"Use parentheses to group the keys you want to use for sorting.\n"
+"If left empty, then KDiff3 assumes that empty lines separate history "
+"entries.\n"
+"See the documentation for details."
+msgstr ""
+
+#: optiondialog.cpp:992
+msgid "History merge sorting"
+msgstr ""
+
+#: optiondialog.cpp:994
+msgid "Sort version control history by a key."
+msgstr ""
+
+#: optiondialog.cpp:1004
+msgid "History entry start sort key order:"
+msgstr ""
+
+#: optiondialog.cpp:1008
+msgid ""
+"Each pair of parentheses used in the regular expression for the history "
+"start entry\n"
+"groups a key that can be used for sorting.\n"
+"Specify the list of keys (that are numbered in order of occurrence\n"
+"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n"
+"If left empty, then no sorting will be done.\n"
+"See the documentation for details."
+msgstr ""
+
+#: optiondialog.cpp:1019
+msgid "Merge version control history on merge start"
+msgstr ""
+
+#: optiondialog.cpp:1021
+msgid "Run version control history automerge on merge start."
+msgstr ""
+
+#: optiondialog.cpp:1025
+#, fuzzy
+msgid "Max number of history entries:"
+msgstr "ქვედირექტორიების რაოდენობა:"
+
+#: optiondialog.cpp:1028
+msgid "Cut off after specified number. Use -1 for infinite number of entries."
+msgstr ""
+
+#: optiondialog.cpp:1032
+msgid "Test your regular expressions"
+msgstr ""
+
+#: optiondialog.cpp:1037
+msgid "Irrelevant merge command:"
+msgstr ""
+
+#: optiondialog.cpp:1041
+msgid ""
+"If specified this script is run after automerge\n"
+"when no other relevant changes were detected.\n"
+"Called with the parameters: filename1 filename2 filename3"
+msgstr ""
+
+#: optiondialog.cpp:1047
+msgid "Auto save and quit on merge without conflicts"
+msgstr ""
+
+#: optiondialog.cpp:1050
+msgid ""
+"If KDiff3 was started for a file-merge from the command line and all\n"
+"conflicts are solvable without user interaction then automatically save and "
+"quit.\n"
+"(Similar to command line option \"--auto\".)"
+msgstr ""
+
+#: optiondialog.cpp:1061 optiondialog.cpp:1062
+#, fuzzy
+#| msgid "&Directory"
+msgid "Directory"
+msgstr "&დირექტორია"
+
+#: optiondialog.cpp:1075
+msgid "Recursive directories"
+msgstr "დირექტორიათა რეკურსია"
+
+#: optiondialog.cpp:1077
+msgid "Whether to analyze subdirectories or not."
+msgstr "ქვესაქაღალდეები გაანალიზდეს თუ არა."
+
+#: optiondialog.cpp:1079
+msgid "File pattern(s):"
+msgstr "ფაილის შაბლონ(ებ)ი:"
+
+#: optiondialog.cpp:1084
+msgid ""
+"Pattern(s) of files to be analyzed. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"გასაანალიზებელი ფაილების შაბლონ(ებ)ი.\n"
+"Wildcards: '*' და '?'\n"
+"რამდენიმე შაბლონის მითითება შეიძლება ';' გამყოფით"
+
+#: optiondialog.cpp:1090
+msgid "File-anti-pattern(s):"
+msgstr "ფაილის-ანტი-შაბლონ(ებ)ი:"
+
+#: optiondialog.cpp:1095
+msgid ""
+"Pattern(s) of files to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"არა გასაანალიზებელი ფაილების შაბლონ(ებ)ი.\n"
+"Wildcards: '*' და '?'\n"
+"რამდენიმე შაბლონის მითითება შეიძლება ';' გამყოფით"
+
+#: optiondialog.cpp:1101
+msgid "Dir-anti-pattern(s):"
+msgstr "Dir-ანტი-შაბლონ(ებ)ი:"
+
+#: optiondialog.cpp:1106
+msgid ""
+"Pattern(s) of directories to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"არა გასაანალიზებელი დირექტორიების შაბლონ(ებ)ი.\n"
+"Wildcards: '*' და '?'\n"
+"რამდენიმე შაბლონის მითითება შეიძლება ';' გამყოფით"
+
+#: optiondialog.cpp:1112
+msgid "Use .cvsignore"
+msgstr ".cvsignore-ის გამოყენება"
+
+#: optiondialog.cpp:1115
+msgid ""
+"Extends the antipattern to anything that would be ignored by CVS.\n"
+"Via local \".cvsignore\" files this can be directory specific."
+msgstr ""
+
+#: optiondialog.cpp:1120
+msgid "Find hidden files and directories"
+msgstr "დამალული ფაილების და დირექტორიების ძიება"
+
+#: optiondialog.cpp:1123
+msgid "Finds files and directories with the hidden attribute."
+msgstr "ფაილების და დირექტორიების ძიება დამალული ატრიბუტით."
+
+#: optiondialog.cpp:1125
+msgid "Finds files and directories starting with '.'."
+msgstr "'.'-ით დაწყებული ფაილების და დირექტორიების ძიება."
+
+#: optiondialog.cpp:1129
+msgid "Follow file links"
+msgstr "ფაილთა ბმულზე გადასვლა"
+
+#: optiondialog.cpp:1132
+msgid ""
+"On: Compare the file the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+"ჩართულია: იმ ფაილთა შედარება რაზეც მიუთითებს ბმული.\n"
+"გამორთულია: ბმულების შედარება."
+
+#: optiondialog.cpp:1137
+msgid "Follow directory links"
+msgstr "დირექტორიათა ბმულზე გადასვლა"
+
+#: optiondialog.cpp:1140
+msgid ""
+"On: Compare the directory the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+"ჩართულია: იმ დირექტორიათა შედარება რაზეც მიუთითებს ბმული.\n"
+"გამორთულია: ბმულების შედარება."
+
+#: optiondialog.cpp:1156
+msgid "Case sensitive filename comparison"
+msgstr ""
+
+#: optiondialog.cpp:1159
+msgid ""
+"The directory comparison will compare files or directories when their names "
+"match.\n"
+"Set this option if the case of the names must match. (Default for Windows is "
+"off, otherwise on.)"
+msgstr ""
+
+#: optiondialog.cpp:1163
+msgid "File Comparison Mode"
+msgstr "ფაილთა შედარების რეჟიმი"
+
+#: optiondialog.cpp:1169
+msgid "Binary comparison"
+msgstr "ორობითი შედარება"
+
+#: optiondialog.cpp:1170
+msgid "Binary comparison of each file. (Default)"
+msgstr "ყოველი ფაილის ორობითი შედარება. (ნაგულისხმები)"
+
+#: optiondialog.cpp:1173
+msgid "Full analysis"
+msgstr "სრული ანალიზი"
+
+#: optiondialog.cpp:1174
+msgid ""
+"Do a full analysis and show statistics information in extra columns.\n"
+"(Slower than a binary comparison, much slower for binary files.)"
+msgstr ""
+"სრული ანალიზის გაკეთება და სტატისტიკური ინფორმაციის ექსტრა სვეტში ასახვა.\n"
+"(უფრო ნელია ვიდრე ბინარული შედარება, ბევრად ნელი ბინარული ფაილებისთვის.)"
+
+#: optiondialog.cpp:1178
+#, fuzzy
+msgid "Trust the size and modification date (unsafe)"
+msgstr "მოდიფიცირების თარიღი ნდობა (არაა სანდო)"
+
+#: optiondialog.cpp:1179
+#, fuzzy
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"Files with equal contents but different modification dates will appear as "
+"different.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"თუ მოდიფიცირების თარიღი და ფაილის ზომა ტოლია, მათ იდენტურად მიჩნევა.\n"
+"კარგია დიდი დირექტორიებისთვის და ნელი ქსელებისთვის."
+
+#: optiondialog.cpp:1184
+#, fuzzy
+msgid ""
+"Trust the size and date, but use binary comparison if date does not match "
+"(unsafe)"
+msgstr "მოდიფიცირების თარიღი ნდობა (არაა სანდო)"
+
+#: optiondialog.cpp:1185
+#, fuzzy
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"If the dates are not equal but the sizes are, use binary comparison.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"თუ მოდიფიცირების თარიღი და ფაილის ზომა ტოლია, მათ იდენტურად მიჩნევა.\n"
+"კარგია დიდი დირექტორიებისთვის და ნელი ქსელებისთვის."
+
+#: optiondialog.cpp:1190
+msgid "Trust the size (unsafe)"
+msgstr "ზომის ნდობა (არაა სანდო)"
+
+#: optiondialog.cpp:1191
+msgid ""
+"Assume that files are equal if their file lengths are equal.\n"
+"Useful for big directories or slow networks when the date is modified during "
+"download."
+msgstr ""
+"თუ ფაილის ზომა ტოლია, მათ იდენტურად მიჩნევა.\n"
+"კარგია დიდი დირექტორიებისთვის და ნელი ქსელებისთვის, როდესაც მოდიფიკაციის დრო "
+"ჩამოქაჩვისას იცვლება."
+
+#: optiondialog.cpp:1199
+msgid "Synchronize directories"
+msgstr "დირექტორიების სინქრონიზაცია"
+
+#: optiondialog.cpp:1202
+msgid ""
+"Offers to store files in both directories so that\n"
+"both directories are the same afterwards.\n"
+"Works only when comparing two directories without specifying a destination."
+msgstr ""
+
+#: optiondialog.cpp:1208
+msgid "White space differences considered equal"
+msgstr "ინტერვალების სხვაობის ტოლად ჩათვლა"
+
+#: optiondialog.cpp:1211
+msgid ""
+"If files differ only by white space consider them equal.\n"
+"This is only active when full analysis is chosen."
+msgstr ""
+"თუ ფაილები მხოლოდ ინტერვალებით განსხვავდება, მათი ტოლად ჩათთვლა.\n"
+"ეს აქტიურია მხოლოდ თუ სრული ანალიზია არჩეული."
+
+#: optiondialog.cpp:1217
+msgid "Copy newer instead of merging (unsafe)"
+msgstr "შერწმის ნაცვლად ახლის ასლი (სახიფათო)"
+
+#: optiondialog.cpp:1220
+msgid ""
+"Don't look inside, just take the newer file.\n"
+"(Use this only if you know what you are doing!)\n"
+"Only effective when comparing two directories."
+msgstr ""
+"შიგნით ნუ ჩაიხედავტ, მხოლოდ აიღეთ ახალი ფაილი.\n"
+"(გამოიყენეთ ეს მარტო მაშინ თუ იცით რას აკეთებთ!)\n"
+"მაშინაა ეფექტური, როდესაც ორ დირექტორიას ადარებთ."
+
+#: optiondialog.cpp:1225
+msgid "Backup files (.orig)"
+msgstr "სარეზერვო ასლის ფაილი (.orig)"
+
+#: optiondialog.cpp:1228
+#, fuzzy
+#| msgid ""
+#| "When a file would be saved over an old file, then the old file\n"
+#| "will be renamed with a '.orig'-extension instead of being deleted."
+msgid ""
+"If a file would be saved over an old file, then the old file\n"
+"will be renamed with a '.orig' extension instead of being deleted."
+msgstr ""
+"როდესაც ფაილი ძველ ფაილზე უნდა იქნას შენახული, მაშინ ძველ ფაილს\n"
+"სახელი გადაერქმევა '.orig' გაფართოვებით იმის მაგივრად რომ წაიშალოს."
+
+#: optiondialog.cpp:1301 optiondialog.cpp:1302
+msgid "Regional Settings"
+msgstr "რეგიონალური პარამეტრები"
+
+#: optiondialog.cpp:1402
+msgid "Language (restart required)"
+msgstr "ენა (გადატვირთვაა საჭირო)"
+
+#: optiondialog.cpp:1445
+#, fuzzy
+#| msgid ""
+#| "Choose the language of the GUI-strings or \"Auto\".\n"
+#| "For a change of language to take place, quit and restart KDiff3."
+msgid ""
+"Choose the language of the GUI strings or \"Auto\".\n"
+"For a change of language to take place, quit and restart KDiff3."
+msgstr ""
+"GUI-სტრიქონისთვის ენის შეცვლა ან \"ავტო\".\n"
+"ენის ცვლილება რომ გააქტიურდეს დახურეთ და გადატვირთეთ KDiff3."
+
+#: optiondialog.cpp:1463
+msgid "Use the same encoding for everything:"
+msgstr "ყველასთვის იგივე კოდირების გამოყენება:"
+
+#: optiondialog.cpp:1466
+msgid ""
+"Enable this allows to change all encodings by changing the first only.\n"
+"Disable this if different individual settings are needed."
+msgstr ""
+"ამის ჩართვა სასუალებას გაძლევთ ყველა კოდირება შეცვალოთ მხოლოდ პირველის "
+"შეცვლით.\n"
+"გამორთეთ ეს თუ განსხვავებული ინდივიდუალურუი პარამეტრებია საჭირო."
+
+#: optiondialog.cpp:1471
+msgid "Note: Local Encoding is "
+msgstr "შენიშვნა: ლოკალური კოდირება არის"
+
+#: optiondialog.cpp:1475
+msgid "File Encoding for A:"
+msgstr "ფაილის კოდირება A-თვის:"
+
+#: optiondialog.cpp:1481
+msgid ""
+"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n"
+"If the file is not Unicode then the selected encoding will be used as "
+"fallback.\n"
+"(Unicode detection depends on the first bytes of a file.)"
+msgstr ""
+
+#: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503
+msgid "Auto Detect Unicode"
+msgstr ""
+
+#: optiondialog.cpp:1490
+msgid "File Encoding for B:"
+msgstr "ფაილის კოდირება B-თვის:"
+
+#: optiondialog.cpp:1499
+msgid "File Encoding for C:"
+msgstr "ფაილის კოდირება C-თვის:"
+
+#: optiondialog.cpp:1508
+msgid "File Encoding for Merge Output and Saving:"
+msgstr "ფაილის კოდირება გამონატანის შერწყმისა და შენახვისთვის:"
+
+#: optiondialog.cpp:1512
+#, fuzzy
+msgid "Auto Select"
+msgstr "მონიშვნის ავტო ასლი"
+
+#: optiondialog.cpp:1515
+msgid ""
+"If enabled then the encoding from the input files is used.\n"
+"In ambiguous cases a dialog will ask the user to choose the encoding for "
+"saving."
+msgstr ""
+
+#: optiondialog.cpp:1519
+msgid "File Encoding for Preprocessor Files:"
+msgstr "ფაილის კოდირება -პრეპროცესორის ფაილებისთვის:"
+
+#: optiondialog.cpp:1530
+msgid "Right To Left Language"
+msgstr "მარჯვნიდან მარცხნივ ენა"
+
+#: optiondialog.cpp:1533
+msgid ""
+"Some languages are read from right to left.\n"
+"This setting will change the viewer and editor accordingly."
+msgstr ""
+"ზოგი ენა მარჯვნიდან მარცხნივ იკითხება.\n"
+"ეს პარამეტრი შეცვლის ხედს და რედაქტორს."
+
+#: optiondialog.cpp:1548
+#, fuzzy
+msgid "Integration"
+msgstr "ოპერაცია"
+
+#: optiondialog.cpp:1549
+#, fuzzy
+msgid "Integration Settings"
+msgstr "რეგიონალური პარამეტრები"
+
+#: optiondialog.cpp:1563
+msgid "Command line options to ignore:"
+msgstr ""
+
+#: optiondialog.cpp:1568
+msgid ""
+"List of command line options that should be ignored when KDiff3 is used by "
+"other tools.\n"
+"Several values can be specified if separated via ';'\n"
+"This will suppress the \"Unknown option\" error."
+msgstr ""
+
+#: optiondialog.cpp:1575
+msgid "Quit also via Escape key"
+msgstr ""
+
+#: optiondialog.cpp:1578
+msgid ""
+"Fast method to exit.\n"
+"For those who are used to using the Escape key."
+msgstr ""
+
+#: optiondialog.cpp:1583
+msgid "Integrate with ClearCase"
+msgstr ""
+
+#: optiondialog.cpp:1586
+msgid ""
+"Integrate with Rational ClearCase from IBM.\n"
+"Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n"
+"(Only enabled when ClearCase \"bin\" directory is in the path.)"
+msgstr ""
+
+#: optiondialog.cpp:1592
+msgid "Remove ClearCase Integration"
+msgstr ""
+
+#: optiondialog.cpp:1595
+msgid ""
+"Restore the old \"map\" file from before doing the ClearCase integration."
+msgstr ""
+
+#: optiondialog.cpp:1680
+msgid "Incompatible Font"
+msgstr "შეუთავსებელი შრიფტი"
+
+#: optiondialog.cpp:1681
+msgid "Continue at Own Risk"
+msgstr "საკუთარი თავის იმედათ გაგრძელება"
+
+#: optiondialog.cpp:1682
+msgid "Select Another Font"
+msgstr "სხვა შრიფტის ამორჩევა"
+
+#: optiondialog.cpp:1717
+msgid "This resets all options. Not only those of the current topic."
+msgstr ""
+"ეს ყველა პარამეტრს საწყის მდგომარეობაზე აბრუნებს. არა მხოლოდ მიმდინარე "
+"თემისას."
+
+#: pdiff.cpp:260
+msgid "PreprocessorCmd: "
+msgstr "PreprocessorCmd: "
+
+#: pdiff.cpp:265
+msgid "The following option(s) you selected might change data:\n"
+msgstr ""
+"შემდეგმა პარამეტრ(ებ)მა, რომლებიც აირჩიეთ, შეიძლება შეცვალოს მონაცემები:\n"
+
+#: pdiff.cpp:266
+msgid ""
+"\n"
+"Most likely this is not wanted during a merge.\n"
+"Do you want to disable these settings or continue with these settings active?"
+msgstr ""
+"\n"
+"როგორც ჩანს ეს შერწყმისას არაა საჭირო.\n"
+"გსურთ ამ პარამეტრების გამორთვა თუ აქტიური პარამეტრებით გაგრძელება?"
+
+#: pdiff.cpp:268
+msgid "Option Unsafe for Merging"
+msgstr "პარამეტრი შერწყმისთვის არაა უსაფრთხო"
+
+#: pdiff.cpp:269
+msgid "Use These Options During Merge"
+msgstr "შერწყმისას ამ პარამეტრების გამოყენება"
+
+#: pdiff.cpp:270
+msgid "Disable Unsafe Options"
+msgstr "სახიფათო პარამეტრების გამორთვა"
+
+#: pdiff.cpp:300
+msgid "Loading A"
+msgstr "იტვირთება A"
+
+#: pdiff.cpp:304
+msgid "Loading B"
+msgstr "იტვირთება B"
+
+#: pdiff.cpp:321 pdiff.cpp:347
+msgid "Diff: A <-> B"
+msgstr "Diff: A <-> B"
+
+#: pdiff.cpp:327 pdiff.cpp:372
+msgid "Linediff: A <-> B"
+msgstr "Linediff: A <-> B"
+
+#: pdiff.cpp:338
+msgid "Loading C"
+msgstr "იტვირთება C"
+
+#: pdiff.cpp:350
+msgid "Diff: B <-> C"
+msgstr "Diff: B <-> C"
+
+#: pdiff.cpp:353
+msgid "Diff: A <-> C"
+msgstr "Diff: A <-> C"
+
+#: pdiff.cpp:375
+msgid "Linediff: B <-> C"
+msgstr "Linediff: B <-> C"
+
+#: pdiff.cpp:378
+msgid "Linediff: A <-> C"
+msgstr "Linediff: A <-> C"
+
+#: pdiff.cpp:534
+#, fuzzy
+msgid "All input files contain the same text, but are not binary equal."
+msgstr "ყველა შეტანილი ფაილის შეიცავს ერთიდაიგივე ტექსტი."
+
+#: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541
+#, fuzzy, kde-format
+msgid "Files %1 and %2 have equal text, but are not binary equal. \n"
+msgstr "A და B ბინარულად ტოლია.\n"
+
+#: pdiff.cpp:551
+msgid ""
+"Some inputfiles don't seem to be pure textfiles.\n"
+"Note that the KDiff3-merge was not meant for binary data.\n"
+"Continue at your own risk."
+msgstr ""
+"ზოგი შეტანის ფაილი არ არის მხოლოდ ტექსტური ფაილი.\n"
+"გაითვალისწინეთ რომ KDiff3-შერწყმა არ გულისხმობს ბინარულ მონაცემებს.\n"
+"გააგრძელეთ საკუთარი თავის იმედათ."
+
+#: pdiff.cpp:566
+#, kde-format
+msgid ""
+"Some input characters could not be converted to valid unicode.\n"
+"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n"
+"Don't save the result if unsure. Continue at your own risk.\n"
+"Affected input files are in %1."
+msgstr ""
+
+#: pdiff.cpp:1080
+msgid "Abort"
+msgstr "შეწყვეტა"
+
+#: pdiff.cpp:1087 pdiff.cpp:1175
+msgid "Opening files..."
+msgstr "ფაილთა გახსნა..."
+
+#: pdiff.cpp:1152 pdiff.cpp:1223
+msgid "File open error"
+msgstr "ფაილის გახსნის შეცდომა"
+
+#: pdiff.cpp:1255
+msgid "Cutting selection..."
+msgstr "მონიშნული ფრაგმენტის მოჭრა..."
+
+#: pdiff.cpp:1276
+msgid "Copying selection to clipboard..."
+msgstr "მონიშნულის გაცვლით ბიფერში განთავსება..."
+
+#: pdiff.cpp:1292
+msgid "Inserting clipboard contents..."
+msgstr "გაცვლის ბუფერის შიგთავსის ჩასმა..."
+
+#: pdiff.cpp:1814
+msgid "Save && Continue"
+msgstr "შენახვა და გაგრძელება"
+
+#: pdiff.cpp:1815
+msgid "Continue Without Saving"
+msgstr "შენახვის გარეშე გაგრძელება"
+
+#: pdiff.cpp:2018
+msgid "Search complete."
+msgstr "ძიება დასრულდა."
+
+#: pdiff.cpp:2018
+msgid "Search Complete"
+msgstr "ძიება დასრულდა"
+
+#: pdiff.cpp:2252
+msgid "Nothing is selected in either diff input window."
+msgstr ""
+
+#: pdiff.cpp:2252
+#, fuzzy
+msgid "Error while adding manual diff range"
+msgstr "დირექტორიის შექმნისას შეცდომა."
+
+#: kdiff3_shell.cpp:76
+#, fuzzy
+#| msgid ""
+#| "Could not find our part!\n"
+#| "This usually happens due to an installation problem. Please read the "
+#| "README-file in the source package for details."
+msgid ""
+"Could not initialize the KDiff3 part.\n"
+"This usually happens due to an installation problem. Please read the README-"
+"file in the source package for details."
+msgstr ""
+"ჩვენი ნაწილი ვერ მოიძებნა!\n"
+"ეს როგორც წესი დაყენების პრობლემების გამო ხდება. გთხოვთ წაიკითხოთ README-"
+"ფაილი წყაროს პაკეტში დამასტებითი ცნობებისთვის."
+
+#: rc.cpp:1
+msgctxt "NAME OF TRANSLATORS"
+msgid "Your names"
+msgstr ""
+
+#: rc.cpp:2
+msgctxt "EMAIL OF TRANSLATORS"
+msgid "Your emails"
+msgstr ""
+
+#. i18n: file: kdiff3_part.rc:4
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:5
+msgid "&KDiff3"
+msgstr "&KDiff3"
+
+#. i18n: file: kdiff3_part.rc:13
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:8
+msgid "Configure KDiff3"
+msgstr "KDiff3 კონფიგურაცია"
+
+#. i18n: file: kdiff3_part.rc:16
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:11
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#. i18n: file: kdiff3_shell.rc:106
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:38
+msgid "Main Toolbar"
+msgstr ""
+
+#~ msgid "Directory Merge"
+#~ msgstr "დირექტორიათა შერწყმა"
+
+#~ msgid "C&ontinue"
+#~ msgstr "&გაგრძელება"
+
+#~ msgid ""
+#~ "_: NAME OF TRANSLATORS\n"
+#~ "Your names"
+#~ msgstr "რუსუდან ცისკრელი"
+
+#~ msgid ""
+#~ "_: EMAIL OF TRANSLATORS\n"
+#~ "Your emails"
+#~ msgstr "tsiskreli@gmail.com"
+
+#~ msgid "Enables/disables the toolbar"
+#~ msgstr "ხელსაწყოთა პანელს რთავს"
+
+#~ msgid "Files A and B are binary equal.\n"
+#~ msgstr "A და B ბინარულად ტოლია.\n"
+
+#~ msgid "Files A and C are binary equal.\n"
+#~ msgstr "A და C ბინარულად ტოლია.\n"
+
+#~ msgid "Files A and C have equal text. \n"
+#~ msgstr "A და C აქვთ ერთიდაიგივე ტექსტი. \n"
+
+#~ msgid "Files B and C are binary equal.\n"
+#~ msgstr "B და C ბინარულად ტოლია.\n"
+
+#~ msgid "Files B and C have equal text. \n"
+#~ msgstr "B და C აქვთ ერთიდაიგივე ტექსტი. \n"
+
+#, fuzzy
+#~ msgid "Diff and Merge"
+#~ msgstr "Diff & შერწყმა"
+
+#, fuzzy
+#~ msgid "Save Directory Merge State ..."
+#~ msgstr "დირექტორიათა შერწყმა"
+
+#, fuzzy
+#~ msgid "Load Directory Merge State ..."
+#~ msgstr "დირექტორიათა შერწყმა"
+
+#, fuzzy
+#~ msgid "Synchronize Directories"
+#~ msgstr "დირექტორიების სინქრონიზაცია"
+
+#, fuzzy
+#~ msgid "Copy Newer Files Instead of Merging"
+#~ msgstr "შერწმის ნაცვლად ახლის ასლი (სახიფათო)"
+
+#~ msgid "List only deltas"
+#~ msgstr "მხოლოდ დელტების ჩამოთვლა"
+
+#~ msgid "Files and directories without change will not appear in the list."
+#~ msgstr "ფაილები და დირექტორიები ცვლილებების გარეშე სიაში არ აისახება."
+
+#, fuzzy
+#~ msgid "no selection"
+#~ msgstr "მონიშვნის ავტო ასლი"
+
+#, fuzzy
+#~ msgid "Manually match lines"
+#~ msgstr "ხელით არჩევა"
+
+#~ msgid "Has no effect. For compatibility with certain tools."
+#~ msgstr "არა აქვს ეფექტი. განსაზღვრულ ხელსაწყოებთან თავსებადობისთვის."
+
+#~ msgid "For compatibility with certain tools."
+#~ msgstr "განსაზღვრულ ხელსაწყოებთან თავსებადობისთვის."
+
+#~ msgid "Colors in Editor & Diff Output"
+#~ msgstr "ფერები რედაქტორში და Diff გამონატანში"
diff --git a/po/kdiff3.pot b/po/kdiff3.pot
new file mode 100644 (file)
index 0000000..3b792cd
--- /dev/null
@@ -0,0 +1,2811 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR This_file_is_part_of_KDE
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-12-08 10:27+0100\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc@kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: kdiff3.cpp:167
+msgid "Current Configuration:"
+msgstr ""
+
+#: kdiff3.cpp:172
+msgid "Config Option Error:"
+msgstr ""
+
+#: kdiff3.cpp:217
+msgid "Option --auto used, but no output file specified."
+msgstr ""
+
+#: kdiff3.cpp:366
+msgid "Option --auto ignored for directory comparison."
+msgstr ""
+
+#: kdiff3.cpp:402
+msgid "Saving failed."
+msgstr ""
+
+#: kdiff3.cpp:437 pdiff.cpp:1080 pdiff.cpp:1151
+msgid "Opening of these files failed:"
+msgstr ""
+
+#: kdiff3.cpp:446
+msgid "File Open Error"
+msgstr ""
+
+#: kdiff3.cpp:474
+msgid "Opens documents for comparison..."
+msgstr ""
+
+#: kdiff3.cpp:476
+msgid "Reload"
+msgstr ""
+
+#: kdiff3.cpp:479
+msgid "Saves the merge result. All conflicts must be solved!"
+msgstr ""
+
+#: kdiff3.cpp:481
+msgid "Saves the current document as..."
+msgstr ""
+
+#: kdiff3.cpp:483
+msgid "Print the differences"
+msgstr ""
+
+#: kdiff3.cpp:485
+msgid "Quits the application"
+msgstr ""
+
+#: kdiff3.cpp:487
+msgid "Cuts the selected section and puts it to the clipboard"
+msgstr ""
+
+#: kdiff3.cpp:489
+msgid "Copies the selected section to the clipboard"
+msgstr ""
+
+#: kdiff3.cpp:491
+msgid "Pastes the clipboard contents to actual position"
+msgstr ""
+
+#: kdiff3.cpp:493
+msgid "Select everything in current window"
+msgstr ""
+
+#: kdiff3.cpp:495
+msgid "Search for a string"
+msgstr ""
+
+#: kdiff3.cpp:497
+msgid "Search again for the string"
+msgstr ""
+
+#: kdiff3.cpp:502
+msgid "Enables/disables the statusbar"
+msgstr ""
+
+#: kdiff3.cpp:506
+msgid "Configure KDiff3..."
+msgstr ""
+
+#: kdiff3.cpp:527
+msgid "Go to Current Delta"
+msgstr ""
+
+#: kdiff3.cpp:527
+msgid ""
+"Current\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:529
+msgid "Go to First Delta"
+msgstr ""
+
+#: kdiff3.cpp:529
+msgid ""
+"First\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:531
+msgid "Go to Last Delta"
+msgstr ""
+
+#: kdiff3.cpp:531
+msgid ""
+"Last\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:533
+msgid "(Skips white space differences when \"Show White Space\" is disabled.)"
+msgstr ""
+
+#: kdiff3.cpp:534
+msgid ""
+"(Does not skip white space differences even when \"Show White Space\" is "
+"disabled.)"
+msgstr ""
+
+#: kdiff3.cpp:535
+msgid "Go to Previous Delta"
+msgstr ""
+
+#: kdiff3.cpp:535
+msgid ""
+"Prev\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:537
+msgid "Go to Next Delta"
+msgstr ""
+
+#: kdiff3.cpp:537
+msgid ""
+"Next\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:539
+msgid "Go to Previous Conflict"
+msgstr ""
+
+#: kdiff3.cpp:539
+msgid ""
+"Prev\n"
+"Conflict"
+msgstr ""
+
+#: kdiff3.cpp:541
+msgid "Go to Next Conflict"
+msgstr ""
+
+#: kdiff3.cpp:541
+msgid ""
+"Next\n"
+"Conflict"
+msgstr ""
+
+#: kdiff3.cpp:543
+msgid "Go to Previous Unsolved Conflict"
+msgstr ""
+
+#: kdiff3.cpp:543
+msgid ""
+"Prev\n"
+"Unsolved"
+msgstr ""
+
+#: kdiff3.cpp:545
+msgid "Go to Next Unsolved Conflict"
+msgstr ""
+
+#: kdiff3.cpp:545
+msgid ""
+"Next\n"
+"Unsolved"
+msgstr ""
+
+#: kdiff3.cpp:547
+msgid "Select Line(s) From A"
+msgstr ""
+
+#: kdiff3.cpp:547
+msgid ""
+"Choose\n"
+"A"
+msgstr ""
+
+#: kdiff3.cpp:548
+msgid "Select Line(s) From B"
+msgstr ""
+
+#: kdiff3.cpp:548
+msgid ""
+"Choose\n"
+"B"
+msgstr ""
+
+#: kdiff3.cpp:549
+msgid "Select Line(s) From C"
+msgstr ""
+
+#: kdiff3.cpp:549
+msgid ""
+"Choose\n"
+"C"
+msgstr ""
+
+#: kdiff3.cpp:550
+msgid "Automatically Go to Next Unsolved Conflict After Source Selection"
+msgstr ""
+
+#: kdiff3.cpp:550
+msgid ""
+"Auto\n"
+"Next"
+msgstr ""
+
+#: kdiff3.cpp:552
+msgid "Show Space && Tabulator Characters for Differences"
+msgstr ""
+
+#: kdiff3.cpp:552
+msgid ""
+"White\n"
+"Characters"
+msgstr ""
+
+#: kdiff3.cpp:553
+msgid "Show White Space"
+msgstr ""
+
+#: kdiff3.cpp:553
+msgid ""
+"White\n"
+"Deltas"
+msgstr ""
+
+#: kdiff3.cpp:555
+msgid "Show Line Numbers"
+msgstr ""
+
+#: kdiff3.cpp:555
+msgid ""
+"Line\n"
+"Numbers"
+msgstr ""
+
+#: kdiff3.cpp:556
+msgid "Choose A Everywhere"
+msgstr ""
+
+#: kdiff3.cpp:557
+msgid "Choose B Everywhere"
+msgstr ""
+
+#: kdiff3.cpp:558
+msgid "Choose C Everywhere"
+msgstr ""
+
+#: kdiff3.cpp:559
+msgid "Choose A for All Unsolved Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:560
+msgid "Choose B for All Unsolved Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:561
+msgid "Choose C for All Unsolved Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:562
+msgid "Choose A for All Unsolved Whitespace Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:563
+msgid "Choose B for All Unsolved Whitespace Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:564
+msgid "Choose C for All Unsolved Whitespace Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:565
+msgid "Automatically Solve Simple Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:566
+msgid "Set Deltas to Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:567
+msgid "Run Regular Expression Auto Merge"
+msgstr ""
+
+#: kdiff3.cpp:568
+msgid "Automatically Solve History Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:569
+msgid "Split Diff At Selection"
+msgstr ""
+
+#: kdiff3.cpp:570
+msgid "Join Selected Diffs"
+msgstr ""
+
+#: kdiff3.cpp:572
+msgid "Show Window A"
+msgstr ""
+
+#: kdiff3.cpp:573
+msgid "Show Window B"
+msgstr ""
+
+#: kdiff3.cpp:574
+msgid "Show Window C"
+msgstr ""
+
+#: kdiff3.cpp:575 kdiff3.cpp:586
+msgid "Focus Next Window"
+msgstr ""
+
+#: kdiff3.cpp:577
+msgid "Normal Overview"
+msgstr ""
+
+#: kdiff3.cpp:578
+msgid "A vs. B Overview"
+msgstr ""
+
+#: kdiff3.cpp:579
+msgid "A vs. C Overview"
+msgstr ""
+
+#: kdiff3.cpp:580
+msgid "B vs. C Overview"
+msgstr ""
+
+#: kdiff3.cpp:581
+msgid "Word Wrap Diff Windows"
+msgstr ""
+
+#: kdiff3.cpp:582
+msgid "Add Manual Diff Alignment"
+msgstr ""
+
+#: kdiff3.cpp:583
+msgid "Clear All Manual Diff Alignments"
+msgstr ""
+
+#: kdiff3.cpp:588
+msgid "Focus Prev Window"
+msgstr ""
+
+#: kdiff3.cpp:589
+msgid "Toggle Split Orientation"
+msgstr ""
+
+#: kdiff3.cpp:591
+msgid "Dir && Text Split Screen View"
+msgstr ""
+
+#: kdiff3.cpp:593
+msgid "Toggle Between Dir && Text View"
+msgstr ""
+
+#: kdiff3.cpp:615 kdiff3.cpp:707 kdiff3.cpp:732 kdiff3.cpp:1003
+#: kdiff3.cpp:1024 pdiff.cpp:1098 pdiff.cpp:1170 pdiff.cpp:1208 pdiff.cpp:1224
+#: pdiff.cpp:1254 pdiff.cpp:1265 directorymergewindow.cpp:739
+msgid "Ready."
+msgstr ""
+
+#: kdiff3.cpp:649 pdiff.cpp:1753
+msgid "The merge result hasn't been saved."
+msgstr ""
+
+#: kdiff3.cpp:650 kdiff3.cpp:660 kdiff3.cpp:672 pdiff.cpp:1016 pdiff.cpp:1754
+#: pdiff.cpp:1764 directorymergewindow.cpp:407 mergeresultwindow.cpp:303
+msgid "Warning"
+msgstr ""
+
+#: kdiff3.cpp:651
+msgid "Save && Quit"
+msgstr ""
+
+#: kdiff3.cpp:652
+msgid "Quit Without Saving"
+msgstr ""
+
+#: kdiff3.cpp:660 pdiff.cpp:1764
+msgid "Saving the merge result failed."
+msgstr ""
+
+#: kdiff3.cpp:671 pdiff.cpp:1015
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort?"
+msgstr ""
+
+#: kdiff3.cpp:696
+msgid "Saving file..."
+msgstr ""
+
+#: kdiff3.cpp:713
+msgid "Saving file with a new filename..."
+msgstr ""
+
+#: kdiff3.cpp:715 kreplacements/kreplacements.cpp:620
+msgid "Save As..."
+msgstr ""
+
+#: kdiff3.cpp:974
+msgid "Exiting..."
+msgstr ""
+
+#: kdiff3.cpp:987
+msgid "Toggling toolbar..."
+msgstr ""
+
+#: kdiff3.cpp:1008
+msgid "Toggle the statusbar..."
+msgstr ""
+
+#: fileaccess.cpp:612
+msgid ""
+"While trying to make a backup, deleting an older backup failed. \n"
+"Filename: "
+msgstr ""
+
+#: fileaccess.cpp:619
+msgid ""
+"While trying to make a backup, renaming failed. \n"
+"Filenames: "
+msgstr ""
+
+#: fileaccess.cpp:643
+#, kde-format
+msgid "Getting file status: %1"
+msgstr ""
+
+#: fileaccess.cpp:686
+#, kde-format
+msgid "Reading file: %1"
+msgstr ""
+
+#: fileaccess.cpp:723
+#, kde-format
+msgid "Writing file: %1"
+msgstr ""
+
+#: fileaccess.cpp:751
+msgid "Out of memory"
+msgstr ""
+
+#: fileaccess.cpp:786
+#, kde-format
+msgid "Making directory: %1"
+msgstr ""
+
+#: fileaccess.cpp:806
+#, kde-format
+msgid "Removing directory: %1"
+msgstr ""
+
+#: fileaccess.cpp:821
+#, kde-format
+msgid "Removing file: %1"
+msgstr ""
+
+#: fileaccess.cpp:837
+#, kde-format
+msgid "Creating symbolic link: %1 -> %2"
+msgstr ""
+
+#: fileaccess.cpp:864
+#, kde-format
+msgid "Renaming file: %1 -> %2"
+msgstr ""
+
+#: fileaccess.cpp:897
+#, kde-format
+msgid "Copying file: %1 -> %2"
+msgstr ""
+
+#: fileaccess.cpp:911
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for reading failed. Filename: "
+"%1"
+msgstr ""
+
+#: fileaccess.cpp:917
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for writing failed. Filename: "
+"%1"
+msgstr ""
+
+#: fileaccess.cpp:932
+#, kde-format
+msgid "Error during file copy operation: Reading failed. Filename: %1"
+msgstr ""
+
+#: fileaccess.cpp:941
+#, kde-format
+msgid "Error during file copy operation: Writing failed. Filename: %1"
+msgstr ""
+
+#: fileaccess.cpp:1237
+msgid "Reading directory: "
+msgstr ""
+
+#: fileaccess.cpp:1361
+#, kde-format
+msgid "Listing directory: %1"
+msgstr ""
+
+#: fileaccess.cpp:1495 smalldialogs.cpp:179 smalldialogs.cpp:396
+msgid "&Cancel"
+msgstr ""
+
+#: diff.cpp:250
+msgid "Writing clipboard data to temp file failed."
+msgstr ""
+
+#: diff.cpp:254
+msgid "From Clipboard"
+msgstr ""
+
+#: diff.cpp:502
+#, kde-format
+msgid ""
+"Preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The preprocessing command will be disabled now."
+msgstr ""
+
+#: diff.cpp:542
+#, kde-format
+msgid ""
+"The line-matching-preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The line-matching-preprocessing command will be disabled now."
+msgstr ""
+
+#: diff.cpp:1658 diff.cpp:1672
+msgid ""
+"Data loss error:\n"
+"If it is reproducable please contact the author.\n"
+msgstr ""
+
+#: diff.cpp:1660 diff.cpp:1674
+msgid "Severe Internal Error"
+msgstr ""
+
+#: smalldialogs.cpp:58
+msgid "A (Base):"
+msgstr ""
+
+#: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99
+#: smalldialogs.cpp:142
+msgid "File..."
+msgstr ""
+
+#: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101
+#: smalldialogs.cpp:144
+msgid "Dir..."
+msgstr ""
+
+#: smalldialogs.cpp:93
+msgid "C (Optional):"
+msgstr ""
+
+#: smalldialogs.cpp:110 optiondialog.cpp:873 directorymergewindow.cpp:1893
+#: directorymergewindow.cpp:1894 directorymergewindow.cpp:3011
+msgid "Merge"
+msgstr ""
+
+#: smalldialogs.cpp:116
+msgid "Swap/Copy Names ..."
+msgstr ""
+
+#: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123
+#, kde-format
+msgid "Swap %1<->%2"
+msgstr ""
+
+#: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126
+#, kde-format
+msgid "Copy %1->Output"
+msgstr ""
+
+#: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129
+#, kde-format
+msgid "Swap %1<->Output"
+msgstr ""
+
+#: smalldialogs.cpp:136
+msgid "Output (optional):"
+msgstr ""
+
+#: smalldialogs.cpp:168
+msgid "Configure..."
+msgstr ""
+
+#: smalldialogs.cpp:174
+msgid "&OK"
+msgstr ""
+
+#: smalldialogs.cpp:362
+msgid "Search text:"
+msgstr ""
+
+#: smalldialogs.cpp:369
+msgid "Case sensitive"
+msgstr ""
+
+#: smalldialogs.cpp:372
+msgid "Search A"
+msgstr ""
+
+#: smalldialogs.cpp:377
+msgid "Search B"
+msgstr ""
+
+#: smalldialogs.cpp:382
+msgid "Search C"
+msgstr ""
+
+#: smalldialogs.cpp:387
+msgid "Search output"
+msgstr ""
+
+#: smalldialogs.cpp:392
+msgid "&Search"
+msgstr ""
+
+#: smalldialogs.cpp:409
+msgid "Regular Expression Tester"
+msgstr ""
+
+#: smalldialogs.cpp:414 optiondialog.cpp:940
+msgid "Auto merge regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:422
+msgid "Example auto merge line:"
+msgstr ""
+
+#: smalldialogs.cpp:424
+msgid "For auto merge test copy a line as used in your files."
+msgstr ""
+
+#: smalldialogs.cpp:430 smalldialogs.cpp:459 smalldialogs.cpp:496
+msgid "Match result:"
+msgstr ""
+
+#: smalldialogs.cpp:441 optiondialog.cpp:966
+msgid "History start regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:449
+msgid "Example history start line (with leading comment):"
+msgstr ""
+
+#: smalldialogs.cpp:452
+msgid ""
+"Copy a history start line as used in your files,\n"
+"including the leading comment."
+msgstr ""
+
+#: smalldialogs.cpp:470 optiondialog.cpp:976
+msgid "History entry start regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:478
+msgid "History sort key order:"
+msgstr ""
+
+#: smalldialogs.cpp:486
+msgid "Example history entry start line (without leading comment):"
+msgstr ""
+
+#: smalldialogs.cpp:488
+msgid ""
+"Copy a history entry start line as used in your files,\n"
+"but omit the leading comment."
+msgstr ""
+
+#: smalldialogs.cpp:503
+msgid "Sort key result:"
+msgstr ""
+
+#: smalldialogs.cpp:510
+msgid "OK"
+msgstr ""
+
+#: smalldialogs.cpp:514 kreplacements/kreplacements.h:103
+#: kreplacements/kreplacements.cpp:164 kreplacements/kreplacements.cpp:195
+msgid "Cancel"
+msgstr ""
+
+#: smalldialogs.cpp:554 smalldialogs.cpp:564 smalldialogs.cpp:585
+msgid "Match success."
+msgstr ""
+
+#: smalldialogs.cpp:558 smalldialogs.cpp:568 smalldialogs.cpp:591
+msgid "Match failed."
+msgstr ""
+
+#: smalldialogs.cpp:576
+msgid "Opening and closing parentheses don't match in regular expression."
+msgstr ""
+
+#: optiondialog.cpp:367
+msgid "Unicode, 8 bit"
+msgstr ""
+
+#: optiondialog.cpp:368
+msgid "Unicode"
+msgstr ""
+
+#: optiondialog.cpp:369
+msgid "Latin1"
+msgstr ""
+
+#: optiondialog.cpp:388
+msgid "Change this if non-ASCII characters are not displayed correctly."
+msgstr ""
+
+#: optiondialog.cpp:465
+msgid "Configure"
+msgstr ""
+
+#: optiondialog.cpp:531
+msgid "Font"
+msgstr ""
+
+#: optiondialog.cpp:532
+msgid "Editor & Diff Output Font"
+msgstr ""
+
+#: optiondialog.cpp:556
+msgid "Italic font for deltas"
+msgstr ""
+
+#: optiondialog.cpp:559
+msgid ""
+"Selects the italic version of the font for differences.\n"
+"If the font doesn't support italic characters, then this does nothing."
+msgstr ""
+
+#: optiondialog.cpp:568
+msgid "Color"
+msgstr ""
+
+#: optiondialog.cpp:569
+msgid "Colors Settings"
+msgstr ""
+
+#: optiondialog.cpp:588
+msgid "Editor and Diff Views:"
+msgstr ""
+
+#: optiondialog.cpp:596
+msgid "Foreground color:"
+msgstr ""
+
+#: optiondialog.cpp:603
+msgid "Background color:"
+msgstr ""
+
+#: optiondialog.cpp:612
+msgid "Diff background color:"
+msgstr ""
+
+#: optiondialog.cpp:620
+msgid "Color A:"
+msgstr ""
+
+#: optiondialog.cpp:628
+msgid "Color B:"
+msgstr ""
+
+#: optiondialog.cpp:636
+msgid "Color C:"
+msgstr ""
+
+#: optiondialog.cpp:643
+msgid "Conflict color:"
+msgstr ""
+
+#: optiondialog.cpp:651
+msgid "Current range background color:"
+msgstr ""
+
+#: optiondialog.cpp:659
+msgid "Current range diff background color:"
+msgstr ""
+
+#: optiondialog.cpp:666
+msgid "Color for manually aligned difference ranges:"
+msgstr ""
+
+#: optiondialog.cpp:672
+msgid "Directory Comparison View:"
+msgstr ""
+
+#: optiondialog.cpp:678
+msgid "Newest file color:"
+msgstr ""
+
+#: optiondialog.cpp:682
+msgid ""
+"Changing this color will only be effective when starting the next directory "
+"comparison."
+msgstr ""
+
+#: optiondialog.cpp:687
+msgid "Oldest file color:"
+msgstr ""
+
+#: optiondialog.cpp:695
+msgid "Middle age file color:"
+msgstr ""
+
+#: optiondialog.cpp:703
+msgid "Color for missing files:"
+msgstr ""
+
+#: optiondialog.cpp:717
+msgid "Editor"
+msgstr ""
+
+#: optiondialog.cpp:718
+msgid "Editor Behavior"
+msgstr ""
+
+#: optiondialog.cpp:732
+msgid "Tab inserts spaces"
+msgstr ""
+
+#: optiondialog.cpp:735
+msgid ""
+"On: Pressing tab generates the appropriate number of spaces.\n"
+"Off: A Tab-character will be inserted."
+msgstr ""
+
+#: optiondialog.cpp:741
+msgid "Tab size:"
+msgstr ""
+
+#: optiondialog.cpp:747
+msgid "Auto indentation"
+msgstr ""
+
+#: optiondialog.cpp:750
+msgid "On: The indentation of the previous line is used for a new line.\n"
+msgstr ""
+
+#: optiondialog.cpp:754
+msgid "Auto copy selection"
+msgstr ""
+
+#: optiondialog.cpp:757
+msgid ""
+"On: Any selection is immediately written to the clipboard.\n"
+"Off: You must explicitely copy e.g. via Ctrl-C."
+msgstr ""
+
+#: optiondialog.cpp:762
+msgid "Line end style:"
+msgstr ""
+
+#: optiondialog.cpp:776
+msgid ""
+"Sets the line endings for when an edited file is saved.\n"
+"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A"
+msgstr ""
+
+#: optiondialog.cpp:788
+msgid "Diff"
+msgstr ""
+
+#: optiondialog.cpp:789
+msgid "Diff Settings"
+msgstr ""
+
+#: optiondialog.cpp:813
+msgid "Treat as white space."
+msgstr ""
+
+#: optiondialog.cpp:815
+msgid "Ignore numbers"
+msgstr ""
+
+#: optiondialog.cpp:818
+msgid ""
+"Ignore number characters during line matching phase. (Similar to Ignore "
+"white space.)\n"
+"Might help to compare files with numeric data."
+msgstr ""
+
+#: optiondialog.cpp:823
+msgid "Ignore C/C++ comments"
+msgstr ""
+
+#: optiondialog.cpp:825
+msgid "Treat C/C++ comments like white space."
+msgstr ""
+
+#: optiondialog.cpp:829
+msgid "Ignore case"
+msgstr ""
+
+#: optiondialog.cpp:832
+msgid "Treat case differences like white space changes. ('a'<=>'A')"
+msgstr ""
+
+#: optiondialog.cpp:836
+msgid "Preprocessor command:"
+msgstr ""
+
+#: optiondialog.cpp:840
+msgid "User defined pre-processing. (See the docs for details.)"
+msgstr ""
+
+#: optiondialog.cpp:843
+msgid "Line-matching preprocessor command:"
+msgstr ""
+
+#: optiondialog.cpp:847
+msgid ""
+"This pre-processor is only used during line matching.\n"
+"(See the docs for details.)"
+msgstr ""
+
+#: optiondialog.cpp:850
+msgid "Try hard (slower)"
+msgstr ""
+
+#: optiondialog.cpp:853
+msgid ""
+"Enables the --minimal option for the external diff.\n"
+"The analysis of big files will be much slower."
+msgstr ""
+
+#: optiondialog.cpp:858
+msgid "Align B and C for 3 input files"
+msgstr ""
+
+#: optiondialog.cpp:861
+msgid ""
+"Try to align B and C when comparing or merging three input files.\n"
+"Not recommended for merging because merge might get more complicated.\n"
+"(Default is off.)"
+msgstr ""
+
+#: optiondialog.cpp:874
+msgid "Merge Settings"
+msgstr ""
+
+#: optiondialog.cpp:889
+msgid "Auto advance delay (ms):"
+msgstr ""
+
+#: optiondialog.cpp:894
+msgid ""
+"When in Auto-Advance mode the result of the current selection is shown \n"
+"for the specified time, before jumping to the next conflict. Range: 0-2000 ms"
+msgstr ""
+
+#: optiondialog.cpp:899
+msgid "Show info dialogs"
+msgstr ""
+
+#: optiondialog.cpp:901
+msgid "Show a dialog with information about the number of conflicts."
+msgstr ""
+
+#: optiondialog.cpp:904
+msgid "White space 2-file merge default:"
+msgstr ""
+
+#: optiondialog.cpp:908 optiondialog.cpp:921
+msgid "Manual Choice"
+msgstr ""
+
+#: optiondialog.cpp:912 optiondialog.cpp:926
+msgid ""
+"Allow the merge algorithm to automatically select an input for white-space-"
+"only changes."
+msgstr ""
+
+#: optiondialog.cpp:917
+msgid "White space 3-file merge default:"
+msgstr ""
+
+#: optiondialog.cpp:931
+msgid "Automatic Merge Regular Expression"
+msgstr ""
+
+#: optiondialog.cpp:944
+msgid ""
+"Regular expression for lines where KDiff3 should automatically choose one "
+"source.\n"
+"When a line with a conflict matches the regular expression then\n"
+"- if available - C, otherwise B will be chosen."
+msgstr ""
+
+#: optiondialog.cpp:950
+msgid "Run regular expression auto merge on merge start"
+msgstr ""
+
+#: optiondialog.cpp:952
+msgid ""
+"Run the merge for auto merge regular expressions\n"
+"immediately when a merge starts.\n"
+msgstr ""
+
+#: optiondialog.cpp:957
+msgid "Version Control History Merging"
+msgstr ""
+
+#: optiondialog.cpp:970
+msgid ""
+"Regular expression for the start of the version control history entry.\n"
+"Usually this line contains the \"$Log$\"-keyword.\n"
+"Default value: \".*\\$Log.*\\$.*\""
+msgstr ""
+
+#: optiondialog.cpp:988
+msgid ""
+"A version control history entry consists of several lines.\n"
+"Specify the regular expression to detect the first line (without the leading "
+"comment).\n"
+"Use parentheses to group the keys you want to use for sorting.\n"
+"If left empty, then KDiff3 assumes that empty lines separate history "
+"entries.\n"
+"See the documentation for details."
+msgstr ""
+
+#: optiondialog.cpp:996
+msgid "History merge sorting"
+msgstr ""
+
+#: optiondialog.cpp:998
+msgid "Sort version control history by a key."
+msgstr ""
+
+#: optiondialog.cpp:1008
+msgid "History entry start sort key order:"
+msgstr ""
+
+#: optiondialog.cpp:1012
+msgid ""
+"Each parentheses used in the regular expression for the history start entry\n"
+"groups a key that can be used for sorting.\n"
+"Specify the list of keys (that are numbered in order of occurrence\n"
+"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n"
+"If left empty, then no sorting will be done.\n"
+"See the documentation for details."
+msgstr ""
+
+#: optiondialog.cpp:1023
+msgid "Merge version control history on merge start"
+msgstr ""
+
+#: optiondialog.cpp:1025
+msgid "Run version control history automerge on merge start."
+msgstr ""
+
+#: optiondialog.cpp:1029
+msgid "Max number of history entries:"
+msgstr ""
+
+#: optiondialog.cpp:1032
+msgid "Cut off after specified number. Use -1 for infinite number of entries."
+msgstr ""
+
+#: optiondialog.cpp:1036
+msgid "Test your regular expressions"
+msgstr ""
+
+#: optiondialog.cpp:1041
+msgid "Irrelevant merge command:"
+msgstr ""
+
+#: optiondialog.cpp:1045
+msgid ""
+"If specified this script is run after automerge\n"
+"when no other relevant changes were detected.\n"
+"Called with the parameters: filename1 filename2 filename3"
+msgstr ""
+
+#: optiondialog.cpp:1051
+msgid "Auto save and quit on merge without conflicts"
+msgstr ""
+
+#: optiondialog.cpp:1054
+msgid ""
+"When KDiff3 was started for a file-merge from the commandline and all\n"
+"conflicts are solvable without user interaction then automatically save and "
+"quit.\n"
+"(Similar to command line option \"--auto\"."
+msgstr ""
+
+#: optiondialog.cpp:1065 optiondialog.cpp:1066
+msgid "Directory Merge"
+msgstr ""
+
+#: optiondialog.cpp:1079
+msgid "Recursive directories"
+msgstr ""
+
+#: optiondialog.cpp:1081
+msgid "Whether to analyze subdirectories or not."
+msgstr ""
+
+#: optiondialog.cpp:1083
+msgid "File pattern(s):"
+msgstr ""
+
+#: optiondialog.cpp:1088
+msgid ""
+"Pattern(s) of files to be analyzed. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1094
+msgid "File-anti-pattern(s):"
+msgstr ""
+
+#: optiondialog.cpp:1099
+msgid ""
+"Pattern(s) of files to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1105
+msgid "Dir-anti-pattern(s):"
+msgstr ""
+
+#: optiondialog.cpp:1110
+msgid ""
+"Pattern(s) of directories to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1116
+msgid "Use .cvsignore"
+msgstr ""
+
+#: optiondialog.cpp:1119
+msgid ""
+"Extends the antipattern to anything that would be ignored by CVS.\n"
+"Via local \".cvsignore\"-files this can be directory specific."
+msgstr ""
+
+#: optiondialog.cpp:1124
+msgid "Find hidden files and directories"
+msgstr ""
+
+#: optiondialog.cpp:1127
+msgid "Finds files and directories with the hidden attribute."
+msgstr ""
+
+#: optiondialog.cpp:1129
+msgid "Finds files and directories starting with '.'."
+msgstr ""
+
+#: optiondialog.cpp:1133
+msgid "Follow file links"
+msgstr ""
+
+#: optiondialog.cpp:1136
+msgid ""
+"On: Compare the file the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+
+#: optiondialog.cpp:1141
+msgid "Follow directory links"
+msgstr ""
+
+#: optiondialog.cpp:1144
+msgid ""
+"On: Compare the directory the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+
+#: optiondialog.cpp:1160
+msgid "Case sensitive filename comparison"
+msgstr ""
+
+#: optiondialog.cpp:1163
+msgid ""
+"The directory comparison will compare files or directories when their names "
+"match.\n"
+"Set this option if the case of the names must match. (Default for Windows is "
+"off, otherwise on.)"
+msgstr ""
+
+#: optiondialog.cpp:1167
+msgid "File Comparison Mode"
+msgstr ""
+
+#: optiondialog.cpp:1173
+msgid "Binary comparison"
+msgstr ""
+
+#: optiondialog.cpp:1174
+msgid "Binary comparison of each file. (Default)"
+msgstr ""
+
+#: optiondialog.cpp:1177
+msgid "Full analysis"
+msgstr ""
+
+#: optiondialog.cpp:1178
+msgid ""
+"Do a full analysis and show statistics information in extra columns.\n"
+"(Slower than a binary comparison, much slower for binary files.)"
+msgstr ""
+
+#: optiondialog.cpp:1182
+msgid "Trust the size and modification date (unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1183
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"Files with equal contents but different modification dates will appear as "
+"different.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+
+#: optiondialog.cpp:1188
+msgid ""
+"Trust the size and date, but use binary comparison if date doesn't match "
+"(unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1189
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"If the date isn't equal but the sizes are, use binary comparison.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+
+#: optiondialog.cpp:1194
+msgid "Trust the size (unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1195
+msgid ""
+"Assume that files are equal if their file lengths are equal.\n"
+"Useful for big directories or slow networks when the date is modified during "
+"download."
+msgstr ""
+
+#: optiondialog.cpp:1203
+msgid "Synchronize directories"
+msgstr ""
+
+#: optiondialog.cpp:1206
+msgid ""
+"Offers to store files in both directories so that\n"
+"both directories are the same afterwards.\n"
+"Works only when comparing two directories without specifying a destination."
+msgstr ""
+
+#: optiondialog.cpp:1212
+msgid "White space differences considered equal"
+msgstr ""
+
+#: optiondialog.cpp:1215
+msgid ""
+"If files differ only by white space consider them equal.\n"
+"This is only active when full analysis is chosen."
+msgstr ""
+
+#: optiondialog.cpp:1221
+msgid "Copy newer instead of merging (unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1224
+msgid ""
+"Don't look inside, just take the newer file.\n"
+"(Use this only if you know what you are doing!)\n"
+"Only effective when comparing two directories."
+msgstr ""
+
+#: optiondialog.cpp:1229
+msgid "Backup files (.orig)"
+msgstr ""
+
+#: optiondialog.cpp:1232
+msgid ""
+"When a file would be saved over an old file, then the old file\n"
+"will be renamed with a '.orig'-extension instead of being deleted."
+msgstr ""
+
+#: optiondialog.cpp:1328 optiondialog.cpp:1329
+msgid "Regional Settings"
+msgstr ""
+
+#: optiondialog.cpp:1429
+msgid "Language (restart required)"
+msgstr ""
+
+#: optiondialog.cpp:1461
+msgid ""
+"Choose the language of the GUI-strings or \"Auto\".\n"
+"For a change of language to take place, quit and restart KDiff3."
+msgstr ""
+
+#: optiondialog.cpp:1479
+msgid "Use the same encoding for everything:"
+msgstr ""
+
+#: optiondialog.cpp:1482
+msgid ""
+"Enable this allows to change all encodings by changing the first only.\n"
+"Disable this if different individual settings are needed."
+msgstr ""
+
+#: optiondialog.cpp:1487
+msgid "Note: Local Encoding is "
+msgstr ""
+
+#: optiondialog.cpp:1491
+msgid "File Encoding for A:"
+msgstr ""
+
+#: optiondialog.cpp:1497
+msgid ""
+"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n"
+"If the file is not Unicode then the selected encoding will be used as "
+"fallback.\n"
+"(Unicode detection depends on the first bytes of a file.)"
+msgstr ""
+
+#: optiondialog.cpp:1501 optiondialog.cpp:1510 optiondialog.cpp:1519
+msgid "Auto Detect Unicode"
+msgstr ""
+
+#: optiondialog.cpp:1506
+msgid "File Encoding for B:"
+msgstr ""
+
+#: optiondialog.cpp:1515
+msgid "File Encoding for C:"
+msgstr ""
+
+#: optiondialog.cpp:1524
+msgid "File Encoding for Merge Output and Saving:"
+msgstr ""
+
+#: optiondialog.cpp:1528
+msgid "Auto Select"
+msgstr ""
+
+#: optiondialog.cpp:1531
+msgid ""
+"If enabled then the encoding from the input files is used.\n"
+"In ambiguous cases a dialog will ask the user to choose the encoding for "
+"saving."
+msgstr ""
+
+#: optiondialog.cpp:1535
+msgid "File Encoding for Preprocessor Files:"
+msgstr ""
+
+#: optiondialog.cpp:1546
+msgid "Right To Left Language"
+msgstr ""
+
+#: optiondialog.cpp:1549
+msgid ""
+"Some languages are read from right to left.\n"
+"This setting will change the viewer and editor accordingly."
+msgstr ""
+
+#: optiondialog.cpp:1564
+msgid "Integration"
+msgstr ""
+
+#: optiondialog.cpp:1565
+msgid "Integration Settings"
+msgstr ""
+
+#: optiondialog.cpp:1579
+msgid "Command line options to ignore:"
+msgstr ""
+
+#: optiondialog.cpp:1584
+msgid ""
+"List of command line options that should be ignored when KDiff3 is used by "
+"other tools.\n"
+"Several values can be specified if separated via ';'\n"
+"This will suppress the \"Unknown option\"-error."
+msgstr ""
+
+#: optiondialog.cpp:1591
+msgid "Quit also via Escape key"
+msgstr ""
+
+#: optiondialog.cpp:1594
+msgid ""
+"Fast method to exit.\n"
+"For those who are used to using the Escape-key."
+msgstr ""
+
+#: optiondialog.cpp:1599
+msgid "Integrate with ClearCase"
+msgstr ""
+
+#: optiondialog.cpp:1602
+msgid ""
+"Integrate with Rational ClearCase from IBM.\n"
+"Modifies the \"map\" file in ClearCase-subdir \"lib/mgrs\"\n"
+"(Only enabled when ClearCase \"bin\" directory is in the path.)"
+msgstr ""
+
+#: optiondialog.cpp:1608
+msgid "Remove ClearCase Integration"
+msgstr ""
+
+#: optiondialog.cpp:1611
+msgid ""
+"Restore the old \"map\" file from before doing the Clearcase integration."
+msgstr ""
+
+#: optiondialog.cpp:1692 kreplacements/kreplacements.cpp:794
+msgid ""
+"You selected a variable width font.\n"
+"\n"
+"Because this program doesn't handle variable width fonts\n"
+"correctly, you might experience problems while editing.\n"
+"\n"
+"Do you want to continue or do you want to select another font."
+msgstr ""
+
+#: optiondialog.cpp:1696
+msgid "Incompatible Font"
+msgstr ""
+
+#: optiondialog.cpp:1697
+msgid "Continue at Own Risk"
+msgstr ""
+
+#: optiondialog.cpp:1698
+msgid "Select Another Font"
+msgstr ""
+
+#: optiondialog.cpp:1733
+msgid "This resets all options. Not only those of the current topic."
+msgstr ""
+
+#: main.cpp:187
+msgid "kdiff3"
+msgstr ""
+
+#: main.cpp:189
+msgid "Tool for Comparison and Merge of Files and Directories"
+msgstr ""
+
+#: main.cpp:190
+msgid "(c) 2002-2008 Joachim Eibl"
+msgstr ""
+
+#: main.cpp:197 kdiff3_part.cpp:303
+msgid "Joachim Eibl"
+msgstr ""
+
+#: main.cpp:198
+msgid "Eike Sauer"
+msgstr ""
+
+#: main.cpp:198
+msgid "Bugfixes, Debian package maintainer"
+msgstr ""
+
+#: main.cpp:199
+msgid "Sebastien Fricker"
+msgstr ""
+
+#: main.cpp:199
+msgid "Windows installer"
+msgstr ""
+
+#: main.cpp:200
+msgid "Stephan Binner"
+msgstr ""
+
+#: main.cpp:200
+msgid "i18n-help"
+msgstr ""
+
+#: main.cpp:201
+msgid "Stefan Partheymueller"
+msgstr ""
+
+#: main.cpp:201
+msgid "Clipboard-patch"
+msgstr ""
+
+#: main.cpp:202
+msgid "David Faure"
+msgstr ""
+
+#: main.cpp:202
+msgid "KIO-Help"
+msgstr ""
+
+#: main.cpp:203
+msgid "Bernd Gehrmann"
+msgstr ""
+
+#: main.cpp:203
+msgid "Class CvsIgnoreList from Cervisia"
+msgstr ""
+
+#: main.cpp:204
+msgid "Andre Woebbeking"
+msgstr ""
+
+#: main.cpp:204
+msgid "Class StringMatcher"
+msgstr ""
+
+#: main.cpp:205
+msgid "Michael Denio"
+msgstr ""
+
+#: main.cpp:205
+msgid "Directory Equality-Coloring patch"
+msgstr ""
+
+#: main.cpp:206
+msgid "Manfred Koehler"
+msgstr ""
+
+#: main.cpp:206
+msgid "Fix for slow startup on Windows"
+msgstr ""
+
+#: main.cpp:207
+msgid "Sergey Zorin"
+msgstr ""
+
+#: main.cpp:207
+msgid "Diff Ext for Windows"
+msgstr ""
+
+#: main.cpp:208
+msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+msgstr ""
+
+#: main.cpp:208
+msgid "GNU-Diffutils"
+msgstr ""
+
+#: main.cpp:209
+msgid "Tino Boellsterling, Timothy Mee"
+msgstr ""
+
+#: main.cpp:209
+msgid "Intensive test, use and feedback"
+msgstr ""
+
+#: main.cpp:210
+msgid "Michael Schmidt"
+msgstr ""
+
+#: main.cpp:210
+msgid "Mac support"
+msgstr ""
+
+#: main.cpp:211
+msgid "Valentin Rusu"
+msgstr ""
+
+#: main.cpp:211 main.cpp:212
+msgid "KDE4 porting"
+msgstr ""
+
+#: main.cpp:212
+msgid "Albert Astals Cid"
+msgstr ""
+
+#: main.cpp:214
+msgid "+ Many thanks to those who reported bugs and contributed ideas!"
+msgstr ""
+
+#: main.cpp:220
+msgid "Merge the input."
+msgstr ""
+
+#: main.cpp:221
+msgid "Explicit base file. For compatibility with certain tools."
+msgstr ""
+
+#: main.cpp:222
+msgid "Output file. Implies -m. E.g.: -o newfile.txt"
+msgstr ""
+
+#: main.cpp:223
+msgid "Output file, again. (For compatibility with certain tools.)"
+msgstr ""
+
+#: main.cpp:224
+msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)"
+msgstr ""
+
+#: main.cpp:225
+msgid "Don't solve conflicts automatically. (For compatibility...)"
+msgstr ""
+
+#: main.cpp:226
+msgid "Visible name replacement for input file 1 (base)."
+msgstr ""
+
+#: main.cpp:227
+msgid "Visible name replacement for input file 2."
+msgstr ""
+
+#: main.cpp:228
+msgid "Visible name replacement for input file 3."
+msgstr ""
+
+#: main.cpp:229
+msgid "Alternative visible name replacement. Supply this once for every input."
+msgstr ""
+
+#: main.cpp:230
+msgid ""
+"Override a config setting. Use once for every setting. E.g.: --cs "
+"\"AutoAdvance=1\""
+msgstr ""
+
+#: main.cpp:231
+msgid "Show list of config settings and current values."
+msgstr ""
+
+#: main.cpp:232
+msgid "Use a different config file."
+msgstr ""
+
+#: main.cpp:235
+msgid "file1 to open (base, if not specified via --base)"
+msgstr ""
+
+#: main.cpp:236
+msgid "file2 to open"
+msgstr ""
+
+#: main.cpp:237
+msgid "file3 to open"
+msgstr ""
+
+#: difftextwindow.cpp:388 directorymergewindow.cpp:2764
+msgid "File"
+msgstr ""
+
+#: difftextwindow.cpp:390
+msgid "Line"
+msgstr ""
+
+#: difftextwindow.cpp:392
+msgid "Line not available"
+msgstr ""
+
+#: difftextwindow.cpp:1721
+msgid "Top line"
+msgstr ""
+
+#: difftextwindow.cpp:1731
+msgid "End"
+msgstr ""
+
+#: pdiff.cpp:260
+msgid "PreprocessorCmd: "
+msgstr ""
+
+#: pdiff.cpp:265
+msgid "The following option(s) you selected might change data:\n"
+msgstr ""
+
+#: pdiff.cpp:266
+msgid ""
+"\n"
+"Most likely this is not wanted during a merge.\n"
+"Do you want to disable these settings or continue with these settings active?"
+msgstr ""
+
+#: pdiff.cpp:268
+msgid "Option Unsafe for Merging"
+msgstr ""
+
+#: pdiff.cpp:269
+msgid "Use These Options During Merge"
+msgstr ""
+
+#: pdiff.cpp:270
+msgid "Disable Unsafe Options"
+msgstr ""
+
+#: pdiff.cpp:300
+msgid "Loading A"
+msgstr ""
+
+#: pdiff.cpp:304
+msgid "Loading B"
+msgstr ""
+
+#: pdiff.cpp:321 pdiff.cpp:347
+msgid "Diff: A <-> B"
+msgstr ""
+
+#: pdiff.cpp:327 pdiff.cpp:372
+msgid "Linediff: A <-> B"
+msgstr ""
+
+#: pdiff.cpp:338
+msgid "Loading C"
+msgstr ""
+
+#: pdiff.cpp:350
+msgid "Diff: B <-> C"
+msgstr ""
+
+#: pdiff.cpp:353
+msgid "Diff: A <-> C"
+msgstr ""
+
+#: pdiff.cpp:375
+msgid "Linediff: B <-> C"
+msgstr ""
+
+#: pdiff.cpp:378
+msgid "Linediff: A <-> C"
+msgstr ""
+
+#: pdiff.cpp:528 mergeresultwindow.cpp:828
+msgid "All input files are binary equal."
+msgstr ""
+
+#: pdiff.cpp:530
+msgid "All input files contain the same text, but are not binary equal."
+msgstr ""
+
+#: pdiff.cpp:532 pdiff.cpp:534 pdiff.cpp:536 mergeresultwindow.cpp:832
+#: mergeresultwindow.cpp:834 mergeresultwindow.cpp:836
+#, kde-format
+msgid "Files %1 and %2 are binary equal.\n"
+msgstr ""
+
+#: pdiff.cpp:533 pdiff.cpp:535 pdiff.cpp:537
+#, kde-format
+msgid "Files %1 and %2 have equal text, but are not binary equal. \n"
+msgstr ""
+
+#: pdiff.cpp:547
+msgid ""
+"Some inputfiles don't seem to be pure textfiles.\n"
+"Note that the KDiff3-merge was not meant for binary data.\n"
+"Continue at your own risk."
+msgstr ""
+
+#: pdiff.cpp:1017
+msgid "Abort"
+msgstr ""
+
+#: pdiff.cpp:1018 directorymergewindow.cpp:409
+msgid "Continue Merging"
+msgstr ""
+
+#: pdiff.cpp:1024 pdiff.cpp:1112
+msgid "Opening files..."
+msgstr ""
+
+#: pdiff.cpp:1089 pdiff.cpp:1160
+msgid "File open error"
+msgstr ""
+
+#: pdiff.cpp:1192
+msgid "Cutting selection..."
+msgstr ""
+
+#: pdiff.cpp:1213
+msgid "Copying selection to clipboard..."
+msgstr ""
+
+#: pdiff.cpp:1229
+msgid "Inserting clipboard contents..."
+msgstr ""
+
+#: pdiff.cpp:1755
+msgid "Save && Continue"
+msgstr ""
+
+#: pdiff.cpp:1756
+msgid "Continue Without Saving"
+msgstr ""
+
+#: pdiff.cpp:1958
+msgid "Search complete."
+msgstr ""
+
+#: pdiff.cpp:1958
+msgid "Search Complete"
+msgstr ""
+
+#: pdiff.cpp:2192
+msgid "Nothing is selected in either diff input window."
+msgstr ""
+
+#: pdiff.cpp:2192
+msgid "Error while adding manual diff range"
+msgstr ""
+
+#: kdiff3_shell.cpp:76
+msgid ""
+"Could not initialize our part!\n"
+"This usually happens due to an installation problem. Please read the README-"
+"file in the source package for details."
+msgstr ""
+
+#: directorymergewindow.cpp:154
+msgid "Mix of links and normal files."
+msgstr ""
+
+#: directorymergewindow.cpp:161
+msgid "Link: "
+msgstr ""
+
+#: directorymergewindow.cpp:169
+msgid "Size. "
+msgstr ""
+
+#: directorymergewindow.cpp:182 directorymergewindow.cpp:192
+msgid "Date & Size: "
+msgstr ""
+
+#: directorymergewindow.cpp:202 directorymergewindow.cpp:208
+#, kde-format
+msgid "Creating temp copy of %1 failed."
+msgstr ""
+
+#: directorymergewindow.cpp:219 directorymergewindow.cpp:227
+#, kde-format
+msgid "Opening %1 failed."
+msgstr ""
+
+#: directorymergewindow.cpp:231
+msgid "Comparing file..."
+msgstr ""
+
+#: directorymergewindow.cpp:241 directorymergewindow.cpp:247
+#, kde-format
+msgid "Error reading from %1"
+msgstr ""
+
+#: directorymergewindow.cpp:376
+msgid "Name"
+msgstr ""
+
+#: directorymergewindow.cpp:376
+msgid "Operation"
+msgstr ""
+
+#: directorymergewindow.cpp:376
+msgid "Status"
+msgstr ""
+
+#: directorymergewindow.cpp:377
+msgid "Unsolved"
+msgstr ""
+
+#: directorymergewindow.cpp:377
+msgid "Solved"
+msgstr ""
+
+#: directorymergewindow.cpp:377
+msgid "Nonwhite"
+msgstr ""
+
+#: directorymergewindow.cpp:377
+msgid "White"
+msgstr ""
+
+#: directorymergewindow.cpp:406
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort "
+"the merge and rescan the directory?"
+msgstr ""
+
+#: directorymergewindow.cpp:408 directorymergewindow.cpp:2984
+msgid "Rescan"
+msgstr ""
+
+#: directorymergewindow.cpp:566
+msgid "Opening of directories failed:"
+msgstr ""
+
+#: directorymergewindow.cpp:569
+#, kde-format
+msgid "Dir A \"%1\" does not exist or is not a directory.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:572
+#, kde-format
+msgid "Dir B \"%1\" does not exist or is not a directory.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:575
+#, kde-format
+msgid "Dir C \"%1\" does not exist or is not a directory.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:577
+msgid "Directory Open Error"
+msgstr ""
+
+#: directorymergewindow.cpp:585
+msgid ""
+"The destination directory must not be the same as A or B when three "
+"directories are merged.\n"
+"Check again before continuing."
+msgstr ""
+
+#: directorymergewindow.cpp:587
+msgid "Parameter Warning"
+msgstr ""
+
+#: directorymergewindow.cpp:592
+msgid "Scanning directories..."
+msgstr ""
+
+#: directorymergewindow.cpp:625
+msgid "Reading Directory A"
+msgstr ""
+
+#: directorymergewindow.cpp:647
+msgid "Reading Directory B"
+msgstr ""
+
+#: directorymergewindow.cpp:669
+msgid "Reading Directory C"
+msgstr ""
+
+#: directorymergewindow.cpp:695
+msgid "Some subdirectories were not readable in"
+msgstr ""
+
+#: directorymergewindow.cpp:700
+msgid "Check the permissions of the subdirectories."
+msgstr ""
+
+#: directorymergewindow.cpp:753
+msgid "Directory Comparison Status"
+msgstr ""
+
+#: directorymergewindow.cpp:754
+msgid "Number of subdirectories:"
+msgstr ""
+
+#: directorymergewindow.cpp:755
+msgid "Number of equal files:"
+msgstr ""
+
+#: directorymergewindow.cpp:756
+msgid "Number of different files:"
+msgstr ""
+
+#: directorymergewindow.cpp:759
+msgid "Number of manual merges:"
+msgstr ""
+
+#: directorymergewindow.cpp:928
+msgid "This affects all merge operations."
+msgstr ""
+
+#: directorymergewindow.cpp:929
+msgid "Changing All Merge Operations"
+msgstr ""
+
+#: directorymergewindow.cpp:1328
+msgid "Processing "
+msgstr ""
+
+#: directorymergewindow.cpp:1807 directorymergewindow.cpp:1813
+msgid "To do."
+msgstr ""
+
+#: directorymergewindow.cpp:1881 directorymergewindow.cpp:3015
+msgid "Copy A to B"
+msgstr ""
+
+#: directorymergewindow.cpp:1882 directorymergewindow.cpp:3016
+msgid "Copy B to A"
+msgstr ""
+
+#: directorymergewindow.cpp:1883 directorymergewindow.cpp:3017
+msgid "Delete A"
+msgstr ""
+
+#: directorymergewindow.cpp:1884 directorymergewindow.cpp:3018
+msgid "Delete B"
+msgstr ""
+
+#: directorymergewindow.cpp:1885
+msgid "Delete A & B"
+msgstr ""
+
+#: directorymergewindow.cpp:1886 directorymergewindow.cpp:3020
+msgid "Merge to A"
+msgstr ""
+
+#: directorymergewindow.cpp:1887 directorymergewindow.cpp:3021
+msgid "Merge to B"
+msgstr ""
+
+#: directorymergewindow.cpp:1888
+msgid "Merge to A & B"
+msgstr ""
+
+#: directorymergewindow.cpp:1892 directorymergewindow.cpp:3012
+msgid "Delete (if exists)"
+msgstr ""
+
+#: directorymergewindow.cpp:1893 directorymergewindow.cpp:1894
+msgid "Merge (manual)"
+msgstr ""
+
+#: directorymergewindow.cpp:1895
+msgid "Error: Conflicting File Types"
+msgstr ""
+
+#: directorymergewindow.cpp:1896
+msgid "Error: Dates are equal but files are not."
+msgstr ""
+
+#: directorymergewindow.cpp:1922 directorymergewindow.cpp:1951
+#: directorymergewindow.cpp:1976
+msgid "This operation is currently not possible."
+msgstr ""
+
+#: directorymergewindow.cpp:1922 directorymergewindow.cpp:1951
+#: directorymergewindow.cpp:1976 directorymergewindow.cpp:2235
+msgid "Operation Not Possible"
+msgstr ""
+
+#: directorymergewindow.cpp:2015
+msgid ""
+"This should never happen: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"If you know how to reproduce this, please contact the program author."
+msgstr ""
+
+#: directorymergewindow.cpp:2015
+msgid "Program Error"
+msgstr ""
+
+#: directorymergewindow.cpp:2026
+msgid "An error occurred while copying.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:2026 directorymergewindow.cpp:2095
+#: directorymergewindow.cpp:2127 directorymergewindow.cpp:2175
+#: directorymergewindow.cpp:2184 directorymergewindow.cpp:2435
+msgid "Error"
+msgstr ""
+
+#: directorymergewindow.cpp:2027 directorymergewindow.cpp:2436
+msgid "Merge Error"
+msgstr ""
+
+#: directorymergewindow.cpp:2032 directorymergewindow.cpp:2441
+msgid "Error."
+msgstr ""
+
+#: directorymergewindow.cpp:2037 directorymergewindow.cpp:2333
+#: directorymergewindow.cpp:2373
+msgid "Done."
+msgstr ""
+
+#: directorymergewindow.cpp:2060
+msgid "Not saved."
+msgstr ""
+
+#: directorymergewindow.cpp:2095
+msgid "Unknown merge operation. (This must never happen!)"
+msgstr ""
+
+#: directorymergewindow.cpp:2127
+msgid "Unknown merge operation."
+msgstr ""
+
+#: directorymergewindow.cpp:2142
+msgid ""
+"The merge is about to begin.\n"
+"\n"
+"Choose \"Do it\" if you have read the instructions and know what you are "
+"doing.\n"
+"Choosing \"Simulate it\" will tell you what would happen.\n"
+"\n"
+"Be aware that this program still has beta status and there is NO WARRANTY "
+"whatsoever! Make backups of your vital data!"
+msgstr ""
+
+#: directorymergewindow.cpp:2147
+msgid "Starting Merge"
+msgstr ""
+
+#: directorymergewindow.cpp:2148
+msgid "Do It"
+msgstr ""
+
+#: directorymergewindow.cpp:2149
+msgid "Simulate It"
+msgstr ""
+
+#: directorymergewindow.cpp:2175
+msgid ""
+"The highlighted item has a different type in the different directories. "
+"Select what to do."
+msgstr ""
+
+#: directorymergewindow.cpp:2184
+msgid ""
+"The modification dates of the file are equal but the files are not. Select "
+"what to do."
+msgstr ""
+
+#: directorymergewindow.cpp:2235
+msgid ""
+"This operation is currently not possible because directory merge is "
+"currently running."
+msgstr ""
+
+#: directorymergewindow.cpp:2295
+msgid ""
+"There was an error in the last step.\n"
+"Do you want to continue with the item that caused the error or do you want "
+"to skip this item?"
+msgstr ""
+
+#: directorymergewindow.cpp:2297
+msgid "Continue merge after an error"
+msgstr ""
+
+#: directorymergewindow.cpp:2298
+msgid "Continue With Last Item"
+msgstr ""
+
+#: directorymergewindow.cpp:2299
+msgid "Skip Item"
+msgstr ""
+
+#: directorymergewindow.cpp:2333
+msgid "Skipped."
+msgstr ""
+
+#: directorymergewindow.cpp:2340 directorymergewindow.cpp:2554
+msgid "In progress..."
+msgstr ""
+
+#: directorymergewindow.cpp:2388
+msgid "Merge operation complete."
+msgstr ""
+
+#: directorymergewindow.cpp:2388 directorymergewindow.cpp:2391
+msgid "Merge Complete"
+msgstr ""
+
+#: directorymergewindow.cpp:2401
+msgid ""
+"Simulated merge complete: Check if you agree with the proposed operations."
+msgstr ""
+
+#: directorymergewindow.cpp:2435
+msgid "An error occurred. Press OK to see detailed information.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:2467
+#, kde-format
+msgid "Error: While deleting %1: Creating backup failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2474
+#, kde-format
+msgid "delete directory recursively( %1 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2476
+#, kde-format
+msgid "delete( %1 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2491
+msgid "Error: delete dir operation failed while trying to read the directory."
+msgstr ""
+
+#: directorymergewindow.cpp:2510
+#, kde-format
+msgid "Error: rmdir( %1 ) operation failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2520
+msgid "Error: delete operation failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2546
+#, kde-format
+msgid "manual merge( %1, %2, %3 -> %4)"
+msgstr ""
+
+#: directorymergewindow.cpp:2549
+msgid ""
+"     Note: After a manual merge the user should continue by pressing F7."
+msgstr ""
+
+#: directorymergewindow.cpp:2572
+#, kde-format
+msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2582
+#, kde-format
+msgid "copyLink( %1 -> %2 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2593
+msgid "Error: copyLink failed: Remote links are not yet supported."
+msgstr ""
+
+#: directorymergewindow.cpp:2599
+msgid "Error: copyLink failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2619
+#, kde-format
+msgid "copy( %1 -> %2 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2645
+#, kde-format
+msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination."
+msgstr ""
+
+#: directorymergewindow.cpp:2651
+#, kde-format
+msgid "rename( %1 -> %2 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2660
+msgid "Error: Rename failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2678
+#, kde-format
+msgid "Error during makeDir of %1. Cannot delete existing file."
+msgstr ""
+
+#: directorymergewindow.cpp:2694
+#, kde-format
+msgid "makeDir( %1 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2704
+msgid "Error while creating directory."
+msgstr ""
+
+#: directorymergewindow.cpp:2729 directorymergewindow.cpp:2839
+msgid "Dest"
+msgstr ""
+
+#: directorymergewindow.cpp:2733 directorymergewindow.cpp:2764
+msgid "Dir"
+msgstr ""
+
+#: directorymergewindow.cpp:2733
+msgid "Type"
+msgstr ""
+
+#: directorymergewindow.cpp:2733
+msgid "Size"
+msgstr ""
+
+#: directorymergewindow.cpp:2734
+msgid "Attr"
+msgstr ""
+
+#: directorymergewindow.cpp:2734
+msgid "Last Modification"
+msgstr ""
+
+#: directorymergewindow.cpp:2734
+msgid "Link-Destination"
+msgstr ""
+
+#: directorymergewindow.cpp:2781
+msgid "not available"
+msgstr ""
+
+#: directorymergewindow.cpp:2801
+msgid "A (Dest): "
+msgstr ""
+
+#: directorymergewindow.cpp:2804
+msgid "A (Base): "
+msgstr ""
+
+#: directorymergewindow.cpp:2810
+msgid "B (Dest): "
+msgstr ""
+
+#: directorymergewindow.cpp:2818
+msgid "C (Dest): "
+msgstr ""
+
+#: directorymergewindow.cpp:2824
+msgid "Dest: "
+msgstr ""
+
+#: directorymergewindow.cpp:2891
+msgid "Save Directory Merge State As..."
+msgstr ""
+
+#: directorymergewindow.cpp:2978
+msgid "Start/Continue Directory Merge"
+msgstr ""
+
+#: directorymergewindow.cpp:2979
+msgid "Run Operation for Current Item"
+msgstr ""
+
+#: directorymergewindow.cpp:2980
+msgid "Compare Selected File"
+msgstr ""
+
+#: directorymergewindow.cpp:2981
+msgid "Merge Current File"
+msgstr ""
+
+#: directorymergewindow.cpp:2981
+msgid ""
+"Merge\n"
+"File"
+msgstr ""
+
+#: directorymergewindow.cpp:2982
+msgid "Fold All Subdirs"
+msgstr ""
+
+#: directorymergewindow.cpp:2983
+msgid "Unfold All Subdirs"
+msgstr ""
+
+#: directorymergewindow.cpp:2987
+msgid "Choose A for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2988
+msgid "Choose B for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2989
+msgid "Choose C for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2990
+msgid "Auto-Choose Operation for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2991
+msgid "No Operation for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2996
+msgid "Show Identical Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2996
+msgid ""
+"Identical\n"
+"Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2997
+msgid "Show Different Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2998
+msgid "Show Files only in A"
+msgstr ""
+
+#: directorymergewindow.cpp:2998
+msgid ""
+"Files\n"
+"only in A"
+msgstr ""
+
+#: directorymergewindow.cpp:2999
+msgid "Show Files only in B"
+msgstr ""
+
+#: directorymergewindow.cpp:2999
+msgid ""
+"Files\n"
+"only in B"
+msgstr ""
+
+#: directorymergewindow.cpp:3000
+msgid "Show Files only in C"
+msgstr ""
+
+#: directorymergewindow.cpp:3000
+msgid ""
+"Files\n"
+"only in C"
+msgstr ""
+
+#: directorymergewindow.cpp:3004
+msgid "Compare Explicitly Selected Files"
+msgstr ""
+
+#: directorymergewindow.cpp:3005
+msgid "Merge Explicitly Selected Files"
+msgstr ""
+
+#: directorymergewindow.cpp:3007 directorymergewindow.cpp:3014
+msgid "Do Nothing"
+msgstr ""
+
+#: directorymergewindow.cpp:3008
+msgid "A"
+msgstr ""
+
+#: directorymergewindow.cpp:3009
+msgid "B"
+msgstr ""
+
+#: directorymergewindow.cpp:3010
+msgid "C"
+msgstr ""
+
+#: directorymergewindow.cpp:3019
+msgid "Delete A && B"
+msgstr ""
+
+#: directorymergewindow.cpp:3022
+msgid "Merge to A && B"
+msgstr ""
+
+#: kdiff3_part.cpp:157 kdiff3_part.cpp:234
+msgid "Couldn't find files for comparison."
+msgstr ""
+
+#: kdiff3_part.cpp:302
+msgid "KDiff3Part"
+msgstr ""
+
+#: kreplacements/kreplacements.h:102
+msgid "Continue"
+msgstr ""
+
+#: kreplacements/kreplacements.h:104 kreplacements/kreplacements.cpp:637
+msgid "Quit"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:183 kreplacements/kreplacements.cpp:345
+msgid "Ok"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:187 kreplacements/kreplacements.cpp:721
+msgid "Help"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:191
+msgid "Defaults"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:4
+#. i18n: ectx: Menu (file)
+#: kreplacements/kreplacements.cpp:302 rc.cpp:12
+msgid "&File"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:303
+msgid "&Edit"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:7
+#. i18n: ectx: Menu (directory)
+#: kreplacements/kreplacements.cpp:304 rc.cpp:15
+msgid "&Directory"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:50
+#. i18n: ectx: Menu (movement)
+#: kreplacements/kreplacements.cpp:307 rc.cpp:24
+msgid "&Movement"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:61
+#. i18n: ectx: Menu (diff)
+#: kreplacements/kreplacements.cpp:308 rc.cpp:27
+msgid "D&iffview"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:73
+#. i18n: ectx: Menu (merge)
+#: kreplacements/kreplacements.cpp:309 rc.cpp:30
+msgid "&Merge"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:95
+#. i18n: ectx: Menu (window)
+#: kreplacements/kreplacements.cpp:310 rc.cpp:33
+msgid "&Window"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:311
+msgid "&Settings"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:312
+msgid "&Help"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:359
+msgid "&About"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:375
+msgid "A&uthor"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:389
+msgid "&Thanks To"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:30
+#. i18n: ectx: Menu (dir_current_merge_menu)
+#: kreplacements/kreplacements.cpp:494 kreplacements/kreplacements.cpp:503
+#: rc.cpp:18
+msgid "Current Item Merge Operation"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:38
+#. i18n: ectx: Menu (dir_current_sync_menu)
+#: kreplacements/kreplacements.cpp:495 kreplacements/kreplacements.cpp:504
+#: rc.cpp:21
+msgid "Current Item Sync Operation"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:603
+msgid "Open"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:612
+msgid "Save"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:629
+msgid "Print..."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:645
+msgid "Cut"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:653
+msgid "Copy"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:661
+msgid "Paste"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:669
+msgid "Select All"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:677
+msgid "Show Toolbar"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:685
+msgid "Show &Statusbar"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:693
+#, kde-format
+msgid "&Configure %1..."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:705 kreplacements/kreplacements.cpp:713
+msgid "About"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:728
+msgid "Find"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:736
+msgid "Find Next"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:756
+msgid "Select Font"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:798
+msgid "Incompatible font."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:799
+msgid "Continue at my own risk"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:799
+msgid "Select another font"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1138
+msgid "For more documentation, see the help-menu or the subdirectory doc."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1141
+msgid "KDiff3-Usage"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1141
+msgid "Ignore"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1141
+msgid "Exit"
+msgstr ""
+
+#: mergeresultwindow.cpp:152 mergeresultwindow.cpp:970
+#: mergeresultwindow.cpp:984 mergeresultwindow.cpp:996
+#: mergeresultwindow.cpp:1008
+#, kde-format
+msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)"
+msgstr ""
+
+#: mergeresultwindow.cpp:301
+msgid ""
+"The output has been modified.\n"
+"If you continue your changes will be lost."
+msgstr ""
+
+#: mergeresultwindow.cpp:830
+msgid "All input files contain the same text."
+msgstr ""
+
+#: mergeresultwindow.cpp:833 mergeresultwindow.cpp:835
+#: mergeresultwindow.cpp:837
+#, kde-format
+msgid "Files %1 and %2 have equal text.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:843
+msgid "Total number of conflicts: "
+msgstr ""
+
+#: mergeresultwindow.cpp:844
+msgid ""
+"\n"
+"Nr of automatically solved conflicts: "
+msgstr ""
+
+#: mergeresultwindow.cpp:845
+msgid ""
+"\n"
+"Nr of unsolved conflicts: "
+msgstr ""
+
+#: mergeresultwindow.cpp:847
+msgid "Conflicts"
+msgstr ""
+
+#: mergeresultwindow.cpp:1714
+msgid "<No src line>"
+msgstr ""
+
+#: mergeresultwindow.cpp:1722
+msgid "<Merge Conflict (Whitespace only)>"
+msgstr ""
+
+#: mergeresultwindow.cpp:1724 mergeresultwindow.cpp:2498
+msgid "<Merge Conflict>"
+msgstr ""
+
+#: mergeresultwindow.cpp:2706
+msgid ""
+"Not all conflicts are solved yet.\n"
+"File not saved.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:2708
+msgid "Conflicts Left"
+msgstr ""
+
+#: mergeresultwindow.cpp:2720
+msgid ""
+"\n"
+"\n"
+"Creating backup failed. File not saved."
+msgstr ""
+
+#: mergeresultwindow.cpp:2720 mergeresultwindow.cpp:2761
+msgid "File Save Error"
+msgstr ""
+
+#: mergeresultwindow.cpp:2761
+msgid "Error while writing."
+msgstr ""
+
+#: mergeresultwindow.cpp:3091
+msgid "Output"
+msgstr ""
+
+#: mergeresultwindow.cpp:3103 mergeresultwindow.cpp:3256
+msgid "[Modified]"
+msgstr ""
+
+#: mergeresultwindow.cpp:3110
+msgid "Encoding for saving"
+msgstr ""
+
+#: mergeresultwindow.cpp:3203 mergeresultwindow.cpp:3205
+#: mergeresultwindow.cpp:3207
+msgid "Codec from"
+msgstr ""
+
+#. i18n: file: kdiff3_part.rc:4
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:3
+msgid "&KDiff3"
+msgstr ""
+
+#. i18n: file: kdiff3_part.rc:13
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:6
+msgid "Configure KDiff3"
+msgstr ""
+
+#. i18n: file: kdiff3_part.rc:16
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:9
+msgid "KDiff3"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:106
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:36
+msgid "Main Toolbar"
+msgstr ""
+
+#: rc.cpp:37
+msgctxt "NAME OF TRANSLATORS"
+msgid "Your names"
+msgstr ""
+
+#: rc.cpp:38
+msgctxt "EMAIL OF TRANSLATORS"
+msgid "Your emails"
+msgstr ""
diff --git a/po/kdiff3plugin.pot b/po/kdiff3plugin.pot
new file mode 100644 (file)
index 0000000..07c6ece
--- /dev/null
@@ -0,0 +1,80 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR This_file_is_part_of_KDE
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-08-05 08:32+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc@kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: kdiff3plugin.cpp:107
+msgid "KDiff3"
+msgstr ""
+
+#: kdiff3plugin.cpp:114
+#, kde-format
+msgid "Compare with %1"
+msgstr ""
+
+#: kdiff3plugin.cpp:120
+#, kde-format
+msgid "Merge with %1"
+msgstr ""
+
+#: kdiff3plugin.cpp:126
+#, kde-format
+msgid "Save '%1' for later"
+msgstr ""
+
+#: kdiff3plugin.cpp:132
+msgid "3-way merge with base"
+msgstr ""
+
+#: kdiff3plugin.cpp:139
+msgid "Compare with ..."
+msgstr ""
+
+#: kdiff3plugin.cpp:149
+msgid "Clear list"
+msgstr ""
+
+#: kdiff3plugin.cpp:157
+msgid "Compare"
+msgstr ""
+
+#: kdiff3plugin.cpp:163
+msgid "3 way comparison"
+msgstr ""
+
+#: kdiff3plugin.cpp:167
+msgid "About KDiff3 menu plugin ..."
+msgstr ""
+
+#: kdiff3plugin.cpp:269
+msgid ""
+"KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+
+#: kdiff3plugin.cpp:271
+msgid ""
+"Using the contextmenu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else \"Save\" the first file for later. It "
+"will appear in the \"Compare With ...\" submenu. Then use \"Compare With\" "
+"on second file.\n"
+"For a 3-way merge first \"Save\" the base file, then the branch to merge and "
+"choose \"3-way merge with base\" on the other branch which will be used as "
+"destination.\n"
+"Same also applies to directory comparison and merge."
+msgstr ""
diff --git a/po/lt/CMakeLists.txt b/po/lt/CMakeLists.txt
new file mode 100644 (file)
index 0000000..ed0567c
--- /dev/null
@@ -0,0 +1,2 @@
+file(GLOB _po_files *.po)
+GETTEXT_PROCESS_PO_FILES(lt ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
diff --git a/po/lt/kdiff3.po b/po/lt/kdiff3.po
new file mode 100644 (file)
index 0000000..5fc6ed5
--- /dev/null
@@ -0,0 +1,3022 @@
+# Lithuanian translation of the KDiff3 pakckage
+#
+# Remigijus Jarmalavičius <remigijus@jarmalavicius.lt>, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-07-28 19:13+0300\n"
+"Last-Translator: Remigijus Jarmalavičius <remigijus@jarmalavicius.lt>\n"
+"Language-Team: Lithuanian <kde-i18n-lt@kde.org>\n"
+"Language: lt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : n%10==1 && n%100!=11 ? 1 : n"
+"%10>=2 && (n%100<10 || n%100>=20) ? 2 : 3);\n"
+"X-Generator: Lokalize 1.2\n"
+
+#: kreplacements/kreplacements.h:105
+msgid "Continue"
+msgstr "Tęsti"
+
+#: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158
+#: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512
+msgid "Cancel"
+msgstr "Atšaukti"
+
+#: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631
+msgid "Quit"
+msgstr "Išjungti"
+
+#: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339
+msgid "Ok"
+msgstr "Gerai"
+
+#: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715
+msgid "Help"
+msgstr "Pagalba"
+
+#: kreplacements/kreplacements.cpp:185
+msgid "Defaults"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:4
+#. i18n: ectx: Menu (file)
+#: kreplacements/kreplacements.cpp:296 rc.cpp:14
+msgid "&File"
+msgstr "&Failas"
+
+#: kreplacements/kreplacements.cpp:297
+msgid "&Edit"
+msgstr "&Keisti"
+
+#. i18n: file: kdiff3_shell.rc:7
+#. i18n: ectx: Menu (directory)
+#: kreplacements/kreplacements.cpp:298 rc.cpp:17
+msgid "&Directory"
+msgstr "&Aplankas"
+
+#. i18n: file: kdiff3_shell.rc:50
+#. i18n: ectx: Menu (movement)
+#: kreplacements/kreplacements.cpp:301 rc.cpp:26
+msgid "&Movement"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:61
+#. i18n: ectx: Menu (diff)
+#: kreplacements/kreplacements.cpp:302 rc.cpp:29
+msgid "D&iffview"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:73
+#. i18n: ectx: Menu (merge)
+#: kreplacements/kreplacements.cpp:303 rc.cpp:32
+msgid "&Merge"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:95
+#. i18n: ectx: Menu (window)
+#: kreplacements/kreplacements.cpp:304 rc.cpp:35
+msgid "&Window"
+msgstr "&Langas"
+
+#: kreplacements/kreplacements.cpp:305
+msgid "&Settings"
+msgstr "&Nustatymai"
+
+#: kreplacements/kreplacements.cpp:306
+msgid "&Help"
+msgstr "&Pagalba"
+
+#: kreplacements/kreplacements.cpp:353
+msgid "&About"
+msgstr "&Apie"
+
+#: kreplacements/kreplacements.cpp:369
+msgid "A&uthor"
+msgstr "A&utorius"
+
+#: kreplacements/kreplacements.cpp:383
+msgid "&Thanks To"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:30
+#. i18n: ectx: Menu (dir_current_merge_menu)
+#: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497
+#: rc.cpp:20
+msgid "Current Item Merge Operation"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:38
+#. i18n: ectx: Menu (dir_current_sync_menu)
+#: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498
+#: rc.cpp:23
+msgid "Current Item Sync Operation"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:597
+msgid "Open"
+msgstr "Atverti"
+
+#: kreplacements/kreplacements.cpp:606
+msgid "Save"
+msgstr "Išsaugoti"
+
+#: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720
+msgid "Save As..."
+msgstr "Įrašyti kaip..."
+
+#: kreplacements/kreplacements.cpp:623
+msgid "Print..."
+msgstr "Spausdinti..."
+
+#: kreplacements/kreplacements.cpp:639
+msgid "Cut"
+msgstr "Iškirpti"
+
+#: kreplacements/kreplacements.cpp:647
+msgid "Copy"
+msgstr "Kopijuoti"
+
+#: kreplacements/kreplacements.cpp:655
+msgid "Paste"
+msgstr "Padėti"
+
+#: kreplacements/kreplacements.cpp:663
+msgid "Select All"
+msgstr "Pažymėti viską"
+
+#: kreplacements/kreplacements.cpp:671
+msgid "Show Toolbar"
+msgstr "Rodyti įrankinę"
+
+#: kreplacements/kreplacements.cpp:679
+msgid "Show &Status Bar"
+msgstr "Rodyti &būsenos juostą"
+
+#: kreplacements/kreplacements.cpp:687
+#, kde-format
+msgid "&Configure %1..."
+msgstr "&Konfigūruoti %1..."
+
+#: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707
+msgid "About"
+msgstr "Apie"
+
+#: kreplacements/kreplacements.cpp:722
+msgid "Find"
+msgstr "Rasti"
+
+#: kreplacements/kreplacements.cpp:730
+msgid "Find Next"
+msgstr "Rasti kitą"
+
+#: kreplacements/kreplacements.cpp:750
+msgid "Select Font"
+msgstr "Pasirinkite šriftą"
+
+#: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676
+msgid ""
+"You selected a variable width font.\n"
+"\n"
+"Because this program doesn't handle variable width fonts\n"
+"correctly, you might experience problems while editing.\n"
+"\n"
+"Do you want to continue or do you want to select another font."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:792
+msgid "Incompatible font."
+msgstr "Nesuderinamas šriftas."
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Continue at my own risk"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Select another font"
+msgstr "Pasirinkite kitą šriftą"
+
+#: kreplacements/kreplacements.cpp:1134
+msgid "For more documentation, see the help-menu or the subdirectory doc."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "KDiff3-Usage"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Ignore"
+msgstr "Ignoruoti"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Exit"
+msgstr "Išeiti"
+
+#: diff.cpp:251
+msgid "Writing clipboard data to temp file failed."
+msgstr ""
+
+#: diff.cpp:255
+msgid "From Clipboard"
+msgstr "Iš iškarpinės"
+
+#: diff.cpp:471
+msgid "Expecting space after closing quotation mark."
+msgstr ""
+
+#: diff.cpp:474
+msgid "Not matching quotation marks."
+msgstr ""
+
+#: diff.cpp:496
+msgid "Unexpected quotation mark within argument."
+msgstr ""
+
+#: diff.cpp:503
+msgid "No program specified."
+msgstr ""
+
+#: diff.cpp:605
+#, kde-format
+msgid ""
+"Preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The preprocessing command will be disabled now."
+msgstr ""
+
+#: diff.cpp:653
+#, kde-format
+msgid ""
+"The line-matching-preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The line-matching-preprocessing command will be disabled now."
+msgstr ""
+
+#: diff.cpp:1776 diff.cpp:1790
+msgid ""
+"Data loss error:\n"
+"If it is reproducible please contact the author.\n"
+msgstr ""
+
+#: diff.cpp:1778 diff.cpp:1792
+msgid "Severe Internal Error"
+msgstr ""
+
+#: directorymergewindow.cpp:136
+msgid "Mix of links and normal files."
+msgstr ""
+
+#: directorymergewindow.cpp:143
+msgid "Link: "
+msgstr ""
+
+#: directorymergewindow.cpp:151
+msgid "Size. "
+msgstr "Dydis. "
+
+#: directorymergewindow.cpp:164 directorymergewindow.cpp:174
+msgid "Date & Size: "
+msgstr ""
+
+#: directorymergewindow.cpp:184 directorymergewindow.cpp:190
+#, kde-format
+msgid "Creating temp copy of %1 failed."
+msgstr ""
+
+#: directorymergewindow.cpp:201 directorymergewindow.cpp:209
+#, kde-format
+msgid "Opening %1 failed."
+msgstr ""
+
+#: directorymergewindow.cpp:213
+msgid "Comparing file..."
+msgstr ""
+
+#: directorymergewindow.cpp:223 directorymergewindow.cpp:229
+#, kde-format
+msgid "Error reading from %1"
+msgstr ""
+
+#: directorymergewindow.cpp:358
+msgid "Name"
+msgstr "Pavadinimas"
+
+#: directorymergewindow.cpp:358
+msgid "Operation"
+msgstr "Operacija"
+
+#: directorymergewindow.cpp:358
+msgid "Status"
+msgstr "Būsena"
+
+#: directorymergewindow.cpp:359
+msgid "Unsolved"
+msgstr ""
+
+#: directorymergewindow.cpp:359
+msgid "Solved"
+msgstr ""
+
+#: directorymergewindow.cpp:359
+msgid "Nonwhite"
+msgstr ""
+
+#: directorymergewindow.cpp:359
+msgid "White"
+msgstr ""
+
+#: directorymergewindow.cpp:388
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort "
+"the merge and rescan the directory?"
+msgstr ""
+
+#: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655
+#: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823
+msgid "Warning"
+msgstr "Dėmesio"
+
+#: directorymergewindow.cpp:390 directorymergewindow.cpp:2965
+msgid "Rescan"
+msgstr ""
+
+#: directorymergewindow.cpp:391 pdiff.cpp:1081
+msgid "Continue Merging"
+msgstr ""
+
+#: directorymergewindow.cpp:548
+msgid "Opening of directories failed:"
+msgstr ""
+
+#: directorymergewindow.cpp:551
+#, kde-format
+msgid "Dir A \"%1\" does not exist or is not a directory.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:554
+#, kde-format
+msgid "Dir B \"%1\" does not exist or is not a directory.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:557
+#, kde-format
+msgid "Dir C \"%1\" does not exist or is not a directory.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:559
+msgid "Directory Open Error"
+msgstr ""
+
+#: directorymergewindow.cpp:567
+msgid ""
+"The destination directory must not be the same as A or B when three "
+"directories are merged.\n"
+"Check again before continuing."
+msgstr ""
+
+#: directorymergewindow.cpp:569
+msgid "Parameter Warning"
+msgstr ""
+
+#: directorymergewindow.cpp:574
+msgid "Scanning directories..."
+msgstr ""
+
+#: directorymergewindow.cpp:607
+msgid "Reading Directory A"
+msgstr ""
+
+#: directorymergewindow.cpp:629
+msgid "Reading Directory B"
+msgstr ""
+
+#: directorymergewindow.cpp:651
+msgid "Reading Directory C"
+msgstr ""
+
+#: directorymergewindow.cpp:677
+msgid "Some subdirectories were not readable in"
+msgstr ""
+
+#: directorymergewindow.cpp:682
+msgid "Check the permissions of the subdirectories."
+msgstr ""
+
+#: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737
+#: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233
+#: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328
+#, fuzzy
+msgid "Ready."
+msgstr ""
+"#-#-#-#-#  kfindpart.po (kfindpart)  #-#-#-#-#\n"
+"Pasiruošęs\n"
+"#-#-#-#-#  kfilereplace.po (kfilereplace)  #-#-#-#-#\n"
+"Pasirengęs.\n"
+"#-#-#-#-#  k3b.po (k3b)  #-#-#-#-#\n"
+"Pasirengęs.\n"
+"#-#-#-#-#  pwmanager.po (pwmanager)  #-#-#-#-#\n"
+"Pasirengęs.\n"
+"#-#-#-#-#  kdat.po (kdat)  #-#-#-#-#\n"
+"Pasiruošęs.\n"
+"#-#-#-#-#  kcron.po (kcron)  #-#-#-#-#\n"
+"Pasiruošęs.\n"
+"#-#-#-#-#  ksayit.po (ksayit)  #-#-#-#-#\n"
+"Pasirengęs.\n"
+"#-#-#-#-#  kmouth.po (kmouth)  #-#-#-#-#\n"
+"Pasirengęs.\n"
+"#-#-#-#-#  kmrml.po (kmrml)  #-#-#-#-#\n"
+"Pasirengęs.\n"
+"#-#-#-#-#  kcoloredit.po (kcoloredit)  #-#-#-#-#\n"
+"Pasiruošęs.\n"
+"#-#-#-#-#  kverbos.po (kverbos)  #-#-#-#-#\n"
+"Pasirengęs.\n"
+"#-#-#-#-#  kmail.po (kmail)  #-#-#-#-#\n"
+"Pasirengęs.\n"
+"#-#-#-#-#  ksync.po (ksync)  #-#-#-#-#\n"
+"Pasirengęs.\n"
+"#-#-#-#-#  dub.po (dub)  #-#-#-#-#\n"
+"Pasirengęs.\n"
+"#-#-#-#-#  kopete.po (kopete)  #-#-#-#-#\n"
+"Pasirengęs."
+
+#: directorymergewindow.cpp:735
+msgid "Directory Comparison Status"
+msgstr ""
+
+#: directorymergewindow.cpp:736
+msgid "Number of subdirectories:"
+msgstr ""
+
+#: directorymergewindow.cpp:737
+msgid "Number of equal files:"
+msgstr ""
+
+#: directorymergewindow.cpp:738
+msgid "Number of different files:"
+msgstr ""
+
+#: directorymergewindow.cpp:741
+msgid "Number of manual merges:"
+msgstr ""
+
+#: directorymergewindow.cpp:912
+msgid "This affects all merge operations."
+msgstr ""
+
+#: directorymergewindow.cpp:913
+msgid "Changing All Merge Operations"
+msgstr ""
+
+#: directorymergewindow.cpp:1312
+msgid "Processing "
+msgstr ""
+
+#: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742
+msgid "To do."
+msgstr ""
+
+#: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996
+msgid "Copy A to B"
+msgstr ""
+
+#: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997
+msgid "Copy B to A"
+msgstr ""
+
+#: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998
+msgid "Delete A"
+msgstr ""
+
+#: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999
+msgid "Delete B"
+msgstr ""
+
+#: directorymergewindow.cpp:1814
+msgid "Delete A & B"
+msgstr ""
+
+#: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001
+msgid "Merge to A"
+msgstr ""
+
+#: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002
+msgid "Merge to B"
+msgstr ""
+
+#: directorymergewindow.cpp:1817
+msgid "Merge to A & B"
+msgstr ""
+
+#: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993
+msgid "Delete (if exists)"
+msgstr ""
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+#: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869
+msgid "Merge"
+msgstr "Apjungti"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+msgid "Merge (manual)"
+msgstr ""
+
+#: directorymergewindow.cpp:1824
+msgid "Error: Conflicting File Types"
+msgstr ""
+
+#: directorymergewindow.cpp:1825
+msgid "Error: Changed and Deleted"
+msgstr ""
+
+#: directorymergewindow.cpp:1826
+msgid "Error: Dates are equal but files are not."
+msgstr ""
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906
+msgid "This operation is currently not possible."
+msgstr ""
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174
+msgid "Operation Not Possible"
+msgstr ""
+
+#: directorymergewindow.cpp:1945
+msgid ""
+"This should never happen: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"If you know how to reproduce this, please contact the program author."
+msgstr ""
+
+#: directorymergewindow.cpp:1945
+msgid "Program Error"
+msgstr ""
+
+#: directorymergewindow.cpp:1956
+msgid "An error occurred while copying.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025
+#: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105
+#: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123
+#: directorymergewindow.cpp:2374
+msgid "Error"
+msgstr "Klaida"
+
+#: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375
+msgid "Merge Error"
+msgstr ""
+
+#: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380
+msgid "Error."
+msgstr "Klaida."
+
+#: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272
+#: directorymergewindow.cpp:2312
+msgid "Done."
+msgstr "Baigta."
+
+#: directorymergewindow.cpp:1990
+msgid "Not saved."
+msgstr ""
+
+#: directorymergewindow.cpp:2025
+msgid "Unknown merge operation. (This must never happen!)"
+msgstr ""
+
+#: directorymergewindow.cpp:2057
+msgid "Unknown merge operation."
+msgstr ""
+
+#: directorymergewindow.cpp:2072
+msgid ""
+"The merge is about to begin.\n"
+"\n"
+"Choose \"Do it\" if you have read the instructions and know what you are "
+"doing.\n"
+"Choosing \"Simulate it\" will tell you what would happen.\n"
+"\n"
+"Be aware that this program still has beta status and there is NO WARRANTY "
+"whatsoever! Make backups of your vital data!"
+msgstr ""
+
+#: directorymergewindow.cpp:2077
+msgid "Starting Merge"
+msgstr ""
+
+#: directorymergewindow.cpp:2078
+msgid "Do It"
+msgstr ""
+
+#: directorymergewindow.cpp:2079
+msgid "Simulate It"
+msgstr ""
+
+#: directorymergewindow.cpp:2105
+msgid ""
+"The highlighted item has a different type in the different directories. "
+"Select what to do."
+msgstr ""
+
+#: directorymergewindow.cpp:2114
+msgid ""
+"The modification dates of the file are equal but the files are not. Select "
+"what to do."
+msgstr ""
+
+#: directorymergewindow.cpp:2123
+msgid ""
+"The highlighted item was changed in one directory and deleted in the other. "
+"Select what to do."
+msgstr ""
+
+#: directorymergewindow.cpp:2174
+msgid ""
+"This operation is currently not possible because directory merge is "
+"currently running."
+msgstr ""
+
+#: directorymergewindow.cpp:2234
+msgid ""
+"There was an error in the last step.\n"
+"Do you want to continue with the item that caused the error or do you want "
+"to skip this item?"
+msgstr ""
+
+#: directorymergewindow.cpp:2236
+msgid "Continue merge after an error"
+msgstr ""
+
+#: directorymergewindow.cpp:2237
+msgid "Continue With Last Item"
+msgstr ""
+
+#: directorymergewindow.cpp:2238
+msgid "Skip Item"
+msgstr ""
+
+#: directorymergewindow.cpp:2272
+msgid "Skipped."
+msgstr ""
+
+#: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493
+msgid "In progress..."
+msgstr ""
+
+#: directorymergewindow.cpp:2327
+msgid "Merge operation complete."
+msgstr ""
+
+#: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330
+msgid "Merge Complete"
+msgstr ""
+
+#: directorymergewindow.cpp:2340
+msgid ""
+"Simulated merge complete: Check if you agree with the proposed operations."
+msgstr ""
+
+#: directorymergewindow.cpp:2374
+msgid "An error occurred. Press OK to see detailed information.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:2406
+#, kde-format
+msgid "Error: While deleting %1: Creating backup failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2413
+#, kde-format
+msgid "delete directory recursively( %1 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2415
+#, kde-format
+msgid "delete( %1 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2430
+msgid "Error: delete dir operation failed while trying to read the directory."
+msgstr ""
+
+#: directorymergewindow.cpp:2449
+#, kde-format
+msgid "Error: rmdir( %1 ) operation failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2459
+msgid "Error: delete operation failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2485
+#, kde-format
+msgid "manual merge( %1, %2, %3 -> %4)"
+msgstr ""
+
+#: directorymergewindow.cpp:2488
+msgid ""
+"     Note: After a manual merge the user should continue by pressing F7."
+msgstr ""
+
+#: directorymergewindow.cpp:2513
+#, kde-format
+msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2522
+#, kde-format
+msgid "copyLink( %1 -> %2 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2533
+msgid "Error: copyLink failed: Remote links are not yet supported."
+msgstr ""
+
+#: directorymergewindow.cpp:2539
+msgid "Error: copyLink failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2564
+#, kde-format
+msgid "copy( %1 -> %2 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2590
+#, kde-format
+msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination."
+msgstr ""
+
+#: directorymergewindow.cpp:2596
+#, kde-format
+msgid "rename( %1 -> %2 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2605
+msgid "Error: Rename failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2623
+#, kde-format
+msgid "Error during makeDir of %1. Cannot delete existing file."
+msgstr ""
+
+#: directorymergewindow.cpp:2639
+#, kde-format
+msgid "makeDir( %1 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2649
+msgid "Error while creating directory."
+msgstr ""
+
+#: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784
+msgid "Dest"
+msgstr ""
+
+#: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709
+msgid "Dir"
+msgstr ""
+
+#: directorymergewindow.cpp:2678
+msgid "Type"
+msgstr "Tipas"
+
+#: directorymergewindow.cpp:2678
+msgid "Size"
+msgstr "Dydis"
+
+#: directorymergewindow.cpp:2679
+msgid "Attr"
+msgstr ""
+
+#: directorymergewindow.cpp:2679
+msgid "Last Modification"
+msgstr ""
+
+#: directorymergewindow.cpp:2679
+msgid "Link-Destination"
+msgstr ""
+
+#: directorymergewindow.cpp:2709 difftextwindow.cpp:401
+msgid "File"
+msgstr "Failas"
+
+#: directorymergewindow.cpp:2726
+msgid "not available"
+msgstr ""
+
+#: directorymergewindow.cpp:2746
+msgid "A (Dest): "
+msgstr ""
+
+#: directorymergewindow.cpp:2749
+msgid "A (Base): "
+msgstr ""
+
+#: directorymergewindow.cpp:2755
+msgid "B (Dest): "
+msgstr ""
+
+#: directorymergewindow.cpp:2763
+msgid "C (Dest): "
+msgstr ""
+
+#: directorymergewindow.cpp:2769
+msgid "Dest: "
+msgstr ""
+
+#: directorymergewindow.cpp:2836
+msgid "Save Directory Merge State As..."
+msgstr ""
+
+#: directorymergewindow.cpp:2959
+msgid "Start/Continue Directory Merge"
+msgstr ""
+
+#: directorymergewindow.cpp:2960
+msgid "Run Operation for Current Item"
+msgstr ""
+
+#: directorymergewindow.cpp:2961
+msgid "Compare Selected File"
+msgstr ""
+
+#: directorymergewindow.cpp:2962
+msgid "Merge Current File"
+msgstr ""
+
+#: directorymergewindow.cpp:2962
+msgid ""
+"Merge\n"
+"File"
+msgstr ""
+
+#: directorymergewindow.cpp:2963
+msgid "Fold All Subdirs"
+msgstr ""
+
+#: directorymergewindow.cpp:2964
+msgid "Unfold All Subdirs"
+msgstr ""
+
+#: directorymergewindow.cpp:2968
+msgid "Choose A for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2969
+msgid "Choose B for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2970
+msgid "Choose C for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2971
+msgid "Auto-Choose Operation for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2972
+msgid "No Operation for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2977
+msgid "Show Identical Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2977
+msgid ""
+"Identical\n"
+"Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2978
+msgid "Show Different Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2979
+msgid "Show Files only in A"
+msgstr ""
+
+#: directorymergewindow.cpp:2979
+msgid ""
+"Files\n"
+"only in A"
+msgstr ""
+
+#: directorymergewindow.cpp:2980
+msgid "Show Files only in B"
+msgstr ""
+
+#: directorymergewindow.cpp:2980
+msgid ""
+"Files\n"
+"only in B"
+msgstr ""
+
+#: directorymergewindow.cpp:2981
+msgid "Show Files only in C"
+msgstr ""
+
+#: directorymergewindow.cpp:2981
+msgid ""
+"Files\n"
+"only in C"
+msgstr ""
+
+#: directorymergewindow.cpp:2985
+msgid "Compare Explicitly Selected Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2986
+msgid "Merge Explicitly Selected Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995
+msgid "Do Nothing"
+msgstr "Nieko nedaryti"
+
+#: directorymergewindow.cpp:2989
+msgid "A"
+msgstr "A"
+
+#: directorymergewindow.cpp:2990
+msgid "B"
+msgstr "B"
+
+#: directorymergewindow.cpp:2991
+msgid "C"
+msgstr "C"
+
+#: directorymergewindow.cpp:3000
+msgid "Delete A && B"
+msgstr "Trinti A ir B"
+
+#: directorymergewindow.cpp:3003
+msgid "Merge to A && B"
+msgstr ""
+
+#: main.cpp:74 main.cpp:76
+msgid "Ignored. (User defined.)"
+msgstr ""
+
+#: main.cpp:162
+msgid "kdiff3"
+msgstr "kdiff3"
+
+#: main.cpp:164
+msgid "Tool for Comparison and Merge of Files and Directories"
+msgstr ""
+
+#: main.cpp:165
+#, fuzzy
+#| msgid "(c) 2002-2008 Joachim Eibl"
+msgid "(c) 2002-2011 Joachim Eibl"
+msgstr "(c) 2002-2008 Joachim Eibl"
+
+#: main.cpp:172 kdiff3_part.cpp:303
+msgid "Joachim Eibl"
+msgstr "Joachim Eibl"
+
+#: main.cpp:173
+msgid "Eike Sauer"
+msgstr "Eike Sauer"
+
+#: main.cpp:173
+msgid "Bugfixes, Debian package maintainer"
+msgstr ""
+
+#: main.cpp:174
+msgid "Sebastien Fricker"
+msgstr "Sebastien Fricker"
+
+#: main.cpp:174
+msgid "Windows installer"
+msgstr ""
+
+#: main.cpp:175
+msgid "Stephan Binner"
+msgstr "Stephan Binner"
+
+#: main.cpp:175
+msgid "i18n-help"
+msgstr ""
+
+#: main.cpp:176
+msgid "Stefan Partheymueller"
+msgstr "Stefan Partheymueller"
+
+#: main.cpp:176
+msgid "Clipboard-patch"
+msgstr ""
+
+#: main.cpp:177
+msgid "David Faure"
+msgstr "David Faure"
+
+#: main.cpp:177
+msgid "KIO-Help"
+msgstr ""
+
+#: main.cpp:178
+msgid "Bernd Gehrmann"
+msgstr "Bernd Gehrmann"
+
+#: main.cpp:178
+msgid "Class CvsIgnoreList from Cervisia"
+msgstr ""
+
+#: main.cpp:179
+msgid "Andre Woebbeking"
+msgstr "Andre Woebbeking"
+
+#: main.cpp:179
+msgid "Class StringMatcher"
+msgstr ""
+
+#: main.cpp:180
+msgid "Michael Denio"
+msgstr "Michael Denio"
+
+#: main.cpp:180
+msgid "Directory Equality-Coloring patch"
+msgstr ""
+
+#: main.cpp:181
+msgid "Manfred Koehler"
+msgstr "Manfred Koehler"
+
+#: main.cpp:181
+msgid "Fix for slow startup on Windows"
+msgstr ""
+
+#: main.cpp:182
+msgid "Sergey Zorin"
+msgstr "Sergey Zorin"
+
+#: main.cpp:182
+msgid "Diff Ext for Windows"
+msgstr ""
+
+#: main.cpp:183
+msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+
+#: main.cpp:183
+msgid "GNU-Diffutils"
+msgstr ""
+
+#: main.cpp:184
+msgid "Tino Boellsterling, Timothy Mee"
+msgstr "Tino Boellsterling, Timothy Mee"
+
+#: main.cpp:184
+msgid "Intensive test, use and feedback"
+msgstr ""
+
+#: main.cpp:185
+msgid "Michael Schmidt"
+msgstr "Michael Schmidt"
+
+#: main.cpp:185
+msgid "Mac support"
+msgstr "Mac palaikymas"
+
+#: main.cpp:186
+msgid "Valentin Rusu"
+msgstr "Valentin Rusu"
+
+#: main.cpp:186 main.cpp:187
+#, fuzzy
+msgid "KDE4 porting"
+msgstr "Nieko"
+
+#: main.cpp:187
+msgid "Albert Astals Cid"
+msgstr "Albert Astals Cid"
+
+#: main.cpp:188
+msgid "Silvan Scherrer"
+msgstr ""
+
+#: main.cpp:188
+msgid "OS2 port"
+msgstr ""
+
+#: main.cpp:190
+msgid "+ Many thanks to those who reported bugs and contributed ideas!"
+msgstr ""
+
+#: main.cpp:196
+msgid "Merge the input."
+msgstr ""
+
+#: main.cpp:197
+msgid "Explicit base file. For compatibility with certain tools."
+msgstr ""
+
+#: main.cpp:198
+msgid "Output file. Implies -m. E.g.: -o newfile.txt"
+msgstr ""
+
+#: main.cpp:199
+msgid "Output file, again. (For compatibility with certain tools.)"
+msgstr ""
+
+#: main.cpp:200
+msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)"
+msgstr ""
+
+#: main.cpp:201
+msgid "Don't solve conflicts automatically. (For compatibility...)"
+msgstr ""
+
+#: main.cpp:202
+msgid "Visible name replacement for input file 1 (base)."
+msgstr ""
+
+#: main.cpp:203
+msgid "Visible name replacement for input file 2."
+msgstr ""
+
+#: main.cpp:204
+msgid "Visible name replacement for input file 3."
+msgstr ""
+
+#: main.cpp:205
+msgid "Alternative visible name replacement. Supply this once for every input."
+msgstr ""
+
+#: main.cpp:206
+msgid ""
+"Override a config setting. Use once for every setting. E.g.: --cs "
+"\"AutoAdvance=1\""
+msgstr ""
+
+#: main.cpp:207
+msgid "Show list of config settings and current values."
+msgstr ""
+
+#: main.cpp:208
+msgid "Use a different config file."
+msgstr ""
+
+#: main.cpp:211
+msgid "file1 to open (base, if not specified via --base)"
+msgstr ""
+
+#: main.cpp:212
+msgid "file2 to open"
+msgstr ""
+
+#: main.cpp:213
+msgid "file3 to open"
+msgstr ""
+
+#: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976
+#: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002
+#: mergeresultwindow.cpp:1014
+#, kde-format
+msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)"
+msgstr ""
+
+#: mergeresultwindow.cpp:303
+msgid ""
+"The output has been modified.\n"
+"If you continue your changes will be lost."
+msgstr ""
+
+#: mergeresultwindow.cpp:834 pdiff.cpp:532
+msgid "All input files are binary equal."
+msgstr ""
+
+#: mergeresultwindow.cpp:836
+msgid "All input files contain the same text."
+msgstr ""
+
+#: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840
+#: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540
+#, kde-format
+msgid "Files %1 and %2 are binary equal.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841
+#: mergeresultwindow.cpp:843
+#, kde-format
+msgid "Files %1 and %2 have equal text.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:849
+msgid "Total number of conflicts: "
+msgstr ""
+
+#: mergeresultwindow.cpp:850
+msgid ""
+"\n"
+"Nr of automatically solved conflicts: "
+msgstr ""
+
+#: mergeresultwindow.cpp:851
+msgid ""
+"\n"
+"Nr of unsolved conflicts: "
+msgstr ""
+
+#: mergeresultwindow.cpp:853
+msgid "Conflicts"
+msgstr "Konfliktai"
+
+#: mergeresultwindow.cpp:1728
+msgid "<No src line>"
+msgstr ""
+
+#: mergeresultwindow.cpp:1736
+msgid "<Merge Conflict (Whitespace only)>"
+msgstr ""
+
+#: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517
+msgid "<Merge Conflict>"
+msgstr ""
+
+#: mergeresultwindow.cpp:2725
+msgid ""
+"Not all conflicts are solved yet.\n"
+"File not saved.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736
+msgid "Conflicts Left"
+msgstr ""
+
+#: mergeresultwindow.cpp:2734
+msgid ""
+"There is a line end style conflict. Please choose the line end style "
+"manually.\n"
+"File not saved.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:2748
+msgid ""
+"\n"
+"\n"
+"Creating backup failed. File not saved."
+msgstr ""
+
+#: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792
+msgid "File Save Error"
+msgstr "Failo išsaugojimo klaida"
+
+#: mergeresultwindow.cpp:2792
+msgid "Error while writing."
+msgstr ""
+
+#: mergeresultwindow.cpp:3122
+msgid "Output"
+msgstr "Išvestis"
+
+#: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314
+msgid "[Modified]"
+msgstr ""
+
+#: mergeresultwindow.cpp:3141
+msgid "Encoding for saving"
+msgstr ""
+
+#: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737
+#: optiondialog.cpp:762
+msgid "Line end style:"
+msgstr "Eilutės pabaigos stilius:"
+
+#: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767
+msgid "Unix"
+msgstr "Unix"
+
+#: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737
+msgid "DOS"
+msgstr "DOS"
+
+#: mergeresultwindow.cpp:3229
+msgid "Conflict"
+msgstr "Konfliktas"
+
+#: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263
+#: mergeresultwindow.cpp:3265
+msgid "Codec from"
+msgstr ""
+
+#: kdiff3_part.cpp:157 kdiff3_part.cpp:234
+msgid "Couldn't find files for comparison."
+msgstr ""
+
+#: kdiff3_part.cpp:302
+msgid "KDiff3Part"
+msgstr ""
+
+#: fileaccess.cpp:612
+msgid ""
+"While trying to make a backup, deleting an older backup failed. \n"
+"Filename: "
+msgstr ""
+
+#: fileaccess.cpp:619
+msgid ""
+"While trying to make a backup, renaming failed. \n"
+"Filenames: "
+msgstr ""
+
+#: fileaccess.cpp:643
+#, kde-format
+msgid "Getting file status: %1"
+msgstr ""
+
+#: fileaccess.cpp:686
+#, kde-format
+msgid "Reading file: %1"
+msgstr "Skaitomas failas: %1"
+
+#: fileaccess.cpp:723
+#, kde-format
+msgid "Writing file: %1"
+msgstr "Rašomas failas: %1"
+
+#: fileaccess.cpp:751
+msgid "Out of memory"
+msgstr "Nepakanka atminties"
+
+#: fileaccess.cpp:786
+#, kde-format
+msgid "Making directory: %1"
+msgstr "Kuriamas aplankas: %1"
+
+#: fileaccess.cpp:806
+#, kde-format
+msgid "Removing directory: %1"
+msgstr "Šalinamas aplankas: %1"
+
+#: fileaccess.cpp:821
+#, kde-format
+msgid "Removing file: %1"
+msgstr "Šalinamas failas: %1"
+
+#: fileaccess.cpp:837
+#, kde-format
+msgid "Creating symbolic link: %1 -> %2"
+msgstr "Kuriama simbolinė nuoroda: %1 -> %2"
+
+#: fileaccess.cpp:864
+#, kde-format
+msgid "Renaming file: %1 -> %2"
+msgstr "Pervadinamas failas: %1 -> %2"
+
+#: fileaccess.cpp:897
+#, kde-format
+msgid "Copying file: %1 -> %2"
+msgstr "Kopijuojamas failas: %1 -> %2"
+
+#: fileaccess.cpp:911
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for reading failed. Filename: "
+"%1"
+msgstr ""
+
+#: fileaccess.cpp:917
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for writing failed. Filename: "
+"%1"
+msgstr ""
+
+#: fileaccess.cpp:932
+#, kde-format
+msgid "Error during file copy operation: Reading failed. Filename: %1"
+msgstr ""
+
+#: fileaccess.cpp:941
+#, kde-format
+msgid "Error during file copy operation: Writing failed. Filename: %1"
+msgstr ""
+
+#: fileaccess.cpp:1231
+msgid "Reading directory: "
+msgstr "Skaitomas aplankas:"
+
+#: fileaccess.cpp:1355
+#, kde-format
+msgid "Listing directory: %1"
+msgstr ""
+
+#: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396
+msgid "&Cancel"
+msgstr "&Atšaukti"
+
+#: difftextwindow.cpp:403
+msgid "Line"
+msgstr "Eilutė"
+
+#: difftextwindow.cpp:405
+msgid "Line not available"
+msgstr ""
+
+#: difftextwindow.cpp:1703 difftextwindow.cpp:1736
+msgid "Encoding:"
+msgstr ""
+
+#: difftextwindow.cpp:1759 kdiff3.cpp:831
+msgid "Top line"
+msgstr "Viršutinė eilutė"
+
+#: difftextwindow.cpp:1769
+msgid "End"
+msgstr "Pab"
+
+#: kdiff3.cpp:169
+msgid "Current Configuration:"
+msgstr "Dabartinė konfigūracija:"
+
+#: kdiff3.cpp:174
+msgid "Config Option Error:"
+msgstr ""
+
+#: kdiff3.cpp:219
+msgid "Option --auto used, but no output file specified."
+msgstr ""
+
+#: kdiff3.cpp:369
+msgid "Option --auto ignored for directory comparison."
+msgstr ""
+
+#: kdiff3.cpp:405
+msgid "Saving failed."
+msgstr "Išsaugojimas nepavyko."
+
+#: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214
+msgid "Opening of these files failed:"
+msgstr ""
+
+#: kdiff3.cpp:449
+msgid "File Open Error"
+msgstr "Failo atvėrimo klaida"
+
+#: kdiff3.cpp:477
+msgid "Opens documents for comparison..."
+msgstr ""
+
+#: kdiff3.cpp:479
+#, fuzzy
+msgid "Reload"
+msgstr ""
+"#-#-#-#-#  kfindpart.po (kfindpart)  #-#-#-#-#\n"
+"Pasiruošęs\n"
+"#-#-#-#-#  kfilereplace.po (kfilereplace)  #-#-#-#-#\n"
+"Pasirengęs.\n"
+"#-#-#-#-#  k3b.po (k3b)  #-#-#-#-#\n"
+"Pasirengęs.\n"
+"#-#-#-#-#  pwmanager.po (pwmanager)  #-#-#-#-#\n"
+"Pasirengęs.\n"
+"#-#-#-#-#  kdat.po (kdat)  #-#-#-#-#\n"
+"Pasiruošęs.\n"
+"#-#-#-#-#  kcron.po (kcron)  #-#-#-#-#\n"
+"Pasiruošęs.\n"
+"#-#-#-#-#  ksayit.po (ksayit)  #-#-#-#-#\n"
+"Pasirengęs.\n"
+"#-#-#-#-#  kmouth.po (kmouth)  #-#-#-#-#\n"
+"Pasirengęs.\n"
+"#-#-#-#-#  kmrml.po (kmrml)  #-#-#-#-#\n"
+"Pasirengęs.\n"
+"#-#-#-#-#  kcoloredit.po (kcoloredit)  #-#-#-#-#\n"
+"Pasiruošęs.\n"
+"#-#-#-#-#  kverbos.po (kverbos)  #-#-#-#-#\n"
+"Pasirengęs.\n"
+"#-#-#-#-#  kmail.po (kmail)  #-#-#-#-#\n"
+"Pasirengęs.\n"
+"#-#-#-#-#  ksync.po (ksync)  #-#-#-#-#\n"
+"Pasirengęs.\n"
+"#-#-#-#-#  dub.po (dub)  #-#-#-#-#\n"
+"Pasirengęs.\n"
+"#-#-#-#-#  kopete.po (kopete)  #-#-#-#-#\n"
+"Pasirengęs."
+
+#: kdiff3.cpp:482
+msgid "Saves the merge result. All conflicts must be solved!"
+msgstr ""
+
+#: kdiff3.cpp:484
+msgid "Saves the current document as..."
+msgstr ""
+
+#: kdiff3.cpp:487
+msgid "Print the differences"
+msgstr ""
+
+#: kdiff3.cpp:490
+#, fuzzy
+msgid "Quits the application"
+msgstr ""
+"#-#-#-#-#  k3b.po (k3b)  #-#-#-#-#\n"
+"Išeina iš programos\n"
+"#-#-#-#-#  kmag.po (kmag)  #-#-#-#-#\n"
+"Baigs programos darbą\n"
+"#-#-#-#-#  kmouth.po (kmouth)  #-#-#-#-#\n"
+"Baigs programos darbą\n"
+"#-#-#-#-#  kverbos.po (kverbos)  #-#-#-#-#\n"
+"Baigs programos darbą\n"
+"#-#-#-#-#  ksync.po (ksync)  #-#-#-#-#\n"
+"Baigs programos darbą\n"
+"#-#-#-#-#  umbrello.po (umbrello)  #-#-#-#-#\n"
+"Baigs programos darbą"
+
+#: kdiff3.cpp:492
+msgid "Cuts the selected section and puts it to the clipboard"
+msgstr "Iškirps pažymėtą sritį ir padės į talpyklą"
+
+#: kdiff3.cpp:494
+msgid "Copies the selected section to the clipboard"
+msgstr "Nukopijuos pažymėtą sritį į talpyklą"
+
+#: kdiff3.cpp:496
+#, fuzzy
+#| msgid "Pastes the clipboard contents to actual position"
+msgid "Pastes the clipboard contents to current position"
+msgstr "Padės talpyklės turinį dabartinėje pozicijoje"
+
+#: kdiff3.cpp:498
+msgid "Select everything in current window"
+msgstr ""
+
+#: kdiff3.cpp:500
+msgid "Search for a string"
+msgstr ""
+
+#: kdiff3.cpp:502
+msgid "Search again for the string"
+msgstr ""
+
+#: kdiff3.cpp:507
+msgid "Enables/disables the statusbar"
+msgstr "Įjungs arba išjungs būsenos juostą"
+
+#: kdiff3.cpp:511
+msgid "Configure KDiff3..."
+msgstr "Konfigūruoti KDiff3..."
+
+#: kdiff3.cpp:532
+msgid "Go to Current Delta"
+msgstr ""
+
+#: kdiff3.cpp:532
+msgid ""
+"Current\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:534
+msgid "Go to First Delta"
+msgstr ""
+
+#: kdiff3.cpp:534
+msgid ""
+"First\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:536
+msgid "Go to Last Delta"
+msgstr ""
+
+#: kdiff3.cpp:536
+msgid ""
+"Last\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:538
+msgid "(Skips white space differences when \"Show White Space\" is disabled.)"
+msgstr ""
+
+#: kdiff3.cpp:539
+msgid ""
+"(Does not skip white space differences even when \"Show White Space\" is "
+"disabled.)"
+msgstr ""
+
+#: kdiff3.cpp:540
+msgid "Go to Previous Delta"
+msgstr ""
+
+#: kdiff3.cpp:540
+msgid ""
+"Prev\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:542
+msgid "Go to Next Delta"
+msgstr ""
+
+#: kdiff3.cpp:542
+msgid ""
+"Next\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:544
+msgid "Go to Previous Conflict"
+msgstr "Eiti į ankstesnį konfliktą"
+
+#: kdiff3.cpp:544
+msgid ""
+"Prev\n"
+"Conflict"
+msgstr ""
+"Ankstesnis\n"
+"konfliktas"
+
+#: kdiff3.cpp:546
+msgid "Go to Next Conflict"
+msgstr "Eiti į kitą konfliktą"
+
+#: kdiff3.cpp:546
+msgid ""
+"Next\n"
+"Conflict"
+msgstr ""
+"Kitas\n"
+"konfliktas"
+
+#: kdiff3.cpp:548
+msgid "Go to Previous Unsolved Conflict"
+msgstr ""
+
+#: kdiff3.cpp:548
+msgid ""
+"Prev\n"
+"Unsolved"
+msgstr ""
+
+#: kdiff3.cpp:550
+msgid "Go to Next Unsolved Conflict"
+msgstr ""
+
+#: kdiff3.cpp:550
+msgid ""
+"Next\n"
+"Unsolved"
+msgstr ""
+
+#: kdiff3.cpp:552
+msgid "Select Line(s) From A"
+msgstr ""
+
+#: kdiff3.cpp:552
+msgid ""
+"Choose\n"
+"A"
+msgstr ""
+"Pasirinkti\n"
+"A"
+
+#: kdiff3.cpp:553
+msgid "Select Line(s) From B"
+msgstr ""
+
+#: kdiff3.cpp:553
+msgid ""
+"Choose\n"
+"B"
+msgstr ""
+"Pasirinkti\n"
+"B"
+
+#: kdiff3.cpp:554
+msgid "Select Line(s) From C"
+msgstr ""
+
+#: kdiff3.cpp:554
+msgid ""
+"Choose\n"
+"C"
+msgstr ""
+"Pasirinkti\n"
+"C"
+
+#: kdiff3.cpp:555
+msgid "Automatically Go to Next Unsolved Conflict After Source Selection"
+msgstr ""
+
+#: kdiff3.cpp:555
+#, fuzzy
+msgid ""
+"Auto\n"
+"Next"
+msgstr "Iškerpamas žymėjimas..."
+
+#: kdiff3.cpp:557
+msgid "Show Space && Tabulator Characters for Differences"
+msgstr ""
+
+#: kdiff3.cpp:557
+msgid ""
+"White\n"
+"Characters"
+msgstr ""
+
+#: kdiff3.cpp:558
+msgid "Show White Space"
+msgstr ""
+
+#: kdiff3.cpp:558
+msgid ""
+"White\n"
+"Deltas"
+msgstr ""
+
+#: kdiff3.cpp:560
+msgid "Show Line Numbers"
+msgstr ""
+
+#: kdiff3.cpp:560
+msgid ""
+"Line\n"
+"Numbers"
+msgstr ""
+
+#: kdiff3.cpp:561
+msgid "Choose A Everywhere"
+msgstr ""
+
+#: kdiff3.cpp:562
+msgid "Choose B Everywhere"
+msgstr ""
+
+#: kdiff3.cpp:563
+msgid "Choose C Everywhere"
+msgstr ""
+
+#: kdiff3.cpp:564
+msgid "Choose A for All Unsolved Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:565
+msgid "Choose B for All Unsolved Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:566
+msgid "Choose C for All Unsolved Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:567
+msgid "Choose A for All Unsolved Whitespace Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:568
+msgid "Choose B for All Unsolved Whitespace Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:569
+msgid "Choose C for All Unsolved Whitespace Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:570
+msgid "Automatically Solve Simple Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:571
+msgid "Set Deltas to Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:572
+msgid "Run Regular Expression Auto Merge"
+msgstr ""
+
+#: kdiff3.cpp:573
+msgid "Automatically Solve History Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:574
+msgid "Split Diff At Selection"
+msgstr ""
+
+#: kdiff3.cpp:575
+msgid "Join Selected Diffs"
+msgstr ""
+
+#: kdiff3.cpp:577
+msgid "Show Window A"
+msgstr ""
+
+#: kdiff3.cpp:578
+msgid "Show Window B"
+msgstr ""
+
+#: kdiff3.cpp:579
+msgid "Show Window C"
+msgstr ""
+
+#: kdiff3.cpp:580 kdiff3.cpp:591
+msgid "Focus Next Window"
+msgstr ""
+
+#: kdiff3.cpp:582
+msgid "Normal Overview"
+msgstr ""
+
+#: kdiff3.cpp:583
+msgid "A vs. B Overview"
+msgstr ""
+
+#: kdiff3.cpp:584
+msgid "A vs. C Overview"
+msgstr ""
+
+#: kdiff3.cpp:585
+msgid "B vs. C Overview"
+msgstr ""
+
+#: kdiff3.cpp:586
+msgid "Word Wrap Diff Windows"
+msgstr ""
+
+#: kdiff3.cpp:587
+msgid "Add Manual Diff Alignment"
+msgstr ""
+
+#: kdiff3.cpp:588
+msgid "Clear All Manual Diff Alignments"
+msgstr ""
+
+#: kdiff3.cpp:593
+msgid "Focus Prev Window"
+msgstr ""
+
+#: kdiff3.cpp:594
+msgid "Toggle Split Orientation"
+msgstr ""
+
+#: kdiff3.cpp:596
+msgid "Dir && Text Split Screen View"
+msgstr ""
+
+#: kdiff3.cpp:598
+msgid "Toggle Between Dir && Text View"
+msgstr ""
+
+#: kdiff3.cpp:654 pdiff.cpp:1812
+msgid "The merge result hasn't been saved."
+msgstr ""
+
+#: kdiff3.cpp:656
+msgid "Save && Quit"
+msgstr ""
+
+#: kdiff3.cpp:657
+msgid "Quit Without Saving"
+msgstr ""
+
+#: kdiff3.cpp:665 pdiff.cpp:1823
+msgid "Saving the merge result failed."
+msgstr ""
+
+#: kdiff3.cpp:676 pdiff.cpp:1078
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort?"
+msgstr ""
+
+#: kdiff3.cpp:701
+msgid "Saving file..."
+msgstr "Išsaugomas failas..."
+
+#: kdiff3.cpp:718
+msgid "Saving file with a new filename..."
+msgstr "Failas įrašomas nauju pavadinimu..."
+
+#: kdiff3.cpp:781
+#, fuzzy
+#| msgid "Printing completed."
+msgid "Printing not implemented."
+msgstr "Spausdinimas baigtas."
+
+#: kdiff3.cpp:815
+msgid "Printing..."
+msgstr "Spausdinama..."
+
+#: kdiff3.cpp:956
+msgid "Selection"
+msgstr "Pažymėjimas"
+
+#: kdiff3.cpp:982
+msgid "Printing completed."
+msgstr "Spausdinimas baigtas."
+
+#: kdiff3.cpp:986
+msgid "Printing aborted."
+msgstr "Spausdinimas nutrauktas."
+
+#: kdiff3.cpp:993
+msgid "Exiting..."
+msgstr "Išeinama..."
+
+#: kdiff3.cpp:1006
+msgid "Toggling toolbar..."
+msgstr ""
+
+#: kdiff3.cpp:1027
+msgid "Toggle the statusbar..."
+msgstr "Perjungti būsenos juostą..."
+
+#: smalldialogs.cpp:58
+msgid "A (Base):"
+msgstr ""
+
+#: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99
+#: smalldialogs.cpp:142
+msgid "File..."
+msgstr "Failas..."
+
+#: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101
+#: smalldialogs.cpp:144
+msgid "Dir..."
+msgstr ""
+
+#: smalldialogs.cpp:93
+msgid "C (Optional):"
+msgstr ""
+
+#: smalldialogs.cpp:116
+msgid "Swap/Copy Names ..."
+msgstr ""
+
+#: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123
+#, kde-format
+msgid "Swap %1<->%2"
+msgstr ""
+
+#: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126
+#, kde-format
+msgid "Copy %1->Output"
+msgstr ""
+
+#: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129
+#, kde-format
+msgid "Swap %1<->Output"
+msgstr ""
+
+#: smalldialogs.cpp:136
+msgid "Output (optional):"
+msgstr ""
+
+#: smalldialogs.cpp:168
+msgid "Configure..."
+msgstr "Konfigūruoti..."
+
+#: smalldialogs.cpp:174
+msgid "&OK"
+msgstr "&Gerai"
+
+#: smalldialogs.cpp:362
+msgid "Search text:"
+msgstr ""
+
+#: smalldialogs.cpp:369
+#, fuzzy
+msgid "Case sensitive"
+msgstr ""
+"#-#-#-#-#  kate.po (kate)  #-#-#-#-#\n"
+"Skirti raidžių dydį\n"
+"#-#-#-#-#  quanta.po (quanta)  #-#-#-#-#\n"
+"Skirti raidžių dydį\n"
+"#-#-#-#-#  kfilereplace.po (kfilereplace)  #-#-#-#-#\n"
+"Skirti raidžių dydį\n"
+"#-#-#-#-#  kbabel.po (kbabel)  #-#-#-#-#\n"
+"Skiriant raidžių dydį\n"
+"#-#-#-#-#  kopete.po (kopete)  #-#-#-#-#\n"
+"Skirti raidžių dydį"
+
+#: smalldialogs.cpp:372
+msgid "Search A"
+msgstr ""
+
+#: smalldialogs.cpp:377
+msgid "Search B"
+msgstr ""
+
+#: smalldialogs.cpp:382
+msgid "Search C"
+msgstr ""
+
+#: smalldialogs.cpp:387
+msgid "Search output"
+msgstr ""
+
+#: smalldialogs.cpp:392
+msgid "&Search"
+msgstr "&Ieškoti"
+
+#: smalldialogs.cpp:409
+msgid "Regular Expression Tester"
+msgstr ""
+
+#: smalldialogs.cpp:414 optiondialog.cpp:936
+msgid "Auto merge regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:422
+msgid "Example auto merge line:"
+msgstr ""
+
+#: smalldialogs.cpp:424
+msgid "To test auto merge, copy a line as used in your files."
+msgstr ""
+
+#: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494
+msgid "Match result:"
+msgstr ""
+
+#: smalldialogs.cpp:441 optiondialog.cpp:962
+msgid "History start regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:449
+msgid "Example history start line (with leading comment):"
+msgstr ""
+
+#: smalldialogs.cpp:451
+msgid ""
+"Copy a history start line as used in your files,\n"
+"including the leading comment."
+msgstr ""
+
+#: smalldialogs.cpp:469 optiondialog.cpp:972
+msgid "History entry start regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:477
+msgid "History sort key order:"
+msgstr ""
+
+#: smalldialogs.cpp:485
+msgid "Example history entry start line (without leading comment):"
+msgstr ""
+
+#: smalldialogs.cpp:487
+msgid ""
+"Copy a history entry start line as used in your files,\n"
+"but omit the leading comment."
+msgstr ""
+
+#: smalldialogs.cpp:501
+msgid "Sort key result:"
+msgstr ""
+
+#: smalldialogs.cpp:508
+msgid "OK"
+msgstr "Gerai"
+
+#: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583
+msgid "Match success."
+msgstr ""
+
+#: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589
+msgid "Match failed."
+msgstr ""
+
+#: smalldialogs.cpp:574
+msgid "Opening and closing parentheses do not match in regular expression."
+msgstr ""
+
+#: optiondialog.cpp:367
+msgid "Unicode, 8 bit"
+msgstr ""
+
+#: optiondialog.cpp:368
+msgid "Unicode"
+msgstr "Unikodas"
+
+#: optiondialog.cpp:369
+msgid "Latin1"
+msgstr "Latin1"
+
+#: optiondialog.cpp:388
+msgid "Change this if non-ASCII characters are not displayed correctly."
+msgstr ""
+
+#: optiondialog.cpp:465
+msgid "Configure"
+msgstr "Konfigūruoti"
+
+#: optiondialog.cpp:531
+msgid "Font"
+msgstr "Šriftas"
+
+#: optiondialog.cpp:532
+msgid "Editor & Diff Output Font"
+msgstr ""
+
+#: optiondialog.cpp:556
+msgid "Italic font for deltas"
+msgstr ""
+
+#: optiondialog.cpp:559
+msgid ""
+"Selects the italic version of the font for differences.\n"
+"If the font doesn't support italic characters, then this does nothing."
+msgstr ""
+
+#: optiondialog.cpp:568
+msgid "Color"
+msgstr "Spalva"
+
+#: optiondialog.cpp:569
+msgid "Colors Settings"
+msgstr "Spalvų nustatymai"
+
+#: optiondialog.cpp:588
+msgid "Editor and Diff Views:"
+msgstr ""
+
+#: optiondialog.cpp:596
+msgid "Foreground color:"
+msgstr "Priekinio plano spalva:"
+
+#: optiondialog.cpp:603
+msgid "Background color:"
+msgstr "Fono spalva:"
+
+#: optiondialog.cpp:612
+msgid "Diff background color:"
+msgstr ""
+
+#: optiondialog.cpp:620
+msgid "Color A:"
+msgstr "Spalva A:"
+
+#: optiondialog.cpp:628
+msgid "Color B:"
+msgstr "Spalva B:"
+
+#: optiondialog.cpp:636
+msgid "Color C:"
+msgstr "Spalva C:"
+
+#: optiondialog.cpp:643
+msgid "Conflict color:"
+msgstr "Konflikto spalva:"
+
+#: optiondialog.cpp:651
+msgid "Current range background color:"
+msgstr ""
+
+#: optiondialog.cpp:659
+msgid "Current range diff background color:"
+msgstr ""
+
+#: optiondialog.cpp:666
+msgid "Color for manually aligned difference ranges:"
+msgstr ""
+
+#: optiondialog.cpp:672
+msgid "Directory Comparison View:"
+msgstr ""
+
+#: optiondialog.cpp:678
+msgid "Newest file color:"
+msgstr ""
+
+#: optiondialog.cpp:682
+msgid ""
+"Changing this color will only be effective when starting the next directory "
+"comparison."
+msgstr ""
+
+#: optiondialog.cpp:687
+msgid "Oldest file color:"
+msgstr ""
+
+#: optiondialog.cpp:695
+msgid "Middle age file color:"
+msgstr ""
+
+#: optiondialog.cpp:703
+msgid "Color for missing files:"
+msgstr ""
+
+#: optiondialog.cpp:717
+msgid "Editor"
+msgstr "Redaktorius"
+
+#: optiondialog.cpp:718
+msgid "Editor Behavior"
+msgstr ""
+
+#: optiondialog.cpp:732
+msgid "Tab inserts spaces"
+msgstr ""
+
+#: optiondialog.cpp:735
+msgid ""
+"On: Pressing tab generates the appropriate number of spaces.\n"
+"Off: A tab character will be inserted."
+msgstr ""
+
+#: optiondialog.cpp:741
+msgid "Tab size:"
+msgstr ""
+
+#: optiondialog.cpp:747
+msgid "Auto indentation"
+msgstr ""
+
+#: optiondialog.cpp:750
+msgid "On: The indentation of the previous line is used for a new line.\n"
+msgstr ""
+
+#: optiondialog.cpp:754
+msgid "Auto copy selection"
+msgstr ""
+
+#: optiondialog.cpp:757
+msgid ""
+"On: Any selection is immediately written to the clipboard.\n"
+"Off: You must explicitely copy e.g. via Ctrl-C."
+msgstr ""
+
+#: optiondialog.cpp:768
+#, fuzzy
+#| msgid "&Window"
+msgid "Dos/Windows"
+msgstr "&Langas"
+
+#: optiondialog.cpp:769
+#, fuzzy
+msgid "Autodetect"
+msgstr "Iškerpamas žymėjimas..."
+
+#: optiondialog.cpp:772
+msgid ""
+"Sets the line endings for when an edited file is saved.\n"
+"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A"
+msgstr ""
+
+#: optiondialog.cpp:784
+msgid "Diff"
+msgstr ""
+
+#: optiondialog.cpp:785
+msgid "Diff Settings"
+msgstr ""
+
+#: optiondialog.cpp:809
+msgid "Treat as white space."
+msgstr ""
+
+#: optiondialog.cpp:811
+msgid "Ignore numbers"
+msgstr "Ignoruoti skaičius"
+
+#: optiondialog.cpp:814
+msgid ""
+"Ignore number characters during line matching phase. (Similar to Ignore "
+"white space.)\n"
+"Might help to compare files with numeric data."
+msgstr ""
+
+#: optiondialog.cpp:819
+msgid "Ignore C/C++ comments"
+msgstr "Ignoruoti C/C++ komentarus"
+
+#: optiondialog.cpp:821
+msgid "Treat C/C++ comments like white space."
+msgstr ""
+
+#: optiondialog.cpp:825
+msgid "Ignore case"
+msgstr ""
+
+#: optiondialog.cpp:828
+msgid "Treat case differences like white space changes. ('a'<=>'A')"
+msgstr ""
+
+#: optiondialog.cpp:832
+msgid "Preprocessor command:"
+msgstr ""
+
+#: optiondialog.cpp:836
+msgid "User defined pre-processing. (See the docs for details.)"
+msgstr ""
+
+#: optiondialog.cpp:839
+msgid "Line-matching preprocessor command:"
+msgstr ""
+
+#: optiondialog.cpp:843
+msgid ""
+"This pre-processor is only used during line matching.\n"
+"(See the docs for details.)"
+msgstr ""
+
+#: optiondialog.cpp:846
+msgid "Try hard (slower)"
+msgstr ""
+
+#: optiondialog.cpp:849
+msgid ""
+"Enables the --minimal option for the external diff.\n"
+"The analysis of big files will be much slower."
+msgstr ""
+
+#: optiondialog.cpp:854
+msgid "Align B and C for 3 input files"
+msgstr ""
+
+#: optiondialog.cpp:857
+msgid ""
+"Try to align B and C when comparing or merging three input files.\n"
+"Not recommended for merging because merge might get more complicated.\n"
+"(Default is off.)"
+msgstr ""
+
+#: optiondialog.cpp:870
+msgid "Merge Settings"
+msgstr ""
+
+#: optiondialog.cpp:885
+msgid "Auto advance delay (ms):"
+msgstr ""
+
+#: optiondialog.cpp:890
+msgid ""
+"When in Auto-Advance mode the result of the current selection is shown \n"
+"for the specified time, before jumping to the next conflict. Range: 0-2000 ms"
+msgstr ""
+
+#: optiondialog.cpp:895
+msgid "Show info dialogs"
+msgstr ""
+
+#: optiondialog.cpp:897
+msgid "Show a dialog with information about the number of conflicts."
+msgstr ""
+
+#: optiondialog.cpp:900
+msgid "White space 2-file merge default:"
+msgstr ""
+
+#: optiondialog.cpp:904 optiondialog.cpp:917
+msgid "Manual Choice"
+msgstr ""
+
+#: optiondialog.cpp:908 optiondialog.cpp:922
+msgid ""
+"Allow the merge algorithm to automatically select an input for white-space-"
+"only changes."
+msgstr ""
+
+#: optiondialog.cpp:913
+msgid "White space 3-file merge default:"
+msgstr ""
+
+#: optiondialog.cpp:927
+msgid "Automatic Merge Regular Expression"
+msgstr ""
+
+#: optiondialog.cpp:940
+msgid ""
+"Regular expression for lines where KDiff3 should automatically choose one "
+"source.\n"
+"When a line with a conflict matches the regular expression then\n"
+"- if available - C, otherwise B will be chosen."
+msgstr ""
+
+#: optiondialog.cpp:946
+msgid "Run regular expression auto merge on merge start"
+msgstr ""
+
+#: optiondialog.cpp:948
+msgid ""
+"Run the merge for auto merge regular expressions\n"
+"immediately when a merge starts.\n"
+msgstr ""
+
+#: optiondialog.cpp:953
+msgid "Version Control History Merging"
+msgstr ""
+
+#: optiondialog.cpp:966
+msgid ""
+"Regular expression for the start of the version control history entry.\n"
+"Usually this line contains the \"$Log$\" keyword.\n"
+"Default value: \".*\\$Log.*\\$.*\""
+msgstr ""
+
+#: optiondialog.cpp:984
+msgid ""
+"A version control history entry consists of several lines.\n"
+"Specify the regular expression to detect the first line (without the leading "
+"comment).\n"
+"Use parentheses to group the keys you want to use for sorting.\n"
+"If left empty, then KDiff3 assumes that empty lines separate history "
+"entries.\n"
+"See the documentation for details."
+msgstr ""
+
+#: optiondialog.cpp:992
+msgid "History merge sorting"
+msgstr ""
+
+#: optiondialog.cpp:994
+msgid "Sort version control history by a key."
+msgstr ""
+
+#: optiondialog.cpp:1004
+msgid "History entry start sort key order:"
+msgstr ""
+
+#: optiondialog.cpp:1008
+msgid ""
+"Each pair of parentheses used in the regular expression for the history "
+"start entry\n"
+"groups a key that can be used for sorting.\n"
+"Specify the list of keys (that are numbered in order of occurrence\n"
+"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n"
+"If left empty, then no sorting will be done.\n"
+"See the documentation for details."
+msgstr ""
+
+#: optiondialog.cpp:1019
+msgid "Merge version control history on merge start"
+msgstr ""
+
+#: optiondialog.cpp:1021
+msgid "Run version control history automerge on merge start."
+msgstr ""
+
+#: optiondialog.cpp:1025
+msgid "Max number of history entries:"
+msgstr ""
+
+#: optiondialog.cpp:1028
+msgid "Cut off after specified number. Use -1 for infinite number of entries."
+msgstr ""
+
+#: optiondialog.cpp:1032
+msgid "Test your regular expressions"
+msgstr ""
+
+#: optiondialog.cpp:1037
+msgid "Irrelevant merge command:"
+msgstr ""
+
+#: optiondialog.cpp:1041
+msgid ""
+"If specified this script is run after automerge\n"
+"when no other relevant changes were detected.\n"
+"Called with the parameters: filename1 filename2 filename3"
+msgstr ""
+
+#: optiondialog.cpp:1047
+msgid "Auto save and quit on merge without conflicts"
+msgstr ""
+
+#: optiondialog.cpp:1050
+msgid ""
+"If KDiff3 was started for a file-merge from the command line and all\n"
+"conflicts are solvable without user interaction then automatically save and "
+"quit.\n"
+"(Similar to command line option \"--auto\".)"
+msgstr ""
+
+#: optiondialog.cpp:1061 optiondialog.cpp:1062
+msgid "Directory"
+msgstr "Aplankas"
+
+#: optiondialog.cpp:1075
+msgid "Recursive directories"
+msgstr ""
+
+#: optiondialog.cpp:1077
+msgid "Whether to analyze subdirectories or not."
+msgstr ""
+
+#: optiondialog.cpp:1079
+msgid "File pattern(s):"
+msgstr ""
+
+#: optiondialog.cpp:1084
+msgid ""
+"Pattern(s) of files to be analyzed. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1090
+msgid "File-anti-pattern(s):"
+msgstr ""
+
+#: optiondialog.cpp:1095
+msgid ""
+"Pattern(s) of files to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1101
+msgid "Dir-anti-pattern(s):"
+msgstr ""
+
+#: optiondialog.cpp:1106
+msgid ""
+"Pattern(s) of directories to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1112
+msgid "Use .cvsignore"
+msgstr ""
+
+#: optiondialog.cpp:1115
+msgid ""
+"Extends the antipattern to anything that would be ignored by CVS.\n"
+"Via local \".cvsignore\" files this can be directory specific."
+msgstr ""
+
+#: optiondialog.cpp:1120
+msgid "Find hidden files and directories"
+msgstr ""
+
+#: optiondialog.cpp:1123
+msgid "Finds files and directories with the hidden attribute."
+msgstr ""
+
+#: optiondialog.cpp:1125
+msgid "Finds files and directories starting with '.'."
+msgstr ""
+
+#: optiondialog.cpp:1129
+msgid "Follow file links"
+msgstr ""
+
+#: optiondialog.cpp:1132
+msgid ""
+"On: Compare the file the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+
+#: optiondialog.cpp:1137
+msgid "Follow directory links"
+msgstr ""
+
+#: optiondialog.cpp:1140
+msgid ""
+"On: Compare the directory the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+
+#: optiondialog.cpp:1156
+msgid "Case sensitive filename comparison"
+msgstr ""
+
+#: optiondialog.cpp:1159
+msgid ""
+"The directory comparison will compare files or directories when their names "
+"match.\n"
+"Set this option if the case of the names must match. (Default for Windows is "
+"off, otherwise on.)"
+msgstr ""
+
+#: optiondialog.cpp:1163
+msgid "File Comparison Mode"
+msgstr ""
+
+#: optiondialog.cpp:1169
+msgid "Binary comparison"
+msgstr ""
+
+#: optiondialog.cpp:1170
+msgid "Binary comparison of each file. (Default)"
+msgstr ""
+
+#: optiondialog.cpp:1173
+msgid "Full analysis"
+msgstr ""
+
+#: optiondialog.cpp:1174
+msgid ""
+"Do a full analysis and show statistics information in extra columns.\n"
+"(Slower than a binary comparison, much slower for binary files.)"
+msgstr ""
+
+#: optiondialog.cpp:1178
+msgid "Trust the size and modification date (unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1179
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"Files with equal contents but different modification dates will appear as "
+"different.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+
+#: optiondialog.cpp:1184
+msgid ""
+"Trust the size and date, but use binary comparison if date does not match "
+"(unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1185
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"If the dates are not equal but the sizes are, use binary comparison.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+
+#: optiondialog.cpp:1190
+msgid "Trust the size (unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1191
+msgid ""
+"Assume that files are equal if their file lengths are equal.\n"
+"Useful for big directories or slow networks when the date is modified during "
+"download."
+msgstr ""
+
+#: optiondialog.cpp:1199
+msgid "Synchronize directories"
+msgstr "Sinchronizuoti aplankus"
+
+#: optiondialog.cpp:1202
+msgid ""
+"Offers to store files in both directories so that\n"
+"both directories are the same afterwards.\n"
+"Works only when comparing two directories without specifying a destination."
+msgstr ""
+
+#: optiondialog.cpp:1208
+msgid "White space differences considered equal"
+msgstr ""
+
+#: optiondialog.cpp:1211
+msgid ""
+"If files differ only by white space consider them equal.\n"
+"This is only active when full analysis is chosen."
+msgstr ""
+
+#: optiondialog.cpp:1217
+msgid "Copy newer instead of merging (unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1220
+msgid ""
+"Don't look inside, just take the newer file.\n"
+"(Use this only if you know what you are doing!)\n"
+"Only effective when comparing two directories."
+msgstr ""
+
+#: optiondialog.cpp:1225
+msgid "Backup files (.orig)"
+msgstr ""
+
+#: optiondialog.cpp:1228
+msgid ""
+"If a file would be saved over an old file, then the old file\n"
+"will be renamed with a '.orig' extension instead of being deleted."
+msgstr ""
+
+#: optiondialog.cpp:1301 optiondialog.cpp:1302
+msgid "Regional Settings"
+msgstr ""
+
+#: optiondialog.cpp:1402
+msgid "Language (restart required)"
+msgstr ""
+
+#: optiondialog.cpp:1445
+msgid ""
+"Choose the language of the GUI strings or \"Auto\".\n"
+"For a change of language to take place, quit and restart KDiff3."
+msgstr ""
+
+#: optiondialog.cpp:1463
+msgid "Use the same encoding for everything:"
+msgstr ""
+
+#: optiondialog.cpp:1466
+msgid ""
+"Enable this allows to change all encodings by changing the first only.\n"
+"Disable this if different individual settings are needed."
+msgstr ""
+
+#: optiondialog.cpp:1471
+msgid "Note: Local Encoding is "
+msgstr ""
+
+#: optiondialog.cpp:1475
+msgid "File Encoding for A:"
+msgstr ""
+
+#: optiondialog.cpp:1481
+msgid ""
+"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n"
+"If the file is not Unicode then the selected encoding will be used as "
+"fallback.\n"
+"(Unicode detection depends on the first bytes of a file.)"
+msgstr ""
+
+#: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503
+msgid "Auto Detect Unicode"
+msgstr ""
+
+#: optiondialog.cpp:1490
+msgid "File Encoding for B:"
+msgstr ""
+
+#: optiondialog.cpp:1499
+msgid "File Encoding for C:"
+msgstr ""
+
+#: optiondialog.cpp:1508
+msgid "File Encoding for Merge Output and Saving:"
+msgstr ""
+
+#: optiondialog.cpp:1512
+#, fuzzy
+msgid "Auto Select"
+msgstr "Iškerpamas žymėjimas..."
+
+#: optiondialog.cpp:1515
+msgid ""
+"If enabled then the encoding from the input files is used.\n"
+"In ambiguous cases a dialog will ask the user to choose the encoding for "
+"saving."
+msgstr ""
+
+#: optiondialog.cpp:1519
+msgid "File Encoding for Preprocessor Files:"
+msgstr ""
+
+#: optiondialog.cpp:1530
+msgid "Right To Left Language"
+msgstr ""
+
+#: optiondialog.cpp:1533
+msgid ""
+"Some languages are read from right to left.\n"
+"This setting will change the viewer and editor accordingly."
+msgstr ""
+
+#: optiondialog.cpp:1548
+#, fuzzy
+msgid "Integration"
+msgstr "Operacija"
+
+#: optiondialog.cpp:1549
+msgid "Integration Settings"
+msgstr ""
+
+#: optiondialog.cpp:1563
+msgid "Command line options to ignore:"
+msgstr ""
+
+#: optiondialog.cpp:1568
+msgid ""
+"List of command line options that should be ignored when KDiff3 is used by "
+"other tools.\n"
+"Several values can be specified if separated via ';'\n"
+"This will suppress the \"Unknown option\" error."
+msgstr ""
+
+#: optiondialog.cpp:1575
+msgid "Quit also via Escape key"
+msgstr ""
+
+#: optiondialog.cpp:1578
+msgid ""
+"Fast method to exit.\n"
+"For those who are used to using the Escape key."
+msgstr ""
+
+#: optiondialog.cpp:1583
+msgid "Integrate with ClearCase"
+msgstr ""
+
+#: optiondialog.cpp:1586
+msgid ""
+"Integrate with Rational ClearCase from IBM.\n"
+"Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n"
+"(Only enabled when ClearCase \"bin\" directory is in the path.)"
+msgstr ""
+
+#: optiondialog.cpp:1592
+msgid "Remove ClearCase Integration"
+msgstr ""
+
+#: optiondialog.cpp:1595
+msgid ""
+"Restore the old \"map\" file from before doing the ClearCase integration."
+msgstr ""
+
+#: optiondialog.cpp:1680
+msgid "Incompatible Font"
+msgstr ""
+
+#: optiondialog.cpp:1681
+msgid "Continue at Own Risk"
+msgstr ""
+
+#: optiondialog.cpp:1682
+msgid "Select Another Font"
+msgstr ""
+
+#: optiondialog.cpp:1717
+msgid "This resets all options. Not only those of the current topic."
+msgstr ""
+
+#: pdiff.cpp:260
+msgid "PreprocessorCmd: "
+msgstr ""
+
+#: pdiff.cpp:265
+msgid "The following option(s) you selected might change data:\n"
+msgstr ""
+
+#: pdiff.cpp:266
+msgid ""
+"\n"
+"Most likely this is not wanted during a merge.\n"
+"Do you want to disable these settings or continue with these settings active?"
+msgstr ""
+
+#: pdiff.cpp:268
+msgid "Option Unsafe for Merging"
+msgstr ""
+
+#: pdiff.cpp:269
+msgid "Use These Options During Merge"
+msgstr ""
+
+#: pdiff.cpp:270
+msgid "Disable Unsafe Options"
+msgstr ""
+
+#: pdiff.cpp:300
+msgid "Loading A"
+msgstr ""
+
+#: pdiff.cpp:304
+msgid "Loading B"
+msgstr ""
+
+#: pdiff.cpp:321 pdiff.cpp:347
+msgid "Diff: A <-> B"
+msgstr ""
+
+#: pdiff.cpp:327 pdiff.cpp:372
+msgid "Linediff: A <-> B"
+msgstr ""
+
+#: pdiff.cpp:338
+msgid "Loading C"
+msgstr ""
+
+#: pdiff.cpp:350
+msgid "Diff: B <-> C"
+msgstr ""
+
+#: pdiff.cpp:353
+msgid "Diff: A <-> C"
+msgstr ""
+
+#: pdiff.cpp:375
+msgid "Linediff: B <-> C"
+msgstr ""
+
+#: pdiff.cpp:378
+msgid "Linediff: A <-> C"
+msgstr ""
+
+#: pdiff.cpp:534
+msgid "All input files contain the same text, but are not binary equal."
+msgstr ""
+
+#: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541
+#, kde-format
+msgid "Files %1 and %2 have equal text, but are not binary equal. \n"
+msgstr ""
+
+#: pdiff.cpp:551
+msgid ""
+"Some inputfiles don't seem to be pure textfiles.\n"
+"Note that the KDiff3-merge was not meant for binary data.\n"
+"Continue at your own risk."
+msgstr ""
+
+#: pdiff.cpp:566
+#, kde-format
+msgid ""
+"Some input characters could not be converted to valid unicode.\n"
+"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n"
+"Don't save the result if unsure. Continue at your own risk.\n"
+"Affected input files are in %1."
+msgstr ""
+
+#: pdiff.cpp:1080
+msgid "Abort"
+msgstr "Nutraukti"
+
+#: pdiff.cpp:1087 pdiff.cpp:1175
+msgid "Opening files..."
+msgstr "Atveriami failai..."
+
+#: pdiff.cpp:1152 pdiff.cpp:1223
+msgid "File open error"
+msgstr "Klaida atveriant bylą"
+
+#: pdiff.cpp:1255
+msgid "Cutting selection..."
+msgstr "Iškerpamas žymėjimas..."
+
+#: pdiff.cpp:1276
+msgid "Copying selection to clipboard..."
+msgstr "Kopijuojama pažymėtą vietą į talpyklę..."
+
+#: pdiff.cpp:1292
+msgid "Inserting clipboard contents..."
+msgstr "Įterpiamas talpyklės turinys..."
+
+#: pdiff.cpp:1814
+msgid "Save && Continue"
+msgstr ""
+
+#: pdiff.cpp:1815
+msgid "Continue Without Saving"
+msgstr ""
+
+#: pdiff.cpp:2018
+msgid "Search complete."
+msgstr ""
+
+#: pdiff.cpp:2018
+msgid "Search Complete"
+msgstr ""
+
+#: pdiff.cpp:2252
+msgid "Nothing is selected in either diff input window."
+msgstr ""
+
+#: pdiff.cpp:2252
+msgid "Error while adding manual diff range"
+msgstr ""
+
+#: kdiff3_shell.cpp:76
+msgid ""
+"Could not initialize the KDiff3 part.\n"
+"This usually happens due to an installation problem. Please read the README-"
+"file in the source package for details."
+msgstr ""
+
+#: rc.cpp:1
+msgctxt "NAME OF TRANSLATORS"
+msgid "Your names"
+msgstr "Andrius Štikonas"
+
+#: rc.cpp:2
+msgctxt "EMAIL OF TRANSLATORS"
+msgid "Your emails"
+msgstr "stikonas@gmail.com"
+
+#. i18n: file: kdiff3_part.rc:4
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:5
+msgid "&KDiff3"
+msgstr "&KDiff3"
+
+#. i18n: file: kdiff3_part.rc:13
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:8
+msgid "Configure KDiff3"
+msgstr "Konfigūruoti KDiff3"
+
+#. i18n: file: kdiff3_part.rc:16
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:11
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#. i18n: file: kdiff3_shell.rc:106
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:38
+msgid "Main Toolbar"
+msgstr "Pagrindinė įrankinė"
diff --git a/po/lt/kdiff3plugin.po b/po/lt/kdiff3plugin.po
new file mode 100644 (file)
index 0000000..6b25bf4
--- /dev/null
@@ -0,0 +1,85 @@
+# Lithuanian translations for kdiff3plugin package.
+# This file is distributed under the same license as the kdiff3plugin package.
+# Andrius Štikonas <stikonas@gmail.com>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3plugin\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2009-01-18 17:39+0200\n"
+"Last-Translator: Andrius Štikonas <stikonas@gmail.com>\n"
+"Language-Team: Lithuanian <kde-i18n-lt@kde.org>\n"
+"Language: lt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : n%10==1 && n%100!=11 ? 1 : n"
+"%10>=2 && (n%100<10 || n%100>=20) ? 2 : 3);\n"
+
+#: kdiff3plugin.cpp:107
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#: kdiff3plugin.cpp:114
+#, kde-format
+msgid "Compare with %1"
+msgstr ""
+
+#: kdiff3plugin.cpp:120
+#, kde-format
+msgid "Merge with %1"
+msgstr ""
+
+#: kdiff3plugin.cpp:126
+#, kde-format
+msgid "Save '%1' for later"
+msgstr ""
+
+#: kdiff3plugin.cpp:132
+msgid "3-way merge with base"
+msgstr ""
+
+#: kdiff3plugin.cpp:139
+msgid "Compare with ..."
+msgstr ""
+
+#: kdiff3plugin.cpp:149
+msgid "Clear list"
+msgstr ""
+
+#: kdiff3plugin.cpp:157
+msgid "Compare"
+msgstr ""
+
+#: kdiff3plugin.cpp:163
+msgid "3 way comparison"
+msgstr ""
+
+#: kdiff3plugin.cpp:167
+msgid "About KDiff3 menu plugin ..."
+msgstr ""
+
+#: kdiff3plugin.cpp:269
+msgid ""
+"KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+
+#: kdiff3plugin.cpp:271
+msgid ""
+"Using the context menu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else, \"Save\" the first file for later, and "
+"it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With"
+"\" on the second file.\n"
+"For a 3-way merge first, \"Save\" the base file, then the branch to merge, "
+"and then \"3-way merge with base\" on the other branch which will be used as "
+"the destination.\n"
+"The same also applies to directory comparison and merge."
+msgstr ""
+
+#: kdiff3plugin.cpp:279
+msgid "About KDiff3 Menu Plugin"
+msgstr ""
diff --git a/po/mai/CMakeLists.txt b/po/mai/CMakeLists.txt
new file mode 100644 (file)
index 0000000..669f8a5
--- /dev/null
@@ -0,0 +1,2 @@
+file(GLOB _po_files *.po)
+GETTEXT_PROCESS_PO_FILES(mai ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
diff --git a/po/mai/kdiff3.po b/po/mai/kdiff3.po
new file mode 100644 (file)
index 0000000..067fc90
--- /dev/null
@@ -0,0 +1,2919 @@
+# translation of kdiff3.po to Maithili
+# Copyright (C) YEAR This_file_is_part_of_KDE
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Rajesh Ranjan <rajesh672@gmail.com>, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2010-09-24 20:11+0530\n"
+"Last-Translator: Rajesh Ranjan <rajesh672@gmail.com>\n"
+"Language-Team: Maithili <bhashaghar@googlegroups.com>\n"
+"Language: mai\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"\n"
+
+#: kreplacements/kreplacements.h:105
+msgid "Continue"
+msgstr "जारी राखू"
+
+#: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158
+#: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512
+msgid "Cancel"
+msgstr "रद करू"
+
+#: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631
+msgid "Quit"
+msgstr "बाहर"
+
+#: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339
+msgid "Ok"
+msgstr "ठीक"
+
+#: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715
+msgid "Help"
+msgstr "मद्दति "
+
+#: kreplacements/kreplacements.cpp:185
+msgid "Defaults"
+msgstr "मूलभूत"
+
+#. i18n: file: kdiff3_shell.rc:4
+#. i18n: ectx: Menu (file)
+#: kreplacements/kreplacements.cpp:296 rc.cpp:14
+msgid "&File"
+msgstr "फाइल (&F)"
+
+#: kreplacements/kreplacements.cpp:297
+msgid "&Edit"
+msgstr "सँपादित करू (&E)"
+
+#. i18n: file: kdiff3_shell.rc:7
+#. i18n: ectx: Menu (directory)
+#: kreplacements/kreplacements.cpp:298 rc.cpp:17
+msgid "&Directory"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:50
+#. i18n: ectx: Menu (movement)
+#: kreplacements/kreplacements.cpp:301 rc.cpp:26
+msgid "&Movement"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:61
+#. i18n: ectx: Menu (diff)
+#: kreplacements/kreplacements.cpp:302 rc.cpp:29
+msgid "D&iffview"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:73
+#. i18n: ectx: Menu (merge)
+#: kreplacements/kreplacements.cpp:303 rc.cpp:32
+msgid "&Merge"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:95
+#. i18n: ectx: Menu (window)
+#: kreplacements/kreplacements.cpp:304 rc.cpp:35
+msgid "&Window"
+msgstr "विंडो (&W)"
+
+#: kreplacements/kreplacements.cpp:305
+msgid "&Settings"
+msgstr "जमावट (&S)"
+
+#: kreplacements/kreplacements.cpp:306
+msgid "&Help"
+msgstr "मद्दति (&H)"
+
+#: kreplacements/kreplacements.cpp:353
+msgid "&About"
+msgstr "क' संबंधमे (&A) "
+
+#: kreplacements/kreplacements.cpp:369
+msgid "A&uthor"
+msgstr "लेखक (&u)"
+
+#: kreplacements/kreplacements.cpp:383
+msgid "&Thanks To"
+msgstr "हिनका धन्यवाद (&T)"
+
+#. i18n: file: kdiff3_shell.rc:30
+#. i18n: ectx: Menu (dir_current_merge_menu)
+#: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497
+#: rc.cpp:20
+msgid "Current Item Merge Operation"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:38
+#. i18n: ectx: Menu (dir_current_sync_menu)
+#: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498
+#: rc.cpp:23
+msgid "Current Item Sync Operation"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:597
+msgid "Open"
+msgstr "खोलू"
+
+#: kreplacements/kreplacements.cpp:606
+msgid "Save"
+msgstr "सहेजू"
+
+#: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720
+msgid "Save As..."
+msgstr "एहन सहेजू..."
+
+#: kreplacements/kreplacements.cpp:623
+msgid "Print..."
+msgstr "छापू..."
+
+#: kreplacements/kreplacements.cpp:639
+msgid "Cut"
+msgstr "काटू"
+
+#: kreplacements/kreplacements.cpp:647
+msgid "Copy"
+msgstr "कापी करू"
+
+#: kreplacements/kreplacements.cpp:655
+msgid "Paste"
+msgstr "साटू"
+
+#: kreplacements/kreplacements.cpp:663
+msgid "Select All"
+msgstr "सभ चुनू"
+
+#: kreplacements/kreplacements.cpp:671
+msgid "Show Toolbar"
+msgstr "अओजारपट्टी देखाउ"
+
+#: kreplacements/kreplacements.cpp:679
+msgid "Show &Status Bar"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:687
+#, kde-format
+msgid "&Configure %1..."
+msgstr "%1 बिन्यस्त करू करू...(&C)"
+
+#: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707
+msgid "About"
+msgstr "क' बारेमे"
+
+#: kreplacements/kreplacements.cpp:722
+msgid "Find"
+msgstr "खोजू"
+
+#: kreplacements/kreplacements.cpp:730
+msgid "Find Next"
+msgstr "अगिला खोजू"
+
+#: kreplacements/kreplacements.cpp:750
+msgid "Select Font"
+msgstr "फोन्ट चुनू"
+
+#: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676
+msgid ""
+"You selected a variable width font.\n"
+"\n"
+"Because this program doesn't handle variable width fonts\n"
+"correctly, you might experience problems while editing.\n"
+"\n"
+"Do you want to continue or do you want to select another font."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:792
+msgid "Incompatible font."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Continue at my own risk"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Select another font"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1134
+msgid "For more documentation, see the help-menu or the subdirectory doc."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "KDiff3-Usage"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Ignore"
+msgstr "उपेक्षा"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Exit"
+msgstr "निकास"
+
+#: diff.cpp:251
+msgid "Writing clipboard data to temp file failed."
+msgstr ""
+
+#: diff.cpp:255
+msgid "From Clipboard"
+msgstr "क्लिपबोर्ड सँ"
+
+#: diff.cpp:471
+msgid "Expecting space after closing quotation mark."
+msgstr ""
+
+#: diff.cpp:474
+msgid "Not matching quotation marks."
+msgstr ""
+
+#: diff.cpp:496
+msgid "Unexpected quotation mark within argument."
+msgstr ""
+
+#: diff.cpp:503
+msgid "No program specified."
+msgstr ""
+
+#: diff.cpp:605
+#, kde-format
+msgid ""
+"Preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The preprocessing command will be disabled now."
+msgstr ""
+
+#: diff.cpp:653
+#, kde-format
+msgid ""
+"The line-matching-preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The line-matching-preprocessing command will be disabled now."
+msgstr ""
+
+#: diff.cpp:1776 diff.cpp:1790
+msgid ""
+"Data loss error:\n"
+"If it is reproducible please contact the author.\n"
+msgstr ""
+
+#: diff.cpp:1778 diff.cpp:1792
+msgid "Severe Internal Error"
+msgstr ""
+
+#: directorymergewindow.cpp:136
+msgid "Mix of links and normal files."
+msgstr ""
+
+#: directorymergewindow.cpp:143
+msgid "Link: "
+msgstr ""
+
+#: directorymergewindow.cpp:151
+msgid "Size. "
+msgstr ""
+
+#: directorymergewindow.cpp:164 directorymergewindow.cpp:174
+msgid "Date & Size: "
+msgstr ""
+
+#: directorymergewindow.cpp:184 directorymergewindow.cpp:190
+#, kde-format
+msgid "Creating temp copy of %1 failed."
+msgstr ""
+
+#: directorymergewindow.cpp:201 directorymergewindow.cpp:209
+#, kde-format
+msgid "Opening %1 failed."
+msgstr ""
+
+#: directorymergewindow.cpp:213
+msgid "Comparing file..."
+msgstr ""
+
+#: directorymergewindow.cpp:223 directorymergewindow.cpp:229
+#, kde-format
+msgid "Error reading from %1"
+msgstr ""
+
+#: directorymergewindow.cpp:358
+msgid "Name"
+msgstr "नाम"
+
+#: directorymergewindow.cpp:358
+msgid "Operation"
+msgstr "सँक्रिया"
+
+#: directorymergewindow.cpp:358
+msgid "Status"
+msgstr "स्थिति"
+
+#: directorymergewindow.cpp:359
+msgid "Unsolved"
+msgstr ""
+
+#: directorymergewindow.cpp:359
+msgid "Solved"
+msgstr ""
+
+#: directorymergewindow.cpp:359
+msgid "Nonwhite"
+msgstr ""
+
+#: directorymergewindow.cpp:359
+msgid "White"
+msgstr "उज्जर"
+
+#: directorymergewindow.cpp:388
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort "
+"the merge and rescan the directory?"
+msgstr ""
+
+#: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655
+#: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823
+msgid "Warning"
+msgstr "चेतावनी"
+
+#: directorymergewindow.cpp:390 directorymergewindow.cpp:2965
+msgid "Rescan"
+msgstr ""
+
+#: directorymergewindow.cpp:391 pdiff.cpp:1081
+msgid "Continue Merging"
+msgstr ""
+
+#: directorymergewindow.cpp:548
+msgid "Opening of directories failed:"
+msgstr ""
+
+#: directorymergewindow.cpp:551
+#, kde-format
+msgid "Dir A \"%1\" does not exist or is not a directory.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:554
+#, kde-format
+msgid "Dir B \"%1\" does not exist or is not a directory.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:557
+#, kde-format
+msgid "Dir C \"%1\" does not exist or is not a directory.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:559
+msgid "Directory Open Error"
+msgstr ""
+
+#: directorymergewindow.cpp:567
+msgid ""
+"The destination directory must not be the same as A or B when three "
+"directories are merged.\n"
+"Check again before continuing."
+msgstr ""
+
+#: directorymergewindow.cpp:569
+msgid "Parameter Warning"
+msgstr ""
+
+#: directorymergewindow.cpp:574
+msgid "Scanning directories..."
+msgstr ""
+
+#: directorymergewindow.cpp:607
+msgid "Reading Directory A"
+msgstr ""
+
+#: directorymergewindow.cpp:629
+msgid "Reading Directory B"
+msgstr ""
+
+#: directorymergewindow.cpp:651
+msgid "Reading Directory C"
+msgstr ""
+
+#: directorymergewindow.cpp:677
+msgid "Some subdirectories were not readable in"
+msgstr ""
+
+#: directorymergewindow.cpp:682
+msgid "Check the permissions of the subdirectories."
+msgstr ""
+
+#: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737
+#: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233
+#: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328
+msgid "Ready."
+msgstr ""
+
+#: directorymergewindow.cpp:735
+msgid "Directory Comparison Status"
+msgstr ""
+
+#: directorymergewindow.cpp:736
+msgid "Number of subdirectories:"
+msgstr ""
+
+#: directorymergewindow.cpp:737
+msgid "Number of equal files:"
+msgstr ""
+
+#: directorymergewindow.cpp:738
+msgid "Number of different files:"
+msgstr ""
+
+#: directorymergewindow.cpp:741
+msgid "Number of manual merges:"
+msgstr ""
+
+#: directorymergewindow.cpp:912
+msgid "This affects all merge operations."
+msgstr ""
+
+#: directorymergewindow.cpp:913
+msgid "Changing All Merge Operations"
+msgstr ""
+
+#: directorymergewindow.cpp:1312
+msgid "Processing "
+msgstr ""
+
+#: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742
+msgid "To do."
+msgstr ""
+
+#: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996
+msgid "Copy A to B"
+msgstr ""
+
+#: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997
+msgid "Copy B to A"
+msgstr ""
+
+#: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998
+msgid "Delete A"
+msgstr ""
+
+#: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999
+msgid "Delete B"
+msgstr ""
+
+#: directorymergewindow.cpp:1814
+msgid "Delete A & B"
+msgstr ""
+
+#: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001
+msgid "Merge to A"
+msgstr ""
+
+#: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002
+msgid "Merge to B"
+msgstr ""
+
+#: directorymergewindow.cpp:1817
+msgid "Merge to A & B"
+msgstr ""
+
+#: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993
+msgid "Delete (if exists)"
+msgstr ""
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+#: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869
+msgid "Merge"
+msgstr "मिलाबू"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+msgid "Merge (manual)"
+msgstr ""
+
+#: directorymergewindow.cpp:1824
+msgid "Error: Conflicting File Types"
+msgstr ""
+
+#: directorymergewindow.cpp:1825
+msgid "Error: Changed and Deleted"
+msgstr ""
+
+#: directorymergewindow.cpp:1826
+msgid "Error: Dates are equal but files are not."
+msgstr ""
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906
+msgid "This operation is currently not possible."
+msgstr ""
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174
+msgid "Operation Not Possible"
+msgstr ""
+
+#: directorymergewindow.cpp:1945
+msgid ""
+"This should never happen: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"If you know how to reproduce this, please contact the program author."
+msgstr ""
+
+#: directorymergewindow.cpp:1945
+msgid "Program Error"
+msgstr ""
+
+#: directorymergewindow.cpp:1956
+msgid "An error occurred while copying.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025
+#: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105
+#: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123
+#: directorymergewindow.cpp:2374
+msgid "Error"
+msgstr "त्रुटि"
+
+#: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375
+msgid "Merge Error"
+msgstr ""
+
+#: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380
+msgid "Error."
+msgstr "त्रुटि."
+
+#: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272
+#: directorymergewindow.cpp:2312
+msgid "Done."
+msgstr "सम्पन्न"
+
+#: directorymergewindow.cpp:1990
+msgid "Not saved."
+msgstr ""
+
+#: directorymergewindow.cpp:2025
+msgid "Unknown merge operation. (This must never happen!)"
+msgstr ""
+
+#: directorymergewindow.cpp:2057
+msgid "Unknown merge operation."
+msgstr ""
+
+#: directorymergewindow.cpp:2072
+msgid ""
+"The merge is about to begin.\n"
+"\n"
+"Choose \"Do it\" if you have read the instructions and know what you are "
+"doing.\n"
+"Choosing \"Simulate it\" will tell you what would happen.\n"
+"\n"
+"Be aware that this program still has beta status and there is NO WARRANTY "
+"whatsoever! Make backups of your vital data!"
+msgstr ""
+
+#: directorymergewindow.cpp:2077
+msgid "Starting Merge"
+msgstr ""
+
+#: directorymergewindow.cpp:2078
+msgid "Do It"
+msgstr ""
+
+#: directorymergewindow.cpp:2079
+msgid "Simulate It"
+msgstr ""
+
+#: directorymergewindow.cpp:2105
+msgid ""
+"The highlighted item has a different type in the different directories. "
+"Select what to do."
+msgstr ""
+
+#: directorymergewindow.cpp:2114
+msgid ""
+"The modification dates of the file are equal but the files are not. Select "
+"what to do."
+msgstr ""
+
+#: directorymergewindow.cpp:2123
+msgid ""
+"The highlighted item was changed in one directory and deleted in the other. "
+"Select what to do."
+msgstr ""
+
+#: directorymergewindow.cpp:2174
+msgid ""
+"This operation is currently not possible because directory merge is "
+"currently running."
+msgstr ""
+
+#: directorymergewindow.cpp:2234
+msgid ""
+"There was an error in the last step.\n"
+"Do you want to continue with the item that caused the error or do you want "
+"to skip this item?"
+msgstr ""
+
+#: directorymergewindow.cpp:2236
+msgid "Continue merge after an error"
+msgstr ""
+
+#: directorymergewindow.cpp:2237
+msgid "Continue With Last Item"
+msgstr ""
+
+#: directorymergewindow.cpp:2238
+msgid "Skip Item"
+msgstr ""
+
+#: directorymergewindow.cpp:2272
+msgid "Skipped."
+msgstr ""
+
+#: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493
+msgid "In progress..."
+msgstr ""
+
+#: directorymergewindow.cpp:2327
+msgid "Merge operation complete."
+msgstr ""
+
+#: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330
+msgid "Merge Complete"
+msgstr ""
+
+#: directorymergewindow.cpp:2340
+msgid ""
+"Simulated merge complete: Check if you agree with the proposed operations."
+msgstr ""
+
+#: directorymergewindow.cpp:2374
+msgid "An error occurred. Press OK to see detailed information.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:2406
+#, kde-format
+msgid "Error: While deleting %1: Creating backup failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2413
+#, kde-format
+msgid "delete directory recursively( %1 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2415
+#, kde-format
+msgid "delete( %1 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2430
+msgid "Error: delete dir operation failed while trying to read the directory."
+msgstr ""
+
+#: directorymergewindow.cpp:2449
+#, kde-format
+msgid "Error: rmdir( %1 ) operation failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2459
+msgid "Error: delete operation failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2485
+#, kde-format
+msgid "manual merge( %1, %2, %3 -> %4)"
+msgstr ""
+
+#: directorymergewindow.cpp:2488
+msgid ""
+"     Note: After a manual merge the user should continue by pressing F7."
+msgstr ""
+
+#: directorymergewindow.cpp:2513
+#, kde-format
+msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2522
+#, kde-format
+msgid "copyLink( %1 -> %2 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2533
+msgid "Error: copyLink failed: Remote links are not yet supported."
+msgstr ""
+
+#: directorymergewindow.cpp:2539
+msgid "Error: copyLink failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2564
+#, kde-format
+msgid "copy( %1 -> %2 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2590
+#, kde-format
+msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination."
+msgstr ""
+
+#: directorymergewindow.cpp:2596
+#, kde-format
+msgid "rename( %1 -> %2 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2605
+msgid "Error: Rename failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2623
+#, kde-format
+msgid "Error during makeDir of %1. Cannot delete existing file."
+msgstr ""
+
+#: directorymergewindow.cpp:2639
+#, kde-format
+msgid "makeDir( %1 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2649
+msgid "Error while creating directory."
+msgstr ""
+
+#: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784
+msgid "Dest"
+msgstr ""
+
+#: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709
+msgid "Dir"
+msgstr "निर्देशिका"
+
+#: directorymergewindow.cpp:2678
+msgid "Type"
+msgstr "प्रकार"
+
+#: directorymergewindow.cpp:2678
+msgid "Size"
+msgstr "आकार"
+
+#: directorymergewindow.cpp:2679
+msgid "Attr"
+msgstr ""
+
+#: directorymergewindow.cpp:2679
+msgid "Last Modification"
+msgstr ""
+
+#: directorymergewindow.cpp:2679
+msgid "Link-Destination"
+msgstr ""
+
+#: directorymergewindow.cpp:2709 difftextwindow.cpp:401
+msgid "File"
+msgstr "फाइल"
+
+#: directorymergewindow.cpp:2726
+msgid "not available"
+msgstr "उपलब्ध नहि"
+
+#: directorymergewindow.cpp:2746
+msgid "A (Dest): "
+msgstr ""
+
+#: directorymergewindow.cpp:2749
+msgid "A (Base): "
+msgstr ""
+
+#: directorymergewindow.cpp:2755
+msgid "B (Dest): "
+msgstr ""
+
+#: directorymergewindow.cpp:2763
+msgid "C (Dest): "
+msgstr ""
+
+#: directorymergewindow.cpp:2769
+msgid "Dest: "
+msgstr ""
+
+#: directorymergewindow.cpp:2836
+msgid "Save Directory Merge State As..."
+msgstr ""
+
+#: directorymergewindow.cpp:2959
+msgid "Start/Continue Directory Merge"
+msgstr ""
+
+#: directorymergewindow.cpp:2960
+msgid "Run Operation for Current Item"
+msgstr ""
+
+#: directorymergewindow.cpp:2961
+msgid "Compare Selected File"
+msgstr ""
+
+#: directorymergewindow.cpp:2962
+msgid "Merge Current File"
+msgstr ""
+
+#: directorymergewindow.cpp:2962
+msgid ""
+"Merge\n"
+"File"
+msgstr ""
+
+#: directorymergewindow.cpp:2963
+msgid "Fold All Subdirs"
+msgstr ""
+
+#: directorymergewindow.cpp:2964
+msgid "Unfold All Subdirs"
+msgstr ""
+
+#: directorymergewindow.cpp:2968
+msgid "Choose A for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2969
+msgid "Choose B for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2970
+msgid "Choose C for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2971
+msgid "Auto-Choose Operation for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2972
+msgid "No Operation for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2977
+msgid "Show Identical Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2977
+msgid ""
+"Identical\n"
+"Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2978
+msgid "Show Different Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2979
+msgid "Show Files only in A"
+msgstr ""
+
+#: directorymergewindow.cpp:2979
+msgid ""
+"Files\n"
+"only in A"
+msgstr ""
+
+#: directorymergewindow.cpp:2980
+msgid "Show Files only in B"
+msgstr ""
+
+#: directorymergewindow.cpp:2980
+msgid ""
+"Files\n"
+"only in B"
+msgstr ""
+
+#: directorymergewindow.cpp:2981
+msgid "Show Files only in C"
+msgstr ""
+
+#: directorymergewindow.cpp:2981
+msgid ""
+"Files\n"
+"only in C"
+msgstr ""
+
+#: directorymergewindow.cpp:2985
+msgid "Compare Explicitly Selected Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2986
+msgid "Merge Explicitly Selected Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995
+msgid "Do Nothing"
+msgstr "किछु नहि करू"
+
+#: directorymergewindow.cpp:2989
+msgid "A"
+msgstr "A"
+
+#: directorymergewindow.cpp:2990
+msgid "B"
+msgstr "B"
+
+#: directorymergewindow.cpp:2991
+msgid "C"
+msgstr "C"
+
+#: directorymergewindow.cpp:3000
+msgid "Delete A && B"
+msgstr ""
+
+#: directorymergewindow.cpp:3003
+msgid "Merge to A && B"
+msgstr ""
+
+#: main.cpp:74 main.cpp:76
+msgid "Ignored. (User defined.)"
+msgstr ""
+
+#: main.cpp:162
+msgid "kdiff3"
+msgstr ""
+
+#: main.cpp:164
+msgid "Tool for Comparison and Merge of Files and Directories"
+msgstr ""
+
+#: main.cpp:165
+msgid "(c) 2002-2011 Joachim Eibl"
+msgstr ""
+
+#: main.cpp:172 kdiff3_part.cpp:303
+msgid "Joachim Eibl"
+msgstr ""
+
+#: main.cpp:173
+msgid "Eike Sauer"
+msgstr ""
+
+#: main.cpp:173
+msgid "Bugfixes, Debian package maintainer"
+msgstr ""
+
+#: main.cpp:174
+msgid "Sebastien Fricker"
+msgstr ""
+
+#: main.cpp:174
+msgid "Windows installer"
+msgstr ""
+
+#: main.cpp:175
+msgid "Stephan Binner"
+msgstr "स्टीफन बिनर"
+
+#: main.cpp:175
+msgid "i18n-help"
+msgstr ""
+
+#: main.cpp:176
+msgid "Stefan Partheymueller"
+msgstr ""
+
+#: main.cpp:176
+msgid "Clipboard-patch"
+msgstr ""
+
+#: main.cpp:177
+msgid "David Faure"
+msgstr "डेविड फाउरे"
+
+#: main.cpp:177
+msgid "KIO-Help"
+msgstr ""
+
+#: main.cpp:178
+msgid "Bernd Gehrmann"
+msgstr "बेर्न्द गेहर्मन"
+
+#: main.cpp:178
+msgid "Class CvsIgnoreList from Cervisia"
+msgstr ""
+
+#: main.cpp:179
+msgid "Andre Woebbeking"
+msgstr ""
+
+#: main.cpp:179
+msgid "Class StringMatcher"
+msgstr ""
+
+#: main.cpp:180
+msgid "Michael Denio"
+msgstr ""
+
+#: main.cpp:180
+msgid "Directory Equality-Coloring patch"
+msgstr ""
+
+#: main.cpp:181
+msgid "Manfred Koehler"
+msgstr ""
+
+#: main.cpp:181
+msgid "Fix for slow startup on Windows"
+msgstr ""
+
+#: main.cpp:182
+msgid "Sergey Zorin"
+msgstr ""
+
+#: main.cpp:182
+msgid "Diff Ext for Windows"
+msgstr ""
+
+#: main.cpp:183
+msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+msgstr ""
+
+#: main.cpp:183
+msgid "GNU-Diffutils"
+msgstr ""
+
+#: main.cpp:184
+msgid "Tino Boellsterling, Timothy Mee"
+msgstr ""
+
+#: main.cpp:184
+msgid "Intensive test, use and feedback"
+msgstr ""
+
+#: main.cpp:185
+msgid "Michael Schmidt"
+msgstr ""
+
+#: main.cpp:185
+msgid "Mac support"
+msgstr ""
+
+#: main.cpp:186
+msgid "Valentin Rusu"
+msgstr ""
+
+#: main.cpp:186 main.cpp:187
+msgid "KDE4 porting"
+msgstr ""
+
+#: main.cpp:187
+msgid "Albert Astals Cid"
+msgstr "Albert Astals Cid"
+
+#: main.cpp:188
+msgid "Silvan Scherrer"
+msgstr ""
+
+#: main.cpp:188
+msgid "OS2 port"
+msgstr ""
+
+#: main.cpp:190
+msgid "+ Many thanks to those who reported bugs and contributed ideas!"
+msgstr ""
+
+#: main.cpp:196
+msgid "Merge the input."
+msgstr ""
+
+#: main.cpp:197
+msgid "Explicit base file. For compatibility with certain tools."
+msgstr ""
+
+#: main.cpp:198
+msgid "Output file. Implies -m. E.g.: -o newfile.txt"
+msgstr ""
+
+#: main.cpp:199
+msgid "Output file, again. (For compatibility with certain tools.)"
+msgstr ""
+
+#: main.cpp:200
+msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)"
+msgstr ""
+
+#: main.cpp:201
+msgid "Don't solve conflicts automatically. (For compatibility...)"
+msgstr ""
+
+#: main.cpp:202
+msgid "Visible name replacement for input file 1 (base)."
+msgstr ""
+
+#: main.cpp:203
+msgid "Visible name replacement for input file 2."
+msgstr ""
+
+#: main.cpp:204
+msgid "Visible name replacement for input file 3."
+msgstr ""
+
+#: main.cpp:205
+msgid "Alternative visible name replacement. Supply this once for every input."
+msgstr ""
+
+#: main.cpp:206
+msgid ""
+"Override a config setting. Use once for every setting. E.g.: --cs "
+"\"AutoAdvance=1\""
+msgstr ""
+
+#: main.cpp:207
+msgid "Show list of config settings and current values."
+msgstr ""
+
+#: main.cpp:208
+msgid "Use a different config file."
+msgstr ""
+
+#: main.cpp:211
+msgid "file1 to open (base, if not specified via --base)"
+msgstr ""
+
+#: main.cpp:212
+msgid "file2 to open"
+msgstr ""
+
+#: main.cpp:213
+msgid "file3 to open"
+msgstr ""
+
+#: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976
+#: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002
+#: mergeresultwindow.cpp:1014
+#, kde-format
+msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)"
+msgstr ""
+
+#: mergeresultwindow.cpp:303
+msgid ""
+"The output has been modified.\n"
+"If you continue your changes will be lost."
+msgstr ""
+
+#: mergeresultwindow.cpp:834 pdiff.cpp:532
+msgid "All input files are binary equal."
+msgstr ""
+
+#: mergeresultwindow.cpp:836
+msgid "All input files contain the same text."
+msgstr ""
+
+#: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840
+#: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540
+#, kde-format
+msgid "Files %1 and %2 are binary equal.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841
+#: mergeresultwindow.cpp:843
+#, kde-format
+msgid "Files %1 and %2 have equal text.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:849
+msgid "Total number of conflicts: "
+msgstr ""
+
+#: mergeresultwindow.cpp:850
+msgid ""
+"\n"
+"Nr of automatically solved conflicts: "
+msgstr ""
+
+#: mergeresultwindow.cpp:851
+msgid ""
+"\n"
+"Nr of unsolved conflicts: "
+msgstr ""
+
+#: mergeresultwindow.cpp:853
+msgid "Conflicts"
+msgstr "संघर्ष"
+
+#: mergeresultwindow.cpp:1728
+msgid "<No src line>"
+msgstr ""
+
+#: mergeresultwindow.cpp:1736
+msgid "<Merge Conflict (Whitespace only)>"
+msgstr ""
+
+#: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517
+msgid "<Merge Conflict>"
+msgstr ""
+
+#: mergeresultwindow.cpp:2725
+msgid ""
+"Not all conflicts are solved yet.\n"
+"File not saved.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736
+msgid "Conflicts Left"
+msgstr ""
+
+#: mergeresultwindow.cpp:2734
+msgid ""
+"There is a line end style conflict. Please choose the line end style "
+"manually.\n"
+"File not saved.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:2748
+msgid ""
+"\n"
+"\n"
+"Creating backup failed. File not saved."
+msgstr ""
+
+#: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792
+msgid "File Save Error"
+msgstr ""
+
+#: mergeresultwindow.cpp:2792
+msgid "Error while writing."
+msgstr ""
+
+#: mergeresultwindow.cpp:3122
+msgid "Output"
+msgstr "आउटपुट"
+
+#: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314
+msgid "[Modified]"
+msgstr ""
+
+#: mergeresultwindow.cpp:3141
+msgid "Encoding for saving"
+msgstr ""
+
+#: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737
+#: optiondialog.cpp:762
+msgid "Line end style:"
+msgstr ""
+
+#: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767
+msgid "Unix"
+msgstr ""
+
+#: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737
+msgid "DOS"
+msgstr ""
+
+#: mergeresultwindow.cpp:3229
+msgid "Conflict"
+msgstr "विरोध"
+
+#: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263
+#: mergeresultwindow.cpp:3265
+msgid "Codec from"
+msgstr ""
+
+#: kdiff3_part.cpp:157 kdiff3_part.cpp:234
+msgid "Couldn't find files for comparison."
+msgstr ""
+
+#: kdiff3_part.cpp:302
+msgid "KDiff3Part"
+msgstr ""
+
+#: fileaccess.cpp:612
+msgid ""
+"While trying to make a backup, deleting an older backup failed. \n"
+"Filename: "
+msgstr ""
+
+#: fileaccess.cpp:619
+msgid ""
+"While trying to make a backup, renaming failed. \n"
+"Filenames: "
+msgstr ""
+
+#: fileaccess.cpp:643
+#, kde-format
+msgid "Getting file status: %1"
+msgstr ""
+
+#: fileaccess.cpp:686
+#, kde-format
+msgid "Reading file: %1"
+msgstr ""
+
+#: fileaccess.cpp:723
+#, kde-format
+msgid "Writing file: %1"
+msgstr ""
+
+#: fileaccess.cpp:751
+msgid "Out of memory"
+msgstr "स्मृति सँ बाहर"
+
+#: fileaccess.cpp:786
+#, kde-format
+msgid "Making directory: %1"
+msgstr ""
+
+#: fileaccess.cpp:806
+#, kde-format
+msgid "Removing directory: %1"
+msgstr ""
+
+#: fileaccess.cpp:821
+#, kde-format
+msgid "Removing file: %1"
+msgstr ""
+
+#: fileaccess.cpp:837
+#, kde-format
+msgid "Creating symbolic link: %1 -> %2"
+msgstr ""
+
+#: fileaccess.cpp:864
+#, kde-format
+msgid "Renaming file: %1 -> %2"
+msgstr ""
+
+#: fileaccess.cpp:897
+#, kde-format
+msgid "Copying file: %1 -> %2"
+msgstr ""
+
+#: fileaccess.cpp:911
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for reading failed. Filename: "
+"%1"
+msgstr ""
+
+#: fileaccess.cpp:917
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for writing failed. Filename: "
+"%1"
+msgstr ""
+
+#: fileaccess.cpp:932
+#, kde-format
+msgid "Error during file copy operation: Reading failed. Filename: %1"
+msgstr ""
+
+#: fileaccess.cpp:941
+#, kde-format
+msgid "Error during file copy operation: Writing failed. Filename: %1"
+msgstr ""
+
+#: fileaccess.cpp:1231
+msgid "Reading directory: "
+msgstr ""
+
+#: fileaccess.cpp:1355
+#, kde-format
+msgid "Listing directory: %1"
+msgstr ""
+
+#: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396
+msgid "&Cancel"
+msgstr "रद्द करू (&C)"
+
+#: difftextwindow.cpp:403
+msgid "Line"
+msgstr "रेखा"
+
+#: difftextwindow.cpp:405
+msgid "Line not available"
+msgstr ""
+
+#: difftextwindow.cpp:1703 difftextwindow.cpp:1736
+msgid "Encoding:"
+msgstr "एनकोडिंग:"
+
+#: difftextwindow.cpp:1759 kdiff3.cpp:831
+msgid "Top line"
+msgstr ""
+
+#: difftextwindow.cpp:1769
+msgid "End"
+msgstr "अंत"
+
+#: kdiff3.cpp:169
+msgid "Current Configuration:"
+msgstr ""
+
+#: kdiff3.cpp:174
+msgid "Config Option Error:"
+msgstr ""
+
+#: kdiff3.cpp:219
+msgid "Option --auto used, but no output file specified."
+msgstr ""
+
+#: kdiff3.cpp:369
+msgid "Option --auto ignored for directory comparison."
+msgstr ""
+
+#: kdiff3.cpp:405
+msgid "Saving failed."
+msgstr ""
+
+#: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214
+msgid "Opening of these files failed:"
+msgstr ""
+
+#: kdiff3.cpp:449
+msgid "File Open Error"
+msgstr ""
+
+#: kdiff3.cpp:477
+msgid "Opens documents for comparison..."
+msgstr ""
+
+#: kdiff3.cpp:479
+msgid "Reload"
+msgstr "पुनः लोड करू"
+
+#: kdiff3.cpp:482
+msgid "Saves the merge result. All conflicts must be solved!"
+msgstr ""
+
+#: kdiff3.cpp:484
+msgid "Saves the current document as..."
+msgstr ""
+
+#: kdiff3.cpp:487
+msgid "Print the differences"
+msgstr ""
+
+#: kdiff3.cpp:490
+msgid "Quits the application"
+msgstr ""
+
+#: kdiff3.cpp:492
+msgid "Cuts the selected section and puts it to the clipboard"
+msgstr ""
+
+#: kdiff3.cpp:494
+msgid "Copies the selected section to the clipboard"
+msgstr ""
+
+#: kdiff3.cpp:496
+msgid "Pastes the clipboard contents to current position"
+msgstr ""
+
+#: kdiff3.cpp:498
+msgid "Select everything in current window"
+msgstr ""
+
+#: kdiff3.cpp:500
+msgid "Search for a string"
+msgstr "स्ट्रिंग लेल ढूँढू"
+
+#: kdiff3.cpp:502
+msgid "Search again for the string"
+msgstr ""
+
+#: kdiff3.cpp:507
+msgid "Enables/disables the statusbar"
+msgstr ""
+
+#: kdiff3.cpp:511
+msgid "Configure KDiff3..."
+msgstr ""
+
+#: kdiff3.cpp:532
+msgid "Go to Current Delta"
+msgstr ""
+
+#: kdiff3.cpp:532
+msgid ""
+"Current\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:534
+msgid "Go to First Delta"
+msgstr ""
+
+#: kdiff3.cpp:534
+msgid ""
+"First\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:536
+msgid "Go to Last Delta"
+msgstr ""
+
+#: kdiff3.cpp:536
+msgid ""
+"Last\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:538
+msgid "(Skips white space differences when \"Show White Space\" is disabled.)"
+msgstr ""
+
+#: kdiff3.cpp:539
+msgid ""
+"(Does not skip white space differences even when \"Show White Space\" is "
+"disabled.)"
+msgstr ""
+
+#: kdiff3.cpp:540
+msgid "Go to Previous Delta"
+msgstr ""
+
+#: kdiff3.cpp:540
+msgid ""
+"Prev\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:542
+msgid "Go to Next Delta"
+msgstr ""
+
+#: kdiff3.cpp:542
+msgid ""
+"Next\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:544
+msgid "Go to Previous Conflict"
+msgstr ""
+
+#: kdiff3.cpp:544
+msgid ""
+"Prev\n"
+"Conflict"
+msgstr ""
+
+#: kdiff3.cpp:546
+msgid "Go to Next Conflict"
+msgstr ""
+
+#: kdiff3.cpp:546
+msgid ""
+"Next\n"
+"Conflict"
+msgstr ""
+
+#: kdiff3.cpp:548
+msgid "Go to Previous Unsolved Conflict"
+msgstr ""
+
+#: kdiff3.cpp:548
+msgid ""
+"Prev\n"
+"Unsolved"
+msgstr ""
+
+#: kdiff3.cpp:550
+msgid "Go to Next Unsolved Conflict"
+msgstr ""
+
+#: kdiff3.cpp:550
+msgid ""
+"Next\n"
+"Unsolved"
+msgstr ""
+
+#: kdiff3.cpp:552
+msgid "Select Line(s) From A"
+msgstr ""
+
+#: kdiff3.cpp:552
+msgid ""
+"Choose\n"
+"A"
+msgstr ""
+
+#: kdiff3.cpp:553
+msgid "Select Line(s) From B"
+msgstr ""
+
+#: kdiff3.cpp:553
+msgid ""
+"Choose\n"
+"B"
+msgstr ""
+
+#: kdiff3.cpp:554
+msgid "Select Line(s) From C"
+msgstr ""
+
+#: kdiff3.cpp:554
+msgid ""
+"Choose\n"
+"C"
+msgstr ""
+
+#: kdiff3.cpp:555
+msgid "Automatically Go to Next Unsolved Conflict After Source Selection"
+msgstr ""
+
+#: kdiff3.cpp:555
+msgid ""
+"Auto\n"
+"Next"
+msgstr ""
+
+#: kdiff3.cpp:557
+msgid "Show Space && Tabulator Characters for Differences"
+msgstr ""
+
+#: kdiff3.cpp:557
+msgid ""
+"White\n"
+"Characters"
+msgstr ""
+
+#: kdiff3.cpp:558
+msgid "Show White Space"
+msgstr ""
+
+#: kdiff3.cpp:558
+msgid ""
+"White\n"
+"Deltas"
+msgstr ""
+
+#: kdiff3.cpp:560
+msgid "Show Line Numbers"
+msgstr "पंक्ति सँख्यासभ देखाबू"
+
+#: kdiff3.cpp:560
+msgid ""
+"Line\n"
+"Numbers"
+msgstr ""
+
+#: kdiff3.cpp:561
+msgid "Choose A Everywhere"
+msgstr ""
+
+#: kdiff3.cpp:562
+msgid "Choose B Everywhere"
+msgstr ""
+
+#: kdiff3.cpp:563
+msgid "Choose C Everywhere"
+msgstr ""
+
+#: kdiff3.cpp:564
+msgid "Choose A for All Unsolved Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:565
+msgid "Choose B for All Unsolved Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:566
+msgid "Choose C for All Unsolved Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:567
+msgid "Choose A for All Unsolved Whitespace Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:568
+msgid "Choose B for All Unsolved Whitespace Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:569
+msgid "Choose C for All Unsolved Whitespace Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:570
+msgid "Automatically Solve Simple Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:571
+msgid "Set Deltas to Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:572
+msgid "Run Regular Expression Auto Merge"
+msgstr ""
+
+#: kdiff3.cpp:573
+msgid "Automatically Solve History Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:574
+msgid "Split Diff At Selection"
+msgstr ""
+
+#: kdiff3.cpp:575
+msgid "Join Selected Diffs"
+msgstr ""
+
+#: kdiff3.cpp:577
+msgid "Show Window A"
+msgstr ""
+
+#: kdiff3.cpp:578
+msgid "Show Window B"
+msgstr ""
+
+#: kdiff3.cpp:579
+msgid "Show Window C"
+msgstr ""
+
+#: kdiff3.cpp:580 kdiff3.cpp:591
+msgid "Focus Next Window"
+msgstr ""
+
+#: kdiff3.cpp:582
+msgid "Normal Overview"
+msgstr ""
+
+#: kdiff3.cpp:583
+msgid "A vs. B Overview"
+msgstr ""
+
+#: kdiff3.cpp:584
+msgid "A vs. C Overview"
+msgstr ""
+
+#: kdiff3.cpp:585
+msgid "B vs. C Overview"
+msgstr ""
+
+#: kdiff3.cpp:586
+msgid "Word Wrap Diff Windows"
+msgstr ""
+
+#: kdiff3.cpp:587
+msgid "Add Manual Diff Alignment"
+msgstr ""
+
+#: kdiff3.cpp:588
+msgid "Clear All Manual Diff Alignments"
+msgstr ""
+
+#: kdiff3.cpp:593
+msgid "Focus Prev Window"
+msgstr ""
+
+#: kdiff3.cpp:594
+msgid "Toggle Split Orientation"
+msgstr ""
+
+#: kdiff3.cpp:596
+msgid "Dir && Text Split Screen View"
+msgstr ""
+
+#: kdiff3.cpp:598
+msgid "Toggle Between Dir && Text View"
+msgstr ""
+
+#: kdiff3.cpp:654 pdiff.cpp:1812
+msgid "The merge result hasn't been saved."
+msgstr ""
+
+#: kdiff3.cpp:656
+msgid "Save && Quit"
+msgstr ""
+
+#: kdiff3.cpp:657
+msgid "Quit Without Saving"
+msgstr ""
+
+#: kdiff3.cpp:665 pdiff.cpp:1823
+msgid "Saving the merge result failed."
+msgstr ""
+
+#: kdiff3.cpp:676 pdiff.cpp:1078
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort?"
+msgstr ""
+
+#: kdiff3.cpp:701
+msgid "Saving file..."
+msgstr ""
+
+#: kdiff3.cpp:718
+msgid "Saving file with a new filename..."
+msgstr ""
+
+#: kdiff3.cpp:781
+msgid "Printing not implemented."
+msgstr ""
+
+#: kdiff3.cpp:815
+msgid "Printing..."
+msgstr "छपाइ भए रहल अछि..."
+
+#: kdiff3.cpp:956
+msgid "Selection"
+msgstr "चुनाव"
+
+#: kdiff3.cpp:982
+msgid "Printing completed."
+msgstr ""
+
+#: kdiff3.cpp:986
+msgid "Printing aborted."
+msgstr ""
+
+#: kdiff3.cpp:993
+msgid "Exiting..."
+msgstr ""
+
+#: kdiff3.cpp:1006
+msgid "Toggling toolbar..."
+msgstr ""
+
+#: kdiff3.cpp:1027
+msgid "Toggle the statusbar..."
+msgstr ""
+
+#: smalldialogs.cpp:58
+msgid "A (Base):"
+msgstr ""
+
+#: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99
+#: smalldialogs.cpp:142
+msgid "File..."
+msgstr ""
+
+#: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101
+#: smalldialogs.cpp:144
+msgid "Dir..."
+msgstr ""
+
+#: smalldialogs.cpp:93
+msgid "C (Optional):"
+msgstr ""
+
+#: smalldialogs.cpp:116
+msgid "Swap/Copy Names ..."
+msgstr ""
+
+#: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123
+#, kde-format
+msgid "Swap %1<->%2"
+msgstr ""
+
+#: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126
+#, kde-format
+msgid "Copy %1->Output"
+msgstr ""
+
+#: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129
+#, kde-format
+msgid "Swap %1<->Output"
+msgstr ""
+
+#: smalldialogs.cpp:136
+msgid "Output (optional):"
+msgstr ""
+
+#: smalldialogs.cpp:168
+msgid "Configure..."
+msgstr "कान्फिगर..."
+
+#: smalldialogs.cpp:174
+msgid "&OK"
+msgstr "बेस (&O)"
+
+#: smalldialogs.cpp:362
+msgid "Search text:"
+msgstr ""
+
+#: smalldialogs.cpp:369
+msgid "Case sensitive"
+msgstr "स्थितिक प्रति संवेदनशील"
+
+#: smalldialogs.cpp:372
+msgid "Search A"
+msgstr ""
+
+#: smalldialogs.cpp:377
+msgid "Search B"
+msgstr ""
+
+#: smalldialogs.cpp:382
+msgid "Search C"
+msgstr ""
+
+#: smalldialogs.cpp:387
+msgid "Search output"
+msgstr ""
+
+#: smalldialogs.cpp:392
+msgid "&Search"
+msgstr "खोज (&S)"
+
+#: smalldialogs.cpp:409
+msgid "Regular Expression Tester"
+msgstr ""
+
+#: smalldialogs.cpp:414 optiondialog.cpp:936
+msgid "Auto merge regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:422
+msgid "Example auto merge line:"
+msgstr ""
+
+#: smalldialogs.cpp:424
+msgid "To test auto merge, copy a line as used in your files."
+msgstr ""
+
+#: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494
+msgid "Match result:"
+msgstr ""
+
+#: smalldialogs.cpp:441 optiondialog.cpp:962
+msgid "History start regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:449
+msgid "Example history start line (with leading comment):"
+msgstr ""
+
+#: smalldialogs.cpp:451
+msgid ""
+"Copy a history start line as used in your files,\n"
+"including the leading comment."
+msgstr ""
+
+#: smalldialogs.cpp:469 optiondialog.cpp:972
+msgid "History entry start regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:477
+msgid "History sort key order:"
+msgstr ""
+
+#: smalldialogs.cpp:485
+msgid "Example history entry start line (without leading comment):"
+msgstr ""
+
+#: smalldialogs.cpp:487
+msgid ""
+"Copy a history entry start line as used in your files,\n"
+"but omit the leading comment."
+msgstr ""
+
+#: smalldialogs.cpp:501
+msgid "Sort key result:"
+msgstr ""
+
+#: smalldialogs.cpp:508
+msgid "OK"
+msgstr "बेस"
+
+#: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583
+msgid "Match success."
+msgstr ""
+
+#: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589
+msgid "Match failed."
+msgstr ""
+
+#: smalldialogs.cpp:574
+msgid "Opening and closing parentheses do not match in regular expression."
+msgstr ""
+
+#: optiondialog.cpp:367
+msgid "Unicode, 8 bit"
+msgstr ""
+
+#: optiondialog.cpp:368
+msgid "Unicode"
+msgstr "यूनिकोड"
+
+#: optiondialog.cpp:369
+msgid "Latin1"
+msgstr ""
+
+#: optiondialog.cpp:388
+msgid "Change this if non-ASCII characters are not displayed correctly."
+msgstr ""
+
+#: optiondialog.cpp:465
+msgid "Configure"
+msgstr "बिन्यस्त करू"
+
+#: optiondialog.cpp:531
+msgid "Font"
+msgstr "फोन्ट"
+
+#: optiondialog.cpp:532
+msgid "Editor & Diff Output Font"
+msgstr ""
+
+#: optiondialog.cpp:556
+msgid "Italic font for deltas"
+msgstr ""
+
+#: optiondialog.cpp:559
+msgid ""
+"Selects the italic version of the font for differences.\n"
+"If the font doesn't support italic characters, then this does nothing."
+msgstr ""
+
+#: optiondialog.cpp:568
+msgid "Color"
+msgstr "रंग"
+
+#: optiondialog.cpp:569
+msgid "Colors Settings"
+msgstr ""
+
+#: optiondialog.cpp:588
+msgid "Editor and Diff Views:"
+msgstr ""
+
+#: optiondialog.cpp:596
+msgid "Foreground color:"
+msgstr "अग्रभूमि क' रंगः"
+
+#: optiondialog.cpp:603
+msgid "Background color:"
+msgstr "पृष्ठभूमि क' रंगः"
+
+#: optiondialog.cpp:612
+msgid "Diff background color:"
+msgstr ""
+
+#: optiondialog.cpp:620
+msgid "Color A:"
+msgstr ""
+
+#: optiondialog.cpp:628
+msgid "Color B:"
+msgstr ""
+
+#: optiondialog.cpp:636
+msgid "Color C:"
+msgstr ""
+
+#: optiondialog.cpp:643
+msgid "Conflict color:"
+msgstr ""
+
+#: optiondialog.cpp:651
+msgid "Current range background color:"
+msgstr ""
+
+#: optiondialog.cpp:659
+msgid "Current range diff background color:"
+msgstr ""
+
+#: optiondialog.cpp:666
+msgid "Color for manually aligned difference ranges:"
+msgstr ""
+
+#: optiondialog.cpp:672
+msgid "Directory Comparison View:"
+msgstr ""
+
+#: optiondialog.cpp:678
+msgid "Newest file color:"
+msgstr ""
+
+#: optiondialog.cpp:682
+msgid ""
+"Changing this color will only be effective when starting the next directory "
+"comparison."
+msgstr ""
+
+#: optiondialog.cpp:687
+msgid "Oldest file color:"
+msgstr ""
+
+#: optiondialog.cpp:695
+msgid "Middle age file color:"
+msgstr ""
+
+#: optiondialog.cpp:703
+msgid "Color for missing files:"
+msgstr ""
+
+#: optiondialog.cpp:717
+msgid "Editor"
+msgstr "संपादक"
+
+#: optiondialog.cpp:718
+msgid "Editor Behavior"
+msgstr ""
+
+#: optiondialog.cpp:732
+msgid "Tab inserts spaces"
+msgstr ""
+
+#: optiondialog.cpp:735
+msgid ""
+"On: Pressing tab generates the appropriate number of spaces.\n"
+"Off: A tab character will be inserted."
+msgstr ""
+
+#: optiondialog.cpp:741
+msgid "Tab size:"
+msgstr ""
+
+#: optiondialog.cpp:747
+msgid "Auto indentation"
+msgstr ""
+
+#: optiondialog.cpp:750
+msgid "On: The indentation of the previous line is used for a new line.\n"
+msgstr ""
+
+#: optiondialog.cpp:754
+msgid "Auto copy selection"
+msgstr ""
+
+#: optiondialog.cpp:757
+msgid ""
+"On: Any selection is immediately written to the clipboard.\n"
+"Off: You must explicitely copy e.g. via Ctrl-C."
+msgstr ""
+
+#: optiondialog.cpp:768
+#, fuzzy
+#| msgid "&Window"
+msgid "Dos/Windows"
+msgstr "विंडो (&W)"
+
+#: optiondialog.cpp:769
+#, fuzzy
+#| msgid "Auto Select"
+msgid "Autodetect"
+msgstr "स्वतः चुनू"
+
+#: optiondialog.cpp:772
+msgid ""
+"Sets the line endings for when an edited file is saved.\n"
+"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A"
+msgstr ""
+
+#: optiondialog.cpp:784
+msgid "Diff"
+msgstr "Diff"
+
+#: optiondialog.cpp:785
+msgid "Diff Settings"
+msgstr ""
+
+#: optiondialog.cpp:809
+msgid "Treat as white space."
+msgstr ""
+
+#: optiondialog.cpp:811
+msgid "Ignore numbers"
+msgstr ""
+
+#: optiondialog.cpp:814
+msgid ""
+"Ignore number characters during line matching phase. (Similar to Ignore "
+"white space.)\n"
+"Might help to compare files with numeric data."
+msgstr ""
+
+#: optiondialog.cpp:819
+msgid "Ignore C/C++ comments"
+msgstr ""
+
+#: optiondialog.cpp:821
+msgid "Treat C/C++ comments like white space."
+msgstr ""
+
+#: optiondialog.cpp:825
+msgid "Ignore case"
+msgstr ""
+
+#: optiondialog.cpp:828
+msgid "Treat case differences like white space changes. ('a'<=>'A')"
+msgstr ""
+
+#: optiondialog.cpp:832
+msgid "Preprocessor command:"
+msgstr ""
+
+#: optiondialog.cpp:836
+msgid "User defined pre-processing. (See the docs for details.)"
+msgstr ""
+
+#: optiondialog.cpp:839
+msgid "Line-matching preprocessor command:"
+msgstr ""
+
+#: optiondialog.cpp:843
+msgid ""
+"This pre-processor is only used during line matching.\n"
+"(See the docs for details.)"
+msgstr ""
+
+#: optiondialog.cpp:846
+msgid "Try hard (slower)"
+msgstr ""
+
+#: optiondialog.cpp:849
+msgid ""
+"Enables the --minimal option for the external diff.\n"
+"The analysis of big files will be much slower."
+msgstr ""
+
+#: optiondialog.cpp:854
+msgid "Align B and C for 3 input files"
+msgstr ""
+
+#: optiondialog.cpp:857
+msgid ""
+"Try to align B and C when comparing or merging three input files.\n"
+"Not recommended for merging because merge might get more complicated.\n"
+"(Default is off.)"
+msgstr ""
+
+#: optiondialog.cpp:870
+msgid "Merge Settings"
+msgstr ""
+
+#: optiondialog.cpp:885
+msgid "Auto advance delay (ms):"
+msgstr ""
+
+#: optiondialog.cpp:890
+msgid ""
+"When in Auto-Advance mode the result of the current selection is shown \n"
+"for the specified time, before jumping to the next conflict. Range: 0-2000 ms"
+msgstr ""
+
+#: optiondialog.cpp:895
+msgid "Show info dialogs"
+msgstr ""
+
+#: optiondialog.cpp:897
+msgid "Show a dialog with information about the number of conflicts."
+msgstr ""
+
+#: optiondialog.cpp:900
+msgid "White space 2-file merge default:"
+msgstr ""
+
+#: optiondialog.cpp:904 optiondialog.cpp:917
+msgid "Manual Choice"
+msgstr ""
+
+#: optiondialog.cpp:908 optiondialog.cpp:922
+msgid ""
+"Allow the merge algorithm to automatically select an input for white-space-"
+"only changes."
+msgstr ""
+
+#: optiondialog.cpp:913
+msgid "White space 3-file merge default:"
+msgstr ""
+
+#: optiondialog.cpp:927
+msgid "Automatic Merge Regular Expression"
+msgstr ""
+
+#: optiondialog.cpp:940
+msgid ""
+"Regular expression for lines where KDiff3 should automatically choose one "
+"source.\n"
+"When a line with a conflict matches the regular expression then\n"
+"- if available - C, otherwise B will be chosen."
+msgstr ""
+
+#: optiondialog.cpp:946
+msgid "Run regular expression auto merge on merge start"
+msgstr ""
+
+#: optiondialog.cpp:948
+msgid ""
+"Run the merge for auto merge regular expressions\n"
+"immediately when a merge starts.\n"
+msgstr ""
+
+#: optiondialog.cpp:953
+msgid "Version Control History Merging"
+msgstr ""
+
+#: optiondialog.cpp:966
+msgid ""
+"Regular expression for the start of the version control history entry.\n"
+"Usually this line contains the \"$Log$\" keyword.\n"
+"Default value: \".*\\$Log.*\\$.*\""
+msgstr ""
+
+#: optiondialog.cpp:984
+msgid ""
+"A version control history entry consists of several lines.\n"
+"Specify the regular expression to detect the first line (without the leading "
+"comment).\n"
+"Use parentheses to group the keys you want to use for sorting.\n"
+"If left empty, then KDiff3 assumes that empty lines separate history "
+"entries.\n"
+"See the documentation for details."
+msgstr ""
+
+#: optiondialog.cpp:992
+msgid "History merge sorting"
+msgstr ""
+
+#: optiondialog.cpp:994
+msgid "Sort version control history by a key."
+msgstr ""
+
+#: optiondialog.cpp:1004
+msgid "History entry start sort key order:"
+msgstr ""
+
+#: optiondialog.cpp:1008
+msgid ""
+"Each pair of parentheses used in the regular expression for the history "
+"start entry\n"
+"groups a key that can be used for sorting.\n"
+"Specify the list of keys (that are numbered in order of occurrence\n"
+"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n"
+"If left empty, then no sorting will be done.\n"
+"See the documentation for details."
+msgstr ""
+
+#: optiondialog.cpp:1019
+msgid "Merge version control history on merge start"
+msgstr ""
+
+#: optiondialog.cpp:1021
+msgid "Run version control history automerge on merge start."
+msgstr ""
+
+#: optiondialog.cpp:1025
+msgid "Max number of history entries:"
+msgstr ""
+
+#: optiondialog.cpp:1028
+msgid "Cut off after specified number. Use -1 for infinite number of entries."
+msgstr ""
+
+#: optiondialog.cpp:1032
+msgid "Test your regular expressions"
+msgstr ""
+
+#: optiondialog.cpp:1037
+msgid "Irrelevant merge command:"
+msgstr ""
+
+#: optiondialog.cpp:1041
+msgid ""
+"If specified this script is run after automerge\n"
+"when no other relevant changes were detected.\n"
+"Called with the parameters: filename1 filename2 filename3"
+msgstr ""
+
+#: optiondialog.cpp:1047
+msgid "Auto save and quit on merge without conflicts"
+msgstr ""
+
+#: optiondialog.cpp:1050
+msgid ""
+"If KDiff3 was started for a file-merge from the command line and all\n"
+"conflicts are solvable without user interaction then automatically save and "
+"quit.\n"
+"(Similar to command line option \"--auto\".)"
+msgstr ""
+
+#: optiondialog.cpp:1061 optiondialog.cpp:1062
+msgid "Directory"
+msgstr "निर्देशिका"
+
+#: optiondialog.cpp:1075
+msgid "Recursive directories"
+msgstr ""
+
+#: optiondialog.cpp:1077
+msgid "Whether to analyze subdirectories or not."
+msgstr ""
+
+#: optiondialog.cpp:1079
+msgid "File pattern(s):"
+msgstr ""
+
+#: optiondialog.cpp:1084
+msgid ""
+"Pattern(s) of files to be analyzed. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1090
+msgid "File-anti-pattern(s):"
+msgstr ""
+
+#: optiondialog.cpp:1095
+msgid ""
+"Pattern(s) of files to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1101
+msgid "Dir-anti-pattern(s):"
+msgstr ""
+
+#: optiondialog.cpp:1106
+msgid ""
+"Pattern(s) of directories to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1112
+msgid "Use .cvsignore"
+msgstr ""
+
+#: optiondialog.cpp:1115
+msgid ""
+"Extends the antipattern to anything that would be ignored by CVS.\n"
+"Via local \".cvsignore\" files this can be directory specific."
+msgstr ""
+
+#: optiondialog.cpp:1120
+msgid "Find hidden files and directories"
+msgstr ""
+
+#: optiondialog.cpp:1123
+msgid "Finds files and directories with the hidden attribute."
+msgstr ""
+
+#: optiondialog.cpp:1125
+msgid "Finds files and directories starting with '.'."
+msgstr ""
+
+#: optiondialog.cpp:1129
+msgid "Follow file links"
+msgstr ""
+
+#: optiondialog.cpp:1132
+msgid ""
+"On: Compare the file the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+
+#: optiondialog.cpp:1137
+msgid "Follow directory links"
+msgstr ""
+
+#: optiondialog.cpp:1140
+msgid ""
+"On: Compare the directory the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+
+#: optiondialog.cpp:1156
+msgid "Case sensitive filename comparison"
+msgstr ""
+
+#: optiondialog.cpp:1159
+msgid ""
+"The directory comparison will compare files or directories when their names "
+"match.\n"
+"Set this option if the case of the names must match. (Default for Windows is "
+"off, otherwise on.)"
+msgstr ""
+
+#: optiondialog.cpp:1163
+msgid "File Comparison Mode"
+msgstr ""
+
+#: optiondialog.cpp:1169
+msgid "Binary comparison"
+msgstr ""
+
+#: optiondialog.cpp:1170
+msgid "Binary comparison of each file. (Default)"
+msgstr ""
+
+#: optiondialog.cpp:1173
+msgid "Full analysis"
+msgstr ""
+
+#: optiondialog.cpp:1174
+msgid ""
+"Do a full analysis and show statistics information in extra columns.\n"
+"(Slower than a binary comparison, much slower for binary files.)"
+msgstr ""
+
+#: optiondialog.cpp:1178
+msgid "Trust the size and modification date (unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1179
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"Files with equal contents but different modification dates will appear as "
+"different.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+
+#: optiondialog.cpp:1184
+msgid ""
+"Trust the size and date, but use binary comparison if date does not match "
+"(unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1185
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"If the dates are not equal but the sizes are, use binary comparison.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+
+#: optiondialog.cpp:1190
+msgid "Trust the size (unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1191
+msgid ""
+"Assume that files are equal if their file lengths are equal.\n"
+"Useful for big directories or slow networks when the date is modified during "
+"download."
+msgstr ""
+
+#: optiondialog.cpp:1199
+msgid "Synchronize directories"
+msgstr ""
+
+#: optiondialog.cpp:1202
+msgid ""
+"Offers to store files in both directories so that\n"
+"both directories are the same afterwards.\n"
+"Works only when comparing two directories without specifying a destination."
+msgstr ""
+
+#: optiondialog.cpp:1208
+msgid "White space differences considered equal"
+msgstr ""
+
+#: optiondialog.cpp:1211
+msgid ""
+"If files differ only by white space consider them equal.\n"
+"This is only active when full analysis is chosen."
+msgstr ""
+
+#: optiondialog.cpp:1217
+msgid "Copy newer instead of merging (unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1220
+msgid ""
+"Don't look inside, just take the newer file.\n"
+"(Use this only if you know what you are doing!)\n"
+"Only effective when comparing two directories."
+msgstr ""
+
+#: optiondialog.cpp:1225
+msgid "Backup files (.orig)"
+msgstr ""
+
+#: optiondialog.cpp:1228
+msgid ""
+"If a file would be saved over an old file, then the old file\n"
+"will be renamed with a '.orig' extension instead of being deleted."
+msgstr ""
+
+#: optiondialog.cpp:1301 optiondialog.cpp:1302
+msgid "Regional Settings"
+msgstr ""
+
+#: optiondialog.cpp:1402
+msgid "Language (restart required)"
+msgstr ""
+
+#: optiondialog.cpp:1445
+msgid ""
+"Choose the language of the GUI strings or \"Auto\".\n"
+"For a change of language to take place, quit and restart KDiff3."
+msgstr ""
+
+#: optiondialog.cpp:1463
+msgid "Use the same encoding for everything:"
+msgstr ""
+
+#: optiondialog.cpp:1466
+msgid ""
+"Enable this allows to change all encodings by changing the first only.\n"
+"Disable this if different individual settings are needed."
+msgstr ""
+
+#: optiondialog.cpp:1471
+msgid "Note: Local Encoding is "
+msgstr ""
+
+#: optiondialog.cpp:1475
+msgid "File Encoding for A:"
+msgstr ""
+
+#: optiondialog.cpp:1481
+msgid ""
+"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n"
+"If the file is not Unicode then the selected encoding will be used as "
+"fallback.\n"
+"(Unicode detection depends on the first bytes of a file.)"
+msgstr ""
+
+#: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503
+msgid "Auto Detect Unicode"
+msgstr ""
+
+#: optiondialog.cpp:1490
+msgid "File Encoding for B:"
+msgstr ""
+
+#: optiondialog.cpp:1499
+msgid "File Encoding for C:"
+msgstr ""
+
+#: optiondialog.cpp:1508
+msgid "File Encoding for Merge Output and Saving:"
+msgstr ""
+
+#: optiondialog.cpp:1512
+msgid "Auto Select"
+msgstr "स्वतः चुनू"
+
+#: optiondialog.cpp:1515
+msgid ""
+"If enabled then the encoding from the input files is used.\n"
+"In ambiguous cases a dialog will ask the user to choose the encoding for "
+"saving."
+msgstr ""
+
+#: optiondialog.cpp:1519
+msgid "File Encoding for Preprocessor Files:"
+msgstr ""
+
+#: optiondialog.cpp:1530
+msgid "Right To Left Language"
+msgstr ""
+
+#: optiondialog.cpp:1533
+msgid ""
+"Some languages are read from right to left.\n"
+"This setting will change the viewer and editor accordingly."
+msgstr ""
+
+#: optiondialog.cpp:1548
+msgid "Integration"
+msgstr "संयोजन"
+
+#: optiondialog.cpp:1549
+msgid "Integration Settings"
+msgstr ""
+
+#: optiondialog.cpp:1563
+msgid "Command line options to ignore:"
+msgstr ""
+
+#: optiondialog.cpp:1568
+msgid ""
+"List of command line options that should be ignored when KDiff3 is used by "
+"other tools.\n"
+"Several values can be specified if separated via ';'\n"
+"This will suppress the \"Unknown option\" error."
+msgstr ""
+
+#: optiondialog.cpp:1575
+msgid "Quit also via Escape key"
+msgstr ""
+
+#: optiondialog.cpp:1578
+msgid ""
+"Fast method to exit.\n"
+"For those who are used to using the Escape key."
+msgstr ""
+
+#: optiondialog.cpp:1583
+msgid "Integrate with ClearCase"
+msgstr ""
+
+#: optiondialog.cpp:1586
+msgid ""
+"Integrate with Rational ClearCase from IBM.\n"
+"Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n"
+"(Only enabled when ClearCase \"bin\" directory is in the path.)"
+msgstr ""
+
+#: optiondialog.cpp:1592
+msgid "Remove ClearCase Integration"
+msgstr ""
+
+#: optiondialog.cpp:1595
+msgid ""
+"Restore the old \"map\" file from before doing the ClearCase integration."
+msgstr ""
+
+#: optiondialog.cpp:1680
+msgid "Incompatible Font"
+msgstr ""
+
+#: optiondialog.cpp:1681
+msgid "Continue at Own Risk"
+msgstr ""
+
+#: optiondialog.cpp:1682
+msgid "Select Another Font"
+msgstr ""
+
+#: optiondialog.cpp:1717
+msgid "This resets all options. Not only those of the current topic."
+msgstr ""
+
+#: pdiff.cpp:260
+msgid "PreprocessorCmd: "
+msgstr ""
+
+#: pdiff.cpp:265
+msgid "The following option(s) you selected might change data:\n"
+msgstr ""
+
+#: pdiff.cpp:266
+msgid ""
+"\n"
+"Most likely this is not wanted during a merge.\n"
+"Do you want to disable these settings or continue with these settings active?"
+msgstr ""
+
+#: pdiff.cpp:268
+msgid "Option Unsafe for Merging"
+msgstr ""
+
+#: pdiff.cpp:269
+msgid "Use These Options During Merge"
+msgstr ""
+
+#: pdiff.cpp:270
+msgid "Disable Unsafe Options"
+msgstr ""
+
+#: pdiff.cpp:300
+msgid "Loading A"
+msgstr ""
+
+#: pdiff.cpp:304
+msgid "Loading B"
+msgstr ""
+
+#: pdiff.cpp:321 pdiff.cpp:347
+msgid "Diff: A <-> B"
+msgstr ""
+
+#: pdiff.cpp:327 pdiff.cpp:372
+msgid "Linediff: A <-> B"
+msgstr ""
+
+#: pdiff.cpp:338
+msgid "Loading C"
+msgstr ""
+
+#: pdiff.cpp:350
+msgid "Diff: B <-> C"
+msgstr ""
+
+#: pdiff.cpp:353
+msgid "Diff: A <-> C"
+msgstr ""
+
+#: pdiff.cpp:375
+msgid "Linediff: B <-> C"
+msgstr ""
+
+#: pdiff.cpp:378
+msgid "Linediff: A <-> C"
+msgstr ""
+
+#: pdiff.cpp:534
+msgid "All input files contain the same text, but are not binary equal."
+msgstr ""
+
+#: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541
+#, kde-format
+msgid "Files %1 and %2 have equal text, but are not binary equal. \n"
+msgstr ""
+
+#: pdiff.cpp:551
+msgid ""
+"Some inputfiles don't seem to be pure textfiles.\n"
+"Note that the KDiff3-merge was not meant for binary data.\n"
+"Continue at your own risk."
+msgstr ""
+
+#: pdiff.cpp:566
+#, kde-format
+msgid ""
+"Some input characters could not be converted to valid unicode.\n"
+"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n"
+"Don't save the result if unsure. Continue at your own risk.\n"
+"Affected input files are in %1."
+msgstr ""
+
+#: pdiff.cpp:1080
+msgid "Abort"
+msgstr "छोड़ू"
+
+#: pdiff.cpp:1087 pdiff.cpp:1175
+msgid "Opening files..."
+msgstr ""
+
+#: pdiff.cpp:1152 pdiff.cpp:1223
+msgid "File open error"
+msgstr ""
+
+#: pdiff.cpp:1255
+msgid "Cutting selection..."
+msgstr ""
+
+#: pdiff.cpp:1276
+msgid "Copying selection to clipboard..."
+msgstr ""
+
+#: pdiff.cpp:1292
+msgid "Inserting clipboard contents..."
+msgstr ""
+
+#: pdiff.cpp:1814
+msgid "Save && Continue"
+msgstr ""
+
+#: pdiff.cpp:1815
+msgid "Continue Without Saving"
+msgstr ""
+
+#: pdiff.cpp:2018
+msgid "Search complete."
+msgstr "खोज पूर्ण भेल."
+
+#: pdiff.cpp:2018
+msgid "Search Complete"
+msgstr ""
+
+#: pdiff.cpp:2252
+msgid "Nothing is selected in either diff input window."
+msgstr ""
+
+#: pdiff.cpp:2252
+msgid "Error while adding manual diff range"
+msgstr ""
+
+#: kdiff3_shell.cpp:76
+msgid ""
+"Could not initialize the KDiff3 part.\n"
+"This usually happens due to an installation problem. Please read the README-"
+"file in the source package for details."
+msgstr ""
+
+#: rc.cpp:1
+msgctxt "NAME OF TRANSLATORS"
+msgid "Your names"
+msgstr "संगीता कुमारी"
+
+#: rc.cpp:2
+msgctxt "EMAIL OF TRANSLATORS"
+msgid "Your emails"
+msgstr "sangeeta09@gmail.com"
+
+#. i18n: file: kdiff3_part.rc:4
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:5
+msgid "&KDiff3"
+msgstr ""
+
+#. i18n: file: kdiff3_part.rc:13
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:8
+msgid "Configure KDiff3"
+msgstr ""
+
+#. i18n: file: kdiff3_part.rc:16
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:11
+msgid "KDiff3"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:106
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:38
+msgid "Main Toolbar"
+msgstr "मुख्य अओजार पट्टी"
diff --git a/po/ml/CMakeLists.txt b/po/ml/CMakeLists.txt
new file mode 100644 (file)
index 0000000..53cdbf4
--- /dev/null
@@ -0,0 +1,2 @@
+file(GLOB _po_files *.po)
+GETTEXT_PROCESS_PO_FILES(ml ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
diff --git a/po/ml/kdiff3.po b/po/ml/kdiff3.po
new file mode 100644 (file)
index 0000000..92ee9d5
--- /dev/null
@@ -0,0 +1,3031 @@
+# Malayalam Translation of kdiff3
+# Copyright (C) 2009 This_file_is_part_of_KDE
+# This file is distributed under the same license as the KDIFF3 package.
+# SANKARANARAYANAN | ശങ്കരനാരായണന്‍ <snalledam@dataone.in>, 2009.
+# Praveen Arimbrathodiyil <pravi.a@gmail.com>, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2009-01-19 HO:MI+ZONE\n"
+"Last-Translator: SANKARANARAYANAN | ശങ്കരനാരായണന്‍ <snalledam@dataone.in>\n"
+"Language-Team: MALAYALAM | മലയാളം <smc-discuss@googlegroups.com>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: kreplacements/kreplacements.h:105
+msgid "Continue"
+msgstr ""
+
+#: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158
+#: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512
+msgid "Cancel"
+msgstr "റദ്ദുചെയ്യുക"
+
+#: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631
+msgid "Quit"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339
+msgid "Ok"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715
+msgid "Help"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:185
+msgid "Defaults"
+msgstr "സഹജവിലകള്‍"
+
+#. i18n: file: kdiff3_shell.rc:4
+#. i18n: ectx: Menu (file)
+#: kreplacements/kreplacements.cpp:296 rc.cpp:14
+msgid "&File"
+msgstr "&ശേഖരം"
+
+#: kreplacements/kreplacements.cpp:297
+msgid "&Edit"
+msgstr "&ചിട്ട"
+
+#. i18n: file: kdiff3_shell.rc:7
+#. i18n: ectx: Menu (directory)
+#: kreplacements/kreplacements.cpp:298 rc.cpp:17
+msgid "&Directory"
+msgstr "&തട്ടു്"
+
+#. i18n: file: kdiff3_shell.rc:50
+#. i18n: ectx: Menu (movement)
+#: kreplacements/kreplacements.cpp:301 rc.cpp:26
+msgid "&Movement"
+msgstr "&നീക്കം"
+
+#. i18n: file: kdiff3_shell.rc:61
+#. i18n: ectx: Menu (diff)
+#: kreplacements/kreplacements.cpp:302 rc.cpp:29
+msgid "D&iffview"
+msgstr "&വ്യത്യാസകാഴ്ച"
+
+#. i18n: file: kdiff3_shell.rc:73
+#. i18n: ectx: Menu (merge)
+#: kreplacements/kreplacements.cpp:303 rc.cpp:32
+msgid "&Merge"
+msgstr "&ലയനം"
+
+#. i18n: file: kdiff3_shell.rc:95
+#. i18n: ectx: Menu (window)
+#: kreplacements/kreplacements.cpp:304 rc.cpp:35
+msgid "&Window"
+msgstr "&ജാലകം"
+
+#: kreplacements/kreplacements.cpp:305
+msgid "&Settings"
+msgstr "&സജ്ജീകരണങ്ങള്‍"
+
+#: kreplacements/kreplacements.cpp:306
+msgid "&Help"
+msgstr "&സഹായം"
+
+#: kreplacements/kreplacements.cpp:353
+msgid "&About"
+msgstr "&സംബന്ധിച്ചു്"
+
+#: kreplacements/kreplacements.cpp:369
+msgid "A&uthor"
+msgstr "&രചയിതാവു്"
+
+#: kreplacements/kreplacements.cpp:383
+msgid "&Thanks To"
+msgstr "&കടപ്പാടു്"
+
+#. i18n: file: kdiff3_shell.rc:30
+#. i18n: ectx: Menu (dir_current_merge_menu)
+#: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497
+#: rc.cpp:20
+msgid "Current Item Merge Operation"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:38
+#. i18n: ectx: Menu (dir_current_sync_menu)
+#: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498
+#: rc.cpp:23
+msgid "Current Item Sync Operation"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:597
+msgid "Open"
+msgstr "തുറക്കുക"
+
+#: kreplacements/kreplacements.cpp:606
+msgid "Save"
+msgstr "സൂക്ഷിയ്ക്കുക"
+
+#: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720
+msgid "Save As..."
+msgstr "...ആയി സൂക്ഷിയ്ക്കുക"
+
+#: kreplacements/kreplacements.cpp:623
+msgid "Print..."
+msgstr "അച്ചടിയ്ക്കുക..."
+
+#: kreplacements/kreplacements.cpp:639
+msgid "Cut"
+msgstr "മുറിയ്ക്കുക"
+
+#: kreplacements/kreplacements.cpp:647
+msgid "Copy"
+msgstr "പകര്‍ത്തുക"
+
+#: kreplacements/kreplacements.cpp:655
+msgid "Paste"
+msgstr "ഒട്ടിയ്ക്കുക"
+
+#: kreplacements/kreplacements.cpp:663
+msgid "Select All"
+msgstr "എല്ലാം തെരഞ്ഞെടുക്കുക"
+
+#: kreplacements/kreplacements.cpp:671
+msgid "Show Toolbar"
+msgstr "ഉപകരണപ്പട്ട കാണിയ്ക്കുക"
+
+#: kreplacements/kreplacements.cpp:679
+msgid "Show &Status Bar"
+msgstr "&അവസ്ഥാപ്പട്ട കാണിയ്ക്കുക"
+
+#: kreplacements/kreplacements.cpp:687
+#, kde-format
+msgid "&Configure %1..."
+msgstr "%1 &ക്രമീകരിയ്ക്കുക..."
+
+#: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707
+msgid "About"
+msgstr "സംബന്ധിച്ചു്"
+
+#: kreplacements/kreplacements.cpp:722
+msgid "Find"
+msgstr "കണ്ടുപിടിയ്ക്കുക"
+
+#: kreplacements/kreplacements.cpp:730
+msgid "Find Next"
+msgstr "അടുത്തതു് കണ്ടുപിടിയ്ക്കുക"
+
+#: kreplacements/kreplacements.cpp:750
+msgid "Select Font"
+msgstr "അക്ഷരസഞ്ചയം തെരഞ്ഞെടുക്കുക"
+
+#: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676
+msgid ""
+"You selected a variable width font.\n"
+"\n"
+"Because this program doesn't handle variable width fonts\n"
+"correctly, you might experience problems while editing.\n"
+"\n"
+"Do you want to continue or do you want to select another font."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:792
+msgid "Incompatible font."
+msgstr "പൊരുത്തമില്ലാത്ത അക്ഷരസഞ്ചയം."
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Continue at my own risk"
+msgstr "എന്റെ സ്വന്തം ഉത്തരവാദിത്തത്തില്‍ തുടരുക"
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Select another font"
+msgstr "മറ്റൊരു അക്ഷരസഞ്ചയം തെരഞ്ഞെടുക്കുക"
+
+#: kreplacements/kreplacements.cpp:1134
+msgid "For more documentation, see the help-menu or the subdirectory doc."
+msgstr "കൂടുതല്‍ സഹായക്കുറിപ്പുകള്‍ക്കു് സഹായ-മെനുവോ doc എന്ന തട്ടോ കാണുക."
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "KDiff3-Usage"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Ignore"
+msgstr "അവഗണിയ്ക്കുക"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Exit"
+msgstr "പുറത്തു് കടക്കുക"
+
+#: diff.cpp:251
+msgid "Writing clipboard data to temp file failed."
+msgstr "ഓര്‍മ്മച്ചെപ്പിലെ വിവരങ്ങള്‍ താല്‍ക്കാലിക ഫയലില്‍ എഴുതി ചേര്ക്കുന്നു."
+
+#: diff.cpp:255
+msgid "From Clipboard"
+msgstr "ഓര്മ്മച്ചറ്റയില്‍നിന്ന്"
+
+#: diff.cpp:471
+msgid "Expecting space after closing quotation mark."
+msgstr ""
+
+#: diff.cpp:474
+msgid "Not matching quotation marks."
+msgstr ""
+
+#: diff.cpp:496
+msgid "Unexpected quotation mark within argument."
+msgstr ""
+
+#: diff.cpp:503
+msgid "No program specified."
+msgstr ""
+
+#: diff.cpp:605
+#, kde-format
+msgid ""
+"Preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The preprocessing command will be disabled now."
+msgstr ""
+"മുന്‍‌കൂര്‍ നടപടി പരാജയപ്പെട്ടിരിക്കാം. ഈ ആജ്ഞ പരിശോധിക്കൂ:\n"
+"\n"
+"  %1\n"
+"\n"
+"മുന്‍‌കൂര്‍ നടപടിക്കുള്ല ആജ്ഞ ഇപ്പോള്‍ പ്രവര്‍ത്തനരഹിതമാക്കും."
+
+#: diff.cpp:653
+#, kde-format
+msgid ""
+"The line-matching-preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The line-matching-preprocessing command will be disabled now."
+msgstr ""
+"വരികളിലെ-സമാനതകാണുന്ന- മുന്‍‌കൂര്‍നടപടി പരാജയപ്പെട്ടിരിക്കാം.ഈ ആജ്ഞ പരിശോധിക്കൂ:\n"
+"\n"
+"  %1\n"
+"\n"
+"വരികളിലെ-സമാനതകാണുന്ന- മുന്‍‌കൂര്‍നടപടി ആജ്ഞ ഇപ്പോള്‍ പ്രവര്‍ത്തനരഹിതമാക്കും."
+
+#: diff.cpp:1776 diff.cpp:1790
+#, fuzzy
+#| msgid ""
+#| "Data loss error:\n"
+#| "If it is reproducable please contact the author.\n"
+msgid ""
+"Data loss error:\n"
+"If it is reproducible please contact the author.\n"
+msgstr ""
+"സ്ഥിതിവിവരനഷ്ട പിശക്:\n"
+" പുന:സൃഷ്ടിക്കാന്‍ കഴിയുന്നതാണെങ്കില്‍ രചയിതാവിനെ സമീപിക്കുക.\n"
+
+#: diff.cpp:1778 diff.cpp:1792
+msgid "Severe Internal Error"
+msgstr "ഗുരുതരമായ ആന്തര പിശക്"
+
+#: directorymergewindow.cpp:136
+msgid "Mix of links and normal files."
+msgstr ""
+
+#: directorymergewindow.cpp:143
+msgid "Link: "
+msgstr ""
+
+#: directorymergewindow.cpp:151
+msgid "Size. "
+msgstr ""
+
+#: directorymergewindow.cpp:164 directorymergewindow.cpp:174
+msgid "Date & Size: "
+msgstr ""
+
+#: directorymergewindow.cpp:184 directorymergewindow.cpp:190
+#, kde-format
+msgid "Creating temp copy of %1 failed."
+msgstr ""
+
+#: directorymergewindow.cpp:201 directorymergewindow.cpp:209
+#, kde-format
+msgid "Opening %1 failed."
+msgstr ""
+
+#: directorymergewindow.cpp:213
+msgid "Comparing file..."
+msgstr ""
+
+#: directorymergewindow.cpp:223 directorymergewindow.cpp:229
+#, kde-format
+msgid "Error reading from %1"
+msgstr ""
+
+#: directorymergewindow.cpp:358
+msgid "Name"
+msgstr ""
+
+#: directorymergewindow.cpp:358
+msgid "Operation"
+msgstr ""
+
+#: directorymergewindow.cpp:358
+msgid "Status"
+msgstr ""
+
+#: directorymergewindow.cpp:359
+msgid "Unsolved"
+msgstr ""
+
+#: directorymergewindow.cpp:359
+msgid "Solved"
+msgstr ""
+
+#: directorymergewindow.cpp:359
+msgid "Nonwhite"
+msgstr ""
+
+#: directorymergewindow.cpp:359
+msgid "White"
+msgstr ""
+
+#: directorymergewindow.cpp:388
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort "
+"the merge and rescan the directory?"
+msgstr ""
+
+#: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655
+#: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823
+msgid "Warning"
+msgstr "മുന്നറിയിപ്പ്"
+
+#: directorymergewindow.cpp:390 directorymergewindow.cpp:2965
+msgid "Rescan"
+msgstr ""
+
+#: directorymergewindow.cpp:391 pdiff.cpp:1081
+msgid "Continue Merging"
+msgstr ""
+
+#: directorymergewindow.cpp:548
+msgid "Opening of directories failed:"
+msgstr ""
+
+#: directorymergewindow.cpp:551
+#, kde-format
+msgid "Dir A \"%1\" does not exist or is not a directory.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:554
+#, kde-format
+msgid "Dir B \"%1\" does not exist or is not a directory.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:557
+#, kde-format
+msgid "Dir C \"%1\" does not exist or is not a directory.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:559
+msgid "Directory Open Error"
+msgstr ""
+
+#: directorymergewindow.cpp:567
+msgid ""
+"The destination directory must not be the same as A or B when three "
+"directories are merged.\n"
+"Check again before continuing."
+msgstr ""
+
+#: directorymergewindow.cpp:569
+msgid "Parameter Warning"
+msgstr ""
+
+#: directorymergewindow.cpp:574
+msgid "Scanning directories..."
+msgstr ""
+
+#: directorymergewindow.cpp:607
+msgid "Reading Directory A"
+msgstr ""
+
+#: directorymergewindow.cpp:629
+msgid "Reading Directory B"
+msgstr ""
+
+#: directorymergewindow.cpp:651
+msgid "Reading Directory C"
+msgstr ""
+
+#: directorymergewindow.cpp:677
+msgid "Some subdirectories were not readable in"
+msgstr ""
+
+#: directorymergewindow.cpp:682
+msgid "Check the permissions of the subdirectories."
+msgstr ""
+
+#: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737
+#: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233
+#: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328
+msgid "Ready."
+msgstr "തയ്യാര്‍"
+
+#: directorymergewindow.cpp:735
+msgid "Directory Comparison Status"
+msgstr ""
+
+#: directorymergewindow.cpp:736
+msgid "Number of subdirectories:"
+msgstr ""
+
+#: directorymergewindow.cpp:737
+msgid "Number of equal files:"
+msgstr ""
+
+#: directorymergewindow.cpp:738
+msgid "Number of different files:"
+msgstr ""
+
+#: directorymergewindow.cpp:741
+msgid "Number of manual merges:"
+msgstr ""
+
+#: directorymergewindow.cpp:912
+msgid "This affects all merge operations."
+msgstr ""
+
+#: directorymergewindow.cpp:913
+msgid "Changing All Merge Operations"
+msgstr ""
+
+#: directorymergewindow.cpp:1312
+msgid "Processing "
+msgstr ""
+
+#: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742
+msgid "To do."
+msgstr ""
+
+#: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996
+msgid "Copy A to B"
+msgstr ""
+
+#: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997
+msgid "Copy B to A"
+msgstr ""
+
+#: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998
+msgid "Delete A"
+msgstr ""
+
+#: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999
+msgid "Delete B"
+msgstr ""
+
+#: directorymergewindow.cpp:1814
+msgid "Delete A & B"
+msgstr ""
+
+#: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001
+msgid "Merge to A"
+msgstr ""
+
+#: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002
+msgid "Merge to B"
+msgstr ""
+
+#: directorymergewindow.cpp:1817
+msgid "Merge to A & B"
+msgstr ""
+
+#: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993
+msgid "Delete (if exists)"
+msgstr ""
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+#: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869
+msgid "Merge"
+msgstr "ലയിപ്പിക്കുക"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+msgid "Merge (manual)"
+msgstr ""
+
+#: directorymergewindow.cpp:1824
+msgid "Error: Conflicting File Types"
+msgstr ""
+
+#: directorymergewindow.cpp:1825
+msgid "Error: Changed and Deleted"
+msgstr ""
+
+#: directorymergewindow.cpp:1826
+msgid "Error: Dates are equal but files are not."
+msgstr ""
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906
+msgid "This operation is currently not possible."
+msgstr ""
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174
+msgid "Operation Not Possible"
+msgstr ""
+
+#: directorymergewindow.cpp:1945
+msgid ""
+"This should never happen: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"If you know how to reproduce this, please contact the program author."
+msgstr ""
+
+#: directorymergewindow.cpp:1945
+msgid "Program Error"
+msgstr ""
+
+#: directorymergewindow.cpp:1956
+msgid "An error occurred while copying.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025
+#: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105
+#: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123
+#: directorymergewindow.cpp:2374
+msgid "Error"
+msgstr ""
+
+#: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375
+msgid "Merge Error"
+msgstr ""
+
+#: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380
+msgid "Error."
+msgstr ""
+
+#: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272
+#: directorymergewindow.cpp:2312
+msgid "Done."
+msgstr ""
+
+#: directorymergewindow.cpp:1990
+msgid "Not saved."
+msgstr ""
+
+#: directorymergewindow.cpp:2025
+msgid "Unknown merge operation. (This must never happen!)"
+msgstr ""
+
+#: directorymergewindow.cpp:2057
+msgid "Unknown merge operation."
+msgstr ""
+
+#: directorymergewindow.cpp:2072
+msgid ""
+"The merge is about to begin.\n"
+"\n"
+"Choose \"Do it\" if you have read the instructions and know what you are "
+"doing.\n"
+"Choosing \"Simulate it\" will tell you what would happen.\n"
+"\n"
+"Be aware that this program still has beta status and there is NO WARRANTY "
+"whatsoever! Make backups of your vital data!"
+msgstr ""
+
+#: directorymergewindow.cpp:2077
+msgid "Starting Merge"
+msgstr ""
+
+#: directorymergewindow.cpp:2078
+msgid "Do It"
+msgstr ""
+
+#: directorymergewindow.cpp:2079
+msgid "Simulate It"
+msgstr ""
+
+#: directorymergewindow.cpp:2105
+msgid ""
+"The highlighted item has a different type in the different directories. "
+"Select what to do."
+msgstr ""
+
+#: directorymergewindow.cpp:2114
+msgid ""
+"The modification dates of the file are equal but the files are not. Select "
+"what to do."
+msgstr ""
+
+#: directorymergewindow.cpp:2123
+msgid ""
+"The highlighted item was changed in one directory and deleted in the other. "
+"Select what to do."
+msgstr ""
+
+#: directorymergewindow.cpp:2174
+msgid ""
+"This operation is currently not possible because directory merge is "
+"currently running."
+msgstr ""
+
+#: directorymergewindow.cpp:2234
+msgid ""
+"There was an error in the last step.\n"
+"Do you want to continue with the item that caused the error or do you want "
+"to skip this item?"
+msgstr ""
+
+#: directorymergewindow.cpp:2236
+msgid "Continue merge after an error"
+msgstr ""
+
+#: directorymergewindow.cpp:2237
+msgid "Continue With Last Item"
+msgstr ""
+
+#: directorymergewindow.cpp:2238
+msgid "Skip Item"
+msgstr ""
+
+#: directorymergewindow.cpp:2272
+msgid "Skipped."
+msgstr ""
+
+#: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493
+msgid "In progress..."
+msgstr ""
+
+#: directorymergewindow.cpp:2327
+msgid "Merge operation complete."
+msgstr ""
+
+#: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330
+msgid "Merge Complete"
+msgstr ""
+
+#: directorymergewindow.cpp:2340
+msgid ""
+"Simulated merge complete: Check if you agree with the proposed operations."
+msgstr ""
+
+#: directorymergewindow.cpp:2374
+msgid "An error occurred. Press OK to see detailed information.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:2406
+#, kde-format
+msgid "Error: While deleting %1: Creating backup failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2413
+#, kde-format
+msgid "delete directory recursively( %1 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2415
+#, kde-format
+msgid "delete( %1 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2430
+msgid "Error: delete dir operation failed while trying to read the directory."
+msgstr ""
+
+#: directorymergewindow.cpp:2449
+#, kde-format
+msgid "Error: rmdir( %1 ) operation failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2459
+msgid "Error: delete operation failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2485
+#, kde-format
+msgid "manual merge( %1, %2, %3 -> %4)"
+msgstr ""
+
+#: directorymergewindow.cpp:2488
+msgid ""
+"     Note: After a manual merge the user should continue by pressing F7."
+msgstr ""
+
+#: directorymergewindow.cpp:2513
+#, kde-format
+msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2522
+#, kde-format
+msgid "copyLink( %1 -> %2 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2533
+msgid "Error: copyLink failed: Remote links are not yet supported."
+msgstr ""
+
+#: directorymergewindow.cpp:2539
+msgid "Error: copyLink failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2564
+#, kde-format
+msgid "copy( %1 -> %2 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2590
+#, kde-format
+msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination."
+msgstr ""
+
+#: directorymergewindow.cpp:2596
+#, kde-format
+msgid "rename( %1 -> %2 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2605
+msgid "Error: Rename failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2623
+#, kde-format
+msgid "Error during makeDir of %1. Cannot delete existing file."
+msgstr ""
+
+#: directorymergewindow.cpp:2639
+#, kde-format
+msgid "makeDir( %1 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2649
+msgid "Error while creating directory."
+msgstr ""
+
+#: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784
+msgid "Dest"
+msgstr ""
+
+#: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709
+msgid "Dir"
+msgstr ""
+
+#: directorymergewindow.cpp:2678
+msgid "Type"
+msgstr ""
+
+#: directorymergewindow.cpp:2678
+msgid "Size"
+msgstr ""
+
+#: directorymergewindow.cpp:2679
+msgid "Attr"
+msgstr ""
+
+#: directorymergewindow.cpp:2679
+msgid "Last Modification"
+msgstr ""
+
+#: directorymergewindow.cpp:2679
+msgid "Link-Destination"
+msgstr ""
+
+#: directorymergewindow.cpp:2709 difftextwindow.cpp:401
+msgid "File"
+msgstr ""
+
+#: directorymergewindow.cpp:2726
+msgid "not available"
+msgstr ""
+
+#: directorymergewindow.cpp:2746
+msgid "A (Dest): "
+msgstr ""
+
+#: directorymergewindow.cpp:2749
+msgid "A (Base): "
+msgstr ""
+
+#: directorymergewindow.cpp:2755
+msgid "B (Dest): "
+msgstr ""
+
+#: directorymergewindow.cpp:2763
+msgid "C (Dest): "
+msgstr ""
+
+#: directorymergewindow.cpp:2769
+msgid "Dest: "
+msgstr ""
+
+#: directorymergewindow.cpp:2836
+msgid "Save Directory Merge State As..."
+msgstr ""
+
+#: directorymergewindow.cpp:2959
+msgid "Start/Continue Directory Merge"
+msgstr ""
+
+#: directorymergewindow.cpp:2960
+msgid "Run Operation for Current Item"
+msgstr ""
+
+#: directorymergewindow.cpp:2961
+msgid "Compare Selected File"
+msgstr ""
+
+#: directorymergewindow.cpp:2962
+msgid "Merge Current File"
+msgstr ""
+
+#: directorymergewindow.cpp:2962
+msgid ""
+"Merge\n"
+"File"
+msgstr ""
+
+#: directorymergewindow.cpp:2963
+msgid "Fold All Subdirs"
+msgstr ""
+
+#: directorymergewindow.cpp:2964
+msgid "Unfold All Subdirs"
+msgstr ""
+
+#: directorymergewindow.cpp:2968
+msgid "Choose A for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2969
+msgid "Choose B for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2970
+msgid "Choose C for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2971
+msgid "Auto-Choose Operation for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2972
+msgid "No Operation for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2977
+msgid "Show Identical Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2977
+msgid ""
+"Identical\n"
+"Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2978
+msgid "Show Different Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2979
+msgid "Show Files only in A"
+msgstr ""
+
+#: directorymergewindow.cpp:2979
+msgid ""
+"Files\n"
+"only in A"
+msgstr ""
+
+#: directorymergewindow.cpp:2980
+msgid "Show Files only in B"
+msgstr ""
+
+#: directorymergewindow.cpp:2980
+msgid ""
+"Files\n"
+"only in B"
+msgstr ""
+
+#: directorymergewindow.cpp:2981
+msgid "Show Files only in C"
+msgstr ""
+
+#: directorymergewindow.cpp:2981
+msgid ""
+"Files\n"
+"only in C"
+msgstr ""
+
+#: directorymergewindow.cpp:2985
+msgid "Compare Explicitly Selected Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2986
+msgid "Merge Explicitly Selected Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995
+msgid "Do Nothing"
+msgstr ""
+
+#: directorymergewindow.cpp:2989
+msgid "A"
+msgstr ""
+
+#: directorymergewindow.cpp:2990
+msgid "B"
+msgstr ""
+
+#: directorymergewindow.cpp:2991
+msgid "C"
+msgstr ""
+
+#: directorymergewindow.cpp:3000
+msgid "Delete A && B"
+msgstr ""
+
+#: directorymergewindow.cpp:3003
+msgid "Merge to A && B"
+msgstr ""
+
+#: main.cpp:74 main.cpp:76
+msgid "Ignored. (User defined.)"
+msgstr ""
+
+#: main.cpp:162
+msgid "kdiff3"
+msgstr ""
+
+#: main.cpp:164
+msgid "Tool for Comparison and Merge of Files and Directories"
+msgstr ""
+
+#: main.cpp:165
+msgid "(c) 2002-2011 Joachim Eibl"
+msgstr ""
+
+#: main.cpp:172 kdiff3_part.cpp:303
+msgid "Joachim Eibl"
+msgstr ""
+
+#: main.cpp:173
+msgid "Eike Sauer"
+msgstr ""
+
+#: main.cpp:173
+msgid "Bugfixes, Debian package maintainer"
+msgstr ""
+
+#: main.cpp:174
+msgid "Sebastien Fricker"
+msgstr ""
+
+#: main.cpp:174
+msgid "Windows installer"
+msgstr ""
+
+#: main.cpp:175
+msgid "Stephan Binner"
+msgstr ""
+
+#: main.cpp:175
+msgid "i18n-help"
+msgstr ""
+
+#: main.cpp:176
+msgid "Stefan Partheymueller"
+msgstr ""
+
+#: main.cpp:176
+msgid "Clipboard-patch"
+msgstr ""
+
+#: main.cpp:177
+msgid "David Faure"
+msgstr ""
+
+#: main.cpp:177
+msgid "KIO-Help"
+msgstr ""
+
+#: main.cpp:178
+msgid "Bernd Gehrmann"
+msgstr ""
+
+#: main.cpp:178
+msgid "Class CvsIgnoreList from Cervisia"
+msgstr ""
+
+#: main.cpp:179
+msgid "Andre Woebbeking"
+msgstr ""
+
+#: main.cpp:179
+msgid "Class StringMatcher"
+msgstr ""
+
+#: main.cpp:180
+msgid "Michael Denio"
+msgstr ""
+
+#: main.cpp:180
+msgid "Directory Equality-Coloring patch"
+msgstr ""
+
+#: main.cpp:181
+msgid "Manfred Koehler"
+msgstr ""
+
+#: main.cpp:181
+msgid "Fix for slow startup on Windows"
+msgstr ""
+
+#: main.cpp:182
+msgid "Sergey Zorin"
+msgstr ""
+
+#: main.cpp:182
+msgid "Diff Ext for Windows"
+msgstr ""
+
+#: main.cpp:183
+msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+msgstr ""
+
+#: main.cpp:183
+msgid "GNU-Diffutils"
+msgstr ""
+
+#: main.cpp:184
+msgid "Tino Boellsterling, Timothy Mee"
+msgstr ""
+
+#: main.cpp:184
+msgid "Intensive test, use and feedback"
+msgstr ""
+
+#: main.cpp:185
+msgid "Michael Schmidt"
+msgstr ""
+
+#: main.cpp:185
+msgid "Mac support"
+msgstr ""
+
+#: main.cpp:186
+msgid "Valentin Rusu"
+msgstr ""
+
+#: main.cpp:186 main.cpp:187
+msgid "KDE4 porting"
+msgstr ""
+
+#: main.cpp:187
+msgid "Albert Astals Cid"
+msgstr ""
+
+#: main.cpp:188
+msgid "Silvan Scherrer"
+msgstr ""
+
+#: main.cpp:188
+msgid "OS2 port"
+msgstr ""
+
+#: main.cpp:190
+msgid "+ Many thanks to those who reported bugs and contributed ideas!"
+msgstr ""
+
+#: main.cpp:196
+msgid "Merge the input."
+msgstr ""
+
+#: main.cpp:197
+msgid "Explicit base file. For compatibility with certain tools."
+msgstr ""
+
+#: main.cpp:198
+msgid "Output file. Implies -m. E.g.: -o newfile.txt"
+msgstr ""
+
+#: main.cpp:199
+msgid "Output file, again. (For compatibility with certain tools.)"
+msgstr ""
+
+#: main.cpp:200
+msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)"
+msgstr ""
+
+#: main.cpp:201
+msgid "Don't solve conflicts automatically. (For compatibility...)"
+msgstr ""
+
+#: main.cpp:202
+msgid "Visible name replacement for input file 1 (base)."
+msgstr ""
+
+#: main.cpp:203
+msgid "Visible name replacement for input file 2."
+msgstr ""
+
+#: main.cpp:204
+msgid "Visible name replacement for input file 3."
+msgstr ""
+
+#: main.cpp:205
+msgid "Alternative visible name replacement. Supply this once for every input."
+msgstr ""
+
+#: main.cpp:206
+msgid ""
+"Override a config setting. Use once for every setting. E.g.: --cs "
+"\"AutoAdvance=1\""
+msgstr ""
+
+#: main.cpp:207
+msgid "Show list of config settings and current values."
+msgstr ""
+
+#: main.cpp:208
+msgid "Use a different config file."
+msgstr ""
+
+#: main.cpp:211
+msgid "file1 to open (base, if not specified via --base)"
+msgstr ""
+
+#: main.cpp:212
+msgid "file2 to open"
+msgstr ""
+
+#: main.cpp:213
+msgid "file3 to open"
+msgstr ""
+
+#: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976
+#: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002
+#: mergeresultwindow.cpp:1014
+#, kde-format
+msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)"
+msgstr ""
+
+#: mergeresultwindow.cpp:303
+msgid ""
+"The output has been modified.\n"
+"If you continue your changes will be lost."
+msgstr ""
+
+#: mergeresultwindow.cpp:834 pdiff.cpp:532
+msgid "All input files are binary equal."
+msgstr ""
+
+#: mergeresultwindow.cpp:836
+msgid "All input files contain the same text."
+msgstr ""
+
+#: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840
+#: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540
+#, kde-format
+msgid "Files %1 and %2 are binary equal.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841
+#: mergeresultwindow.cpp:843
+#, kde-format
+msgid "Files %1 and %2 have equal text.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:849
+msgid "Total number of conflicts: "
+msgstr "ആകെ വൈരുദ്ധ്യങ്ങളുടെ എണ്ണം: "
+
+#: mergeresultwindow.cpp:850
+msgid ""
+"\n"
+"Nr of automatically solved conflicts: "
+msgstr ""
+"\n"
+"സ്വയം പരിഹരിച്ച വൈരുദ്ധ്യങ്ങളുടെ എണ്ണം: "
+
+#: mergeresultwindow.cpp:851
+msgid ""
+"\n"
+"Nr of unsolved conflicts: "
+msgstr ""
+"\n"
+"പരിഹയ്ക്കാത്ത വൈരുദ്ധ്യങ്ങളുടെ എണ്ണം: "
+
+#: mergeresultwindow.cpp:853
+msgid "Conflicts"
+msgstr "വൈരുദ്ധ്യങ്ങള്‍"
+
+#: mergeresultwindow.cpp:1728
+msgid "<No src line>"
+msgstr "<സ്രോതസ്സില്‍ വരിയില്ല>"
+
+#: mergeresultwindow.cpp:1736
+msgid "<Merge Conflict (Whitespace only)>"
+msgstr "<ലയനത്തില്‍ വൈരുദ്ധ്യം (ഒഴിഞ്ഞ സ്ഥലം മാത്രം)>"
+
+#: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517
+msgid "<Merge Conflict>"
+msgstr "<ലയനത്തില്‍ വൈരുദ്ധ്യം>"
+
+#: mergeresultwindow.cpp:2725
+msgid ""
+"Not all conflicts are solved yet.\n"
+"File not saved.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736
+msgid "Conflicts Left"
+msgstr "ബാക്കിയുള്ള വൈരുദ്ധ്യങ്ങള്‍"
+
+#: mergeresultwindow.cpp:2734
+msgid ""
+"There is a line end style conflict. Please choose the line end style "
+"manually.\n"
+"File not saved.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:2748
+msgid ""
+"\n"
+"\n"
+"Creating backup failed. File not saved."
+msgstr ""
+
+#: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792
+msgid "File Save Error"
+msgstr ""
+
+#: mergeresultwindow.cpp:2792
+msgid "Error while writing."
+msgstr ""
+
+#: mergeresultwindow.cpp:3122
+msgid "Output"
+msgstr ""
+
+#: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314
+msgid "[Modified]"
+msgstr ""
+
+#: mergeresultwindow.cpp:3141
+msgid "Encoding for saving"
+msgstr ""
+
+#: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737
+#: optiondialog.cpp:762
+msgid "Line end style:"
+msgstr "വരി അവസാനിക്കുന്ന രീതി:"
+
+#: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767
+msgid "Unix"
+msgstr ""
+
+#: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737
+msgid "DOS"
+msgstr ""
+
+#: mergeresultwindow.cpp:3229
+msgid "Conflict"
+msgstr "വൈരുദ്ധ്യം"
+
+#: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263
+#: mergeresultwindow.cpp:3265
+msgid "Codec from"
+msgstr ""
+
+#: kdiff3_part.cpp:157 kdiff3_part.cpp:234
+msgid "Couldn't find files for comparison."
+msgstr ""
+
+#: kdiff3_part.cpp:302
+msgid "KDiff3Part"
+msgstr ""
+
+#: fileaccess.cpp:612
+msgid ""
+"While trying to make a backup, deleting an older backup failed. \n"
+"Filename: "
+msgstr ""
+"ഭാവിയിലേക്കായി കരുതാന്‍ ശ്രമിക്കുമ്പോള്‍ പഴയ കരുതല്‍ മായ്ക്കുന്നത് പരാജയപ്പെട്ടു.\n"
+"ഫയല്‍നാമം: "
+
+#: fileaccess.cpp:619
+msgid ""
+"While trying to make a backup, renaming failed. \n"
+"Filenames: "
+msgstr ""
+"ഭാവിയിലേക്കായി കരുതാന്‍ ശ്രമിക്കുമ്പോള്‍ പുഅര്നാമകരണം പരാജയപ്പെട്ടു.\n"
+" ഫയല്‍നാമം: "
+
+#: fileaccess.cpp:643
+#, kde-format
+msgid "Getting file status: %1"
+msgstr "ഫയല്‍ നിലവാരം എടുക്കുന്നു: %1"
+
+#: fileaccess.cpp:686
+#, kde-format
+msgid "Reading file: %1"
+msgstr "ഫയല്‍ വായിക്കുന്നു: %1"
+
+#: fileaccess.cpp:723
+#, kde-format
+msgid "Writing file: %1"
+msgstr "ഫയലില്‍ എഴുതി ചേര്ക്കുന്നു: %1"
+
+#: fileaccess.cpp:751
+msgid "Out of memory"
+msgstr "ഓര്മ്മക്ക് പുറത്താണ്"
+
+#: fileaccess.cpp:786
+#, kde-format
+msgid "Making directory: %1"
+msgstr "തട്ട് പണിയുന്നു: %1"
+
+#: fileaccess.cpp:806
+#, kde-format
+msgid "Removing directory: %1"
+msgstr "തട്ട് നീക്കം ചെയ്യുന്നു: %1"
+
+#: fileaccess.cpp:821
+#, kde-format
+msgid "Removing file: %1"
+msgstr "ഫയല്‍ നീക്കം ചെയ്യുന്നു: %1"
+
+#: fileaccess.cpp:837
+#, kde-format
+msgid "Creating symbolic link: %1 -> %2"
+msgstr "പ്രതീകാത്മക കണ്ണി സൃഷ്ടിക്കുന്നു: %1->%2"
+
+#: fileaccess.cpp:864
+#, kde-format
+msgid "Renaming file: %1 -> %2"
+msgstr "ഫയല്‍ പുനര്നാമകരണം ചെയ്യുന്നു: %1->%2 "
+
+#: fileaccess.cpp:897
+#, kde-format
+msgid "Copying file: %1 -> %2"
+msgstr "ഫയല്‍ പകര്ത്തുന്നു: %1->%2"
+
+#: fileaccess.cpp:911
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for reading failed. Filename: "
+"%1"
+msgstr "ഫയല്‍ പകര്‍പ്പെടുക്കുമ്പോള്‍ പിശക്: ഫയല്‍ വായനക്കായി തുറക്കുന്നത് പരാജയപ്പെട്ടു. ഫയല്‍ നാമം: %1"
+
+#: fileaccess.cpp:917
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for writing failed. Filename: "
+"%1"
+msgstr ""
+"ഫയല്‍ പകര്‍പ്പെടുക്കുമ്പോള്‍ പിശക്: ഫയലില്‍ എഴുതാനായി തുറക്കുന്നത് പരാജയപ്പെട്ടു. ഫയല്‍ നാമം: %1"
+
+#: fileaccess.cpp:932
+#, kde-format
+msgid "Error during file copy operation: Reading failed. Filename: %1"
+msgstr "ഫയല്‍ പകര്‍പ്പെടുക്കുമ്പോള്‍ പിശക്:  വായന പരാജയപ്പെട്ടു ഫയല്‍നാമം: %1"
+
+#: fileaccess.cpp:941
+#, kde-format
+msgid "Error during file copy operation: Writing failed. Filename: %1"
+msgstr "ഫയല്‍ പകര്‍പ്പെടുക്കുമ്പോള്‍ പിശക്:  എഴുത്ത് പരാജയപ്പെട്ടു ഫയല്‍നാമം: %1"
+
+#: fileaccess.cpp:1231
+msgid "Reading directory: "
+msgstr "തട്ട് വായിക്കുന്നു:"
+
+#: fileaccess.cpp:1355
+#, kde-format
+msgid "Listing directory: %1"
+msgstr "തട്ട് പട്ടികയാക്കുന്നു:%1"
+
+#: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396
+msgid "&Cancel"
+msgstr "&റദ്ദു ചെയ്യുക"
+
+#: difftextwindow.cpp:403
+msgid "Line"
+msgstr ""
+
+#: difftextwindow.cpp:405
+msgid "Line not available"
+msgstr ""
+
+#: difftextwindow.cpp:1703 difftextwindow.cpp:1736
+msgid "Encoding:"
+msgstr ""
+
+#: difftextwindow.cpp:1759 kdiff3.cpp:831
+msgid "Top line"
+msgstr "മുകളിലെ വരി"
+
+#: difftextwindow.cpp:1769
+msgid "End"
+msgstr ""
+
+#: kdiff3.cpp:169
+msgid "Current Configuration:"
+msgstr "നിലവിലുള്ള ക്രമീകരണം:"
+
+#: kdiff3.cpp:174
+msgid "Config Option Error:"
+msgstr "ക്രമീകരണ ഐച്ഛികത്തിലെ പിശക്:"
+
+#: kdiff3.cpp:219
+msgid "Option --auto used, but no output file specified."
+msgstr "--auto ഐച്ഛികം ഉപയോഗിച്ചിച്ചുണ്ടെങ്കിലും, ഉല്പന്ന ഫയല്‍ നിര്‍ദ്ദേശിച്ചിട്ടില്ല."
+
+#: kdiff3.cpp:369
+msgid "Option --auto ignored for directory comparison."
+msgstr "--auto ഐച്ഛികം  തട്ടുകളുടെ താരതമ്യ‌‌ത്തിനു് അവഗണിച്ചു."
+
+#: kdiff3.cpp:405
+msgid "Saving failed."
+msgstr "സൂക്ഷിക്കുന്നതു് പരാജയപ്പെട്ടു."
+
+#: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214
+msgid "Opening of these files failed:"
+msgstr "ഈ ഫയലുകള്‍ തുറക്കുന്നത് പരാജയപ്പെട്ടു:"
+
+#: kdiff3.cpp:449
+msgid "File Open Error"
+msgstr "ഫയല്‍ തുറക്കുന്നതില്‍ പിശക്"
+
+#: kdiff3.cpp:477
+msgid "Opens documents for comparison..."
+msgstr "താരതമ്യ‌‌ത്തിനായി പ്രമാണങ്ങള്‍ തുറക്കുന്നു..."
+
+#: kdiff3.cpp:479
+msgid "Reload"
+msgstr "വീണ്ടും കയറ്റുക"
+
+#: kdiff3.cpp:482
+msgid "Saves the merge result. All conflicts must be solved!"
+msgstr "ലയനഫലം സൂക്ഷിയ്ക്കുന്നു. എല്ലാ വൈരുദ്ധ്യ‌ങ്ങളും പരിഹരിക്കപ്പെടണം!"
+
+#: kdiff3.cpp:484
+msgid "Saves the current document as..."
+msgstr "നിലവിലുള്ള പ്രമാണങ്ങള്‍ ഇങ്ങനെ സൂക്ഷിയ്ക്കുന്നു..."
+
+#: kdiff3.cpp:487
+msgid "Print the differences"
+msgstr "വ്യ‌‌ത്യാ‌‌സങ്ങള്‍ അച്ചടിയ്ക്കുക"
+
+#: kdiff3.cpp:490
+msgid "Quits the application"
+msgstr "പ്രയോഗം വിട്ടുപോകുന്നു"
+
+#: kdiff3.cpp:492
+msgid "Cuts the selected section and puts it to the clipboard"
+msgstr "തെരഞ്ഞെടുത്ത ഭാഗം മുറിച്ചെടുത്ത് ഓര്‍മ്മച്ചെപ്പില്‍ വെയ്ക്കുന്നു"
+
+#: kdiff3.cpp:494
+msgid "Copies the selected section to the clipboard"
+msgstr "തെരഞ്ഞെടുത്ത ഭാഗം പകര്‍ത്തെടുത്ത് ഓര്‍മ്മച്ചെപ്പില്‍ വെയ്ക്കുന്നു"
+
+#: kdiff3.cpp:496
+#, fuzzy
+#| msgid "Pastes the clipboard contents to actual position"
+msgid "Pastes the clipboard contents to current position"
+msgstr "ഓര്‍മ്മച്ചെപ്പിലെ ഉള്ളടക്കം യഥാസ്ഥാനത്ത് പതിക്കുന്നു"
+
+#: kdiff3.cpp:498
+msgid "Select everything in current window"
+msgstr "നിലവിലുള്ള ജാലകത്തിലെ എല്ലാം തെരഞ്ഞെടുക്കുക"
+
+#: kdiff3.cpp:500
+msgid "Search for a string"
+msgstr "ഒരു അക്ഷരനിര പരതുന്നു"
+
+#: kdiff3.cpp:502
+msgid "Search again for the string"
+msgstr "വീണ്ടും ആ അക്ഷരനിര പരതുന്നു"
+
+#: kdiff3.cpp:507
+msgid "Enables/disables the statusbar"
+msgstr "നിലവാരപ്പട്ട പ്രാവര്‍ത്തികമാക്കുന്നു/പ്രവര്‍ത്തനരഹിതമാക്കുന്നു"
+
+#: kdiff3.cpp:511
+msgid "Configure KDiff3..."
+msgstr "കെഡിഫ്3 ക്രമീകരിക്കാം..."
+
+#: kdiff3.cpp:532
+msgid "Go to Current Delta"
+msgstr "നിലവിലുള്ള ഡെല്‍ട്ടയിലേക്ക് പോകുക"
+
+#: kdiff3.cpp:532
+msgid ""
+"Current\n"
+"Delta"
+msgstr ""
+"നിലവിലുള്ള\n"
+"ഡെല്‍ട്ട"
+
+#: kdiff3.cpp:534
+msgid "Go to First Delta"
+msgstr "ആദ്യ ഡെല്‍ട്ടയിലേക്ക് പോകുക"
+
+#: kdiff3.cpp:534
+msgid ""
+"First\n"
+"Delta"
+msgstr ""
+"ആദ്യ‌‌ത്തെ\n"
+"ഡെല്‍ട്ട"
+
+#: kdiff3.cpp:536
+msgid "Go to Last Delta"
+msgstr "അവസാന ഡെല്‍ട്ടയിലേക്ക് പോകുക"
+
+#: kdiff3.cpp:536
+msgid ""
+"Last\n"
+"Delta"
+msgstr ""
+"അവസാന\n"
+"ഡെല്‍ട്ട"
+
+#: kdiff3.cpp:538
+msgid "(Skips white space differences when \"Show White Space\" is disabled.)"
+msgstr ""
+"(\"ഒഴിഞ്ഞ ഇടങ്ങള്‍ കാണിയ്ക്കുക\" പ്രവര്‍ത്തമരഹിതമാക്കിയാല്‍ ഒഴിഞ്ഞ ഇടങ്ങളിലെ വ്യ‌‌ത്യാ‌‌സങ്ങള്‍ "
+"ഒഴിവാക്കുന്നു.)"
+
+#: kdiff3.cpp:539
+msgid ""
+"(Does not skip white space differences even when \"Show White Space\" is "
+"disabled.)"
+msgstr ""
+"( \"ഒഴിഞ്ഞ ഇടങ്ങള്‍ കാണിയ്ക്കുക\" പ്രവര്‍ത്തമരഹിതമാക്കിയാലും ഒഴിഞ്ഞ ഇടങ്ങളുടെ വ്യ‌‌ത്യാ‌‌സങ്ങള്‍ "
+"ഒഴിവാക്കുന്നില്ല.)"
+
+#: kdiff3.cpp:540
+msgid "Go to Previous Delta"
+msgstr "മുന്‍ ഡെല്‍ട്ടയിലേക്ക് പോകുക"
+
+#: kdiff3.cpp:540
+msgid ""
+"Prev\n"
+"Delta"
+msgstr ""
+"മുന്‍\n"
+"ഡെല്‍ട്ട"
+
+#: kdiff3.cpp:542
+msgid "Go to Next Delta"
+msgstr "അടുത്ത ഡെല്‍ട്ടയിലേക്ക് പോകുക"
+
+#: kdiff3.cpp:542
+msgid ""
+"Next\n"
+"Delta"
+msgstr ""
+"അടുത്ത\n"
+"ഡെല്‍ട്ട"
+
+#: kdiff3.cpp:544
+msgid "Go to Previous Conflict"
+msgstr "മുന്‍ വൈരുദ്ധ്യത്തിലേക്ക് പോകുക"
+
+#: kdiff3.cpp:544
+msgid ""
+"Prev\n"
+"Conflict"
+msgstr ""
+"മുന്‍\n"
+"വൈരുദ്ധ്യം"
+
+#: kdiff3.cpp:546
+msgid "Go to Next Conflict"
+msgstr "അടുത്ത വൈരുദ്ധ്യത്തിലേക്ക് പോകുക"
+
+#: kdiff3.cpp:546
+msgid ""
+"Next\n"
+"Conflict"
+msgstr ""
+"അടുത്ത\n"
+"വൈരുദ്ധ്യം"
+
+#: kdiff3.cpp:548
+msgid "Go to Previous Unsolved Conflict"
+msgstr "പരിഹരിക്കപ്പെടാത്ത മുന്‍ വൈരുദ്ധ്യത്തിലേക്ക് പോകുക"
+
+#: kdiff3.cpp:548
+msgid ""
+"Prev\n"
+"Unsolved"
+msgstr ""
+"മുന്‍\n"
+"പരിഹരിക്കപ്പെടാത്ത"
+
+#: kdiff3.cpp:550
+msgid "Go to Next Unsolved Conflict"
+msgstr "പരിഹരിക്കപ്പെടാത്ത അടുത്ത വൈരുദ്ധ്യത്തിലേക്ക് പോകുക"
+
+#: kdiff3.cpp:550
+msgid ""
+"Next\n"
+"Unsolved"
+msgstr ""
+"അടുത്ത\n"
+"പരിഹരിക്കപ്പെടാത്ത"
+
+#: kdiff3.cpp:552
+msgid "Select Line(s) From A"
+msgstr "A യില്‍നിന്നു വരി (കള്‍) തെരഞ്ഞെടുക്കുക"
+
+#: kdiff3.cpp:552
+msgid ""
+"Choose\n"
+"A"
+msgstr ""
+"A\n"
+"തെരഞ്ഞെടുക്കുക"
+
+#: kdiff3.cpp:553
+msgid "Select Line(s) From B"
+msgstr "B യില്‍നിന്നു വരി (കള്‍) തെരഞ്ഞെടുക്കുക"
+
+#: kdiff3.cpp:553
+msgid ""
+"Choose\n"
+"B"
+msgstr ""
+"B\n"
+"തെരഞ്ഞെടുക്കുക"
+
+#: kdiff3.cpp:554
+msgid "Select Line(s) From C"
+msgstr "C യില്‍നിന്നു വരി (കള്‍) തെരഞ്ഞെടുക്കുക"
+
+#: kdiff3.cpp:554
+msgid ""
+"Choose\n"
+"C"
+msgstr ""
+"C\n"
+"തെരഞ്ഞെടുക്കുക"
+
+#: kdiff3.cpp:555
+msgid "Automatically Go to Next Unsolved Conflict After Source Selection"
+msgstr "സ്രോതസ്സ് തെരഞ്ഞെടുത്താല്‍ സ്വയം അടുത്ത പരിഹരിക്കപ്പെടാത്ത വൈരുദ്ധ്യ‌ത്തിലേക്ക് പോകുക"
+
+#: kdiff3.cpp:555
+msgid ""
+"Auto\n"
+"Next"
+msgstr ""
+"സ്വയം\n"
+"അടുത്ത"
+
+#: kdiff3.cpp:557
+msgid "Show Space && Tabulator Characters for Differences"
+msgstr "വ്യ‌‌ത്യാ‌‌സങ്ങള്‍ക്കായി  ഇടവും പട്ടികയുടെ ചിഹ്നങ്ങളും കാണിക്കുക"
+
+#: kdiff3.cpp:557
+msgid ""
+"White\n"
+"Characters"
+msgstr ""
+"ഒഴിഞ്ഞ\n"
+"അക്ഷരങ്ങള്‍"
+
+#: kdiff3.cpp:558
+msgid "Show White Space"
+msgstr "ശുഭ്രസ്ഥാനങ്ങള്‍ കാണിക്കുക"
+
+#: kdiff3.cpp:558
+msgid ""
+"White\n"
+"Deltas"
+msgstr ""
+"എഴുതുക\n"
+"ഡെല്‍റ്റാസ്"
+
+#: kdiff3.cpp:560
+msgid "Show Line Numbers"
+msgstr "വരികളുടെ നമ്പര്‍ കാണിക്കുക"
+
+#: kdiff3.cpp:560
+msgid ""
+"Line\n"
+"Numbers"
+msgstr ""
+"വരി\n"
+"നമ്പര്‍"
+
+#: kdiff3.cpp:561
+msgid "Choose A Everywhere"
+msgstr "എല്ലായിടത്തും A തെരഞ്ഞെടുക്കുക"
+
+#: kdiff3.cpp:562
+msgid "Choose B Everywhere"
+msgstr "എല്ലായിടത്തും B തെരഞ്ഞെടുക്കുക"
+
+#: kdiff3.cpp:563
+msgid "Choose C Everywhere"
+msgstr "എല്ലായിടത്തും C തെരഞ്ഞെടുക്കുക"
+
+#: kdiff3.cpp:564
+msgid "Choose A for All Unsolved Conflicts"
+msgstr "പരിഹരിക്കപ്പെടാത്ത എല്ലാ വൈരുദ്ധ്യ‌ങ്ങള്‍ക്കും A തെരഞ്ഞെടുക്കുക"
+
+#: kdiff3.cpp:565
+msgid "Choose B for All Unsolved Conflicts"
+msgstr "പരിഹരിക്കപ്പെടാത്ത എല്ലാ വൈരുദ്ധ്യ‌ങ്ങള്‍ക്കും B തെരഞ്ഞെടുക്കുക"
+
+#: kdiff3.cpp:566
+msgid "Choose C for All Unsolved Conflicts"
+msgstr "പരിഹരിക്കപ്പെടാത്ത എല്ലാ വൈരുദ്ധ്യ‌ങ്ങള്‍ക്കും C തെരഞ്ഞെടുക്കുക"
+
+#: kdiff3.cpp:567
+msgid "Choose A for All Unsolved Whitespace Conflicts"
+msgstr "പരിഹരിക്കപ്പെടാത്ത എല്ലാ ശുഭ്രസ്ഥാനങ്ങള്‍ക്കും A തെരഞ്ഞെടുക്കുക"
+
+#: kdiff3.cpp:568
+msgid "Choose B for All Unsolved Whitespace Conflicts"
+msgstr "പരിഹരിക്കപ്പെടാത്ത എല്ലാ ശുഭ്രസ്ഥാനങ്ങള്‍ക്കും B തെരഞ്ഞെടുക്കുക"
+
+#: kdiff3.cpp:569
+msgid "Choose C for All Unsolved Whitespace Conflicts"
+msgstr "പരിഹരിക്കപ്പെടാത്ത എല്ലാ ശുഭ്രസ്ഥാനങ്ങള്‍ക്കും C തെരഞ്ഞെടുക്കുക"
+
+#: kdiff3.cpp:570
+msgid "Automatically Solve Simple Conflicts"
+msgstr "നിസ്സാര വൈരുദ്ധ്യ‌ങ്ങള്‍ സ്വയം പരിഹരിക്കുക"
+
+#: kdiff3.cpp:571
+msgid "Set Deltas to Conflicts"
+msgstr "വൈരുദ്ധ്യ‌ങ്ങള്‍ക്ക് ഡെല്‍റ്റകളെ തയ്യാറാക്കുക"
+
+#: kdiff3.cpp:572
+msgid "Run Regular Expression Auto Merge"
+msgstr "റെഗുലര്‍ എക്സ്പ്രഷന്റെ യാന്ത്രികലയനം പ്രവര്‍ത്തിപ്പിക്കുക"
+
+#: kdiff3.cpp:573
+msgid "Automatically Solve History Conflicts"
+msgstr "നാള്‍വഴി വൈരുദ്ധ്യ‌ങ്ങള്‍ സ്വയം പരിഹരിക്കുക"
+
+#: kdiff3.cpp:574
+msgid "Split Diff At Selection"
+msgstr "തെരഞ്ഞെടുക്കുന്ന സമയത്ത് diff പിളര്ത്തുക"
+
+#: kdiff3.cpp:575
+msgid "Join Selected Diffs"
+msgstr "തെരഞ്ഞെടുത്ത diff യോജിപ്പിക്കുക"
+
+#: kdiff3.cpp:577
+msgid "Show Window A"
+msgstr "ജാലകം A കാണിക്കുക"
+
+#: kdiff3.cpp:578
+msgid "Show Window B"
+msgstr "ജാലകം B കാണിക്കുക"
+
+#: kdiff3.cpp:579
+msgid "Show Window C"
+msgstr "ജാലകം Cകാണിക്കുക"
+
+#: kdiff3.cpp:580 kdiff3.cpp:591
+msgid "Focus Next Window"
+msgstr "അടുത്ത ജാലകത്തില്‍ കേന്ദ്രീകരിക്കുക"
+
+#: kdiff3.cpp:582
+msgid "Normal Overview"
+msgstr "സാധാരണ ചെറുവിവരണം"
+
+#: kdiff3.cpp:583
+msgid "A vs. B Overview"
+msgstr "A ക്കും Bക്കും പൊതുവായ ചെറുവിവരണം"
+
+#: kdiff3.cpp:584
+msgid "A vs. C Overview"
+msgstr "A ക്കും Cക്കും പൊതുവായ ചെറുവിവരണം"
+
+#: kdiff3.cpp:585
+msgid "B vs. C Overview"
+msgstr " Bക്കും Cക്കും പൊതുവായ ചെറുവിവരണം"
+
+#: kdiff3.cpp:586
+msgid "Word Wrap Diff Windows"
+msgstr "ഡിഫ് ജാലകങ്ങളിലെ വാക്കുകള്‍ ഒതുക്കുക"
+
+#: kdiff3.cpp:587
+msgid "Add Manual Diff Alignment"
+msgstr "ഡിഫില്‍ മാനവികമായി നിര ഒപ്പിക്കല്‍ ചേര്‍ക്കുക"
+
+#: kdiff3.cpp:588
+msgid "Clear All Manual Diff Alignments"
+msgstr "ഡിഫിലെ എല്ലാ‍ മാനവികമായ നിര ഒപ്പിക്കലും നീക്കം ചെയ്യുക"
+
+#: kdiff3.cpp:593
+msgid "Focus Prev Window"
+msgstr "പിന്നിട്ട ജാലകത്തില്‍ കേന്ദ്രീകരിക്കുക"
+
+#: kdiff3.cpp:594
+msgid "Toggle Split Orientation"
+msgstr "പിളര്ന്ന ഘടന മാറ്റുക"
+
+#: kdiff3.cpp:596
+msgid "Dir && Text Split Screen View"
+msgstr "അറയും &പാഠങ്ങളും പിളര്ന്ന യവനികാദൃശ്യം"
+
+#: kdiff3.cpp:598
+msgid "Toggle Between Dir && Text View"
+msgstr "അറയുടേയും പാഠങ്ങളുടേയും കാഴ്ചകള്‍ തമ്മില്‍ മാറ്റുക"
+
+#: kdiff3.cpp:654 pdiff.cpp:1812
+msgid "The merge result hasn't been saved."
+msgstr "ലയനഫലം സംരക്ഷിച്ചിട്ടില്ല."
+
+#: kdiff3.cpp:656
+msgid "Save && Quit"
+msgstr "സംരക്ഷിച്ച് &&വിട്ടുപോകുക"
+
+#: kdiff3.cpp:657
+msgid "Quit Without Saving"
+msgstr "സംരക്ഷിക്കാതെ വിട്ടുപോകുക"
+
+#: kdiff3.cpp:665 pdiff.cpp:1823
+msgid "Saving the merge result failed."
+msgstr "ലയനഫലം സൂക്ഷിയ്ക്കുന്നതില്‍ പരാജയം"
+
+#: kdiff3.cpp:676 pdiff.cpp:1078
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort?"
+msgstr "ഇപ്പോള്‍ നിങ്ങള്‍ ഒരു തട്ട് ലയിപ്പിച്ചുകൊണ്ടിരിക്കുകയാണ്. അലസിപ്പിക്കണമെന്ന് ഉറപ്പാണോ?"
+
+#: kdiff3.cpp:701
+msgid "Saving file..."
+msgstr "ഫയല്‍ സൂക്ഷിയ്ക്കുന്നു..."
+
+#: kdiff3.cpp:718
+msgid "Saving file with a new filename..."
+msgstr "ഫയല്‍ ഒരു പുതിയ ഫയല്‍നാമത്തില്‍ സൂക്ഷിയ്ക്കുന്നു..."
+
+#: kdiff3.cpp:781
+#, fuzzy
+#| msgid "Printing completed."
+msgid "Printing not implemented."
+msgstr "അച്ചടി മുഴുവനായി"
+
+#: kdiff3.cpp:815
+msgid "Printing..."
+msgstr "അച്ചടിക്കുന്നു"
+
+#: kdiff3.cpp:956
+msgid "Selection"
+msgstr "തെരഞ്ഞെടുക്കല്‍"
+
+#: kdiff3.cpp:982
+msgid "Printing completed."
+msgstr "അച്ചടി മുഴുവനായി"
+
+#: kdiff3.cpp:986
+msgid "Printing aborted."
+msgstr "അച്ചടി അലസി."
+
+#: kdiff3.cpp:993
+msgid "Exiting..."
+msgstr "വിട്ടു പോകുന്നു..."
+
+#: kdiff3.cpp:1006
+msgid "Toggling toolbar..."
+msgstr "ഉപകരണപ്പട്ട മാറ്റുന്നു..."
+
+#: kdiff3.cpp:1027
+msgid "Toggle the statusbar..."
+msgstr "നിലവാരപ്പട്ട മാറ്റുക"
+
+#: smalldialogs.cpp:58
+msgid "A (Base):"
+msgstr "ഏ (അടിസ്ഥാനം)"
+
+#: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99
+#: smalldialogs.cpp:142
+msgid "File..."
+msgstr "ഫയല്‍..."
+
+#: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101
+#: smalldialogs.cpp:144
+msgid "Dir..."
+msgstr "തട്ട്..."
+
+#: smalldialogs.cpp:93
+msgid "C (Optional):"
+msgstr "സി (ഐച്ഛികം):"
+
+#: smalldialogs.cpp:116
+msgid "Swap/Copy Names ..."
+msgstr "വെച്ചുമാറല്‍/പേരുകള്‍ ‍പകര്‍ത്തല്‍..."
+
+#: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123
+#, kde-format
+msgid "Swap %1<->%2"
+msgstr "വെച്ചുമാറല്‍ %1->%2"
+
+#: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126
+#, kde-format
+msgid "Copy %1->Output"
+msgstr "പകര്‍പ്പ് %1-> ഉത്പന്നം"
+
+#: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129
+#, kde-format
+msgid "Swap %1<->Output"
+msgstr "വെച്ചുമാറല്‍ %1->ഉത്പന്നം"
+
+#: smalldialogs.cpp:136
+msgid "Output (optional):"
+msgstr "ഉത്പന്നം (ഐച്ഛികം):"
+
+#: smalldialogs.cpp:168
+msgid "Configure..."
+msgstr "ക്രമീകരിക്കുക..."
+
+#: smalldialogs.cpp:174
+msgid "&OK"
+msgstr "&ശരി"
+
+#: smalldialogs.cpp:362
+msgid "Search text:"
+msgstr "പാഠം പരതുക:"
+
+#: smalldialogs.cpp:369
+msgid "Case sensitive"
+msgstr "അവസ്ഥ സൂക്ഷ്മവേദ്യ‌‌മായ"
+
+#: smalldialogs.cpp:372
+msgid "Search A"
+msgstr "ഏ പരതുക"
+
+#: smalldialogs.cpp:377
+msgid "Search B"
+msgstr "ബി പരതുക"
+
+#: smalldialogs.cpp:382
+msgid "Search C"
+msgstr "സി പരതുക"
+
+#: smalldialogs.cpp:387
+msgid "Search output"
+msgstr "ഉത്പന്നം പരതുക"
+
+#: smalldialogs.cpp:392
+msgid "&Search"
+msgstr "&പരതുക"
+
+#: smalldialogs.cpp:409
+msgid "Regular Expression Tester"
+msgstr "നിത്യഭാവ പരിശോധകന്‍"
+
+#: smalldialogs.cpp:414 optiondialog.cpp:936
+msgid "Auto merge regular expression:"
+msgstr "നിത്യഭാവം സ്വയം ലയിപ്പിക്കുക:"
+
+#: smalldialogs.cpp:422
+msgid "Example auto merge line:"
+msgstr "വരി സ്വയം ലയിപ്പിക്കുക ഉദാഹരണം:"
+
+#: smalldialogs.cpp:424
+#, fuzzy
+msgid "To test auto merge, copy a line as used in your files."
+msgstr "സ്വയം ലയിപ്പിക്കുവാന്‍ നിങ്ങളുടെ ഫയലിലെ ഒരു വരി പരീക്ഷണ പകര്‍ത്തല്‍ നടത്തുക."
+
+#: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494
+msgid "Match result:"
+msgstr "ചേര്ച്ചയുടെ ഫലം:"
+
+#: smalldialogs.cpp:441 optiondialog.cpp:962
+msgid "History start regular expression:"
+msgstr "നാള്‍വഴി നിത്യ‌‌ഭാവം തുടങ്ങുക:"
+
+#: smalldialogs.cpp:449
+msgid "Example history start line (with leading comment):"
+msgstr "നാള്‍വഴി ഉദാഹരണം തുടങ്ങുന്ന വരി (വ്യാഖ്യാ‌‌നം മുന്നിലായി):"
+
+#: smalldialogs.cpp:451
+msgid ""
+"Copy a history start line as used in your files,\n"
+"including the leading comment."
+msgstr "നിങ്ങളുടെ ഫയലില്‍ ഉള്ള പോലെ നാള്‍വഴി തുടങ്ങുന്ന വരിമുന്നിലെ വ്യാഖ്യാ‌‌നത്തോടെ പകര്‍ത്തുക."
+
+#: smalldialogs.cpp:469 optiondialog.cpp:972
+msgid "History entry start regular expression:"
+msgstr "നാള്‍വഴി ചേര്‍ക്കുന്നത് നിത്യ‌‌ഭാവം തുടങ്ങും:"
+
+#: smalldialogs.cpp:477
+msgid "History sort key order:"
+msgstr "നാള്‍വഴി തരം തിരിക്കുന്ന കീയുടെ ക്രമം:"
+
+#: smalldialogs.cpp:485
+msgid "Example history entry start line (without leading comment):"
+msgstr "ഉദാഹരണത്തിന് നാള്‍വഴി ചേര്‍ക്കുന്നത് തുടങ്ങുന്ന വരി (മുന്നിലെ വ്യാ‌‌ഖ്യാ‌‌നം കൂടാതെ):"
+
+#: smalldialogs.cpp:487
+msgid ""
+"Copy a history entry start line as used in your files,\n"
+"but omit the leading comment."
+msgstr ""
+"നിങ്ങളുടെ ഫയലിലുപയോഗിക്കുന്ന വിധത്തില്‍ നാള്‍വഴി ചേര്ക്കുന്നത് തുടങ്ങുന്ന വരി പകര്‍ത്തുക,\n"
+"എന്നാല്‍ മുന്നിലെ വ്യാ‌‌ഖ്യാ‌‌നം ഒഴിവാക്കണം."
+
+#: smalldialogs.cpp:501
+msgid "Sort key result:"
+msgstr "പ്രധാനപ്പെട്ട ഫലങ്ങള്‍ തരം തിരിക്കുക:"
+
+#: smalldialogs.cpp:508
+msgid "OK"
+msgstr "ശരി"
+
+#: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583
+msgid "Match success."
+msgstr "ചേര്‍ച്ച വിജയം."
+
+#: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589
+msgid "Match failed."
+msgstr "ചേര്‍ച്ച പരാജയപ്പെട്ടു."
+
+#: smalldialogs.cpp:574
+#, fuzzy
+msgid "Opening and closing parentheses do not match in regular expression."
+msgstr "നിത്യഭാവത്തില്‍ തുടങ്ങുന്നതും അവസാനിക്കുന്നതുമായ ബ്രാക്കറ്റുകള്‍ യോജിക്കുന്നില്ല."
+
+#: optiondialog.cpp:367
+msgid "Unicode, 8 bit"
+msgstr "യൂണിക്കോഡ്, 8ബിറ്റ്"
+
+#: optiondialog.cpp:368
+msgid "Unicode"
+msgstr "യൂണിക്കോഡ്"
+
+#: optiondialog.cpp:369
+msgid "Latin1"
+msgstr "ലാറ്റിന്‍1"
+
+#: optiondialog.cpp:388
+msgid "Change this if non-ASCII characters are not displayed correctly."
+msgstr "ASCII അല്ലാത്ത ചിഹ്നങ്ങള്‍ ശരിയായി പ്രദര്ശിപ്പിക്കപ്പെടുന്നില്ലെങ്കില്‍ അത് മാറ്റുക"
+
+#: optiondialog.cpp:465
+msgid "Configure"
+msgstr "ക്രമീകരിക്കുക"
+
+#: optiondialog.cpp:531
+msgid "Font"
+msgstr "അക്ഷരരൂപം"
+
+#: optiondialog.cpp:532
+msgid "Editor & Diff Output Font"
+msgstr "ഗ്രന്ധ പരിശോധകനും ഡിഫ് പുറത്ത് വിടുന്നതിന്റെ അക്ഷരരൂപവും"
+
+#: optiondialog.cpp:556
+msgid "Italic font for deltas"
+msgstr "ഡെല്‍ട്ടകള്ക്ക് ചെരിഞ്ഞ അക്ഷരരൂപം"
+
+#: optiondialog.cpp:559
+msgid ""
+"Selects the italic version of the font for differences.\n"
+"If the font doesn't support italic characters, then this does nothing."
+msgstr ""
+"വ്യ‌‌ത്യാ‌‌സങ്ങള്‍ക്ക് അക്ഷരരൂപങ്ങളുടെ ചെരിഞ്ഞ പതിപ്പുകള്‍ തരഞ്ഞെടുക്കുന്നു.ഈ അക്ഷരരൂപങ്ങള്‍ ചെരിഞ്ഞ "
+"ചിഹ്നങ്ങളെ പിന്തുണക്കുന്നില്ലെങ്കില്‍, പിന്നെ അത് ഒന്നും ചെയ്യുന്നില്ല."
+
+#: optiondialog.cpp:568
+msgid "Color"
+msgstr "വര്‍ണ്ണം"
+
+#: optiondialog.cpp:569
+msgid "Colors Settings"
+msgstr "വര്‍ണ്ണങ്ങള്‍ ഉറപ്പിക്കല്‍ "
+
+#: optiondialog.cpp:588
+msgid "Editor and Diff Views:"
+msgstr "ഗ്രന്ധപരിശോധകനും ഡിഫ് വീക്ഷണവും"
+
+#: optiondialog.cpp:596
+msgid "Foreground color:"
+msgstr "പുരോതല വര്ണ്ണം:"
+
+#: optiondialog.cpp:603
+msgid "Background color:"
+msgstr "പശ്ചാത്തല വര്‍ണ്ണം:"
+
+#: optiondialog.cpp:612
+msgid "Diff background color:"
+msgstr "ഡിഫ് പശ്ചാത്തല വര്‍ണ്ണം:"
+
+#: optiondialog.cpp:620
+msgid "Color A:"
+msgstr "വര്ണ്ണം ഏ:"
+
+#: optiondialog.cpp:628
+msgid "Color B:"
+msgstr "വര്ണ്ണം ബി"
+
+#: optiondialog.cpp:636
+msgid "Color C:"
+msgstr "വര്ണ്ണം സി"
+
+#: optiondialog.cpp:643
+msgid "Conflict color:"
+msgstr "വര്ണ്ണ വൈരുദ്ധ്യം:"
+
+#: optiondialog.cpp:651
+msgid "Current range background color:"
+msgstr "നടപ്പിലുള്ള റേഞ്ചിന്റെ പശ്ചാത്തല വര്ണ്ണം:"
+
+#: optiondialog.cpp:659
+msgid "Current range diff background color:"
+msgstr "നടപ്പിലുള്ള റേഞ്ചിന്റെ ഡിഫ് പശ്ചാത്തല വര്ണ്ണം:"
+
+#: optiondialog.cpp:666
+msgid "Color for manually aligned difference ranges:"
+msgstr "മാനവികമായി വരിയാക്കിയ വ്യ‌‌ത്യാ‌സ പരിധികളുടെ വര്ണ്ണം:"
+
+#: optiondialog.cpp:672
+msgid "Directory Comparison View:"
+msgstr "അറകളുടെ താരതമ്യ‌‌വീക്ഷണം"
+
+#: optiondialog.cpp:678
+msgid "Newest file color:"
+msgstr "ഏറ്റവും പുതിയ ഫയലിന്റെ വര്ണ്ണം"
+
+#: optiondialog.cpp:682
+msgid ""
+"Changing this color will only be effective when starting the next directory "
+"comparison."
+msgstr "ഈ വര്ണ്ണം മാറുന്നത് മാത്രമേ അടുത്ത അറകളുടെ താരതമ്യം തുടങ്ങുമ്പോള്‍ഫലപ്രദമാകൂ."
+
+#: optiondialog.cpp:687
+msgid "Oldest file color:"
+msgstr "ഏറ്റവും പഴയ ഫയലിന്റെ നിറം:"
+
+#: optiondialog.cpp:695
+msgid "Middle age file color:"
+msgstr "മദ്ധ്യ‌‌കാല ഫയലിന്റെ നിറം:"
+
+#: optiondialog.cpp:703
+msgid "Color for missing files:"
+msgstr "കാണാതെപോയ ഫയലിന്റെ നിറം"
+
+#: optiondialog.cpp:717
+msgid "Editor"
+msgstr "ഗ്രന്ഥ പരിശോധകന്‍"
+
+#: optiondialog.cpp:718
+msgid "Editor Behavior"
+msgstr "ഗ്രന്ഥ പരിശോധകന്റെ പെരുമാറ്റം"
+
+#: optiondialog.cpp:732
+msgid "Tab inserts spaces"
+msgstr "തൊങ്ങല്‍ ഇടയ്ക്ക് സ്ഥലം ഇടുന്നു"
+
+#: optiondialog.cpp:735
+#, fuzzy
+msgid ""
+"On: Pressing tab generates the appropriate number of spaces.\n"
+"Off: A tab character will be inserted."
+msgstr ""
+"ഓണ്‍: ടാബ് കീ അമര്ത്തിയാല്‍ ആവശ്യ‌‌ത്തിനുള്ള അച്ചകലം സൃഷ്ടിക്കും.\n"
+"ഓഫ്: ഒരു ടാബ് ചിഹ്നം പതിക്കും."
+
+#: optiondialog.cpp:741
+msgid "Tab size:"
+msgstr "ടാബ് അളവ്:"
+
+#: optiondialog.cpp:747
+msgid "Auto indentation"
+msgstr "യാന്ത്രികമായി സ്ഥലം ഒഴിച്ചുവിടല്‍ "
+
+#: optiondialog.cpp:750
+msgid "On: The indentation of the previous line is used for a new line.\n"
+msgstr "ഓണ്‍: മുന്‍ വരിയില്‍ സ്ഥലം ഒഴിച്ചു വിട്ടത് പുതിയ വരി തുടങ്ങാന്‍ ഉപയോഗിച്ചു.\n"
+
+#: optiondialog.cpp:754
+msgid "Auto copy selection"
+msgstr "യാന്ത്രിക പകര്പ്പ് തെരഞ്ഞെടുക്കുക"
+
+#: optiondialog.cpp:757
+msgid ""
+"On: Any selection is immediately written to the clipboard.\n"
+"Off: You must explicitely copy e.g. via Ctrl-C."
+msgstr ""
+"ഓണ്‍: തെരഞ്ഞെടുത്തതെന്തും ഉടനടി ഓര്‍മ്മച്ചെപ്പില്‍ എഴുതപ്പെടും.\n"
+"ഓഫ്: നിങ്ങള്‍ നിസ്സംശയം പകര്‍പ്പെടുക്കണം. ഉദാഹരണമായി Ctrl+C വഴി."
+
+#: optiondialog.cpp:768
+#, fuzzy
+#| msgid "&Window"
+msgid "Dos/Windows"
+msgstr "&ജാലകം"
+
+#: optiondialog.cpp:769
+#, fuzzy
+#| msgid ""
+#| "Auto\n"
+#| "Next"
+msgid "Autodetect"
+msgstr ""
+"സ്വയം\n"
+"അടുത്ത"
+
+#: optiondialog.cpp:772
+msgid ""
+"Sets the line endings for when an edited file is saved.\n"
+"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A"
+msgstr ""
+"ചിട്ടപ്പെടുത്തിക്കഴിഞ്ഞ ഒരു ഫയല്‍ സം‌രക്ഷിക്കുമ്പോള്‍ വരിയുടെ അവസാനം ഉറപ്പിക്കുന്നു.ഡോസ്/വിന്‍ഡോസ്: "
+"CR=0D, LF=0A നോട് ചേര്‍ത്ത് CR+LF; UNIX: LF"
+
+#: optiondialog.cpp:784
+msgid "Diff"
+msgstr "ഡിഫ്"
+
+#: optiondialog.cpp:785
+msgid "Diff Settings"
+msgstr "ഡിഫ് സജ്ജീകരണങ്ങള്‍"
+
+#: optiondialog.cpp:809
+msgid "Treat as white space."
+msgstr "വെളുത്ത അച്ചകലമായി കണക്കാക്കുക"
+
+#: optiondialog.cpp:811
+msgid "Ignore numbers"
+msgstr "അക്കങ്ങളെ വിഗണിക്കുക"
+
+#: optiondialog.cpp:814
+msgid ""
+"Ignore number characters during line matching phase. (Similar to Ignore "
+"white space.)\n"
+"Might help to compare files with numeric data."
+msgstr ""
+"വരികളുടെ ചേര്‍ച്ച നോക്കുന്ന ഘട്ടത്തില്‍ അക്കങ്ങളായ ചിഹ്നങ്ങള്‍ വിഗണിക്കുക. (വെളുത്തഅച്ചകലങ്ങള്‍ "
+"വിഗണിച്ചപോലെ.)\n"
+"ഫയലുകള്‍ സാംഖ്യ‌‌‌‌വിവരങ്ങളുമായി താരതമ്യം ചെയ്യാന്‍ സഹായിച്ചേയ്ക്കും."
+
+#: optiondialog.cpp:819
+msgid "Ignore C/C++ comments"
+msgstr "സി/സി++ വിശദീകരണം വിഗണിക്കുക"
+
+#: optiondialog.cpp:821
+msgid "Treat C/C++ comments like white space."
+msgstr "സി/സി++ വിശദീകരണം വെള്ള അച്ചകലമായി കണക്കാക്കുക."
+
+#: optiondialog.cpp:825
+msgid "Ignore case"
+msgstr "അക്ഷരങ്ങളുടെ അവസ്ഥ വിഗണിക്കുക"
+
+#: optiondialog.cpp:828
+msgid "Treat case differences like white space changes. ('a'<=>'A')"
+msgstr "അക്ഷരങ്ങളുടെ അവസ്ഥാന്തരങ്ങള്‍ ‍വെള്ള അച്ചകലമായി കണക്കാക്കുക ('a'<=>'A'"
+
+#: optiondialog.cpp:832
+msgid "Preprocessor command:"
+msgstr "പൂര്‍വ്വ പ്രക്രിയയ്ക്കുള്ള ആജ്ഞ:"
+
+#: optiondialog.cpp:836
+msgid "User defined pre-processing. (See the docs for details.)"
+msgstr "ഉപയോക്താവ് നിര്‍വ്വചിയ്ക്കുന്ന പൂര്‍വ്വ -പ്രക്രിയ. ( വിശദീകരണങ്ങള്ക്ക് പ്രമാണപത്രം നോക്കുക.)"
+
+#: optiondialog.cpp:839
+msgid "Line-matching preprocessor command:"
+msgstr "വരികളുടെ-ചേര്‍ച്ച നോക്കുന്ന പൂര്‍വ്വ പ്രക്രിയയ്ക്കുള്ള ആജ്ഞ:"
+
+#: optiondialog.cpp:843
+msgid ""
+"This pre-processor is only used during line matching.\n"
+"(See the docs for details.)"
+msgstr ""
+"വരികളുടെ ചേര്‍ച്ച നോക്കുമ്പോള്‍ മാത്രമേ ഈ പൂര്‍വ്വപ്രക്രിയ ഉപയോഗിക്കൂ.\n"
+"(വിശദീകരണങ്ങള്ക്ക് പ്രമാണപത്രം നോക്കുക.)"
+
+#: optiondialog.cpp:846
+msgid "Try hard (slower)"
+msgstr "കഠിനമായി യത്നിക്കുക (സാവകാശം)"
+
+#: optiondialog.cpp:849
+msgid ""
+"Enables the --minimal option for the external diff.\n"
+"The analysis of big files will be much slower."
+msgstr ""
+"പുറം ഡിഫിനായി --ഏറ്റവും കുറഞ്ഞ ഐച്ഛികങ്ങള്‍ സജീവമാക്കുന്നു.\n"
+"വളരെ വലിയ ഫയലുകളുടെ വിശകലനം വളരെ സാവധാനത്തിലായിരിക്കും."
+
+#: optiondialog.cpp:854
+msgid "Align B and C for 3 input files"
+msgstr "3 അകത്തുവിടാനുള്ള ഫയലുകള്‍ക്കായി ബിയും സിയും നിര ഒപ്പിക്കുക."
+
+#: optiondialog.cpp:857
+msgid ""
+"Try to align B and C when comparing or merging three input files.\n"
+"Not recommended for merging because merge might get more complicated.\n"
+"(Default is off.)"
+msgstr ""
+"അകത്തുവിടാനുള്ള 3ഫയലുകള്‍ താരതമ്യമ് ചെയ്യുമ്പോഴോ ലയനം നടത്തുമ്പോഴോബിയും സിയും നിരഒപ്പിക്കാന്‍ "
+"ശ്രമിക്കണം.\n"
+"കൂടുതല്‍ കുഴപ്പം പിടിച്ചതായതുകൊണ്ട് ലയനത്തിന്റെ കാര്യ‌‌ത്തില്‍ അത് ശുപാര്‍ശ ചെയ്തിട്ടില്ല.\n"
+"(ഓഫ് ആണ് സഹജം.)"
+
+#: optiondialog.cpp:870
+msgid "Merge Settings"
+msgstr "ഒരുക്കങ്ങള്‍ ലയിപ്പിക്കുക"
+
+#: optiondialog.cpp:885
+msgid "Auto advance delay (ms):"
+msgstr "യാന്ത്രികമായ മുന്‍കൂര്‍ വിളംബം (മിസെ):"
+
+#: optiondialog.cpp:890
+msgid ""
+"When in Auto-Advance mode the result of the current selection is shown \n"
+"for the specified time, before jumping to the next conflict. Range: 0-2000 ms"
+msgstr ""
+"സ്വയം പുരോഗമിക്കുന്ന മട്ടിലാകുമ്പോള്‍ അടുത്ത സംഘട്ടത്തിലേക്ക് എടുത്തു ചാടുന്നതിന് മുമ്പ് ഇപ്പോള്‍ "
+"തെരഞ്ഞെടുത്തതിന്റെ ഫലം നിര്‍ദ്ദേശിക്കപ്പെട്ടസമയത്തേയ്ക്ക് കാണിക്കും \n"
+"ദൈര്‍ഘ്യം: 0-2000മിസെ"
+
+#: optiondialog.cpp:895
+msgid "Show info dialogs"
+msgstr "വിവരങ്ങളുടെ സംവാദ ജാലകം കാണിക്കുക"
+
+#: optiondialog.cpp:897
+msgid "Show a dialog with information about the number of conflicts."
+msgstr "സംഘട്ടനങ്ങളുടെ എണ്ണത്തെ സംബന്ധിക്കുന്ന വിവരം ഒരു സംവാദജാലകത്തില്‍ കാണിക്കുക."
+
+#: optiondialog.cpp:900
+msgid "White space 2-file merge default:"
+msgstr "ശുഭ്രസ്ഥാനം 2-ഫയല്‍ ലയനം സഹജം:"
+
+#: optiondialog.cpp:904 optiondialog.cpp:917
+msgid "Manual Choice"
+msgstr "മാനവിക അവസരം"
+
+#: optiondialog.cpp:908 optiondialog.cpp:922
+msgid ""
+"Allow the merge algorithm to automatically select an input for white-space-"
+"only changes."
+msgstr ""
+"ശുഭ്ര-സ്ഥാനത്തിന്-മാത്രം വേണ്ടി സ്വയം നിക്ഷേപം തെരഞ്ഞെടുക്കാന്‍ ലയനത്തിനായുള്ള ആജ്ഞാസംഹിതക്ക് "
+"മാറ്റങ്ങള്‍ അനുവദിക്കുക"
+
+#: optiondialog.cpp:913
+msgid "White space 3-file merge default:"
+msgstr "ശുഭ്രസ്ഥാനം 3-ഫയല്‍ ലയനം സഹജം:"
+
+#: optiondialog.cpp:927
+msgid "Automatic Merge Regular Expression"
+msgstr "നിത്യഭാവം സ്വയമേവ ലയിപ്പിക്കുക"
+
+#: optiondialog.cpp:940
+msgid ""
+"Regular expression for lines where KDiff3 should automatically choose one "
+"source.\n"
+"When a line with a conflict matches the regular expression then\n"
+"- if available - C, otherwise B will be chosen."
+msgstr ""
+"കെഡിഫ്3 സ്വതന്ത്രമായി ഒരു സ്രോതസ്സ് തെരഞ്ഞെടുക്കുന്നിടത്ത് വരികള്‍ക്കുള്ള നിത്യഭാവം.\n"
+"സംഘട്ടനമുള്ള വരി ചേര്‍ന്നുവരുമ്പോള്‍ അതിന്റെ നിത്യ‌‌ഭാവം\n"
+"-സി ഉണ്ടെങ്കില്‍ അത്, അല്ലെങ്കില്‍ ബി തെരഞ്ഞെടുക്കപ്പെടും."
+
+#: optiondialog.cpp:946
+msgid "Run regular expression auto merge on merge start"
+msgstr "ലയനം തുടങ്ങുമ്പോള്‍ നിത്യ‌‌ഭാവത്തിന്റെ യാന്ത്രികലയനം പ്രവര്‍ത്തിപ്പിക്കുക"
+
+#: optiondialog.cpp:948
+msgid ""
+"Run the merge for auto merge regular expressions\n"
+"immediately when a merge starts.\n"
+msgstr ""
+"ഒരു ലയനം തുടങ്ങുമ്പോള്‍ ഉടനെത്തന്നെ നിത്യഭാവത്തിന്റെ സ്വയം ലയനത്തിന്\n"
+" വേണ്ടി ലയനം പ്രവര്‍ത്തിപ്പിക്കുക.\n"
+
+#: optiondialog.cpp:953
+msgid "Version Control History Merging"
+msgstr "ഭാഷാന്തര നിയന്ത്രണത്തിന്റെ നാള്‍വഴി ലയിപ്പിക്കല്‍"
+
+#: optiondialog.cpp:966
+#, fuzzy
+msgid ""
+"Regular expression for the start of the version control history entry.\n"
+"Usually this line contains the \"$Log$\" keyword.\n"
+"Default value: \".*\\$Log.*\\$.*\""
+msgstr ""
+"ഭാഷാന്തര നിയന്ത്രണത്തിന്റെ നാള്‍വഴി തുടങ്ങുന്നതിന്റെ നിത്യഭാവം എഴുതിച്ചേര്‍ക്കല്‍.\n"
+"സാധാരണയായി ഈ വരി  \"$Log$\"-keyword.\n"
+" ഉള്‍ക്കൊണ്ടിരിക്കും.\n"
+"തനത് മൂല്യം:\".*\\$Log.*\\$.*\""
+
+#: optiondialog.cpp:984
+msgid ""
+"A version control history entry consists of several lines.\n"
+"Specify the regular expression to detect the first line (without the leading "
+"comment).\n"
+"Use parentheses to group the keys you want to use for sorting.\n"
+"If left empty, then KDiff3 assumes that empty lines separate history "
+"entries.\n"
+"See the documentation for details."
+msgstr ""
+"ഒരു ഭാഷാന്തര നിയന്ത്രണത്തിന്റെ നാള്‍വഴി ചേര്‍ക്കുന്നതില്‍ പല വരികളുണ്ടാകും.\n"
+"ആദ്യ‌‌ത്തെ വരി കണ്ടുപിടിക്കാനുള്ള നിത്യ‌‌ഭാവം നിര്‍ദ്ദേശിക്കുക (മുന്നിലെ വിശദീകരണം കൂടാതെ).\n"
+"ഇനം തിരിക്കാനുപയോഗിക്കുന്ന കീകളെ ഒന്നിച്ചാക്കാന്‍ ബ്രാക്കറ്റുകള്‍ ഉപയോഗിക്കുക.\n"
+"ഒഴിച്ചു വിട്ടാല്‍ ഒഴിഞ്ഞ വരികള്‍ നാള്‍വഴിയിലെ വിവരങ്ങള്‍ വേര്‍തിരിക്കാനാണെന്ന് കെഡിഫ്3 "
+"സങ്കല്‍പ്പിയ്ക്കും.\n"
+"വിശദീകരണങ്ങള്‍ക്ക് പ്രമാണപത്രം കാണുക."
+
+#: optiondialog.cpp:992
+msgid "History merge sorting"
+msgstr "തരം തിരിക്കുന്നതിനെ നാള്‍വഴി ലയിപ്പിക്കുന്നു"
+
+#: optiondialog.cpp:994
+msgid "Sort version control history by a key."
+msgstr "ഭാഷാന്തര നിയന്ത്രണ നാള്‍വഴി ഒരു കീ ഉപയോഗിച്ച് തരം തിരിക്കുക."
+
+#: optiondialog.cpp:1004
+msgid "History entry start sort key order:"
+msgstr "നാള്‍വഴി ചേര്‍ത്തത് കീകളുടെ ക്രമം തരം തിരിക്കാന്‍ തുടങ്ങുന്നു."
+
+#: optiondialog.cpp:1008
+msgid ""
+"Each pair of parentheses used in the regular expression for the history "
+"start entry\n"
+"groups a key that can be used for sorting.\n"
+"Specify the list of keys (that are numbered in order of occurrence\n"
+"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n"
+"If left empty, then no sorting will be done.\n"
+"See the documentation for details."
+msgstr ""
+
+#: optiondialog.cpp:1019
+msgid "Merge version control history on merge start"
+msgstr ""
+
+#: optiondialog.cpp:1021
+msgid "Run version control history automerge on merge start."
+msgstr ""
+
+#: optiondialog.cpp:1025
+msgid "Max number of history entries:"
+msgstr ""
+
+#: optiondialog.cpp:1028
+msgid "Cut off after specified number. Use -1 for infinite number of entries."
+msgstr ""
+
+#: optiondialog.cpp:1032
+msgid "Test your regular expressions"
+msgstr ""
+
+#: optiondialog.cpp:1037
+msgid "Irrelevant merge command:"
+msgstr ""
+
+#: optiondialog.cpp:1041
+msgid ""
+"If specified this script is run after automerge\n"
+"when no other relevant changes were detected.\n"
+"Called with the parameters: filename1 filename2 filename3"
+msgstr ""
+
+#: optiondialog.cpp:1047
+msgid "Auto save and quit on merge without conflicts"
+msgstr ""
+
+#: optiondialog.cpp:1050
+msgid ""
+"If KDiff3 was started for a file-merge from the command line and all\n"
+"conflicts are solvable without user interaction then automatically save and "
+"quit.\n"
+"(Similar to command line option \"--auto\".)"
+msgstr ""
+
+#: optiondialog.cpp:1061 optiondialog.cpp:1062
+msgid "Directory"
+msgstr "തട്ടു്"
+
+#: optiondialog.cpp:1075
+msgid "Recursive directories"
+msgstr "തട്ടിനുള്ളിലെ തട്ടുകള്‍ കൂടി"
+
+#: optiondialog.cpp:1077
+msgid "Whether to analyze subdirectories or not."
+msgstr "തട്ടിനുള്ളിലെ തട്ടുകള്‍ കൂടി വിശകലനം ചെയ്യണോ വേണ്ടയോ എന്നു്."
+
+#: optiondialog.cpp:1079
+msgid "File pattern(s):"
+msgstr ""
+
+#: optiondialog.cpp:1084
+msgid ""
+"Pattern(s) of files to be analyzed. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1090
+msgid "File-anti-pattern(s):"
+msgstr ""
+
+#: optiondialog.cpp:1095
+msgid ""
+"Pattern(s) of files to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1101
+msgid "Dir-anti-pattern(s):"
+msgstr ""
+
+#: optiondialog.cpp:1106
+msgid ""
+"Pattern(s) of directories to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1112
+msgid "Use .cvsignore"
+msgstr ""
+
+#: optiondialog.cpp:1115
+msgid ""
+"Extends the antipattern to anything that would be ignored by CVS.\n"
+"Via local \".cvsignore\" files this can be directory specific."
+msgstr ""
+
+#: optiondialog.cpp:1120
+msgid "Find hidden files and directories"
+msgstr ""
+
+#: optiondialog.cpp:1123
+msgid "Finds files and directories with the hidden attribute."
+msgstr ""
+
+#: optiondialog.cpp:1125
+msgid "Finds files and directories starting with '.'."
+msgstr ""
+
+#: optiondialog.cpp:1129
+msgid "Follow file links"
+msgstr ""
+
+#: optiondialog.cpp:1132
+msgid ""
+"On: Compare the file the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+
+#: optiondialog.cpp:1137
+msgid "Follow directory links"
+msgstr ""
+
+#: optiondialog.cpp:1140
+msgid ""
+"On: Compare the directory the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+
+#: optiondialog.cpp:1156
+msgid "Case sensitive filename comparison"
+msgstr ""
+
+#: optiondialog.cpp:1159
+msgid ""
+"The directory comparison will compare files or directories when their names "
+"match.\n"
+"Set this option if the case of the names must match. (Default for Windows is "
+"off, otherwise on.)"
+msgstr ""
+
+#: optiondialog.cpp:1163
+msgid "File Comparison Mode"
+msgstr ""
+
+#: optiondialog.cpp:1169
+msgid "Binary comparison"
+msgstr ""
+
+#: optiondialog.cpp:1170
+msgid "Binary comparison of each file. (Default)"
+msgstr ""
+
+#: optiondialog.cpp:1173
+msgid "Full analysis"
+msgstr ""
+
+#: optiondialog.cpp:1174
+msgid ""
+"Do a full analysis and show statistics information in extra columns.\n"
+"(Slower than a binary comparison, much slower for binary files.)"
+msgstr ""
+
+#: optiondialog.cpp:1178
+msgid "Trust the size and modification date (unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1179
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"Files with equal contents but different modification dates will appear as "
+"different.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+
+#: optiondialog.cpp:1184
+msgid ""
+"Trust the size and date, but use binary comparison if date does not match "
+"(unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1185
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"If the dates are not equal but the sizes are, use binary comparison.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+
+#: optiondialog.cpp:1190
+msgid "Trust the size (unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1191
+msgid ""
+"Assume that files are equal if their file lengths are equal.\n"
+"Useful for big directories or slow networks when the date is modified during "
+"download."
+msgstr ""
+
+#: optiondialog.cpp:1199
+msgid "Synchronize directories"
+msgstr ""
+
+#: optiondialog.cpp:1202
+msgid ""
+"Offers to store files in both directories so that\n"
+"both directories are the same afterwards.\n"
+"Works only when comparing two directories without specifying a destination."
+msgstr ""
+
+#: optiondialog.cpp:1208
+msgid "White space differences considered equal"
+msgstr ""
+
+#: optiondialog.cpp:1211
+msgid ""
+"If files differ only by white space consider them equal.\n"
+"This is only active when full analysis is chosen."
+msgstr ""
+
+#: optiondialog.cpp:1217
+msgid "Copy newer instead of merging (unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1220
+msgid ""
+"Don't look inside, just take the newer file.\n"
+"(Use this only if you know what you are doing!)\n"
+"Only effective when comparing two directories."
+msgstr ""
+
+#: optiondialog.cpp:1225
+msgid "Backup files (.orig)"
+msgstr ""
+
+#: optiondialog.cpp:1228
+msgid ""
+"If a file would be saved over an old file, then the old file\n"
+"will be renamed with a '.orig' extension instead of being deleted."
+msgstr ""
+
+#: optiondialog.cpp:1301 optiondialog.cpp:1302
+msgid "Regional Settings"
+msgstr ""
+
+#: optiondialog.cpp:1402
+msgid "Language (restart required)"
+msgstr ""
+
+#: optiondialog.cpp:1445
+msgid ""
+"Choose the language of the GUI strings or \"Auto\".\n"
+"For a change of language to take place, quit and restart KDiff3."
+msgstr ""
+
+#: optiondialog.cpp:1463
+msgid "Use the same encoding for everything:"
+msgstr ""
+
+#: optiondialog.cpp:1466
+msgid ""
+"Enable this allows to change all encodings by changing the first only.\n"
+"Disable this if different individual settings are needed."
+msgstr ""
+
+#: optiondialog.cpp:1471
+msgid "Note: Local Encoding is "
+msgstr ""
+
+#: optiondialog.cpp:1475
+msgid "File Encoding for A:"
+msgstr ""
+
+#: optiondialog.cpp:1481
+msgid ""
+"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n"
+"If the file is not Unicode then the selected encoding will be used as "
+"fallback.\n"
+"(Unicode detection depends on the first bytes of a file.)"
+msgstr ""
+
+#: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503
+msgid "Auto Detect Unicode"
+msgstr ""
+
+#: optiondialog.cpp:1490
+msgid "File Encoding for B:"
+msgstr ""
+
+#: optiondialog.cpp:1499
+msgid "File Encoding for C:"
+msgstr ""
+
+#: optiondialog.cpp:1508
+msgid "File Encoding for Merge Output and Saving:"
+msgstr ""
+
+#: optiondialog.cpp:1512
+msgid "Auto Select"
+msgstr ""
+
+#: optiondialog.cpp:1515
+msgid ""
+"If enabled then the encoding from the input files is used.\n"
+"In ambiguous cases a dialog will ask the user to choose the encoding for "
+"saving."
+msgstr ""
+
+#: optiondialog.cpp:1519
+msgid "File Encoding for Preprocessor Files:"
+msgstr ""
+
+#: optiondialog.cpp:1530
+msgid "Right To Left Language"
+msgstr ""
+
+#: optiondialog.cpp:1533
+msgid ""
+"Some languages are read from right to left.\n"
+"This setting will change the viewer and editor accordingly."
+msgstr ""
+
+#: optiondialog.cpp:1548
+msgid "Integration"
+msgstr ""
+
+#: optiondialog.cpp:1549
+msgid "Integration Settings"
+msgstr ""
+
+#: optiondialog.cpp:1563
+msgid "Command line options to ignore:"
+msgstr ""
+
+#: optiondialog.cpp:1568
+msgid ""
+"List of command line options that should be ignored when KDiff3 is used by "
+"other tools.\n"
+"Several values can be specified if separated via ';'\n"
+"This will suppress the \"Unknown option\" error."
+msgstr ""
+
+#: optiondialog.cpp:1575
+msgid "Quit also via Escape key"
+msgstr ""
+
+#: optiondialog.cpp:1578
+msgid ""
+"Fast method to exit.\n"
+"For those who are used to using the Escape key."
+msgstr ""
+
+#: optiondialog.cpp:1583
+msgid "Integrate with ClearCase"
+msgstr ""
+
+#: optiondialog.cpp:1586
+msgid ""
+"Integrate with Rational ClearCase from IBM.\n"
+"Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n"
+"(Only enabled when ClearCase \"bin\" directory is in the path.)"
+msgstr ""
+
+#: optiondialog.cpp:1592
+msgid "Remove ClearCase Integration"
+msgstr ""
+
+#: optiondialog.cpp:1595
+msgid ""
+"Restore the old \"map\" file from before doing the ClearCase integration."
+msgstr ""
+
+#: optiondialog.cpp:1680
+msgid "Incompatible Font"
+msgstr ""
+
+#: optiondialog.cpp:1681
+msgid "Continue at Own Risk"
+msgstr ""
+
+#: optiondialog.cpp:1682
+msgid "Select Another Font"
+msgstr ""
+
+#: optiondialog.cpp:1717
+msgid "This resets all options. Not only those of the current topic."
+msgstr ""
+
+#: pdiff.cpp:260
+msgid "PreprocessorCmd: "
+msgstr ""
+
+#: pdiff.cpp:265
+msgid "The following option(s) you selected might change data:\n"
+msgstr ""
+
+#: pdiff.cpp:266
+msgid ""
+"\n"
+"Most likely this is not wanted during a merge.\n"
+"Do you want to disable these settings or continue with these settings active?"
+msgstr ""
+
+#: pdiff.cpp:268
+msgid "Option Unsafe for Merging"
+msgstr ""
+
+#: pdiff.cpp:269
+msgid "Use These Options During Merge"
+msgstr ""
+
+#: pdiff.cpp:270
+msgid "Disable Unsafe Options"
+msgstr ""
+
+#: pdiff.cpp:300
+msgid "Loading A"
+msgstr ""
+
+#: pdiff.cpp:304
+msgid "Loading B"
+msgstr ""
+
+#: pdiff.cpp:321 pdiff.cpp:347
+msgid "Diff: A <-> B"
+msgstr ""
+
+#: pdiff.cpp:327 pdiff.cpp:372
+msgid "Linediff: A <-> B"
+msgstr ""
+
+#: pdiff.cpp:338
+msgid "Loading C"
+msgstr ""
+
+#: pdiff.cpp:350
+msgid "Diff: B <-> C"
+msgstr ""
+
+#: pdiff.cpp:353
+msgid "Diff: A <-> C"
+msgstr ""
+
+#: pdiff.cpp:375
+msgid "Linediff: B <-> C"
+msgstr ""
+
+#: pdiff.cpp:378
+msgid "Linediff: A <-> C"
+msgstr ""
+
+#: pdiff.cpp:534
+msgid "All input files contain the same text, but are not binary equal."
+msgstr ""
+
+#: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541
+#, kde-format
+msgid "Files %1 and %2 have equal text, but are not binary equal. \n"
+msgstr ""
+
+#: pdiff.cpp:551
+msgid ""
+"Some inputfiles don't seem to be pure textfiles.\n"
+"Note that the KDiff3-merge was not meant for binary data.\n"
+"Continue at your own risk."
+msgstr ""
+
+#: pdiff.cpp:566
+#, kde-format
+msgid ""
+"Some input characters could not be converted to valid unicode.\n"
+"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n"
+"Don't save the result if unsure. Continue at your own risk.\n"
+"Affected input files are in %1."
+msgstr ""
+
+#: pdiff.cpp:1080
+msgid "Abort"
+msgstr ""
+
+#: pdiff.cpp:1087 pdiff.cpp:1175
+msgid "Opening files..."
+msgstr ""
+
+#: pdiff.cpp:1152 pdiff.cpp:1223
+msgid "File open error"
+msgstr ""
+
+#: pdiff.cpp:1255
+msgid "Cutting selection..."
+msgstr ""
+
+#: pdiff.cpp:1276
+msgid "Copying selection to clipboard..."
+msgstr ""
+
+#: pdiff.cpp:1292
+msgid "Inserting clipboard contents..."
+msgstr ""
+
+#: pdiff.cpp:1814
+msgid "Save && Continue"
+msgstr ""
+
+#: pdiff.cpp:1815
+msgid "Continue Without Saving"
+msgstr ""
+
+#: pdiff.cpp:2018
+msgid "Search complete."
+msgstr ""
+
+#: pdiff.cpp:2018
+msgid "Search Complete"
+msgstr ""
+
+#: pdiff.cpp:2252
+msgid "Nothing is selected in either diff input window."
+msgstr ""
+
+#: pdiff.cpp:2252
+msgid "Error while adding manual diff range"
+msgstr ""
+
+#: kdiff3_shell.cpp:76
+msgid ""
+"Could not initialize the KDiff3 part.\n"
+"This usually happens due to an installation problem. Please read the README-"
+"file in the source package for details."
+msgstr ""
+
+#: rc.cpp:1
+msgctxt "NAME OF TRANSLATORS"
+msgid "Your names"
+msgstr "ശങ്കരനാരായണന്‍, പ്രവീണ്‍ അരിമ്പ്രത്തൊടിയില്‍"
+
+#: rc.cpp:2
+msgctxt "EMAIL OF TRANSLATORS"
+msgid "Your emails"
+msgstr "snalledam@dataone.in, pravi.a@gmail.com"
+
+#. i18n: file: kdiff3_part.rc:4
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:5
+msgid "&KDiff3"
+msgstr "&കെഡിഫ്3"
+
+#. i18n: file: kdiff3_part.rc:13
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:8
+msgid "Configure KDiff3"
+msgstr "കെഡിഫ്3 ക്രമീകരിയ്ക്കുക"
+
+#. i18n: file: kdiff3_part.rc:16
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:11
+msgid "KDiff3"
+msgstr "കെഡിഫ്3"
+
+#. i18n: file: kdiff3_shell.rc:106
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:38
+msgid "Main Toolbar"
+msgstr "പ്രധാന ഉപകരണപ്പട്ട"
diff --git a/po/ml/kdiff3plugin.po b/po/ml/kdiff3plugin.po
new file mode 100644 (file)
index 0000000..a6388f8
--- /dev/null
@@ -0,0 +1,107 @@
+# Malayalam Translation of kdiff3plugin.pot
+# Copyright (C) 2009 This_file_is_part_of_KDE
+# This file is distributed under the same license as the kdiff3plugin package.
+# SANKARANARAYANAN | ശങ്കരനാരായണന്‍ <snalledam@dataone.in>, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3plugin\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date:2009-01-19 HO:MI+ZONE\n"
+"Last-Translator: SANKARANARAYANAN | ശങ്കരനാരായണന്‍ <snalledam@dataone.in>\n"
+"Language-Team: MALAYALAM | മലയാളം <smc-discuss@googlegroups.com>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: kdiff3plugin.cpp:107
+msgid "KDiff3"
+msgstr "കെഡിഫ്3"
+
+#: kdiff3plugin.cpp:114
+#, kde-format
+msgid "Compare with %1"
+msgstr "%1 മായി താരതമ്യം ചെയ്യു‌‌ക"
+
+#: kdiff3plugin.cpp:120
+#, kde-format
+msgid "Merge with %1"
+msgstr "%1 മായി ലയിപ്പിക്കുക"
+
+#: kdiff3plugin.cpp:126
+#, kde-format
+msgid "Save '%1' for later"
+msgstr "%1 ഭാവിയിലേക്കായി സൂക്ഷിക്കുക"
+
+#: kdiff3plugin.cpp:132
+msgid "3-way merge with base"
+msgstr "അടിസ്ഥാനവുമായി 3-വഴിക്കും ലയിപ്പിക്കുക"
+
+#: kdiff3plugin.cpp:139
+msgid "Compare with ..."
+msgstr "താരതമ്യം ചെയ്യുക ..."
+
+#: kdiff3plugin.cpp:149
+msgid "Clear list"
+msgstr "പട്ടിക കാലിയാക്കുക"
+
+#: kdiff3plugin.cpp:157
+msgid "Compare"
+msgstr "താരതമ്യം ചെയ്യുക"
+
+#: kdiff3plugin.cpp:163
+msgid "3 way comparison"
+msgstr "3 വഴിക്കുള്ള താരതമ്യം"
+
+#: kdiff3plugin.cpp:167
+msgid "About KDiff3 menu plugin ..."
+msgstr "കെഡിഫ്3 വിഭവങ്ങളുടെ സംയോജകത്തെ പറ്റി"
+
+#: kdiff3plugin.cpp:269
+msgid ""
+"KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+"കെഡിഫ്3 വിഭവളുടെ സംയോജകം: പകര്‍പ്പവകാശം (C) 2008 ജോഷിം എലിബ്\n"
+"കെഡിഫ്3 ആസ്ഥാന താള്: http://kdiff3.sourceforge.net\n"
+
+#: kdiff3plugin.cpp:271
+#, fuzzy
+#| msgid ""
+#| "Using the contextmenu extension:\n"
+#| "For simple comparison of two selected files choose \"Compare\".\n"
+#| "If the other file is somewhere else \"Save\" the first file for later. It "
+#| "will appear in the \"Compare With ...\" submenu. Then use \"Compare With"
+#| "\" on second file.\n"
+#| "For a 3-way merge first \"Save\" the base file, then the branch to merge "
+#| "and choose \"3-way merge with base\" on the other branch which will be "
+#| "used as destination.\n"
+#| "Same also applies to directory comparison and merge."
+msgid ""
+"Using the context menu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else, \"Save\" the first file for later, and "
+"it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With"
+"\" on the second file.\n"
+"For a 3-way merge first, \"Save\" the base file, then the branch to merge, "
+"and then \"3-way merge with base\" on the other branch which will be used as "
+"the destination.\n"
+"The same also applies to directory comparison and merge."
+msgstr ""
+"സാന്ദര്‍ഭിക വിഭവങ്ങളുടെ അനുബന്ധം ഉപയോഗിക്കല്‍:\n"
+"തെരഞ്ഞെടുത്ത രണ്ട് ഫയലുകളുടെ ലളിതമായ താരതമ്യ‌ത്തിന് \"Compare\" പ്രയോഗിക്കാം.\n"
+"മറ്റെ ഫയല്‍ വേറെയെവിടെയെങ്കിലുമാണെങ്കില്‍ ആദ്യത്തെ ഫയല്‍ ഭാവിയിലേക്കായി \"Save\" ചെയ്യുക.ഇത് "
+"\"Compare With ...\" ഉപവിഭവങ്ങളില്‍ പ്രത്യ‌ക്ഷപ്പെടും. എന്നിട്ട് രണ്ടാമത്തെ ഫയലിലെ "
+"\"Compare With\"ഉപയോഗിക്കുക.\n"
+"ത്രിമാര്‍ഗ്ഗ ലയനത്തിന് അടിസ്ഥാന ഫയല്‍  \"Save\" ചെയ്യുക, എന്നിട്ട് ലക്ഷ്യ‌മായി "
+"ഉപയോഗിയ്ക്കേണ്ടമറ്റേ ശാഖയില്‍, \"3-way merge with base\" തെരഞ്ഞെടുക്കുക.\n"
+"തട്ടുകളുടെ താരതമ്യത്തിലും ലയനത്തിലും ഇതു തന്നെയാണു് ചെയ്യേണ്ടതു്."
+
+#: kdiff3plugin.cpp:279
+#, fuzzy
+#| msgid "About KDiff3 menu plugin ..."
+msgid "About KDiff3 Menu Plugin"
+msgstr "കെഡിഫ്3 വിഭവങ്ങളുടെ സംയോജകത്തെ പറ്റി"
diff --git a/po/nb/CMakeLists.txt b/po/nb/CMakeLists.txt
new file mode 100644 (file)
index 0000000..90d757e
--- /dev/null
@@ -0,0 +1,2 @@
+file(GLOB _po_files *.po)
+GETTEXT_PROCESS_PO_FILES(nb ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
diff --git a/po/nb/kdiff3.po b/po/nb/kdiff3.po
new file mode 100644 (file)
index 0000000..af52917
--- /dev/null
@@ -0,0 +1,3162 @@
+# Translation of kdiff3 to Norwegian Bokmål
+#
+# Knut Yrvin <knuty@skolelinux.no>, 2003.
+# Bjørn Steensrud <bjornst@skogkatt.homelinux.org>, 2006, 2008, 2009, 2010, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-05-15 15:58+0200\n"
+"Last-Translator: Bjørn Steensrud <bjornst@skogkatt.homelinux.org>\n"
+"Language-Team: Norwegian Bokmål <i18n-nb@lister.ping.uio.no>\n"
+"Language: nb\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.1\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Environment: kde\n"
+"X-Accelerator-Marker: &\n"
+"X-Text-Markup: kde4\n"
+
+#: kreplacements/kreplacements.h:105
+msgid "Continue"
+msgstr "Fortsett"
+
+#: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158
+#: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512
+msgid "Cancel"
+msgstr "Avbryt"
+
+#: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631
+msgid "Quit"
+msgstr "Avslutt"
+
+#: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339
+msgid "Ok"
+msgstr "Ok"
+
+#: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715
+msgid "Help"
+msgstr "Hjelp"
+
+#: kreplacements/kreplacements.cpp:185
+msgid "Defaults"
+msgstr "Standardverdier"
+
+#. i18n: file: kdiff3_shell.rc:4
+#. i18n: ectx: Menu (file)
+#: kreplacements/kreplacements.cpp:296 rc.cpp:14
+msgid "&File"
+msgstr "&Fil"
+
+#: kreplacements/kreplacements.cpp:297
+msgid "&Edit"
+msgstr "&Rediger"
+
+#. i18n: file: kdiff3_shell.rc:7
+#. i18n: ectx: Menu (directory)
+#: kreplacements/kreplacements.cpp:298 rc.cpp:17
+msgid "&Directory"
+msgstr "M&appe"
+
+#. i18n: file: kdiff3_shell.rc:50
+#. i18n: ectx: Menu (movement)
+#: kreplacements/kreplacements.cpp:301 rc.cpp:26
+msgid "&Movement"
+msgstr "F&lytting"
+
+#. i18n: file: kdiff3_shell.rc:61
+#. i18n: ectx: Menu (diff)
+#: kreplacements/kreplacements.cpp:302 rc.cpp:29
+msgid "D&iffview"
+msgstr "D&iffvisning"
+
+#. i18n: file: kdiff3_shell.rc:73
+#. i18n: ectx: Menu (merge)
+#: kreplacements/kreplacements.cpp:303 rc.cpp:32
+msgid "&Merge"
+msgstr "&Flett"
+
+#. i18n: file: kdiff3_shell.rc:95
+#. i18n: ectx: Menu (window)
+#: kreplacements/kreplacements.cpp:304 rc.cpp:35
+msgid "&Window"
+msgstr "&Vindu"
+
+#: kreplacements/kreplacements.cpp:305
+msgid "&Settings"
+msgstr "&Innstillinger"
+
+#: kreplacements/kreplacements.cpp:306
+msgid "&Help"
+msgstr "&Hjelp"
+
+#: kreplacements/kreplacements.cpp:353
+msgid "&About"
+msgstr "&Om"
+
+#: kreplacements/kreplacements.cpp:369
+msgid "A&uthor"
+msgstr "F&orfatter"
+
+#: kreplacements/kreplacements.cpp:383
+msgid "&Thanks To"
+msgstr "&Takk til"
+
+#. i18n: file: kdiff3_shell.rc:30
+#. i18n: ectx: Menu (dir_current_merge_menu)
+#: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497
+#: rc.cpp:20
+msgid "Current Item Merge Operation"
+msgstr "Flettehandling på gjeldende element"
+
+#. i18n: file: kdiff3_shell.rc:38
+#. i18n: ectx: Menu (dir_current_sync_menu)
+#: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498
+#: rc.cpp:23
+msgid "Current Item Sync Operation"
+msgstr "Synk-handling på gjeldende element"
+
+#: kreplacements/kreplacements.cpp:597
+msgid "Open"
+msgstr "Åpne"
+
+#: kreplacements/kreplacements.cpp:606
+msgid "Save"
+msgstr "Lagre"
+
+#: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720
+msgid "Save As..."
+msgstr "Lagre som …"
+
+#: kreplacements/kreplacements.cpp:623
+msgid "Print..."
+msgstr "Skriv ut …"
+
+#: kreplacements/kreplacements.cpp:639
+msgid "Cut"
+msgstr "Klipp ut"
+
+#: kreplacements/kreplacements.cpp:647
+msgid "Copy"
+msgstr "Kopier"
+
+#: kreplacements/kreplacements.cpp:655
+msgid "Paste"
+msgstr "Lim inn"
+
+#: kreplacements/kreplacements.cpp:663
+msgid "Select All"
+msgstr "Velg alt"
+
+#: kreplacements/kreplacements.cpp:671
+msgid "Show Toolbar"
+msgstr "Vis verktøylinje"
+
+#: kreplacements/kreplacements.cpp:679
+msgid "Show &Status Bar"
+msgstr "Vis &statuslinja"
+
+#: kreplacements/kreplacements.cpp:687
+#, kde-format
+msgid "&Configure %1..."
+msgstr "&Sett opp  %1 …"
+
+#: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707
+msgid "About"
+msgstr "Om"
+
+#: kreplacements/kreplacements.cpp:722
+msgid "Find"
+msgstr "Finn"
+
+#: kreplacements/kreplacements.cpp:730
+msgid "Find Next"
+msgstr "Finn neste"
+
+#: kreplacements/kreplacements.cpp:750
+msgid "Select Font"
+msgstr "Velg skrift"
+
+#: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676
+msgid ""
+"You selected a variable width font.\n"
+"\n"
+"Because this program doesn't handle variable width fonts\n"
+"correctly, you might experience problems while editing.\n"
+"\n"
+"Do you want to continue or do you want to select another font."
+msgstr ""
+"Du har valgt en skrift med variabel bredde.\n"
+"\n"
+"Fordi dette programmet ikke håndterer skrifter med\n"
+"variabel bredde riktig, kan du få vansker med redigering.\n"
+"\n"
+"Vil du fortsette, eller vil du velge en annen skrift."
+
+#: kreplacements/kreplacements.cpp:792
+msgid "Incompatible font."
+msgstr "Ikke kompatibel skrift."
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Continue at my own risk"
+msgstr "Fortsett på egen risiko"
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Select another font"
+msgstr "Velg en annen skrift"
+
+#: kreplacements/kreplacements.cpp:1134
+msgid "For more documentation, see the help-menu or the subdirectory doc."
+msgstr "Mer dokumentasjon finnes i Hjelp-menyen eller undermappa doc."
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "KDiff3-Usage"
+msgstr "KDiff3-bruk"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Ignore"
+msgstr "Overse"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Exit"
+msgstr "Avslutt"
+
+#: diff.cpp:251
+msgid "Writing clipboard data to temp file failed."
+msgstr "Klarte ikke å skrive fra utklippstavla til midlertidig fil."
+
+#: diff.cpp:255
+msgid "From Clipboard"
+msgstr "Fra utklippstavla"
+
+#: diff.cpp:471
+msgid "Expecting space after closing quotation mark."
+msgstr "Forventer mellomrom etter avsluttende hermetegn."
+
+#: diff.cpp:474
+msgid "Not matching quotation marks."
+msgstr "Hermetegn stemmer ikke overens."
+
+#: diff.cpp:496
+msgid "Unexpected quotation mark within argument."
+msgstr "Uventet hermetegn inne i argument."
+
+#: diff.cpp:503
+msgid "No program specified."
+msgstr "Ikke noe program oppgitt."
+
+#: diff.cpp:605
+#, kde-format
+msgid ""
+"Preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The preprocessing command will be disabled now."
+msgstr ""
+"Forarbeidet muligens mislykket. Se denne kommandoen:\n"
+"\n"
+"  %1\n"
+"\n"
+"Kommandoen for forarbeide blir nå slått av."
+
+#: diff.cpp:653
+#, kde-format
+msgid ""
+"The line-matching-preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The line-matching-preprocessing command will be disabled now."
+msgstr ""
+"Forarbeidet med å samordne linjer muligens mislykket. Se denne kommandoen:\n"
+"\n"
+"  %1\n"
+"\n"
+"Forarbeide-kommandoen for linjesamordning blir nå slått av."
+
+#: diff.cpp:1776 diff.cpp:1790
+msgid ""
+"Data loss error:\n"
+"If it is reproducible please contact the author.\n"
+msgstr ""
+"Datatap-feil:\n"
+"Hvis det kan gjenskapes, vennligst kontakt forfatteren.\n"
+
+#: diff.cpp:1778 diff.cpp:1792
+msgid "Severe Internal Error"
+msgstr "Alvorlig intern feil"
+
+#: directorymergewindow.cpp:136
+msgid "Mix of links and normal files."
+msgstr "Blanding av lenker og normale filer."
+
+#: directorymergewindow.cpp:143
+msgid "Link: "
+msgstr "Lenke: "
+
+#: directorymergewindow.cpp:151
+msgid "Size. "
+msgstr "Størrelse: "
+
+#: directorymergewindow.cpp:164 directorymergewindow.cpp:174
+msgid "Date & Size: "
+msgstr "Dato og størrelse: "
+
+#: directorymergewindow.cpp:184 directorymergewindow.cpp:190
+#, kde-format
+msgid "Creating temp copy of %1 failed."
+msgstr "Klarte ikke opprette midlertidig kopi av %1."
+
+#: directorymergewindow.cpp:201 directorymergewindow.cpp:209
+#, kde-format
+msgid "Opening %1 failed."
+msgstr "Klarte ikke åpne %1."
+
+#: directorymergewindow.cpp:213
+msgid "Comparing file..."
+msgstr "Sammenlikner fil …"
+
+#: directorymergewindow.cpp:223 directorymergewindow.cpp:229
+#, kde-format
+msgid "Error reading from %1"
+msgstr "Feil ved lesing fra %1"
+
+#: directorymergewindow.cpp:358
+msgid "Name"
+msgstr "Navn"
+
+#: directorymergewindow.cpp:358
+msgid "Operation"
+msgstr "Handling"
+
+#: directorymergewindow.cpp:358
+msgid "Status"
+msgstr "Status"
+
+#: directorymergewindow.cpp:359
+msgid "Unsolved"
+msgstr "Uløst"
+
+#: directorymergewindow.cpp:359
+msgid "Solved"
+msgstr "Løst"
+
+#: directorymergewindow.cpp:359
+msgid "Nonwhite"
+msgstr "Ikkehvitt"
+
+#: directorymergewindow.cpp:359
+msgid "White"
+msgstr "Hvitt"
+
+#: directorymergewindow.cpp:388
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort "
+"the merge and rescan the directory?"
+msgstr ""
+"Nå utfører du en mappefletting. Er du sikker på at du vil avbryte flettingen "
+"og lese gjennom mappa på nytt?"
+
+#: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655
+#: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823
+msgid "Warning"
+msgstr "Advarsel"
+
+#: directorymergewindow.cpp:390 directorymergewindow.cpp:2965
+msgid "Rescan"
+msgstr "Les på nytt"
+
+#: directorymergewindow.cpp:391 pdiff.cpp:1081
+msgid "Continue Merging"
+msgstr "Fortsett fletting"
+
+#: directorymergewindow.cpp:548
+msgid "Opening of directories failed:"
+msgstr "Klarte ikke åpne mapper:"
+
+#: directorymergewindow.cpp:551
+#, kde-format
+msgid "Dir A \"%1\" does not exist or is not a directory.\n"
+msgstr "Mappe A «%1» finnes ikke eller er ikke en mappe.\n"
+
+#: directorymergewindow.cpp:554
+#, kde-format
+msgid "Dir B \"%1\" does not exist or is not a directory.\n"
+msgstr "Mappe B «%1» finnes ikke eller er ikke en mappe.\n"
+
+#: directorymergewindow.cpp:557
+#, kde-format
+msgid "Dir C \"%1\" does not exist or is not a directory.\n"
+msgstr "Mappe C «%1» finnes ikke eller er ikke en mappe.\n"
+
+#: directorymergewindow.cpp:559
+msgid "Directory Open Error"
+msgstr "Feil ved åpning av mappe"
+
+#: directorymergewindow.cpp:567
+msgid ""
+"The destination directory must not be the same as A or B when three "
+"directories are merged.\n"
+"Check again before continuing."
+msgstr ""
+"Målmappa må være en annen enn A eller B når tre mapper flettes.\n"
+"Kontroller igjen før du fortsetter."
+
+#: directorymergewindow.cpp:569
+msgid "Parameter Warning"
+msgstr "Parameter-advarsel"
+
+#: directorymergewindow.cpp:574
+msgid "Scanning directories..."
+msgstr "Leser mapper …"
+
+#: directorymergewindow.cpp:607
+msgid "Reading Directory A"
+msgstr "Leser mappe A"
+
+#: directorymergewindow.cpp:629
+msgid "Reading Directory B"
+msgstr "Leser mappe B"
+
+#: directorymergewindow.cpp:651
+msgid "Reading Directory C"
+msgstr "Leser mappe C"
+
+#: directorymergewindow.cpp:677
+msgid "Some subdirectories were not readable in"
+msgstr "Noen undermapper var ikke lesbare i"
+
+#: directorymergewindow.cpp:682
+msgid "Check the permissions of the subdirectories."
+msgstr "Kontroller rettigheter på undermappene."
+
+#: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737
+#: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233
+#: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328
+msgid "Ready."
+msgstr "Klar."
+
+#: directorymergewindow.cpp:735
+msgid "Directory Comparison Status"
+msgstr "Status for mappesammenlikning"
+
+#: directorymergewindow.cpp:736
+msgid "Number of subdirectories:"
+msgstr "Antall undermapper:"
+
+#: directorymergewindow.cpp:737
+msgid "Number of equal files:"
+msgstr "Antall like filer:"
+
+#: directorymergewindow.cpp:738
+msgid "Number of different files:"
+msgstr "Antall forskjellige filer:"
+
+#: directorymergewindow.cpp:741
+msgid "Number of manual merges:"
+msgstr "Antall manuelle flettinger:"
+
+#: directorymergewindow.cpp:912
+msgid "This affects all merge operations."
+msgstr "Dette påvirker alle flettehandlinger."
+
+#: directorymergewindow.cpp:913
+msgid "Changing All Merge Operations"
+msgstr "Endre alle flette-handlinger"
+
+#: directorymergewindow.cpp:1312
+msgid "Processing "
+msgstr "Arbeider "
+
+#: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742
+msgid "To do."
+msgstr "Gjenstår."
+
+#: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996
+msgid "Copy A to B"
+msgstr "Kopier A til B"
+
+#: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997
+msgid "Copy B to A"
+msgstr "Kopier B til A"
+
+#: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998
+msgid "Delete A"
+msgstr "Slett A"
+
+#: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999
+msgid "Delete B"
+msgstr "Slett B"
+
+#: directorymergewindow.cpp:1814
+msgid "Delete A & B"
+msgstr "Slett A & B"
+
+#: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001
+msgid "Merge to A"
+msgstr "Flett til A"
+
+#: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002
+msgid "Merge to B"
+msgstr "Flett til B"
+
+#: directorymergewindow.cpp:1817
+msgid "Merge to A & B"
+msgstr "Flett til A & B"
+
+#: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993
+msgid "Delete (if exists)"
+msgstr "Slett (hvis det finnes)"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+#: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869
+msgid "Merge"
+msgstr "Flett sammen"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+msgid "Merge (manual)"
+msgstr "Flett (manuelt)"
+
+#: directorymergewindow.cpp:1824
+msgid "Error: Conflicting File Types"
+msgstr "Feil: Konflikt mellom filtyper"
+
+#: directorymergewindow.cpp:1825
+msgid "Error: Changed and Deleted"
+msgstr "Feil: Endret og slettet"
+
+#: directorymergewindow.cpp:1826
+msgid "Error: Dates are equal but files are not."
+msgstr "Feil: Datoene er like, men ikke filene."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906
+msgid "This operation is currently not possible."
+msgstr "Denne handlinga er ikke mulig nå."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174
+msgid "Operation Not Possible"
+msgstr "Handling ikke mulig"
+
+#: directorymergewindow.cpp:1945
+msgid ""
+"This should never happen: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"If you know how to reproduce this, please contact the program author."
+msgstr ""
+"Dette skulle aldri skje: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"Hvis du vet hvordan dette kan gjenskapes, ta kontakt med programforfatteren."
+
+#: directorymergewindow.cpp:1945
+msgid "Program Error"
+msgstr "Programfeil"
+
+#: directorymergewindow.cpp:1956
+msgid "An error occurred while copying.\n"
+msgstr "Det oppsto en feil under kopiering.\n"
+
+#: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025
+#: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105
+#: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123
+#: directorymergewindow.cpp:2374
+msgid "Error"
+msgstr "Feil"
+
+#: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375
+msgid "Merge Error"
+msgstr "Flettefeil"
+
+#: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380
+msgid "Error."
+msgstr "Feil."
+
+#: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272
+#: directorymergewindow.cpp:2312
+msgid "Done."
+msgstr "Ferdig."
+
+#: directorymergewindow.cpp:1990
+msgid "Not saved."
+msgstr "Ikke lagret."
+
+#: directorymergewindow.cpp:2025
+msgid "Unknown merge operation. (This must never happen!)"
+msgstr "Ukjent flettehandling. (Dette må aldri skje!)"
+
+#: directorymergewindow.cpp:2057
+msgid "Unknown merge operation."
+msgstr "Ukjent flettehandling."
+
+#: directorymergewindow.cpp:2072
+msgid ""
+"The merge is about to begin.\n"
+"\n"
+"Choose \"Do it\" if you have read the instructions and know what you are "
+"doing.\n"
+"Choosing \"Simulate it\" will tell you what would happen.\n"
+"\n"
+"Be aware that this program still has beta status and there is NO WARRANTY "
+"whatsoever! Make backups of your vital data!"
+msgstr ""
+"Flettingen skal til å starte.\n"
+"\n"
+"Velg «Gjør det» hvis du har lest instruksjonene og vet hva du gjør.\n"
+"Velg «Simuler det» for å se hva som vil skje.\n"
+"\n"
+"Vær oppmerksom på at dette programmet er i beta-status og det er OVERHODET "
+"INGEN GARANTI! Ta sikkerhetskopi av vitale data!"
+
+#: directorymergewindow.cpp:2077
+msgid "Starting Merge"
+msgstr "Starter fletting"
+
+#: directorymergewindow.cpp:2078
+msgid "Do It"
+msgstr "Gjør det"
+
+#: directorymergewindow.cpp:2079
+msgid "Simulate It"
+msgstr "Simuler det"
+
+#: directorymergewindow.cpp:2105
+msgid ""
+"The highlighted item has a different type in the different directories. "
+"Select what to do."
+msgstr ""
+"Det markerte elementet har forskjellig type i de forskjellige mappene. Velg "
+"hva som skal gjøres."
+
+#: directorymergewindow.cpp:2114
+msgid ""
+"The modification dates of the file are equal but the files are not. Select "
+"what to do."
+msgstr ""
+"Filene er ulike men har samme dato for siste endring. Velg hva som skal "
+"gjøres."
+
+#: directorymergewindow.cpp:2123
+msgid ""
+"The highlighted item was changed in one directory and deleted in the other. "
+"Select what to do."
+msgstr ""
+"Det markerte elementet ble endret i en mappe og slettet i en annen. Velg hva "
+"som skal gjøres."
+
+#: directorymergewindow.cpp:2174
+msgid ""
+"This operation is currently not possible because directory merge is "
+"currently running."
+msgstr "Denne handlinga er ikke mulig nå fordi en mappefletting pågår."
+
+#: directorymergewindow.cpp:2234
+msgid ""
+"There was an error in the last step.\n"
+"Do you want to continue with the item that caused the error or do you want "
+"to skip this item?"
+msgstr ""
+"Det var en feil i siste steg.\n"
+"Vil du fortsette med elementet som ga feil, eller hoppe over det?"
+
+#: directorymergewindow.cpp:2236
+msgid "Continue merge after an error"
+msgstr "Fortsett fletting etter feil"
+
+#: directorymergewindow.cpp:2237
+msgid "Continue With Last Item"
+msgstr "Fortsett med siste element"
+
+#: directorymergewindow.cpp:2238
+msgid "Skip Item"
+msgstr "Hopp over element"
+
+#: directorymergewindow.cpp:2272
+msgid "Skipped."
+msgstr "Hoppet over."
+
+#: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493
+msgid "In progress..."
+msgstr "Pågår …"
+
+#: directorymergewindow.cpp:2327
+msgid "Merge operation complete."
+msgstr "Flettehandling fullført."
+
+#: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330
+msgid "Merge Complete"
+msgstr "Fletting fullført"
+
+#: directorymergewindow.cpp:2340
+msgid ""
+"Simulated merge complete: Check if you agree with the proposed operations."
+msgstr ""
+"Simulert fletting fullført. Se etter om du er enig i de foreslåtte "
+"handlingene."
+
+#: directorymergewindow.cpp:2374
+msgid "An error occurred. Press OK to see detailed information.\n"
+msgstr "Det oppsto en feil. Trykk OK for å se detaljerte opplysninger.\n"
+
+#: directorymergewindow.cpp:2406
+#, kde-format
+msgid "Error: While deleting %1: Creating backup failed."
+msgstr "Feil: Under sletting av %1: oppretting av sikkerhetskopi mislyktes."
+
+#: directorymergewindow.cpp:2413
+#, kde-format
+msgid "delete directory recursively( %1 )"
+msgstr "slett mappe rekursivt( %1 )"
+
+#: directorymergewindow.cpp:2415
+#, kde-format
+msgid "delete( %1 )"
+msgstr "slett ( %1 )"
+
+#: directorymergewindow.cpp:2430
+msgid "Error: delete dir operation failed while trying to read the directory."
+msgstr "Feil: mappesletting mislyktes under forsøk på å lese mappa."
+
+#: directorymergewindow.cpp:2449
+#, kde-format
+msgid "Error: rmdir( %1 ) operation failed."
+msgstr "Feil: rmdir( %1 ) mislyktes."
+
+#: directorymergewindow.cpp:2459
+msgid "Error: delete operation failed."
+msgstr "Feil: sletting mislyktes."
+
+#: directorymergewindow.cpp:2485
+#, kde-format
+msgid "manual merge( %1, %2, %3 -> %4)"
+msgstr "manuell fletting( %1, %2, %3 → %4)"
+
+#: directorymergewindow.cpp:2488
+msgid ""
+"     Note: After a manual merge the user should continue by pressing F7."
+msgstr ""
+"     Merk: Etter en manuell fletting bør brukeren fortsette ved å trykke F7."
+
+#: directorymergewindow.cpp:2513
+#, kde-format
+msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed."
+msgstr ""
+"Feil: kopiering (%1 → %2) mislyktes. Eksisterende mål kunne ikke slettes."
+
+#: directorymergewindow.cpp:2522
+#, kde-format
+msgid "copyLink( %1 -> %2 )"
+msgstr "copyLink( %1 → %2 )"
+
+#: directorymergewindow.cpp:2533
+msgid "Error: copyLink failed: Remote links are not yet supported."
+msgstr "Feil: copyLink mislyktes. Det er ikke støtte for nettverkslenker ennå."
+
+#: directorymergewindow.cpp:2539
+msgid "Error: copyLink failed."
+msgstr "Feil: copyLink mislyktes."
+
+#: directorymergewindow.cpp:2564
+#, kde-format
+msgid "copy( %1 -> %2 )"
+msgstr "kopier(%1 → %2 )"
+
+#: directorymergewindow.cpp:2590
+#, kde-format
+msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination."
+msgstr "Feil under navneendring( %1 → %2 ): Kan ikke slette eksisterende mål."
+
+#: directorymergewindow.cpp:2596
+#, kde-format
+msgid "rename( %1 -> %2 )"
+msgstr "endre navn ( %1 → %2 )"
+
+#: directorymergewindow.cpp:2605
+msgid "Error: Rename failed."
+msgstr "Feil: navneendring mislyktes."
+
+#: directorymergewindow.cpp:2623
+#, kde-format
+msgid "Error during makeDir of %1. Cannot delete existing file."
+msgstr "Feil ved oppretting av mappe %1. Kan ikke slette eksisterende fil."
+
+#: directorymergewindow.cpp:2639
+#, kde-format
+msgid "makeDir( %1 )"
+msgstr "Lag mappe( %1 )"
+
+#: directorymergewindow.cpp:2649
+msgid "Error while creating directory."
+msgstr "Feil under oppretting av mappe."
+
+#: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784
+msgid "Dest"
+msgstr "Mål"
+
+#: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709
+msgid "Dir"
+msgstr "Mappe"
+
+#: directorymergewindow.cpp:2678
+msgid "Type"
+msgstr "Type"
+
+#: directorymergewindow.cpp:2678
+msgid "Size"
+msgstr "Størrelse"
+
+#: directorymergewindow.cpp:2679
+msgid "Attr"
+msgstr "Attr"
+
+#: directorymergewindow.cpp:2679
+msgid "Last Modification"
+msgstr "Siste endring"
+
+#: directorymergewindow.cpp:2679
+msgid "Link-Destination"
+msgstr "Lenkemål"
+
+#: directorymergewindow.cpp:2709 difftextwindow.cpp:401
+msgid "File"
+msgstr "Fil"
+
+#: directorymergewindow.cpp:2726
+msgid "not available"
+msgstr "ikke tilgjengelig"
+
+#: directorymergewindow.cpp:2746
+msgid "A (Dest): "
+msgstr "A (mål): "
+
+#: directorymergewindow.cpp:2749
+msgid "A (Base): "
+msgstr "A (basis): "
+
+#: directorymergewindow.cpp:2755
+msgid "B (Dest): "
+msgstr "B (mål): "
+
+#: directorymergewindow.cpp:2763
+msgid "C (Dest): "
+msgstr "C (mål) :"
+
+#: directorymergewindow.cpp:2769
+msgid "Dest: "
+msgstr "Mål: "
+
+#: directorymergewindow.cpp:2836
+msgid "Save Directory Merge State As..."
+msgstr "Lagre status for mappefletting som …"
+
+#: directorymergewindow.cpp:2959
+msgid "Start/Continue Directory Merge"
+msgstr "Start/fortsett mappefletting"
+
+#: directorymergewindow.cpp:2960
+msgid "Run Operation for Current Item"
+msgstr "Kjør handling for gjeldende element"
+
+#: directorymergewindow.cpp:2961
+msgid "Compare Selected File"
+msgstr "Sammenlikne valgt fil"
+
+#: directorymergewindow.cpp:2962
+msgid "Merge Current File"
+msgstr "Flett gjeldende fil"
+
+#: directorymergewindow.cpp:2962
+msgid ""
+"Merge\n"
+"File"
+msgstr ""
+"Flett\n"
+"Fil"
+
+#: directorymergewindow.cpp:2963
+msgid "Fold All Subdirs"
+msgstr "Brett sammen alle undermapper"
+
+#: directorymergewindow.cpp:2964
+msgid "Unfold All Subdirs"
+msgstr "Fold ut alle undermapper"
+
+#: directorymergewindow.cpp:2968
+msgid "Choose A for All Items"
+msgstr "Velg A for alle elementer"
+
+#: directorymergewindow.cpp:2969
+msgid "Choose B for All Items"
+msgstr "Velg B for alle elementer"
+
+#: directorymergewindow.cpp:2970
+msgid "Choose C for All Items"
+msgstr "Velg C for alle elementer"
+
+#: directorymergewindow.cpp:2971
+msgid "Auto-Choose Operation for All Items"
+msgstr "Auto-velg handling for alle elementer"
+
+#: directorymergewindow.cpp:2972
+msgid "No Operation for All Items"
+msgstr "Ingen handling for alle elementer"
+
+#: directorymergewindow.cpp:2977
+msgid "Show Identical Files"
+msgstr "Vis identiske filer"
+
+#: directorymergewindow.cpp:2977
+msgid ""
+"Identical\n"
+"Files"
+msgstr ""
+"Identiske\n"
+"filer"
+
+#: directorymergewindow.cpp:2978
+msgid "Show Different Files"
+msgstr "Vis forskjellige filer"
+
+#: directorymergewindow.cpp:2979
+msgid "Show Files only in A"
+msgstr "Vis filer bare i A"
+
+#: directorymergewindow.cpp:2979
+msgid ""
+"Files\n"
+"only in A"
+msgstr ""
+"Filer \n"
+"bare i A"
+
+#: directorymergewindow.cpp:2980
+msgid "Show Files only in B"
+msgstr "Vis filer bare i B"
+
+#: directorymergewindow.cpp:2980
+msgid ""
+"Files\n"
+"only in B"
+msgstr ""
+"Filer \n"
+"bare i B"
+
+#: directorymergewindow.cpp:2981
+msgid "Show Files only in C"
+msgstr "Vis filer bare i C"
+
+#: directorymergewindow.cpp:2981
+msgid ""
+"Files\n"
+"only in C"
+msgstr ""
+"Filer \n"
+"bare i C"
+
+#: directorymergewindow.cpp:2985
+msgid "Compare Explicitly Selected Files"
+msgstr "Sammenlikne uttrykkelig valgte filer"
+
+#: directorymergewindow.cpp:2986
+msgid "Merge Explicitly Selected Files"
+msgstr "Flett uttrykkelig valgte filer"
+
+#: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995
+msgid "Do Nothing"
+msgstr "Ikke gjør noe"
+
+#: directorymergewindow.cpp:2989
+msgid "A"
+msgstr "A"
+
+#: directorymergewindow.cpp:2990
+msgid "B"
+msgstr "B"
+
+#: directorymergewindow.cpp:2991
+msgid "C"
+msgstr "C"
+
+#: directorymergewindow.cpp:3000
+msgid "Delete A && B"
+msgstr "Slett A && B"
+
+#: directorymergewindow.cpp:3003
+msgid "Merge to A && B"
+msgstr "Flett til A && B"
+
+#: main.cpp:74 main.cpp:76
+msgid "Ignored. (User defined.)"
+msgstr "Ignorert. (Selvvalgt.)"
+
+#: main.cpp:162
+msgid "kdiff3"
+msgstr "kdiff3"
+
+#: main.cpp:164
+msgid "Tool for Comparison and Merge of Files and Directories"
+msgstr "Verktøy for sammenlikning og fletting av filer og mapper"
+
+#: main.cpp:165
+msgid "(c) 2002-2011 Joachim Eibl"
+msgstr "© 2002–2011 Joachim Eibl"
+
+#: main.cpp:172 kdiff3_part.cpp:303
+msgid "Joachim Eibl"
+msgstr "Joachim Eibl"
+
+#: main.cpp:173
+msgid "Eike Sauer"
+msgstr "Eike Sauer"
+
+#: main.cpp:173
+msgid "Bugfixes, Debian package maintainer"
+msgstr "Feilrettelser. Debian vedlikeholder"
+
+#: main.cpp:174
+msgid "Sebastien Fricker"
+msgstr "Sebastien Fricker"
+
+#: main.cpp:174
+msgid "Windows installer"
+msgstr "Windows-installerer"
+
+#: main.cpp:175
+msgid "Stephan Binner"
+msgstr "Stephan Binner"
+
+#: main.cpp:175
+msgid "i18n-help"
+msgstr "i18n-hjelp"
+
+#: main.cpp:176
+msgid "Stefan Partheymueller"
+msgstr "Stefan Partheymueller"
+
+#: main.cpp:176
+msgid "Clipboard-patch"
+msgstr "Utklippstavle-lapp"
+
+#: main.cpp:177
+msgid "David Faure"
+msgstr "David Faure"
+
+#: main.cpp:177
+msgid "KIO-Help"
+msgstr "KIO-hjelp"
+
+#: main.cpp:178
+msgid "Bernd Gehrmann"
+msgstr "Bernd Gehrmann"
+
+#: main.cpp:178
+msgid "Class CvsIgnoreList from Cervisia"
+msgstr "Class CvsIgnoreList fra Cervisia"
+
+#: main.cpp:179
+msgid "Andre Woebbeking"
+msgstr "Andre Woebbeking"
+
+#: main.cpp:179
+msgid "Class StringMatcher"
+msgstr "Class StringMatcher"
+
+#: main.cpp:180
+msgid "Michael Denio"
+msgstr "Michael Denio"
+
+#: main.cpp:180
+msgid "Directory Equality-Coloring patch"
+msgstr "Lapp for farge på mappelikhet"
+
+#: main.cpp:181
+msgid "Manfred Koehler"
+msgstr "Manfred Koehler"
+
+#: main.cpp:181
+msgid "Fix for slow startup on Windows"
+msgstr "Fiks for langsom oppstart på Windows"
+
+#: main.cpp:182
+msgid "Sergey Zorin"
+msgstr "Sergey Zorin"
+
+#: main.cpp:182
+msgid "Diff Ext for Windows"
+msgstr "Diff-utvidelse for Windows"
+
+#: main.cpp:183
+msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+
+#: main.cpp:183
+msgid "GNU-Diffutils"
+msgstr "GNU-Diffutils"
+
+#: main.cpp:184
+msgid "Tino Boellsterling, Timothy Mee"
+msgstr "Tino Boellsterling, Timothy Mee"
+
+#: main.cpp:184
+msgid "Intensive test, use and feedback"
+msgstr "Intens testing, bruk og tilbakemelding"
+
+#: main.cpp:185
+msgid "Michael Schmidt"
+msgstr "Michael Schmidt"
+
+#: main.cpp:185
+msgid "Mac support"
+msgstr "Mac-støtte"
+
+#: main.cpp:186
+msgid "Valentin Rusu"
+msgstr "Valentin Rusu"
+
+#: main.cpp:186 main.cpp:187
+msgid "KDE4 porting"
+msgstr "KDE 4-porting"
+
+#: main.cpp:187
+msgid "Albert Astals Cid"
+msgstr "Albert Astals Cid"
+
+#: main.cpp:188
+msgid "Silvan Scherrer"
+msgstr "Silvan Scherrer"
+
+#: main.cpp:188
+msgid "OS2 port"
+msgstr "OS2 port"
+
+#: main.cpp:190
+msgid "+ Many thanks to those who reported bugs and contributed ideas!"
+msgstr "+ Mange takk til dem som rapporterte feil og bidro med ideer!"
+
+#: main.cpp:196
+msgid "Merge the input."
+msgstr "Flett inn-data."
+
+#: main.cpp:197
+msgid "Explicit base file. For compatibility with certain tools."
+msgstr "Uttrykkelig angitt basefil. For kompatibilitet med visse verktøy."
+
+#: main.cpp:198
+msgid "Output file. Implies -m. E.g.: -o newfile.txt"
+msgstr "Utdata-fil. Impliserer -m. F.eks: -o nyfil.txt"
+
+#: main.cpp:199
+msgid "Output file, again. (For compatibility with certain tools.)"
+msgstr "Utdata-fil, igjen. (For kompatibilitet med visse verktøy)."
+
+#: main.cpp:200
+msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)"
+msgstr "Ingen GUI hvis alle konflikter kan auto-løses. (Trenger -o fil)"
+
+#: main.cpp:201
+msgid "Don't solve conflicts automatically. (For compatibility...)"
+msgstr "Ikke løs konflikter automatisk. (For kompatibilitet …)"
+
+#: main.cpp:202
+msgid "Visible name replacement for input file 1 (base)."
+msgstr "Synlig navnerstatning for inn-fil 1 (basis)."
+
+#: main.cpp:203
+msgid "Visible name replacement for input file 2."
+msgstr "Synlig navnerstatning for inn-fil 2."
+
+#: main.cpp:204
+msgid "Visible name replacement for input file 3."
+msgstr "Synlig navnerstatning for inn-fil 3."
+
+#: main.cpp:205
+msgid "Alternative visible name replacement. Supply this once for every input."
+msgstr "Alternativ synlig navnerstatning. Angi en gang for hver inngang."
+
+#: main.cpp:206
+msgid ""
+"Override a config setting. Use once for every setting. E.g.: --cs "
+"\"AutoAdvance=1\""
+msgstr ""
+"Overstyr en innstilling. Bruk en gang for hver innstilling. F.eks.: --cs "
+"\"AutoAdvance=1\""
+
+#: main.cpp:207
+msgid "Show list of config settings and current values."
+msgstr "Vis liste over oppsettsinnstillinger og gjeldende verdier."
+
+#: main.cpp:208
+msgid "Use a different config file."
+msgstr "Bruk en annen oppsettsfil."
+
+#: main.cpp:211
+msgid "file1 to open (base, if not specified via --base)"
+msgstr "fil 1 som skal åpnes (basis, hvis ikke oppgitt via --base)"
+
+#: main.cpp:212
+msgid "file2 to open"
+msgstr "fil 2 som skal åpnes"
+
+#: main.cpp:213
+msgid "file3 to open"
+msgstr "fil 3 som skal åpnes"
+
+#: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976
+#: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002
+#: mergeresultwindow.cpp:1014
+#, kde-format
+msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)"
+msgstr "Antall uløste konflikter som gjenstår: %1 ( herav %2 tomrom )"
+
+#: mergeresultwindow.cpp:303
+msgid ""
+"The output has been modified.\n"
+"If you continue your changes will be lost."
+msgstr ""
+"Utdata er blitt endret.\n"
+"Hvis du fortsetter mister du endringene dine."
+
+#: mergeresultwindow.cpp:834 pdiff.cpp:532
+msgid "All input files are binary equal."
+msgstr "Alle inn-filer er binært like."
+
+#: mergeresultwindow.cpp:836
+msgid "All input files contain the same text."
+msgstr "Alle inn-filer inneholder samme tekst."
+
+#: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840
+#: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540
+#, kde-format
+msgid "Files %1 and %2 are binary equal.\n"
+msgstr "Filene %1 og %2 er binært like.\n"
+
+#: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841
+#: mergeresultwindow.cpp:843
+#, kde-format
+msgid "Files %1 and %2 have equal text.\n"
+msgstr "Filer %1 og %2 har lik tekst. \n"
+
+#: mergeresultwindow.cpp:849
+msgid "Total number of conflicts: "
+msgstr "Totalt antall konflikter: "
+
+#: mergeresultwindow.cpp:850
+msgid ""
+"\n"
+"Nr of automatically solved conflicts: "
+msgstr ""
+"\n"
+"Antall automatisk løste konflikter: "
+
+#: mergeresultwindow.cpp:851
+msgid ""
+"\n"
+"Nr of unsolved conflicts: "
+msgstr ""
+"\n"
+"Antall uløste konflikter :"
+
+#: mergeresultwindow.cpp:853
+msgid "Conflicts"
+msgstr "Konflikter"
+
+#: mergeresultwindow.cpp:1728
+msgid "<No src line>"
+msgstr "<Ingen kildelinje>"
+
+#: mergeresultwindow.cpp:1736
+msgid "<Merge Conflict (Whitespace only)>"
+msgstr "<Flettekonflikt (bare tomrom)>"
+
+#: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517
+msgid "<Merge Conflict>"
+msgstr "<Flettekonflikt>"
+
+#: mergeresultwindow.cpp:2725
+msgid ""
+"Not all conflicts are solved yet.\n"
+"File not saved.\n"
+msgstr ""
+"Ikke alle konflikter er løst ennå.\n"
+"Fila er ikke lagret.\n"
+
+#: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736
+msgid "Conflicts Left"
+msgstr "Gjenstående konflikter"
+
+#: mergeresultwindow.cpp:2734
+msgid ""
+"There is a line end style conflict. Please choose the line end style "
+"manually.\n"
+"File not saved.\n"
+msgstr ""
+"Det er en konflikt mellom stilene for linjeslutt. Velg manuelt stil for "
+"linjeslutt.\n"
+"Fila er ikke lagret.\n"
+
+#: mergeresultwindow.cpp:2748
+msgid ""
+"\n"
+"\n"
+"Creating backup failed. File not saved."
+msgstr ""
+"\n"
+"\n"
+"Det lyktes ikke å lage sikkerhetskopi. Fila er ikke lagret."
+
+#: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792
+msgid "File Save Error"
+msgstr "Feil ved fillagring"
+
+#: mergeresultwindow.cpp:2792
+msgid "Error while writing."
+msgstr "Feil ved skriving."
+
+#: mergeresultwindow.cpp:3122
+msgid "Output"
+msgstr "Utdata"
+
+#: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314
+msgid "[Modified]"
+msgstr "[Endret]"
+
+#: mergeresultwindow.cpp:3141
+msgid "Encoding for saving"
+msgstr "Koding for lagring"
+
+#: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737
+#: optiondialog.cpp:762
+msgid "Line end style:"
+msgstr "Linjeavslutning:"
+
+#: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767
+msgid "Unix"
+msgstr "Unix"
+
+#: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737
+msgid "DOS"
+msgstr "DOS"
+
+#: mergeresultwindow.cpp:3229
+msgid "Conflict"
+msgstr "Konflikt"
+
+#: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263
+#: mergeresultwindow.cpp:3265
+msgid "Codec from"
+msgstr "Kodek fra"
+
+#: kdiff3_part.cpp:157 kdiff3_part.cpp:234
+msgid "Couldn't find files for comparison."
+msgstr "Klarte ikke finne filer for sammenlikning."
+
+#: kdiff3_part.cpp:302
+msgid "KDiff3Part"
+msgstr "KDiff3Part"
+
+#: fileaccess.cpp:612
+msgid ""
+"While trying to make a backup, deleting an older backup failed. \n"
+"Filename: "
+msgstr ""
+"Under forsøk på å lage sikkerhetskopi lyktes det ikke å slette \n"
+"en tidligere kopi. Filnavn: "
+
+#: fileaccess.cpp:619
+msgid ""
+"While trying to make a backup, renaming failed. \n"
+"Filenames: "
+msgstr ""
+"Under forsøk på å lage sikkerhetskopi lyktes det ikke å endre navn.\n"
+"Filnavn: "
+
+#: fileaccess.cpp:643
+#, kde-format
+msgid "Getting file status: %1"
+msgstr "Henter filstatus: %1"
+
+#: fileaccess.cpp:686
+#, kde-format
+msgid "Reading file: %1"
+msgstr "Leser fil: %1"
+
+#: fileaccess.cpp:723
+#, kde-format
+msgid "Writing file: %1"
+msgstr "Skriver fil: %1"
+
+#: fileaccess.cpp:751
+msgid "Out of memory"
+msgstr "Slapp opp for minne"
+
+#: fileaccess.cpp:786
+#, kde-format
+msgid "Making directory: %1"
+msgstr "Lager mappe: %1"
+
+#: fileaccess.cpp:806
+#, kde-format
+msgid "Removing directory: %1"
+msgstr "Fjerner mappe: %1"
+
+#: fileaccess.cpp:821
+#, kde-format
+msgid "Removing file: %1"
+msgstr "Fjerner fil: %1"
+
+#: fileaccess.cpp:837
+#, kde-format
+msgid "Creating symbolic link: %1 -> %2"
+msgstr "Oppretter symbolsk lenke: %1 → %2"
+
+#: fileaccess.cpp:864
+#, kde-format
+msgid "Renaming file: %1 -> %2"
+msgstr "Endrer navn på fil: %1 → %2"
+
+#: fileaccess.cpp:897
+#, kde-format
+msgid "Copying file: %1 -> %2"
+msgstr "Kopierer fil: %1 → %2"
+
+#: fileaccess.cpp:911
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for reading failed. Filename: "
+"%1"
+msgstr "Feil under filkopiering: Klarte ikke åpne fil for lesing. Filnavn: %1"
+
+#: fileaccess.cpp:917
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for writing failed. Filename: "
+"%1"
+msgstr ""
+"Feil under filkopiering: Klarte ikke åpne fil for skriving. Filnavn: %1"
+
+#: fileaccess.cpp:932
+#, kde-format
+msgid "Error during file copy operation: Reading failed. Filename: %1"
+msgstr "Feil under filkopiering: Lesing mislyktes. Filnavn: %1"
+
+#: fileaccess.cpp:941
+#, kde-format
+msgid "Error during file copy operation: Writing failed. Filename: %1"
+msgstr "Feil under filkopiering: Skriving mislyktes. Filnavn: %1"
+
+#: fileaccess.cpp:1231
+msgid "Reading directory: "
+msgstr "Leser mappe: "
+
+#: fileaccess.cpp:1355
+#, kde-format
+msgid "Listing directory: %1"
+msgstr "Lister mappe: %1"
+
+#: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396
+msgid "&Cancel"
+msgstr "&Avbryt"
+
+#: difftextwindow.cpp:403
+msgid "Line"
+msgstr "Linje"
+
+#: difftextwindow.cpp:405
+msgid "Line not available"
+msgstr "Linje ikke tilgjengelig"
+
+#: difftextwindow.cpp:1703 difftextwindow.cpp:1736
+msgid "Encoding:"
+msgstr "Tegnkoding:"
+
+#: difftextwindow.cpp:1759 kdiff3.cpp:831
+msgid "Top line"
+msgstr "Øverste linje"
+
+#: difftextwindow.cpp:1769
+msgid "End"
+msgstr "Slutt"
+
+#: kdiff3.cpp:169
+msgid "Current Configuration:"
+msgstr "Gjeldende oppsett:"
+
+#: kdiff3.cpp:174
+msgid "Config Option Error:"
+msgstr "Feil i oppsett:"
+
+#: kdiff3.cpp:219
+msgid "Option --auto used, but no output file specified."
+msgstr "--auto brukt, men ingen utdatafil er oppgitt."
+
+#: kdiff3.cpp:369
+msgid "Option --auto ignored for directory comparison."
+msgstr "--auto ignorert for mappesammelikning."
+
+#: kdiff3.cpp:405
+msgid "Saving failed."
+msgstr "Lagring mislyktes."
+
+#: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214
+msgid "Opening of these files failed:"
+msgstr "Klarte ikke åpne disse filene:"
+
+#: kdiff3.cpp:449
+msgid "File Open Error"
+msgstr "Feil ved åpning av fil"
+
+#: kdiff3.cpp:477
+msgid "Opens documents for comparison..."
+msgstr "Åpner dokumentere for sammenlikning …"
+
+#: kdiff3.cpp:479
+msgid "Reload"
+msgstr "Last på nytt"
+
+#: kdiff3.cpp:482
+msgid "Saves the merge result. All conflicts must be solved!"
+msgstr "Lagrer fletteresultatet. Alle konflikter må løses!"
+
+#: kdiff3.cpp:484
+msgid "Saves the current document as..."
+msgstr "Lagrer gjeldende dokument som …"
+
+#: kdiff3.cpp:487
+msgid "Print the differences"
+msgstr "Skriv ut forskjellene"
+
+#: kdiff3.cpp:490
+msgid "Quits the application"
+msgstr "Avslutter programmet"
+
+#: kdiff3.cpp:492
+msgid "Cuts the selected section and puts it to the clipboard"
+msgstr "Klipper ut det markerte og legger det på utklippstavla"
+
+#: kdiff3.cpp:494
+msgid "Copies the selected section to the clipboard"
+msgstr "Kopierer det markerte til utklippstavla"
+
+#: kdiff3.cpp:496
+msgid "Pastes the clipboard contents to current position"
+msgstr "Limer inn innhold fra utklippstavla til gjeldende posisjon"
+
+#: kdiff3.cpp:498
+msgid "Select everything in current window"
+msgstr "Velg alt i gjeldende vindu"
+
+#: kdiff3.cpp:500
+msgid "Search for a string"
+msgstr "Søk etter en streng"
+
+#: kdiff3.cpp:502
+msgid "Search again for the string"
+msgstr "Søk igjen etter strengen"
+
+#: kdiff3.cpp:507
+msgid "Enables/disables the statusbar"
+msgstr "Slår statuslinja av/på"
+
+#: kdiff3.cpp:511
+msgid "Configure KDiff3..."
+msgstr "Sett opp KDiff3 …"
+
+#: kdiff3.cpp:532
+msgid "Go to Current Delta"
+msgstr "Gå til gjeldende Delta"
+
+#: kdiff3.cpp:532
+msgid ""
+"Current\n"
+"Delta"
+msgstr ""
+"Gjeldende\n"
+"Delta"
+
+#: kdiff3.cpp:534
+msgid "Go to First Delta"
+msgstr "Gå til første Delta"
+
+#: kdiff3.cpp:534
+msgid ""
+"First\n"
+"Delta"
+msgstr ""
+"Første\n"
+"Delta"
+
+#: kdiff3.cpp:536
+msgid "Go to Last Delta"
+msgstr "Gå til siste Delta"
+
+#: kdiff3.cpp:536
+msgid ""
+"Last\n"
+"Delta"
+msgstr ""
+"Siste\n"
+"Delta"
+
+#: kdiff3.cpp:538
+msgid "(Skips white space differences when \"Show White Space\" is disabled.)"
+msgstr "(Hopper over forskjeller i tomrom når «Vis tomrom» er slått av.)"
+
+#: kdiff3.cpp:539
+msgid ""
+"(Does not skip white space differences even when \"Show White Space\" is "
+"disabled.)"
+msgstr ""
+"(Hopper ikkeover forskjeller i tomrom selv når «Vis tomrom» er slått av.)"
+
+#: kdiff3.cpp:540
+msgid "Go to Previous Delta"
+msgstr "Gå til forrige Delta"
+
+#: kdiff3.cpp:540
+msgid ""
+"Prev\n"
+"Delta"
+msgstr ""
+"Forrige\n"
+"Delta"
+
+#: kdiff3.cpp:542
+msgid "Go to Next Delta"
+msgstr "Gå til neste Delta"
+
+#: kdiff3.cpp:542
+msgid ""
+"Next\n"
+"Delta"
+msgstr ""
+"Neste\n"
+"Delta"
+
+#: kdiff3.cpp:544
+msgid "Go to Previous Conflict"
+msgstr "Gå til forrige konflikt"
+
+#: kdiff3.cpp:544
+msgid ""
+"Prev\n"
+"Conflict"
+msgstr ""
+"Forrige\n"
+"lonflikt"
+
+#: kdiff3.cpp:546
+msgid "Go to Next Conflict"
+msgstr "Gå til neste konflikt"
+
+#: kdiff3.cpp:546
+msgid ""
+"Next\n"
+"Conflict"
+msgstr ""
+"Neste\n"
+"konflikt"
+
+#: kdiff3.cpp:548
+msgid "Go to Previous Unsolved Conflict"
+msgstr "Gå til forrige uløste konflikt"
+
+#: kdiff3.cpp:548
+msgid ""
+"Prev\n"
+"Unsolved"
+msgstr ""
+"Forrige\n"
+"uløste"
+
+#: kdiff3.cpp:550
+msgid "Go to Next Unsolved Conflict"
+msgstr "Gå til neste uløste konflikt"
+
+#: kdiff3.cpp:550
+msgid ""
+"Next\n"
+"Unsolved"
+msgstr ""
+"Neste\n"
+"uløste"
+
+#: kdiff3.cpp:552
+msgid "Select Line(s) From A"
+msgstr "Velg linje(r) fra A"
+
+#: kdiff3.cpp:552
+msgid ""
+"Choose\n"
+"A"
+msgstr ""
+"Velg\n"
+"A"
+
+#: kdiff3.cpp:553
+msgid "Select Line(s) From B"
+msgstr "Velg linje(r) fra B"
+
+#: kdiff3.cpp:553
+msgid ""
+"Choose\n"
+"B"
+msgstr ""
+"Velg\n"
+"B"
+
+#: kdiff3.cpp:554
+msgid "Select Line(s) From C"
+msgstr "Velg linje(r) fra C"
+
+#: kdiff3.cpp:554
+msgid ""
+"Choose\n"
+"C"
+msgstr ""
+"Velg\n"
+"C"
+
+#: kdiff3.cpp:555
+msgid "Automatically Go to Next Unsolved Conflict After Source Selection"
+msgstr "Gå automatisk til neste uløste konflikt etter at kildene er valgt"
+
+#: kdiff3.cpp:555
+msgid ""
+"Auto\n"
+"Next"
+msgstr ""
+"Auto\n"
+"neste"
+
+#: kdiff3.cpp:557
+msgid "Show Space && Tabulator Characters for Differences"
+msgstr "Vis mellomrom og tabulatortegn for forskjeller"
+
+#: kdiff3.cpp:557
+msgid ""
+"White\n"
+"Characters"
+msgstr ""
+"Tomroms\n"
+"tegn"
+
+#: kdiff3.cpp:558
+msgid "Show White Space"
+msgstr "Vis tomrom"
+
+#: kdiff3.cpp:558
+msgid ""
+"White\n"
+"Deltas"
+msgstr ""
+"Tomroms\n"
+"deltaer"
+
+#: kdiff3.cpp:560
+msgid "Show Line Numbers"
+msgstr "Vis linjenumre"
+
+#: kdiff3.cpp:560
+msgid ""
+"Line\n"
+"Numbers"
+msgstr ""
+"Linje\n"
+"numre"
+
+#: kdiff3.cpp:561
+msgid "Choose A Everywhere"
+msgstr "Velg A overalt"
+
+#: kdiff3.cpp:562
+msgid "Choose B Everywhere"
+msgstr "Velg B overalt"
+
+#: kdiff3.cpp:563
+msgid "Choose C Everywhere"
+msgstr "Velg C overalt"
+
+#: kdiff3.cpp:564
+msgid "Choose A for All Unsolved Conflicts"
+msgstr "Velg A for alle uløste konflikter"
+
+#: kdiff3.cpp:565
+msgid "Choose B for All Unsolved Conflicts"
+msgstr "Velg B for alle uløste konflikter"
+
+#: kdiff3.cpp:566
+msgid "Choose C for All Unsolved Conflicts"
+msgstr "Velg C for alle uløste konflikter"
+
+#: kdiff3.cpp:567
+msgid "Choose A for All Unsolved Whitespace Conflicts"
+msgstr "Velg A for alle uløste tomromkonflikter"
+
+#: kdiff3.cpp:568
+msgid "Choose B for All Unsolved Whitespace Conflicts"
+msgstr "Velg B for alle uløste tomromkonflikter"
+
+#: kdiff3.cpp:569
+msgid "Choose C for All Unsolved Whitespace Conflicts"
+msgstr "Velg C for alle uløste tomromkonflikter"
+
+#: kdiff3.cpp:570
+msgid "Automatically Solve Simple Conflicts"
+msgstr "Løs enkle konflikter automatisk"
+
+#: kdiff3.cpp:571
+msgid "Set Deltas to Conflicts"
+msgstr "Sett deltaer til konflikter"
+
+#: kdiff3.cpp:572
+msgid "Run Regular Expression Auto Merge"
+msgstr "Kjør autofletting med regulære uttrykk"
+
+#: kdiff3.cpp:573
+msgid "Automatically Solve History Conflicts"
+msgstr "Løs opp historiekonflikter automatisk"
+
+#: kdiff3.cpp:574
+msgid "Split Diff At Selection"
+msgstr "Splitt differansen ved utvalget"
+
+#: kdiff3.cpp:575
+msgid "Join Selected Diffs"
+msgstr "Slå sammen valgte differ"
+
+#: kdiff3.cpp:577
+msgid "Show Window A"
+msgstr "Vis vindu A"
+
+#: kdiff3.cpp:578
+msgid "Show Window B"
+msgstr "Vis vindu B"
+
+#: kdiff3.cpp:579
+msgid "Show Window C"
+msgstr "Vis vindu C"
+
+#: kdiff3.cpp:580 kdiff3.cpp:591
+msgid "Focus Next Window"
+msgstr "Fokus på neste vindu"
+
+#: kdiff3.cpp:582
+msgid "Normal Overview"
+msgstr "Normal oversikt"
+
+#: kdiff3.cpp:583
+msgid "A vs. B Overview"
+msgstr "Oversikt A mot B"
+
+#: kdiff3.cpp:584
+msgid "A vs. C Overview"
+msgstr "Oversikt A mot C"
+
+#: kdiff3.cpp:585
+msgid "B vs. C Overview"
+msgstr "Oversikt B mot C"
+
+#: kdiff3.cpp:586
+msgid "Word Wrap Diff Windows"
+msgstr "Ordbryt i diff-vinduer"
+
+#: kdiff3.cpp:587
+msgid "Add Manual Diff Alignment"
+msgstr "Legg til manuell diff-innretting"
+
+#: kdiff3.cpp:588
+msgid "Clear All Manual Diff Alignments"
+msgstr "Tilbakestill all manuell diff-innretting"
+
+#: kdiff3.cpp:593
+msgid "Focus Prev Window"
+msgstr "Fokus på forrige vindu"
+
+#: kdiff3.cpp:594
+msgid "Toggle Split Orientation"
+msgstr "Bytt om splitt-orientering"
+
+#: kdiff3.cpp:596
+msgid "Dir && Text Split Screen View"
+msgstr "Mappe og tekst delt visning"
+
+#: kdiff3.cpp:598
+msgid "Toggle Between Dir && Text View"
+msgstr "Bytt mellom mappe- og tekstvisning"
+
+#: kdiff3.cpp:654 pdiff.cpp:1812
+msgid "The merge result hasn't been saved."
+msgstr "Fletteresultatet er ikke lagret."
+
+#: kdiff3.cpp:656
+msgid "Save && Quit"
+msgstr "Lagre og avslutt"
+
+#: kdiff3.cpp:657
+msgid "Quit Without Saving"
+msgstr "Avslutt uten lagring"
+
+#: kdiff3.cpp:665 pdiff.cpp:1823
+msgid "Saving the merge result failed."
+msgstr "Fletteresultatet kunne ikke lagres."
+
+#: kdiff3.cpp:676 pdiff.cpp:1078
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort?"
+msgstr "Du holder på med en mappefletting. Er du sikker på at du vil avbryte?"
+
+#: kdiff3.cpp:701
+msgid "Saving file..."
+msgstr "Lagrer fil …"
+
+#: kdiff3.cpp:718
+msgid "Saving file with a new filename..."
+msgstr "Lagrer fil med nytt filnavn …"
+
+#: kdiff3.cpp:781
+msgid "Printing not implemented."
+msgstr "Utskrift er ikke implementert."
+
+#: kdiff3.cpp:815
+msgid "Printing..."
+msgstr "Skriver ut …"
+
+#: kdiff3.cpp:956
+msgid "Selection"
+msgstr "Utvalg"
+
+#: kdiff3.cpp:982
+msgid "Printing completed."
+msgstr "Utskrift fullført."
+
+#: kdiff3.cpp:986
+msgid "Printing aborted."
+msgstr "Utskrift avbrutt."
+
+#: kdiff3.cpp:993
+msgid "Exiting..."
+msgstr "Avslutter …"
+
+#: kdiff3.cpp:1006
+msgid "Toggling toolbar..."
+msgstr "Slår verktøylinje av/på …"
+
+#: kdiff3.cpp:1027
+msgid "Toggle the statusbar..."
+msgstr "Slå statuslinje av/på …"
+
+#: smalldialogs.cpp:58
+msgid "A (Base):"
+msgstr "A (Basis):"
+
+#: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99
+#: smalldialogs.cpp:142
+msgid "File..."
+msgstr "Fil …"
+
+#: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101
+#: smalldialogs.cpp:144
+msgid "Dir..."
+msgstr "Mappe …"
+
+#: smalldialogs.cpp:93
+msgid "C (Optional):"
+msgstr "C (valgfri):"
+
+#: smalldialogs.cpp:116
+msgid "Swap/Copy Names ..."
+msgstr "Bytt/kopier navn …"
+
+#: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123
+#, kde-format
+msgid "Swap %1<->%2"
+msgstr "Bytt om %1<->%2"
+
+#: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126
+#, kde-format
+msgid "Copy %1->Output"
+msgstr "Kopier %1->Utdata"
+
+#: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129
+#, kde-format
+msgid "Swap %1<->Output"
+msgstr "Bytt om  %1<->utdata"
+
+#: smalldialogs.cpp:136
+msgid "Output (optional):"
+msgstr "Utdata (valgfri):"
+
+#: smalldialogs.cpp:168
+msgid "Configure..."
+msgstr "Sett opp …"
+
+#: smalldialogs.cpp:174
+msgid "&OK"
+msgstr "&OK"
+
+#: smalldialogs.cpp:362
+msgid "Search text:"
+msgstr "Søketekst:"
+
+#: smalldialogs.cpp:369
+msgid "Case sensitive"
+msgstr "Skill mellom store og små bokstaver"
+
+#: smalldialogs.cpp:372
+msgid "Search A"
+msgstr "Søk i A"
+
+#: smalldialogs.cpp:377
+msgid "Search B"
+msgstr "Søk i B"
+
+#: smalldialogs.cpp:382
+msgid "Search C"
+msgstr "Søk i C"
+
+#: smalldialogs.cpp:387
+msgid "Search output"
+msgstr "Utdata fra søk"
+
+#: smalldialogs.cpp:392
+msgid "&Search"
+msgstr "&Søk"
+
+#: smalldialogs.cpp:409
+msgid "Regular Expression Tester"
+msgstr "Prøv ut regulært uttrykk"
+
+#: smalldialogs.cpp:414 optiondialog.cpp:936
+msgid "Auto merge regular expression:"
+msgstr "Regulært uttrykk for automatisk fletting:"
+
+#: smalldialogs.cpp:422
+msgid "Example auto merge line:"
+msgstr "Eksempel på autoflette-linje:"
+
+#: smalldialogs.cpp:424
+msgid "To test auto merge, copy a line as used in your files."
+msgstr ""
+"Kopier hit en linje slik som brukt i filene dine, for å teste autofletting."
+
+#: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494
+msgid "Match result:"
+msgstr "Resultat av søk:"
+
+#: smalldialogs.cpp:441 optiondialog.cpp:962
+msgid "History start regular expression:"
+msgstr "Regulært uttrykk for start på historien:"
+
+#: smalldialogs.cpp:449
+msgid "Example history start line (with leading comment):"
+msgstr "Eksempel på startlinje for historie (med innledende kommentar):"
+
+#: smalldialogs.cpp:451
+msgid ""
+"Copy a history start line as used in your files,\n"
+"including the leading comment."
+msgstr ""
+"Kopier en historie-startlinje fra en av filene dine,\n"
+"ta med den innledende kommentaren."
+
+#: smalldialogs.cpp:469 optiondialog.cpp:972
+msgid "History entry start regular expression:"
+msgstr "Regulært uttrykk for start på historieoppføring:"
+
+#: smalldialogs.cpp:477
+msgid "History sort key order:"
+msgstr "Sorteringsrekkefølge for historienøkler:"
+
+#: smalldialogs.cpp:485
+msgid "Example history entry start line (without leading comment):"
+msgstr ""
+"Eksempel på startlinje for historieoppføring (uten innledende kommentar):"
+
+#: smalldialogs.cpp:487
+msgid ""
+"Copy a history entry start line as used in your files,\n"
+"but omit the leading comment."
+msgstr ""
+"Kopier en startlinje for historieoppføring fra en av filene dine,\n"
+"men ta bort den innledende kommentaren."
+
+#: smalldialogs.cpp:501
+msgid "Sort key result:"
+msgstr "Resulterende sorteringsnøkler:"
+
+#: smalldialogs.cpp:508
+msgid "OK"
+msgstr "OK"
+
+#: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583
+msgid "Match success."
+msgstr "Tilslag."
+
+#: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589
+msgid "Match failed."
+msgstr "Ikke tilslag."
+
+#: smalldialogs.cpp:574
+msgid "Opening and closing parentheses do not match in regular expression."
+msgstr "Begynn- og sluttparenteser stemmer ikke overens i regulært uttrykk."
+
+#: optiondialog.cpp:367
+msgid "Unicode, 8 bit"
+msgstr "Unicode, 8 bit"
+
+#: optiondialog.cpp:368
+msgid "Unicode"
+msgstr "Unicode"
+
+#: optiondialog.cpp:369
+msgid "Latin1"
+msgstr "Latin1"
+
+#: optiondialog.cpp:388
+msgid "Change this if non-ASCII characters are not displayed correctly."
+msgstr "Endre dette hvis tegn som ikke er i ASCII ikke blir vist riktig."
+
+#: optiondialog.cpp:465
+msgid "Configure"
+msgstr "Sett opp"
+
+#: optiondialog.cpp:531
+msgid "Font"
+msgstr "Skrift"
+
+#: optiondialog.cpp:532
+msgid "Editor & Diff Output Font"
+msgstr "Skrift for redigering og utdata"
+
+#: optiondialog.cpp:556
+msgid "Italic font for deltas"
+msgstr "Kursivskrift for deltaer"
+
+#: optiondialog.cpp:559
+msgid ""
+"Selects the italic version of the font for differences.\n"
+"If the font doesn't support italic characters, then this does nothing."
+msgstr ""
+"Velger kursivversjon av skrifta for forskjeller.\n"
+"Hvis skrifta ikke finnes i kursiv, så gjør dette ingenting."
+
+#: optiondialog.cpp:568
+msgid "Color"
+msgstr "Farge"
+
+#: optiondialog.cpp:569
+msgid "Colors Settings"
+msgstr "Fargeinnstillinger"
+
+#: optiondialog.cpp:588
+msgid "Editor and Diff Views:"
+msgstr "Redigering og forskjellsvisning:"
+
+#: optiondialog.cpp:596
+msgid "Foreground color:"
+msgstr "Forgrunnsfarge:"
+
+#: optiondialog.cpp:603
+msgid "Background color:"
+msgstr "Bakgrunnsfarge:"
+
+#: optiondialog.cpp:612
+msgid "Diff background color:"
+msgstr "Bakgrunnsfarge for forskjell:"
+
+#: optiondialog.cpp:620
+msgid "Color A:"
+msgstr "Farge A:"
+
+#: optiondialog.cpp:628
+msgid "Color B:"
+msgstr "Farge B:"
+
+#: optiondialog.cpp:636
+msgid "Color C:"
+msgstr "Farge C:"
+
+#: optiondialog.cpp:643
+msgid "Conflict color:"
+msgstr "Konfliktfarge:"
+
+#: optiondialog.cpp:651
+msgid "Current range background color:"
+msgstr "Bakgrunnsfarge for gjeldende område:"
+
+#: optiondialog.cpp:659
+msgid "Current range diff background color:"
+msgstr "Bakgrunnsfarge for gjeldende forskjellsområde:"
+
+#: optiondialog.cpp:666
+msgid "Color for manually aligned difference ranges:"
+msgstr "Farge for manuelt innrettede forskjellsområder:"
+
+#: optiondialog.cpp:672
+msgid "Directory Comparison View:"
+msgstr "Mappesammenlikning:"
+
+#: optiondialog.cpp:678
+msgid "Newest file color:"
+msgstr "Farge for nyeste fil:"
+
+#: optiondialog.cpp:682
+msgid ""
+"Changing this color will only be effective when starting the next directory "
+"comparison."
+msgstr ""
+"Endring av denne fargen får bare virkning når neste mappe-sammenlikning "
+"utføres."
+
+#: optiondialog.cpp:687
+msgid "Oldest file color:"
+msgstr "Farge for eldste fil:"
+
+#: optiondialog.cpp:695
+msgid "Middle age file color:"
+msgstr "Farge for filer med midlere alder:"
+
+#: optiondialog.cpp:703
+msgid "Color for missing files:"
+msgstr "Farge for manglende filer:"
+
+#: optiondialog.cpp:717
+msgid "Editor"
+msgstr "Redigerer"
+
+#: optiondialog.cpp:718
+msgid "Editor Behavior"
+msgstr "Redigeringsoppsett"
+
+#: optiondialog.cpp:732
+msgid "Tab inserts spaces"
+msgstr "TAB setter inn mellomrom"
+
+#: optiondialog.cpp:735
+msgid ""
+"On: Pressing tab generates the appropriate number of spaces.\n"
+"Off: A tab character will be inserted."
+msgstr ""
+"På: tab-tasten setter inn passende antall mellomrom.\n"
+"Av: Et tab-tegn settes inn."
+
+#: optiondialog.cpp:741
+msgid "Tab size:"
+msgstr "TAB-størrelse:"
+
+#: optiondialog.cpp:747
+msgid "Auto indentation"
+msgstr "Automatisk innrykk"
+
+#: optiondialog.cpp:750
+msgid "On: The indentation of the previous line is used for a new line.\n"
+msgstr "På: Innrykket for forrige linje brukes for en ny linje.\n"
+
+#: optiondialog.cpp:754
+msgid "Auto copy selection"
+msgstr "Autokopier utvalg"
+
+#: optiondialog.cpp:757
+msgid ""
+"On: Any selection is immediately written to the clipboard.\n"
+"Off: You must explicitely copy e.g. via Ctrl-C."
+msgstr ""
+"På: Alt som markeres skrives straks til utklippstavla.\n"
+"Av: Du må uttrykkelig kopiere, f.eks. med Ctrl-C."
+
+#: optiondialog.cpp:768
+msgid "Dos/Windows"
+msgstr "Dos/Windows"
+
+#: optiondialog.cpp:769
+msgid "Autodetect"
+msgstr "Oppdag automatisk"
+
+#: optiondialog.cpp:772
+msgid ""
+"Sets the line endings for when an edited file is saved.\n"
+"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A"
+msgstr ""
+"Bestemmer tegn for slutt på linja når en fil lagres.\n"
+"DOS/Windows: CR+LF; UNIX: LF; med CR=0D, LF=0A"
+
+#: optiondialog.cpp:784
+msgid "Diff"
+msgstr "Diff"
+
+#: optiondialog.cpp:785
+msgid "Diff Settings"
+msgstr "Innstillinger for Diff"
+
+#: optiondialog.cpp:809
+msgid "Treat as white space."
+msgstr "Behandle som tomrom."
+
+#: optiondialog.cpp:811
+msgid "Ignore numbers"
+msgstr "Ignorer tall"
+
+#: optiondialog.cpp:814
+msgid ""
+"Ignore number characters during line matching phase. (Similar to Ignore "
+"white space.)\n"
+"Might help to compare files with numeric data."
+msgstr ""
+"Ignorer sifre når linjene søkes opp. (Likner Ignorer tomrom)\n"
+"Kan hjelpe til å sammenlikne filer med numeriske data."
+
+#: optiondialog.cpp:819
+msgid "Ignore C/C++ comments"
+msgstr "Ignorer C/C++-kommentarer"
+
+#: optiondialog.cpp:821
+msgid "Treat C/C++ comments like white space."
+msgstr "Behandle kommentarer i C/C++ som tomrom."
+
+#: optiondialog.cpp:825
+msgid "Ignore case"
+msgstr "Ikke ta hensyn til store/små bokstaver"
+
+#: optiondialog.cpp:828
+msgid "Treat case differences like white space changes. ('a'<=>'A')"
+msgstr "Behandle endringer små/store som endring i tomrom («a»<=>«A»)"
+
+#: optiondialog.cpp:832
+msgid "Preprocessor command:"
+msgstr "Forarbeide-kommando:"
+
+#: optiondialog.cpp:836
+msgid "User defined pre-processing. (See the docs for details.)"
+msgstr "Selvvalgt forarbeide. (Detaljer finnes i dokumentasjonen)"
+
+#: optiondialog.cpp:839
+msgid "Line-matching preprocessor command:"
+msgstr "Linjesøkende forarbeide, kommando:"
+
+#: optiondialog.cpp:843
+msgid ""
+"This pre-processor is only used during line matching.\n"
+"(See the docs for details.)"
+msgstr ""
+"Denne forbehandleren brukes bare når linjer søkes.\n"
+"(Detaljer i dokumentasjonen)."
+
+#: optiondialog.cpp:846
+msgid "Try hard (slower)"
+msgstr "Grundig (langsommere)"
+
+#: optiondialog.cpp:849
+msgid ""
+"Enables the --minimal option for the external diff.\n"
+"The analysis of big files will be much slower."
+msgstr ""
+"Slår på --minimal for det eksterne diff-programmet.\n"
+"Analyse av store filer blir mye langsommere."
+
+#: optiondialog.cpp:854
+msgid "Align B and C for 3 input files"
+msgstr "Innrett B og C for 3 inn-filer"
+
+#: optiondialog.cpp:857
+msgid ""
+"Try to align B and C when comparing or merging three input files.\n"
+"Not recommended for merging because merge might get more complicated.\n"
+"(Default is off.)"
+msgstr ""
+"Forsøk å rette inn B og C når tre inn-filer sammenliknes eller flettes.\n"
+"Ikke anbefalt for fletting fordi fletting kan bli mer komplisert.\\ "
+"(Standard er av.)"
+
+#: optiondialog.cpp:870
+msgid "Merge Settings"
+msgstr "Innstillinger for fletting"
+
+#: optiondialog.cpp:885
+msgid "Auto advance delay (ms):"
+msgstr "Forsinkelse for auto-avansering (ms):"
+
+#: optiondialog.cpp:890
+msgid ""
+"When in Auto-Advance mode the result of the current selection is shown \n"
+"for the specified time, before jumping to the next conflict. Range: 0-2000 ms"
+msgstr ""
+"Når det brukes auto-avansering vises resultatet av gjeldende utvalg \n"
+"i oppgitt tid, før det hoppes til neste konflikt. Verdiområde fra 0-2000 ms"
+
+#: optiondialog.cpp:895
+msgid "Show info dialogs"
+msgstr "Vis informasjonsdialoger"
+
+#: optiondialog.cpp:897
+msgid "Show a dialog with information about the number of conflicts."
+msgstr "Vis en dialog med informasjon om antall konflikter."
+
+#: optiondialog.cpp:900
+msgid "White space 2-file merge default:"
+msgstr "Standard for 2-fils tomromsfletting:"
+
+#: optiondialog.cpp:904 optiondialog.cpp:917
+msgid "Manual Choice"
+msgstr "Manuelt valg"
+
+#: optiondialog.cpp:908 optiondialog.cpp:922
+msgid ""
+"Allow the merge algorithm to automatically select an input for white-space-"
+"only changes."
+msgstr ""
+"Tillat flettealgoritmen å velge inn-data automatisk for endringer som bare "
+"gjelder tomrom."
+
+#: optiondialog.cpp:913
+msgid "White space 3-file merge default:"
+msgstr "Standard for 3-fils tomromsfletting:"
+
+#: optiondialog.cpp:927
+msgid "Automatic Merge Regular Expression"
+msgstr "Automatisk fletting med regulært uttrykk"
+
+#: optiondialog.cpp:940
+msgid ""
+"Regular expression for lines where KDiff3 should automatically choose one "
+"source.\n"
+"When a line with a conflict matches the regular expression then\n"
+"- if available - C, otherwise B will be chosen."
+msgstr ""
+"Regulært uttrykk for linjer der KDiff3 skal velge én kilde automatisk.\n"
+"Når en linje med konflikt stemmer med det regulære uttrykket, så \n"
+"velges C hvis tilgjengelig, ellers B."
+
+#: optiondialog.cpp:946
+msgid "Run regular expression auto merge on merge start"
+msgstr "Kjør autofletting med regulære uttrykk ved flettestart"
+
+#: optiondialog.cpp:948
+msgid ""
+"Run the merge for auto merge regular expressions\n"
+"immediately when a merge starts.\n"
+msgstr ""
+"Kjør autoflettingen med regulære uttrykk med en\n"
+"gang når en fletting begynner.\n"
+
+#: optiondialog.cpp:953
+msgid "Version Control History Merging"
+msgstr "Fletting av historien fra versjonskontroll"
+
+#: optiondialog.cpp:966
+msgid ""
+"Regular expression for the start of the version control history entry.\n"
+"Usually this line contains the \"$Log$\" keyword.\n"
+"Default value: \".*\\$Log.*\\$.*\""
+msgstr ""
+"Regulært uttrykk for start på oppføringa i versjonskontroll-historien.\n"
+"Denne linja inneholder som regel  nøkkelordet \"$Log$\".\n"
+"Standard: \".*\\$Log.*\\$.*\""
+
+#: optiondialog.cpp:984
+msgid ""
+"A version control history entry consists of several lines.\n"
+"Specify the regular expression to detect the first line (without the leading "
+"comment).\n"
+"Use parentheses to group the keys you want to use for sorting.\n"
+"If left empty, then KDiff3 assumes that empty lines separate history entries."
+"\n"
+"See the documentation for details."
+msgstr ""
+"En historieoppføring består av flere linjer.\n"
+"Oppgi et regulært uttrykk som finner første linje (uten kommentaren foran).\n"
+"Bruk parenteser for å binde sammen nøkler du vil bruke til sortering.\n"
+"Hvis det står tomt regner KDiff3 med at det er blanke linjer mellom "
+"historieoppføringene.\n"
+"Se i dokumentasjonen etter detaljer."
+
+#: optiondialog.cpp:992
+msgid "History merge sorting"
+msgstr "Flettesortering av historien"
+
+#: optiondialog.cpp:994
+msgid "Sort version control history by a key."
+msgstr "Sorter versjonskontroll-historien etter en nøkkel."
+
+#: optiondialog.cpp:1004
+msgid "History entry start sort key order:"
+msgstr "Nøkkelrekkefølge for sortering av historiestart:"
+
+#: optiondialog.cpp:1008
+msgid ""
+"Each pair of parentheses used in the regular expression for the history "
+"start entry\n"
+"groups a key that can be used for sorting.\n"
+"Specify the list of keys (that are numbered in order of occurrence\n"
+"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n"
+"If left empty, then no sorting will be done.\n"
+"See the documentation for details."
+msgstr ""
+"Hvert parentespar brukt i det regulære uttrykket for start på "
+"historieoppføringa\n"
+"angir en nøkkel som kan brukes til sortering.\n"
+"Oppgi en liste over nøkler (nummerert i den rekkefølge de opptrer\n"
+"med start på 1), med «,» som skilletegn (f.eks. \"4,5,6,1,2,3,7\").\n"
+"Står dette tomt blir det ikke sortert.\n"
+"Detaljer finnes i dokumentasjonen."
+
+#: optiondialog.cpp:1019
+msgid "Merge version control history on merge start"
+msgstr "Flett versjonshistorien når flettingen begynner"
+
+#: optiondialog.cpp:1021
+msgid "Run version control history automerge on merge start."
+msgstr "Kjør autofletting på versjonshistorien når fletting begynner."
+
+#: optiondialog.cpp:1025
+msgid "Max number of history entries:"
+msgstr "Maks antall oppføringer i historien:"
+
+#: optiondialog.cpp:1028
+msgid "Cut off after specified number. Use -1 for infinite number of entries."
+msgstr ""
+"Stopp etter det oppgitte antallet. Bruk -1 for ubegrenset antall oppføringer."
+
+#: optiondialog.cpp:1032
+msgid "Test your regular expressions"
+msgstr "Test de regulære uttrykkene"
+
+#: optiondialog.cpp:1037
+msgid "Irrelevant merge command:"
+msgstr "Irrelevant flettekommando:"
+
+#: optiondialog.cpp:1041
+msgid ""
+"If specified this script is run after automerge\n"
+"when no other relevant changes were detected.\n"
+"Called with the parameters: filename1 filename2 filename3"
+msgstr ""
+"Hvis det er oppgitt, kjøres dette skriptet etter\n"
+"autofletting når ingen andre relevante endringer \n"
+"ble funnet. Kalles med parametre filnavn1 filnavn2 filnavn3"
+
+#: optiondialog.cpp:1047
+msgid "Auto save and quit on merge without conflicts"
+msgstr "Automatisk lagring og avslutting etter fletting uten konflikter"
+
+#: optiondialog.cpp:1050
+msgid ""
+"If KDiff3 was started for a file-merge from the command line and all\n"
+"conflicts are solvable without user interaction then automatically save and "
+"quit.\n"
+"(Similar to command line option \"--auto\".)"
+msgstr ""
+"Hvis KDiff3 ble startet for filfletting fra kommandolinja og alle "
+"konflikter\n"
+"kan løses uten å spørre brukeren, så lagre og avslutt automatisk.\n"
+"(Likner kommandolinjevalget «--auto»."
+
+#: optiondialog.cpp:1061 optiondialog.cpp:1062
+msgid "Directory"
+msgstr "Mappe"
+
+#: optiondialog.cpp:1075
+msgid "Recursive directories"
+msgstr "Rekursive mapper"
+
+#: optiondialog.cpp:1077
+msgid "Whether to analyze subdirectories or not."
+msgstr "Om undermapper skal analyseres eller ikke."
+
+#: optiondialog.cpp:1079
+msgid "File pattern(s):"
+msgstr "Filmønster(e):"
+
+#: optiondialog.cpp:1084
+msgid ""
+"Pattern(s) of files to be analyzed. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Mønster(e) for filnavn som skal analyseres.\n"
+"Jokertegn: «*» og «?»\n"
+"Flere mønstre kan oppgis med «;» som skilletegn"
+
+#: optiondialog.cpp:1090
+msgid "File-anti-pattern(s):"
+msgstr "Fil-antimønster(e):"
+
+#: optiondialog.cpp:1095
+msgid ""
+"Pattern(s) of files to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Mønster(e) for filer som ikke skal analyseres. \n"
+"Jokertegn: «*» og «?»\n"
+"Flere mønstre kan oppgis med «;» som skilletegn"
+
+#: optiondialog.cpp:1101
+msgid "Dir-anti-pattern(s):"
+msgstr "Mappe-antimønster(e) :"
+
+#: optiondialog.cpp:1106
+msgid ""
+"Pattern(s) of directories to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Mønster(e) for mapper som ikke skal analyseres. \n"
+"Jokertegn: «*» og «?»\n"
+"Flere mønstre kan oppgis med «;» som skilletegn"
+
+#: optiondialog.cpp:1112
+msgid "Use .cvsignore"
+msgstr "Bruk .cvsignore"
+
+#: optiondialog.cpp:1115
+msgid ""
+"Extends the antipattern to anything that would be ignored by CVS.\n"
+"Via local \".cvsignore\" files this can be directory specific."
+msgstr ""
+"Utvider antimønsteret til alt som CVS ville ignorere.\n"
+"Dette kan gjøres pr. mappe med lokale «.cvsignore»-filer."
+
+#: optiondialog.cpp:1120
+msgid "Find hidden files and directories"
+msgstr "Finn skjulte filer og mapper"
+
+#: optiondialog.cpp:1123
+msgid "Finds files and directories with the hidden attribute."
+msgstr "Finner filer og mapper som har attributtet «skjult."
+
+#: optiondialog.cpp:1125
+msgid "Finds files and directories starting with '.'."
+msgstr "Finner filer og mapper med navn som begynner med «.»."
+
+#: optiondialog.cpp:1129
+msgid "Follow file links"
+msgstr "Følg fil-lenker"
+
+#: optiondialog.cpp:1132
+msgid ""
+"On: Compare the file the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+"På: Sammenlikne filer som lenkene peker på.\n"
+"Av: Sammenlikne lenkene."
+
+#: optiondialog.cpp:1137
+msgid "Follow directory links"
+msgstr "Følg mappelenker"
+
+#: optiondialog.cpp:1140
+msgid ""
+"On: Compare the directory the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+"På: Sammenlikne mapper lenkene peker på.\n"
+"Av: Sammenlikne lenkene."
+
+#: optiondialog.cpp:1156
+msgid "Case sensitive filename comparison"
+msgstr "Store/små bokstaver i filnavn"
+
+#: optiondialog.cpp:1159
+msgid ""
+"The directory comparison will compare files or directories when their names "
+"match.\n"
+"Set this option if the case of the names must match. (Default for Windows is "
+"off, otherwise on.)"
+msgstr ""
+"Mappesammenlikningen behandler filer og mapper når navnene er like.\n"
+"Slå på dette hvis navnene er versalvâre – dvs store/små bokstaver må være "
+"like. (Standard for Windows er av, ellers på.)v"
+
+#: optiondialog.cpp:1163
+msgid "File Comparison Mode"
+msgstr "Hvordan filer sammenliknes"
+
+#: optiondialog.cpp:1169
+msgid "Binary comparison"
+msgstr "Binær sammenlikning"
+
+#: optiondialog.cpp:1170
+msgid "Binary comparison of each file. (Default)"
+msgstr "Binær sammenlikning av hver fil. (Standard)"
+
+#: optiondialog.cpp:1173
+msgid "Full analysis"
+msgstr "Full analyse"
+
+#: optiondialog.cpp:1174
+msgid ""
+"Do a full analysis and show statistics information in extra columns.\n"
+"(Slower than a binary comparison, much slower for binary files.)"
+msgstr ""
+"Gjør en full analyse og vis statistikk i ekstra kolonner.\n"
+"(Langsommere enn binær sammenlikning, mye langsommere for binære filer.)"
+
+#: optiondialog.cpp:1178
+msgid "Trust the size and modification date (unsafe)"
+msgstr "Stol på størrelsen og endringsdatoen (utrygt)"
+
+#: optiondialog.cpp:1179
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"Files with equal contents but different modification dates will appear as "
+"different.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"Anta at filer er like hvis endringsdatoene og størrelsene er like.\n"
+"Filer med samme innhold men forskjellig endringsdato blir vist som "
+"forskjellige.\n"
+"Nyttig for store mapper eller langsomme nett."
+
+#: optiondialog.cpp:1184
+msgid ""
+"Trust the size and date, but use binary comparison if date does not match "
+"(unsafe)"
+msgstr ""
+"Stol på størrelse og dato, men bruk binær sammenlikning hvis datoen ikke "
+"stemmer (utrygt)"
+
+#: optiondialog.cpp:1185
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"If the dates are not equal but the sizes are, use binary comparison.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"Anta at filer er like hvis endringsdatoene og størrelsene er like.\n"
+"Hvis datoene ikke er like, men størrelsene er like, så bruk binær "
+"sammenlikning.Nyttig for store mapper eller langsomme nett."
+
+#: optiondialog.cpp:1190
+msgid "Trust the size (unsafe)"
+msgstr "Stol på størrelsen (utrygt)"
+
+#: optiondialog.cpp:1191
+msgid ""
+"Assume that files are equal if their file lengths are equal.\n"
+"Useful for big directories or slow networks when the date is modified during "
+"download."
+msgstr ""
+"Anta at filer er like hvis størrelsene er like.\n"
+"Nyttig for store mapper eller langsomme nett når datoen endres under "
+"nedlasting."
+
+#: optiondialog.cpp:1199
+msgid "Synchronize directories"
+msgstr "Synkroniser mapper"
+
+#: optiondialog.cpp:1202
+msgid ""
+"Offers to store files in both directories so that\n"
+"both directories are the same afterwards.\n"
+"Works only when comparing two directories without specifying a destination."
+msgstr ""
+"Kan lagre filer i begge mapper slik at begge\n"
+"mappene er like etterpå. Dette virker bare hvis\n"
+"to mapper sammenliknes uten å oppgi et mål."
+
+#: optiondialog.cpp:1208
+msgid "White space differences considered equal"
+msgstr "Tomromsforskjeller betraktes som like"
+
+#: optiondialog.cpp:1211
+msgid ""
+"If files differ only by white space consider them equal.\n"
+"This is only active when full analysis is chosen."
+msgstr ""
+"Hvis filer er forskjellige bare i tomrom, betrakt dem som\n"
+"like. Dette er bare aktivt når det kjøres full analyse."
+
+#: optiondialog.cpp:1217
+msgid "Copy newer instead of merging (unsafe)"
+msgstr "Kopier den nyeste i stedet for å flette (utrygt)"
+
+#: optiondialog.cpp:1220
+msgid ""
+"Don't look inside, just take the newer file.\n"
+"(Use this only if you know what you are doing!)\n"
+"Only effective when comparing two directories."
+msgstr ""
+"Ikke se inni filene, bare bruk den nyeste fila.\n"
+"(Bruk dette bare når du vet hva du gjør!)\n"
+"Bare virksomt når to mapper sammenliknes."
+
+#: optiondialog.cpp:1225
+msgid "Backup files (.orig)"
+msgstr "Ta sikkerhetskopi av filer (.orig)"
+
+#: optiondialog.cpp:1228
+msgid ""
+"If a file would be saved over an old file, then the old file\n"
+"will be renamed with a '.orig' extension instead of being deleted."
+msgstr ""
+"Hvis en ny fil ville bli lagret oppå en gammel, så får den gamle\n"
+"fila nytt navn med «.orig» til slutt i stedet for å bli slettet."
+
+#: optiondialog.cpp:1301 optiondialog.cpp:1302
+msgid "Regional Settings"
+msgstr "Regionale innstillinger"
+
+#: optiondialog.cpp:1402
+msgid "Language (restart required)"
+msgstr "Språk (krever omstart av KDiff3)"
+
+#: optiondialog.cpp:1445
+msgid ""
+"Choose the language of the GUI strings or \"Auto\".\n"
+"For a change of language to take place, quit and restart KDiff3."
+msgstr ""
+"Velg språk for GUI-strengene, eller «Auto».\n"
+"KDiff3 må stoppes og startes på nytt for at dette skal få virkning."
+
+#: optiondialog.cpp:1463
+msgid "Use the same encoding for everything:"
+msgstr "Bruk samme koding for alt:"
+
+#: optiondialog.cpp:1466
+msgid ""
+"Enable this allows to change all encodings by changing the first only.\n"
+"Disable this if different individual settings are needed."
+msgstr ""
+"Hvis dette er slått på kan alle kodinger endres ved bare å endre den første."
+"\n"
+"Slå av hvis det trengs separate innstillinger."
+
+#: optiondialog.cpp:1471
+msgid "Note: Local Encoding is "
+msgstr "Merk: Lokal koding er "
+
+#: optiondialog.cpp:1475
+msgid "File Encoding for A:"
+msgstr "Filkoding for A :"
+
+#: optiondialog.cpp:1481
+msgid ""
+"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n"
+"If the file is not Unicode then the selected encoding will be used as "
+"fallback.\n"
+"(Unicode detection depends on the first bytes of a file.)"
+msgstr ""
+"Hvis dette er slått på blir Unicode oppdaget (UTF-16 eller UTF-8).\n"
+"Hvis fila ikke er i Unicode, så blir den valgte kodingen brukt som reserve.\n"
+"(Unicode oppdages avhengig av de første tegnene i en fil.)"
+
+#: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503
+msgid "Auto Detect Unicode"
+msgstr "Auto-oppdag Unicode"
+
+#: optiondialog.cpp:1490
+msgid "File Encoding for B:"
+msgstr "Filkoding for B :"
+
+#: optiondialog.cpp:1499
+msgid "File Encoding for C:"
+msgstr "Filkoding for C :"
+
+#: optiondialog.cpp:1508
+msgid "File Encoding for Merge Output and Saving:"
+msgstr "Filkoding for flettet resultat og lagring:"
+
+#: optiondialog.cpp:1512
+msgid "Auto Select"
+msgstr "Autovalg"
+
+#: optiondialog.cpp:1515
+msgid ""
+"If enabled then the encoding from the input files is used.\n"
+"In ambiguous cases a dialog will ask the user to choose the encoding for "
+"saving."
+msgstr ""
+"Hvis dette er slått på, så brukes kodingen fra inndata-filene.\n"
+"Hvis en entydig koding ikke kan bestemmes, vil et dialogvindu be brukeren "
+"velge en koding for lagring."
+
+#: optiondialog.cpp:1519
+msgid "File Encoding for Preprocessor Files:"
+msgstr "Filkoding for forbehandlingsfiler:"
+
+#: optiondialog.cpp:1530
+msgid "Right To Left Language"
+msgstr "Høyre mot venstre-språk"
+
+#: optiondialog.cpp:1533
+msgid ""
+"Some languages are read from right to left.\n"
+"This setting will change the viewer and editor accordingly."
+msgstr ""
+"Noen språk leses fra høyre mot venstre.\n"
+"Denne innstillinga endrer visning og redigering tilsvarende."
+
+#: optiondialog.cpp:1548
+msgid "Integration"
+msgstr "Integrasjon"
+
+#: optiondialog.cpp:1549
+msgid "Integration Settings"
+msgstr "Integrasjonsinnstillinger"
+
+#: optiondialog.cpp:1563
+msgid "Command line options to ignore:"
+msgstr "Kommandolinjeparametre som skal ignoreres:"
+
+#: optiondialog.cpp:1568
+msgid ""
+"List of command line options that should be ignored when KDiff3 is used by "
+"other tools.\n"
+"Several values can be specified if separated via ';'\n"
+"This will suppress the \"Unknown option\" error."
+msgstr ""
+"Liste over kommandolinje-parametre som skal hoppes over når KDiff3 brukes av "
+"andre verktøy.\n"
+"Flere verdier kan oppgis atskilt med «;»\n"
+"Da forsvinner feilmeldinga «Ukjent parameter»."
+
+#: optiondialog.cpp:1575
+msgid "Quit also via Escape key"
+msgstr "Avslutt også med Escape-tasten"
+
+#: optiondialog.cpp:1578
+msgid ""
+"Fast method to exit.\n"
+"For those who are used to using the Escape key."
+msgstr ""
+"Rask måte å avslutte på.\n"
+"For de som er vant til å bruke Escape-tasten."
+
+#: optiondialog.cpp:1583
+msgid "Integrate with ClearCase"
+msgstr "Integrer med ClearCase"
+
+#: optiondialog.cpp:1586
+msgid ""
+"Integrate with Rational ClearCase from IBM.\n"
+"Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n"
+"(Only enabled when ClearCase \"bin\" directory is in the path.)"
+msgstr ""
+"Integrer med Rational ClearCase fra IBM.\n"
+"Dette endrer «map»-fila i ClearCases undermappe «lib/mgrs»\n"
+"(Virker bare hvis ClearCases «bin»-mappe ligger i søkestien.)"
+
+#: optiondialog.cpp:1592
+msgid "Remove ClearCase Integration"
+msgstr "Fjern ClearCase-integrering"
+
+#: optiondialog.cpp:1595
+msgid ""
+"Restore the old \"map\" file from before doing the ClearCase integration."
+msgstr ""
+"Legg tilbake den gamle «map»-fila som ble brukt før ClearCase-integrering."
+
+#: optiondialog.cpp:1680
+msgid "Incompatible Font"
+msgstr "Ikke kompatibel skrift"
+
+#: optiondialog.cpp:1681
+msgid "Continue at Own Risk"
+msgstr "Fortsett på egen risiko"
+
+#: optiondialog.cpp:1682
+msgid "Select Another Font"
+msgstr "Velg en annen skrift"
+
+#: optiondialog.cpp:1717
+msgid "This resets all options. Not only those of the current topic."
+msgstr "Dette tilbakestiller alle valg, ikke bare dem i dette emnet."
+
+#: pdiff.cpp:260
+msgid "PreprocessorCmd: "
+msgstr "Forbehandlingskommando :"
+
+#: pdiff.cpp:265
+msgid "The following option(s) you selected might change data:\n"
+msgstr "Følgende innstillinger som er valgt kan endre data:\n"
+
+#: pdiff.cpp:266
+msgid ""
+"\n"
+"Most likely this is not wanted during a merge.\n"
+"Do you want to disable these settings or continue with these settings active?"
+msgstr ""
+"\n"
+"Ved fletting er nok ikke dette ønsket.\n"
+"Vil du slå av disse innstillingene eller fortsette med dem slått på?"
+
+#: pdiff.cpp:268
+msgid "Option Unsafe for Merging"
+msgstr "Utrygg innstilling for fletting"
+
+#: pdiff.cpp:269
+msgid "Use These Options During Merge"
+msgstr "Bruk disse innstillingene under fletting"
+
+#: pdiff.cpp:270
+msgid "Disable Unsafe Options"
+msgstr "Slå av utrygge innstillinger"
+
+#: pdiff.cpp:300
+msgid "Loading A"
+msgstr "Laster A"
+
+#: pdiff.cpp:304
+msgid "Loading B"
+msgstr "Laster B"
+
+#: pdiff.cpp:321 pdiff.cpp:347
+msgid "Diff: A <-> B"
+msgstr "Diff: A <-> B"
+
+#: pdiff.cpp:327 pdiff.cpp:372
+msgid "Linediff: A <-> B"
+msgstr "Linjediff A <-> B"
+
+#: pdiff.cpp:338
+msgid "Loading C"
+msgstr "Laster C"
+
+#: pdiff.cpp:350
+msgid "Diff: B <-> C"
+msgstr "Diff: B <-> C"
+
+#: pdiff.cpp:353
+msgid "Diff: A <-> C"
+msgstr "Diff: A <-> C"
+
+#: pdiff.cpp:375
+msgid "Linediff: B <-> C"
+msgstr "Linjediff B <-> C"
+
+#: pdiff.cpp:378
+msgid "Linediff: A <-> C"
+msgstr "Linjediff A <-> C"
+
+#: pdiff.cpp:534
+msgid "All input files contain the same text, but are not binary equal."
+msgstr "Alle inn-filene inneholder samme tekst, men er ikke binært like."
+
+#: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541
+#, kde-format
+msgid "Files %1 and %2 have equal text, but are not binary equal. \n"
+msgstr "Filene %1 og %2 har lik tekst, men er ikke binært like. \n"
+
+#: pdiff.cpp:551
+msgid ""
+"Some inputfiles don't seem to be pure textfiles.\n"
+"Note that the KDiff3-merge was not meant for binary data.\n"
+"Continue at your own risk."
+msgstr ""
+"Det ser ut til at noen av inndata-filene ikke er rene tekstfiler.\n"
+"Merk at KDiff3-fletting ikke er beregnet for binære data.\n"
+"Fortsett på egen risiko."
+
+#: pdiff.cpp:566
+#, kde-format
+msgid ""
+"Some input characters could not be converted to valid unicode.\n"
+"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n"
+"Don't save the result if unsure. Continue at your own risk.\n"
+"Affected input files are in %1."
+msgstr ""
+"Noen tegn i inndata kunne ikke gjøres om til gyldig unicode.\n"
+"Kanskje du bruker feil kodek (f.eks. UTF-8 for filer som ikke er i UTF-8).\n"
+"Er du usikker, så ikke lagre resultatet. Fortsett på egen risiko.\n"
+"Inndata-filer som er påvirket er i %1. "
+
+#: pdiff.cpp:1080
+msgid "Abort"
+msgstr "Avbryt"
+
+#: pdiff.cpp:1087 pdiff.cpp:1175
+msgid "Opening files..."
+msgstr "Åpner filer …"
+
+#: pdiff.cpp:1152 pdiff.cpp:1223
+msgid "File open error"
+msgstr "Feil ved filåpning"
+
+#: pdiff.cpp:1255
+msgid "Cutting selection..."
+msgstr "Klipper ut utvalget …"
+
+#: pdiff.cpp:1276
+msgid "Copying selection to clipboard..."
+msgstr "Kopierer utvalg til utklippstavla …"
+
+#: pdiff.cpp:1292
+msgid "Inserting clipboard contents..."
+msgstr "Setter inn fra utklippstavla …"
+
+#: pdiff.cpp:1814
+msgid "Save && Continue"
+msgstr "Lagre og fortsett"
+
+#: pdiff.cpp:1815
+msgid "Continue Without Saving"
+msgstr "Fortsett uten lagring"
+
+#: pdiff.cpp:2018
+msgid "Search complete."
+msgstr "Søk fullført."
+
+#: pdiff.cpp:2018
+msgid "Search Complete"
+msgstr "Søk fullført"
+
+#: pdiff.cpp:2252
+msgid "Nothing is selected in either diff input window."
+msgstr "Ingenting er valgt i noe av inndata-vinduene."
+
+#: pdiff.cpp:2252
+msgid "Error while adding manual diff range"
+msgstr "Feil oppsto ved tillegg av manuelt diff-område"
+
+#: kdiff3_shell.cpp:76
+msgid ""
+"Could not initialize the KDiff3 part.\n"
+"This usually happens due to an installation problem. Please read the README-"
+"file in the source package for details."
+msgstr ""
+"Klarte ikke klargjøre KDiff3-part.\n"
+"Dette skyldes oftest et installasjonsproblem. Det står mer om dette i README-"
+"fila i kildekoden."
+
+#: rc.cpp:1
+msgctxt "NAME OF TRANSLATORS"
+msgid "Your names"
+msgstr "Klaus Ade Johnstad"
+
+#: rc.cpp:2
+msgctxt "EMAIL OF TRANSLATORS"
+msgid "Your emails"
+msgstr "klaus@skolelinux.no"
+
+#. i18n: file: kdiff3_part.rc:4
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:5
+msgid "&KDiff3"
+msgstr "&KDiff3"
+
+#. i18n: file: kdiff3_part.rc:13
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:8
+msgid "Configure KDiff3"
+msgstr "Sett opp KDiff3"
+
+#. i18n: file: kdiff3_part.rc:16
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:11
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#. i18n: file: kdiff3_shell.rc:106
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:38
+msgid "Main Toolbar"
+msgstr "Hovedverktøylinje"
diff --git a/po/nb/kdiff3fileitemactionplugin.po b/po/nb/kdiff3fileitemactionplugin.po
new file mode 100644 (file)
index 0000000..66d53b3
--- /dev/null
@@ -0,0 +1,99 @@
+# Translation of kdiff3fileitemactionplugin to Norwegian Bokmål
+#
+# Bjørn Steensrud <bjornst@skogkatt.homelinux.org>, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-05-07 15:03+0200\n"
+"Last-Translator: Bjørn Steensrud <bjornst@skogkatt.homelinux.org>\n"
+"Language-Team: Norwegian Bokmål <i18n-nb@lister.ping.uio.no>\n"
+"Language: nb\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.1\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Environment: kde\n"
+"X-Accelerator-Marker: &\n"
+"X-Text-Markup: kde4\n"
+
+#: kdiff3fileitemaction.cpp:94
+msgid "KDiff3 ..."
+msgstr "KDiff3 …"
+
+#: kdiff3fileitemaction.cpp:125
+#, kde-format
+msgid "Compare with %1"
+msgstr "Sammenlikne med %1"
+
+#: kdiff3fileitemaction.cpp:131
+#, kde-format
+msgid "Merge with %1"
+msgstr "Flett sammen med %1"
+
+#: kdiff3fileitemaction.cpp:137
+#, kde-format
+msgid "Save '%1' for later"
+msgstr "Lagre «%1» til senere"
+
+#: kdiff3fileitemaction.cpp:143
+msgid "3-way merge with base"
+msgstr "3-veis fletting med basis"
+
+#: kdiff3fileitemaction.cpp:150
+msgid "Compare with ..."
+msgstr "Sammenlikne med …"
+
+#: kdiff3fileitemaction.cpp:162
+msgid "Clear list"
+msgstr "Tøm liste"
+
+#: kdiff3fileitemaction.cpp:170
+msgid "Compare"
+msgstr "Sammenlikne"
+
+#: kdiff3fileitemaction.cpp:176
+msgid "3 way comparison"
+msgstr "3-veis sammenlikning"
+
+#: kdiff3fileitemaction.cpp:180
+msgid "About KDiff3 menu plugin ..."
+msgstr "Om programtillegget for KDiff3-meny …"
+
+#: kdiff3fileitemaction.cpp:284
+msgid ""
+"KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+"Programtillegg for KDiff3 filhandling: Copyright © 2011 Joachim Eibl\n"
+"KDiff3 nettsted: http://kdiff3.sourceforge.net\n"
+"\n"
+
+#: kdiff3fileitemaction.cpp:286
+msgid ""
+"Using the contextmenu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else \"Save\" the first file for later. It "
+"will appear in the \"Compare With ...\" submenu. Then use \"Compare With\" "
+"on second file.\n"
+"For a 3-way merge first \"Save\" the base file, then the branch to merge and "
+"choose \"3-way merge with base\" on the other branch which will be used as "
+"destination.\n"
+"Same also applies to directory comparison and merge."
+msgstr ""
+"Bruke utvidelsen av kontekstmenyen:\n"
+"For enkel sammenlikning av to markerte filer velg «Sammenlikne».\n"
+"Hvis den andre fila ligger et annet sted «Lagre» den første fila til senere. "
+"Den dukker opp i undermenyen «Sammenlikne med. Bruk deretter «Sammenlikne "
+"med» på den andre fila.\n"
+"En 3-veis fletting gjøres ved å «Lagre» basisfila, deretter grenen som skal "
+"flettes inn og velg «3-veis fletting med basis» på den andre grenen, som "
+"brukes som målfil.\n"
+"Det samme gjelder sammenlikning og fletting av mapper."
+
+#: kdiff3fileitemaction.cpp:294
+msgid "About KDiff3 File Item Action Plugin"
+msgstr "Om programtillegget for KDiff3 filhandling"
diff --git a/po/nb/kdiff3plugin.po b/po/nb/kdiff3plugin.po
new file mode 100644 (file)
index 0000000..2929d23
--- /dev/null
@@ -0,0 +1,99 @@
+# Translation of kdiff3plugin to Norwegian Bokmål
+#
+# Bjørn Steensrud <bjornst@skogkatt.homelinux.org>, 2008, 2009, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3plugin\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-05-15 15:58+0200\n"
+"Last-Translator: Bjørn Steensrud <bjornst@skogkatt.homelinux.org>\n"
+"Language-Team: Norwegian Bokmål <i18n-nb@lister.ping.uio.no>\n"
+"Language: nb\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.1\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Environment: kde\n"
+"X-Accelerator-Marker: &\n"
+"X-Text-Markup: kde4\n"
+
+#: kdiff3plugin.cpp:107
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#: kdiff3plugin.cpp:114
+#, kde-format
+msgid "Compare with %1"
+msgstr "Sammenlikne med %1"
+
+#: kdiff3plugin.cpp:120
+#, kde-format
+msgid "Merge with %1"
+msgstr "Flett sammen med %1"
+
+#: kdiff3plugin.cpp:126
+#, kde-format
+msgid "Save '%1' for later"
+msgstr "Lagre «%1» til senere"
+
+#: kdiff3plugin.cpp:132
+msgid "3-way merge with base"
+msgstr "3-veis fletting med basis"
+
+#: kdiff3plugin.cpp:139
+msgid "Compare with ..."
+msgstr "Sammenlikne med …"
+
+#: kdiff3plugin.cpp:149
+msgid "Clear list"
+msgstr "Tøm liste"
+
+#: kdiff3plugin.cpp:157
+msgid "Compare"
+msgstr "Sammenlikne"
+
+#: kdiff3plugin.cpp:163
+msgid "3 way comparison"
+msgstr "3-veis sammenlikning"
+
+#: kdiff3plugin.cpp:167
+msgid "About KDiff3 menu plugin ..."
+msgstr "Om programtillegget for KDiff3-meny …"
+
+#: kdiff3plugin.cpp:269
+msgid ""
+"KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+"Programtillegg for KDiff3-meny: Copyright © 2008 Joachim Eibl\n"
+"KDiff3 nettsted: http://kdiff3.sourceforge.net\n"
+"\n"
+
+#: kdiff3plugin.cpp:271
+msgid ""
+"Using the context menu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else, \"Save\" the first file for later, and "
+"it will appear in the \"Compare With ...\" submenu. Then, use \"Compare "
+"With\" on the second file.\n"
+"For a 3-way merge first, \"Save\" the base file, then the branch to merge, "
+"and then \"3-way merge with base\" on the other branch which will be used as "
+"the destination.\n"
+"The same also applies to directory comparison and merge."
+msgstr ""
+"Bruke utvidelsen av kontekstmenyen:\n"
+"For enkel sammenlikning av to markerte filer velg «Sammenlikne».\n"
+"Hvis den andre fila ligger et annet sted «Lagre» den første fila til senere. "
+"Den dukker opp i undermenyen «Sammenlikne med. Bruk deretter «Sammenlikne "
+"med» på den andre fila.\n"
+"En 3-veis fletting gjøres ved å «Lagre» basisfila, deretter grenen som skal "
+"flettes inn og velg «3-veis fletting med basis» på den andre grenen, som "
+"brukes som målfil.\n"
+"Det samme gjelder sammenlikning og fletting av mapper."
+
+#: kdiff3plugin.cpp:279
+msgid "About KDiff3 Menu Plugin"
+msgstr "Om programtillegget for KDiff3-meny"
diff --git a/po/nds/CMakeLists.txt b/po/nds/CMakeLists.txt
new file mode 100644 (file)
index 0000000..2401745
--- /dev/null
@@ -0,0 +1,2 @@
+file(GLOB _po_files *.po)
+GETTEXT_PROCESS_PO_FILES(nds ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
diff --git a/po/nds/kdiff3.po b/po/nds/kdiff3.po
new file mode 100644 (file)
index 0000000..df5b667
--- /dev/null
@@ -0,0 +1,3221 @@
+# Translation of kdiff3.po to Low Saxon
+# Copyright (C) YEAR This_file_is_part_of_KDE
+# This file is distributed under the same license as the PACKAGE package.
+# Sönke Dibbern <s_dibbern@web.de>, 2008, 2009.
+# Manfred Wiese <m.j.wiese@web.de>, 2009, 2010, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-05-07 05:53+0200\n"
+"Last-Translator: Manfred Wiese <m.j.wiese@web.de>\n"
+"Language-Team: Low Saxon <kde-i18n-nds@kde.org>\n"
+"Language: nds\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.0\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: kreplacements/kreplacements.h:105
+msgid "Continue"
+msgstr "Wiedermaken"
+
+#: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158
+#: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512
+msgid "Cancel"
+msgstr "Afbreken"
+
+#: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631
+msgid "Quit"
+msgstr "Utmaken"
+
+#: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339
+msgid "Ok"
+msgstr "OK"
+
+#: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715
+msgid "Help"
+msgstr "Hülp"
+
+#: kreplacements/kreplacements.cpp:185
+msgid "Defaults"
+msgstr "Vörinstellen"
+
+#. i18n: file: kdiff3_shell.rc:4
+#. i18n: ectx: Menu (file)
+#: kreplacements/kreplacements.cpp:296 rc.cpp:14
+msgid "&File"
+msgstr "&Datei"
+
+#: kreplacements/kreplacements.cpp:297
+msgid "&Edit"
+msgstr "&Bewerken"
+
+#. i18n: file: kdiff3_shell.rc:7
+#. i18n: ectx: Menu (directory)
+#: kreplacements/kreplacements.cpp:298 rc.cpp:17
+msgid "&Directory"
+msgstr "&Orner"
+
+#. i18n: file: kdiff3_shell.rc:50
+#. i18n: ectx: Menu (movement)
+#: kreplacements/kreplacements.cpp:301 rc.cpp:26
+msgid "&Movement"
+msgstr "&Verschuven"
+
+#. i18n: file: kdiff3_shell.rc:61
+#. i18n: ectx: Menu (diff)
+#: kreplacements/kreplacements.cpp:302 rc.cpp:29
+msgid "D&iffview"
+msgstr "Verscheel&ansicht"
+
+#. i18n: file: kdiff3_shell.rc:73
+#. i18n: ectx: Menu (merge)
+#: kreplacements/kreplacements.cpp:303 rc.cpp:32
+msgid "&Merge"
+msgstr "&Tosamenföhren"
+
+#. i18n: file: kdiff3_shell.rc:95
+#. i18n: ectx: Menu (window)
+#: kreplacements/kreplacements.cpp:304 rc.cpp:35
+msgid "&Window"
+msgstr "&Finster"
+
+#: kreplacements/kreplacements.cpp:305
+msgid "&Settings"
+msgstr "&Instellen"
+
+#: kreplacements/kreplacements.cpp:306
+msgid "&Help"
+msgstr "&Hülp"
+
+#: kreplacements/kreplacements.cpp:353
+msgid "&About"
+msgstr "&Vertell wat över"
+
+#: kreplacements/kreplacements.cpp:369
+msgid "A&uthor"
+msgstr "A&utor"
+
+#: kreplacements/kreplacements.cpp:383
+msgid "&Thanks To"
+msgstr "&Dank"
+
+#. i18n: file: kdiff3_shell.rc:30
+#. i18n: ectx: Menu (dir_current_merge_menu)
+#: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497
+#: rc.cpp:20
+msgid "Current Item Merge Operation"
+msgstr "Tosamenföhr-Akschoon för aktuell Element"
+
+#. i18n: file: kdiff3_shell.rc:38
+#. i18n: ectx: Menu (dir_current_sync_menu)
+#: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498
+#: rc.cpp:23
+msgid "Current Item Sync Operation"
+msgstr "Synkroniseer-Akschoon för aktuell Element"
+
+#: kreplacements/kreplacements.cpp:597
+msgid "Open"
+msgstr "Opmaken"
+
+#: kreplacements/kreplacements.cpp:606
+msgid "Save"
+msgstr "Sekern"
+
+#: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720
+msgid "Save As..."
+msgstr "Sekern as..."
+
+#: kreplacements/kreplacements.cpp:623
+msgid "Print..."
+msgstr "Drucken..."
+
+#: kreplacements/kreplacements.cpp:639
+msgid "Cut"
+msgstr "Knippen"
+
+#: kreplacements/kreplacements.cpp:647
+msgid "Copy"
+msgstr "Koperen"
+
+#: kreplacements/kreplacements.cpp:655
+msgid "Paste"
+msgstr "Infögen"
+
+#: kreplacements/kreplacements.cpp:663
+msgid "Select All"
+msgstr "All utsöken"
+
+#: kreplacements/kreplacements.cpp:671
+msgid "Show Toolbar"
+msgstr "Warktüüchbalken wiesen"
+
+#: kreplacements/kreplacements.cpp:679
+msgid "Show &Status Bar"
+msgstr "&Statusbalken wiesen"
+
+#: kreplacements/kreplacements.cpp:687
+#, kde-format
+msgid "&Configure %1..."
+msgstr "%1 &instellen..."
+
+#: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707
+msgid "About"
+msgstr "Över"
+
+#: kreplacements/kreplacements.cpp:722
+msgid "Find"
+msgstr "Söken"
+
+#: kreplacements/kreplacements.cpp:730
+msgid "Find Next"
+msgstr "Nakamen söken"
+
+#: kreplacements/kreplacements.cpp:750
+msgid "Select Font"
+msgstr "Schriftoort utsöken"
+
+#: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676
+msgid ""
+"You selected a variable width font.\n"
+"\n"
+"Because this program doesn't handle variable width fonts\n"
+"correctly, you might experience problems while editing.\n"
+"\n"
+"Do you want to continue or do you want to select another font."
+msgstr ""
+"Du hest en Schriftoort mit variabel Breed utsöcht.\n"
+"\n"
+"Dit Programm kann Schriftoorden mit variabel Breed nich richtig\n"
+"bruken, Du hest villicht Problemen bi't Bewerken vun Dateien.\n"
+"\n"
+"Wullt Du wiedermaken oder en anner Schriftoort utsöken?"
+
+#: kreplacements/kreplacements.cpp:792
+msgid "Incompatible font."
+msgstr "Schriftoort is nich kompatibel."
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Continue at my own risk"
+msgstr "Op mien egen Riskanz wiedermaken"
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Select another font"
+msgstr "En anner Schriftoort utsöken"
+
+#: kreplacements/kreplacements.cpp:1134
+msgid "For more documentation, see the help-menu or the subdirectory doc."
+msgstr ""
+"Anner Dokmentatschoon gifft dat in't Hülp-Menü oder in't Kapitel Ünnerornern."
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "KDiff3-Usage"
+msgstr "KDiff3-Bruuk"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Ignore"
+msgstr "Övergahn"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Exit"
+msgstr "Utstiegen"
+
+#: diff.cpp:251
+msgid "Writing clipboard data to temp file failed."
+msgstr "Twischenaflaag-Daten laat sik nich as Temporeerdatei sekern."
+
+#: diff.cpp:255
+msgid "From Clipboard"
+msgstr "Ut Twischenaflaag"
+
+#: diff.cpp:471
+msgid "Expecting space after closing quotation mark."
+msgstr ""
+
+#: diff.cpp:474
+msgid "Not matching quotation marks."
+msgstr ""
+
+#: diff.cpp:496
+msgid "Unexpected quotation mark within argument."
+msgstr ""
+
+#: diff.cpp:503
+msgid "No program specified."
+msgstr "Keen Programm angeven"
+
+#: diff.cpp:605
+#, kde-format
+msgid ""
+"Preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The preprocessing command will be disabled now."
+msgstr ""
+"Dat Vörverarbeiden is villicht fehlslaan. Prööv dissen Befehl:\n"
+"\n"
+"  %1\n"
+"\n"
+"De Vörverarbeid-Befehl warrt nu utmaakt."
+
+#: diff.cpp:653
+#, kde-format
+msgid ""
+"The line-matching-preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The line-matching-preprocessing command will be disabled now."
+msgstr ""
+"De Vörverarbeiden för de Regenutrichten is villicht fehlslaan. Prööv dissen "
+"Befehl:\n"
+"\n"
+"  %1\n"
+"\n"
+"De Vörverarbeid-Befehl för de Regenutrichten warrt nu utmaakt."
+
+#: diff.cpp:1776 diff.cpp:1790
+msgid ""
+"Data loss error:\n"
+"If it is reproducible please contact the author.\n"
+msgstr ""
+"Daten sünd wegkamen:\n"
+"Lett sik dit wedderhalen, snack dor bitte den Autor op an.\n"
+
+#: diff.cpp:1778 diff.cpp:1792
+msgid "Severe Internal Error"
+msgstr "Swoor intern Fehler"
+
+#: directorymergewindow.cpp:136
+msgid "Mix of links and normal files."
+msgstr "Mischen vun Links un normaal Dateien"
+
+#: directorymergewindow.cpp:143
+msgid "Link: "
+msgstr "Link: "
+
+#: directorymergewindow.cpp:151
+msgid "Size. "
+msgstr "Grött: "
+
+#: directorymergewindow.cpp:164 directorymergewindow.cpp:174
+msgid "Date & Size: "
+msgstr "Datum un Grött: "
+
+#: directorymergewindow.cpp:184 directorymergewindow.cpp:190
+#, kde-format
+msgid "Creating temp copy of %1 failed."
+msgstr "Temporeerkopie vun \"%1\" lett sik nich opstellen"
+
+#: directorymergewindow.cpp:201 directorymergewindow.cpp:209
+#, kde-format
+msgid "Opening %1 failed."
+msgstr "\"%1\" lett sik nich opmaken"
+
+#: directorymergewindow.cpp:213
+msgid "Comparing file..."
+msgstr "Datei warrt vergleken..."
+
+#: directorymergewindow.cpp:223 directorymergewindow.cpp:229
+#, kde-format
+msgid "Error reading from %1"
+msgstr "\"%1\" lett sik nich lesen"
+
+#: directorymergewindow.cpp:358
+msgid "Name"
+msgstr "Naam"
+
+#: directorymergewindow.cpp:358
+msgid "Operation"
+msgstr "Akschoon"
+
+#: directorymergewindow.cpp:358
+msgid "Status"
+msgstr "Status"
+
+#: directorymergewindow.cpp:359
+msgid "Unsolved"
+msgstr "Nich oplööst"
+
+#: directorymergewindow.cpp:359
+msgid "Solved"
+msgstr "Oplööst"
+
+#: directorymergewindow.cpp:359
+msgid "Nonwhite"
+msgstr "Nichfree"
+
+#: directorymergewindow.cpp:359
+msgid "White"
+msgstr "Free"
+
+#: directorymergewindow.cpp:388
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort "
+"the merge and rescan the directory?"
+msgstr ""
+"Du büst jüst togang un föhrst Ornern tosamen. Wullt Du dat Tosamenföhren "
+"redig afbreken un den Orner nieg dörkieken?"
+
+#: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655
+#: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823
+msgid "Warning"
+msgstr "Wohrschoen"
+
+#: directorymergewindow.cpp:390 directorymergewindow.cpp:2965
+msgid "Rescan"
+msgstr "Nieg dörkieken"
+
+#: directorymergewindow.cpp:391 pdiff.cpp:1081
+msgid "Continue Merging"
+msgstr "Tosamenföhren wiedermaken"
+
+#: directorymergewindow.cpp:548
+msgid "Opening of directories failed:"
+msgstr "Opmaken vun Ornern fehlslaan:"
+
+#: directorymergewindow.cpp:551
+#, kde-format
+msgid "Dir A \"%1\" does not exist or is not a directory.\n"
+msgstr "Orner A \"%1\" gifft dat nich oder is keen Orner.\n"
+
+#: directorymergewindow.cpp:554
+#, kde-format
+msgid "Dir B \"%1\" does not exist or is not a directory.\n"
+msgstr "Orner B \"%1\" gifft dat nich oder is keen Orner.\n"
+
+#: directorymergewindow.cpp:557
+#, kde-format
+msgid "Dir C \"%1\" does not exist or is not a directory.\n"
+msgstr "Orner C \"%1\" gifft dat nich oder is keen Orner.\n"
+
+#: directorymergewindow.cpp:559
+msgid "Directory Open Error"
+msgstr "Fehler bi't Ornern-Opmaken"
+
+#: directorymergewindow.cpp:567
+msgid ""
+"The destination directory must not be the same as A or B when three "
+"directories are merged.\n"
+"Check again before continuing."
+msgstr ""
+"De Teelorner mutt bi't Tosamenföhren vun 3 Dateien nich de sülve wesen as A "
+"oder B.\n"
+"\n"
+"Prööv dat bitte, ehr Du wiedermaakst."
+
+#: directorymergewindow.cpp:569
+msgid "Parameter Warning"
+msgstr "Parameter-Wohrschoen"
+
+#: directorymergewindow.cpp:574
+msgid "Scanning directories..."
+msgstr "Ornern warrt dörkeken..."
+
+#: directorymergewindow.cpp:607
+msgid "Reading Directory A"
+msgstr "Orner A warrt leest"
+
+#: directorymergewindow.cpp:629
+msgid "Reading Directory B"
+msgstr "Orner B warrt leest"
+
+#: directorymergewindow.cpp:651
+msgid "Reading Directory C"
+msgstr "Orner C warrt leest"
+
+#: directorymergewindow.cpp:677
+msgid "Some subdirectories were not readable in"
+msgstr "En Reeg Ünnerornern lett sik nich lesen binnen"
+
+#: directorymergewindow.cpp:682
+msgid "Check the permissions of the subdirectories."
+msgstr "Prööv bitte de Verlöven vun de Ünnerornern."
+
+#: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737
+#: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233
+#: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328
+msgid "Ready."
+msgstr "Praat."
+
+#: directorymergewindow.cpp:735
+msgid "Directory Comparison Status"
+msgstr "Ornervergliek-Status"
+
+#: directorymergewindow.cpp:736
+msgid "Number of subdirectories:"
+msgstr "Tall vun Ünnerornern:"
+
+#: directorymergewindow.cpp:737
+msgid "Number of equal files:"
+msgstr "Tall vun liek Dateien:"
+
+#: directorymergewindow.cpp:738
+msgid "Number of different files:"
+msgstr "Tall vun verscheden Dateien:"
+
+#: directorymergewindow.cpp:741
+msgid "Number of manual merges:"
+msgstr "Tall vun Tosamenföhren vun Hand:"
+
+#: directorymergewindow.cpp:912
+msgid "This affects all merge operations."
+msgstr "Dit bedröppt all Tosamenföhr-Akschonen"
+
+#: directorymergewindow.cpp:913
+msgid "Changing All Merge Operations"
+msgstr "All Tosamenföhr-Akschonen ännern"
+
+#: directorymergewindow.cpp:1312
+msgid "Processing "
+msgstr "Bi to verarbeiden: "
+
+#: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742
+msgid "To do."
+msgstr "Opgaav"
+
+#: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996
+msgid "Copy A to B"
+msgstr "A op B koperen"
+
+#: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997
+msgid "Copy B to A"
+msgstr "B op A koperen"
+
+#: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998
+msgid "Delete A"
+msgstr "A wegdoon"
+
+#: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999
+msgid "Delete B"
+msgstr "B wegdoon"
+
+#: directorymergewindow.cpp:1814
+msgid "Delete A & B"
+msgstr "A un B wegdoon"
+
+#: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001
+msgid "Merge to A"
+msgstr "Mit A tosamenföhren"
+
+#: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002
+msgid "Merge to B"
+msgstr "Mit B tosamenföhren"
+
+#: directorymergewindow.cpp:1817
+msgid "Merge to A & B"
+msgstr "Mit A un B tosamenföhren"
+
+#: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993
+msgid "Delete (if exists)"
+msgstr "Wegdoon (wenn vörhannen)"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+#: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869
+msgid "Merge"
+msgstr "Tosamenföhren"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+msgid "Merge (manual)"
+msgstr "Tosamenföhren (vun Hand)"
+
+#: directorymergewindow.cpp:1824
+msgid "Error: Conflicting File Types"
+msgstr "Fehler: Inkompatibel Dateitypen"
+
+#: directorymergewindow.cpp:1825
+msgid "Error: Changed and Deleted"
+msgstr "Fehler: Ännert un wegdaan"
+
+#: directorymergewindow.cpp:1826
+msgid "Error: Dates are equal but files are not."
+msgstr "Fehler: De Daten sünd liek, man de Dateien nich."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906
+msgid "This operation is currently not possible."
+msgstr "Disse Akschoon is opstunns nich mööglich."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174
+msgid "Operation Not Possible"
+msgstr "Akschoon nich mööglich"
+
+#: directorymergewindow.cpp:1945
+msgid ""
+"This should never happen: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"If you know how to reproduce this, please contact the program author."
+msgstr ""
+"Dit schull nienich vörkamen.\n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"Lett sik dit wedderhalen, snack dor bitte den Programmschriever op an."
+
+#: directorymergewindow.cpp:1945
+msgid "Program Error"
+msgstr "Programmfehler"
+
+#: directorymergewindow.cpp:1956
+msgid "An error occurred while copying.\n"
+msgstr "Dat geev en Fehler bi't Koperen.\n"
+
+#: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025
+#: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105
+#: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123
+#: directorymergewindow.cpp:2374
+msgid "Error"
+msgstr "Fehler"
+
+#: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375
+msgid "Merge Error"
+msgstr "Tosamenföhr-Fehler"
+
+#: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380
+msgid "Error."
+msgstr "Fehler."
+
+#: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272
+#: directorymergewindow.cpp:2312
+msgid "Done."
+msgstr "Afslaten."
+
+#: directorymergewindow.cpp:1990
+msgid "Not saved."
+msgstr "Nich sekert"
+
+#: directorymergewindow.cpp:2025
+msgid "Unknown merge operation. (This must never happen!)"
+msgstr "Nich begäng Tosamenföhrakschoon (Dit mutt nienich vörkamen!)"
+
+#: directorymergewindow.cpp:2057
+msgid "Unknown merge operation."
+msgstr "Nich begäng Tosamenföhrakschoon"
+
+#: directorymergewindow.cpp:2072
+msgid ""
+"The merge is about to begin.\n"
+"\n"
+"Choose \"Do it\" if you have read the instructions and know what you are "
+"doing.\n"
+"Choosing \"Simulate it\" will tell you what would happen.\n"
+"\n"
+"Be aware that this program still has beta status and there is NO WARRANTY "
+"whatsoever! Make backups of your vital data!"
+msgstr ""
+"Dat Tosamenföhren kann nu loosgahn.\n"
+"\n"
+"Klick op \"Utföhren\", wenn Du de Anwiesen leest hest un weetst, wat Du "
+"deist.\n"
+"Klick op \"Simuleren\", wenn Du weten wullt, wat passeren dee.\n"
+"\n"
+"Beacht bitte, dit Programm hett jümmers noch Beta-Status un dat gifft keen "
+"Garantien, för gor nix. Maak Sekerheitkopien vun Dien wichtige Daten!"
+
+#: directorymergewindow.cpp:2077
+msgid "Starting Merge"
+msgstr "Tosamenföhren starten"
+
+#: directorymergewindow.cpp:2078
+msgid "Do It"
+msgstr "Doon"
+
+#: directorymergewindow.cpp:2079
+msgid "Simulate It"
+msgstr "Simuleren"
+
+#: directorymergewindow.cpp:2105
+msgid ""
+"The highlighted item has a different type in the different directories. "
+"Select what to do."
+msgstr ""
+"De rutheevte Indrag hett binnen de verscheden Ornern verscheden Typen. Wat "
+"wullt Du doon?"
+
+#: directorymergewindow.cpp:2114
+msgid ""
+"The modification dates of the file are equal but the files are not. Select "
+"what to do."
+msgstr ""
+"De Ännerdaten vun de Dateien sünd liek, man de Dateien sünd dat nich. Wat "
+"wullt Du doon?"
+
+#: directorymergewindow.cpp:2123
+msgid ""
+"The highlighted item was changed in one directory and deleted in the other. "
+"Select what to do."
+msgstr ""
+"De rutheevte Indrag wöör binnen een Orner ännert un ut den anner wegdaan. "
+"Wat wullt Du doon?"
+
+#: directorymergewindow.cpp:2174
+msgid ""
+"This operation is currently not possible because directory merge is "
+"currently running."
+msgstr ""
+"Disse Akschoon lett sik opstunns nich utföhren, dor löppt en Orner-"
+"Tosamenföhren."
+
+#: directorymergewindow.cpp:2234
+msgid ""
+"There was an error in the last step.\n"
+"Do you want to continue with the item that caused the error or do you want "
+"to skip this item?"
+msgstr ""
+"Bi den verleden Schritt hett dat en Fehler geven.\n"
+"Wullt Du mit dat Element wiedermaken, dat den Fehler utlööst hett, oder "
+"wullt Du dat utlaten?"
+
+#: directorymergewindow.cpp:2236
+msgid "Continue merge after an error"
+msgstr "Tosamenföhren na Fehler wiedermaken"
+
+#: directorymergewindow.cpp:2237
+msgid "Continue With Last Item"
+msgstr "Mit verleden Element wiedermaken"
+
+#: directorymergewindow.cpp:2238
+msgid "Skip Item"
+msgstr "Element utlaten"
+
+#: directorymergewindow.cpp:2272
+msgid "Skipped."
+msgstr "Utlaten."
+
+#: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493
+msgid "In progress..."
+msgstr "In de Maak..."
+
+#: directorymergewindow.cpp:2327
+msgid "Merge operation complete."
+msgstr "Tosamenföhren afslaten."
+
+#: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330
+msgid "Merge Complete"
+msgstr "Tosamenföhren afslaten"
+
+#: directorymergewindow.cpp:2340
+msgid ""
+"Simulated merge complete: Check if you agree with the proposed operations."
+msgstr ""
+"Dat simuleerte Tosamensmölten is afslaten Kiek, wat Du de vörslaan Akschonen "
+"utföhren wullt."
+
+#: directorymergewindow.cpp:2374
+msgid "An error occurred. Press OK to see detailed information.\n"
+msgstr ""
+"Dat hett en Fehler geven. Klick op OK, wenn Du de Enkelheiten ankieken "
+"wullt.\n"
+
+#: directorymergewindow.cpp:2406
+#, kde-format
+msgid "Error: While deleting %1: Creating backup failed."
+msgstr ""
+"Fehler bi't Wegdoon vun \"%1\": Opstellen vun Sekerheitkopie fehlslaan."
+
+#: directorymergewindow.cpp:2413
+#, kde-format
+msgid "delete directory recursively( %1 )"
+msgstr "Orner un Ünnerornern wegdoon (%1)"
+
+#: directorymergewindow.cpp:2415
+#, kde-format
+msgid "delete( %1 )"
+msgstr "wegdoon (%1)"
+
+#: directorymergewindow.cpp:2430
+msgid "Error: delete dir operation failed while trying to read the directory."
+msgstr "Fehler: Wegdoon vun Orner fehlslaan, bides he leest wöör."
+
+#: directorymergewindow.cpp:2449
+#, kde-format
+msgid "Error: rmdir( %1 ) operation failed."
+msgstr "Fehler: rmdir-Akschoon (%1) fehlslaan."
+
+#: directorymergewindow.cpp:2459
+msgid "Error: delete operation failed."
+msgstr "Fehler: Wegdoon fehlslaan."
+
+#: directorymergewindow.cpp:2485
+#, kde-format
+msgid "manual merge( %1, %2, %3 -> %4)"
+msgstr "Vun Hand tosamenföhren (%1, %2, %3 -> %4)"
+
+#: directorymergewindow.cpp:2488
+msgid ""
+"     Note: After a manual merge the user should continue by pressing F7."
+msgstr ""
+"     Beacht bitte: Na't Tosamenföhren vun Hand schull de Bruker mit F7 "
+"wiedermaken"
+
+#: directorymergewindow.cpp:2513
+#, kde-format
+msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed."
+msgstr ""
+"Fehler: Koperen (%1 -> %2) fehlslaan. Wegdoon vun vörhannen Teel fehlslaan."
+
+#: directorymergewindow.cpp:2522
+#, kde-format
+msgid "copyLink( %1 -> %2 )"
+msgstr "Link koperen (%1 -> %2)"
+
+#: directorymergewindow.cpp:2533
+msgid "Error: copyLink failed: Remote links are not yet supported."
+msgstr ""
+"Fehler: Koperen vun Link fehlslaan. Feern links warrt noch nich ünnerstütt."
+
+#: directorymergewindow.cpp:2539
+msgid "Error: copyLink failed."
+msgstr "Fehler: Koperen vun Link fehlslaan."
+
+#: directorymergewindow.cpp:2564
+#, kde-format
+msgid "copy( %1 -> %2 )"
+msgstr "Koperen (%1 -> %2)"
+
+#: directorymergewindow.cpp:2590
+#, kde-format
+msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination."
+msgstr "Fehler bi't Ümnömen (%1 -> %2): Vörhannen Teel lett sik nich wegmaken."
+
+#: directorymergewindow.cpp:2596
+#, kde-format
+msgid "rename( %1 -> %2 )"
+msgstr "Ümnömen (%1 -> %2)"
+
+#: directorymergewindow.cpp:2605
+msgid "Error: Rename failed."
+msgstr "Fehler: Ümnömen fehlslaan."
+
+#: directorymergewindow.cpp:2623
+#, kde-format
+msgid "Error during makeDir of %1. Cannot delete existing file."
+msgstr ""
+"Fehler bi't Opstellen vun Orner \"%1\". Vörhannen Datei lett sik nich "
+"wegdoon."
+
+#: directorymergewindow.cpp:2639
+#, kde-format
+msgid "makeDir( %1 )"
+msgstr "Orner opstellen (%1)"
+
+#: directorymergewindow.cpp:2649
+msgid "Error while creating directory."
+msgstr "Fehler bi't Opstellen vun Orner."
+
+#: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784
+msgid "Dest"
+msgstr "Teel"
+
+#: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709
+msgid "Dir"
+msgstr "Orner"
+
+#: directorymergewindow.cpp:2678
+msgid "Type"
+msgstr "Typ"
+
+#: directorymergewindow.cpp:2678
+msgid "Size"
+msgstr "Grött"
+
+#: directorymergewindow.cpp:2679
+msgid "Attr"
+msgstr "Attr"
+
+#: directorymergewindow.cpp:2679
+msgid "Last Modification"
+msgstr "Verleden Ännern"
+
+#: directorymergewindow.cpp:2679
+msgid "Link-Destination"
+msgstr "Link-Teel"
+
+#: directorymergewindow.cpp:2709 difftextwindow.cpp:401
+msgid "File"
+msgstr "Datei"
+
+#: directorymergewindow.cpp:2726
+msgid "not available"
+msgstr "nich verföögbor"
+
+#: directorymergewindow.cpp:2746
+msgid "A (Dest): "
+msgstr "A (Teel): "
+
+#: directorymergewindow.cpp:2749
+msgid "A (Base): "
+msgstr "B (Grundl.): "
+
+#: directorymergewindow.cpp:2755
+msgid "B (Dest): "
+msgstr "B (Teel): "
+
+#: directorymergewindow.cpp:2763
+msgid "C (Dest): "
+msgstr "C (Teel): "
+
+#: directorymergewindow.cpp:2769
+msgid "Dest: "
+msgstr "Teel: "
+
+#: directorymergewindow.cpp:2836
+msgid "Save Directory Merge State As..."
+msgstr "Orner-Tosamenföhrstatus sekern as..."
+
+#: directorymergewindow.cpp:2959
+msgid "Start/Continue Directory Merge"
+msgstr "Orner-Tosamenföhren starten/wiedermaken"
+
+#: directorymergewindow.cpp:2960
+msgid "Run Operation for Current Item"
+msgstr "Akschoon mit aktuell Element utföhren"
+
+#: directorymergewindow.cpp:2961
+msgid "Compare Selected File"
+msgstr "Utsöcht Datei verglieken"
+
+#: directorymergewindow.cpp:2962
+msgid "Merge Current File"
+msgstr "Aktuell Datei tosamenföhren"
+
+#: directorymergewindow.cpp:2962
+msgid ""
+"Merge\n"
+"File"
+msgstr ""
+"Datei\n"
+"tosamenföhren"
+
+#: directorymergewindow.cpp:2963
+msgid "Fold All Subdirs"
+msgstr "All Ünnerornern infoolden"
+
+#: directorymergewindow.cpp:2964
+msgid "Unfold All Subdirs"
+msgstr "All Ünnerornern utfoolden"
+
+#: directorymergewindow.cpp:2968
+msgid "Choose A for All Items"
+msgstr "A bi all Indrääg utsöken"
+
+#: directorymergewindow.cpp:2969
+msgid "Choose B for All Items"
+msgstr "B bi all Indrääg utsöken"
+
+#: directorymergewindow.cpp:2970
+msgid "Choose C for All Items"
+msgstr "C bi all Indrääg utsöken"
+
+#: directorymergewindow.cpp:2971
+msgid "Auto-Choose Operation for All Items"
+msgstr "Akschoon bi all Indrääg automaatsch utsöken"
+
+#: directorymergewindow.cpp:2972
+msgid "No Operation for All Items"
+msgstr "Keen Akschoon för all Indrääg"
+
+#: directorymergewindow.cpp:2977
+msgid "Show Identical Files"
+msgstr "Liek Dateien wiesen"
+
+#: directorymergewindow.cpp:2977
+msgid ""
+"Identical\n"
+"Files"
+msgstr ""
+"Liek\n"
+"Dateien"
+
+#: directorymergewindow.cpp:2978
+msgid "Show Different Files"
+msgstr "Verscheden Dateien wiesen"
+
+#: directorymergewindow.cpp:2979
+msgid "Show Files only in A"
+msgstr "Dateien bloots in A wiesen"
+
+#: directorymergewindow.cpp:2979
+msgid ""
+"Files\n"
+"only in A"
+msgstr ""
+"Dateien\n"
+"bloots in A"
+
+#: directorymergewindow.cpp:2980
+msgid "Show Files only in B"
+msgstr "Dateien bloots in B wiesen"
+
+#: directorymergewindow.cpp:2980
+msgid ""
+"Files\n"
+"only in B"
+msgstr ""
+"Dateien\n"
+"bloots in B"
+
+#: directorymergewindow.cpp:2981
+msgid "Show Files only in C"
+msgstr "Dateien bloots in C wiesen"
+
+#: directorymergewindow.cpp:2981
+msgid ""
+"Files\n"
+"only in C"
+msgstr ""
+"Dateien\n"
+"bloots in C"
+
+#: directorymergewindow.cpp:2985
+msgid "Compare Explicitly Selected Files"
+msgstr "Utsöcht Dateien verglieken"
+
+#: directorymergewindow.cpp:2986
+msgid "Merge Explicitly Selected Files"
+msgstr "Utsöcht Dateien tosamenföhren"
+
+#: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995
+msgid "Do Nothing"
+msgstr "Nix doon"
+
+#: directorymergewindow.cpp:2989
+msgid "A"
+msgstr "A"
+
+#: directorymergewindow.cpp:2990
+msgid "B"
+msgstr "B"
+
+#: directorymergewindow.cpp:2991
+msgid "C"
+msgstr "C"
+
+#: directorymergewindow.cpp:3000
+msgid "Delete A && B"
+msgstr "A un B wegdoon"
+
+#: directorymergewindow.cpp:3003
+msgid "Merge to A && B"
+msgstr "Na A un B tosamenföhren"
+
+#: main.cpp:74 main.cpp:76
+msgid "Ignored. (User defined.)"
+msgstr "Övergahn. (Vun'n Bruker fastleggt.)"
+
+#: main.cpp:162
+msgid "kdiff3"
+msgstr "kdiff3"
+
+#: main.cpp:164
+msgid "Tool for Comparison and Merge of Files and Directories"
+msgstr "Tosamenföhr-Warktüüch för Dateien un Ornern"
+
+#: main.cpp:165
+#, fuzzy
+#| msgid "(c) 2002-2009 Joachim Eibl"
+msgid "(c) 2002-2011 Joachim Eibl"
+msgstr "(c) 2002-2009, Joachim Eibl"
+
+#: main.cpp:172 kdiff3_part.cpp:303
+msgid "Joachim Eibl"
+msgstr "Joachim Eibl"
+
+#: main.cpp:173
+msgid "Eike Sauer"
+msgstr "Eike Sauer"
+
+#: main.cpp:173
+msgid "Bugfixes, Debian package maintainer"
+msgstr "Fehlerrichten, Pleger för de Debian-Paketen"
+
+#: main.cpp:174
+msgid "Sebastien Fricker"
+msgstr "Sebastien Fricker"
+
+#: main.cpp:174
+msgid "Windows installer"
+msgstr "Windows-Installeerprogramm"
+
+#: main.cpp:175
+msgid "Stephan Binner"
+msgstr "Stephan Binner"
+
+#: main.cpp:175
+msgid "i18n-help"
+msgstr "i18n-Hülp"
+
+#: main.cpp:176
+msgid "Stefan Partheymueller"
+msgstr "Stefan Partheymueller"
+
+#: main.cpp:176
+msgid "Clipboard-patch"
+msgstr "Twischenaflaag-Kodeplaster"
+
+#: main.cpp:177
+msgid "David Faure"
+msgstr "David Faure"
+
+#: main.cpp:177
+msgid "KIO-Help"
+msgstr "KIO-Hülp"
+
+#: main.cpp:178
+msgid "Bernd Gehrmann"
+msgstr "Bernd Gehrmann"
+
+#: main.cpp:178
+msgid "Class CvsIgnoreList from Cervisia"
+msgstr "Klass \"CvsIgnoreList\" ut \"Cervisia\""
+
+#: main.cpp:179
+msgid "Andre Woebbeking"
+msgstr "Andre Woebbeking"
+
+#: main.cpp:179
+msgid "Class StringMatcher"
+msgstr "Klass \"StringMatcher\""
+
+#: main.cpp:180
+msgid "Michael Denio"
+msgstr "Michael Denio"
+
+#: main.cpp:180
+msgid "Directory Equality-Coloring patch"
+msgstr "Kodeplaster för Orner-Liekheitklören"
+
+#: main.cpp:181
+msgid "Manfred Koehler"
+msgstr "Manfred Koehler"
+
+#: main.cpp:181
+msgid "Fix for slow startup on Windows"
+msgstr "Richten vun langsam Start op Windows"
+
+#: main.cpp:182
+msgid "Sergey Zorin"
+msgstr "Sergey Zorin"
+
+#: main.cpp:182
+msgid "Diff Ext for Windows"
+msgstr "Extern Diff för Windows"
+
+#: main.cpp:183
+msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+
+#: main.cpp:183
+msgid "GNU-Diffutils"
+msgstr "GNU-Diffutils"
+
+#: main.cpp:184
+msgid "Tino Boellsterling, Timothy Mee"
+msgstr "Tino Boellsterling, Timothy Mee"
+
+#: main.cpp:184
+msgid "Intensive test, use and feedback"
+msgstr "Deegt Proberen, Bruuk un Resonanz"
+
+#: main.cpp:185
+msgid "Michael Schmidt"
+msgstr "Michael Schmidt"
+
+#: main.cpp:185
+msgid "Mac support"
+msgstr "Mac-Ünnerstütten"
+
+#: main.cpp:186
+msgid "Valentin Rusu"
+msgstr "Valentin Rusu"
+
+#: main.cpp:186 main.cpp:187
+msgid "KDE4 porting"
+msgstr "Porteren na KDE4"
+
+#: main.cpp:187
+msgid "Albert Astals Cid"
+msgstr "Albert Astals Cid"
+
+#: main.cpp:188
+msgid "Silvan Scherrer"
+msgstr ""
+
+#: main.cpp:188
+msgid "OS2 port"
+msgstr ""
+
+#: main.cpp:190
+msgid "+ Many thanks to those who reported bugs and contributed ideas!"
+msgstr ""
+"Un velen Dank to all de Lüüd, de Fehlerberichten schreven un Vörslääg maakt "
+"hebbt!"
+
+#: main.cpp:196
+msgid "Merge the input."
+msgstr "De Ingaav tosamenföhren"
+
+#: main.cpp:197
+msgid "Explicit base file. For compatibility with certain tools."
+msgstr "Utspraken Basisdatei. För de Kompatibiliteet mit anner Warktüüch."
+
+#: main.cpp:198
+msgid "Output file. Implies -m. E.g.: -o newfile.txt"
+msgstr "Utgaavdatei. Slutt \"-m\" in. Bispill: -o niegdatei.txt"
+
+#: main.cpp:199
+msgid "Output file, again. (For compatibility with certain tools.)"
+msgstr "Utgaavdatei, nochmaal. (För de Kompatibiliteet  mit anner Warktüüch.)"
+
+#: main.cpp:200
+msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)"
+msgstr ""
+"Keen Böversiet, wenn sik all Konflikten automaatsch oplösen laat (\"-o "
+"Utgaavdatei\" nödig)"
+
+#: main.cpp:201
+msgid "Don't solve conflicts automatically. (For compatibility...)"
+msgstr "Konflikt nich automaatsch oplösen. (För de Kompatibiliteet...)"
+
+#: main.cpp:202
+msgid "Visible name replacement for input file 1 (base)."
+msgstr "Sichtbor Tuuschnaam för Ingaavdatei 1 (Grundlaag)."
+
+#: main.cpp:203
+msgid "Visible name replacement for input file 2."
+msgstr "Sichtbor Tuuschnaam för Ingaavdatei 2."
+
+#: main.cpp:204
+msgid "Visible name replacement for input file 3."
+msgstr "Sichtbor Tuuschnaam för Ingaavdatei 3."
+
+#: main.cpp:205
+msgid "Alternative visible name replacement. Supply this once for every input."
+msgstr "Anner sichtbor Tuuschnaam. Eenmaal för elkeen Ingaavdatei angeven."
+
+#: main.cpp:206
+msgid ""
+"Override a config setting. Use once for every setting. E.g.: --cs "
+"\"AutoAdvance=1\""
+msgstr ""
+"En Instellen överschrieven. Eenmaal för elkeen Instellen bruken, a.B.: »--cs "
+"\"AutoAdvance=1\"«"
+
+#: main.cpp:207
+msgid "Show list of config settings and current values."
+msgstr "List vun Instellenoptschonen un Weerten wiesen"
+
+#: main.cpp:208
+msgid "Use a different config file."
+msgstr "En anner Instellendatei bruken"
+
+#: main.cpp:211
+msgid "file1 to open (base, if not specified via --base)"
+msgstr ""
+"Eerste Datei, de Du opmaken wullt (Grundlaag, wenn nich mit \"--base\" "
+"angeven)"
+
+#: main.cpp:212
+msgid "file2 to open"
+msgstr "Twete Datei, de Du opmaken wullt"
+
+#: main.cpp:213
+msgid "file3 to open"
+msgstr "Drüdde Datei, de Du opmaken wullt"
+
+#: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976
+#: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002
+#: mergeresultwindow.cpp:1014
+#, kde-format
+msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)"
+msgstr ""
+"Tall vun överbleven nich oplööst Konflikten: %1 (dor sünd %2 vun Freeruum-"
+"Konflikten)"
+
+#: mergeresultwindow.cpp:303
+msgid ""
+"The output has been modified.\n"
+"If you continue your changes will be lost."
+msgstr ""
+"Du hest de Utgaav ännert.\n"
+"Maakst Du wieder, kaamt Dien Ännern weg."
+
+#: mergeresultwindow.cpp:834 pdiff.cpp:532
+msgid "All input files are binary equal."
+msgstr "All Ingaavdateien sünd bineer liek."
+
+#: mergeresultwindow.cpp:836
+msgid "All input files contain the same text."
+msgstr "All Ingaavdateien bargt den sülven Text."
+
+#: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840
+#: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540
+#, kde-format
+msgid "Files %1 and %2 are binary equal.\n"
+msgstr "De Dateien %1 un %2 sünd bineer liek.\n"
+
+#: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841
+#: mergeresultwindow.cpp:843
+#, kde-format
+msgid "Files %1 and %2 have equal text.\n"
+msgstr "De Dateien %1 un %2 bargt den sülven Text.\n"
+
+#: mergeresultwindow.cpp:849
+msgid "Total number of conflicts: "
+msgstr "Heel Tall vun Konflikt: "
+
+#: mergeresultwindow.cpp:850
+msgid ""
+"\n"
+"Nr of automatically solved conflicts: "
+msgstr ""
+"\n"
+"Tall vun automaatsch oplööst Konflikten: "
+
+#: mergeresultwindow.cpp:851
+msgid ""
+"\n"
+"Nr of unsolved conflicts: "
+msgstr ""
+"\n"
+"Tall vun nich oplööst Konflikten: "
+
+#: mergeresultwindow.cpp:853
+msgid "Conflicts"
+msgstr "Konflikten"
+
+#: mergeresultwindow.cpp:1728
+msgid "<No src line>"
+msgstr "<Keen Bornreeg>"
+
+#: mergeresultwindow.cpp:1736
+msgid "<Merge Conflict (Whitespace only)>"
+msgstr "<Tosamenföhrkonflikt (Freeruum)>"
+
+#: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517
+msgid "<Merge Conflict>"
+msgstr "<Tosamenförkonflikt>"
+
+#: mergeresultwindow.cpp:2725
+msgid ""
+"Not all conflicts are solved yet.\n"
+"File not saved.\n"
+msgstr ""
+"Noch sünd nich all Konflikten oplööst.\n"
+"Datei nich sekert.\n"
+
+#: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736
+msgid "Conflicts Left"
+msgstr "Konflikten na"
+
+#: mergeresultwindow.cpp:2734
+msgid ""
+"There is a line end style conflict. Please choose the line end style "
+"manually.\n"
+"File not saved.\n"
+msgstr ""
+"Dat giffft en Konflikt mit de Reegennen. Söök bitte den Reegenn-Stil vun "
+"Hand ut.\n"
+"Datei nich sekert.\n"
+
+#: mergeresultwindow.cpp:2748
+msgid ""
+"\n"
+"\n"
+"Creating backup failed. File not saved."
+msgstr ""
+"\n"
+"\n"
+"Sekerheitkopie lett sik nich opstellen. Datei nich sekert."
+
+#: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792
+msgid "File Save Error"
+msgstr "Fehler bi't Sekern"
+
+#: mergeresultwindow.cpp:2792
+msgid "Error while writing."
+msgstr "Fehler bi't Schrieven"
+
+#: mergeresultwindow.cpp:3122
+msgid "Output"
+msgstr "Utgaav"
+
+#: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314
+msgid "[Modified]"
+msgstr "[Ännert]"
+
+#: mergeresultwindow.cpp:3141
+msgid "Encoding for saving"
+msgstr "Koderen bi't Sekern"
+
+#: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737
+#: optiondialog.cpp:762
+msgid "Line end style:"
+msgstr "Reegenn-Stil:"
+
+#: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767
+msgid "Unix"
+msgstr "Unix"
+
+#: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737
+msgid "DOS"
+msgstr "DOS"
+
+#: mergeresultwindow.cpp:3229
+msgid "Conflict"
+msgstr "Konflikt"
+
+#: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263
+#: mergeresultwindow.cpp:3265
+msgid "Codec from"
+msgstr "Koderen vun"
+
+#: kdiff3_part.cpp:157 kdiff3_part.cpp:234
+msgid "Couldn't find files for comparison."
+msgstr "Dateien för't Verglieken laat sik nich finnen."
+
+#: kdiff3_part.cpp:302
+msgid "KDiff3Part"
+msgstr "KDiff3Part"
+
+#: fileaccess.cpp:612
+msgid ""
+"While trying to make a backup, deleting an older backup failed. \n"
+"Filename: "
+msgstr ""
+"Bi't Opstellen vun en Sekerheitkopie lett sik en öller Sekerheitkopie nich "
+"wegdoon.\n"
+"Dateinaam: "
+
+#: fileaccess.cpp:619
+msgid ""
+"While trying to make a backup, renaming failed. \n"
+"Filenames: "
+msgstr ""
+"Bi't Opstellen vun en Sekerheitkopie lett sik en Datei nich ümnömen.\n"
+"Dateinaams: "
+
+#: fileaccess.cpp:643
+#, kde-format
+msgid "Getting file status: %1"
+msgstr "Dateistatus warrt leest: %1"
+
+#: fileaccess.cpp:686
+#, kde-format
+msgid "Reading file: %1"
+msgstr "Datei warrt leest: %1"
+
+#: fileaccess.cpp:723
+#, kde-format
+msgid "Writing file: %1"
+msgstr "Datei warrt schreven: %1"
+
+#: fileaccess.cpp:751
+msgid "Out of memory"
+msgstr "Nich noog Spieker"
+
+#: fileaccess.cpp:786
+#, kde-format
+msgid "Making directory: %1"
+msgstr "Orner warrt opstellt: %1"
+
+#: fileaccess.cpp:806
+#, kde-format
+msgid "Removing directory: %1"
+msgstr "Orner warrt wegmaakt: %1"
+
+#: fileaccess.cpp:821
+#, kde-format
+msgid "Removing file: %1"
+msgstr "Datei warrt wegmaakt: %1"
+
+#: fileaccess.cpp:837
+#, kde-format
+msgid "Creating symbolic link: %1 -> %2"
+msgstr "Symboolsch Link warrt opstellt: %1 -> %2"
+
+#: fileaccess.cpp:864
+#, kde-format
+msgid "Renaming file: %1 -> %2"
+msgstr "Datei warrt ümnöömt: %1 -> %2"
+
+#: fileaccess.cpp:897
+#, kde-format
+msgid "Copying file: %1 -> %2"
+msgstr "Datei warrt kopeert: %1 -> %2"
+
+#: fileaccess.cpp:911
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for reading failed. Filename: "
+"%1"
+msgstr "Fehler bi't Koperen: Datei lett sik nich lesen. Dateinaam: %1"
+
+#: fileaccess.cpp:917
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for writing failed. Filename: "
+"%1"
+msgstr "Fehler bi't Koperen: Datei lett sik nich schrieven. Dateinaam: %1"
+
+#: fileaccess.cpp:932
+#, kde-format
+msgid "Error during file copy operation: Reading failed. Filename: %1"
+msgstr "Fehler bi't Koperen: Lesen fehlslaan. Dateinaam: %1"
+
+#: fileaccess.cpp:941
+#, kde-format
+msgid "Error during file copy operation: Writing failed. Filename: %1"
+msgstr "Fehler bi't Koperen: Schrieven fehlslaan. Dateinaam: %1"
+
+#: fileaccess.cpp:1231
+msgid "Reading directory: "
+msgstr "Orner warrt leest: "
+
+#: fileaccess.cpp:1355
+#, kde-format
+msgid "Listing directory: %1"
+msgstr "Orner warrt oplist: %1"
+
+#: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396
+msgid "&Cancel"
+msgstr "&Afbreken"
+
+#: difftextwindow.cpp:403
+msgid "Line"
+msgstr "Reeg"
+
+#: difftextwindow.cpp:405
+msgid "Line not available"
+msgstr "Reeg nich verföögbor"
+
+#: difftextwindow.cpp:1703 difftextwindow.cpp:1736
+msgid "Encoding:"
+msgstr "Koderen:"
+
+#: difftextwindow.cpp:1759 kdiff3.cpp:831
+msgid "Top line"
+msgstr "Böverst Reeg"
+
+#: difftextwindow.cpp:1769
+msgid "End"
+msgstr "Enn"
+
+#: kdiff3.cpp:169
+msgid "Current Configuration:"
+msgstr "Aktuell Instellen:"
+
+#: kdiff3.cpp:174
+msgid "Config Option Error:"
+msgstr "Fehler binnen de Instellen:"
+
+#: kdiff3.cpp:219
+msgid "Option --auto used, but no output file specified."
+msgstr "Optschoon \"--auto\" bruukt, man keen Utgaavdatei angeven."
+
+#: kdiff3.cpp:369
+msgid "Option --auto ignored for directory comparison."
+msgstr "Optschoon \"--auto\" warrt bi't Verglieken vun Ornern övergahn."
+
+#: kdiff3.cpp:405
+msgid "Saving failed."
+msgstr "Sekern fehlslaan."
+
+#: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214
+msgid "Opening of these files failed:"
+msgstr "Disse Dateien laat sik nich opmaken:"
+
+#: kdiff3.cpp:449
+msgid "File Open Error"
+msgstr "Fehler bi't Opmaken"
+
+#: kdiff3.cpp:477
+msgid "Opens documents for comparison..."
+msgstr "Dokmenten warrt för't Verglieken opmaakt..."
+
+#: kdiff3.cpp:479
+msgid "Reload"
+msgstr "Nieg laden"
+
+#: kdiff3.cpp:482
+msgid "Saves the merge result. All conflicts must be solved!"
+msgstr ""
+"Sekert dat Resultaat vun't Tosamenföhren. All Konflikten mööt oplööst wesen!"
+
+#: kdiff3.cpp:484
+msgid "Saves the current document as..."
+msgstr "Sekert dat aktuelle Dokment as..."
+
+#: kdiff3.cpp:487
+msgid "Print the differences"
+msgstr "Verscheel drucken"
+
+#: kdiff3.cpp:490
+msgid "Quits the application"
+msgstr "Maakt dat Programm ut"
+
+#: kdiff3.cpp:492
+msgid "Cuts the selected section and puts it to the clipboard"
+msgstr "Knippt dat utsöchte Rebeet un föögt dat na de Twischenaflaag in"
+
+#: kdiff3.cpp:494
+msgid "Copies the selected section to the clipboard"
+msgstr "Kopeert den utsöchten Afsnitt na de Twischenaflaag"
+
+#: kdiff3.cpp:496
+msgid "Pastes the clipboard contents to current position"
+msgstr "Föögt de Twischenaflaag ehr Inholt bi de aktuelle Steed in."
+
+#: kdiff3.cpp:498
+msgid "Select everything in current window"
+msgstr "Allens binnen dat aktuelle Finster utsöken"
+
+#: kdiff3.cpp:500
+msgid "Search for a string"
+msgstr "Na en Tekenkeed söken"
+
+#: kdiff3.cpp:502
+msgid "Search again for the string"
+msgstr "Nochmaal na en Tekenkeed söken"
+
+#: kdiff3.cpp:507
+msgid "Enables/disables the statusbar"
+msgstr "Maakt den Statusbalken an oder ut"
+
+#: kdiff3.cpp:511
+msgid "Configure KDiff3..."
+msgstr "KDiff3 instellen..."
+
+#: kdiff3.cpp:532
+msgid "Go to Current Delta"
+msgstr "Na aktuellen Verscheel gahn"
+
+#: kdiff3.cpp:532
+msgid ""
+"Current\n"
+"Delta"
+msgstr ""
+"Aktuell\n"
+"Verscheel"
+
+#: kdiff3.cpp:534
+msgid "Go to First Delta"
+msgstr "Na eersten Verscheel gahn"
+
+#: kdiff3.cpp:534
+msgid ""
+"First\n"
+"Delta"
+msgstr ""
+"Eerst\n"
+"Verscheel"
+
+#: kdiff3.cpp:536
+msgid "Go to Last Delta"
+msgstr "Na lesten Verscheel gahn"
+
+#: kdiff3.cpp:536
+msgid ""
+"Last\n"
+"Delta"
+msgstr ""
+"Lest\n"
+"Verscheel"
+
+#: kdiff3.cpp:538
+msgid "(Skips white space differences when \"Show White Space\" is disabled.)"
+msgstr "(Övergeiht Freeruum-Verschelen, wenn \"Freerüüm wiesen\" utmaakt is.)"
+
+#: kdiff3.cpp:539
+msgid ""
+"(Does not skip white space differences even when \"Show White Space\" is "
+"disabled.)"
+msgstr ""
+"(Övergeiht Freeruum-Verschelen nich, ok wenn \"Freerüüm wiesen\" utmaakt is.)"
+
+#: kdiff3.cpp:540
+msgid "Go to Previous Delta"
+msgstr "Na verleden Verscheel gahn"
+
+#: kdiff3.cpp:540
+msgid ""
+"Prev\n"
+"Delta"
+msgstr ""
+"Verleden\n"
+"Verscheel"
+
+#: kdiff3.cpp:542
+msgid "Go to Next Delta"
+msgstr "Na nakamen Verscheel gahn"
+
+#: kdiff3.cpp:542
+msgid ""
+"Next\n"
+"Delta"
+msgstr ""
+"Nakamen\n"
+"Verscheel"
+
+#: kdiff3.cpp:544
+msgid "Go to Previous Conflict"
+msgstr "Na verleden Konflikt gahn"
+
+#: kdiff3.cpp:544
+msgid ""
+"Prev\n"
+"Conflict"
+msgstr ""
+"Verleden\n"
+"Konflikt"
+
+#: kdiff3.cpp:546
+msgid "Go to Next Conflict"
+msgstr "Na nakamen Konflikt gahn"
+
+#: kdiff3.cpp:546
+msgid ""
+"Next\n"
+"Conflict"
+msgstr ""
+"Nakamen\n"
+"Konflikt"
+
+#: kdiff3.cpp:548
+msgid "Go to Previous Unsolved Conflict"
+msgstr "Na verleden Konflikt gahn, de nich oplööst is"
+
+#: kdiff3.cpp:548
+msgid ""
+"Prev\n"
+"Unsolved"
+msgstr ""
+"Verleden\n"
+"n. oplööst"
+
+#: kdiff3.cpp:550
+msgid "Go to Next Unsolved Conflict"
+msgstr "Na nakamen Konflikt gahn, de nich oplööst is"
+
+#: kdiff3.cpp:550
+msgid ""
+"Next\n"
+"Unsolved"
+msgstr ""
+"Nakamen\n"
+"n. oplööst"
+
+#: kdiff3.cpp:552
+msgid "Select Line(s) From A"
+msgstr "Reeg ut A bruken"
+
+#: kdiff3.cpp:552
+msgid ""
+"Choose\n"
+"A"
+msgstr ""
+"A\n"
+"bruken"
+
+#: kdiff3.cpp:553
+msgid "Select Line(s) From B"
+msgstr "Reeg ut B bruken"
+
+#: kdiff3.cpp:553
+msgid ""
+"Choose\n"
+"B"
+msgstr ""
+"B\n"
+"bruken"
+
+#: kdiff3.cpp:554
+msgid "Select Line(s) From C"
+msgstr "Reeg ut C bruken"
+
+#: kdiff3.cpp:554
+msgid ""
+"Choose\n"
+"C"
+msgstr ""
+"C\n"
+"bruken"
+
+#: kdiff3.cpp:555
+msgid "Automatically Go to Next Unsolved Conflict After Source Selection"
+msgstr "Na Bornköör automaatsch na nakamen nich oplöösten Konflikt gahn"
+
+#: kdiff3.cpp:555
+msgid ""
+"Auto\n"
+"Next"
+msgstr ""
+"Autom.\n"
+"Nakamen"
+
+#: kdiff3.cpp:557
+msgid "Show Space && Tabulator Characters for Differences"
+msgstr "Free- un Tab-Tekens as Verscheel wiesen"
+
+#: kdiff3.cpp:557
+msgid ""
+"White\n"
+"Characters"
+msgstr "Freerüüm"
+
+#: kdiff3.cpp:558
+msgid "Show White Space"
+msgstr "Freerüüm wiesen"
+
+#: kdiff3.cpp:558
+msgid ""
+"White\n"
+"Deltas"
+msgstr ""
+"Freeruum-\n"
+"Verschelen"
+
+#: kdiff3.cpp:560
+msgid "Show Line Numbers"
+msgstr "Reegnummern wiesen"
+
+#: kdiff3.cpp:560
+msgid ""
+"Line\n"
+"Numbers"
+msgstr ""
+"Reeg-\n"
+"nummern"
+
+#: kdiff3.cpp:561
+msgid "Choose A Everywhere"
+msgstr "Jümmers A bruken"
+
+#: kdiff3.cpp:562
+msgid "Choose B Everywhere"
+msgstr "Jümmers B bruken"
+
+#: kdiff3.cpp:563
+msgid "Choose C Everywhere"
+msgstr "Jümmers C bruken"
+
+#: kdiff3.cpp:564
+msgid "Choose A for All Unsolved Conflicts"
+msgstr "A för all nich oplööst Konflikten bruken"
+
+#: kdiff3.cpp:565
+msgid "Choose B for All Unsolved Conflicts"
+msgstr "B för all nich oplööst Konflikten bruken"
+
+#: kdiff3.cpp:566
+msgid "Choose C for All Unsolved Conflicts"
+msgstr "C för all nich oplööst Konflikten bruken"
+
+#: kdiff3.cpp:567
+msgid "Choose A for All Unsolved Whitespace Conflicts"
+msgstr "A för all nich oplööst Freeruum-Konflikten bruken"
+
+#: kdiff3.cpp:568
+msgid "Choose B for All Unsolved Whitespace Conflicts"
+msgstr "B för all nich oplööst Freeruum-Konflikten bruken"
+
+#: kdiff3.cpp:569
+msgid "Choose C for All Unsolved Whitespace Conflicts"
+msgstr "C för all nich oplööst Freeruum-Konflikten bruken"
+
+#: kdiff3.cpp:570
+msgid "Automatically Solve Simple Conflicts"
+msgstr "Eenfach Konflikten automaatsch oplösen"
+
+#: kdiff3.cpp:571
+msgid "Set Deltas to Conflicts"
+msgstr "All Verschelen as Konflikten markeren"
+
+#: kdiff3.cpp:572
+msgid "Run Regular Expression Auto Merge"
+msgstr "Automaatsch Tosamenföhren mit reguleer Utdruck"
+
+#: kdiff3.cpp:573
+msgid "Automatically Solve History Conflicts"
+msgstr "Vörgeschicht-Konflikten automaatsch oplösen"
+
+#: kdiff3.cpp:574
+msgid "Split Diff At Selection"
+msgstr "Verscheel bi Köör delen"
+
+#: kdiff3.cpp:575
+msgid "Join Selected Diffs"
+msgstr "Utsöcht Verschelen tosamenstellen"
+
+#: kdiff3.cpp:577
+msgid "Show Window A"
+msgstr "Finster A wiesen"
+
+#: kdiff3.cpp:578
+msgid "Show Window B"
+msgstr "Finster B wiesen"
+
+#: kdiff3.cpp:579
+msgid "Show Window C"
+msgstr "Finster C wiesen"
+
+#: kdiff3.cpp:580 kdiff3.cpp:591
+msgid "Focus Next Window"
+msgstr "Nakamen Finster anmaken"
+
+#: kdiff3.cpp:582
+msgid "Normal Overview"
+msgstr "Normaal Översicht"
+
+#: kdiff3.cpp:583
+msgid "A vs. B Overview"
+msgstr "A-B-Översicht"
+
+#: kdiff3.cpp:584
+msgid "A vs. C Overview"
+msgstr "A-C-Översicht"
+
+#: kdiff3.cpp:585
+msgid "B vs. C Overview"
+msgstr "B-C-Översicht"
+
+#: kdiff3.cpp:586
+msgid "Word Wrap Diff Windows"
+msgstr "Regen ümbreken"
+
+#: kdiff3.cpp:587
+msgid "Add Manual Diff Alignment"
+msgstr "Verscheel-Utrichten vun Hand tofögen"
+
+#: kdiff3.cpp:588
+msgid "Clear All Manual Diff Alignments"
+msgstr "All Vun-Hand-Utrichten wegmaken"
+
+#: kdiff3.cpp:593
+msgid "Focus Prev Window"
+msgstr "Verleden Finster anmaken"
+
+#: kdiff3.cpp:594
+msgid "Toggle Split Orientation"
+msgstr "Deelricht wesseln"
+
+#: kdiff3.cpp:596
+msgid "Dir && Text Split Screen View"
+msgstr "Deelt Ansicht för Orner un Text"
+
+#: kdiff3.cpp:598
+msgid "Toggle Between Dir && Text View"
+msgstr "Orner- un Text-Ansicht wesseln"
+
+#: kdiff3.cpp:654 pdiff.cpp:1812
+msgid "The merge result hasn't been saved."
+msgstr "Tosamenföhr-Resultaat wöör nich sekert"
+
+#: kdiff3.cpp:656
+msgid "Save && Quit"
+msgstr "Sekern && Utmaken"
+
+#: kdiff3.cpp:657
+msgid "Quit Without Saving"
+msgstr "Utmaken un nich Sekern"
+
+#: kdiff3.cpp:665 pdiff.cpp:1823
+msgid "Saving the merge result failed."
+msgstr "Tosamenföhr-Resultaat lett sik nich sekern"
+
+#: kdiff3.cpp:676 pdiff.cpp:1078
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort?"
+msgstr "Du föhrst jüst Ornern tosamen. Wullt Du dat redig afbreken?"
+
+#: kdiff3.cpp:701
+msgid "Saving file..."
+msgstr "Datei warrt sekert..."
+
+#: kdiff3.cpp:718
+msgid "Saving file with a new filename..."
+msgstr "Datei warrt mit en nieg Dateinaam sekert..."
+
+#: kdiff3.cpp:781
+#, fuzzy
+#| msgid "Printing completed."
+msgid "Printing not implemented."
+msgstr "Drucken afslaten."
+
+#: kdiff3.cpp:815
+msgid "Printing..."
+msgstr "An't Drucken..."
+
+#: kdiff3.cpp:956
+msgid "Selection"
+msgstr "Köör"
+
+#: kdiff3.cpp:982
+msgid "Printing completed."
+msgstr "Drucken afslaten."
+
+#: kdiff3.cpp:986
+msgid "Printing aborted."
+msgstr "Drucken afbraken."
+
+#: kdiff3.cpp:993
+msgid "Exiting..."
+msgstr "Bi to utstiegen..."
+
+#: kdiff3.cpp:1006
+msgid "Toggling toolbar..."
+msgstr "Warktüüchbalken warrt an-/utmaakt..."
+
+#: kdiff3.cpp:1027
+msgid "Toggle the statusbar..."
+msgstr "Statusbalken an-/utmaken..."
+
+#: smalldialogs.cpp:58
+msgid "A (Base):"
+msgstr "A (Basis):"
+
+#: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99
+#: smalldialogs.cpp:142
+msgid "File..."
+msgstr "Datei..."
+
+#: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101
+#: smalldialogs.cpp:144
+msgid "Dir..."
+msgstr "Orner..."
+
+#: smalldialogs.cpp:93
+msgid "C (Optional):"
+msgstr "C (köörwies):"
+
+#: smalldialogs.cpp:116
+msgid "Swap/Copy Names ..."
+msgstr "Naams tuschen/koperen..."
+
+#: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123
+#, kde-format
+msgid "Swap %1<->%2"
+msgstr "%1<->%2 tuschen"
+
+#: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126
+#, kde-format
+msgid "Copy %1->Output"
+msgstr "%1 -> Utgaav koperen"
+
+#: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129
+#, kde-format
+msgid "Swap %1<->Output"
+msgstr "%1 <-> Utgaav tuschen"
+
+#: smalldialogs.cpp:136
+msgid "Output (optional):"
+msgstr "Utgaav (köörwies):"
+
+#: smalldialogs.cpp:168
+msgid "Configure..."
+msgstr "Instellen..."
+
+#: smalldialogs.cpp:174
+msgid "&OK"
+msgstr "&OK"
+
+#: smalldialogs.cpp:362
+msgid "Search text:"
+msgstr "Sööktext:"
+
+#: smalldialogs.cpp:369
+msgid "Case sensitive"
+msgstr "Op Groot-/Lüttschrieven kieken"
+
+#: smalldialogs.cpp:372
+msgid "Search A"
+msgstr "A dörkieken"
+
+#: smalldialogs.cpp:377
+msgid "Search B"
+msgstr "B dörkieken"
+
+#: smalldialogs.cpp:382
+msgid "Search C"
+msgstr "C dörkieken"
+
+#: smalldialogs.cpp:387
+msgid "Search output"
+msgstr "Utgaav dörkieken"
+
+#: smalldialogs.cpp:392
+msgid "&Search"
+msgstr "&Söken"
+
+#: smalldialogs.cpp:409
+msgid "Regular Expression Tester"
+msgstr "Reguleer Utdrück utproberen"
+
+#: smalldialogs.cpp:414 optiondialog.cpp:936
+msgid "Auto merge regular expression:"
+msgstr "Reguleer Utdruck för't autom. Tosamenföhren:"
+
+#: smalldialogs.cpp:422
+msgid "Example auto merge line:"
+msgstr "Bispillreeg för't autom. Tosamenföhren:"
+
+#: smalldialogs.cpp:424
+msgid "To test auto merge, copy a line as used in your files."
+msgstr ""
+"Kopeer en Reeg, as se binnen Dien Dateien vörkamen kann, wenn Du dat autom. "
+"Tosamenföhren utproberen wullt."
+
+#: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494
+msgid "Match result:"
+msgstr "Passen Resultaat:"
+
+#: smalldialogs.cpp:441 optiondialog.cpp:962
+msgid "History start regular expression:"
+msgstr "Reguleer Utdruck för Vörgeschicht-Anfang:"
+
+#: smalldialogs.cpp:449
+msgid "Example history start line (with leading comment):"
+msgstr "Bispillreeg för en Vörgeschicht-Anfang (mit vöranstellt Kommentar):"
+
+#: smalldialogs.cpp:451
+msgid ""
+"Copy a history start line as used in your files,\n"
+"including the leading comment."
+msgstr ""
+"Kopeer en Vörgeschicht-Anfangreeg, as se binnen\n"
+"Dien Dateien vörkamen kann, un ok den vöranstellten\n"
+"Kommentar."
+
+#: smalldialogs.cpp:469 optiondialog.cpp:972
+msgid "History entry start regular expression:"
+msgstr "Reguleer Utdruck för Vörgeschichtindrag-Anfang:"
+
+#: smalldialogs.cpp:477
+msgid "History sort key order:"
+msgstr "Vörgeschicht-Sorteerreeg:"
+
+#: smalldialogs.cpp:485
+msgid "Example history entry start line (without leading comment):"
+msgstr ""
+"Bispillreeg för en Vörgeschichtindrag-Anfang (ahn vöranstellt Kommentar):"
+
+#: smalldialogs.cpp:487
+msgid ""
+"Copy a history entry start line as used in your files,\n"
+"but omit the leading comment."
+msgstr ""
+"Kopeer en Vörgeschichtindrag-Anfangreeg, as se\n"
+"binnen Dien Dateien vörkamen kann, man nich den\n"
+"vöranstellten Kommentar."
+
+#: smalldialogs.cpp:501
+msgid "Sort key result:"
+msgstr "Sorteerresultaat:"
+
+#: smalldialogs.cpp:508
+msgid "OK"
+msgstr "OK"
+
+#: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583
+msgid "Match success."
+msgstr "Dreper funnen."
+
+#: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589
+msgid "Match failed."
+msgstr "Keen Dreper funnen."
+
+#: smalldialogs.cpp:574
+msgid "Opening and closing parentheses do not match in regular expression."
+msgstr ""
+"Binnen den reguleren Utdruck passt de linken un rechten Klemmen nich tosamen."
+
+#: optiondialog.cpp:367
+msgid "Unicode, 8 bit"
+msgstr "Unicode, 8 Bit"
+
+#: optiondialog.cpp:368
+msgid "Unicode"
+msgstr "Unicode"
+
+#: optiondialog.cpp:369
+msgid "Latin1"
+msgstr "Latin1"
+
+#: optiondialog.cpp:388
+msgid "Change this if non-ASCII characters are not displayed correctly."
+msgstr ""
+"Änner dit, wenn Tekens buten dat ASCII-Rebeet nich propper wiest warrt."
+
+#: optiondialog.cpp:465
+msgid "Configure"
+msgstr "Instellen"
+
+#: optiondialog.cpp:531
+msgid "Font"
+msgstr "Schriftoort"
+
+#: optiondialog.cpp:532
+msgid "Editor & Diff Output Font"
+msgstr "Editor- un Verscheel-Schriftoort"
+
+#: optiondialog.cpp:556
+msgid "Italic font for deltas"
+msgstr "Kursievschrift för Verschelen"
+
+#: optiondialog.cpp:559
+msgid ""
+"Selects the italic version of the font for differences.\n"
+"If the font doesn't support italic characters, then this does nothing."
+msgstr ""
+"Bruukt för Verschelen de Schriftoort in kursiev.\n"
+"Gifft dat för de Schriftoort keen kursive Tekens, deit disse Optschoon nix."
+
+#: optiondialog.cpp:568
+msgid "Color"
+msgstr "Klöör"
+
+#: optiondialog.cpp:569
+msgid "Colors Settings"
+msgstr "Klören instellen"
+
+#: optiondialog.cpp:588
+msgid "Editor and Diff Views:"
+msgstr "Editor- un Verscheel-Ansichten:"
+
+#: optiondialog.cpp:596
+msgid "Foreground color:"
+msgstr "Vörgrundklöör:"
+
+#: optiondialog.cpp:603
+msgid "Background color:"
+msgstr "Achtergrundklöör:"
+
+#: optiondialog.cpp:612
+msgid "Diff background color:"
+msgstr "Verscheel-Achtergrundklöör:"
+
+#: optiondialog.cpp:620
+msgid "Color A:"
+msgstr "Klöör A:"
+
+#: optiondialog.cpp:628
+msgid "Color B:"
+msgstr "Klöör B:"
+
+#: optiondialog.cpp:636
+msgid "Color C:"
+msgstr "Klöör C:"
+
+#: optiondialog.cpp:643
+msgid "Conflict color:"
+msgstr "Konflikt-Klöör:"
+
+#: optiondialog.cpp:651
+msgid "Current range background color:"
+msgstr "Achtergrundklöör för aktuell Rebeet:"
+
+#: optiondialog.cpp:659
+msgid "Current range diff background color:"
+msgstr "Verscheel-Achtergrundklöör för aktuell Rebeet:"
+
+#: optiondialog.cpp:666
+msgid "Color for manually aligned difference ranges:"
+msgstr "Klöör för vun Hand utricht Verscheelrebeden:"
+
+#: optiondialog.cpp:672
+msgid "Directory Comparison View:"
+msgstr "Ornerverscheel-Ansicht:"
+
+#: optiondialog.cpp:678
+msgid "Newest file color:"
+msgstr "Klöör för niegst Datei:"
+
+#: optiondialog.cpp:682
+msgid ""
+"Changing this color will only be effective when starting the next directory "
+"comparison."
+msgstr ""
+"Ännern an disse Klöör warrt eerst bi't nakamen Verglieken vun Ornern bruukt."
+
+#: optiondialog.cpp:687
+msgid "Oldest file color:"
+msgstr "Klöör för öllst Datei:"
+
+#: optiondialog.cpp:695
+msgid "Middle age file color:"
+msgstr "Klöör för en middeloolt Datei:"
+
+#: optiondialog.cpp:703
+msgid "Color for missing files:"
+msgstr "Klöör för fehlen Dateien:"
+
+#: optiondialog.cpp:717
+msgid "Editor"
+msgstr "Editor"
+
+#: optiondialog.cpp:718
+msgid "Editor Behavior"
+msgstr "Editor-Bedregen"
+
+#: optiondialog.cpp:732
+msgid "Tab inserts spaces"
+msgstr "Tabtast föögt Freetekens in"
+
+#: optiondialog.cpp:735
+msgid ""
+"On: Pressing tab generates the appropriate number of spaces.\n"
+"Off: A tab character will be inserted."
+msgstr ""
+"An: De Tabtast föögt en propper Tall vun Freetekens in.\n"
+"Ut: De Tabtast föögt en Tabteken in."
+
+#: optiondialog.cpp:741
+msgid "Tab size:"
+msgstr "Tab-Breed:"
+
+#: optiondialog.cpp:747
+msgid "Auto indentation"
+msgstr "Autom. inrücken"
+
+#: optiondialog.cpp:750
+msgid "On: The indentation of the previous line is used for a new line.\n"
+msgstr "An: De Inrückdeepde ut de verleden Reeg warrt för de niege bruukt.\n"
+
+#: optiondialog.cpp:754
+msgid "Auto copy selection"
+msgstr "Köör autom. koperen"
+
+#: optiondialog.cpp:757
+msgid ""
+"On: Any selection is immediately written to the clipboard.\n"
+"Off: You must explicitely copy e.g. via Ctrl-C."
+msgstr ""
+"An: All Kören warrt fuurts na de Twischenaflaag kopeert.\n"
+"Ut: Du muttst dat Koperen sülven maken, a.B. mit Strg+C."
+
+#: optiondialog.cpp:768
+#, fuzzy
+#| msgid "&Window"
+msgid "Dos/Windows"
+msgstr "&Finster"
+
+#: optiondialog.cpp:769
+#, fuzzy
+#| msgid "Auto Select"
+msgid "Autodetect"
+msgstr "Autom. Köör"
+
+#: optiondialog.cpp:772
+msgid ""
+"Sets the line endings for when an edited file is saved.\n"
+"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A"
+msgstr ""
+"Leggt de Tekens fast, de bi't Sekern för Reegennen bruukt warrt.\n"
+"DOS/Windows: CR+LF, UNIX: LF (CR = 0D, LF = 0A)"
+
+#: optiondialog.cpp:784
+msgid "Diff"
+msgstr "Verscheel"
+
+#: optiondialog.cpp:785
+msgid "Diff Settings"
+msgstr "Verscheel-Instellen"
+
+#: optiondialog.cpp:809
+msgid "Treat as white space."
+msgstr "As Freeruum hanteren"
+
+#: optiondialog.cpp:811
+msgid "Ignore numbers"
+msgstr "Tallen övergahn"
+
+#: optiondialog.cpp:814
+msgid ""
+"Ignore number characters during line matching phase. (Similar to Ignore "
+"white space.)\n"
+"Might help to compare files with numeric data."
+msgstr ""
+"Talltekens bi't Regenutrichten övergahn (liek to \"Freerüüm övergahn\").\n"
+"Mag bi't Verglieken vun Dateien mit Tallen beter Resultaten geven."
+
+#: optiondialog.cpp:819
+msgid "Ignore C/C++ comments"
+msgstr "C/C++-Kommentaren övergahn"
+
+#: optiondialog.cpp:821
+msgid "Treat C/C++ comments like white space."
+msgstr "C/C++-Kommentaren liek as Freerüüm hanteren."
+
+#: optiondialog.cpp:825
+msgid "Ignore case"
+msgstr "Groot-/Lüttschrieven övergahn"
+
+#: optiondialog.cpp:828
+msgid "Treat case differences like white space changes. ('a'<=>'A')"
+msgstr ""
+"Verschelen in Groot- un Lüttschrieven liek as Freerüüm-Verschelen hanteren."
+
+#: optiondialog.cpp:832
+msgid "Preprocessor command:"
+msgstr "Vörverarbeid-Befehl:"
+
+#: optiondialog.cpp:836
+msgid "User defined pre-processing. (See the docs for details.)"
+msgstr ""
+"Vun Bruker fastleggt Vörverarbeiden (Enkelheiten binnen de Dokmentatschoon)."
+
+#: optiondialog.cpp:839
+msgid "Line-matching preprocessor command:"
+msgstr "Vörverarbeid-Befehl för't Regenutrichten:"
+
+#: optiondialog.cpp:843
+msgid ""
+"This pre-processor is only used during line matching.\n"
+"(See the docs for details.)"
+msgstr ""
+"Disse Vörverarbeiden warrt bloots bi't Regenutrichten bruukt.\n"
+"(Enkelheiten binnen de Dokmentatschoon)"
+
+#: optiondialog.cpp:846
+msgid "Try hard (slower)"
+msgstr "In't Tüüch leggen (langsamer)"
+
+#: optiondialog.cpp:849
+msgid ""
+"Enables the --minimal option for the external diff.\n"
+"The analysis of big files will be much slower."
+msgstr ""
+"Bruukt de Optschoon \"--minimal\" vun't Diff-Programm.\n"
+"Dat Dörkieken vun groot Dateien warrt denn bannig wat langsamer."
+
+#: optiondialog.cpp:854
+msgid "Align B and C for 3 input files"
+msgstr "B un C för 3 Ingaavdateien utrichten"
+
+#: optiondialog.cpp:857
+msgid ""
+"Try to align B and C when comparing or merging three input files.\n"
+"Not recommended for merging because merge might get more complicated.\n"
+"(Default is off.)"
+msgstr ""
+"B un C bi't Verglieken oder Tosamenföhren vun 3 Ingaavdateien toenanner "
+"utrichten.\n"
+"Bi't Tosamenföhren nich anraadt, dat mag to vigeliensch warrn.\n"
+"(Standard is Ut.)"
+
+#: optiondialog.cpp:870
+msgid "Merge Settings"
+msgstr "Tosamenföhr-Instellen"
+
+#: optiondialog.cpp:885
+msgid "Auto advance delay (ms):"
+msgstr "Töövtiet för't autom. Wiedergahn (ms):"
+
+#: optiondialog.cpp:890
+msgid ""
+"When in Auto-Advance mode the result of the current selection is shown \n"
+"for the specified time, before jumping to the next conflict. Range: 0-2000 ms"
+msgstr ""
+"Is dat Automaatsche Wiedergahn anmaakt, warrt dat Resultaat vun de aktuelle "
+"Köör\n"
+"för de angeven Tiet wiest, ehr dat Programm na den nakamen Konflikt jumpt. "
+"Weerten: 0 - 2000 ms."
+
+#: optiondialog.cpp:895
+msgid "Show info dialogs"
+msgstr "Infodialogen wiesen"
+
+#: optiondialog.cpp:897
+msgid "Show a dialog with information about the number of conflicts."
+msgstr "En Dialoog mit de Tall vun Konflikten wiesen"
+
+#: optiondialog.cpp:900
+msgid "White space 2-file merge default:"
+msgstr "Freeruum-Standard bi 2-Dateien-Tosamenföhren:"
+
+#: optiondialog.cpp:904 optiondialog.cpp:917
+msgid "Manual Choice"
+msgstr "Köör vun Hand"
+
+#: optiondialog.cpp:908 optiondialog.cpp:922
+msgid ""
+"Allow the merge algorithm to automatically select an input for white-space-"
+"only changes."
+msgstr ""
+"Den Tosamenföhr-Algoritmus bi Freeruum-Konflikten automaatsch en Born "
+"utsöken laten"
+
+#: optiondialog.cpp:913
+msgid "White space 3-file merge default:"
+msgstr "Freeruum-Standard bi 3-Dateien-Tosamenföhren:"
+
+#: optiondialog.cpp:927
+msgid "Automatic Merge Regular Expression"
+msgstr "Reguleer Utdruck för't autom. Tosamenföhren"
+
+#: optiondialog.cpp:940
+msgid ""
+"Regular expression for lines where KDiff3 should automatically choose one "
+"source.\n"
+"When a line with a conflict matches the regular expression then\n"
+"- if available - C, otherwise B will be chosen."
+msgstr ""
+"Reguleer Utdruck för Regen, bi de KDiff3 automaatsch een Born utsöken "
+"schall.\n"
+"Passt de Utdruck op en Reeg mit en Konflikt, warrt - wenn verföögbor - de "
+"Reeg\n"
+"ut Born C, sünst de Reeg ut Born B bruukt."
+
+#: optiondialog.cpp:946
+msgid "Run regular expression auto merge on merge start"
+msgstr ""
+"Bi't Starten vun't Tosamenföhren automaatsch na reguleer Utdruck "
+"tosamenföhren"
+
+#: optiondialog.cpp:948
+msgid ""
+"Run the merge for auto merge regular expressions\n"
+"immediately when a merge starts.\n"
+msgstr ""
+"Dat automaatsche Tosamenföhren langs de reguleren\n"
+"Utdrück för't automaatsche Tosamenföhren direktemang\n"
+"utföhren, wenn dat Tosamenföhren anfangt.\n"
+
+#: optiondialog.cpp:953
+msgid "Version Control History Merging"
+msgstr "Tosamenföhren mit Verschoonkuntrull-Vörgeschicht"
+
+#: optiondialog.cpp:966
+msgid ""
+"Regular expression for the start of the version control history entry.\n"
+"Usually this line contains the \"$Log$\" keyword.\n"
+"Default value: \".*\\$Log.*\\$.*\""
+msgstr ""
+"Reguleer Utdruck för den Anfang vun den Verschoonkuntrull-"
+"Vörgeschichtindrag.\n"
+"Normalerwies bargt disse Reeg dat Slötelwoort \"$Log$\".\n"
+"Standardweert: \".*\\$Log.*\\$.*\""
+
+#: optiondialog.cpp:984
+msgid ""
+"A version control history entry consists of several lines.\n"
+"Specify the regular expression to detect the first line (without the leading "
+"comment).\n"
+"Use parentheses to group the keys you want to use for sorting.\n"
+"If left empty, then KDiff3 assumes that empty lines separate history "
+"entries.\n"
+"See the documentation for details."
+msgstr ""
+"En Verschoonkuntrull-Vörgeschichtindrag geiht över mehr Regen.\n"
+"Hier kannst Du den reguleren Utdruck angeven, mit den sik de eerste Reeg "
+"kennen lett (ahn den vöranstellten Kommentar).\n"
+"Mit Klemmen kannst Du Slötels för't Sorteren tosamenkoppeln.\n"
+"Lettst Du dat leddig, nimmt KDiff3 an, dat leddig Regen twischen "
+"Vörgeschichtindrääg staht.\n"
+"De Enkelheiten staht binnen de Dokmentatschoon."
+
+#: optiondialog.cpp:992
+msgid "History merge sorting"
+msgstr "Sorteren bi Vörgeschicht-Tosamenföhren"
+
+#: optiondialog.cpp:994
+msgid "Sort version control history by a key."
+msgstr "Verschoonkuntrull-Vörgeschicht na Slötel sorteren"
+
+#: optiondialog.cpp:1004
+msgid "History entry start sort key order:"
+msgstr "Sorteerreeg för Vörgeschichtindrag-Anfang:"
+
+#: optiondialog.cpp:1008
+msgid ""
+"Each pair of parentheses used in the regular expression for the history "
+"start entry\n"
+"groups a key that can be used for sorting.\n"
+"Specify the list of keys (that are numbered in order of occurrence\n"
+"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n"
+"If left empty, then no sorting will be done.\n"
+"See the documentation for details."
+msgstr ""
+"Elkeen Klemmenpoor binnen den reguleren Utdruck för den Vörgeschichtindrag-"
+"Anfang\n"
+"koppelt en Slötel tosamen, de sik bi't Sorteren bruken lett.\n"
+"Hier kannst Du de Reeg för de Slötels över ehr Nummern angeven\n"
+"(fangt bi 1 an, nummereert na de Reeg, in de se in den reguleren Utdruck "
+"staht).\n"
+"Bruuk Kommas (\",\") as Trennteken (a.B.: \"4,5,6,1,2,3,7\").\n"
+"Lettst Du dat leddig, warrt nich sorteert.\n"
+"De Enkelheiten staht binnen de Dokmentatschoon."
+
+#: optiondialog.cpp:1019
+msgid "Merge version control history on merge start"
+msgstr ""
+"Verschoonkuntrull-Vörgeschicht bi't Starten vun't Tosamenföhren tosamenföhren"
+
+#: optiondialog.cpp:1021
+msgid "Run version control history automerge on merge start."
+msgstr ""
+"Bi't Starten vun't Tosamenföhren automaatsch Verschoonkuntrull-Vörgeschicht "
+"tosamenföhren"
+
+#: optiondialog.cpp:1025
+msgid "Max number of history entries:"
+msgstr "Hööchsttall vun Vörgeschichtindrääg:"
+
+#: optiondialog.cpp:1028
+msgid "Cut off after specified number. Use -1 for infinite number of entries."
+msgstr "Na angeven Tall ophollen. Bi -1 nich ophollen."
+
+#: optiondialog.cpp:1032
+msgid "Test your regular expressions"
+msgstr "Regulere Utdrück utproberen"
+
+#: optiondialog.cpp:1037
+msgid "Irrelevant merge command:"
+msgstr "Tosamenföhr-Befehl bi fehlen Ännern:"
+
+#: optiondialog.cpp:1041
+msgid ""
+"If specified this script is run after automerge\n"
+"when no other relevant changes were detected.\n"
+"Called with the parameters: filename1 filename2 filename3"
+msgstr ""
+"Wenn angeven, warrt dit Skript na't automaatsche\n"
+"Tosamenföhren opropen, wenn dat sünst keen Ännern geven hett.\n"
+"Warrt mit disse Parameters opropen: Dateinaam1 Dateinaam2 Dateinaam3"
+
+#: optiondialog.cpp:1047
+msgid "Auto save and quit on merge without conflicts"
+msgstr "Na't Tosamenföhren ahn Konflikten autom. sekern un utmaken"
+
+#: optiondialog.cpp:1050
+msgid ""
+"If KDiff3 was started for a file-merge from the command line and all\n"
+"conflicts are solvable without user interaction then automatically save and "
+"quit.\n"
+"(Similar to command line option \"--auto\".)"
+msgstr ""
+"Wenn KDiff3 för't Tosamenföhren vun Dateien opropen warrt un sik all\n"
+"Konflikten oplösen laat un de Bruker nix bidregen mutt, denn\n"
+"dat Resultaat automaatsch sekern un dat Programm utmaken.\n"
+"(Liek to de Befehlsreegoptschoon \"--auto\".)"
+
+#: optiondialog.cpp:1061 optiondialog.cpp:1062
+msgid "Directory"
+msgstr "Orner"
+
+#: optiondialog.cpp:1075
+msgid "Recursive directories"
+msgstr "Rekursiev"
+
+#: optiondialog.cpp:1077
+msgid "Whether to analyze subdirectories or not."
+msgstr "Leggt fast, wat ok Ünnerornern dörkeken warrt."
+
+#: optiondialog.cpp:1079
+msgid "File pattern(s):"
+msgstr "Dateimuster(n):"
+
+#: optiondialog.cpp:1084
+msgid ""
+"Pattern(s) of files to be analyzed. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Muster(n) vun Dateien, de Du bekieken wullt.\n"
+"Platzholltekens: \"*\" un \"?\"\n"
+"Trennteken twischen Mustern: \";\""
+
+#: optiondialog.cpp:1090
+msgid "File-anti-pattern(s):"
+msgstr "Datei-Utsluutmuster(n):"
+
+#: optiondialog.cpp:1095
+msgid ""
+"Pattern(s) of files to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Muster(n) för Dateien, de Du vun't Bekieken utsluten wullt.\n"
+"Platzholltekens: \"*\" un \"?\"\n"
+"Trennteken twischen Mustern: \";\""
+
+#: optiondialog.cpp:1101
+msgid "Dir-anti-pattern(s):"
+msgstr "Orner-Utsluutmuster(n):"
+
+#: optiondialog.cpp:1106
+msgid ""
+"Pattern(s) of directories to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Muster(n) för Ornern, de Du vun't Bekieken utsluten wullt.\n"
+"Platzholltekens: \"*\" un \"?\"\n"
+"Trennteken twischen Mustern: \";\""
+
+#: optiondialog.cpp:1112
+msgid "Use .cvsignore"
+msgstr "\".cvsignore\" bruken"
+
+#: optiondialog.cpp:1115
+msgid ""
+"Extends the antipattern to anything that would be ignored by CVS.\n"
+"Via local \".cvsignore\" files this can be directory specific."
+msgstr ""
+"Verwiedert dat Utsluutmuster op allens, wat CVS övergahn dee.\n"
+"Bi lokaal \".cvsignore\"-Dateien kann dat vun den Orner afhangen."
+
+#: optiondialog.cpp:1120
+msgid "Find hidden files and directories"
+msgstr "Versteken Dateien un Ornern bekieken"
+
+#: optiondialog.cpp:1123
+msgid "Finds files and directories with the hidden attribute."
+msgstr "Ok Ornern un Dateien mit dat \"Versteken\"-Attribut bekieken"
+
+#: optiondialog.cpp:1125
+msgid "Finds files and directories starting with '.'."
+msgstr "Ok Dateien un Ornern bekieken, de mit en Punkt anfangt"
+
+#: optiondialog.cpp:1129
+msgid "Follow file links"
+msgstr "Dateilinks nagahn"
+
+#: optiondialog.cpp:1132
+msgid ""
+"On: Compare the file the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+"An: De Datei verglieken, op de de Link wiest.\n"
+"Ut: De Links verglieken."
+
+#: optiondialog.cpp:1137
+msgid "Follow directory links"
+msgstr "Ornerlinks nagahn"
+
+#: optiondialog.cpp:1140
+msgid ""
+"On: Compare the directory the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+"An: Den Orner verglieken, op den de Link wiest.\n"
+"Ut: De Links verglieken."
+
+#: optiondialog.cpp:1156
+msgid "Case sensitive filename comparison"
+msgstr "Bi Dateinaam-Vergliek op Groot- un Lüttschrieven kieken"
+
+#: optiondialog.cpp:1159
+msgid ""
+"The directory comparison will compare files or directories when their names "
+"match.\n"
+"Set this option if the case of the names must match. (Default for Windows is "
+"off, otherwise on.)"
+msgstr ""
+"De Ornervergliek vergliekt Dateien oder Ornern, wenn ehr Naams liek sünd.\n"
+"Maakt dit an, wenn de Groot-/Lüttschrieven liek wesen mutt. (Op Windows "
+"standardwies ut, sünst an)."
+
+#: optiondialog.cpp:1163
+msgid "File Comparison Mode"
+msgstr "Dateivergliek-Bedriefoort"
+
+#: optiondialog.cpp:1169
+msgid "Binary comparison"
+msgstr "Bineervergliek"
+
+#: optiondialog.cpp:1170
+msgid "Binary comparison of each file. (Default)"
+msgstr "Bineervergliek bi all Dateien (Standard)"
+
+#: optiondialog.cpp:1173
+msgid "Full analysis"
+msgstr "Heel Dörkiek"
+
+#: optiondialog.cpp:1174
+msgid ""
+"Do a full analysis and show statistics information in extra columns.\n"
+"(Slower than a binary comparison, much slower for binary files.)"
+msgstr ""
+"En heel Dörkiek doon un bito Statistik binnen besünner Striepen wiesen.\n"
+"(Langsamer as en Bineervergliek, veel langsamer bi Bineerdateien.)"
+
+#: optiondialog.cpp:1178
+msgid "Trust the size and modification date (unsafe)"
+msgstr "Grött un Ännerdatum bruken (nich seker)"
+
+#: optiondialog.cpp:1179
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"Files with equal contents but different modification dates will appear as "
+"different.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"Dateien mit liek Ännerdatum un Längde as liek hanteren.\n"
+"Dateien mit liek Inholt, man verscheden Ännerdatum warrt as verscheden "
+"wiest.\n"
+"Goot bi groot Ornern oder binnen langsam Nettwarken."
+
+#: optiondialog.cpp:1184
+msgid ""
+"Trust the size and date, but use binary comparison if date does not match "
+"(unsafe)"
+msgstr ""
+"Grött un Ännerdatum bruken, man bi nich liek Datum bineer verglieken (nich "
+"seker)"
+
+#: optiondialog.cpp:1185
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"If the dates are not equal but the sizes are, use binary comparison.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"Dateien mit liek Ännerdatum un Längde as liek hanteren.\n"
+"Is de Grött liek, man dat Datum nich, de Dateien bineer verglieken.\n"
+"Goot bi groot Ornern oder binnen langsam Nettwarken."
+
+#: optiondialog.cpp:1190
+msgid "Trust the size (unsafe)"
+msgstr "Grött bruken (nich seker)"
+
+#: optiondialog.cpp:1191
+msgid ""
+"Assume that files are equal if their file lengths are equal.\n"
+"Useful for big directories or slow networks when the date is modified during "
+"download."
+msgstr ""
+"Dateien mit liek Längde as liek hanteren.\n"
+"Goot bi groot Ornern oder binnen langsam Nettwarken, wenn sik dat Datum bi't "
+"Daalladen ännert."
+
+#: optiondialog.cpp:1199
+msgid "Synchronize directories"
+msgstr "Ornern synkroniseren"
+
+#: optiondialog.cpp:1202
+msgid ""
+"Offers to store files in both directories so that\n"
+"both directories are the same afterwards.\n"
+"Works only when comparing two directories without specifying a destination."
+msgstr ""
+"Dateien ut un na beed Ornern so koperen, dat\n"
+"se achteran liek sünd.\n"
+"Funkscheneert bloots bi't Verglieken vun twee Ornern, un wenn keen Teel "
+"angeven is."
+
+#: optiondialog.cpp:1208
+msgid "White space differences considered equal"
+msgstr "Freeruum-Verschelen as liek hanteren"
+
+#: optiondialog.cpp:1211
+msgid ""
+"If files differ only by white space consider them equal.\n"
+"This is only active when full analysis is chosen."
+msgstr ""
+"Dateien as liek hanteren, wenn se bloots in de Freerüüm verscheden sünd.\n"
+"Dit is bloots anmaakt, wenn Du \"Heel Dörkiek\" utsöcht hest."
+
+#: optiondialog.cpp:1217
+msgid "Copy newer instead of merging (unsafe)"
+msgstr "Nieger Datei koperen, nich tosamenföhren (nich seker)"
+
+#: optiondialog.cpp:1220
+msgid ""
+"Don't look inside, just take the newer file.\n"
+"(Use this only if you know what you are doing!)\n"
+"Only effective when comparing two directories."
+msgstr ""
+"Inholt nich bekieken, eenfach de niegere Datei nehmen.\n"
+"(Bruuk dit bloots, wenn Du nau weetst, wat Du dor deist!)\n"
+"Funkscheneert bloots bi't Verglieken vun twee Ornern."
+
+#: optiondialog.cpp:1225
+msgid "Backup files (.orig)"
+msgstr "Sekerheitkopie (.orig) opstellen"
+
+#: optiondialog.cpp:1228
+msgid ""
+"If a file would be saved over an old file, then the old file\n"
+"will be renamed with a '.orig' extension instead of being deleted."
+msgstr ""
+"Schull en Datei över en öller Datei schreven warrn, denn warrt de\n"
+"öllere Datei ümnöömt un \".orig\" na ehr Naam anhangt."
+
+#: optiondialog.cpp:1301 optiondialog.cpp:1302
+msgid "Regional Settings"
+msgstr "Regiooninstellen"
+
+#: optiondialog.cpp:1402
+msgid "Language (restart required)"
+msgstr "Spraak (Niegstart nödig)"
+
+#: optiondialog.cpp:1445
+msgid ""
+"Choose the language of the GUI strings or \"Auto\".\n"
+"For a change of language to take place, quit and restart KDiff3."
+msgstr ""
+"Hier kannst Du de Spraak för de Böversiet utsöken, oder \"Auto\".\n"
+"Ännerst Du de Spraak, muttst Du KDiff3 utmaken un nieg opropen, ehr de "
+"Ännern övernahmen warrt."
+
+#: optiondialog.cpp:1463
+msgid "Use the same encoding for everything:"
+msgstr "De sülve Koderen för allens bruken:"
+
+#: optiondialog.cpp:1466
+msgid ""
+"Enable this allows to change all encodings by changing the first only.\n"
+"Disable this if different individual settings are needed."
+msgstr ""
+"Is dit anmaakt, kannst Du all Koderen över de eerste ännern.\n"
+"Maak dit ut, wenn verscheden Instellen för de Dateien nödig sünd."
+
+#: optiondialog.cpp:1471
+msgid "Note: Local Encoding is "
+msgstr "Beacht: De lokale Koderen is "
+
+#: optiondialog.cpp:1475
+msgid "File Encoding for A:"
+msgstr "Koderen för Datei A:"
+
+#: optiondialog.cpp:1481
+msgid ""
+"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n"
+"If the file is not Unicode then the selected encoding will be used as "
+"fallback.\n"
+"(Unicode detection depends on the first bytes of a file.)"
+msgstr ""
+"Is dit anmaakt, warrt Unicode (UTF-8 oder UTF-16) as Koderen opdeckt.\n"
+"Is de Datei nich in Unicode, warrt de utsöchte Koderen bruukt.\n"
+"(Dat Opdecken vun Unicode hangt vun de eersten Bytes vun en Datei af.)"
+
+#: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503
+msgid "Auto Detect Unicode"
+msgstr "Unicode automaatsch opdecken"
+
+#: optiondialog.cpp:1490
+msgid "File Encoding for B:"
+msgstr "Koderen för Datei B:"
+
+#: optiondialog.cpp:1499
+msgid "File Encoding for C:"
+msgstr "Koderen för Datei C:"
+
+#: optiondialog.cpp:1508
+msgid "File Encoding for Merge Output and Saving:"
+msgstr "Koderen för't Tosamenföhren un Sekern:"
+
+#: optiondialog.cpp:1512
+msgid "Auto Select"
+msgstr "Autom. Köör"
+
+#: optiondialog.cpp:1515
+msgid ""
+"If enabled then the encoding from the input files is used.\n"
+"In ambiguous cases a dialog will ask the user to choose the encoding for "
+"saving."
+msgstr ""
+"Wenn anmaakt, warrt de Koderen vun de Ingaavdateien bruukt.\n"
+"Is dat nich eenkennig, warrt de Bruker na de Koderen för't Sekern fraagt."
+
+#: optiondialog.cpp:1519
+msgid "File Encoding for Preprocessor Files:"
+msgstr "Koderen för de Vörverarbeid-Dateien:"
+
+#: optiondialog.cpp:1530
+msgid "Right To Left Language"
+msgstr "Rechts-Na-Links-Spraak"
+
+#: optiondialog.cpp:1533
+msgid ""
+"Some languages are read from right to left.\n"
+"This setting will change the viewer and editor accordingly."
+msgstr ""
+"En Reeg Schriften warrt vun rechts na links leest.\n"
+"Disse Optschoon passt dor de Ansicht un den Editor op to."
+
+#: optiondialog.cpp:1548
+msgid "Integration"
+msgstr "Inbinnen"
+
+#: optiondialog.cpp:1549
+msgid "Integration Settings"
+msgstr "Inbinnen instellen"
+
+#: optiondialog.cpp:1563
+msgid "Command line options to ignore:"
+msgstr "Befehlsreeg-Optschonen, de övergahn warrt:"
+
+#: optiondialog.cpp:1568
+msgid ""
+"List of command line options that should be ignored when KDiff3 is used by "
+"other tools.\n"
+"Several values can be specified if separated via ';'\n"
+"This will suppress the \"Unknown option\" error."
+msgstr ""
+"List vun Befehlsreeg-Optschonen, de övergahn warrt, wenn anner Programmen "
+"KDiff3 oproopt.\n"
+"Du kannst mehr Weerten angeven, wenn dor twischen en \";\" steiht.\n"
+"Dit verhöödt den \"Nich begäng Optschoon\"-Fehler."
+
+#: optiondialog.cpp:1575
+msgid "Quit also via Escape key"
+msgstr "Ok mit ESC-Tast utmaken"
+
+#: optiondialog.cpp:1578
+msgid ""
+"Fast method to exit.\n"
+"For those who are used to using the Escape key."
+msgstr ""
+"Gau Metood för't Utmaken.\n"
+"För de Lüüd, de de ESC-Tast anworrn sünd."
+
+#: optiondialog.cpp:1583
+msgid "Integrate with ClearCase"
+msgstr "Na \"ClearCase\" inbinnen"
+
+#: optiondialog.cpp:1586
+msgid ""
+"Integrate with Rational ClearCase from IBM.\n"
+"Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n"
+"(Only enabled when ClearCase \"bin\" directory is in the path.)"
+msgstr ""
+"Na \"Rational ClearCase\" vun IBM inbinnen.\n"
+"Ännert de Datei \"map\" binnen den ClearCase-Ünnerorner \"lib/mgrs\".\n"
+"(Funkscheneert bloots, wenn sik de ClearCase-Orner \"bin\" över de PATH-"
+"Ümgevenvariabel finnen lett.)"
+
+#: optiondialog.cpp:1592
+msgid "Remove ClearCase Integration"
+msgstr "Inbinnen na ClearCase lösen"
+
+#: optiondialog.cpp:1595
+msgid ""
+"Restore the old \"map\" file from before doing the ClearCase integration."
+msgstr ""
+"De ole \"map\"-Datei ut de Tiet vör't Inbinnen na ClearCase wedderherstellen"
+
+#: optiondialog.cpp:1680
+msgid "Incompatible Font"
+msgstr "Inkompatibel Schriftoort"
+
+#: optiondialog.cpp:1681
+msgid "Continue at Own Risk"
+msgstr "Op egen Riskanz wiedermaken"
+
+#: optiondialog.cpp:1682
+msgid "Select Another Font"
+msgstr "Anner Schriftoort utsöken"
+
+#: optiondialog.cpp:1717
+msgid "This resets all options. Not only those of the current topic."
+msgstr ""
+"Disse Funkschoon sett all Optschonen torüch, nich bloots de för't aktuelle "
+"Thema."
+
+#: pdiff.cpp:260
+msgid "PreprocessorCmd: "
+msgstr "Vörverarbeid-Befehl: "
+
+#: pdiff.cpp:265
+msgid "The following option(s) you selected might change data:\n"
+msgstr "Disse vun Di utsöchten Optschonen köönt Daten ännern:\n"
+
+#: pdiff.cpp:266
+msgid ""
+"\n"
+"Most likely this is not wanted during a merge.\n"
+"Do you want to disable these settings or continue with these settings active?"
+msgstr ""
+"\n"
+"Dat will Een normalerwies bi't Tosamenföhren nich hebben.\n"
+"Wullt Du disse Instellen ut- oder dor mit wiedermaken?"
+
+#: pdiff.cpp:268
+msgid "Option Unsafe for Merging"
+msgstr "Optschoon för't Tosamenföhren nich seker"
+
+#: pdiff.cpp:269
+msgid "Use These Options During Merge"
+msgstr "Disse Optschonen bruken"
+
+#: pdiff.cpp:270
+msgid "Disable Unsafe Options"
+msgstr "Nich seker Optschonen utmaken"
+
+#: pdiff.cpp:300
+msgid "Loading A"
+msgstr "A warrt laadt"
+
+#: pdiff.cpp:304
+msgid "Loading B"
+msgstr "B warrt laadt"
+
+#: pdiff.cpp:321 pdiff.cpp:347
+msgid "Diff: A <-> B"
+msgstr "Verscheel: A <-> B"
+
+#: pdiff.cpp:327 pdiff.cpp:372
+msgid "Linediff: A <-> B"
+msgstr "Reegverscheel: A <-> B"
+
+#: pdiff.cpp:338
+msgid "Loading C"
+msgstr "C warrt laadt"
+
+#: pdiff.cpp:350
+msgid "Diff: B <-> C"
+msgstr "Verscheel: B <-> C"
+
+#: pdiff.cpp:353
+msgid "Diff: A <-> C"
+msgstr "Verscheel: A <-> C"
+
+#: pdiff.cpp:375
+msgid "Linediff: B <-> C"
+msgstr "Reegverscheel: B <-> C"
+
+#: pdiff.cpp:378
+msgid "Linediff: A <-> C"
+msgstr "Reegverscheel: A <-> C"
+
+#: pdiff.cpp:534
+msgid "All input files contain the same text, but are not binary equal."
+msgstr "All Ingaavdateien bargt den sülven Text, man sünd bineer nich liek."
+
+#: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541
+#, kde-format
+msgid "Files %1 and %2 have equal text, but are not binary equal. \n"
+msgstr ""
+"De Dateien %1 un %2 bargt den sülven Text, man sünd bineer nich liek.\n"
+
+#: pdiff.cpp:551
+msgid ""
+"Some inputfiles don't seem to be pure textfiles.\n"
+"Note that the KDiff3-merge was not meant for binary data.\n"
+"Continue at your own risk."
+msgstr ""
+"As't lett sünd nich all Ingaavdateien reen Textdateien.\n"
+"Beacht, KDiff3 is nich för't Tosamenföhren vun Bineerdaten maakt.\n"
+"Maak man op Dien egen Riskanz wieder."
+
+#: pdiff.cpp:566
+#, kde-format
+msgid ""
+"Some input characters could not be converted to valid unicode.\n"
+"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n"
+"Don't save the result if unsure. Continue at your own risk.\n"
+"Affected input files are in %1."
+msgstr ""
+
+#: pdiff.cpp:1080
+msgid "Abort"
+msgstr "Afbreken"
+
+#: pdiff.cpp:1087 pdiff.cpp:1175
+msgid "Opening files..."
+msgstr "Dateien warrt opmaakt..."
+
+#: pdiff.cpp:1152 pdiff.cpp:1223
+msgid "File open error"
+msgstr "Fehler bi't Datei-Opmaken"
+
+#: pdiff.cpp:1255
+msgid "Cutting selection..."
+msgstr "Köör warrt knippt..."
+
+#: pdiff.cpp:1276
+msgid "Copying selection to clipboard..."
+msgstr "Köör warrt na de Twischenaflaag kopeert..."
+
+#: pdiff.cpp:1292
+msgid "Inserting clipboard contents..."
+msgstr "Twischenaflaag-Inholt warrt inföögt..."
+
+#: pdiff.cpp:1814
+msgid "Save && Continue"
+msgstr "Sekern un wiedermaken"
+
+#: pdiff.cpp:1815
+msgid "Continue Without Saving"
+msgstr "Ahn Sekern wiedermaken"
+
+#: pdiff.cpp:2018
+msgid "Search complete."
+msgstr "Söök afslaten."
+
+#: pdiff.cpp:2018
+msgid "Search Complete"
+msgstr "Söök afslaten"
+
+#: pdiff.cpp:2252
+msgid "Nothing is selected in either diff input window."
+msgstr "Binnen keen Verscheel-Ingaavfinster is wat utsöcht."
+
+#: pdiff.cpp:2252
+msgid "Error while adding manual diff range"
+msgstr "Fehler bi't Tofögen vun en Verscheelrebeet vun Hand"
+
+#: kdiff3_shell.cpp:76
+#, fuzzy
+#| msgid ""
+#| "Could not initialize the KDiff part.\n"
+#| "This usually happens due to an installation problem. Please read the "
+#| "README-file in the source package for details."
+msgid ""
+"Could not initialize the KDiff3 part.\n"
+"This usually happens due to an installation problem. Please read the README-"
+"file in the source package for details."
+msgstr ""
+"De KDiff-Komponent lett sik nich torechtmaken.\n"
+"Dit kummt normalerwies bi Problemen mit de Installatschoon vör. De "
+"Enkelheiten staht binnen de README-Datei vun't Born-Paket."
+
+#: rc.cpp:1
+msgctxt "NAME OF TRANSLATORS"
+msgid "Your names"
+msgstr "Sönke Dibbern"
+
+#: rc.cpp:2
+msgctxt "EMAIL OF TRANSLATORS"
+msgid "Your emails"
+msgstr "s_dibbern@web.de"
+
+#. i18n: file: kdiff3_part.rc:4
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:5
+msgid "&KDiff3"
+msgstr "&KDiff3"
+
+#. i18n: file: kdiff3_part.rc:13
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:8
+msgid "Configure KDiff3"
+msgstr "KDiff3 instellen"
+
+#. i18n: file: kdiff3_part.rc:16
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:11
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#. i18n: file: kdiff3_shell.rc:106
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:38
+msgid "Main Toolbar"
+msgstr "Hööft-Warktüüchbalken"
+
+#~ msgid "Directory Merge"
+#~ msgstr "Orner-Tosamenföhren"
+
+#~ msgid "C&ontinue"
+#~ msgstr "Wieder&maken"
diff --git a/po/nds/kdiff3fileitemactionplugin.po b/po/nds/kdiff3fileitemactionplugin.po
new file mode 100644 (file)
index 0000000..4f59378
--- /dev/null
@@ -0,0 +1,86 @@
+# translation of kdiff3fileitemactionplugin.po to Low Saxon
+# Copyright (C) YEAR This_file_is_part_of_KDE
+# This file is distributed under the same license as the PACKAGE package.
+# Manfred Wiese <m.j.wiese@web.de>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3fileitemactionplugin\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-05-07 06:14+0200\n"
+"Last-Translator: Manfred Wiese <m.j.wiese@web.de>\n"
+"Language-Team: Low Saxon <kde-i18n-nds@kde.org>\n"
+"Language: nds\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.0\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: kdiff3fileitemaction.cpp:94
+msgid "KDiff3 ..."
+msgstr "KDiff3…"
+
+#: kdiff3fileitemaction.cpp:125
+#, kde-format
+msgid "Compare with %1"
+msgstr "Mit \"%1\" verglieken"
+
+#: kdiff3fileitemaction.cpp:131
+#, kde-format
+msgid "Merge with %1"
+msgstr "Mit \"%1\" tosamenföhren"
+
+#: kdiff3fileitemaction.cpp:137
+#, kde-format
+msgid "Save '%1' for later"
+msgstr "\"%1\" för later sekern"
+
+#: kdiff3fileitemaction.cpp:143
+msgid "3-way merge with base"
+msgstr "3-Weeg-Tosamenföhren mit Grundlaag"
+
+#: kdiff3fileitemaction.cpp:150
+msgid "Compare with ..."
+msgstr "Verglieken mit..."
+
+#: kdiff3fileitemaction.cpp:162
+msgid "Clear list"
+msgstr "List leddig maken"
+
+#: kdiff3fileitemaction.cpp:170
+msgid "Compare"
+msgstr "Verglieken"
+
+#: kdiff3fileitemaction.cpp:176
+msgid "3 way comparison"
+msgstr "3-Weeg-Verglieken"
+
+#: kdiff3fileitemaction.cpp:180
+msgid "About KDiff3 menu plugin ..."
+msgstr "Över dat KDiff3-Menümoduul…"
+
+#: kdiff3fileitemaction.cpp:284
+msgid ""
+"KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+
+#: kdiff3fileitemaction.cpp:286
+msgid ""
+"Using the contextmenu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else \"Save\" the first file for later. It "
+"will appear in the \"Compare With ...\" submenu. Then use \"Compare With\" "
+"on second file.\n"
+"For a 3-way merge first \"Save\" the base file, then the branch to merge and "
+"choose \"3-way merge with base\" on the other branch which will be used as "
+"destination.\n"
+"Same also applies to directory comparison and merge."
+msgstr ""
+
+#: kdiff3fileitemaction.cpp:294
+msgid "About KDiff3 File Item Action Plugin"
+msgstr ""
diff --git a/po/nds/kdiff3plugin.po b/po/nds/kdiff3plugin.po
new file mode 100644 (file)
index 0000000..f56dd00
--- /dev/null
@@ -0,0 +1,99 @@
+# Translation of kdiff3plugin.po to Low Saxon
+# Copyright (C) YEAR This_file_is_part_of_KDE
+# This file is distributed under the same license as the PACKAGE package.
+# Sönke Dibbern <s_dibbern@web.de>, 2008.
+# Manfred Wiese <m.j.wiese@web.de>, 2009, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3plugin\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-05-07 06:13+0200\n"
+"Last-Translator: Manfred Wiese <m.j.wiese@web.de>\n"
+"Language-Team: Low Saxon <kde-i18n-nds@kde.org>\n"
+"Language: nds\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.0\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: kdiff3plugin.cpp:107
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#: kdiff3plugin.cpp:114
+#, kde-format
+msgid "Compare with %1"
+msgstr "Mit \"%1\" verglieken"
+
+#: kdiff3plugin.cpp:120
+#, kde-format
+msgid "Merge with %1"
+msgstr "Mit \"%1\" tosamenföhren"
+
+#: kdiff3plugin.cpp:126
+#, kde-format
+msgid "Save '%1' for later"
+msgstr "\"%1\" för later sekern"
+
+#: kdiff3plugin.cpp:132
+msgid "3-way merge with base"
+msgstr "3-Weeg-Tosamenföhren mit Grundlaag"
+
+#: kdiff3plugin.cpp:139
+msgid "Compare with ..."
+msgstr "Verglieken mit..."
+
+#: kdiff3plugin.cpp:149
+msgid "Clear list"
+msgstr "List leddig maken"
+
+#: kdiff3plugin.cpp:157
+msgid "Compare"
+msgstr "Verglieken"
+
+#: kdiff3plugin.cpp:163
+msgid "3 way comparison"
+msgstr "3-Weeg-Verglieken"
+
+#: kdiff3plugin.cpp:167
+msgid "About KDiff3 menu plugin ..."
+msgstr "Över dat KDiff3-Menümoduul..."
+
+#: kdiff3plugin.cpp:269
+msgid ""
+"KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+"KDiff3-Menümoduul. Copyright © 2008 Jaochim Eibl\n"
+"KDiff3-Tohuussiet: http://kdiff3.sourceforge.net\n"
+"\n"
+
+#: kdiff3plugin.cpp:271
+msgid ""
+"Using the context menu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else, \"Save\" the first file for later, and "
+"it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With"
+"\" on the second file.\n"
+"For a 3-way merge first, \"Save\" the base file, then the branch to merge, "
+"and then \"3-way merge with base\" on the other branch which will be used as "
+"the destination.\n"
+"The same also applies to directory comparison and merge."
+msgstr ""
+"De Rechtsklickmenü-Verwiedern bruken:\n"
+"Twee utsöcht Dateien laat sik eenfach mit »Verglieken« verglieken.\n"
+"Is de anner Datei an en anner Steed, »Seker« de eerste Datei »för later«, se "
+"dukt denn in't Ünnermenü »Verglieken mit...« op, dat Du för de twete Datei "
+"opröppst.\n"
+"Wullt Du 3 Dateien tosamenföhren, »seker« toeerst de Grunddatei, denn den "
+"Telg, den Du tosamenföhren wullt, un för de drüdde Datei bruukst Du »3-Weeg-"
+"Tosamenföhren mit Grundlaag«, se warrt denn dat Teel.\n"
+"Dat sülve gellt ok för't Verglieken un Tosamenföhren vun Ornern."
+
+#: kdiff3plugin.cpp:279
+msgid "About KDiff3 Menu Plugin"
+msgstr "Över dat KDiff3-Menümoduul…"
diff --git a/po/nl/CMakeLists.txt b/po/nl/CMakeLists.txt
new file mode 100644 (file)
index 0000000..9081a95
--- /dev/null
@@ -0,0 +1,2 @@
+file(GLOB _po_files *.po)
+GETTEXT_PROCESS_PO_FILES(nl ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
diff --git a/po/nl/kdiff3.po b/po/nl/kdiff3.po
new file mode 100644 (file)
index 0000000..6450212
--- /dev/null
@@ -0,0 +1,3244 @@
+# translation of kdiff3.po to Dutch
+# translation of kdiff3.po to
+# translation of kdiff3.po to
+# Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+#
+# Rinse de Vries <rinse@kde.nl>, 2004.
+# Rinse de Vries <rinsedevries@kde.nl>, 2004, 2005, 2006, 2007, 2010.
+# Sander Koning <sanderkoning@kde.nl>, 2005.
+# Rinse de Vries <RinseDeVries@home.nl>, 2005.
+# Bram Schoenmakers <bramschoenmakers@kde.nl>, 2006.
+# Freek de Kruijf <f.de.kruijf@hetnet.nl>, 2008, 2009.
+# Freek de Kruijf <freekdekruijf@kde.nl>, 2010, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-05-06 10:43+0200\n"
+"Last-Translator: Freek de Kruijf <freekdekruijf@kde.nl>\n"
+"Language-Team: Dutch <kde-i18n-nl@kde.org>\n"
+"Language: nl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.1\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: kreplacements/kreplacements.h:105
+msgid "Continue"
+msgstr "Doorgaan"
+
+#: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158
+#: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512
+msgid "Cancel"
+msgstr "Annuleren"
+
+#: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631
+msgid "Quit"
+msgstr "Stoppen"
+
+#: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339
+msgid "Ok"
+msgstr "Ok"
+
+#: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715
+msgid "Help"
+msgstr "Hulp"
+
+#: kreplacements/kreplacements.cpp:185
+msgid "Defaults"
+msgstr "Standaarden"
+
+#. i18n: file: kdiff3_shell.rc:4
+#. i18n: ectx: Menu (file)
+#: kreplacements/kreplacements.cpp:296 rc.cpp:14
+msgid "&File"
+msgstr "&Bestand"
+
+#: kreplacements/kreplacements.cpp:297
+msgid "&Edit"
+msgstr "B&ewerken"
+
+#. i18n: file: kdiff3_shell.rc:7
+#. i18n: ectx: Menu (directory)
+#: kreplacements/kreplacements.cpp:298 rc.cpp:17
+msgid "&Directory"
+msgstr "&Directory"
+
+#. i18n: file: kdiff3_shell.rc:50
+#. i18n: ectx: Menu (movement)
+#: kreplacements/kreplacements.cpp:301 rc.cpp:26
+msgid "&Movement"
+msgstr "&Navigatie"
+
+#. i18n: file: kdiff3_shell.rc:61
+#. i18n: ectx: Menu (diff)
+#: kreplacements/kreplacements.cpp:302 rc.cpp:29
+msgid "D&iffview"
+msgstr "Versch&ilweergave"
+
+#. i18n: file: kdiff3_shell.rc:73
+#. i18n: ectx: Menu (merge)
+#: kreplacements/kreplacements.cpp:303 rc.cpp:32
+msgid "&Merge"
+msgstr "Sa&menvoegen"
+
+#. i18n: file: kdiff3_shell.rc:95
+#. i18n: ectx: Menu (window)
+#: kreplacements/kreplacements.cpp:304 rc.cpp:35
+msgid "&Window"
+msgstr "&Venster"
+
+#: kreplacements/kreplacements.cpp:305
+msgid "&Settings"
+msgstr "In&stellingen"
+
+#: kreplacements/kreplacements.cpp:306
+msgid "&Help"
+msgstr "&Hulp"
+
+#: kreplacements/kreplacements.cpp:353
+msgid "&About"
+msgstr "Info &over"
+
+#: kreplacements/kreplacements.cpp:369
+msgid "A&uthor"
+msgstr "A&uteur"
+
+#: kreplacements/kreplacements.cpp:383
+msgid "&Thanks To"
+msgstr "Me&t dank aan"
+
+#. i18n: file: kdiff3_shell.rc:30
+#. i18n: ectx: Menu (dir_current_merge_menu)
+#: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497
+#: rc.cpp:20
+msgid "Current Item Merge Operation"
+msgstr "Samenvoeging van huidig item"
+
+#. i18n: file: kdiff3_shell.rc:38
+#. i18n: ectx: Menu (dir_current_sync_menu)
+#: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498
+#: rc.cpp:23
+msgid "Current Item Sync Operation"
+msgstr "Synchronisatie van huidig item"
+
+#: kreplacements/kreplacements.cpp:597
+msgid "Open"
+msgstr "Openen"
+
+#: kreplacements/kreplacements.cpp:606
+msgid "Save"
+msgstr "Opslaan"
+
+#: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720
+msgid "Save As..."
+msgstr "Opslaan als..."
+
+#: kreplacements/kreplacements.cpp:623
+msgid "Print..."
+msgstr "Afdrukken..."
+
+#: kreplacements/kreplacements.cpp:639
+msgid "Cut"
+msgstr "Knippen"
+
+#: kreplacements/kreplacements.cpp:647
+msgid "Copy"
+msgstr "Kopiëren"
+
+#: kreplacements/kreplacements.cpp:655
+msgid "Paste"
+msgstr "Plakken"
+
+#: kreplacements/kreplacements.cpp:663
+msgid "Select All"
+msgstr "Alles selecteren"
+
+#: kreplacements/kreplacements.cpp:671
+msgid "Show Toolbar"
+msgstr "Werkbalk tonen"
+
+#: kreplacements/kreplacements.cpp:679
+msgid "Show &Status Bar"
+msgstr "&Statusbalk tonen"
+
+#: kreplacements/kreplacements.cpp:687
+#, kde-format
+msgid "&Configure %1..."
+msgstr "%1 &configureren..."
+
+#: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707
+msgid "About"
+msgstr "Over"
+
+#: kreplacements/kreplacements.cpp:722
+msgid "Find"
+msgstr "Zoeken"
+
+#: kreplacements/kreplacements.cpp:730
+msgid "Find Next"
+msgstr "Volgende zoeken"
+
+#: kreplacements/kreplacements.cpp:750
+msgid "Select Font"
+msgstr "Lettertype selecteren"
+
+#: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676
+msgid ""
+"You selected a variable width font.\n"
+"\n"
+"Because this program doesn't handle variable width fonts\n"
+"correctly, you might experience problems while editing.\n"
+"\n"
+"Do you want to continue or do you want to select another font."
+msgstr ""
+"U hebt een lettertype met variabele breedte gekozen.\n"
+"\n"
+"Omdat dit programma geen correcte ondersteuning biedt voor dergelijke "
+"lettertypen kunt u problemen ondervinden tijdens het bewerken.\n"
+"\n"
+"Wilt u doorgaan, of wilt u een ander lettertype selecteren?"
+
+#: kreplacements/kreplacements.cpp:792
+msgid "Incompatible font."
+msgstr "Incompatibel lettertype."
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Continue at my own risk"
+msgstr "Doorgaan op eigen risico"
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Select another font"
+msgstr "Ander lettertype kiezen"
+
+#: kreplacements/kreplacements.cpp:1134
+msgid "For more documentation, see the help-menu or the subdirectory doc."
+msgstr "Voor meer informatie, zie het hulpmenu of de submap doc."
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "KDiff3-Usage"
+msgstr "KDiff3-gebruik"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Ignore"
+msgstr "Negeren"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Exit"
+msgstr "Stoppen"
+
+#: diff.cpp:251
+msgid "Writing clipboard data to temp file failed."
+msgstr "Het opslaan van de klembordinhoud in een tijdelijk bestand is mislukt."
+
+#: diff.cpp:255
+msgid "From Clipboard"
+msgstr "Van klembord"
+
+#: diff.cpp:471
+msgid "Expecting space after closing quotation mark."
+msgstr "Spatie verwacht na afsluitend aanhalingsteken."
+
+#: diff.cpp:474
+msgid "Not matching quotation marks."
+msgstr "Geen overeenkomende aanhalingstekens."
+
+#: diff.cpp:496
+msgid "Unexpected quotation mark within argument."
+msgstr "Onverwacht aanhalingsteken in een argument."
+
+#: diff.cpp:503
+msgid "No program specified."
+msgstr "Geen programma gespecificeerd."
+
+#: diff.cpp:605
+#, kde-format
+msgid ""
+"Preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The preprocessing command will be disabled now."
+msgstr ""
+"De voorverwerking is waarschijnlijk mislukt. Controleer dit commando:\n"
+"\n"
+" %1\n"
+"\n"
+"Dit commando zal nu worden uitgeschakeld."
+
+#: diff.cpp:653
+#, kde-format
+msgid ""
+"The line-matching-preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The line-matching-preprocessing command will be disabled now."
+msgstr ""
+"De voorverwerking van regelovereenkomsten is mogelijk mislukt. Controleer "
+"dit commando:\n"
+"\n"
+" %1\n"
+"\n"
+"Dit commando zal nu worden uitgeschakeld."
+
+#: diff.cpp:1776 diff.cpp:1790
+msgid ""
+"Data loss error:\n"
+"If it is reproducible please contact the author.\n"
+msgstr ""
+"Fout met dataverlies:\n"
+"Als dit reproduceerbaar is, neem dan contact op met de auteur.\n"
+
+#: diff.cpp:1778 diff.cpp:1792
+msgid "Severe Internal Error"
+msgstr "Ernstige interne fout"
+
+#: directorymergewindow.cpp:136
+msgid "Mix of links and normal files."
+msgstr "Mix van koppelingen en bestanden."
+
+#: directorymergewindow.cpp:143
+msgid "Link: "
+msgstr "Koppeling: "
+
+#: directorymergewindow.cpp:151
+msgid "Size. "
+msgstr "Grootte: "
+
+#: directorymergewindow.cpp:164 directorymergewindow.cpp:174
+msgid "Date & Size: "
+msgstr "Datum en grootte: "
+
+#: directorymergewindow.cpp:184 directorymergewindow.cpp:190
+#, kde-format
+msgid "Creating temp copy of %1 failed."
+msgstr "Het aanmaken van de tijdelijke kopie van %1 is mislukt."
+
+#: directorymergewindow.cpp:201 directorymergewindow.cpp:209
+#, kde-format
+msgid "Opening %1 failed."
+msgstr "Het openen van %1 is mislukt."
+
+#: directorymergewindow.cpp:213
+msgid "Comparing file..."
+msgstr "Bestand wordt vergeleken..."
+
+#: directorymergewindow.cpp:223 directorymergewindow.cpp:229
+#, kde-format
+msgid "Error reading from %1"
+msgstr "Fout bij het lezen van %1"
+
+#: directorymergewindow.cpp:358
+msgid "Name"
+msgstr "Naam"
+
+#: directorymergewindow.cpp:358
+msgid "Operation"
+msgstr "Handeling"
+
+#: directorymergewindow.cpp:358
+msgid "Status"
+msgstr "Status"
+
+#: directorymergewindow.cpp:359
+msgid "Unsolved"
+msgstr "Niet opgelost"
+
+#: directorymergewindow.cpp:359
+msgid "Solved"
+msgstr "Opgelost"
+
+#: directorymergewindow.cpp:359
+msgid "Nonwhite"
+msgstr "Niet-wit"
+
+#: directorymergewindow.cpp:359
+msgid "White"
+msgstr "Wit"
+
+#: directorymergewindow.cpp:388
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort "
+"the merge and rescan the directory?"
+msgstr ""
+"U bent momenteel bezig met het samenvoegen van een map. Wilt u dat, of wilt "
+"u het samenvoegen afbreken en de map opnieuw inlezen?"
+
+#: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655
+#: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823
+msgid "Warning"
+msgstr "Waarschuwing"
+
+#: directorymergewindow.cpp:390 directorymergewindow.cpp:2965
+msgid "Rescan"
+msgstr "Opnieuw inlezen"
+
+#: directorymergewindow.cpp:391 pdiff.cpp:1081
+msgid "Continue Merging"
+msgstr "Doorgaan met samenvoegen"
+
+#: directorymergewindow.cpp:548
+msgid "Opening of directories failed:"
+msgstr "Het openen van de mappen is mislukt:"
+
+#: directorymergewindow.cpp:551
+#, kde-format
+msgid "Dir A \"%1\" does not exist or is not a directory.\n"
+msgstr "Map A \"%1\" bestaat niet of is geen map.\n"
+
+#: directorymergewindow.cpp:554
+#, kde-format
+msgid "Dir B \"%1\" does not exist or is not a directory.\n"
+msgstr "Map B \"%1\" bestaat niet of is geen map.\n"
+
+#: directorymergewindow.cpp:557
+#, kde-format
+msgid "Dir C \"%1\" does not exist or is not a directory.\n"
+msgstr "Map C \"%1\" bestaat niet of is geen map.\n"
+
+#: directorymergewindow.cpp:559
+msgid "Directory Open Error"
+msgstr "Fout bij openen van map"
+
+#: directorymergewindow.cpp:567
+msgid ""
+"The destination directory must not be the same as A or B when three "
+"directories are merged.\n"
+"Check again before continuing."
+msgstr ""
+"De doelmap kan niet hetzelfde zijn als A of B als er drie mappen worden "
+"samengevoegd.\n"
+"Controleer dit opnieuw voordat u doorgaat."
+
+#: directorymergewindow.cpp:569
+msgid "Parameter Warning"
+msgstr "Parameter-waarschuwing"
+
+#: directorymergewindow.cpp:574
+msgid "Scanning directories..."
+msgstr "Directorypen worden geanalyseerd..."
+
+#: directorymergewindow.cpp:607
+msgid "Reading Directory A"
+msgstr "Inlezen van map A"
+
+#: directorymergewindow.cpp:629
+msgid "Reading Directory B"
+msgstr "Inlezen van map B"
+
+#: directorymergewindow.cpp:651
+msgid "Reading Directory C"
+msgstr "Inlezen van map C"
+
+#: directorymergewindow.cpp:677
+msgid "Some subdirectories were not readable in"
+msgstr "Sommige submappen zijn niet ingelezen"
+
+#: directorymergewindow.cpp:682
+msgid "Check the permissions of the subdirectories."
+msgstr "Controleer de toegangsrechten van de submappen."
+
+#: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737
+#: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233
+#: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328
+msgid "Ready."
+msgstr "Gereed."
+
+#: directorymergewindow.cpp:735
+msgid "Directory Comparison Status"
+msgstr "Status van mappenvergelijking"
+
+#: directorymergewindow.cpp:736
+msgid "Number of subdirectories:"
+msgstr "Aantal submappen:"
+
+#: directorymergewindow.cpp:737
+msgid "Number of equal files:"
+msgstr "Aantal identieke bestanden:"
+
+#: directorymergewindow.cpp:738
+msgid "Number of different files:"
+msgstr "Aantal verschillende bestanden:"
+
+#: directorymergewindow.cpp:741
+msgid "Number of manual merges:"
+msgstr "Aantal handmatige samenvoegingen:"
+
+#: directorymergewindow.cpp:912
+msgid "This affects all merge operations."
+msgstr "Dit heeft effect op alle samenvoegingen."
+
+#: directorymergewindow.cpp:913
+msgid "Changing All Merge Operations"
+msgstr "Verandering van alle samenvoegingen"
+
+#: directorymergewindow.cpp:1312
+msgid "Processing "
+msgstr "Voortgang"
+
+#: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742
+msgid "To do."
+msgstr "Onvoltooid."
+
+#: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996
+msgid "Copy A to B"
+msgstr "A naar B kopiëren"
+
+#: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997
+msgid "Copy B to A"
+msgstr "B naar A kopiëren"
+
+#: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998
+msgid "Delete A"
+msgstr "A verwijderen"
+
+#: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999
+msgid "Delete B"
+msgstr "B verwijderen"
+
+#: directorymergewindow.cpp:1814
+msgid "Delete A & B"
+msgstr "A & B verwijderen"
+
+#: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001
+msgid "Merge to A"
+msgstr "Samenvoegen met A"
+
+#: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002
+msgid "Merge to B"
+msgstr "Samenvoegen met B"
+
+#: directorymergewindow.cpp:1817
+msgid "Merge to A & B"
+msgstr "Samenvoegen met A & B"
+
+#: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993
+msgid "Delete (if exists)"
+msgstr "Verwijderen (indien voorhanden)"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+#: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869
+msgid "Merge"
+msgstr "Samenvoegen"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+msgid "Merge (manual)"
+msgstr "Samenvoegen (handmatig)"
+
+#: directorymergewindow.cpp:1824
+msgid "Error: Conflicting File Types"
+msgstr "Fout: botsende bestandstypen"
+
+#: directorymergewindow.cpp:1825
+msgid "Error: Changed and Deleted"
+msgstr "Fout: gewijzigd en verwijderd"
+
+#: directorymergewindow.cpp:1826
+msgid "Error: Dates are equal but files are not."
+msgstr "Fout: de datums zijn hetzelfde, maar de bestanden niet."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906
+msgid "This operation is currently not possible."
+msgstr "Deze handeling is momenteel niet beschikbaar."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174
+msgid "Operation Not Possible"
+msgstr "Handeling niet mogelijk"
+
+#: directorymergewindow.cpp:1945
+msgid ""
+"This should never happen: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"If you know how to reproduce this, please contact the program author."
+msgstr ""
+"Dit zou niet mogen gebeuren: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"Als u dit kunt reproduceren, neem dan contact op met de auteur van dit "
+"programma."
+
+#: directorymergewindow.cpp:1945
+msgid "Program Error"
+msgstr "Programmafout"
+
+#: directorymergewindow.cpp:1956
+msgid "An error occurred while copying.\n"
+msgstr "Er deed zich een fout voor tijdens het kopiëren.\n"
+
+#: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025
+#: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105
+#: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123
+#: directorymergewindow.cpp:2374
+msgid "Error"
+msgstr "Fout"
+
+#: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375
+msgid "Merge Error"
+msgstr "Fout bij samenvoegen"
+
+#: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380
+msgid "Error."
+msgstr "Fout."
+
+#: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272
+#: directorymergewindow.cpp:2312
+msgid "Done."
+msgstr "Gereed."
+
+#: directorymergewindow.cpp:1990
+msgid "Not saved."
+msgstr "Niet opgeslagen."
+
+#: directorymergewindow.cpp:2025
+msgid "Unknown merge operation. (This must never happen!)"
+msgstr "Onbekende samenvoeging. (Dit mag niet voorkomen!)"
+
+#: directorymergewindow.cpp:2057
+msgid "Unknown merge operation."
+msgstr "Onbekende samenvoeging."
+
+#: directorymergewindow.cpp:2072
+msgid ""
+"The merge is about to begin.\n"
+"\n"
+"Choose \"Do it\" if you have read the instructions and know what you are "
+"doing.\n"
+"Choosing \"Simulate it\" will tell you what would happen.\n"
+"\n"
+"Be aware that this program still has beta status and there is NO WARRANTY "
+"whatsoever! Make backups of your vital data!"
+msgstr ""
+"De samenvoeging kan nu beginnen.\n"
+"\n"
+"Kies \"Starten\" als u de instructies hebt gelezen een weet waar u mee bezig "
+"bent.\n"
+"Door \"Simulatie\" te kiezen ziet u wat er zou kunnen gebeuren.\n"
+"\n"
+"Waarschuwing: dit programma bevindt zich in een ontwikkelstadium. Er is dus "
+"GEEN ENKELE GARANTIE dat het programma naar behoren zal werken. Maak "
+"reservekopieën van uw vitale gegevens!"
+
+#: directorymergewindow.cpp:2077
+msgid "Starting Merge"
+msgstr "Samenvoeging starten"
+
+#: directorymergewindow.cpp:2078
+msgid "Do It"
+msgstr "Starten"
+
+#: directorymergewindow.cpp:2079
+msgid "Simulate It"
+msgstr "Simuleren"
+
+#: directorymergewindow.cpp:2105
+msgid ""
+"The highlighted item has a different type in the different directories. "
+"Select what to do."
+msgstr ""
+"Het gemarkeerde item is van een verschillend type in de verschillende "
+"mappen. Kies wat er moet gebeuren."
+
+#: directorymergewindow.cpp:2114
+msgid ""
+"The modification dates of the file are equal but the files are not. Select "
+"what to do."
+msgstr ""
+"De wijzigingsdatums van het bestanden zijn gelijk, maar de bestanden niet. "
+"Kies wat er moet gebeuren."
+
+#: directorymergewindow.cpp:2123
+msgid ""
+"The highlighted item was changed in one directory and deleted in the other. "
+"Select what to do."
+msgstr ""
+"Het gemarkeerde item is gewijzigd in één map en verwijderd in de andere. "
+"Kies wat er moet gebeuren."
+
+#: directorymergewindow.cpp:2174
+msgid ""
+"This operation is currently not possible because directory merge is "
+"currently running."
+msgstr ""
+"Deze handeling is niet mogelijk omdat er momenteel een map wordt "
+"samengevoegd."
+
+#: directorymergewindow.cpp:2234
+msgid ""
+"There was an error in the last step.\n"
+"Do you want to continue with the item that caused the error or do you want "
+"to skip this item?"
+msgstr ""
+"Er deed zich een fout voor tijdens de laatste stap.\n"
+"Wilt u doorgaan met het item dat de fout veroorzaakte of wilt u dit item "
+"overslaan?"
+
+#: directorymergewindow.cpp:2236
+msgid "Continue merge after an error"
+msgstr "Samenvoegen voortzetten na een foutmelding"
+
+#: directorymergewindow.cpp:2237
+msgid "Continue With Last Item"
+msgstr "Verdergaan met het laatste item"
+
+#: directorymergewindow.cpp:2238
+msgid "Skip Item"
+msgstr "Item overslaan"
+
+#: directorymergewindow.cpp:2272
+msgid "Skipped."
+msgstr "Overgeslagen."
+
+#: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493
+msgid "In progress..."
+msgstr "In uitvoering..."
+
+#: directorymergewindow.cpp:2327
+msgid "Merge operation complete."
+msgstr "De samenvoeging is voltooid."
+
+#: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330
+msgid "Merge Complete"
+msgstr "Samenvoeging voltooid"
+
+#: directorymergewindow.cpp:2340
+msgid ""
+"Simulated merge complete: Check if you agree with the proposed operations."
+msgstr ""
+"Samenvoegsimulatie is voltooid. Controleer of u akkoord kunt gaan met de "
+"voorgestelde handelingen."
+
+#: directorymergewindow.cpp:2374
+msgid "An error occurred. Press OK to see detailed information.\n"
+msgstr "Er deed zich een fout voor. Klik op OK voor meer details.\n"
+
+#: directorymergewindow.cpp:2406
+#, kde-format
+msgid "Error: While deleting %1: Creating backup failed."
+msgstr "Fout tijdens het wissen van %1: reservekopie aanmaken is mislukt."
+
+#: directorymergewindow.cpp:2413
+#, kde-format
+msgid "delete directory recursively( %1 )"
+msgstr "map ( %1 ) recursief wissen"
+
+#: directorymergewindow.cpp:2415
+#, kde-format
+msgid "delete( %1 )"
+msgstr "wissen ( %1 )"
+
+#: directorymergewindow.cpp:2430
+msgid "Error: delete dir operation failed while trying to read the directory."
+msgstr ""
+"Fout: het wissen van de map is mislukt omdat de map niet kon worden geopend."
+
+#: directorymergewindow.cpp:2449
+#, kde-format
+msgid "Error: rmdir( %1 ) operation failed."
+msgstr "Fout: handeling voor map verwijderen( %1 ) is mislukt."
+
+#: directorymergewindow.cpp:2459
+msgid "Error: delete operation failed."
+msgstr "Fout: wissen is mislukt."
+
+#: directorymergewindow.cpp:2485
+#, kde-format
+msgid "manual merge( %1, %2, %3 -> %4)"
+msgstr "handmatig samenvoegen ( %1, %2, %3 -> %4)"
+
+#: directorymergewindow.cpp:2488
+msgid ""
+"     Note: After a manual merge the user should continue by pressing F7."
+msgstr ""
+"     Opmerking: na een handmatige samenvoeging dient de gebruiker verder te "
+"gaan via F7."
+
+#: directorymergewindow.cpp:2513
+#, kde-format
+msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed."
+msgstr ""
+"Fout: kopiëren( %1 -> %2 ) is mislukt. De bestaande bestemming kon niet "
+"gewist worden."
+
+#: directorymergewindow.cpp:2522
+#, kde-format
+msgid "copyLink( %1 -> %2 )"
+msgstr "Koppeling kopiëren ( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2533
+msgid "Error: copyLink failed: Remote links are not yet supported."
+msgstr ""
+"Fout: koppeling kopiëren is mislukt: externe koppelingen worden vooralsnog "
+"niet ondersteund."
+
+#: directorymergewindow.cpp:2539
+msgid "Error: copyLink failed."
+msgstr "Fout: koppeling kopiëren is mislukt."
+
+#: directorymergewindow.cpp:2564
+#, kde-format
+msgid "copy( %1 -> %2 )"
+msgstr "kopiëren ( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2590
+#, kde-format
+msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination."
+msgstr ""
+"Fout tijdens het hernoemen ( %1 -> %2 ): de bestaande bestemming kan niet "
+"worden gewist."
+
+#: directorymergewindow.cpp:2596
+#, kde-format
+msgid "rename( %1 -> %2 )"
+msgstr "hernoemen( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2605
+msgid "Error: Rename failed."
+msgstr "Fout: hernoemen is mislukt."
+
+#: directorymergewindow.cpp:2623
+#, kde-format
+msgid "Error during makeDir of %1. Cannot delete existing file."
+msgstr ""
+"Fout tijdens het aanmaken van de map %1. Bestaand bestand kan niet worden "
+"gewist."
+
+#: directorymergewindow.cpp:2639
+#, kde-format
+msgid "makeDir( %1 )"
+msgstr "Directory aanmaken( %1 )"
+
+#: directorymergewindow.cpp:2649
+msgid "Error while creating directory."
+msgstr "Fout bij het aanmaken van de map."
+
+#: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784
+msgid "Dest"
+msgstr "Doel"
+
+#: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709
+msgid "Dir"
+msgstr "Directory"
+
+#: directorymergewindow.cpp:2678
+msgid "Type"
+msgstr "Type"
+
+#: directorymergewindow.cpp:2678
+msgid "Size"
+msgstr "Grootte"
+
+#: directorymergewindow.cpp:2679
+msgid "Attr"
+msgstr "Attr"
+
+#: directorymergewindow.cpp:2679
+msgid "Last Modification"
+msgstr "Laatste wijziging"
+
+#: directorymergewindow.cpp:2679
+msgid "Link-Destination"
+msgstr "Koppelingsbestemming"
+
+#: directorymergewindow.cpp:2709 difftextwindow.cpp:401
+msgid "File"
+msgstr "Bestand"
+
+#: directorymergewindow.cpp:2726
+msgid "not available"
+msgstr "niet beschikbaar"
+
+#: directorymergewindow.cpp:2746
+msgid "A (Dest): "
+msgstr "A (doel): "
+
+#: directorymergewindow.cpp:2749
+msgid "A (Base): "
+msgstr "A (basis): "
+
+#: directorymergewindow.cpp:2755
+msgid "B (Dest): "
+msgstr "B (doel): "
+
+#: directorymergewindow.cpp:2763
+msgid "C (Dest): "
+msgstr "C (doel): "
+
+#: directorymergewindow.cpp:2769
+msgid "Dest: "
+msgstr "Doel: "
+
+#: directorymergewindow.cpp:2836
+msgid "Save Directory Merge State As..."
+msgstr "Staat van mappen samenvoegen opslaan als..."
+
+#: directorymergewindow.cpp:2959
+msgid "Start/Continue Directory Merge"
+msgstr "Directorysamenvoeging starten/voortzetten"
+
+#: directorymergewindow.cpp:2960
+msgid "Run Operation for Current Item"
+msgstr "Handeling uitvoeren voor huidig item"
+
+#: directorymergewindow.cpp:2961
+msgid "Compare Selected File"
+msgstr "Geselecteerde bestand vergelijken"
+
+#: directorymergewindow.cpp:2962
+msgid "Merge Current File"
+msgstr "Huidig bestand samenvoegen"
+
+#: directorymergewindow.cpp:2962
+msgid ""
+"Merge\n"
+"File"
+msgstr ""
+"Samenvoegen\n"
+"Bestand"
+
+#: directorymergewindow.cpp:2963
+msgid "Fold All Subdirs"
+msgstr "Alle submappen invouwen"
+
+#: directorymergewindow.cpp:2964
+msgid "Unfold All Subdirs"
+msgstr "Alle submappen uitvouwen"
+
+#: directorymergewindow.cpp:2968
+msgid "Choose A for All Items"
+msgstr "Voor alle items A kiezen"
+
+#: directorymergewindow.cpp:2969
+msgid "Choose B for All Items"
+msgstr "Voor alle items B kiezen"
+
+#: directorymergewindow.cpp:2970
+msgid "Choose C for All Items"
+msgstr "Voor alle items C kiezen"
+
+#: directorymergewindow.cpp:2971
+msgid "Auto-Choose Operation for All Items"
+msgstr "Handeling voor alle items automatisch kiezen"
+
+#: directorymergewindow.cpp:2972
+msgid "No Operation for All Items"
+msgstr "Geen handeling voor alle items"
+
+#: directorymergewindow.cpp:2977
+msgid "Show Identical Files"
+msgstr "Identieke bestanden tonen"
+
+#: directorymergewindow.cpp:2977
+msgid ""
+"Identical\n"
+"Files"
+msgstr ""
+"Identieke\n"
+"Bestanden"
+
+#: directorymergewindow.cpp:2978
+msgid "Show Different Files"
+msgstr "Verschillende bestanden tonen"
+
+#: directorymergewindow.cpp:2979
+msgid "Show Files only in A"
+msgstr "Bestanden alleen in A tonen"
+
+#: directorymergewindow.cpp:2979
+msgid ""
+"Files\n"
+"only in A"
+msgstr ""
+"Bestanden\n"
+"alleen in A"
+
+#: directorymergewindow.cpp:2980
+msgid "Show Files only in B"
+msgstr "Bestanden alleen in B tonen"
+
+#: directorymergewindow.cpp:2980
+msgid ""
+"Files\n"
+"only in B"
+msgstr ""
+"Bestanden\n"
+"alleen in B"
+
+#: directorymergewindow.cpp:2981
+msgid "Show Files only in C"
+msgstr "Bestanden alleen in C tonen"
+
+#: directorymergewindow.cpp:2981
+msgid ""
+"Files\n"
+"only in C"
+msgstr ""
+"Bestanden\n"
+"alleen in C"
+
+#: directorymergewindow.cpp:2985
+msgid "Compare Explicitly Selected Files"
+msgstr "Expliciet geselecteerde bestand vergelijken"
+
+#: directorymergewindow.cpp:2986
+msgid "Merge Explicitly Selected Files"
+msgstr "Expliciet geselecteerde bestanden samenvoegen"
+
+#: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995
+msgid "Do Nothing"
+msgstr "Niets doen"
+
+#: directorymergewindow.cpp:2989
+msgid "A"
+msgstr "A"
+
+#: directorymergewindow.cpp:2990
+msgid "B"
+msgstr "B"
+
+#: directorymergewindow.cpp:2991
+msgid "C"
+msgstr "C"
+
+#: directorymergewindow.cpp:3000
+msgid "Delete A && B"
+msgstr "A && B verwijderen"
+
+#: directorymergewindow.cpp:3003
+msgid "Merge to A && B"
+msgstr "Samenvoegen met A && B"
+
+#: main.cpp:74 main.cpp:76
+msgid "Ignored. (User defined.)"
+msgstr "Genegeerd. (Gebruiker gedefinieerd)."
+
+#: main.cpp:162
+msgid "kdiff3"
+msgstr "kdiff3"
+
+#: main.cpp:164
+msgid "Tool for Comparison and Merge of Files and Directories"
+msgstr "Hulpmiddel voor het vergelijken en samenvoegen van bestanden en mappen"
+
+#: main.cpp:165
+msgid "(c) 2002-2011 Joachim Eibl"
+msgstr "(c) 2002-2011 Joachim Eibl"
+
+#: main.cpp:172 kdiff3_part.cpp:303
+msgid "Joachim Eibl"
+msgstr "Joachim Eibl"
+
+#: main.cpp:173
+msgid "Eike Sauer"
+msgstr "Eike Sauer"
+
+#: main.cpp:173
+msgid "Bugfixes, Debian package maintainer"
+msgstr "Bugfixes, Debian pakketonderhouder"
+
+#: main.cpp:174
+msgid "Sebastien Fricker"
+msgstr "Sebastien Fricker"
+
+#: main.cpp:174
+msgid "Windows installer"
+msgstr "Installatieprogramma voor Windows"
+
+#: main.cpp:175
+msgid "Stephan Binner"
+msgstr "Stephan Binner"
+
+#: main.cpp:175
+msgid "i18n-help"
+msgstr "i18n-help"
+
+#: main.cpp:176
+msgid "Stefan Partheymueller"
+msgstr "Stefan Partheymueller"
+
+#: main.cpp:176
+msgid "Clipboard-patch"
+msgstr "Van klembord"
+
+#: main.cpp:177
+msgid "David Faure"
+msgstr "David Faure"
+
+#: main.cpp:177
+msgid "KIO-Help"
+msgstr "KIO-Help"
+
+#: main.cpp:178
+msgid "Bernd Gehrmann"
+msgstr "Bernd Gehrmann"
+
+#: main.cpp:178
+msgid "Class CvsIgnoreList from Cervisia"
+msgstr "Class CvsIgnoreList uit Cervisia"
+
+#: main.cpp:179
+msgid "Andre Woebbeking"
+msgstr "Andre Woebbeking"
+
+#: main.cpp:179
+msgid "Class StringMatcher"
+msgstr "Class StringMatcher"
+
+#: main.cpp:180
+msgid "Michael Denio"
+msgstr "Michael Denio"
+
+#: main.cpp:180
+msgid "Directory Equality-Coloring patch"
+msgstr "Kleur van gelijke mappen"
+
+#: main.cpp:181
+msgid "Manfred Koehler"
+msgstr "Manfred Koehler"
+
+#: main.cpp:181
+msgid "Fix for slow startup on Windows"
+msgstr "Reparatie voor het langzaam starten onder Windows"
+
+#: main.cpp:182
+msgid "Sergey Zorin"
+msgstr "Sergey Zorin"
+
+#: main.cpp:182
+msgid "Diff Ext for Windows"
+msgstr "Diff Ext voor Windows"
+
+#: main.cpp:183
+msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+
+#: main.cpp:183
+msgid "GNU-Diffutils"
+msgstr "GNU-Diffutils"
+
+#: main.cpp:184
+msgid "Tino Boellsterling, Timothy Mee"
+msgstr "Tino Boellsterling, Timothy Mee"
+
+#: main.cpp:184
+msgid "Intensive test, use and feedback"
+msgstr "Intensieve test, gebruik en terugkoppeling"
+
+#: main.cpp:185
+msgid "Michael Schmidt"
+msgstr "Michael Schmidt"
+
+#: main.cpp:185
+msgid "Mac support"
+msgstr "Ondersteuning voor Mac"
+
+#: main.cpp:186
+msgid "Valentin Rusu"
+msgstr "Valentin Rusu"
+
+#: main.cpp:186 main.cpp:187
+msgid "KDE4 porting"
+msgstr "Overdracht naar KDE4"
+
+#: main.cpp:187
+msgid "Albert Astals Cid"
+msgstr "Albert Astals Cid"
+
+#: main.cpp:188
+msgid "Silvan Scherrer"
+msgstr "Silvan Scherrer"
+
+#: main.cpp:188
+msgid "OS2 port"
+msgstr "Overbrengen naar OS2"
+
+#: main.cpp:190
+msgid "+ Many thanks to those who reported bugs and contributed ideas!"
+msgstr "En iedereen bedankt die fouten heeft gemeld en met ideeën kwam!"
+
+#: main.cpp:196
+msgid "Merge the input."
+msgstr "Invoer samenvoegen."
+
+#: main.cpp:197
+msgid "Explicit base file. For compatibility with certain tools."
+msgstr ""
+"Expliciet basisbestand. Voor compatibiliteit met sommige hulpprogramma's."
+
+#: main.cpp:198
+msgid "Output file. Implies -m. E.g.: -o newfile.txt"
+msgstr "Uitvoerbestand. -m is inbegrepen. Bijv.: -o nieuwbestand.txt"
+
+#: main.cpp:199
+msgid "Output file, again. (For compatibility with certain tools.)"
+msgstr ""
+"Uitvoerbestand, opnieuw (voor compatibiliteit met sommige hulpprogramma's)."
+
+#: main.cpp:200
+msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)"
+msgstr ""
+"Geen grafisch venster als alle conflicten automatisch oplosbaar zijn ('-o "
+"bestand' is nodig)."
+
+#: main.cpp:201
+msgid "Don't solve conflicts automatically. (For compatibility...)"
+msgstr "Conflicten niet automatisch oplossen (voor compatibiliteit ...)."
+
+#: main.cpp:202
+msgid "Visible name replacement for input file 1 (base)."
+msgstr "Zichtbare naamvervanging voor invoerbestand 1 (basis)."
+
+#: main.cpp:203
+msgid "Visible name replacement for input file 2."
+msgstr "Zichtbare naamvervanging voor invoerbestand 2."
+
+#: main.cpp:204
+msgid "Visible name replacement for input file 3."
+msgstr "Zichtbare naamvervanging voor invoerbestand 3."
+
+#: main.cpp:205
+msgid "Alternative visible name replacement. Supply this once for every input."
+msgstr ""
+"Alternatieve zichtbare naamvervanging. Ditmaal voor elke invoer opgeven."
+
+#: main.cpp:206
+msgid ""
+"Override a config setting. Use once for every setting. E.g.: --cs "
+"\"AutoAdvance=1\""
+msgstr ""
+"Omzeil een instelling. Gebruik dit eenmalig voor elke instelling. Bijv. --cs "
+"\"AutoAdvance=1\""
+
+#: main.cpp:207
+msgid "Show list of config settings and current values."
+msgstr "Een lijst tonen met instellingen en huidige waarden."
+
+#: main.cpp:208
+msgid "Use a different config file."
+msgstr "Een ander configuratiebestand gebruiken."
+
+#: main.cpp:211
+msgid "file1 to open (base, if not specified via --base)"
+msgstr ""
+"Eerste bestand om te openen (basis, indien niet opgegeven met '--base')."
+
+#: main.cpp:212
+msgid "file2 to open"
+msgstr "Tweede bestand om te openen"
+
+#: main.cpp:213
+msgid "file3 to open"
+msgstr "Derde bestand om te openen"
+
+#: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976
+#: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002
+#: mergeresultwindow.cpp:1014
+#, kde-format
+msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)"
+msgstr ""
+"Aantal overgebleven onopgeloste conflicten: %1 (waarvan %2 witruimtes zijn)"
+
+#: mergeresultwindow.cpp:303
+msgid ""
+"The output has been modified.\n"
+"If you continue your changes will be lost."
+msgstr ""
+"De uitvoer is gewijzigd.\n"
+"Als u verder gaat zullen uw wijzigingen verloren gaan."
+
+#: mergeresultwindow.cpp:834 pdiff.cpp:532
+msgid "All input files are binary equal."
+msgstr "Alle invoerbestanden zijn binair gelijk."
+
+#: mergeresultwindow.cpp:836
+msgid "All input files contain the same text."
+msgstr "Alle invoerbestanden bevatten dezelfde tekst."
+
+#: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840
+#: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540
+#, kde-format
+msgid "Files %1 and %2 are binary equal.\n"
+msgstr "Bestanden %1 en %2 zijn binair gelijk.\n"
+
+#: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841
+#: mergeresultwindow.cpp:843
+#, kde-format
+msgid "Files %1 and %2 have equal text.\n"
+msgstr "Bestanden %1 en %2 hebben dezelfde tekst.\n"
+
+#: mergeresultwindow.cpp:849
+msgid "Total number of conflicts: "
+msgstr "Totaal aantal conflicten: "
+
+#: mergeresultwindow.cpp:850
+msgid ""
+"\n"
+"Nr of automatically solved conflicts: "
+msgstr ""
+"\n"
+"Aantal automatisch opgeloste conflicten: "
+
+#: mergeresultwindow.cpp:851
+msgid ""
+"\n"
+"Nr of unsolved conflicts: "
+msgstr ""
+"\n"
+"Aantal onopgeloste conflicten: "
+
+#: mergeresultwindow.cpp:853
+msgid "Conflicts"
+msgstr "Conflicten"
+
+#: mergeresultwindow.cpp:1728
+msgid "<No src line>"
+msgstr "<Geen regel in de bron>"
+
+#: mergeresultwindow.cpp:1736
+msgid "<Merge Conflict (Whitespace only)>"
+msgstr "<Samenvoegconflict (alleen witruimte)>"
+
+#: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517
+msgid "<Merge Conflict>"
+msgstr "<Samenvoegingsconflict>"
+
+#: mergeresultwindow.cpp:2725
+msgid ""
+"Not all conflicts are solved yet.\n"
+"File not saved.\n"
+msgstr ""
+"Nog niet alle conflicten zijn opgelost.\n"
+"Bestand is niet opgeslagen.\n"
+
+#: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736
+msgid "Conflicts Left"
+msgstr "Er zijn nog onopgeloste conflicten"
+
+#: mergeresultwindow.cpp:2734
+msgid ""
+"There is a line end style conflict. Please choose the line end style "
+"manually.\n"
+"File not saved.\n"
+msgstr ""
+"Er is een conflict met de stijl aan het regeleinde. Kies deze stijl "
+"handmatig.\n"
+"Bestand is niet opgeslagen.\n"
+
+#: mergeresultwindow.cpp:2748
+msgid ""
+"\n"
+"\n"
+"Creating backup failed. File not saved."
+msgstr ""
+"\n"
+"\n"
+"Het aanmaken van de reservekopie is mislukt. Het bestand is niet opgeslagen."
+
+#: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792
+msgid "File Save Error"
+msgstr "Fout bij opslaan van het bestand"
+
+#: mergeresultwindow.cpp:2792
+msgid "Error while writing."
+msgstr "Fout bij het opslaan."
+
+#: mergeresultwindow.cpp:3122
+msgid "Output"
+msgstr "Uitvoer"
+
+#: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314
+msgid "[Modified]"
+msgstr "[Gewijzigd]"
+
+#: mergeresultwindow.cpp:3141
+msgid "Encoding for saving"
+msgstr "Codering voor opslaan"
+
+#: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737
+#: optiondialog.cpp:762
+msgid "Line end style:"
+msgstr "Regeleinde:"
+
+#: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767
+msgid "Unix"
+msgstr "Unix"
+
+#: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737
+msgid "DOS"
+msgstr "DOS"
+
+#: mergeresultwindow.cpp:3229
+msgid "Conflict"
+msgstr "Conflicten"
+
+#: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263
+#: mergeresultwindow.cpp:3265
+msgid "Codec from"
+msgstr "Codec van"
+
+#: kdiff3_part.cpp:157 kdiff3_part.cpp:234
+msgid "Couldn't find files for comparison."
+msgstr "De bestanden om te vergelijken zijn niet gevonden."
+
+#: kdiff3_part.cpp:302
+msgid "KDiff3Part"
+msgstr "KDiff3Part"
+
+#: fileaccess.cpp:612
+msgid ""
+"While trying to make a backup, deleting an older backup failed. \n"
+"Filename: "
+msgstr ""
+"Het wissen van een oudere reservekopie is mislukt tijdens het aanmaken van "
+"de nieuwe reservekopie.\n"
+"Bestandsnaam: "
+
+#: fileaccess.cpp:619
+msgid ""
+"While trying to make a backup, renaming failed. \n"
+"Filenames: "
+msgstr ""
+"Tijdens het aanmaken van een reservekopie is het hernoemen mislukt. \n"
+"Bestandsnamen: "
+
+#: fileaccess.cpp:643
+#, kde-format
+msgid "Getting file status: %1"
+msgstr "Bestandstatus opvragen: %1"
+
+#: fileaccess.cpp:686
+#, kde-format
+msgid "Reading file: %1"
+msgstr "Bestand lezen: %1"
+
+#: fileaccess.cpp:723
+#, kde-format
+msgid "Writing file: %1"
+msgstr "Bestand schrijven: %1"
+
+#: fileaccess.cpp:751
+msgid "Out of memory"
+msgstr "Onvoldoende geheugen"
+
+#: fileaccess.cpp:786
+#, kde-format
+msgid "Making directory: %1"
+msgstr "Directory aanmaken: %1"
+
+#: fileaccess.cpp:806
+#, kde-format
+msgid "Removing directory: %1"
+msgstr "Directory verwijderen: %1"
+
+#: fileaccess.cpp:821
+#, kde-format
+msgid "Removing file: %1"
+msgstr "Bestand verwijderen: %1"
+
+#: fileaccess.cpp:837
+#, kde-format
+msgid "Creating symbolic link: %1 -> %2"
+msgstr "Symbolische koppeling aanmaken: %1 -> %2"
+
+#: fileaccess.cpp:864
+#, kde-format
+msgid "Renaming file: %1 -> %2"
+msgstr "Bestand hernoemen: %1 -> %2"
+
+#: fileaccess.cpp:897
+#, kde-format
+msgid "Copying file: %1 -> %2"
+msgstr "Bestand kopiëren: %1 -> %2"
+
+#: fileaccess.cpp:911
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for reading failed. Filename: "
+"%1"
+msgstr ""
+"Fout tijdens bestanden kopiëren: het openen van het bestand is mislukt.\n"
+"Bestandsnaam: %1"
+
+#: fileaccess.cpp:917
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for writing failed. Filename: "
+"%1"
+msgstr ""
+"Fout tijdens bestanden kopiëren: het bestand kon niet worden opgeslagen.\n"
+"Bestandsnaam: %1"
+
+#: fileaccess.cpp:932
+#, kde-format
+msgid "Error during file copy operation: Reading failed. Filename: %1"
+msgstr ""
+"Fout tijdens bestanden kopiëren: het openen is mislukt.\n"
+"Bestandsnaam: %1"
+
+#: fileaccess.cpp:941
+#, kde-format
+msgid "Error during file copy operation: Writing failed. Filename: %1"
+msgstr ""
+"Fout tijdens bestanden kopiëren: het opslaan is mislukt.\n"
+"Bestandsnaam: %1"
+
+#: fileaccess.cpp:1231
+msgid "Reading directory: "
+msgstr "Directory lezen: "
+
+#: fileaccess.cpp:1355
+#, kde-format
+msgid "Listing directory: %1"
+msgstr "Directory inlezen: %1"
+
+#: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396
+msgid "&Cancel"
+msgstr "Ann&uleren"
+
+#: difftextwindow.cpp:403
+msgid "Line"
+msgstr "Regel"
+
+#: difftextwindow.cpp:405
+msgid "Line not available"
+msgstr "Regel niet beschikbaar"
+
+#: difftextwindow.cpp:1703 difftextwindow.cpp:1736
+msgid "Encoding:"
+msgstr "Codering:"
+
+#: difftextwindow.cpp:1759 kdiff3.cpp:831
+msgid "Top line"
+msgstr "Bovenste regel"
+
+#: difftextwindow.cpp:1769
+msgid "End"
+msgstr "Einde"
+
+#: kdiff3.cpp:169
+msgid "Current Configuration:"
+msgstr "Huidige configuratie:"
+
+#: kdiff3.cpp:174
+msgid "Config Option Error:"
+msgstr "Fout bij configuratie-optie:"
+
+#: kdiff3.cpp:219
+msgid "Option --auto used, but no output file specified."
+msgstr "Optie '--auto' is gebruikt, maar er is geen uitvoerbestand opgegeven."
+
+#: kdiff3.cpp:369
+msgid "Option --auto ignored for directory comparison."
+msgstr "Optie '--auto' is genegeerd voor mappenvergelijking."
+
+#: kdiff3.cpp:405
+msgid "Saving failed."
+msgstr "Opslag is mislukt."
+
+#: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214
+msgid "Opening of these files failed:"
+msgstr "Het openen van deze bestanden is mislukt:"
+
+#: kdiff3.cpp:449
+msgid "File Open Error"
+msgstr "Fout bij bestanden openen"
+
+#: kdiff3.cpp:477
+msgid "Opens documents for comparison..."
+msgstr "Opent documenten voor vergelijking..."
+
+#: kdiff3.cpp:479
+msgid "Reload"
+msgstr "Opnieuw laden"
+
+#: kdiff3.cpp:482
+msgid "Saves the merge result. All conflicts must be solved!"
+msgstr ""
+"Slaat het samenvoegresultaat op. Alle conflicten dienen te worden opgelost!"
+
+#: kdiff3.cpp:484
+msgid "Saves the current document as..."
+msgstr "Slaat het huidige document op als..."
+
+#: kdiff3.cpp:487
+msgid "Print the differences"
+msgstr "Verschillen afdrukken"
+
+#: kdiff3.cpp:490
+msgid "Quits the application"
+msgstr "Sluit de toepassing"
+
+#: kdiff3.cpp:492
+msgid "Cuts the selected section and puts it to the clipboard"
+msgstr "Knipt de geselecteerde sectie uit en plaatst deze op het klembord"
+
+#: kdiff3.cpp:494
+msgid "Copies the selected section to the clipboard"
+msgstr "Kopieert de geselecteerde sectie naar het klembord"
+
+#: kdiff3.cpp:496
+msgid "Pastes the clipboard contents to current position"
+msgstr "Plakt de inhoud van het klembord op de huidige positie"
+
+#: kdiff3.cpp:498
+msgid "Select everything in current window"
+msgstr "Alles in huidig venster selecteren"
+
+#: kdiff3.cpp:500
+msgid "Search for a string"
+msgstr "Tekst opzoeken"
+
+#: kdiff3.cpp:502
+msgid "Search again for the string"
+msgstr "Opnieuw zoeken"
+
+#: kdiff3.cpp:507
+msgid "Enables/disables the statusbar"
+msgstr "Activeert/deactiveert de statusbalk"
+
+#: kdiff3.cpp:511
+msgid "Configure KDiff3..."
+msgstr "KDiff3 instellen..."
+
+#: kdiff3.cpp:532
+msgid "Go to Current Delta"
+msgstr "Ga naar huidig verschil"
+
+#: kdiff3.cpp:532
+msgid ""
+"Current\n"
+"Delta"
+msgstr ""
+"Huidig\n"
+"Verschil"
+
+#: kdiff3.cpp:534
+msgid "Go to First Delta"
+msgstr "Ga naar eerste verschil"
+
+#: kdiff3.cpp:534
+msgid ""
+"First\n"
+"Delta"
+msgstr "Ga naar eerste verschil"
+
+#: kdiff3.cpp:536
+msgid "Go to Last Delta"
+msgstr "Ga naar laatste verschil"
+
+#: kdiff3.cpp:536
+msgid ""
+"Last\n"
+"Delta"
+msgstr ""
+"Laatste\n"
+"Verschil"
+
+#: kdiff3.cpp:538
+msgid "(Skips white space differences when \"Show White Space\" is disabled.)"
+msgstr ""
+"(Slaat witruimteverschillen over als \"Witruimte tonen\" is uitgeschakeld.)"
+
+#: kdiff3.cpp:539
+msgid ""
+"(Does not skip white space differences even when \"Show White Space\" is "
+"disabled.)"
+msgstr ""
+"(Slaat witruimteverschillen niet over, zelfs  als \"Witruimte tonen\" is "
+"uitgeschakeld.)"
+
+#: kdiff3.cpp:540
+msgid "Go to Previous Delta"
+msgstr "Ga naar vorig verschil"
+
+#: kdiff3.cpp:540
+msgid ""
+"Prev\n"
+"Delta"
+msgstr ""
+"Voorgaand\n"
+"Verschil"
+
+#: kdiff3.cpp:542
+msgid "Go to Next Delta"
+msgstr "Ga naar volgend verschil"
+
+#: kdiff3.cpp:542
+msgid ""
+"Next\n"
+"Delta"
+msgstr ""
+"Volgende\n"
+"Verschil"
+
+#: kdiff3.cpp:544
+msgid "Go to Previous Conflict"
+msgstr "Ga naar vorig conflict"
+
+#: kdiff3.cpp:544
+msgid ""
+"Prev\n"
+"Conflict"
+msgstr ""
+"Vorig\n"
+"Conflict"
+
+#: kdiff3.cpp:546
+msgid "Go to Next Conflict"
+msgstr "Ga naar volgend conflict"
+
+#: kdiff3.cpp:546
+msgid ""
+"Next\n"
+"Conflict"
+msgstr ""
+"Volgend\n"
+"Conflict"
+
+#: kdiff3.cpp:548
+msgid "Go to Previous Unsolved Conflict"
+msgstr "Ga naar vorig onopgelost conflict"
+
+#: kdiff3.cpp:548
+msgid ""
+"Prev\n"
+"Unsolved"
+msgstr ""
+"Voorgaand\n"
+"Niet opgelost"
+
+#: kdiff3.cpp:550
+msgid "Go to Next Unsolved Conflict"
+msgstr "Ga naar volgend onopgelost conflict"
+
+#: kdiff3.cpp:550
+msgid ""
+"Next\n"
+"Unsolved"
+msgstr ""
+"Volgend\n"
+"Niet opgelost"
+
+#: kdiff3.cpp:552
+msgid "Select Line(s) From A"
+msgstr "Regel(s) van A selecteren"
+
+#: kdiff3.cpp:552
+msgid ""
+"Choose\n"
+"A"
+msgstr ""
+"Kies\n"
+"A"
+
+#: kdiff3.cpp:553
+msgid "Select Line(s) From B"
+msgstr "Regel(s) van B selecteren"
+
+#: kdiff3.cpp:553
+msgid ""
+"Choose\n"
+"B"
+msgstr ""
+"Kies\n"
+"B"
+
+#: kdiff3.cpp:554
+msgid "Select Line(s) From C"
+msgstr "Regel(s) van C selecteren"
+
+#: kdiff3.cpp:554
+msgid ""
+"Choose\n"
+"C"
+msgstr ""
+"Kies\n"
+"C"
+
+#: kdiff3.cpp:555
+msgid "Automatically Go to Next Unsolved Conflict After Source Selection"
+msgstr ""
+"Automatisch naar het volgende onopgeloste conflict gaan na bronselectie"
+
+#: kdiff3.cpp:555
+msgid ""
+"Auto\n"
+"Next"
+msgstr ""
+"Automatisch\n"
+"Volgende"
+
+#: kdiff3.cpp:557
+msgid "Show Space && Tabulator Characters for Differences"
+msgstr "Spaties && tabulator-tekens in verschillen tonen"
+
+#: kdiff3.cpp:557
+msgid ""
+"White\n"
+"Characters"
+msgstr ""
+"Witruimte\n"
+"Tekens"
+
+#: kdiff3.cpp:558
+msgid "Show White Space"
+msgstr "Witruimte tonen"
+
+#: kdiff3.cpp:558
+msgid ""
+"White\n"
+"Deltas"
+msgstr ""
+"Witruimte\n"
+"Verschil"
+
+#: kdiff3.cpp:560
+msgid "Show Line Numbers"
+msgstr "Regelnummering tonen"
+
+#: kdiff3.cpp:560
+msgid ""
+"Line\n"
+"Numbers"
+msgstr ""
+"Regel\n"
+"nummers"
+
+#: kdiff3.cpp:561
+msgid "Choose A Everywhere"
+msgstr "A overal kiezen"
+
+#: kdiff3.cpp:562
+msgid "Choose B Everywhere"
+msgstr "B overal kiezen"
+
+#: kdiff3.cpp:563
+msgid "Choose C Everywhere"
+msgstr "C overal kiezen"
+
+#: kdiff3.cpp:564
+msgid "Choose A for All Unsolved Conflicts"
+msgstr "A voor alle onopgeloste conflicten kiezen"
+
+#: kdiff3.cpp:565
+msgid "Choose B for All Unsolved Conflicts"
+msgstr "B voor alle onopgeloste conflicten kiezen"
+
+#: kdiff3.cpp:566
+msgid "Choose C for All Unsolved Conflicts"
+msgstr "C voor alle onopgeloste conflicten kiezen"
+
+#: kdiff3.cpp:567
+msgid "Choose A for All Unsolved Whitespace Conflicts"
+msgstr "A voor alle onopgeloste witruimteconflicten kiezen"
+
+#: kdiff3.cpp:568
+msgid "Choose B for All Unsolved Whitespace Conflicts"
+msgstr "B voor alle onopgeloste witruimteconflicten kiezen"
+
+#: kdiff3.cpp:569
+msgid "Choose C for All Unsolved Whitespace Conflicts"
+msgstr "C voor alle onopgeloste witruimteconflicten kiezen"
+
+#: kdiff3.cpp:570
+msgid "Automatically Solve Simple Conflicts"
+msgstr "Automatisch eenvoudige conflicten oplossen"
+
+#: kdiff3.cpp:571
+msgid "Set Deltas to Conflicts"
+msgstr "Elk onderscheid maken bij conflicten"
+
+#: kdiff3.cpp:572
+msgid "Run Regular Expression Auto Merge"
+msgstr "Automatisch samenvoegen d.m.v. reguliere expressie uitvoeren"
+
+#: kdiff3.cpp:573
+msgid "Automatically Solve History Conflicts"
+msgstr "Automatisch geschiedenisconflicten oplossen"
+
+#: kdiff3.cpp:574
+msgid "Split Diff At Selection"
+msgstr "Vergelijking bij selectie splitsen"
+
+#: kdiff3.cpp:575
+msgid "Join Selected Diffs"
+msgstr "Geselecteerde verschillen samenvoegen"
+
+#: kdiff3.cpp:577
+msgid "Show Window A"
+msgstr "Venster A tonen"
+
+#: kdiff3.cpp:578
+msgid "Show Window B"
+msgstr "Venster B tonen"
+
+#: kdiff3.cpp:579
+msgid "Show Window C"
+msgstr "Venster C tonen"
+
+#: kdiff3.cpp:580 kdiff3.cpp:591
+msgid "Focus Next Window"
+msgstr "Focus op volgend venster zetten"
+
+#: kdiff3.cpp:582
+msgid "Normal Overview"
+msgstr "Normaal overzicht"
+
+#: kdiff3.cpp:583
+msgid "A vs. B Overview"
+msgstr "A vs B overzicht"
+
+#: kdiff3.cpp:584
+msgid "A vs. C Overview"
+msgstr "A vs C overzicht"
+
+#: kdiff3.cpp:585
+msgid "B vs. C Overview"
+msgstr "B vs C overzicht"
+
+#: kdiff3.cpp:586
+msgid "Word Wrap Diff Windows"
+msgstr "Regels afbreken in vensters met verschillen"
+
+#: kdiff3.cpp:587
+msgid "Add Manual Diff Alignment"
+msgstr "Handmatige uitlijning van vergelijking toevoegen"
+
+#: kdiff3.cpp:588
+msgid "Clear All Manual Diff Alignments"
+msgstr "Alle handmatige uitlijningen van vergelijkingen wissen"
+
+#: kdiff3.cpp:593
+msgid "Focus Prev Window"
+msgstr "Focus op vorig venster zetten"
+
+#: kdiff3.cpp:594
+msgid "Toggle Split Orientation"
+msgstr "Splitsen van vensters omschakelen"
+
+#: kdiff3.cpp:596
+msgid "Dir && Text Split Screen View"
+msgstr "Directory- en tekstweergave splitsen in hoofdvenster"
+
+#: kdiff3.cpp:598
+msgid "Toggle Between Dir && Text View"
+msgstr "Tussen map- en tekstweergave wisselen"
+
+#: kdiff3.cpp:654 pdiff.cpp:1812
+msgid "The merge result hasn't been saved."
+msgstr "Het resultaat van de samenvoeging is niet opgeslagen."
+
+#: kdiff3.cpp:656
+msgid "Save && Quit"
+msgstr "Opslaan && afsluiten"
+
+#: kdiff3.cpp:657
+msgid "Quit Without Saving"
+msgstr "Afsluiten zonder opslag"
+
+#: kdiff3.cpp:665 pdiff.cpp:1823
+msgid "Saving the merge result failed."
+msgstr "De opslag van het resultaat van de samenvoeging is mislukt."
+
+#: kdiff3.cpp:676 pdiff.cpp:1078
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort?"
+msgstr ""
+"U bent momenteel bezig met het samenvoegen van mappen. Wilt u toch afbreken?"
+
+#: kdiff3.cpp:701
+msgid "Saving file..."
+msgstr "Bestand wordt opgeslagen..."
+
+#: kdiff3.cpp:718
+msgid "Saving file with a new filename..."
+msgstr "Bestand wordt opgeslagen met een nieuwe naam..."
+
+#: kdiff3.cpp:781
+msgid "Printing not implemented."
+msgstr "Afdrukken niet geïmplementeerd."
+
+#: kdiff3.cpp:815
+msgid "Printing..."
+msgstr "Afdrukken..."
+
+#: kdiff3.cpp:956
+msgid "Selection"
+msgstr "Selectie"
+
+#: kdiff3.cpp:982
+msgid "Printing completed."
+msgstr "Afdrukken is voltooid."
+
+#: kdiff3.cpp:986
+msgid "Printing aborted."
+msgstr "Afdrukken is afgebroken."
+
+#: kdiff3.cpp:993
+msgid "Exiting..."
+msgstr "Programma wordt afgesloten..."
+
+#: kdiff3.cpp:1006
+msgid "Toggling toolbar..."
+msgstr "Werkbalk aan/uit..."
+
+#: kdiff3.cpp:1027
+msgid "Toggle the statusbar..."
+msgstr "De statusbalk aan- of uitzetten..."
+
+#: smalldialogs.cpp:58
+msgid "A (Base):"
+msgstr "A (basis):"
+
+#: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99
+#: smalldialogs.cpp:142
+msgid "File..."
+msgstr "Bestand..."
+
+#: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101
+#: smalldialogs.cpp:144
+msgid "Dir..."
+msgstr "Directory..."
+
+#: smalldialogs.cpp:93
+msgid "C (Optional):"
+msgstr "C (optioneel):"
+
+#: smalldialogs.cpp:116
+msgid "Swap/Copy Names ..."
+msgstr "Namen kopiëren/wisselen ..."
+
+#: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123
+#, kde-format
+msgid "Swap %1<->%2"
+msgstr "%1<->%2 omwisselen"
+
+#: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126
+#, kde-format
+msgid "Copy %1->Output"
+msgstr "%1->uitvoer kopiëren"
+
+#: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129
+#, kde-format
+msgid "Swap %1<->Output"
+msgstr "%1<->uitvoer omwisselen"
+
+#: smalldialogs.cpp:136
+msgid "Output (optional):"
+msgstr "Uitvoer (optioneel):"
+
+#: smalldialogs.cpp:168
+msgid "Configure..."
+msgstr "Instellen..."
+
+#: smalldialogs.cpp:174
+msgid "&OK"
+msgstr "&OK"
+
+#: smalldialogs.cpp:362
+msgid "Search text:"
+msgstr "Zoektekst:"
+
+#: smalldialogs.cpp:369
+msgid "Case sensitive"
+msgstr "Hoofdlettergevoelig"
+
+#: smalldialogs.cpp:372
+msgid "Search A"
+msgstr "Zoeken in A"
+
+#: smalldialogs.cpp:377
+msgid "Search B"
+msgstr "Zoeken in B"
+
+#: smalldialogs.cpp:382
+msgid "Search C"
+msgstr "Zoeken in C"
+
+#: smalldialogs.cpp:387
+msgid "Search output"
+msgstr "Zoeken in uitvoer"
+
+#: smalldialogs.cpp:392
+msgid "&Search"
+msgstr "&Zoeken"
+
+#: smalldialogs.cpp:409
+msgid "Regular Expression Tester"
+msgstr "Reguliere expressies testen"
+
+#: smalldialogs.cpp:414 optiondialog.cpp:936
+msgid "Auto merge regular expression:"
+msgstr "Reguliere expressie voor automatisch samenvoegen:"
+
+#: smalldialogs.cpp:422
+msgid "Example auto merge line:"
+msgstr "Voorbeeld autosamenvoegregel:"
+
+#: smalldialogs.cpp:424
+msgid "To test auto merge, copy a line as used in your files."
+msgstr ""
+"Voor het testen van automatisch samenvoegen, kopieer een regel die in uw "
+"bestanden wordt gebruikt."
+
+#: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494
+msgid "Match result:"
+msgstr "Resultaat van overeenkomsten:"
+
+#: smalldialogs.cpp:441 optiondialog.cpp:962
+msgid "History start regular expression:"
+msgstr "Reguliere expressie voor begin van geschiedenis:"
+
+#: smalldialogs.cpp:449
+msgid "Example history start line (with leading comment):"
+msgstr "Voorbeeld geschiedenisbeginregel (met bijhorend commentaar):"
+
+#: smalldialogs.cpp:451
+msgid ""
+"Copy a history start line as used in your files,\n"
+"including the leading comment."
+msgstr ""
+"Kopieer een geschiedenisbeginregel die u in uw bestanden gebruikt,\n"
+"inclusief een voorafgaand commentaar."
+
+#: smalldialogs.cpp:469 optiondialog.cpp:972
+msgid "History entry start regular expression:"
+msgstr "Reguliere expressie voor begin van geschiedenisitem:"
+
+#: smalldialogs.cpp:477
+msgid "History sort key order:"
+msgstr "Sorteervolgorde geschiedenis:"
+
+#: smalldialogs.cpp:485
+msgid "Example history entry start line (without leading comment):"
+msgstr ""
+"Voorbeeld van beginregel van geschiedenisitem (zonder voorafgaand "
+"commentaar):"
+
+#: smalldialogs.cpp:487
+msgid ""
+"Copy a history entry start line as used in your files,\n"
+"but omit the leading comment."
+msgstr ""
+"Kopieer een beginregel van een geschiedenisitem zoals die in uw bestanden "
+"wordt gebruikt.\n"
+"Voeg echter geen voorafgaand commentaar bij."
+
+#: smalldialogs.cpp:501
+msgid "Sort key result:"
+msgstr "Resulterende sorteersleutel:"
+
+#: smalldialogs.cpp:508
+msgid "OK"
+msgstr "OK"
+
+#: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583
+msgid "Match success."
+msgstr "Overeenkomst succesvol"
+
+#: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589
+msgid "Match failed."
+msgstr "Overeenkomst mislukt."
+
+#: smalldialogs.cpp:574
+msgid "Opening and closing parentheses do not match in regular expression."
+msgstr ""
+"Er zijn niet evenveel openings- als sluitingshaakjes in de reguliere "
+"expressie."
+
+#: optiondialog.cpp:367
+msgid "Unicode, 8 bit"
+msgstr "Unicode, 8 bit"
+
+#: optiondialog.cpp:368
+msgid "Unicode"
+msgstr "Unicode"
+
+#: optiondialog.cpp:369
+msgid "Latin1"
+msgstr "Latin1"
+
+#: optiondialog.cpp:388
+msgid "Change this if non-ASCII characters are not displayed correctly."
+msgstr "Verander dit indien niet-ascii tekens niet juist weergegeven worden."
+
+#: optiondialog.cpp:465
+msgid "Configure"
+msgstr "Configureren"
+
+#: optiondialog.cpp:531
+msgid "Font"
+msgstr "Lettertype"
+
+#: optiondialog.cpp:532
+msgid "Editor & Diff Output Font"
+msgstr "Lettertype voor editor & vergelijkingsvenster"
+
+#: optiondialog.cpp:556
+msgid "Italic font for deltas"
+msgstr "Cursief lettertype voor onderscheiden"
+
+#: optiondialog.cpp:559
+msgid ""
+"Selects the italic version of the font for differences.\n"
+"If the font doesn't support italic characters, then this does nothing."
+msgstr ""
+"Selecteert de cursieve versie van het lettertype voor verschillen.\n"
+"Indien het lettertype geen cursieve tekens ondersteunt, dan doet deze optie "
+"niets."
+
+#: optiondialog.cpp:568
+msgid "Color"
+msgstr "Kleur"
+
+#: optiondialog.cpp:569
+msgid "Colors Settings"
+msgstr "Kleurinstellingen"
+
+#: optiondialog.cpp:588
+msgid "Editor and Diff Views:"
+msgstr "Weergaven voor editor en vergelijkingen:"
+
+#: optiondialog.cpp:596
+msgid "Foreground color:"
+msgstr "Voorgrondkleur:"
+
+#: optiondialog.cpp:603
+msgid "Background color:"
+msgstr "Achtergrondkleur:"
+
+#: optiondialog.cpp:612
+msgid "Diff background color:"
+msgstr "Achtergrondkleur bij verschillen:"
+
+#: optiondialog.cpp:620
+msgid "Color A:"
+msgstr "Kleur voor A:"
+
+#: optiondialog.cpp:628
+msgid "Color B:"
+msgstr "Kleur voor B:"
+
+#: optiondialog.cpp:636
+msgid "Color C:"
+msgstr "Kleur voor C:"
+
+#: optiondialog.cpp:643
+msgid "Conflict color:"
+msgstr "Kleur voor conflicten:"
+
+#: optiondialog.cpp:651
+msgid "Current range background color:"
+msgstr "Achtergrondkleur voor huidig bereik:"
+
+#: optiondialog.cpp:659
+msgid "Current range diff background color:"
+msgstr "Achtergrondkleur voor verschillen in huidig bereik:"
+
+#: optiondialog.cpp:666
+msgid "Color for manually aligned difference ranges:"
+msgstr "Kleur voor handmatig uitgelijnde verschilbereiken:"
+
+#: optiondialog.cpp:672
+msgid "Directory Comparison View:"
+msgstr "Weergave mappenvergelijking:"
+
+#: optiondialog.cpp:678
+msgid "Newest file color:"
+msgstr "Kleur nieuwste bestand:"
+
+#: optiondialog.cpp:682
+msgid ""
+"Changing this color will only be effective when starting the next directory "
+"comparison."
+msgstr ""
+"Het wijzigen van deze kleur is pas van kracht als u de volgende "
+"mappenvergelijking start."
+
+#: optiondialog.cpp:687
+msgid "Oldest file color:"
+msgstr "Kleur oudste bestand:"
+
+#: optiondialog.cpp:695
+msgid "Middle age file color:"
+msgstr "Kleur bestand met gemiddelde leeftijd:"
+
+#: optiondialog.cpp:703
+msgid "Color for missing files:"
+msgstr "Kleur voor ontbrekende bestanden:"
+
+#: optiondialog.cpp:717
+msgid "Editor"
+msgstr "Editor"
+
+#: optiondialog.cpp:718
+msgid "Editor Behavior"
+msgstr "Editorgedrag"
+
+#: optiondialog.cpp:732
+msgid "Tab inserts spaces"
+msgstr "Tab voegt spaties in"
+
+#: optiondialog.cpp:735
+msgid ""
+"On: Pressing tab generates the appropriate number of spaces.\n"
+"Off: A tab character will be inserted."
+msgstr ""
+"Aan: de Tab-toets voegt het passende aantal spaties in.\n"
+"Uit: een tabulatorteken zal ingevoegd worden."
+
+#: optiondialog.cpp:741
+msgid "Tab size:"
+msgstr "Tabgrootte:"
+
+#: optiondialog.cpp:747
+msgid "Auto indentation"
+msgstr "Automatisch inspringen"
+
+#: optiondialog.cpp:750
+msgid "On: The indentation of the previous line is used for a new line.\n"
+msgstr ""
+"Aan: de insprong van de vorige regel wordt gebruikt voor een nieuwe regel.\n"
+
+#: optiondialog.cpp:754
+msgid "Auto copy selection"
+msgstr "Automatische kopieerselectie"
+
+#: optiondialog.cpp:757
+msgid ""
+"On: Any selection is immediately written to the clipboard.\n"
+"Off: You must explicitely copy e.g. via Ctrl-C."
+msgstr ""
+"Aan: elke selectie zal onmiddellijk op het klembord geplaatst worden.\n"
+"Uit: kopiëren gebeurt expliciet, bijvoorbeeld via Ctrl-C."
+
+#: optiondialog.cpp:768
+msgid "Dos/Windows"
+msgstr "Dos/Windows"
+
+#: optiondialog.cpp:769
+msgid "Autodetect"
+msgstr "Autodetecteren"
+
+#: optiondialog.cpp:772
+msgid ""
+"Sets the line endings for when an edited file is saved.\n"
+"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A"
+msgstr ""
+"Stelt de regeleinden in voor als een bewerkt bestand wordt opgeslagen.\n"
+"DOS/Windows: CR+LF' UNIX: LF; met CR=0, LF=A"
+
+#: optiondialog.cpp:784
+msgid "Diff"
+msgstr "Verschil"
+
+#: optiondialog.cpp:785
+msgid "Diff Settings"
+msgstr "Instellingen voor verschil"
+
+#: optiondialog.cpp:809
+msgid "Treat as white space."
+msgstr "Als witruimte behandelen."
+
+#: optiondialog.cpp:811
+msgid "Ignore numbers"
+msgstr "Getallen negeren"
+
+#: optiondialog.cpp:814
+msgid ""
+"Ignore number characters during line matching phase. (Similar to Ignore "
+"white space.)\n"
+"Might help to compare files with numeric data."
+msgstr ""
+"Numerieke tekens negeren tijdens de vergelijkingfase. (Gelijk aan witruimtes "
+"negeren.)\n"
+"Kan helpen bij het vergelijken van bestanden met numerieke gegevens."
+
+#: optiondialog.cpp:819
+msgid "Ignore C/C++ comments"
+msgstr "C/C++ commentaar negeren"
+
+#: optiondialog.cpp:821
+msgid "Treat C/C++ comments like white space."
+msgstr "C/C++ commentaar als witruimtes behandelen."
+
+#: optiondialog.cpp:825
+msgid "Ignore case"
+msgstr "Geen onderscheid hoofd-/kleine letters"
+
+#: optiondialog.cpp:828
+msgid "Treat case differences like white space changes. ('a'<=>'A')"
+msgstr ""
+"Verschil in hoofd-/kleine letters behandelen als witruimteverschillen ('a' "
+"<=> 'A')"
+
+#: optiondialog.cpp:832
+msgid "Preprocessor command:"
+msgstr "Preprocessorcommando:"
+
+#: optiondialog.cpp:836
+msgid "User defined pre-processing. (See the docs for details.)"
+msgstr ""
+"Gebruikergedefinieerde voorbehandeling (zie documentatie voor meer details.)"
+
+#: optiondialog.cpp:839
+msgid "Line-matching preprocessor command:"
+msgstr "Preprocessor-commando alleen voor regelcontroles:"
+
+#: optiondialog.cpp:843
+msgid ""
+"This pre-processor is only used during line matching.\n"
+"(See the docs for details.)"
+msgstr ""
+"Deze preprocessor wordt alleen gebruikt bij regelcontroles.\n"
+"(Zie documentatie voor meer details)"
+
+#: optiondialog.cpp:846
+msgid "Try hard (slower)"
+msgstr "Grondig zoeken (trager)"
+
+#: optiondialog.cpp:849
+msgid ""
+"Enables the --minimal option for the external diff.\n"
+"The analysis of big files will be much slower."
+msgstr ""
+"Activeert de optie '--minimal' voor een externe vergelijking.\n"
+"De analyse van grote bestanden zal veel trager zijn."
+
+#: optiondialog.cpp:854
+msgid "Align B and C for 3 input files"
+msgstr "Lijn B en C uit voor 3 invoerbestanden"
+
+#: optiondialog.cpp:857
+msgid ""
+"Try to align B and C when comparing or merging three input files.\n"
+"Not recommended for merging because merge might get more complicated.\n"
+"(Default is off.)"
+msgstr ""
+"Probeer B en C uit te lijnen bij het vergelijken of samenvoegen van drie "
+"invoerbestanden.\n"
+"Niet aanbevolen voor samenvoegen omdat dit veel gecompliceerder kan worden.\n"
+"(Standaard is uit.)"
+
+#: optiondialog.cpp:870
+msgid "Merge Settings"
+msgstr "Instellingen samenvoegen"
+
+#: optiondialog.cpp:885
+msgid "Auto advance delay (ms):"
+msgstr "Vertraging voor automatisch doorgaan (ms):"
+
+#: optiondialog.cpp:890
+msgid ""
+"When in Auto-Advance mode the result of the current selection is shown \n"
+"for the specified time, before jumping to the next conflict. Range: 0-2000 ms"
+msgstr ""
+"In de modus  \"Automatisch doorgaan\" wordt het resultaat van de huidige "
+"selectie getoond gedurende de ingestelde tijd, voordat men naar het volgende "
+"conflict springt.\n"
+"Bereik: 0-2000 ms"
+
+#: optiondialog.cpp:895
+msgid "Show info dialogs"
+msgstr "Toon informatievensters"
+
+#: optiondialog.cpp:897
+msgid "Show a dialog with information about the number of conflicts."
+msgstr "Toon een venster met informatie over het aantal conflicten."
+
+#: optiondialog.cpp:900
+msgid "White space 2-file merge default:"
+msgstr "Standaardsamenvoeging van witruimtes bij 2 bestanden:"
+
+#: optiondialog.cpp:904 optiondialog.cpp:917
+msgid "Manual Choice"
+msgstr "Handmatige keuze"
+
+#: optiondialog.cpp:908 optiondialog.cpp:922
+msgid ""
+"Allow the merge algorithm to automatically select an input for white-space-"
+"only changes."
+msgstr ""
+"Bij het samenvoegen van bestanden toestaan dat er automatisch een oplossing "
+"gekozen wordt voor witruimteconflicten."
+
+#: optiondialog.cpp:913
+msgid "White space 3-file merge default:"
+msgstr "Standaardsamenvoeging van witruimtes bij 3 bestanden:"
+
+#: optiondialog.cpp:927
+msgid "Automatic Merge Regular Expression"
+msgstr "Reguliere expressie voor automatisch samenvoegen"
+
+#: optiondialog.cpp:940
+msgid ""
+"Regular expression for lines where KDiff3 should automatically choose one "
+"source.\n"
+"When a line with a conflict matches the regular expression then\n"
+"- if available - C, otherwise B will be chosen."
+msgstr ""
+"Reguliere expressies voor regels waar KDiff3 automatisch voor een bepaalde "
+"bron moet kiezen.\n"
+"Als een regel met een conflict overeenkomt met de reguliere expressie, dan\n"
+" - indien beschikbaar - C, anders wordt B gekozen."
+
+#: optiondialog.cpp:946
+msgid "Run regular expression auto merge on merge start"
+msgstr "Bij starten van samenvoegen automatisch reguliere expressie gebruiken"
+
+#: optiondialog.cpp:948
+msgid ""
+"Run the merge for auto merge regular expressions\n"
+"immediately when a merge starts.\n"
+msgstr ""
+"Onmiddellijk het automatisch samenvoegen beginnen aan de hand\n"
+"van reguliere expressies als een samenvoeging wordt gestart.\n"
+
+#: optiondialog.cpp:953
+msgid "Version Control History Merging"
+msgstr "amenvoegen aan de hand van versiebeheergeschiedenis"
+
+#: optiondialog.cpp:966
+msgid ""
+"Regular expression for the start of the version control history entry.\n"
+"Usually this line contains the \"$Log$\" keyword.\n"
+"Default value: \".*\\$Log.*\\$.*\""
+msgstr ""
+"Reguliere expressie voor begin van de geschiedenis van het versiebeheer.\n"
+"Normaal gesproken bevat deze regel het trefwoord \"$Log$\".\n"
+"Standaard waarde: \".*\\$Log.*\\$.*\""
+
+#: optiondialog.cpp:984
+msgid ""
+"A version control history entry consists of several lines.\n"
+"Specify the regular expression to detect the first line (without the leading "
+"comment).\n"
+"Use parentheses to group the keys you want to use for sorting.\n"
+"If left empty, then KDiff3 assumes that empty lines separate history "
+"entries.\n"
+"See the documentation for details."
+msgstr ""
+"Een geschiedenisitem van het versiebeheer bevat enkele regels.\n"
+"Geef de reguliere expressie op om de eerste regel te detecteren (zonder het "
+"voorafgaande commentaar).\n"
+"Maak gebruik van haakjes om de sleutels te groeperen die u voor het sorteren "
+"wilt gebruiken.\n"
+"Wanneer dit wordt leeggelaten zal KDiff3 er van uitgaan dat lege regels de "
+"geschiedenisitems scheidt.\n"
+"Raadpleeg de documentatie voor meer details."
+
+#: optiondialog.cpp:992
+msgid "History merge sorting"
+msgstr "Geschiedenis samenvoegend sorteren"
+
+#: optiondialog.cpp:994
+msgid "Sort version control history by a key."
+msgstr "Geschiedenis versiebeheer sorteren met een sleutel."
+
+#: optiondialog.cpp:1004
+msgid "History entry start sort key order:"
+msgstr "Sorteervolgorde van begin van geschiedenisitems:"
+
+#: optiondialog.cpp:1008
+msgid ""
+"Each pair of parentheses used in the regular expression for the history "
+"start entry\n"
+"groups a key that can be used for sorting.\n"
+"Specify the list of keys (that are numbered in order of occurrence\n"
+"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n"
+"If left empty, then no sorting will be done.\n"
+"See the documentation for details."
+msgstr ""
+"Ieder koppel haakjes in de reguliere expressie groepeert een sleutel die "
+"gebruikt kan\n"
+"worden voor sorteren.\n"
+"Geef de lijst met sleutels op (genummerd in volgorde van hun voorkomen\n"
+"beginnend bij 1) met een komma als scheidingsteken (bijv."
+"\"4,5,6,1,2,3,7\").\n"
+"Wanneer dit wordt leeg gelaten zal er niet gesorteerd worden.\n"
+"Raadpleeg de documentatie voor meer details."
+
+#: optiondialog.cpp:1019
+msgid "Merge version control history on merge start"
+msgstr "Geschiedenis versiebeheer samenvoegen bij aanvang van samenvoegen"
+
+#: optiondialog.cpp:1021
+msgid "Run version control history automerge on merge start."
+msgstr ""
+"Automatisch samenvoegen van geschiedenis versiebeheer bij aanvang "
+"samenvoegen."
+
+#: optiondialog.cpp:1025
+msgid "Max number of history entries:"
+msgstr "Max. aantal items in geschiedenis:"
+
+#: optiondialog.cpp:1028
+msgid "Cut off after specified number. Use -1 for infinite number of entries."
+msgstr ""
+"Afknippen vanaf het opgegeven getal. Gebruik -1 voor een onbeperkt aantal "
+"items."
+
+#: optiondialog.cpp:1032
+msgid "Test your regular expressions"
+msgstr "Uw reguliere expressies testen"
+
+#: optiondialog.cpp:1037
+msgid "Irrelevant merge command:"
+msgstr "Irrelevant samenvoegcommando:"
+
+#: optiondialog.cpp:1041
+msgid ""
+"If specified this script is run after automerge\n"
+"when no other relevant changes were detected.\n"
+"Called with the parameters: filename1 filename2 filename3"
+msgstr ""
+"Indien opgegeven zal dit script uitgevoerd worden na het automatisch "
+"samenvoegen,\n"
+"als er geen relevante wijzigingen waren gevonden.\n"
+"Wordt aangeroepen met de argumenten: bestandsnaam1 bestandsnaam2 "
+"bestandsnaam 3"
+
+#: optiondialog.cpp:1047
+msgid "Auto save and quit on merge without conflicts"
+msgstr "Automatisch opslaan en afsluiten bij samenvoegingen zonder conflicten"
+
+#: optiondialog.cpp:1050
+msgid ""
+"If KDiff3 was started for a file-merge from the command line and all\n"
+"conflicts are solvable without user interaction then automatically save and "
+"quit.\n"
+"(Similar to command line option \"--auto\".)"
+msgstr ""
+"Als Kdiff3 vanaf de commandoregel is gestart om bestanden samen te voegen\n"
+"en alle conflicten waren oplosbaar zonder dat ingrijpen van de gebruiker "
+"nodig was, sla het resultaat dan op en sluit het programma af.\n"
+"(Vergelijkbaar met de commandoregeloptie  \"--auto\")."
+
+#: optiondialog.cpp:1061 optiondialog.cpp:1062
+msgid "Directory"
+msgstr "Map"
+
+#: optiondialog.cpp:1075
+msgid "Recursive directories"
+msgstr "Recursieve mappen"
+
+#: optiondialog.cpp:1077
+msgid "Whether to analyze subdirectories or not."
+msgstr "Bepaalt of submappen wel of niet worden ingelezen."
+
+#: optiondialog.cpp:1079
+msgid "File pattern(s):"
+msgstr "Bestandspatroon(en):"
+
+#: optiondialog.cpp:1084
+msgid ""
+"Pattern(s) of files to be analyzed. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Patroon(en) van bestanden om in te lezen. \n"
+"Jokers: '*' en '?'\n"
+"Meerdere patronen kunnen opgegeven worden d.m.v. het scheidingsteken ';'"
+
+#: optiondialog.cpp:1090
+msgid "File-anti-pattern(s):"
+msgstr "Bestand antipatroon(en):"
+
+#: optiondialog.cpp:1095
+msgid ""
+"Pattern(s) of files to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Patroon(en) van bestanden die niet zullen worden ingelezen. \n"
+"Jokers: '*' en '?'\n"
+"Meerdere patronen kunnen opgegeven worden d.m.v. het scheidingsteken ';'"
+
+#: optiondialog.cpp:1101
+msgid "Dir-anti-pattern(s):"
+msgstr "Directory antipatroon(en):"
+
+#: optiondialog.cpp:1106
+msgid ""
+"Pattern(s) of directories to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Patro(o)n(en) van mappen die niet zullen worden ingelezen. \n"
+"Jokers: '*' en '?'\n"
+"Meerdere patronen kunnen opgegeven worden d.m.v. het scheidingsteken: ';'"
+
+#: optiondialog.cpp:1112
+msgid "Use .cvsignore"
+msgstr ".cvsignore gebruiken"
+
+#: optiondialog.cpp:1115
+msgid ""
+"Extends the antipattern to anything that would be ignored by CVS.\n"
+"Via local \".cvsignore\" files this can be directory specific."
+msgstr ""
+"Breidt het antipatroon uit met alles dat genegeerd zou worden door CVS.\n"
+"Via lokale \".cvsignore\"-bestanden kan dit mapspecifiek zijn."
+
+#: optiondialog.cpp:1120
+msgid "Find hidden files and directories"
+msgstr "Verborgen bestanden en mappen zoeken"
+
+#: optiondialog.cpp:1123
+msgid "Finds files and directories with the hidden attribute."
+msgstr "Zoekt naar verborgen bestanden en mappen."
+
+#: optiondialog.cpp:1125
+msgid "Finds files and directories starting with '.'."
+msgstr "Zoekt naar bestanden en mappen die beginnen met '.'."
+
+#: optiondialog.cpp:1129
+msgid "Follow file links"
+msgstr "Bestandskoppelingen volgen"
+
+#: optiondialog.cpp:1132
+msgid ""
+"On: Compare the file the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+"Aan: vergelijk het bestand naarwaar de koppeling verwijst.\n"
+"Uit: vergelijk de koppelingen."
+
+#: optiondialog.cpp:1137
+msgid "Follow directory links"
+msgstr "Directorykoppelingen volgen"
+
+#: optiondialog.cpp:1140
+msgid ""
+"On: Compare the directory the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+"Aan: vergelijk de map waarnaar de koppeling verwijst.\n"
+"Uit: vergelijk de koppelingen."
+
+#: optiondialog.cpp:1156
+msgid "Case sensitive filename comparison"
+msgstr "Hoofdlettergevoelige bestandsnaamvergelijking"
+
+#: optiondialog.cpp:1159
+msgid ""
+"The directory comparison will compare files or directories when their names "
+"match.\n"
+"Set this option if the case of the names must match. (Default for Windows is "
+"off, otherwise on.)"
+msgstr ""
+"De mappenvergelijking zal bestanden en mappen vergelijken als de namen ervan "
+"overeenkomen.\n"
+"Schakel deze optie in als ook het gebruik van hoofd-/kleine letters overeen "
+"moet komen. (Standaard voor Windows is uit, anders aan.)"
+
+#: optiondialog.cpp:1163
+msgid "File Comparison Mode"
+msgstr "Bestandsvergelijkingsmodus"
+
+#: optiondialog.cpp:1169
+msgid "Binary comparison"
+msgstr "Binaire vergelijking"
+
+#: optiondialog.cpp:1170
+msgid "Binary comparison of each file. (Default)"
+msgstr "Binaire vergelijking van elk bestand (standaard)"
+
+#: optiondialog.cpp:1173
+msgid "Full analysis"
+msgstr "Volledige analyse"
+
+#: optiondialog.cpp:1174
+msgid ""
+"Do a full analysis and show statistics information in extra columns.\n"
+"(Slower than a binary comparison, much slower for binary files.)"
+msgstr ""
+"Doe een volledige analyse en toon de statistieken in extra kolommen.\n"
+"(Trager dan een binaire vergelijking, veel trager bij binaire bestanden.)"
+
+#: optiondialog.cpp:1178
+msgid "Trust the size and modification date (unsafe)"
+msgstr "Grootte en wijzigingsdatum vertrouwen (onveilig)"
+
+#: optiondialog.cpp:1179
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"Files with equal contents but different modification dates will appear as "
+"different.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"Gaat er van uit dat de bestanden gelijk zijn als de wijzigingsdatum en de "
+"bestandsgroottes gelijk zijn.\n"
+"Bestanden met gelijke inhoud maar verschillende wijzigingsdatums zullen als "
+"verschillend worden aangemerkt.\n"
+"Nuttig voor grote mappen en trage netwerken."
+
+#: optiondialog.cpp:1184
+msgid ""
+"Trust the size and date, but use binary comparison if date does not match "
+"(unsafe)"
+msgstr ""
+"Vertrouw de grootte en de datum, maar gebruik binaire vergelijking als de "
+"datums niet overeen komen (onveilig)"
+
+#: optiondialog.cpp:1185
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"If the dates are not equal but the sizes are, use binary comparison.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"Gaat er van uit dat de bestanden gelijk zijn als de wijzigingsdatum en de "
+"bestandsgroottes gelijk zijn.\n"
+"Als de datums niet gelijk zijn maar de groottes wel, dan wordt een binaire "
+"vergelijking toegepast.\n"
+"Nuttig voor grote mappen of trage netwerken."
+
+#: optiondialog.cpp:1190
+msgid "Trust the size (unsafe)"
+msgstr "Grootte vertrouwen (onveilig)"
+
+#: optiondialog.cpp:1191
+msgid ""
+"Assume that files are equal if their file lengths are equal.\n"
+"Useful for big directories or slow networks when the date is modified during "
+"download."
+msgstr ""
+"Gaat er van uit dat bestanden gelijk zijn als de bestandsgroottes gelijk "
+"zijn.\n"
+"Nuttig voor grote mappen en trage netwerken wanneer de datum verandert "
+"tijdens een download."
+
+#: optiondialog.cpp:1199
+msgid "Synchronize directories"
+msgstr "Directorypen synchroniseren"
+
+#: optiondialog.cpp:1202
+msgid ""
+"Offers to store files in both directories so that\n"
+"both directories are the same afterwards.\n"
+"Works only when comparing two directories without specifying a destination."
+msgstr ""
+"Bestanden worden in beide mappen opgeslagen zodat beide achteraf hetzelfde "
+"zijn.\n"
+"Werkt alleen wanneer twee mappen vergeleken worden zonder dat er een "
+"bestemming is opgegeven."
+
+#: optiondialog.cpp:1208
+msgid "White space differences considered equal"
+msgstr "Witruimteverschillen worden als gelijk beschouwd"
+
+#: optiondialog.cpp:1211
+msgid ""
+"If files differ only by white space consider them equal.\n"
+"This is only active when full analysis is chosen."
+msgstr ""
+"Als bestanden alleen qua witruimtes van elkaar verschillen worden ze als "
+"gelijk beschouwd.\n"
+"Dit is alleen actief als volledige analyse is gekozen."
+
+#: optiondialog.cpp:1217
+msgid "Copy newer instead of merging (unsafe)"
+msgstr "Nieuwere bestanden kopiëren in plaats van samenvoegen (onveilig)"
+
+#: optiondialog.cpp:1220
+msgid ""
+"Don't look inside, just take the newer file.\n"
+"(Use this only if you know what you are doing!)\n"
+"Only effective when comparing two directories."
+msgstr ""
+"De inhoud niet controleren, enkel het nieuwe bestand nemen.\n"
+"(Gebruik dit enkel als u weet wat u doet!)\n"
+"Alleen effectief wanneer men twee mappen met elkaar vergelijkt."
+
+#: optiondialog.cpp:1225
+msgid "Backup files (.orig)"
+msgstr "Reservekopie aanmaken (.orig)"
+
+#: optiondialog.cpp:1228
+msgid ""
+"If a file would be saved over an old file, then the old file\n"
+"will be renamed with a '.orig' extension instead of being deleted."
+msgstr ""
+"Wanneer een bestand bewaard moet worden over een oud bestand, dan zal het "
+"oude bestand worden hernoemd met als extensie '.orig', i.p.v. gewist te "
+"worden."
+
+#: optiondialog.cpp:1301 optiondialog.cpp:1302
+msgid "Regional Settings"
+msgstr "Regionale instellingen"
+
+#: optiondialog.cpp:1402
+msgid "Language (restart required)"
+msgstr "Taal (herstart vereist)"
+
+#: optiondialog.cpp:1445
+msgid ""
+"Choose the language of the GUI strings or \"Auto\".\n"
+"For a change of language to take place, quit and restart KDiff3."
+msgstr ""
+"Kies de taal voor de GUI-tekst, of \"Auto\".\n"
+"Om de taal te wijzigen dient u KDiff3 te herstarten."
+
+#: optiondialog.cpp:1463
+msgid "Use the same encoding for everything:"
+msgstr "Dezelfde codering gebruiken voor alles:"
+
+#: optiondialog.cpp:1466
+msgid ""
+"Enable this allows to change all encodings by changing the first only.\n"
+"Disable this if different individual settings are needed."
+msgstr ""
+"Schakel dit in dit om alle coderingen te wijzigen door alleen de eerste aan "
+"te passen.\n"
+"Schakel dit uit als er verschillende individuele instellingen nodig zijn."
+
+#: optiondialog.cpp:1471
+msgid "Note: Local Encoding is "
+msgstr "Opmerking: lokale codering is "
+
+#: optiondialog.cpp:1475
+msgid "File Encoding for A:"
+msgstr "Bestandscodering voor A:"
+
+#: optiondialog.cpp:1481
+msgid ""
+"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n"
+"If the file is not Unicode then the selected encoding will be used as "
+"fallback.\n"
+"(Unicode detection depends on the first bytes of a file.)"
+msgstr ""
+"Indien ingeschakeld zal Unicode-codering (UTF-16 of UTF-8 worden "
+"gedetecteerd.\n"
+"Als de bestandscodering niet gedetecteerd wordt zal de geselecteerde "
+"codering worden gebruikt om op terug te vallen.\n"
+"(Unicode-detectie is afhankelijk van de eerste bytes in een bestand.)"
+
+#: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503
+msgid "Auto Detect Unicode"
+msgstr "Unicode autodetecteren"
+
+#: optiondialog.cpp:1490
+msgid "File Encoding for B:"
+msgstr "Bestandscodering voor B:"
+
+#: optiondialog.cpp:1499
+msgid "File Encoding for C:"
+msgstr "Bestandscodering voor C:"
+
+#: optiondialog.cpp:1508
+msgid "File Encoding for Merge Output and Saving:"
+msgstr "Bestandscodering voor samenvoeguitvoer en opslag:"
+
+#: optiondialog.cpp:1512
+msgid "Auto Select"
+msgstr "Automatisch selecteren"
+
+#: optiondialog.cpp:1515
+msgid ""
+"If enabled then the encoding from the input files is used.\n"
+"In ambiguous cases a dialog will ask the user to choose the encoding for "
+"saving."
+msgstr ""
+"Indien ingeschakeld zal de codering van de invoerbestanden worden gebruikt.\n"
+"Bij twijfelgevallen zult u gevraagd worden welke codering er voor het "
+"opslaan gebruikt moet worden."
+
+#: optiondialog.cpp:1519
+msgid "File Encoding for Preprocessor Files:"
+msgstr "Bestandscodering voor preprocessorbestanden:"
+
+#: optiondialog.cpp:1530
+msgid "Right To Left Language"
+msgstr "Rechts-naar-links-taal"
+
+#: optiondialog.cpp:1533
+msgid ""
+"Some languages are read from right to left.\n"
+"This setting will change the viewer and editor accordingly."
+msgstr ""
+"Sommige talen worden van rechts naar links gelezen.\n"
+"Deze instelling zal de viewer en editor hierop aanpassen."
+
+#: optiondialog.cpp:1548
+msgid "Integration"
+msgstr "Integratie"
+
+#: optiondialog.cpp:1549
+msgid "Integration Settings"
+msgstr "Integratie-instellingen"
+
+#: optiondialog.cpp:1563
+msgid "Command line options to ignore:"
+msgstr "Te negeren commandoregelopties:"
+
+#: optiondialog.cpp:1568
+msgid ""
+"List of command line options that should be ignored when KDiff3 is used by "
+"other tools.\n"
+"Several values can be specified if separated via ';'\n"
+"This will suppress the \"Unknown option\" error."
+msgstr ""
+"Lijst van commandoregelopties die zullen worden genegeerd als KDiff3 door "
+"andere programma's wordt gebruikt.\n"
+"Meerdere waarden kunnen worden opgegeven door ze van elkaar te scheiden met "
+"';'\n"
+"Dit onderdrukt de foutmelding \"Onbekende optie\"."
+
+#: optiondialog.cpp:1575
+msgid "Quit also via Escape key"
+msgstr "Stoppen kan ook via de Escape-toets"
+
+#: optiondialog.cpp:1578
+msgid ""
+"Fast method to exit.\n"
+"For those who are used to using the Escape key."
+msgstr ""
+"Snelle methode om te eindigen.\n"
+"Voor hen die het gewoon zijn om de Escape-toets te gebruiken."
+
+#: optiondialog.cpp:1583
+msgid "Integrate with ClearCase"
+msgstr "Integreren met ClearCase"
+
+#: optiondialog.cpp:1586
+msgid ""
+"Integrate with Rational ClearCase from IBM.\n"
+"Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n"
+"(Only enabled when ClearCase \"bin\" directory is in the path.)"
+msgstr ""
+"Integreren met Rational ClearCase van IBM.\n"
+"Wijzigt het \"map\"-bestand in ClearCase-submap \"lib/mgrs\"\n"
+"(Alleen geactiveerd als ClearCase \"bin\"-map zich in het zoekpad bevindt)."
+
+#: optiondialog.cpp:1592
+msgid "Remove ClearCase Integration"
+msgstr "ClearCase-integratie verwijderen"
+
+#: optiondialog.cpp:1595
+msgid ""
+"Restore the old \"map\" file from before doing the ClearCase integration."
+msgstr ""
+"Herstel het oude \"map\"-bestand voordat de ClearCase-integratie wordt "
+"uitgevoerd."
+
+#: optiondialog.cpp:1680
+msgid "Incompatible Font"
+msgstr "Incompatibel lettertype"
+
+#: optiondialog.cpp:1681
+msgid "Continue at Own Risk"
+msgstr "Doorgaan op eigen risico"
+
+#: optiondialog.cpp:1682
+msgid "Select Another Font"
+msgstr "Ander lettertype kiezen"
+
+#: optiondialog.cpp:1717
+msgid "This resets all options. Not only those of the current topic."
+msgstr "Dit zet alle opties terug, niet alleen die van het huidige onderwerp."
+
+#: pdiff.cpp:260
+msgid "PreprocessorCmd: "
+msgstr "Preprocessorcommando: "
+
+#: pdiff.cpp:265
+msgid "The following option(s) you selected might change data:\n"
+msgstr "De volgende optie(s) die hebt gekozen kunnen data wijzigen:\n"
+
+#: pdiff.cpp:266
+msgid ""
+"\n"
+"Most likely this is not wanted during a merge.\n"
+"Do you want to disable these settings or continue with these settings active?"
+msgstr ""
+"\n"
+"Dit is meestal niet gewenst bij een samenvoeging.\n"
+"Wilt u deze instellingen uitschakelen of doorgaan met deze instellingen "
+"actief?"
+
+#: pdiff.cpp:268
+msgid "Option Unsafe for Merging"
+msgstr "Optie onveilig voor samenvoeging"
+
+#: pdiff.cpp:269
+msgid "Use These Options During Merge"
+msgstr "Deze opties gebruiken tijdens samenvoegen"
+
+#: pdiff.cpp:270
+msgid "Disable Unsafe Options"
+msgstr "Onveilige opties uitschakelen"
+
+#: pdiff.cpp:300
+msgid "Loading A"
+msgstr "A laden"
+
+#: pdiff.cpp:304
+msgid "Loading B"
+msgstr "B laden"
+
+#: pdiff.cpp:321 pdiff.cpp:347
+msgid "Diff: A <-> B"
+msgstr "Vergelijking: A <-> B"
+
+#: pdiff.cpp:327 pdiff.cpp:372
+msgid "Linediff: A <-> B"
+msgstr "Regelvergelijking: A <-> B"
+
+#: pdiff.cpp:338
+msgid "Loading C"
+msgstr "C laden"
+
+#: pdiff.cpp:350
+msgid "Diff: B <-> C"
+msgstr "Vergelijking: B <-> C"
+
+#: pdiff.cpp:353
+msgid "Diff: A <-> C"
+msgstr "Vergelijking: A <-> C"
+
+#: pdiff.cpp:375
+msgid "Linediff: B <-> C"
+msgstr "Regelvergelijking: B <-> C"
+
+#: pdiff.cpp:378
+msgid "Linediff: A <-> C"
+msgstr "Regelvergelijking: A <-> C"
+
+#: pdiff.cpp:534
+msgid "All input files contain the same text, but are not binary equal."
+msgstr ""
+"Alle invoerbestanden bevatten dezelfde tekst, maar zijn binair gezien niet "
+"gelijk."
+
+#: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541
+#, kde-format
+msgid "Files %1 and %2 have equal text, but are not binary equal. \n"
+msgstr ""
+"Bestanden %1 en %2 hebben dezelfde tekst, maar zijn binair gezien ongelijk.\n"
+
+#: pdiff.cpp:551
+msgid ""
+"Some inputfiles don't seem to be pure textfiles.\n"
+"Note that the KDiff3-merge was not meant for binary data.\n"
+"Continue at your own risk."
+msgstr ""
+"Sommige invoerbestanden blijken geen pure tekstbestanden te zijn.\n"
+"Opmerking: KDiff3 is niet bedoeld voor binaire gegevens.\n"
+"U kunt verder gaan op eigen risico."
+
+#: pdiff.cpp:566
+#, kde-format
+msgid ""
+"Some input characters could not be converted to valid unicode.\n"
+"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n"
+"Don't save the result if unsure. Continue at your own risk.\n"
+"Affected input files are in %1."
+msgstr ""
+"Enkele invoertekens konden niet worden geconverteerd naar geldige unicode.\n"
+"Misschien gebruikt u de verkeerde codec. (bijv. UTF-8 voor niet UTF-8 "
+"bestanden).\n"
+"Sla het resultaat niet op als u niet zeker bent. Doorgaan op eigen risico.\n"
+"Betrokken invoerbestanden zitten in %1."
+
+#: pdiff.cpp:1080
+msgid "Abort"
+msgstr "Afbreken"
+
+#: pdiff.cpp:1087 pdiff.cpp:1175
+msgid "Opening files..."
+msgstr "Bestanden openen..."
+
+#: pdiff.cpp:1152 pdiff.cpp:1223
+msgid "File open error"
+msgstr "Fout bij openen van bestand"
+
+#: pdiff.cpp:1255
+msgid "Cutting selection..."
+msgstr "Selectie wordt geknipt..."
+
+#: pdiff.cpp:1276
+msgid "Copying selection to clipboard..."
+msgstr "Selectie wordt op het klembord geplaatst..."
+
+#: pdiff.cpp:1292
+msgid "Inserting clipboard contents..."
+msgstr "De inhoud van het klembord wordt ingevoegd..."
+
+#: pdiff.cpp:1814
+msgid "Save && Continue"
+msgstr "Opslaan && doorgaan"
+
+#: pdiff.cpp:1815
+msgid "Continue Without Saving"
+msgstr "Doorgaan zonder opslaan"
+
+#: pdiff.cpp:2018
+msgid "Search complete."
+msgstr "Zoeken voltooid."
+
+#: pdiff.cpp:2018
+msgid "Search Complete"
+msgstr "Zoeken voltooid"
+
+#: pdiff.cpp:2252
+msgid "Nothing is selected in either diff input window."
+msgstr "Er is niets geselecteerd in beide invoervensters voor de vergelijking."
+
+#: pdiff.cpp:2252
+msgid "Error while adding manual diff range"
+msgstr "Fout bij het toevoegen van handmatig vergelijkingsbereik"
+
+#: kdiff3_shell.cpp:76
+msgid ""
+"Could not initialize the KDiff3 part.\n"
+"This usually happens due to an installation problem. Please read the README-"
+"file in the source package for details."
+msgstr ""
+"Kon het Kdiff3-deel niet initialiseren.\n"
+"Dit doet zich meestal voor door een installatieprobleem. Lees a.u.b. het "
+"README-bestand van het broncodepakket voor meer details."
+
+#: rc.cpp:1
+msgctxt "NAME OF TRANSLATORS"
+msgid "Your names"
+msgstr "Rinse de Vries, Sander Koning, Bram Schoenmakers, Freek de Kruijf "
+
+#: rc.cpp:2
+msgctxt "EMAIL OF TRANSLATORS"
+msgid "Your emails"
+msgstr ""
+"rinsedevries@kde.nl, sanderkoning@kde.nl, bramschoenmakers@kde.nl, f.de."
+"kruijf@hetnet.nl"
+
+#. i18n: file: kdiff3_part.rc:4
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:5
+msgid "&KDiff3"
+msgstr "&KDiff3"
+
+#. i18n: file: kdiff3_part.rc:13
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:8
+msgid "Configure KDiff3"
+msgstr "KDiff3 instellen"
+
+#. i18n: file: kdiff3_part.rc:16
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:11
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#. i18n: file: kdiff3_shell.rc:106
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:38
+msgid "Main Toolbar"
+msgstr "Hoofdwerkbalk"
diff --git a/po/nl/kdiff3fileitemactionplugin.po b/po/nl/kdiff3fileitemactionplugin.po
new file mode 100644 (file)
index 0000000..2481af3
--- /dev/null
@@ -0,0 +1,100 @@
+# Copyright (C) YEAR This_file_is_part_of_KDE
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Freek de Kruijf <freekdekruijf@kde.nl>, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-05-06 10:51+0200\n"
+"Last-Translator: Freek de Kruijf <freekdekruijf@kde.nl>\n"
+"Language-Team: Dutch <kde-i18n-nl@kde.org>\n"
+"Language: nl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.1\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: kdiff3fileitemaction.cpp:94
+msgid "KDiff3 ..."
+msgstr "KDiff3 ..."
+
+#: kdiff3fileitemaction.cpp:125
+#, kde-format
+msgid "Compare with %1"
+msgstr "Vergelijken met %1"
+
+#: kdiff3fileitemaction.cpp:131
+#, kde-format
+msgid "Merge with %1"
+msgstr "Samenvoegen met %1"
+
+#: kdiff3fileitemaction.cpp:137
+#, kde-format
+msgid "Save '%1' for later"
+msgstr "'%1' voor later gebruik opslaan"
+
+#: kdiff3fileitemaction.cpp:143
+msgid "3-way merge with base"
+msgstr "3-weg samenvoeging met basis"
+
+#: kdiff3fileitemaction.cpp:150
+msgid "Compare with ..."
+msgstr "Vergelijken met..."
+
+#: kdiff3fileitemaction.cpp:162
+msgid "Clear list"
+msgstr "Lijst wissen"
+
+#: kdiff3fileitemaction.cpp:170
+msgid "Compare"
+msgstr "Vergelijken"
+
+#: kdiff3fileitemaction.cpp:176
+msgid "3 way comparison"
+msgstr "3-weg vergelijking"
+
+#: kdiff3fileitemaction.cpp:180
+msgid "About KDiff3 menu plugin ..."
+msgstr "Info over KDiff3-menuplugin..."
+
+#: kdiff3fileitemaction.cpp:284
+msgid ""
+"KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+"KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n"
+"KDiff3 homepagina: http://kdiff3.sourceforge.net\n"
+"\n"
+
+#: kdiff3fileitemaction.cpp:286
+msgid ""
+"Using the contextmenu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else \"Save\" the first file for later. It "
+"will appear in the \"Compare With ...\" submenu. Then use \"Compare With\" "
+"on second file.\n"
+"For a 3-way merge first \"Save\" the base file, then the branch to merge and "
+"choose \"3-way merge with base\" on the other branch which will be used as "
+"destination.\n"
+"Same also applies to directory comparison and merge."
+msgstr ""
+"De contextmenu-extensie gebruiken:\n"
+"Voor eenvoudige vergelijking van twee geselecteerde bestanden, kies "
+"\"Vergelijken\".\n"
+"Als het andere bestand ergens anders staat, gebruik \"Opslaan\" voor het "
+"eerste bestand voor later gebruik. Het zal verschijnen in het submenu "
+"\"Vergelijken met...\". Gebruik daarna \"Vergelijken met\" voor het tweede "
+"bestand.\n"
+"Voor een 3-weg samenvoeging, gebruik eerst \"Opslaan\" voor het "
+"basisbestand, daarna de tak om mee samen te voegen en kies daarna \"3-weg "
+"samenvoeging met basis\" op de tak die gebruikt zal worden als bestemming.\n"
+"Bovenstaande is ook van toepassing op het vergelijken en samenvoegen van "
+"mappen."
+
+#: kdiff3fileitemaction.cpp:294
+msgid "About KDiff3 File Item Action Plugin"
+msgstr "Info over Plugin voor KDiff3 File Item Action"
diff --git a/po/nl/kdiff3plugin.po b/po/nl/kdiff3plugin.po
new file mode 100644 (file)
index 0000000..157d260
--- /dev/null
@@ -0,0 +1,101 @@
+# translation of kdiff3plugin.po to Dutch
+#
+# Rinse de Vries <rinsedevries@kde.nl>, 2006, 2007.
+# Kristof Bal <kristof.bal@gmail.com>, 2008.
+# Freek de Kruijf <f.de.kruijf@hetnet.nl>, 2009.
+# Freek de Kruijf <freekdekruijf@kde.nl>, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3plugin\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-05-03 12:38+0200\n"
+"Last-Translator: Freek de Kruijf <freekdekruijf@kde.nl>\n"
+"Language-Team: Dutch <kde-i18n-nl@kde.org>\n"
+"Language: nl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.1\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: kdiff3plugin.cpp:107
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#: kdiff3plugin.cpp:114
+#, kde-format
+msgid "Compare with %1"
+msgstr "Vergelijken met %1"
+
+#: kdiff3plugin.cpp:120
+#, kde-format
+msgid "Merge with %1"
+msgstr "Samenvoegen met %1"
+
+#: kdiff3plugin.cpp:126
+#, kde-format
+msgid "Save '%1' for later"
+msgstr "'%1' voor later gebruik opslaan"
+
+#: kdiff3plugin.cpp:132
+msgid "3-way merge with base"
+msgstr "3-weg samenvoeging met basis"
+
+#: kdiff3plugin.cpp:139
+msgid "Compare with ..."
+msgstr "Vergelijken met..."
+
+#: kdiff3plugin.cpp:149
+msgid "Clear list"
+msgstr "Lijst wissen"
+
+#: kdiff3plugin.cpp:157
+msgid "Compare"
+msgstr "Vergelijken"
+
+#: kdiff3plugin.cpp:163
+msgid "3 way comparison"
+msgstr "3-weg vergelijking"
+
+#: kdiff3plugin.cpp:167
+msgid "About KDiff3 menu plugin ..."
+msgstr "Info over KDiff3-menuplugin..."
+
+#: kdiff3plugin.cpp:269
+msgid ""
+"KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+"8KDif3-menuplugin: Copyright (C) 2006 Joachim Eibl\n"
+"KDiff3-website: http://kdiff3.sourceforge.net\n"
+"\n"
+
+#: kdiff3plugin.cpp:271
+msgid ""
+"Using the context menu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else, \"Save\" the first file for later, and "
+"it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With"
+"\" on the second file.\n"
+"For a 3-way merge first, \"Save\" the base file, then the branch to merge, "
+"and then \"3-way merge with base\" on the other branch which will be used as "
+"the destination.\n"
+"The same also applies to directory comparison and merge."
+msgstr ""
+"De contextmenu-extensie gebruiken:\n"
+"Voor eenvoudige vergelijking van twee geselecteerde bestanden, kies "
+"\"Vergelijken\".\n"
+"Als het andere bestand ergens anders staat, sla dan het eerste bestand voor "
+"later gebruik op. Het zal verschijnen in het submenu \"Vergelijken met...\". "
+"Gebruik daarna \"Vergelijken met\" voor het tweede bestand.\n"
+"Voor een 3-weg samenvoeging, sla eerst het basisbestand op, daarna de tak om "
+"mee samen te voegen en kies daarna \"3-weg samenvoeging met basis\" op de "
+"tak die gebruikt zal worden als bestemming.\n"
+"Bovenstaande is ook van toepassing op het vergelijken en samenvoegen van "
+"mappen."
+
+#: kdiff3plugin.cpp:279
+msgid "About KDiff3 Menu Plugin"
+msgstr "Info over KDiff3-menuplugin"
diff --git a/po/nn/CMakeLists.txt b/po/nn/CMakeLists.txt
new file mode 100644 (file)
index 0000000..a277667
--- /dev/null
@@ -0,0 +1,2 @@
+file(GLOB _po_files *.po)
+GETTEXT_PROCESS_PO_FILES(nn ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
diff --git a/po/nn/kdiff3.po b/po/nn/kdiff3.po
new file mode 100644 (file)
index 0000000..f997151
--- /dev/null
@@ -0,0 +1,2913 @@
+# Translation of kdiff3 to Norwegian Nynorsk
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: KDE 4\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2008-11-26 17:46+0100\n"
+"Last-Translator: Karl Ove Hufthammer <karl@huftis.org>\n"
+"Language-Team: Norwegian Nynorsk <i18n-nn@lister.ping.uio.no>\n"
+"Language: nn\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Environment: kde\n"
+"X-Accelerator-Marker: &\n"
+"X-Text-Markup: kde4\n"
+
+#: kreplacements/kreplacements.h:105
+msgid "Continue"
+msgstr ""
+
+#: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158
+#: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512
+msgid "Cancel"
+msgstr ""
+
+#: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631
+msgid "Quit"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339
+msgid "Ok"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715
+msgid "Help"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:185
+msgid "Defaults"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:4
+#. i18n: ectx: Menu (file)
+#: kreplacements/kreplacements.cpp:296 rc.cpp:14
+msgid "&File"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:297
+msgid "&Edit"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:7
+#. i18n: ectx: Menu (directory)
+#: kreplacements/kreplacements.cpp:298 rc.cpp:17
+msgid "&Directory"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:50
+#. i18n: ectx: Menu (movement)
+#: kreplacements/kreplacements.cpp:301 rc.cpp:26
+msgid "&Movement"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:61
+#. i18n: ectx: Menu (diff)
+#: kreplacements/kreplacements.cpp:302 rc.cpp:29
+msgid "D&iffview"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:73
+#. i18n: ectx: Menu (merge)
+#: kreplacements/kreplacements.cpp:303 rc.cpp:32
+msgid "&Merge"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:95
+#. i18n: ectx: Menu (window)
+#: kreplacements/kreplacements.cpp:304 rc.cpp:35
+msgid "&Window"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:305
+msgid "&Settings"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:306
+msgid "&Help"
+msgstr "&Hjelp"
+
+#: kreplacements/kreplacements.cpp:353
+msgid "&About"
+msgstr "&Om"
+
+#: kreplacements/kreplacements.cpp:369
+msgid "A&uthor"
+msgstr "&Opphavsperson"
+
+#: kreplacements/kreplacements.cpp:383
+msgid "&Thanks To"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:30
+#. i18n: ectx: Menu (dir_current_merge_menu)
+#: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497
+#: rc.cpp:20
+msgid "Current Item Merge Operation"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:38
+#. i18n: ectx: Menu (dir_current_sync_menu)
+#: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498
+#: rc.cpp:23
+msgid "Current Item Sync Operation"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:597
+msgid "Open"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:606
+msgid "Save"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720
+msgid "Save As..."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:623
+msgid "Print..."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:639
+msgid "Cut"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:647
+msgid "Copy"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:655
+msgid "Paste"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:663
+msgid "Select All"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:671
+msgid "Show Toolbar"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:679
+msgid "Show &Status Bar"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:687
+#, kde-format
+msgid "&Configure %1..."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707
+msgid "About"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:722
+msgid "Find"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:730
+msgid "Find Next"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:750
+msgid "Select Font"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676
+msgid ""
+"You selected a variable width font.\n"
+"\n"
+"Because this program doesn't handle variable width fonts\n"
+"correctly, you might experience problems while editing.\n"
+"\n"
+"Do you want to continue or do you want to select another font."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:792
+msgid "Incompatible font."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Continue at my own risk"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Select another font"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1134
+msgid "For more documentation, see the help-menu or the subdirectory doc."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "KDiff3-Usage"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Ignore"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Exit"
+msgstr ""
+
+#: diff.cpp:251
+msgid "Writing clipboard data to temp file failed."
+msgstr ""
+
+#: diff.cpp:255
+msgid "From Clipboard"
+msgstr ""
+
+#: diff.cpp:471
+msgid "Expecting space after closing quotation mark."
+msgstr ""
+
+#: diff.cpp:474
+msgid "Not matching quotation marks."
+msgstr ""
+
+#: diff.cpp:496
+msgid "Unexpected quotation mark within argument."
+msgstr ""
+
+#: diff.cpp:503
+msgid "No program specified."
+msgstr ""
+
+#: diff.cpp:605
+#, kde-format
+msgid ""
+"Preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The preprocessing command will be disabled now."
+msgstr ""
+
+#: diff.cpp:653
+#, kde-format
+msgid ""
+"The line-matching-preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The line-matching-preprocessing command will be disabled now."
+msgstr ""
+
+#: diff.cpp:1776 diff.cpp:1790
+msgid ""
+"Data loss error:\n"
+"If it is reproducible please contact the author.\n"
+msgstr ""
+
+#: diff.cpp:1778 diff.cpp:1792
+msgid "Severe Internal Error"
+msgstr ""
+
+#: directorymergewindow.cpp:136
+msgid "Mix of links and normal files."
+msgstr ""
+
+#: directorymergewindow.cpp:143
+msgid "Link: "
+msgstr ""
+
+#: directorymergewindow.cpp:151
+msgid "Size. "
+msgstr ""
+
+#: directorymergewindow.cpp:164 directorymergewindow.cpp:174
+msgid "Date & Size: "
+msgstr ""
+
+#: directorymergewindow.cpp:184 directorymergewindow.cpp:190
+#, kde-format
+msgid "Creating temp copy of %1 failed."
+msgstr ""
+
+#: directorymergewindow.cpp:201 directorymergewindow.cpp:209
+#, kde-format
+msgid "Opening %1 failed."
+msgstr ""
+
+#: directorymergewindow.cpp:213
+msgid "Comparing file..."
+msgstr ""
+
+#: directorymergewindow.cpp:223 directorymergewindow.cpp:229
+#, kde-format
+msgid "Error reading from %1"
+msgstr ""
+
+#: directorymergewindow.cpp:358
+msgid "Name"
+msgstr ""
+
+#: directorymergewindow.cpp:358
+msgid "Operation"
+msgstr ""
+
+#: directorymergewindow.cpp:358
+msgid "Status"
+msgstr ""
+
+#: directorymergewindow.cpp:359
+msgid "Unsolved"
+msgstr ""
+
+#: directorymergewindow.cpp:359
+msgid "Solved"
+msgstr ""
+
+#: directorymergewindow.cpp:359
+msgid "Nonwhite"
+msgstr ""
+
+#: directorymergewindow.cpp:359
+msgid "White"
+msgstr ""
+
+#: directorymergewindow.cpp:388
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort "
+"the merge and rescan the directory?"
+msgstr ""
+
+#: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655
+#: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823
+msgid "Warning"
+msgstr ""
+
+#: directorymergewindow.cpp:390 directorymergewindow.cpp:2965
+msgid "Rescan"
+msgstr ""
+
+#: directorymergewindow.cpp:391 pdiff.cpp:1081
+msgid "Continue Merging"
+msgstr ""
+
+#: directorymergewindow.cpp:548
+msgid "Opening of directories failed:"
+msgstr ""
+
+#: directorymergewindow.cpp:551
+#, kde-format
+msgid "Dir A \"%1\" does not exist or is not a directory.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:554
+#, kde-format
+msgid "Dir B \"%1\" does not exist or is not a directory.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:557
+#, kde-format
+msgid "Dir C \"%1\" does not exist or is not a directory.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:559
+msgid "Directory Open Error"
+msgstr ""
+
+#: directorymergewindow.cpp:567
+msgid ""
+"The destination directory must not be the same as A or B when three "
+"directories are merged.\n"
+"Check again before continuing."
+msgstr ""
+
+#: directorymergewindow.cpp:569
+msgid "Parameter Warning"
+msgstr ""
+
+#: directorymergewindow.cpp:574
+msgid "Scanning directories..."
+msgstr ""
+
+#: directorymergewindow.cpp:607
+msgid "Reading Directory A"
+msgstr ""
+
+#: directorymergewindow.cpp:629
+msgid "Reading Directory B"
+msgstr ""
+
+#: directorymergewindow.cpp:651
+msgid "Reading Directory C"
+msgstr ""
+
+#: directorymergewindow.cpp:677
+msgid "Some subdirectories were not readable in"
+msgstr ""
+
+#: directorymergewindow.cpp:682
+msgid "Check the permissions of the subdirectories."
+msgstr ""
+
+#: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737
+#: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233
+#: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328
+msgid "Ready."
+msgstr ""
+
+#: directorymergewindow.cpp:735
+msgid "Directory Comparison Status"
+msgstr ""
+
+#: directorymergewindow.cpp:736
+msgid "Number of subdirectories:"
+msgstr ""
+
+#: directorymergewindow.cpp:737
+msgid "Number of equal files:"
+msgstr ""
+
+#: directorymergewindow.cpp:738
+msgid "Number of different files:"
+msgstr ""
+
+#: directorymergewindow.cpp:741
+msgid "Number of manual merges:"
+msgstr ""
+
+#: directorymergewindow.cpp:912
+msgid "This affects all merge operations."
+msgstr ""
+
+#: directorymergewindow.cpp:913
+msgid "Changing All Merge Operations"
+msgstr ""
+
+#: directorymergewindow.cpp:1312
+msgid "Processing "
+msgstr ""
+
+#: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742
+msgid "To do."
+msgstr ""
+
+#: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996
+msgid "Copy A to B"
+msgstr ""
+
+#: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997
+msgid "Copy B to A"
+msgstr ""
+
+#: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998
+msgid "Delete A"
+msgstr ""
+
+#: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999
+msgid "Delete B"
+msgstr ""
+
+#: directorymergewindow.cpp:1814
+msgid "Delete A & B"
+msgstr ""
+
+#: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001
+msgid "Merge to A"
+msgstr ""
+
+#: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002
+msgid "Merge to B"
+msgstr ""
+
+#: directorymergewindow.cpp:1817
+msgid "Merge to A & B"
+msgstr ""
+
+#: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993
+msgid "Delete (if exists)"
+msgstr ""
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+#: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869
+msgid "Merge"
+msgstr ""
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+msgid "Merge (manual)"
+msgstr ""
+
+#: directorymergewindow.cpp:1824
+msgid "Error: Conflicting File Types"
+msgstr ""
+
+#: directorymergewindow.cpp:1825
+msgid "Error: Changed and Deleted"
+msgstr ""
+
+#: directorymergewindow.cpp:1826
+msgid "Error: Dates are equal but files are not."
+msgstr ""
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906
+msgid "This operation is currently not possible."
+msgstr ""
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174
+msgid "Operation Not Possible"
+msgstr ""
+
+#: directorymergewindow.cpp:1945
+msgid ""
+"This should never happen: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"If you know how to reproduce this, please contact the program author."
+msgstr ""
+
+#: directorymergewindow.cpp:1945
+msgid "Program Error"
+msgstr ""
+
+#: directorymergewindow.cpp:1956
+msgid "An error occurred while copying.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025
+#: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105
+#: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123
+#: directorymergewindow.cpp:2374
+msgid "Error"
+msgstr ""
+
+#: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375
+msgid "Merge Error"
+msgstr ""
+
+#: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380
+msgid "Error."
+msgstr ""
+
+#: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272
+#: directorymergewindow.cpp:2312
+msgid "Done."
+msgstr ""
+
+#: directorymergewindow.cpp:1990
+msgid "Not saved."
+msgstr ""
+
+#: directorymergewindow.cpp:2025
+msgid "Unknown merge operation. (This must never happen!)"
+msgstr ""
+
+#: directorymergewindow.cpp:2057
+msgid "Unknown merge operation."
+msgstr ""
+
+#: directorymergewindow.cpp:2072
+msgid ""
+"The merge is about to begin.\n"
+"\n"
+"Choose \"Do it\" if you have read the instructions and know what you are "
+"doing.\n"
+"Choosing \"Simulate it\" will tell you what would happen.\n"
+"\n"
+"Be aware that this program still has beta status and there is NO WARRANTY "
+"whatsoever! Make backups of your vital data!"
+msgstr ""
+
+#: directorymergewindow.cpp:2077
+msgid "Starting Merge"
+msgstr ""
+
+#: directorymergewindow.cpp:2078
+msgid "Do It"
+msgstr ""
+
+#: directorymergewindow.cpp:2079
+msgid "Simulate It"
+msgstr ""
+
+#: directorymergewindow.cpp:2105
+msgid ""
+"The highlighted item has a different type in the different directories. "
+"Select what to do."
+msgstr ""
+
+#: directorymergewindow.cpp:2114
+msgid ""
+"The modification dates of the file are equal but the files are not. Select "
+"what to do."
+msgstr ""
+
+#: directorymergewindow.cpp:2123
+msgid ""
+"The highlighted item was changed in one directory and deleted in the other. "
+"Select what to do."
+msgstr ""
+
+#: directorymergewindow.cpp:2174
+msgid ""
+"This operation is currently not possible because directory merge is "
+"currently running."
+msgstr ""
+
+#: directorymergewindow.cpp:2234
+msgid ""
+"There was an error in the last step.\n"
+"Do you want to continue with the item that caused the error or do you want "
+"to skip this item?"
+msgstr ""
+
+#: directorymergewindow.cpp:2236
+msgid "Continue merge after an error"
+msgstr ""
+
+#: directorymergewindow.cpp:2237
+msgid "Continue With Last Item"
+msgstr ""
+
+#: directorymergewindow.cpp:2238
+msgid "Skip Item"
+msgstr ""
+
+#: directorymergewindow.cpp:2272
+msgid "Skipped."
+msgstr ""
+
+#: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493
+msgid "In progress..."
+msgstr ""
+
+#: directorymergewindow.cpp:2327
+msgid "Merge operation complete."
+msgstr ""
+
+#: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330
+msgid "Merge Complete"
+msgstr ""
+
+#: directorymergewindow.cpp:2340
+msgid ""
+"Simulated merge complete: Check if you agree with the proposed operations."
+msgstr ""
+
+#: directorymergewindow.cpp:2374
+msgid "An error occurred. Press OK to see detailed information.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:2406
+#, kde-format
+msgid "Error: While deleting %1: Creating backup failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2413
+#, kde-format
+msgid "delete directory recursively( %1 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2415
+#, kde-format
+msgid "delete( %1 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2430
+msgid "Error: delete dir operation failed while trying to read the directory."
+msgstr ""
+
+#: directorymergewindow.cpp:2449
+#, kde-format
+msgid "Error: rmdir( %1 ) operation failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2459
+msgid "Error: delete operation failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2485
+#, kde-format
+msgid "manual merge( %1, %2, %3 -> %4)"
+msgstr ""
+
+#: directorymergewindow.cpp:2488
+msgid ""
+"     Note: After a manual merge the user should continue by pressing F7."
+msgstr ""
+
+#: directorymergewindow.cpp:2513
+#, kde-format
+msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2522
+#, kde-format
+msgid "copyLink( %1 -> %2 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2533
+msgid "Error: copyLink failed: Remote links are not yet supported."
+msgstr ""
+
+#: directorymergewindow.cpp:2539
+msgid "Error: copyLink failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2564
+#, kde-format
+msgid "copy( %1 -> %2 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2590
+#, kde-format
+msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination."
+msgstr ""
+
+#: directorymergewindow.cpp:2596
+#, kde-format
+msgid "rename( %1 -> %2 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2605
+msgid "Error: Rename failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2623
+#, kde-format
+msgid "Error during makeDir of %1. Cannot delete existing file."
+msgstr ""
+
+#: directorymergewindow.cpp:2639
+#, kde-format
+msgid "makeDir( %1 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2649
+msgid "Error while creating directory."
+msgstr ""
+
+#: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784
+msgid "Dest"
+msgstr ""
+
+#: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709
+msgid "Dir"
+msgstr ""
+
+#: directorymergewindow.cpp:2678
+msgid "Type"
+msgstr ""
+
+#: directorymergewindow.cpp:2678
+msgid "Size"
+msgstr ""
+
+#: directorymergewindow.cpp:2679
+msgid "Attr"
+msgstr ""
+
+#: directorymergewindow.cpp:2679
+msgid "Last Modification"
+msgstr ""
+
+#: directorymergewindow.cpp:2679
+msgid "Link-Destination"
+msgstr ""
+
+#: directorymergewindow.cpp:2709 difftextwindow.cpp:401
+msgid "File"
+msgstr ""
+
+#: directorymergewindow.cpp:2726
+msgid "not available"
+msgstr ""
+
+#: directorymergewindow.cpp:2746
+msgid "A (Dest): "
+msgstr ""
+
+#: directorymergewindow.cpp:2749
+msgid "A (Base): "
+msgstr ""
+
+#: directorymergewindow.cpp:2755
+msgid "B (Dest): "
+msgstr ""
+
+#: directorymergewindow.cpp:2763
+msgid "C (Dest): "
+msgstr ""
+
+#: directorymergewindow.cpp:2769
+msgid "Dest: "
+msgstr ""
+
+#: directorymergewindow.cpp:2836
+msgid "Save Directory Merge State As..."
+msgstr ""
+
+#: directorymergewindow.cpp:2959
+msgid "Start/Continue Directory Merge"
+msgstr ""
+
+#: directorymergewindow.cpp:2960
+msgid "Run Operation for Current Item"
+msgstr ""
+
+#: directorymergewindow.cpp:2961
+msgid "Compare Selected File"
+msgstr ""
+
+#: directorymergewindow.cpp:2962
+msgid "Merge Current File"
+msgstr ""
+
+#: directorymergewindow.cpp:2962
+msgid ""
+"Merge\n"
+"File"
+msgstr ""
+
+#: directorymergewindow.cpp:2963
+msgid "Fold All Subdirs"
+msgstr ""
+
+#: directorymergewindow.cpp:2964
+msgid "Unfold All Subdirs"
+msgstr ""
+
+#: directorymergewindow.cpp:2968
+msgid "Choose A for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2969
+msgid "Choose B for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2970
+msgid "Choose C for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2971
+msgid "Auto-Choose Operation for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2972
+msgid "No Operation for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2977
+msgid "Show Identical Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2977
+msgid ""
+"Identical\n"
+"Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2978
+msgid "Show Different Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2979
+msgid "Show Files only in A"
+msgstr ""
+
+#: directorymergewindow.cpp:2979
+msgid ""
+"Files\n"
+"only in A"
+msgstr ""
+
+#: directorymergewindow.cpp:2980
+msgid "Show Files only in B"
+msgstr ""
+
+#: directorymergewindow.cpp:2980
+msgid ""
+"Files\n"
+"only in B"
+msgstr ""
+
+#: directorymergewindow.cpp:2981
+msgid "Show Files only in C"
+msgstr ""
+
+#: directorymergewindow.cpp:2981
+msgid ""
+"Files\n"
+"only in C"
+msgstr ""
+
+#: directorymergewindow.cpp:2985
+msgid "Compare Explicitly Selected Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2986
+msgid "Merge Explicitly Selected Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995
+msgid "Do Nothing"
+msgstr ""
+
+#: directorymergewindow.cpp:2989
+msgid "A"
+msgstr ""
+
+#: directorymergewindow.cpp:2990
+msgid "B"
+msgstr ""
+
+#: directorymergewindow.cpp:2991
+msgid "C"
+msgstr ""
+
+#: directorymergewindow.cpp:3000
+msgid "Delete A && B"
+msgstr ""
+
+#: directorymergewindow.cpp:3003
+msgid "Merge to A && B"
+msgstr ""
+
+#: main.cpp:74 main.cpp:76
+msgid "Ignored. (User defined.)"
+msgstr ""
+
+#: main.cpp:162
+msgid "kdiff3"
+msgstr ""
+
+#: main.cpp:164
+msgid "Tool for Comparison and Merge of Files and Directories"
+msgstr ""
+
+#: main.cpp:165
+msgid "(c) 2002-2011 Joachim Eibl"
+msgstr ""
+
+#: main.cpp:172 kdiff3_part.cpp:303
+msgid "Joachim Eibl"
+msgstr ""
+
+#: main.cpp:173
+msgid "Eike Sauer"
+msgstr ""
+
+#: main.cpp:173
+msgid "Bugfixes, Debian package maintainer"
+msgstr ""
+
+#: main.cpp:174
+msgid "Sebastien Fricker"
+msgstr ""
+
+#: main.cpp:174
+msgid "Windows installer"
+msgstr ""
+
+#: main.cpp:175
+msgid "Stephan Binner"
+msgstr ""
+
+#: main.cpp:175
+msgid "i18n-help"
+msgstr ""
+
+#: main.cpp:176
+msgid "Stefan Partheymueller"
+msgstr ""
+
+#: main.cpp:176
+msgid "Clipboard-patch"
+msgstr ""
+
+#: main.cpp:177
+msgid "David Faure"
+msgstr ""
+
+#: main.cpp:177
+msgid "KIO-Help"
+msgstr ""
+
+#: main.cpp:178
+msgid "Bernd Gehrmann"
+msgstr ""
+
+#: main.cpp:178
+msgid "Class CvsIgnoreList from Cervisia"
+msgstr ""
+
+#: main.cpp:179
+msgid "Andre Woebbeking"
+msgstr ""
+
+#: main.cpp:179
+msgid "Class StringMatcher"
+msgstr ""
+
+#: main.cpp:180
+msgid "Michael Denio"
+msgstr ""
+
+#: main.cpp:180
+msgid "Directory Equality-Coloring patch"
+msgstr ""
+
+#: main.cpp:181
+msgid "Manfred Koehler"
+msgstr ""
+
+#: main.cpp:181
+msgid "Fix for slow startup on Windows"
+msgstr ""
+
+#: main.cpp:182
+msgid "Sergey Zorin"
+msgstr ""
+
+#: main.cpp:182
+msgid "Diff Ext for Windows"
+msgstr ""
+
+#: main.cpp:183
+msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+msgstr ""
+
+#: main.cpp:183
+msgid "GNU-Diffutils"
+msgstr ""
+
+#: main.cpp:184
+msgid "Tino Boellsterling, Timothy Mee"
+msgstr ""
+
+#: main.cpp:184
+msgid "Intensive test, use and feedback"
+msgstr ""
+
+#: main.cpp:185
+msgid "Michael Schmidt"
+msgstr ""
+
+#: main.cpp:185
+msgid "Mac support"
+msgstr ""
+
+#: main.cpp:186
+msgid "Valentin Rusu"
+msgstr ""
+
+#: main.cpp:186 main.cpp:187
+msgid "KDE4 porting"
+msgstr ""
+
+#: main.cpp:187
+msgid "Albert Astals Cid"
+msgstr ""
+
+#: main.cpp:188
+msgid "Silvan Scherrer"
+msgstr ""
+
+#: main.cpp:188
+msgid "OS2 port"
+msgstr ""
+
+#: main.cpp:190
+msgid "+ Many thanks to those who reported bugs and contributed ideas!"
+msgstr ""
+
+#: main.cpp:196
+msgid "Merge the input."
+msgstr ""
+
+#: main.cpp:197
+msgid "Explicit base file. For compatibility with certain tools."
+msgstr ""
+
+#: main.cpp:198
+msgid "Output file. Implies -m. E.g.: -o newfile.txt"
+msgstr ""
+
+#: main.cpp:199
+msgid "Output file, again. (For compatibility with certain tools.)"
+msgstr ""
+
+#: main.cpp:200
+msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)"
+msgstr ""
+
+#: main.cpp:201
+msgid "Don't solve conflicts automatically. (For compatibility...)"
+msgstr ""
+
+#: main.cpp:202
+msgid "Visible name replacement for input file 1 (base)."
+msgstr ""
+
+#: main.cpp:203
+msgid "Visible name replacement for input file 2."
+msgstr ""
+
+#: main.cpp:204
+msgid "Visible name replacement for input file 3."
+msgstr ""
+
+#: main.cpp:205
+msgid "Alternative visible name replacement. Supply this once for every input."
+msgstr ""
+
+#: main.cpp:206
+msgid ""
+"Override a config setting. Use once for every setting. E.g.: --cs "
+"\"AutoAdvance=1\""
+msgstr ""
+
+#: main.cpp:207
+msgid "Show list of config settings and current values."
+msgstr ""
+
+#: main.cpp:208
+msgid "Use a different config file."
+msgstr ""
+
+#: main.cpp:211
+msgid "file1 to open (base, if not specified via --base)"
+msgstr ""
+
+#: main.cpp:212
+msgid "file2 to open"
+msgstr ""
+
+#: main.cpp:213
+msgid "file3 to open"
+msgstr ""
+
+#: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976
+#: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002
+#: mergeresultwindow.cpp:1014
+#, kde-format
+msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)"
+msgstr ""
+
+#: mergeresultwindow.cpp:303
+msgid ""
+"The output has been modified.\n"
+"If you continue your changes will be lost."
+msgstr ""
+
+#: mergeresultwindow.cpp:834 pdiff.cpp:532
+msgid "All input files are binary equal."
+msgstr ""
+
+#: mergeresultwindow.cpp:836
+msgid "All input files contain the same text."
+msgstr ""
+
+#: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840
+#: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540
+#, kde-format
+msgid "Files %1 and %2 are binary equal.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841
+#: mergeresultwindow.cpp:843
+#, kde-format
+msgid "Files %1 and %2 have equal text.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:849
+msgid "Total number of conflicts: "
+msgstr ""
+
+#: mergeresultwindow.cpp:850
+msgid ""
+"\n"
+"Nr of automatically solved conflicts: "
+msgstr ""
+
+#: mergeresultwindow.cpp:851
+msgid ""
+"\n"
+"Nr of unsolved conflicts: "
+msgstr ""
+
+#: mergeresultwindow.cpp:853
+msgid "Conflicts"
+msgstr ""
+
+#: mergeresultwindow.cpp:1728
+msgid "<No src line>"
+msgstr ""
+
+#: mergeresultwindow.cpp:1736
+msgid "<Merge Conflict (Whitespace only)>"
+msgstr ""
+
+#: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517
+msgid "<Merge Conflict>"
+msgstr ""
+
+#: mergeresultwindow.cpp:2725
+msgid ""
+"Not all conflicts are solved yet.\n"
+"File not saved.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736
+msgid "Conflicts Left"
+msgstr ""
+
+#: mergeresultwindow.cpp:2734
+msgid ""
+"There is a line end style conflict. Please choose the line end style "
+"manually.\n"
+"File not saved.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:2748
+msgid ""
+"\n"
+"\n"
+"Creating backup failed. File not saved."
+msgstr ""
+
+#: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792
+msgid "File Save Error"
+msgstr ""
+
+#: mergeresultwindow.cpp:2792
+msgid "Error while writing."
+msgstr ""
+
+#: mergeresultwindow.cpp:3122
+msgid "Output"
+msgstr ""
+
+#: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314
+msgid "[Modified]"
+msgstr ""
+
+#: mergeresultwindow.cpp:3141
+msgid "Encoding for saving"
+msgstr ""
+
+#: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737
+#: optiondialog.cpp:762
+msgid "Line end style:"
+msgstr ""
+
+#: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767
+msgid "Unix"
+msgstr ""
+
+#: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737
+msgid "DOS"
+msgstr ""
+
+#: mergeresultwindow.cpp:3229
+msgid "Conflict"
+msgstr ""
+
+#: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263
+#: mergeresultwindow.cpp:3265
+msgid "Codec from"
+msgstr ""
+
+#: kdiff3_part.cpp:157 kdiff3_part.cpp:234
+msgid "Couldn't find files for comparison."
+msgstr ""
+
+#: kdiff3_part.cpp:302
+msgid "KDiff3Part"
+msgstr ""
+
+#: fileaccess.cpp:612
+msgid ""
+"While trying to make a backup, deleting an older backup failed. \n"
+"Filename: "
+msgstr ""
+
+#: fileaccess.cpp:619
+msgid ""
+"While trying to make a backup, renaming failed. \n"
+"Filenames: "
+msgstr ""
+
+#: fileaccess.cpp:643
+#, kde-format
+msgid "Getting file status: %1"
+msgstr ""
+
+#: fileaccess.cpp:686
+#, kde-format
+msgid "Reading file: %1"
+msgstr ""
+
+#: fileaccess.cpp:723
+#, kde-format
+msgid "Writing file: %1"
+msgstr ""
+
+#: fileaccess.cpp:751
+msgid "Out of memory"
+msgstr ""
+
+#: fileaccess.cpp:786
+#, kde-format
+msgid "Making directory: %1"
+msgstr ""
+
+#: fileaccess.cpp:806
+#, kde-format
+msgid "Removing directory: %1"
+msgstr ""
+
+#: fileaccess.cpp:821
+#, kde-format
+msgid "Removing file: %1"
+msgstr ""
+
+#: fileaccess.cpp:837
+#, kde-format
+msgid "Creating symbolic link: %1 -> %2"
+msgstr ""
+
+#: fileaccess.cpp:864
+#, kde-format
+msgid "Renaming file: %1 -> %2"
+msgstr ""
+
+#: fileaccess.cpp:897
+#, kde-format
+msgid "Copying file: %1 -> %2"
+msgstr ""
+
+#: fileaccess.cpp:911
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for reading failed. Filename: "
+"%1"
+msgstr ""
+
+#: fileaccess.cpp:917
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for writing failed. Filename: "
+"%1"
+msgstr ""
+
+#: fileaccess.cpp:932
+#, kde-format
+msgid "Error during file copy operation: Reading failed. Filename: %1"
+msgstr ""
+
+#: fileaccess.cpp:941
+#, kde-format
+msgid "Error during file copy operation: Writing failed. Filename: %1"
+msgstr ""
+
+#: fileaccess.cpp:1231
+msgid "Reading directory: "
+msgstr ""
+
+#: fileaccess.cpp:1355
+#, kde-format
+msgid "Listing directory: %1"
+msgstr ""
+
+#: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396
+msgid "&Cancel"
+msgstr ""
+
+#: difftextwindow.cpp:403
+msgid "Line"
+msgstr ""
+
+#: difftextwindow.cpp:405
+msgid "Line not available"
+msgstr ""
+
+#: difftextwindow.cpp:1703 difftextwindow.cpp:1736
+msgid "Encoding:"
+msgstr ""
+
+#: difftextwindow.cpp:1759 kdiff3.cpp:831
+msgid "Top line"
+msgstr ""
+
+#: difftextwindow.cpp:1769
+msgid "End"
+msgstr ""
+
+#: kdiff3.cpp:169
+msgid "Current Configuration:"
+msgstr ""
+
+#: kdiff3.cpp:174
+msgid "Config Option Error:"
+msgstr ""
+
+#: kdiff3.cpp:219
+msgid "Option --auto used, but no output file specified."
+msgstr ""
+
+#: kdiff3.cpp:369
+msgid "Option --auto ignored for directory comparison."
+msgstr ""
+
+#: kdiff3.cpp:405
+msgid "Saving failed."
+msgstr ""
+
+#: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214
+msgid "Opening of these files failed:"
+msgstr ""
+
+#: kdiff3.cpp:449
+msgid "File Open Error"
+msgstr ""
+
+#: kdiff3.cpp:477
+msgid "Opens documents for comparison..."
+msgstr ""
+
+#: kdiff3.cpp:479
+msgid "Reload"
+msgstr ""
+
+#: kdiff3.cpp:482
+msgid "Saves the merge result. All conflicts must be solved!"
+msgstr ""
+
+#: kdiff3.cpp:484
+msgid "Saves the current document as..."
+msgstr ""
+
+#: kdiff3.cpp:487
+msgid "Print the differences"
+msgstr ""
+
+#: kdiff3.cpp:490
+msgid "Quits the application"
+msgstr ""
+
+#: kdiff3.cpp:492
+msgid "Cuts the selected section and puts it to the clipboard"
+msgstr ""
+
+#: kdiff3.cpp:494
+msgid "Copies the selected section to the clipboard"
+msgstr ""
+
+#: kdiff3.cpp:496
+msgid "Pastes the clipboard contents to current position"
+msgstr ""
+
+#: kdiff3.cpp:498
+msgid "Select everything in current window"
+msgstr ""
+
+#: kdiff3.cpp:500
+msgid "Search for a string"
+msgstr ""
+
+#: kdiff3.cpp:502
+msgid "Search again for the string"
+msgstr ""
+
+#: kdiff3.cpp:507
+msgid "Enables/disables the statusbar"
+msgstr ""
+
+#: kdiff3.cpp:511
+msgid "Configure KDiff3..."
+msgstr ""
+
+#: kdiff3.cpp:532
+msgid "Go to Current Delta"
+msgstr ""
+
+#: kdiff3.cpp:532
+msgid ""
+"Current\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:534
+msgid "Go to First Delta"
+msgstr ""
+
+#: kdiff3.cpp:534
+msgid ""
+"First\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:536
+msgid "Go to Last Delta"
+msgstr ""
+
+#: kdiff3.cpp:536
+msgid ""
+"Last\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:538
+msgid "(Skips white space differences when \"Show White Space\" is disabled.)"
+msgstr ""
+
+#: kdiff3.cpp:539
+msgid ""
+"(Does not skip white space differences even when \"Show White Space\" is "
+"disabled.)"
+msgstr ""
+
+#: kdiff3.cpp:540
+msgid "Go to Previous Delta"
+msgstr ""
+
+#: kdiff3.cpp:540
+msgid ""
+"Prev\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:542
+msgid "Go to Next Delta"
+msgstr ""
+
+#: kdiff3.cpp:542
+msgid ""
+"Next\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:544
+msgid "Go to Previous Conflict"
+msgstr ""
+
+#: kdiff3.cpp:544
+msgid ""
+"Prev\n"
+"Conflict"
+msgstr ""
+
+#: kdiff3.cpp:546
+msgid "Go to Next Conflict"
+msgstr ""
+
+#: kdiff3.cpp:546
+msgid ""
+"Next\n"
+"Conflict"
+msgstr ""
+
+#: kdiff3.cpp:548
+msgid "Go to Previous Unsolved Conflict"
+msgstr ""
+
+#: kdiff3.cpp:548
+msgid ""
+"Prev\n"
+"Unsolved"
+msgstr ""
+
+#: kdiff3.cpp:550
+msgid "Go to Next Unsolved Conflict"
+msgstr ""
+
+#: kdiff3.cpp:550
+msgid ""
+"Next\n"
+"Unsolved"
+msgstr ""
+
+#: kdiff3.cpp:552
+msgid "Select Line(s) From A"
+msgstr ""
+
+#: kdiff3.cpp:552
+msgid ""
+"Choose\n"
+"A"
+msgstr ""
+
+#: kdiff3.cpp:553
+msgid "Select Line(s) From B"
+msgstr ""
+
+#: kdiff3.cpp:553
+msgid ""
+"Choose\n"
+"B"
+msgstr ""
+
+#: kdiff3.cpp:554
+msgid "Select Line(s) From C"
+msgstr ""
+
+#: kdiff3.cpp:554
+msgid ""
+"Choose\n"
+"C"
+msgstr ""
+
+#: kdiff3.cpp:555
+msgid "Automatically Go to Next Unsolved Conflict After Source Selection"
+msgstr ""
+
+#: kdiff3.cpp:555
+msgid ""
+"Auto\n"
+"Next"
+msgstr ""
+
+#: kdiff3.cpp:557
+msgid "Show Space && Tabulator Characters for Differences"
+msgstr ""
+
+#: kdiff3.cpp:557
+msgid ""
+"White\n"
+"Characters"
+msgstr ""
+
+#: kdiff3.cpp:558
+msgid "Show White Space"
+msgstr ""
+
+#: kdiff3.cpp:558
+msgid ""
+"White\n"
+"Deltas"
+msgstr ""
+
+#: kdiff3.cpp:560
+msgid "Show Line Numbers"
+msgstr ""
+
+#: kdiff3.cpp:560
+msgid ""
+"Line\n"
+"Numbers"
+msgstr ""
+
+#: kdiff3.cpp:561
+msgid "Choose A Everywhere"
+msgstr ""
+
+#: kdiff3.cpp:562
+msgid "Choose B Everywhere"
+msgstr ""
+
+#: kdiff3.cpp:563
+msgid "Choose C Everywhere"
+msgstr ""
+
+#: kdiff3.cpp:564
+msgid "Choose A for All Unsolved Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:565
+msgid "Choose B for All Unsolved Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:566
+msgid "Choose C for All Unsolved Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:567
+msgid "Choose A for All Unsolved Whitespace Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:568
+msgid "Choose B for All Unsolved Whitespace Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:569
+msgid "Choose C for All Unsolved Whitespace Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:570
+msgid "Automatically Solve Simple Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:571
+msgid "Set Deltas to Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:572
+msgid "Run Regular Expression Auto Merge"
+msgstr ""
+
+#: kdiff3.cpp:573
+msgid "Automatically Solve History Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:574
+msgid "Split Diff At Selection"
+msgstr ""
+
+#: kdiff3.cpp:575
+msgid "Join Selected Diffs"
+msgstr ""
+
+#: kdiff3.cpp:577
+msgid "Show Window A"
+msgstr ""
+
+#: kdiff3.cpp:578
+msgid "Show Window B"
+msgstr ""
+
+#: kdiff3.cpp:579
+msgid "Show Window C"
+msgstr ""
+
+#: kdiff3.cpp:580 kdiff3.cpp:591
+msgid "Focus Next Window"
+msgstr ""
+
+#: kdiff3.cpp:582
+msgid "Normal Overview"
+msgstr ""
+
+#: kdiff3.cpp:583
+msgid "A vs. B Overview"
+msgstr ""
+
+#: kdiff3.cpp:584
+msgid "A vs. C Overview"
+msgstr ""
+
+#: kdiff3.cpp:585
+msgid "B vs. C Overview"
+msgstr ""
+
+#: kdiff3.cpp:586
+msgid "Word Wrap Diff Windows"
+msgstr ""
+
+#: kdiff3.cpp:587
+msgid "Add Manual Diff Alignment"
+msgstr ""
+
+#: kdiff3.cpp:588
+msgid "Clear All Manual Diff Alignments"
+msgstr ""
+
+#: kdiff3.cpp:593
+msgid "Focus Prev Window"
+msgstr ""
+
+#: kdiff3.cpp:594
+msgid "Toggle Split Orientation"
+msgstr ""
+
+#: kdiff3.cpp:596
+msgid "Dir && Text Split Screen View"
+msgstr ""
+
+#: kdiff3.cpp:598
+msgid "Toggle Between Dir && Text View"
+msgstr ""
+
+#: kdiff3.cpp:654 pdiff.cpp:1812
+msgid "The merge result hasn't been saved."
+msgstr ""
+
+#: kdiff3.cpp:656
+msgid "Save && Quit"
+msgstr ""
+
+#: kdiff3.cpp:657
+msgid "Quit Without Saving"
+msgstr ""
+
+#: kdiff3.cpp:665 pdiff.cpp:1823
+msgid "Saving the merge result failed."
+msgstr ""
+
+#: kdiff3.cpp:676 pdiff.cpp:1078
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort?"
+msgstr ""
+
+#: kdiff3.cpp:701
+msgid "Saving file..."
+msgstr ""
+
+#: kdiff3.cpp:718
+msgid "Saving file with a new filename..."
+msgstr ""
+
+#: kdiff3.cpp:781
+msgid "Printing not implemented."
+msgstr ""
+
+#: kdiff3.cpp:815
+msgid "Printing..."
+msgstr ""
+
+#: kdiff3.cpp:956
+msgid "Selection"
+msgstr ""
+
+#: kdiff3.cpp:982
+msgid "Printing completed."
+msgstr ""
+
+#: kdiff3.cpp:986
+msgid "Printing aborted."
+msgstr ""
+
+#: kdiff3.cpp:993
+msgid "Exiting..."
+msgstr ""
+
+#: kdiff3.cpp:1006
+msgid "Toggling toolbar..."
+msgstr ""
+
+#: kdiff3.cpp:1027
+msgid "Toggle the statusbar..."
+msgstr ""
+
+#: smalldialogs.cpp:58
+msgid "A (Base):"
+msgstr ""
+
+#: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99
+#: smalldialogs.cpp:142
+msgid "File..."
+msgstr ""
+
+#: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101
+#: smalldialogs.cpp:144
+msgid "Dir..."
+msgstr ""
+
+#: smalldialogs.cpp:93
+msgid "C (Optional):"
+msgstr ""
+
+#: smalldialogs.cpp:116
+msgid "Swap/Copy Names ..."
+msgstr ""
+
+#: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123
+#, kde-format
+msgid "Swap %1<->%2"
+msgstr ""
+
+#: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126
+#, kde-format
+msgid "Copy %1->Output"
+msgstr ""
+
+#: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129
+#, kde-format
+msgid "Swap %1<->Output"
+msgstr ""
+
+#: smalldialogs.cpp:136
+msgid "Output (optional):"
+msgstr ""
+
+#: smalldialogs.cpp:168
+msgid "Configure..."
+msgstr ""
+
+#: smalldialogs.cpp:174
+msgid "&OK"
+msgstr ""
+
+#: smalldialogs.cpp:362
+msgid "Search text:"
+msgstr ""
+
+#: smalldialogs.cpp:369
+msgid "Case sensitive"
+msgstr ""
+
+#: smalldialogs.cpp:372
+msgid "Search A"
+msgstr ""
+
+#: smalldialogs.cpp:377
+msgid "Search B"
+msgstr ""
+
+#: smalldialogs.cpp:382
+msgid "Search C"
+msgstr ""
+
+#: smalldialogs.cpp:387
+msgid "Search output"
+msgstr ""
+
+#: smalldialogs.cpp:392
+msgid "&Search"
+msgstr ""
+
+#: smalldialogs.cpp:409
+msgid "Regular Expression Tester"
+msgstr ""
+
+#: smalldialogs.cpp:414 optiondialog.cpp:936
+msgid "Auto merge regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:422
+msgid "Example auto merge line:"
+msgstr ""
+
+#: smalldialogs.cpp:424
+msgid "To test auto merge, copy a line as used in your files."
+msgstr ""
+
+#: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494
+msgid "Match result:"
+msgstr ""
+
+#: smalldialogs.cpp:441 optiondialog.cpp:962
+msgid "History start regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:449
+msgid "Example history start line (with leading comment):"
+msgstr ""
+
+#: smalldialogs.cpp:451
+msgid ""
+"Copy a history start line as used in your files,\n"
+"including the leading comment."
+msgstr ""
+
+#: smalldialogs.cpp:469 optiondialog.cpp:972
+msgid "History entry start regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:477
+msgid "History sort key order:"
+msgstr ""
+
+#: smalldialogs.cpp:485
+msgid "Example history entry start line (without leading comment):"
+msgstr ""
+
+#: smalldialogs.cpp:487
+msgid ""
+"Copy a history entry start line as used in your files,\n"
+"but omit the leading comment."
+msgstr ""
+
+#: smalldialogs.cpp:501
+msgid "Sort key result:"
+msgstr ""
+
+#: smalldialogs.cpp:508
+msgid "OK"
+msgstr ""
+
+#: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583
+msgid "Match success."
+msgstr ""
+
+#: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589
+msgid "Match failed."
+msgstr ""
+
+#: smalldialogs.cpp:574
+msgid "Opening and closing parentheses do not match in regular expression."
+msgstr ""
+
+#: optiondialog.cpp:367
+msgid "Unicode, 8 bit"
+msgstr ""
+
+#: optiondialog.cpp:368
+msgid "Unicode"
+msgstr ""
+
+#: optiondialog.cpp:369
+msgid "Latin1"
+msgstr ""
+
+#: optiondialog.cpp:388
+msgid "Change this if non-ASCII characters are not displayed correctly."
+msgstr ""
+
+#: optiondialog.cpp:465
+msgid "Configure"
+msgstr ""
+
+#: optiondialog.cpp:531
+msgid "Font"
+msgstr ""
+
+#: optiondialog.cpp:532
+msgid "Editor & Diff Output Font"
+msgstr ""
+
+#: optiondialog.cpp:556
+msgid "Italic font for deltas"
+msgstr ""
+
+#: optiondialog.cpp:559
+msgid ""
+"Selects the italic version of the font for differences.\n"
+"If the font doesn't support italic characters, then this does nothing."
+msgstr ""
+
+#: optiondialog.cpp:568
+msgid "Color"
+msgstr ""
+
+#: optiondialog.cpp:569
+msgid "Colors Settings"
+msgstr ""
+
+#: optiondialog.cpp:588
+msgid "Editor and Diff Views:"
+msgstr ""
+
+#: optiondialog.cpp:596
+msgid "Foreground color:"
+msgstr ""
+
+#: optiondialog.cpp:603
+msgid "Background color:"
+msgstr ""
+
+#: optiondialog.cpp:612
+msgid "Diff background color:"
+msgstr ""
+
+#: optiondialog.cpp:620
+msgid "Color A:"
+msgstr ""
+
+#: optiondialog.cpp:628
+msgid "Color B:"
+msgstr ""
+
+#: optiondialog.cpp:636
+msgid "Color C:"
+msgstr ""
+
+#: optiondialog.cpp:643
+msgid "Conflict color:"
+msgstr ""
+
+#: optiondialog.cpp:651
+msgid "Current range background color:"
+msgstr ""
+
+#: optiondialog.cpp:659
+msgid "Current range diff background color:"
+msgstr ""
+
+#: optiondialog.cpp:666
+msgid "Color for manually aligned difference ranges:"
+msgstr ""
+
+#: optiondialog.cpp:672
+msgid "Directory Comparison View:"
+msgstr ""
+
+#: optiondialog.cpp:678
+msgid "Newest file color:"
+msgstr ""
+
+#: optiondialog.cpp:682
+msgid ""
+"Changing this color will only be effective when starting the next directory "
+"comparison."
+msgstr ""
+
+#: optiondialog.cpp:687
+msgid "Oldest file color:"
+msgstr ""
+
+#: optiondialog.cpp:695
+msgid "Middle age file color:"
+msgstr ""
+
+#: optiondialog.cpp:703
+msgid "Color for missing files:"
+msgstr ""
+
+#: optiondialog.cpp:717
+msgid "Editor"
+msgstr ""
+
+#: optiondialog.cpp:718
+msgid "Editor Behavior"
+msgstr ""
+
+#: optiondialog.cpp:732
+msgid "Tab inserts spaces"
+msgstr ""
+
+#: optiondialog.cpp:735
+msgid ""
+"On: Pressing tab generates the appropriate number of spaces.\n"
+"Off: A tab character will be inserted."
+msgstr ""
+
+#: optiondialog.cpp:741
+msgid "Tab size:"
+msgstr ""
+
+#: optiondialog.cpp:747
+msgid "Auto indentation"
+msgstr ""
+
+#: optiondialog.cpp:750
+msgid "On: The indentation of the previous line is used for a new line.\n"
+msgstr ""
+
+#: optiondialog.cpp:754
+msgid "Auto copy selection"
+msgstr ""
+
+#: optiondialog.cpp:757
+msgid ""
+"On: Any selection is immediately written to the clipboard.\n"
+"Off: You must explicitely copy e.g. via Ctrl-C."
+msgstr ""
+
+#: optiondialog.cpp:768
+msgid "Dos/Windows"
+msgstr ""
+
+#: optiondialog.cpp:769
+msgid "Autodetect"
+msgstr ""
+
+#: optiondialog.cpp:772
+msgid ""
+"Sets the line endings for when an edited file is saved.\n"
+"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A"
+msgstr ""
+
+#: optiondialog.cpp:784
+msgid "Diff"
+msgstr ""
+
+#: optiondialog.cpp:785
+msgid "Diff Settings"
+msgstr ""
+
+#: optiondialog.cpp:809
+msgid "Treat as white space."
+msgstr ""
+
+#: optiondialog.cpp:811
+msgid "Ignore numbers"
+msgstr ""
+
+#: optiondialog.cpp:814
+msgid ""
+"Ignore number characters during line matching phase. (Similar to Ignore "
+"white space.)\n"
+"Might help to compare files with numeric data."
+msgstr ""
+
+#: optiondialog.cpp:819
+msgid "Ignore C/C++ comments"
+msgstr ""
+
+#: optiondialog.cpp:821
+msgid "Treat C/C++ comments like white space."
+msgstr ""
+
+#: optiondialog.cpp:825
+msgid "Ignore case"
+msgstr ""
+
+#: optiondialog.cpp:828
+msgid "Treat case differences like white space changes. ('a'<=>'A')"
+msgstr ""
+
+#: optiondialog.cpp:832
+msgid "Preprocessor command:"
+msgstr ""
+
+#: optiondialog.cpp:836
+msgid "User defined pre-processing. (See the docs for details.)"
+msgstr ""
+
+#: optiondialog.cpp:839
+msgid "Line-matching preprocessor command:"
+msgstr ""
+
+#: optiondialog.cpp:843
+msgid ""
+"This pre-processor is only used during line matching.\n"
+"(See the docs for details.)"
+msgstr ""
+
+#: optiondialog.cpp:846
+msgid "Try hard (slower)"
+msgstr ""
+
+#: optiondialog.cpp:849
+msgid ""
+"Enables the --minimal option for the external diff.\n"
+"The analysis of big files will be much slower."
+msgstr ""
+
+#: optiondialog.cpp:854
+msgid "Align B and C for 3 input files"
+msgstr ""
+
+#: optiondialog.cpp:857
+msgid ""
+"Try to align B and C when comparing or merging three input files.\n"
+"Not recommended for merging because merge might get more complicated.\n"
+"(Default is off.)"
+msgstr ""
+
+#: optiondialog.cpp:870
+msgid "Merge Settings"
+msgstr ""
+
+#: optiondialog.cpp:885
+msgid "Auto advance delay (ms):"
+msgstr ""
+
+#: optiondialog.cpp:890
+msgid ""
+"When in Auto-Advance mode the result of the current selection is shown \n"
+"for the specified time, before jumping to the next conflict. Range: 0-2000 ms"
+msgstr ""
+
+#: optiondialog.cpp:895
+msgid "Show info dialogs"
+msgstr ""
+
+#: optiondialog.cpp:897
+msgid "Show a dialog with information about the number of conflicts."
+msgstr ""
+
+#: optiondialog.cpp:900
+msgid "White space 2-file merge default:"
+msgstr ""
+
+#: optiondialog.cpp:904 optiondialog.cpp:917
+msgid "Manual Choice"
+msgstr ""
+
+#: optiondialog.cpp:908 optiondialog.cpp:922
+msgid ""
+"Allow the merge algorithm to automatically select an input for white-space-"
+"only changes."
+msgstr ""
+
+#: optiondialog.cpp:913
+msgid "White space 3-file merge default:"
+msgstr ""
+
+#: optiondialog.cpp:927
+msgid "Automatic Merge Regular Expression"
+msgstr ""
+
+#: optiondialog.cpp:940
+msgid ""
+"Regular expression for lines where KDiff3 should automatically choose one "
+"source.\n"
+"When a line with a conflict matches the regular expression then\n"
+"- if available - C, otherwise B will be chosen."
+msgstr ""
+
+#: optiondialog.cpp:946
+msgid "Run regular expression auto merge on merge start"
+msgstr ""
+
+#: optiondialog.cpp:948
+msgid ""
+"Run the merge for auto merge regular expressions\n"
+"immediately when a merge starts.\n"
+msgstr ""
+
+#: optiondialog.cpp:953
+msgid "Version Control History Merging"
+msgstr ""
+
+#: optiondialog.cpp:966
+msgid ""
+"Regular expression for the start of the version control history entry.\n"
+"Usually this line contains the \"$Log$\" keyword.\n"
+"Default value: \".*\\$Log.*\\$.*\""
+msgstr ""
+
+#: optiondialog.cpp:984
+msgid ""
+"A version control history entry consists of several lines.\n"
+"Specify the regular expression to detect the first line (without the leading "
+"comment).\n"
+"Use parentheses to group the keys you want to use for sorting.\n"
+"If left empty, then KDiff3 assumes that empty lines separate history entries."
+"\n"
+"See the documentation for details."
+msgstr ""
+
+#: optiondialog.cpp:992
+msgid "History merge sorting"
+msgstr ""
+
+#: optiondialog.cpp:994
+msgid "Sort version control history by a key."
+msgstr ""
+
+#: optiondialog.cpp:1004
+msgid "History entry start sort key order:"
+msgstr ""
+
+#: optiondialog.cpp:1008
+msgid ""
+"Each pair of parentheses used in the regular expression for the history "
+"start entry\n"
+"groups a key that can be used for sorting.\n"
+"Specify the list of keys (that are numbered in order of occurrence\n"
+"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n"
+"If left empty, then no sorting will be done.\n"
+"See the documentation for details."
+msgstr ""
+
+#: optiondialog.cpp:1019
+msgid "Merge version control history on merge start"
+msgstr ""
+
+#: optiondialog.cpp:1021
+msgid "Run version control history automerge on merge start."
+msgstr ""
+
+#: optiondialog.cpp:1025
+msgid "Max number of history entries:"
+msgstr ""
+
+#: optiondialog.cpp:1028
+msgid "Cut off after specified number. Use -1 for infinite number of entries."
+msgstr ""
+
+#: optiondialog.cpp:1032
+msgid "Test your regular expressions"
+msgstr ""
+
+#: optiondialog.cpp:1037
+msgid "Irrelevant merge command:"
+msgstr ""
+
+#: optiondialog.cpp:1041
+msgid ""
+"If specified this script is run after automerge\n"
+"when no other relevant changes were detected.\n"
+"Called with the parameters: filename1 filename2 filename3"
+msgstr ""
+
+#: optiondialog.cpp:1047
+msgid "Auto save and quit on merge without conflicts"
+msgstr ""
+
+#: optiondialog.cpp:1050
+msgid ""
+"If KDiff3 was started for a file-merge from the command line and all\n"
+"conflicts are solvable without user interaction then automatically save and "
+"quit.\n"
+"(Similar to command line option \"--auto\".)"
+msgstr ""
+
+#: optiondialog.cpp:1061 optiondialog.cpp:1062
+msgid "Directory"
+msgstr ""
+
+#: optiondialog.cpp:1075
+msgid "Recursive directories"
+msgstr ""
+
+#: optiondialog.cpp:1077
+msgid "Whether to analyze subdirectories or not."
+msgstr ""
+
+#: optiondialog.cpp:1079
+msgid "File pattern(s):"
+msgstr ""
+
+#: optiondialog.cpp:1084
+msgid ""
+"Pattern(s) of files to be analyzed. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1090
+msgid "File-anti-pattern(s):"
+msgstr ""
+
+#: optiondialog.cpp:1095
+msgid ""
+"Pattern(s) of files to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1101
+msgid "Dir-anti-pattern(s):"
+msgstr ""
+
+#: optiondialog.cpp:1106
+msgid ""
+"Pattern(s) of directories to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1112
+msgid "Use .cvsignore"
+msgstr ""
+
+#: optiondialog.cpp:1115
+msgid ""
+"Extends the antipattern to anything that would be ignored by CVS.\n"
+"Via local \".cvsignore\" files this can be directory specific."
+msgstr ""
+
+#: optiondialog.cpp:1120
+msgid "Find hidden files and directories"
+msgstr ""
+
+#: optiondialog.cpp:1123
+msgid "Finds files and directories with the hidden attribute."
+msgstr ""
+
+#: optiondialog.cpp:1125
+msgid "Finds files and directories starting with '.'."
+msgstr ""
+
+#: optiondialog.cpp:1129
+msgid "Follow file links"
+msgstr ""
+
+#: optiondialog.cpp:1132
+msgid ""
+"On: Compare the file the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+
+#: optiondialog.cpp:1137
+msgid "Follow directory links"
+msgstr ""
+
+#: optiondialog.cpp:1140
+msgid ""
+"On: Compare the directory the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+
+#: optiondialog.cpp:1156
+msgid "Case sensitive filename comparison"
+msgstr ""
+
+#: optiondialog.cpp:1159
+msgid ""
+"The directory comparison will compare files or directories when their names "
+"match.\n"
+"Set this option if the case of the names must match. (Default for Windows is "
+"off, otherwise on.)"
+msgstr ""
+
+#: optiondialog.cpp:1163
+msgid "File Comparison Mode"
+msgstr ""
+
+#: optiondialog.cpp:1169
+msgid "Binary comparison"
+msgstr ""
+
+#: optiondialog.cpp:1170
+msgid "Binary comparison of each file. (Default)"
+msgstr ""
+
+#: optiondialog.cpp:1173
+msgid "Full analysis"
+msgstr ""
+
+#: optiondialog.cpp:1174
+msgid ""
+"Do a full analysis and show statistics information in extra columns.\n"
+"(Slower than a binary comparison, much slower for binary files.)"
+msgstr ""
+
+#: optiondialog.cpp:1178
+msgid "Trust the size and modification date (unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1179
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"Files with equal contents but different modification dates will appear as "
+"different.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+
+#: optiondialog.cpp:1184
+msgid ""
+"Trust the size and date, but use binary comparison if date does not match "
+"(unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1185
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"If the dates are not equal but the sizes are, use binary comparison.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+
+#: optiondialog.cpp:1190
+msgid "Trust the size (unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1191
+msgid ""
+"Assume that files are equal if their file lengths are equal.\n"
+"Useful for big directories or slow networks when the date is modified during "
+"download."
+msgstr ""
+
+#: optiondialog.cpp:1199
+msgid "Synchronize directories"
+msgstr ""
+
+#: optiondialog.cpp:1202
+msgid ""
+"Offers to store files in both directories so that\n"
+"both directories are the same afterwards.\n"
+"Works only when comparing two directories without specifying a destination."
+msgstr ""
+
+#: optiondialog.cpp:1208
+msgid "White space differences considered equal"
+msgstr ""
+
+#: optiondialog.cpp:1211
+msgid ""
+"If files differ only by white space consider them equal.\n"
+"This is only active when full analysis is chosen."
+msgstr ""
+
+#: optiondialog.cpp:1217
+msgid "Copy newer instead of merging (unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1220
+msgid ""
+"Don't look inside, just take the newer file.\n"
+"(Use this only if you know what you are doing!)\n"
+"Only effective when comparing two directories."
+msgstr ""
+
+#: optiondialog.cpp:1225
+msgid "Backup files (.orig)"
+msgstr ""
+
+#: optiondialog.cpp:1228
+msgid ""
+"If a file would be saved over an old file, then the old file\n"
+"will be renamed with a '.orig' extension instead of being deleted."
+msgstr ""
+
+#: optiondialog.cpp:1301 optiondialog.cpp:1302
+msgid "Regional Settings"
+msgstr ""
+
+#: optiondialog.cpp:1402
+msgid "Language (restart required)"
+msgstr ""
+
+#: optiondialog.cpp:1445
+msgid ""
+"Choose the language of the GUI strings or \"Auto\".\n"
+"For a change of language to take place, quit and restart KDiff3."
+msgstr ""
+
+#: optiondialog.cpp:1463
+msgid "Use the same encoding for everything:"
+msgstr ""
+
+#: optiondialog.cpp:1466
+msgid ""
+"Enable this allows to change all encodings by changing the first only.\n"
+"Disable this if different individual settings are needed."
+msgstr ""
+
+#: optiondialog.cpp:1471
+msgid "Note: Local Encoding is "
+msgstr ""
+
+#: optiondialog.cpp:1475
+msgid "File Encoding for A:"
+msgstr ""
+
+#: optiondialog.cpp:1481
+msgid ""
+"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n"
+"If the file is not Unicode then the selected encoding will be used as "
+"fallback.\n"
+"(Unicode detection depends on the first bytes of a file.)"
+msgstr ""
+
+#: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503
+msgid "Auto Detect Unicode"
+msgstr ""
+
+#: optiondialog.cpp:1490
+msgid "File Encoding for B:"
+msgstr ""
+
+#: optiondialog.cpp:1499
+msgid "File Encoding for C:"
+msgstr ""
+
+#: optiondialog.cpp:1508
+msgid "File Encoding for Merge Output and Saving:"
+msgstr ""
+
+#: optiondialog.cpp:1512
+msgid "Auto Select"
+msgstr ""
+
+#: optiondialog.cpp:1515
+msgid ""
+"If enabled then the encoding from the input files is used.\n"
+"In ambiguous cases a dialog will ask the user to choose the encoding for "
+"saving."
+msgstr ""
+
+#: optiondialog.cpp:1519
+msgid "File Encoding for Preprocessor Files:"
+msgstr ""
+
+#: optiondialog.cpp:1530
+msgid "Right To Left Language"
+msgstr ""
+
+#: optiondialog.cpp:1533
+msgid ""
+"Some languages are read from right to left.\n"
+"This setting will change the viewer and editor accordingly."
+msgstr ""
+
+#: optiondialog.cpp:1548
+msgid "Integration"
+msgstr ""
+
+#: optiondialog.cpp:1549
+msgid "Integration Settings"
+msgstr ""
+
+#: optiondialog.cpp:1563
+msgid "Command line options to ignore:"
+msgstr ""
+
+#: optiondialog.cpp:1568
+msgid ""
+"List of command line options that should be ignored when KDiff3 is used by "
+"other tools.\n"
+"Several values can be specified if separated via ';'\n"
+"This will suppress the \"Unknown option\" error."
+msgstr ""
+
+#: optiondialog.cpp:1575
+msgid "Quit also via Escape key"
+msgstr ""
+
+#: optiondialog.cpp:1578
+msgid ""
+"Fast method to exit.\n"
+"For those who are used to using the Escape key."
+msgstr ""
+
+#: optiondialog.cpp:1583
+msgid "Integrate with ClearCase"
+msgstr ""
+
+#: optiondialog.cpp:1586
+msgid ""
+"Integrate with Rational ClearCase from IBM.\n"
+"Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n"
+"(Only enabled when ClearCase \"bin\" directory is in the path.)"
+msgstr ""
+
+#: optiondialog.cpp:1592
+msgid "Remove ClearCase Integration"
+msgstr ""
+
+#: optiondialog.cpp:1595
+msgid ""
+"Restore the old \"map\" file from before doing the ClearCase integration."
+msgstr ""
+
+#: optiondialog.cpp:1680
+msgid "Incompatible Font"
+msgstr ""
+
+#: optiondialog.cpp:1681
+msgid "Continue at Own Risk"
+msgstr ""
+
+#: optiondialog.cpp:1682
+msgid "Select Another Font"
+msgstr ""
+
+#: optiondialog.cpp:1717
+msgid "This resets all options. Not only those of the current topic."
+msgstr ""
+
+#: pdiff.cpp:260
+msgid "PreprocessorCmd: "
+msgstr ""
+
+#: pdiff.cpp:265
+msgid "The following option(s) you selected might change data:\n"
+msgstr ""
+
+#: pdiff.cpp:266
+msgid ""
+"\n"
+"Most likely this is not wanted during a merge.\n"
+"Do you want to disable these settings or continue with these settings active?"
+msgstr ""
+
+#: pdiff.cpp:268
+msgid "Option Unsafe for Merging"
+msgstr ""
+
+#: pdiff.cpp:269
+msgid "Use These Options During Merge"
+msgstr ""
+
+#: pdiff.cpp:270
+msgid "Disable Unsafe Options"
+msgstr ""
+
+#: pdiff.cpp:300
+msgid "Loading A"
+msgstr ""
+
+#: pdiff.cpp:304
+msgid "Loading B"
+msgstr ""
+
+#: pdiff.cpp:321 pdiff.cpp:347
+msgid "Diff: A <-> B"
+msgstr ""
+
+#: pdiff.cpp:327 pdiff.cpp:372
+msgid "Linediff: A <-> B"
+msgstr ""
+
+#: pdiff.cpp:338
+msgid "Loading C"
+msgstr ""
+
+#: pdiff.cpp:350
+msgid "Diff: B <-> C"
+msgstr ""
+
+#: pdiff.cpp:353
+msgid "Diff: A <-> C"
+msgstr ""
+
+#: pdiff.cpp:375
+msgid "Linediff: B <-> C"
+msgstr ""
+
+#: pdiff.cpp:378
+msgid "Linediff: A <-> C"
+msgstr ""
+
+#: pdiff.cpp:534
+msgid "All input files contain the same text, but are not binary equal."
+msgstr ""
+
+#: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541
+#, kde-format
+msgid "Files %1 and %2 have equal text, but are not binary equal. \n"
+msgstr ""
+
+#: pdiff.cpp:551
+msgid ""
+"Some inputfiles don't seem to be pure textfiles.\n"
+"Note that the KDiff3-merge was not meant for binary data.\n"
+"Continue at your own risk."
+msgstr ""
+
+#: pdiff.cpp:566
+#, kde-format
+msgid ""
+"Some input characters could not be converted to valid unicode.\n"
+"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n"
+"Don't save the result if unsure. Continue at your own risk.\n"
+"Affected input files are in %1."
+msgstr ""
+
+#: pdiff.cpp:1080
+msgid "Abort"
+msgstr ""
+
+#: pdiff.cpp:1087 pdiff.cpp:1175
+msgid "Opening files..."
+msgstr ""
+
+#: pdiff.cpp:1152 pdiff.cpp:1223
+msgid "File open error"
+msgstr ""
+
+#: pdiff.cpp:1255
+msgid "Cutting selection..."
+msgstr ""
+
+#: pdiff.cpp:1276
+msgid "Copying selection to clipboard..."
+msgstr ""
+
+#: pdiff.cpp:1292
+msgid "Inserting clipboard contents..."
+msgstr ""
+
+#: pdiff.cpp:1814
+msgid "Save && Continue"
+msgstr ""
+
+#: pdiff.cpp:1815
+msgid "Continue Without Saving"
+msgstr ""
+
+#: pdiff.cpp:2018
+msgid "Search complete."
+msgstr ""
+
+#: pdiff.cpp:2018
+msgid "Search Complete"
+msgstr ""
+
+#: pdiff.cpp:2252
+msgid "Nothing is selected in either diff input window."
+msgstr ""
+
+#: pdiff.cpp:2252
+msgid "Error while adding manual diff range"
+msgstr ""
+
+#: kdiff3_shell.cpp:76
+msgid ""
+"Could not initialize the KDiff3 part.\n"
+"This usually happens due to an installation problem. Please read the README-"
+"file in the source package for details."
+msgstr ""
+
+#: rc.cpp:1
+msgctxt "NAME OF TRANSLATORS"
+msgid "Your names"
+msgstr ""
+
+#: rc.cpp:2
+msgctxt "EMAIL OF TRANSLATORS"
+msgid "Your emails"
+msgstr ""
+
+#. i18n: file: kdiff3_part.rc:4
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:5
+msgid "&KDiff3"
+msgstr ""
+
+#. i18n: file: kdiff3_part.rc:13
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:8
+msgid "Configure KDiff3"
+msgstr ""
+
+#. i18n: file: kdiff3_part.rc:16
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:11
+msgid "KDiff3"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:106
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:38
+msgid "Main Toolbar"
+msgstr ""
diff --git a/po/nn/kdiff3plugin.po b/po/nn/kdiff3plugin.po
new file mode 100644 (file)
index 0000000..2427b67
--- /dev/null
@@ -0,0 +1,90 @@
+# Translation of kdiff3plugin to Norwegian Nynorsk
+#
+# Eirik U. Birkeland <eirbir@gmail.com>, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: KDE 4\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2009-01-11 18:43+0100\n"
+"Last-Translator: Eirik U. Birkeland <eirbir@gmail.com>\n"
+"Language-Team: Norwegian Nynorsk <i18n-nn@lister.ping.uio.no>\n"
+"Language: nn\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Lokalize 0.3\n"
+"X-Environment: kde\n"
+"X-Accelerator-Marker: &\n"
+"X-Text-Markup: kde4\n"
+
+#: kdiff3plugin.cpp:107
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#: kdiff3plugin.cpp:114
+#, kde-format
+msgid "Compare with %1"
+msgstr "Samanlikn med %1"
+
+#: kdiff3plugin.cpp:120
+#, kde-format
+msgid "Merge with %1"
+msgstr "Slå saman med %1"
+
+#: kdiff3plugin.cpp:126
+#, kde-format
+msgid "Save '%1' for later"
+msgstr "Lagra «%1» til seinare"
+
+#: kdiff3plugin.cpp:132
+msgid "3-way merge with base"
+msgstr "Samanslåing av tre filer med base"
+
+#: kdiff3plugin.cpp:139
+msgid "Compare with ..."
+msgstr "Samanlikn med …"
+
+#: kdiff3plugin.cpp:149
+msgid "Clear list"
+msgstr "Tøm liste"
+
+#: kdiff3plugin.cpp:157
+msgid "Compare"
+msgstr "Samanlikn"
+
+#: kdiff3plugin.cpp:163
+msgid "3 way comparison"
+msgstr "Samanlikning med tre filer"
+
+#: kdiff3plugin.cpp:167
+msgid "About KDiff3 menu plugin ..."
+msgstr "Om KDiff3-menytillegg …"
+
+#: kdiff3plugin.cpp:269
+msgid ""
+"KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+"KDiff3-menytillegg© 2008 Joachim Eibl\n"
+"Nettstad: http://kdiff3.sourceforge.net\n"
+"\n"
+
+#: kdiff3plugin.cpp:271
+msgid ""
+"Using the context menu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else, \"Save\" the first file for later, and "
+"it will appear in the \"Compare With ...\" submenu. Then, use \"Compare "
+"With\" on the second file.\n"
+"For a 3-way merge first, \"Save\" the base file, then the branch to merge, "
+"and then \"3-way merge with base\" on the other branch which will be used as "
+"the destination.\n"
+"The same also applies to directory comparison and merge."
+msgstr ""
+
+#: kdiff3plugin.cpp:279
+msgid "About KDiff3 Menu Plugin"
+msgstr ""
diff --git a/po/pl/CMakeLists.txt b/po/pl/CMakeLists.txt
new file mode 100644 (file)
index 0000000..1d48c2b
--- /dev/null
@@ -0,0 +1,2 @@
+file(GLOB _po_files *.po)
+GETTEXT_PROCESS_PO_FILES(pl ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
diff --git a/po/pl/kdiff3.po b/po/pl/kdiff3.po
new file mode 100644 (file)
index 0000000..133a157
--- /dev/null
@@ -0,0 +1,3241 @@
+# translation of kdiff3.po to Polish
+# translation of pl.po to
+# Copyright (C) 2003, 2004, 2005, 2009, 2010, 2011 Free Software Foundation, Inc.
+#
+# Tomasz Waleµczak <tom@w.pl>, 2004.
+# Tomasz Waleńczak <tom@w.pl>, 2004.
+# Michal Rudolf <mrudolf@kdewebdev.org>, 2004.
+# Marcin Bokszczanin <mboksz@bcig.pl>, 2005.
+# Krzysztof Lichota <lichota@mimuw.edu.pl>, 2005.
+# Robert Gomulka <rgom@o2.pl>, 2005.
+# Michał Smoczyk <msmoczyk@wp.pl>, 2009, 2010, 2011.
+# Łukasz Wojniłowicz <lukasz.wojnilowicz@gmail.com>, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-08-12 11:03+0200\n"
+"Last-Translator: Łukasz Wojniłowicz <lukasz.wojnilowicz@gmail.com>\n"
+"Language-Team: Polish <pl@li.org>\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.2\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2);\n"
+
+#: kreplacements/kreplacements.h:105
+msgid "Continue"
+msgstr "Kontynuuj"
+
+#: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158
+#: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512
+msgid "Cancel"
+msgstr "Anuluj"
+
+#: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631
+msgid "Quit"
+msgstr "Wyjdź"
+
+#: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339
+msgid "Ok"
+msgstr "OK"
+
+#: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715
+msgid "Help"
+msgstr "Pomoc"
+
+#: kreplacements/kreplacements.cpp:185
+msgid "Defaults"
+msgstr "Domyślne"
+
+#. i18n: file: kdiff3_shell.rc:4
+#. i18n: ectx: Menu (file)
+#: kreplacements/kreplacements.cpp:296 rc.cpp:14
+msgid "&File"
+msgstr "&Plik"
+
+#: kreplacements/kreplacements.cpp:297
+msgid "&Edit"
+msgstr "&Edycja"
+
+#. i18n: file: kdiff3_shell.rc:7
+#. i18n: ectx: Menu (directory)
+#: kreplacements/kreplacements.cpp:298 rc.cpp:17
+msgid "&Directory"
+msgstr "&Katalog"
+
+#. i18n: file: kdiff3_shell.rc:50
+#. i18n: ectx: Menu (movement)
+#: kreplacements/kreplacements.cpp:301 rc.cpp:26
+msgid "&Movement"
+msgstr "&Idź"
+
+#. i18n: file: kdiff3_shell.rc:61
+#. i18n: ectx: Menu (diff)
+#: kreplacements/kreplacements.cpp:302 rc.cpp:29
+msgid "D&iffview"
+msgstr "&Różnice"
+
+#. i18n: file: kdiff3_shell.rc:73
+#. i18n: ectx: Menu (merge)
+#: kreplacements/kreplacements.cpp:303 rc.cpp:32
+msgid "&Merge"
+msgstr "&Połączenie"
+
+#. i18n: file: kdiff3_shell.rc:95
+#. i18n: ectx: Menu (window)
+#: kreplacements/kreplacements.cpp:304 rc.cpp:35
+msgid "&Window"
+msgstr "&Okno"
+
+#: kreplacements/kreplacements.cpp:305
+msgid "&Settings"
+msgstr "&Ustawienia"
+
+#: kreplacements/kreplacements.cpp:306
+msgid "&Help"
+msgstr "&Pomoc"
+
+#: kreplacements/kreplacements.cpp:353
+msgid "&About"
+msgstr "&O programie"
+
+#: kreplacements/kreplacements.cpp:369
+msgid "A&uthor"
+msgstr "A&utor"
+
+#: kreplacements/kreplacements.cpp:383
+msgid "&Thanks To"
+msgstr "&Podziękowania"
+
+#. i18n: file: kdiff3_shell.rc:30
+#. i18n: ectx: Menu (dir_current_merge_menu)
+#: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497
+#: rc.cpp:20
+msgid "Current Item Merge Operation"
+msgstr "Operacja połączenia dla bieżącej pozycji"
+
+#. i18n: file: kdiff3_shell.rc:38
+#. i18n: ectx: Menu (dir_current_sync_menu)
+#: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498
+#: rc.cpp:23
+msgid "Current Item Sync Operation"
+msgstr "Operacja synchronizacji dla bieżącej pozycji"
+
+#: kreplacements/kreplacements.cpp:597
+msgid "Open"
+msgstr "Otwórz"
+
+#: kreplacements/kreplacements.cpp:606
+msgid "Save"
+msgstr "Zapisz"
+
+#: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720
+msgid "Save As..."
+msgstr "Zapisz jako..."
+
+#: kreplacements/kreplacements.cpp:623
+msgid "Print..."
+msgstr "Drukuj..."
+
+#: kreplacements/kreplacements.cpp:639
+msgid "Cut"
+msgstr "Wytnij"
+
+#: kreplacements/kreplacements.cpp:647
+msgid "Copy"
+msgstr "Kopiuj"
+
+#: kreplacements/kreplacements.cpp:655
+msgid "Paste"
+msgstr "Wklej"
+
+#: kreplacements/kreplacements.cpp:663
+msgid "Select All"
+msgstr "Zaznacz wszystko"
+
+#: kreplacements/kreplacements.cpp:671
+msgid "Show Toolbar"
+msgstr "Pokaż pasek narzędzi"
+
+#: kreplacements/kreplacements.cpp:679
+msgid "Show &Status Bar"
+msgstr "Pokaż pasek &stanu"
+
+#: kreplacements/kreplacements.cpp:687
+#, kde-format
+msgid "&Configure %1..."
+msgstr "&Konfiguracja %1..."
+
+#: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707
+msgid "About"
+msgstr "O programie"
+
+#: kreplacements/kreplacements.cpp:722
+msgid "Find"
+msgstr "Znajdź"
+
+#: kreplacements/kreplacements.cpp:730
+msgid "Find Next"
+msgstr "Znajdź następne"
+
+#: kreplacements/kreplacements.cpp:750
+msgid "Select Font"
+msgstr "Wybierz czcionkę"
+
+#: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676
+msgid ""
+"You selected a variable width font.\n"
+"\n"
+"Because this program doesn't handle variable width fonts\n"
+"correctly, you might experience problems while editing.\n"
+"\n"
+"Do you want to continue or do you want to select another font."
+msgstr ""
+"Wybrano czcionkę o zmiennej szerokości.\n"
+"\n"
+"Ponieważ ten program nie obsługuje poprawnie czcionek\n"
+"o zmiennej szerokości, mogą wystąpić problemy podczas edycji\n"
+"\n"
+"Chcesz kontynuować czy też wybrać inną czcionkę."
+
+#: kreplacements/kreplacements.cpp:792
+msgid "Incompatible font."
+msgstr "Niezgodna czcionka."
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Continue at my own risk"
+msgstr "Kontynuuj na własne ryzyko"
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Select another font"
+msgstr "Wybierz inną czcionkę"
+
+#: kreplacements/kreplacements.cpp:1134
+msgid "For more documentation, see the help-menu or the subdirectory doc."
+msgstr ""
+"Aby uzyskać więcej informacji zobacz pomoc programu lub zajrzyj do "
+"podkatalogu doc."
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "KDiff3-Usage"
+msgstr "Użycie KDiff3"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Ignore"
+msgstr "Ignoruj"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Exit"
+msgstr "Wyjście"
+
+#: diff.cpp:251
+msgid "Writing clipboard data to temp file failed."
+msgstr "Błąd zapisu zawartości schowka do pliku tymczasowego."
+
+#: diff.cpp:255
+msgid "From Clipboard"
+msgstr "ze schowka"
+
+#: diff.cpp:471
+msgid "Expecting space after closing quotation mark."
+msgstr "Oczekiwano spacji po zamknięciu znaku cytowania."
+
+#: diff.cpp:474
+msgid "Not matching quotation marks."
+msgstr "Niezgodne znaki cytowania."
+
+#: diff.cpp:496
+msgid "Unexpected quotation mark within argument."
+msgstr "Nieoczekiwany znak cytowania wewnątrz argumentu."
+
+#: diff.cpp:503
+msgid "No program specified."
+msgstr "Nie określono programu."
+
+#: diff.cpp:605
+#, kde-format
+msgid ""
+"Preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The preprocessing command will be disabled now."
+msgstr ""
+"Przetwarzenie wstępne prawdopodobnie nie powiodło się. Proszę sprawdzić "
+"polecenie:\n"
+"\n"
+"  %1\n"
+"\n"
+"Polecenie przetwarzania wstępnego zostanie wyłączone."
+
+#: diff.cpp:653
+#, kde-format
+msgid ""
+"The line-matching-preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The line-matching-preprocessing command will be disabled now."
+msgstr ""
+"Przetwarzenie wstępne dopasowywania wierszy prawdopodobnie nie powiodło się. "
+"Proszę sprawdzić polecenie:\n"
+"\n"
+"  %1\n"
+"\n"
+"Polecenie przetwarzania wstępnego dopasowywania wierszy zostanie wyłączone."
+
+#: diff.cpp:1776 diff.cpp:1790
+msgid ""
+"Data loss error:\n"
+"If it is reproducible please contact the author.\n"
+msgstr ""
+"Błąd utraty danych:\n"
+"Jeśli jest powtarzalny, to skontaktuj się z autorem programu.\n"
+
+#: diff.cpp:1778 diff.cpp:1792
+msgid "Severe Internal Error"
+msgstr "Poważny błąd wewnętrzny"
+
+#: directorymergewindow.cpp:136
+msgid "Mix of links and normal files."
+msgstr "Pomieszane dowiązania i normalne pliki."
+
+#: directorymergewindow.cpp:143
+msgid "Link: "
+msgstr "Dowiązanie: "
+
+#: directorymergewindow.cpp:151
+msgid "Size. "
+msgstr "Rozmiar. "
+
+#: directorymergewindow.cpp:164 directorymergewindow.cpp:174
+msgid "Date & Size: "
+msgstr "Data & Rozmiar: "
+
+#: directorymergewindow.cpp:184 directorymergewindow.cpp:190
+#, kde-format
+msgid "Creating temp copy of %1 failed."
+msgstr "Tworzenie tymczasowej kopii %1 nieudane."
+
+#: directorymergewindow.cpp:201 directorymergewindow.cpp:209
+#, kde-format
+msgid "Opening %1 failed."
+msgstr "Otwieranie %1 nie powiodło się."
+
+#: directorymergewindow.cpp:213
+msgid "Comparing file..."
+msgstr "Porównywanie pliku..."
+
+#: directorymergewindow.cpp:223 directorymergewindow.cpp:229
+#, kde-format
+msgid "Error reading from %1"
+msgstr "Błąd czytania z %1"
+
+#: directorymergewindow.cpp:358
+msgid "Name"
+msgstr "Nazwa"
+
+#: directorymergewindow.cpp:358
+msgid "Operation"
+msgstr "Operacja"
+
+#: directorymergewindow.cpp:358
+msgid "Status"
+msgstr "Stan"
+
+#: directorymergewindow.cpp:359
+msgid "Unsolved"
+msgstr "Nierozwiązane"
+
+#: directorymergewindow.cpp:359
+msgid "Solved"
+msgstr "Rozwiązane"
+
+#: directorymergewindow.cpp:359
+msgid "Nonwhite"
+msgstr "Nie biały"
+
+#: directorymergewindow.cpp:359
+msgid "White"
+msgstr "Biały"
+
+#: directorymergewindow.cpp:388
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort "
+"the merge and rescan the directory?"
+msgstr ""
+"Obecnie wykonywane jest łączenie katalogów. Jesteś pewny że chcesz przerwać "
+"tą operację i ponownie przeskanować katalog?"
+
+#: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655
+#: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823
+msgid "Warning"
+msgstr "Ostrzeżenie"
+
+#: directorymergewindow.cpp:390 directorymergewindow.cpp:2965
+msgid "Rescan"
+msgstr "Ponowne skanowanie"
+
+#: directorymergewindow.cpp:391 pdiff.cpp:1081
+msgid "Continue Merging"
+msgstr "Wznów łączenie"
+
+#: directorymergewindow.cpp:548
+msgid "Opening of directories failed:"
+msgstr "Otwieranie katalogów nie powiodło się:"
+
+#: directorymergewindow.cpp:551
+#, kde-format
+msgid "Dir A \"%1\" does not exist or is not a directory.\n"
+msgstr "Katalog A \"%1\" nie istnieje lub nie jest katalogiem.\n"
+
+#: directorymergewindow.cpp:554
+#, kde-format
+msgid "Dir B \"%1\" does not exist or is not a directory.\n"
+msgstr "Katalog B \"%1\" nie istnieje lub nie jest katalogiem.\n"
+
+#: directorymergewindow.cpp:557
+#, kde-format
+msgid "Dir C \"%1\" does not exist or is not a directory.\n"
+msgstr "Katalog C \"%1\" nie istnieje lub nie jest katalogiem.\n"
+
+#: directorymergewindow.cpp:559
+msgid "Directory Open Error"
+msgstr "Błąd otwierania katalogu"
+
+#: directorymergewindow.cpp:567
+msgid ""
+"The destination directory must not be the same as A or B when three "
+"directories are merged.\n"
+"Check again before continuing."
+msgstr ""
+"Docelowy katalog nie może być taki sam jak A lub B jeśli łączone są trzy "
+"katalogi.\n"
+"Sprawdź ponownie zanim będziesz kontynuować."
+
+#: directorymergewindow.cpp:569
+msgid "Parameter Warning"
+msgstr "Ostrzeżenie co do parametru"
+
+#: directorymergewindow.cpp:574
+msgid "Scanning directories..."
+msgstr "Skanowanie katalogów ..."
+
+#: directorymergewindow.cpp:607
+msgid "Reading Directory A"
+msgstr "Czytanie katalogu A"
+
+#: directorymergewindow.cpp:629
+msgid "Reading Directory B"
+msgstr "Czytanie katalogu B"
+
+#: directorymergewindow.cpp:651
+msgid "Reading Directory C"
+msgstr "Czytanie katalogu C"
+
+#: directorymergewindow.cpp:677
+msgid "Some subdirectories were not readable in"
+msgstr "Niektóre podkatalogi są nie do odczytu w"
+
+#: directorymergewindow.cpp:682
+msgid "Check the permissions of the subdirectories."
+msgstr "Sprawdź prawa dostępu do podkatalogów."
+
+#: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737
+#: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233
+#: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328
+msgid "Ready."
+msgstr "Gotowe."
+
+#: directorymergewindow.cpp:735
+msgid "Directory Comparison Status"
+msgstr "Stan porównania katalogów"
+
+#: directorymergewindow.cpp:736
+msgid "Number of subdirectories:"
+msgstr "Liczba podkatalogów:"
+
+#: directorymergewindow.cpp:737
+msgid "Number of equal files:"
+msgstr "Liczba identycznych plików:"
+
+#: directorymergewindow.cpp:738
+msgid "Number of different files:"
+msgstr "Liczba różniących się plików:"
+
+#: directorymergewindow.cpp:741
+msgid "Number of manual merges:"
+msgstr "Liczba ręcznych połączeń:"
+
+#: directorymergewindow.cpp:912
+msgid "This affects all merge operations."
+msgstr "To wpłynie na wszystkie operacje łączenia."
+
+#: directorymergewindow.cpp:913
+msgid "Changing All Merge Operations"
+msgstr "Zmiana wszystkich operacji łączenia"
+
+#: directorymergewindow.cpp:1312
+msgid "Processing "
+msgstr "Przetwarzanie "
+
+#: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742
+msgid "To do."
+msgstr "Do zrobienia."
+
+#: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996
+msgid "Copy A to B"
+msgstr "Kopiuj A do B"
+
+#: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997
+msgid "Copy B to A"
+msgstr "Kopiuj B do A"
+
+#: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998
+msgid "Delete A"
+msgstr "Usuń A"
+
+#: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999
+msgid "Delete B"
+msgstr "Usuń B"
+
+#: directorymergewindow.cpp:1814
+msgid "Delete A & B"
+msgstr "Usuń A i B"
+
+#: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001
+msgid "Merge to A"
+msgstr "Połącz z A"
+
+#: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002
+msgid "Merge to B"
+msgstr "Połącz z B"
+
+#: directorymergewindow.cpp:1817
+msgid "Merge to A & B"
+msgstr "Połącz z A i B"
+
+#: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993
+msgid "Delete (if exists)"
+msgstr "Usuń (jeśli istnieje)"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+#: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869
+msgid "Merge"
+msgstr "Połącz"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+msgid "Merge (manual)"
+msgstr "Połącz (ręcznie)"
+
+#: directorymergewindow.cpp:1824
+msgid "Error: Conflicting File Types"
+msgstr "Błąd: Konflikt typów plików"
+
+#: directorymergewindow.cpp:1825
+msgid "Error: Changed and Deleted"
+msgstr "Błąd: Zmieniony i usunięty"
+
+#: directorymergewindow.cpp:1826
+msgid "Error: Dates are equal but files are not."
+msgstr "Błąd: Daty są identyczne, ale pliki nie."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906
+msgid "This operation is currently not possible."
+msgstr "Ta operacja jest w tej chwili niemożliwa."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174
+msgid "Operation Not Possible"
+msgstr "Operacja jest niemożliwa"
+
+#: directorymergewindow.cpp:1945
+msgid ""
+"This should never happen: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"If you know how to reproduce this, please contact the program author."
+msgstr ""
+"To nie powinno się nigdy wydarzyć: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"Jeśli wiesz jak to powtórzyć, proszę skontaktować się z autorem programu."
+
+#: directorymergewindow.cpp:1945
+msgid "Program Error"
+msgstr "Błąd programu"
+
+#: directorymergewindow.cpp:1956
+msgid "An error occurred while copying.\n"
+msgstr "Podczas kopiowania wystąpił błąd.\n"
+
+#: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025
+#: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105
+#: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123
+#: directorymergewindow.cpp:2374
+msgid "Error"
+msgstr "Błąd"
+
+#: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375
+msgid "Merge Error"
+msgstr "Błąd połączenia"
+
+#: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380
+msgid "Error."
+msgstr "Błąd."
+
+#: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272
+#: directorymergewindow.cpp:2312
+msgid "Done."
+msgstr "Zrobione."
+
+#: directorymergewindow.cpp:1990
+msgid "Not saved."
+msgstr "Niezapisane."
+
+#: directorymergewindow.cpp:2025
+msgid "Unknown merge operation. (This must never happen!)"
+msgstr "Nieznana operacja połączenia. (To się nigdy nie powinno wydarzyć!)"
+
+#: directorymergewindow.cpp:2057
+msgid "Unknown merge operation."
+msgstr "Nieznana operacja łączenia."
+
+#: directorymergewindow.cpp:2072
+msgid ""
+"The merge is about to begin.\n"
+"\n"
+"Choose \"Do it\" if you have read the instructions and know what you are "
+"doing.\n"
+"Choosing \"Simulate it\" will tell you what would happen.\n"
+"\n"
+"Be aware that this program still has beta status and there is NO WARRANTY "
+"whatsoever! Make backups of your vital data!"
+msgstr ""
+"Rozpoczęcie operacji połączenia.\n"
+"\n"
+"Wybierz \"Zrób to\" jeśli czytałeś instrukcję i wiesz co robisz.\n"
+"Wybierz \"Symuluj\" otrzymasz informacje co otrzymasz\n"
+"\n"
+"Miej na uwadze że program nadal jest wersji beta i BRAK GWARANCJI co do "
+"wyników działania! Wykonaj kopie zapasowe swoich istotnych danych!"
+
+#: directorymergewindow.cpp:2077
+msgid "Starting Merge"
+msgstr "Rozpoczęcie połączenia"
+
+#: directorymergewindow.cpp:2078
+msgid "Do It"
+msgstr "Wykonaj"
+
+#: directorymergewindow.cpp:2079
+msgid "Simulate It"
+msgstr "Symuluj"
+
+#: directorymergewindow.cpp:2105
+msgid ""
+"The highlighted item has a different type in the different directories. "
+"Select what to do."
+msgstr ""
+"Podświetlona pozycja jest innego typu w innym katalogu. Wybierz co zrobić."
+
+#: directorymergewindow.cpp:2114
+msgid ""
+"The modification dates of the file are equal but the files are not. Select "
+"what to do."
+msgstr ""
+"Data modyfikacji plików jest taka sama ale pliki nie. Wybierz co zrobić."
+
+#: directorymergewindow.cpp:2123
+msgid ""
+"The highlighted item was changed in one directory and deleted in the other. "
+"Select what to do."
+msgstr ""
+"Podświetlona pozycja została zmieniona w jednym katalogu, a usunięta w "
+"innym. Wybierz co zrobić."
+
+#: directorymergewindow.cpp:2174
+msgid ""
+"This operation is currently not possible because directory merge is "
+"currently running."
+msgstr ""
+"Ta operacja jest nie możliwa do wykonania w tej chwili gdyż obecnie "
+"wykonywana jest operacja połączenia katalogów."
+
+#: directorymergewindow.cpp:2234
+msgid ""
+"There was an error in the last step.\n"
+"Do you want to continue with the item that caused the error or do you want "
+"to skip this item?"
+msgstr ""
+"W ostatnim kroku wystąpił błąd.\n"
+"Chcesz kontynuować z pozycja która powoduje błąd czy tez pominąć tą pozycję?"
+
+#: directorymergewindow.cpp:2236
+msgid "Continue merge after an error"
+msgstr "Kontynuuj połączenie po błędzie"
+
+#: directorymergewindow.cpp:2237
+msgid "Continue With Last Item"
+msgstr "Kontynuuj z ostatnią pozycją"
+
+#: directorymergewindow.cpp:2238
+msgid "Skip Item"
+msgstr "Pomiń pozycję"
+
+#: directorymergewindow.cpp:2272
+msgid "Skipped."
+msgstr "Pominięto."
+
+#: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493
+msgid "In progress..."
+msgstr "W trakcie..."
+
+#: directorymergewindow.cpp:2327
+msgid "Merge operation complete."
+msgstr "Operacja połączenia zakończona."
+
+#: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330
+msgid "Merge Complete"
+msgstr "Połączenie zakończone"
+
+#: directorymergewindow.cpp:2340
+msgid ""
+"Simulated merge complete: Check if you agree with the proposed operations."
+msgstr ""
+"Symulacja połączenia zakończona. Sprawdź czy zgadzasz się na zaproponowane "
+"operacje."
+
+#: directorymergewindow.cpp:2374
+msgid "An error occurred. Press OK to see detailed information.\n"
+msgstr "Wystąpił błąd. Wciśnij OK aby zobaczyć szczegółowe informacje.\n"
+
+#: directorymergewindow.cpp:2406
+#, kde-format
+msgid "Error: While deleting %1: Creating backup failed."
+msgstr "Błąd: Podczas usuwania %1: Tworzenie kopii zapasowej nie powiodło się."
+
+#: directorymergewindow.cpp:2413
+#, kde-format
+msgid "delete directory recursively( %1 )"
+msgstr "usuwaj katalogi rekursywnie( %1 )"
+
+#: directorymergewindow.cpp:2415
+#, kde-format
+msgid "delete( %1 )"
+msgstr "usuń( %1 )"
+
+#: directorymergewindow.cpp:2430
+msgid "Error: delete dir operation failed while trying to read the directory."
+msgstr "Błąd: Nieudane usuwanie katalogu w momencie próby czytania katalogu."
+
+#: directorymergewindow.cpp:2449
+#, kde-format
+msgid "Error: rmdir( %1 ) operation failed."
+msgstr "Błąd: rmdir( %1 ) operacja nieudana."
+
+#: directorymergewindow.cpp:2459
+msgid "Error: delete operation failed."
+msgstr "Błąd: Nieudana operacja usuwania."
+
+#: directorymergewindow.cpp:2485
+#, kde-format
+msgid "manual merge( %1, %2, %3 -> %4)"
+msgstr "ręczne połączenie( %1, %2, %3 -> %4)"
+
+#: directorymergewindow.cpp:2488
+msgid ""
+"     Note: After a manual merge the user should continue by pressing F7."
+msgstr ""
+"     Uwaga: Po ręcznym połączeniu użytkownik powinien kontynuować wciskając "
+"F7."
+
+#: directorymergewindow.cpp:2513
+#, kde-format
+msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed."
+msgstr ""
+"Błąd: Nieudane kopiowanie( %1 -> %2 ) .Nieudane kasowanie katalogu "
+"docelowego."
+
+#: directorymergewindow.cpp:2522
+#, kde-format
+msgid "copyLink( %1 -> %2 )"
+msgstr "copyLink( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2533
+msgid "Error: copyLink failed: Remote links are not yet supported."
+msgstr ""
+"Błąd: Nie udane copyLink, zdalne dowiązania nie są jeszcze obsługiwane."
+
+#: directorymergewindow.cpp:2539
+msgid "Error: copyLink failed."
+msgstr "Błąd: Nieudane copyLink."
+
+#: directorymergewindow.cpp:2564
+#, kde-format
+msgid "copy( %1 -> %2 )"
+msgstr "kopiowanie( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2590
+#, kde-format
+msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination."
+msgstr ""
+"Błąd w czasie zmiany nazwy( %1 -> %2 ): Nie można usunąć istniejącego "
+"miejsca docelowego."
+
+#: directorymergewindow.cpp:2596
+#, kde-format
+msgid "rename( %1 -> %2 )"
+msgstr "zmiana nazwy( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2605
+msgid "Error: Rename failed."
+msgstr "Błąd: Nieudana zmiana nazwy."
+
+#: directorymergewindow.cpp:2623
+#, kde-format
+msgid "Error during makeDir of %1. Cannot delete existing file."
+msgstr "Błąd podczas makeDir %1. Nie można usunąć istniejącego pliku."
+
+#: directorymergewindow.cpp:2639
+#, kde-format
+msgid "makeDir( %1 )"
+msgstr "makeDir( %1 )"
+
+#: directorymergewindow.cpp:2649
+msgid "Error while creating directory."
+msgstr "Błąd podczas tworzenia katalogu."
+
+#: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784
+msgid "Dest"
+msgstr "Cel"
+
+#: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709
+msgid "Dir"
+msgstr "Katalog"
+
+#: directorymergewindow.cpp:2678
+msgid "Type"
+msgstr "Typ"
+
+#: directorymergewindow.cpp:2678
+msgid "Size"
+msgstr "Rozmiar"
+
+#: directorymergewindow.cpp:2679
+msgid "Attr"
+msgstr "Atrybuty"
+
+#: directorymergewindow.cpp:2679
+msgid "Last Modification"
+msgstr "Ostatnia modyfikacja"
+
+#: directorymergewindow.cpp:2679
+msgid "Link-Destination"
+msgstr "Dowiązanie do pliku"
+
+#: directorymergewindow.cpp:2709 difftextwindow.cpp:401
+msgid "File"
+msgstr "Plik"
+
+#: directorymergewindow.cpp:2726
+msgid "not available"
+msgstr "niedostępne"
+
+#: directorymergewindow.cpp:2746
+msgid "A (Dest): "
+msgstr "A (cel): "
+
+#: directorymergewindow.cpp:2749
+msgid "A (Base): "
+msgstr "A (podstawa): "
+
+#: directorymergewindow.cpp:2755
+msgid "B (Dest): "
+msgstr "B (cel): "
+
+#: directorymergewindow.cpp:2763
+msgid "C (Dest): "
+msgstr "C (cel): "
+
+#: directorymergewindow.cpp:2769
+msgid "Dest: "
+msgstr "Cel: "
+
+#: directorymergewindow.cpp:2836
+msgid "Save Directory Merge State As..."
+msgstr "Zapisz stan połączenia katalogów jako..."
+
+#: directorymergewindow.cpp:2959
+msgid "Start/Continue Directory Merge"
+msgstr "Uruchom/Kontynuuj połączenie katalogów "
+
+#: directorymergewindow.cpp:2960
+msgid "Run Operation for Current Item"
+msgstr "Wykonaj operację na bieżącej pozycji"
+
+#: directorymergewindow.cpp:2961
+msgid "Compare Selected File"
+msgstr "Porównaj zaznaczone pliki"
+
+#: directorymergewindow.cpp:2962
+msgid "Merge Current File"
+msgstr "Połącz bieżący plik"
+
+#: directorymergewindow.cpp:2962
+msgid ""
+"Merge\n"
+"File"
+msgstr ""
+"Połącz\n"
+"plik"
+
+#: directorymergewindow.cpp:2963
+msgid "Fold All Subdirs"
+msgstr "Zwiń wszystkie podkatalogi"
+
+#: directorymergewindow.cpp:2964
+msgid "Unfold All Subdirs"
+msgstr "Rozwiń wszystkie podkatalogi"
+
+#: directorymergewindow.cpp:2968
+msgid "Choose A for All Items"
+msgstr "Wybierz A dla wszystkich pozycji"
+
+#: directorymergewindow.cpp:2969
+msgid "Choose B for All Items"
+msgstr "Wybierz B dla wszystkich pozycji"
+
+#: directorymergewindow.cpp:2970
+msgid "Choose C for All Items"
+msgstr "Wybierz C dla wszystkich pozycji"
+
+#: directorymergewindow.cpp:2971
+msgid "Auto-Choose Operation for All Items"
+msgstr "Automatyczny wybór dla wszystkich pozycji"
+
+#: directorymergewindow.cpp:2972
+msgid "No Operation for All Items"
+msgstr "Brak operacji dla wszystkich pozycji"
+
+#: directorymergewindow.cpp:2977
+msgid "Show Identical Files"
+msgstr "Pokaż identyczne pliki"
+
+#: directorymergewindow.cpp:2977
+msgid ""
+"Identical\n"
+"Files"
+msgstr ""
+"Identyczne\n"
+"pliki"
+
+#: directorymergewindow.cpp:2978
+msgid "Show Different Files"
+msgstr "Pokaż różniące się pliki"
+
+#: directorymergewindow.cpp:2979
+msgid "Show Files only in A"
+msgstr "Pokaż pliki tylko w A"
+
+#: directorymergewindow.cpp:2979
+msgid ""
+"Files\n"
+"only in A"
+msgstr ""
+"Pliki\n"
+"tylko w A"
+
+#: directorymergewindow.cpp:2980
+msgid "Show Files only in B"
+msgstr "Pokaż pliki tylko w B"
+
+#: directorymergewindow.cpp:2980
+msgid ""
+"Files\n"
+"only in B"
+msgstr ""
+"Pliki\n"
+"tylko w B"
+
+#: directorymergewindow.cpp:2981
+msgid "Show Files only in C"
+msgstr "Pokaż pliki tylko w C"
+
+#: directorymergewindow.cpp:2981
+msgid ""
+"Files\n"
+"only in C"
+msgstr ""
+"Pliki\n"
+"tylko w C"
+
+#: directorymergewindow.cpp:2985
+msgid "Compare Explicitly Selected Files"
+msgstr "Porównaj bezpośrednio zaznaczone pliki"
+
+#: directorymergewindow.cpp:2986
+msgid "Merge Explicitly Selected Files"
+msgstr "Połącz bezpośrednio zaznaczone pliki"
+
+#: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995
+msgid "Do Nothing"
+msgstr "Nic nie rób"
+
+#: directorymergewindow.cpp:2989
+msgid "A"
+msgstr "A"
+
+#: directorymergewindow.cpp:2990
+msgid "B"
+msgstr "B"
+
+#: directorymergewindow.cpp:2991
+msgid "C"
+msgstr "C"
+
+#: directorymergewindow.cpp:3000
+msgid "Delete A && B"
+msgstr "Usuń A i B"
+
+#: directorymergewindow.cpp:3003
+msgid "Merge to A && B"
+msgstr "Połącz z A i B"
+
+#: main.cpp:74 main.cpp:76
+msgid "Ignored. (User defined.)"
+msgstr "Ignorowane. (Zdefiniowane przez użytkownika.)"
+
+#: main.cpp:162
+msgid "kdiff3"
+msgstr "KDiff3"
+
+#: main.cpp:164
+msgid "Tool for Comparison and Merge of Files and Directories"
+msgstr "Narzędzie do porównywania i łączenia plików i katalogów"
+
+#: main.cpp:165
+#| msgid "(c) 2002-2009 Joachim Eibl"
+msgid "(c) 2002-2011 Joachim Eibl"
+msgstr "(c) 2002-2011 Joachim Eibl"
+
+#: main.cpp:172 kdiff3_part.cpp:303
+msgid "Joachim Eibl"
+msgstr "Joachim Eibl"
+
+#: main.cpp:173
+msgid "Eike Sauer"
+msgstr "Eike Sauer"
+
+#: main.cpp:173
+msgid "Bugfixes, Debian package maintainer"
+msgstr "Poprawki błędów, opiekun pakietu Debiana"
+
+#: main.cpp:174
+msgid "Sebastien Fricker"
+msgstr "Sebastien Fricker"
+
+#: main.cpp:174
+msgid "Windows installer"
+msgstr "Instalator Windows"
+
+#: main.cpp:175
+msgid "Stephan Binner"
+msgstr "Stephan Binner"
+
+#: main.cpp:175
+msgid "i18n-help"
+msgstr "Pomoc i18n"
+
+#: main.cpp:176
+msgid "Stefan Partheymueller"
+msgstr "Stefan Partheymueller"
+
+#: main.cpp:176
+msgid "Clipboard-patch"
+msgstr "Łatka dla schowka"
+
+#: main.cpp:177
+msgid "David Faure"
+msgstr "David Faure"
+
+#: main.cpp:177
+msgid "KIO-Help"
+msgstr "KIO-Help"
+
+#: main.cpp:178
+msgid "Bernd Gehrmann"
+msgstr "Bernd Gehrmann"
+
+#: main.cpp:178
+msgid "Class CvsIgnoreList from Cervisia"
+msgstr "Class CvsIgnoreList z Cervisia"
+
+#: main.cpp:179
+msgid "Andre Woebbeking"
+msgstr "Andre Woebbeking"
+
+#: main.cpp:179
+msgid "Class StringMatcher"
+msgstr "Class StringMatcher"
+
+#: main.cpp:180
+msgid "Michael Denio"
+msgstr "Michael Denio"
+
+#: main.cpp:180
+msgid "Directory Equality-Coloring patch"
+msgstr "Łatka kolorowania katalogów"
+
+#: main.cpp:181
+msgid "Manfred Koehler"
+msgstr "Manfred Koehler"
+
+#: main.cpp:181
+msgid "Fix for slow startup on Windows"
+msgstr "Poprawka wolnego uruchamiania się dla Windows"
+
+#: main.cpp:182
+msgid "Sergey Zorin"
+msgstr "Sergey Zorin"
+
+#: main.cpp:182
+msgid "Diff Ext for Windows"
+msgstr "Diff Ext dla systemu Windows"
+
+#: main.cpp:183
+msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+
+#: main.cpp:183
+msgid "GNU-Diffutils"
+msgstr "GNU-Diffutils"
+
+#: main.cpp:184
+msgid "Tino Boellsterling, Timothy Mee"
+msgstr "Tino Boellsterling, Timothy Mee"
+
+#: main.cpp:184
+msgid "Intensive test, use and feedback"
+msgstr "Intensywne testowanie, używanie i informacje zwrotne"
+
+#: main.cpp:185
+msgid "Michael Schmidt"
+msgstr "Michael Schmidt"
+
+#: main.cpp:185
+msgid "Mac support"
+msgstr "Wsparcie dla Mac"
+
+#: main.cpp:186
+msgid "Valentin Rusu"
+msgstr "Valentin Rusu"
+
+#: main.cpp:186 main.cpp:187
+msgid "KDE4 porting"
+msgstr "Portowanie do KDE4"
+
+#: main.cpp:187
+msgid "Albert Astals Cid"
+msgstr "Albert Astals Cid"
+
+#: main.cpp:188
+msgid "Silvan Scherrer"
+msgstr "Silvan Scherrer"
+
+#: main.cpp:188
+msgid "OS2 port"
+msgstr "port OS2"
+
+#: main.cpp:190
+msgid "+ Many thanks to those who reported bugs and contributed ideas!"
+msgstr "+ Wielkie dzięki zgłaszającym błędy i wnoszącym nowe pomysły!"
+
+#: main.cpp:196
+msgid "Merge the input."
+msgstr "Połącz pliki wejściowe."
+
+#: main.cpp:197
+msgid "Explicit base file. For compatibility with certain tools."
+msgstr ""
+"Bezpośrednio podany plik bazowy - w celu zgodności z niektórymi narzędziami."
+
+#: main.cpp:198
+msgid "Output file. Implies -m. E.g.: -o newfile.txt"
+msgstr "Plik wyjściowy. Implikuje opcję -m. Przykład: -o nowyplik.txt"
+
+#: main.cpp:199
+msgid "Output file, again. (For compatibility with certain tools.)"
+msgstr ""
+"Plik wyjściowy, ponownie (w celu zapewnienia zgodności z niektórymi "
+"narzędziami)"
+
+#: main.cpp:200
+msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)"
+msgstr ""
+"Brak GUI jeśli wszystkie konflikty mogą być automatycznie rozwiązane. "
+"(Wymaga pliku -o)"
+
+#: main.cpp:201
+msgid "Don't solve conflicts automatically. (For compatibility...)"
+msgstr "Nie rozwiązuj konfliktów automatycznie. (Dla zgodności...)"
+
+#: main.cpp:202
+msgid "Visible name replacement for input file 1 (base)."
+msgstr "Widoczna nazwa dla pliku 1 (podstawowego)."
+
+#: main.cpp:203
+msgid "Visible name replacement for input file 2."
+msgstr "Widoczna nazwa dla pliku 2."
+
+#: main.cpp:204
+msgid "Visible name replacement for input file 3."
+msgstr "Widoczna nazwa dla pliku 3."
+
+#: main.cpp:205
+msgid "Alternative visible name replacement. Supply this once for every input."
+msgstr ""
+"Alternatywna widoczna nazwa zastępcza. Proszę podać jedną dla każdego pliku "
+"wejściowego."
+
+#: main.cpp:206
+msgid ""
+"Override a config setting. Use once for every setting. E.g.: --cs "
+"\"AutoAdvance=1\""
+msgstr ""
+"Nadpisz ustawienie konfiguracji. Użyj raz dla każdego ustawienia, np. --cs "
+"\"AutoAdvance=1\""
+
+#: main.cpp:207
+msgid "Show list of config settings and current values."
+msgstr "Pokaż listę ustawień konfiguracyjnych i bieżące wartości."
+
+#: main.cpp:208
+msgid "Use a different config file."
+msgstr "Użyj innego pliku konfiguracyjnego."
+
+#: main.cpp:211
+msgid "file1 to open (base, if not specified via --base)"
+msgstr "Otwórz plik 1 (bazowy, jeśli nie określono poprzez --base)"
+
+#: main.cpp:212
+msgid "file2 to open"
+msgstr "Otwórz plik 2 "
+
+#: main.cpp:213
+msgid "file3 to open"
+msgstr "Otwórz plik 3"
+
+#: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976
+#: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002
+#: mergeresultwindow.cpp:1014
+#, kde-format
+msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)"
+msgstr ""
+"Liczba pozostałych nierozwiązanych konfliktów: %1 (z których %2 dotyczy "
+"znaków odstępu)"
+
+#: mergeresultwindow.cpp:303
+msgid ""
+"The output has been modified.\n"
+"If you continue your changes will be lost."
+msgstr ""
+"Plik wyjściowy został zmieniony.\n"
+"Jeśli będziesz kontynuować zmiany zostaną utracone."
+
+#: mergeresultwindow.cpp:834 pdiff.cpp:532
+msgid "All input files are binary equal."
+msgstr "Wszystkie pliki wejściowe są binarnie identyczne."
+
+#: mergeresultwindow.cpp:836
+msgid "All input files contain the same text."
+msgstr "Wszystkie wejściowe pliki zawierając ten sam tekst."
+
+#: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840
+#: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540
+#, kde-format
+msgid "Files %1 and %2 are binary equal.\n"
+msgstr "Pliki %1 i %2 są binarnie identyczne.\n"
+
+#: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841
+#: mergeresultwindow.cpp:843
+#, kde-format
+msgid "Files %1 and %2 have equal text.\n"
+msgstr "Pliki %1 i %2 mają ten sam tekst.\n"
+
+#: mergeresultwindow.cpp:849
+msgid "Total number of conflicts: "
+msgstr "Całkowita liczba konfliktów: "
+
+#: mergeresultwindow.cpp:850
+msgid ""
+"\n"
+"Nr of automatically solved conflicts: "
+msgstr ""
+"\n"
+"Liczba automatycznie rozwiązanych konfliktów: "
+
+#: mergeresultwindow.cpp:851
+msgid ""
+"\n"
+"Nr of unsolved conflicts: "
+msgstr ""
+"\n"
+"Liczba nierozwiązanych konfliktów: "
+
+#: mergeresultwindow.cpp:853
+msgid "Conflicts"
+msgstr "Konflikty"
+
+#: mergeresultwindow.cpp:1728
+msgid "<No src line>"
+msgstr "<Brak wiersza źr.>"
+
+#: mergeresultwindow.cpp:1736
+msgid "<Merge Conflict (Whitespace only)>"
+msgstr "<Konflikt łączenia (tylko znaki odstępu)>"
+
+#: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517
+msgid "<Merge Conflict>"
+msgstr "<Konflikt połączenia>"
+
+#: mergeresultwindow.cpp:2725
+msgid ""
+"Not all conflicts are solved yet.\n"
+"File not saved.\n"
+msgstr ""
+"Nie wszystkie konflikty zostały rozwiązane.\n"
+"Plik nie został zapisany.\n"
+
+#: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736
+msgid "Conflicts Left"
+msgstr "Pozostałe konflikty"
+
+#: mergeresultwindow.cpp:2734
+msgid ""
+"There is a line end style conflict. Please choose the line end style "
+"manually.\n"
+"File not saved.\n"
+msgstr ""
+"Zaistniał konflikt stylu końca wiersza. Wybierz proszę ręcznie styl końca "
+"wiersza.\n"
+"Plik nie został zapisany.\n"
+
+#: mergeresultwindow.cpp:2748
+msgid ""
+"\n"
+"\n"
+"Creating backup failed. File not saved."
+msgstr ""
+"\n"
+"\n"
+"Tworzenie pliku zapasowego nie powiodło się. Plik nie został zapisany."
+
+#: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792
+msgid "File Save Error"
+msgstr "Błąd zapisu pliku"
+
+#: mergeresultwindow.cpp:2792
+msgid "Error while writing."
+msgstr "Błąd w czasie zapisu."
+
+#: mergeresultwindow.cpp:3122
+msgid "Output"
+msgstr "Wyjście"
+
+#: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314
+msgid "[Modified]"
+msgstr "[zmodyfikowane]"
+
+#: mergeresultwindow.cpp:3141
+msgid "Encoding for saving"
+msgstr "Kodowanie dla zapisu"
+
+#: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737
+#: optiondialog.cpp:762
+msgid "Line end style:"
+msgstr "Styl końca wiersza:"
+
+#: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767
+msgid "Unix"
+msgstr "Unix"
+
+#: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737
+msgid "DOS"
+msgstr "DOS"
+
+#: mergeresultwindow.cpp:3229
+msgid "Conflict"
+msgstr "Konflikt"
+
+#: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263
+#: mergeresultwindow.cpp:3265
+msgid "Codec from"
+msgstr "Kodek z"
+
+#: kdiff3_part.cpp:157 kdiff3_part.cpp:234
+msgid "Couldn't find files for comparison."
+msgstr "Nie można znaleźć plików do porównania."
+
+#: kdiff3_part.cpp:302
+msgid "KDiff3Part"
+msgstr "KDiff3Part"
+
+#: fileaccess.cpp:612
+msgid ""
+"While trying to make a backup, deleting an older backup failed. \n"
+"Filename: "
+msgstr ""
+"Błąd podczas wykonywania kopii zapasowej. Nieudane usunięcie starej kopii. \n"
+"Nazwa pliku: "
+
+#: fileaccess.cpp:619
+msgid ""
+"While trying to make a backup, renaming failed. \n"
+"Filenames: "
+msgstr ""
+"Błąd podczas wykonywania kopii zapasowej. Nieudana zmiana nazwy. \n"
+"Nazwy plików: "
+
+#: fileaccess.cpp:643
+#, kde-format
+msgid "Getting file status: %1"
+msgstr "Pobranie stanu pliku: %1"
+
+#: fileaccess.cpp:686
+#, kde-format
+msgid "Reading file: %1"
+msgstr "Czytanie pliku: %1"
+
+#: fileaccess.cpp:723
+#, kde-format
+msgid "Writing file: %1"
+msgstr "Zapisywanie pliku: %1"
+
+#: fileaccess.cpp:751
+msgid "Out of memory"
+msgstr "Brak pamięci"
+
+#: fileaccess.cpp:786
+#, kde-format
+msgid "Making directory: %1"
+msgstr "Tworzenie katalogu: %1"
+
+#: fileaccess.cpp:806
+#, kde-format
+msgid "Removing directory: %1"
+msgstr "Usuwanie katalogu: %1"
+
+#: fileaccess.cpp:821
+#, kde-format
+msgid "Removing file: %1"
+msgstr "Usuwanie pliku: %1"
+
+#: fileaccess.cpp:837
+#, kde-format
+msgid "Creating symbolic link: %1 -> %2"
+msgstr "Tworzenie dowiązania symbolicznego:%1 -> %2"
+
+#: fileaccess.cpp:864
+#, kde-format
+msgid "Renaming file: %1 -> %2"
+msgstr "Zmiana nazwy pliku: %1 -> %2"
+
+#: fileaccess.cpp:897
+#, kde-format
+msgid "Copying file: %1 -> %2"
+msgstr "Kopiowanie pliku: %1 -> %2"
+
+#: fileaccess.cpp:911
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for reading failed. Filename: "
+"%1"
+msgstr ""
+"Błąd podczas kopiowania pliku: Nieudane otwarcie pliku. Nazwa pliku: %1"
+
+#: fileaccess.cpp:917
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for writing failed. Filename: "
+"%1"
+msgstr ""
+"Błąd podczas kopiowania pliku: Nieudane otwarcie pliku do zapisu. Nazwa "
+"pliku: %1"
+
+#: fileaccess.cpp:932
+#, kde-format
+msgid "Error during file copy operation: Reading failed. Filename: %1"
+msgstr "Błąd w czasie kopiowania. Nieudany odczyt. Nazwa pliku: %1"
+
+#: fileaccess.cpp:941
+#, kde-format
+msgid "Error during file copy operation: Writing failed. Filename: %1"
+msgstr "Błąd w czasie kopiowania. Nieudany zapis. Nazwa pliku: %1"
+
+#: fileaccess.cpp:1231
+msgid "Reading directory: "
+msgstr "Czytanie katalogu: "
+
+#: fileaccess.cpp:1355
+#, kde-format
+msgid "Listing directory: %1"
+msgstr "Wyświetlenie zawartości katalogu: %1"
+
+#: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396
+msgid "&Cancel"
+msgstr "&Anuluj"
+
+#: difftextwindow.cpp:403
+msgid "Line"
+msgstr "Wiersz"
+
+#: difftextwindow.cpp:405
+msgid "Line not available"
+msgstr "Wiersz niedostępny"
+
+#: difftextwindow.cpp:1703 difftextwindow.cpp:1736
+msgid "Encoding:"
+msgstr "Kodowanie:"
+
+#: difftextwindow.cpp:1759 kdiff3.cpp:831
+msgid "Top line"
+msgstr "Nr pierwszej linii na ekranie"
+
+#: difftextwindow.cpp:1769
+msgid "End"
+msgstr "Koniec"
+
+#: kdiff3.cpp:169
+msgid "Current Configuration:"
+msgstr "Bieżąca konfiguracja:"
+
+#: kdiff3.cpp:174
+msgid "Config Option Error:"
+msgstr "Błąd parametru konfiguracji:"
+
+#: kdiff3.cpp:219
+msgid "Option --auto used, but no output file specified."
+msgstr "Użyta została opcja --auto, ale nie określono pliku wyjściowego."
+
+#: kdiff3.cpp:369
+msgid "Option --auto ignored for directory comparison."
+msgstr "Opcja --auto zignorowana przy porównywaniu katalogów."
+
+#: kdiff3.cpp:405
+msgid "Saving failed."
+msgstr "Nieudany zapis."
+
+#: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214
+msgid "Opening of these files failed:"
+msgstr "Nieudane otwarcie następujących plików:"
+
+#: kdiff3.cpp:449
+msgid "File Open Error"
+msgstr "Błąd otwarcia pliku"
+
+#: kdiff3.cpp:477
+msgid "Opens documents for comparison..."
+msgstr "Otwieranie dokumentów do porównania..."
+
+#: kdiff3.cpp:479
+msgid "Reload"
+msgstr "Wczytaj ponownie"
+
+#: kdiff3.cpp:482
+msgid "Saves the merge result. All conflicts must be solved!"
+msgstr ""
+"Zapisywanie rezultatu połączenia. Wszystkie konflikty muszą być rozwiązane!"
+
+#: kdiff3.cpp:484
+msgid "Saves the current document as..."
+msgstr "Zapisywanie bieżącego dokumentu jako..."
+
+#: kdiff3.cpp:487
+msgid "Print the differences"
+msgstr "Drukowanie różnic"
+
+#: kdiff3.cpp:490
+msgid "Quits the application"
+msgstr "Wyjście z programu"
+
+#: kdiff3.cpp:492
+msgid "Cuts the selected section and puts it to the clipboard"
+msgstr "Wycina zaznaczony fragment i umieszcza go w schowku"
+
+#: kdiff3.cpp:494
+msgid "Copies the selected section to the clipboard"
+msgstr "Kopiuje zaznaczony fragment do schowka"
+
+#: kdiff3.cpp:496
+msgid "Pastes the clipboard contents to current position"
+msgstr "Wkleja zawartość schowka w aktualną pozycję"
+
+#: kdiff3.cpp:498
+msgid "Select everything in current window"
+msgstr "Zaznacza wszystko w bieżącym oknie"
+
+#: kdiff3.cpp:500
+msgid "Search for a string"
+msgstr "Znajdź tekst"
+
+#: kdiff3.cpp:502
+msgid "Search again for the string"
+msgstr "Szukaj ponownie tekstu"
+
+#: kdiff3.cpp:507
+msgid "Enables/disables the statusbar"
+msgstr "Włącza/wyłącza pasek stanu"
+
+#: kdiff3.cpp:511
+msgid "Configure KDiff3..."
+msgstr "Konfiguracja: KDiff3..."
+
+#: kdiff3.cpp:532
+msgid "Go to Current Delta"
+msgstr "Idź do bieżącej różnicy"
+
+#: kdiff3.cpp:532
+msgid ""
+"Current\n"
+"Delta"
+msgstr ""
+"Bieżąca\n"
+"różnica"
+
+#: kdiff3.cpp:534
+msgid "Go to First Delta"
+msgstr "Idź do pierwszej różnicy"
+
+#: kdiff3.cpp:534
+msgid ""
+"First\n"
+"Delta"
+msgstr ""
+"Pierwsza\n"
+"różnica"
+
+#: kdiff3.cpp:536
+msgid "Go to Last Delta"
+msgstr "Idź do ostatniej różnicy"
+
+#: kdiff3.cpp:536
+msgid ""
+"Last\n"
+"Delta"
+msgstr ""
+"Ostatnia\n"
+"różnica"
+
+#: kdiff3.cpp:538
+msgid "(Skips white space differences when \"Show White Space\" is disabled.)"
+msgstr ""
+"(Pomija różnice w znakach odstępu gdy opcja \"Pokaż znaki odstępu\" jest "
+"wyłączona.)"
+
+#: kdiff3.cpp:539
+msgid ""
+"(Does not skip white space differences even when \"Show White Space\" is "
+"disabled.)"
+msgstr ""
+"(Nie pomija różnic w znakach odstępu gdy opcja \"Pokaż znaki odstępu\" jest "
+"wyłączona)"
+
+#: kdiff3.cpp:540
+msgid "Go to Previous Delta"
+msgstr "Idź do poprzedniej różnicy"
+
+#: kdiff3.cpp:540
+msgid ""
+"Prev\n"
+"Delta"
+msgstr ""
+"Poprzednia\n"
+"różnica"
+
+#: kdiff3.cpp:542
+msgid "Go to Next Delta"
+msgstr "Idź do następnej różnicy"
+
+#: kdiff3.cpp:542
+msgid ""
+"Next\n"
+"Delta"
+msgstr ""
+"Następna\n"
+"różnica"
+
+#: kdiff3.cpp:544
+msgid "Go to Previous Conflict"
+msgstr "Idź do poprzedniego konfliktu"
+
+#: kdiff3.cpp:544
+msgid ""
+"Prev\n"
+"Conflict"
+msgstr ""
+"Poprzedni\n"
+"konflikt"
+
+#: kdiff3.cpp:546
+msgid "Go to Next Conflict"
+msgstr "Idź do następnego konfliktu"
+
+#: kdiff3.cpp:546
+msgid ""
+"Next\n"
+"Conflict"
+msgstr ""
+"Następny\n"
+"konflikt"
+
+#: kdiff3.cpp:548
+msgid "Go to Previous Unsolved Conflict"
+msgstr "Idź do poprzedniego nierozwiązanego konfliktu"
+
+#: kdiff3.cpp:548
+msgid ""
+"Prev\n"
+"Unsolved"
+msgstr ""
+"Poprzedni\n"
+"nierozwiązany"
+
+#: kdiff3.cpp:550
+msgid "Go to Next Unsolved Conflict"
+msgstr "Idź do następnego nierozwiązanego konfliktu"
+
+#: kdiff3.cpp:550
+msgid ""
+"Next\n"
+"Unsolved"
+msgstr ""
+"Następny\n"
+"nierozwiązany"
+
+#: kdiff3.cpp:552
+msgid "Select Line(s) From A"
+msgstr "Wybierz linie z A"
+
+#: kdiff3.cpp:552
+msgid ""
+"Choose\n"
+"A"
+msgstr ""
+"Wybierz\n"
+"A"
+
+#: kdiff3.cpp:553
+msgid "Select Line(s) From B"
+msgstr "Wybierz linie z B"
+
+#: kdiff3.cpp:553
+msgid ""
+"Choose\n"
+"B"
+msgstr ""
+"Wybierz\n"
+"B"
+
+#: kdiff3.cpp:554
+msgid "Select Line(s) From C"
+msgstr "Wybierz linie z C"
+
+#: kdiff3.cpp:554
+msgid ""
+"Choose\n"
+"C"
+msgstr ""
+"Wybierz\n"
+"C"
+
+#: kdiff3.cpp:555
+msgid "Automatically Go to Next Unsolved Conflict After Source Selection"
+msgstr ""
+"Automatycznie idź do następnego nierozwiązanego konfliktu po wybraniu źródła"
+
+#: kdiff3.cpp:555
+msgid ""
+"Auto\n"
+"Next"
+msgstr ""
+"Automat.\n"
+"następny"
+
+#: kdiff3.cpp:557
+msgid "Show Space && Tabulator Characters for Differences"
+msgstr "Pokaż spacje i tabulację w miejsce różnic"
+
+#: kdiff3.cpp:557
+msgid ""
+"White\n"
+"Characters"
+msgstr ""
+"Białe\n"
+"znaki"
+
+#: kdiff3.cpp:558
+msgid "Show White Space"
+msgstr "Pokaż białe znaki"
+
+#: kdiff3.cpp:558
+msgid ""
+"White\n"
+"Deltas"
+msgstr ""
+"Białe\n"
+"różnice"
+
+#: kdiff3.cpp:560
+msgid "Show Line Numbers"
+msgstr "Pokaż numery linii"
+
+#: kdiff3.cpp:560
+msgid ""
+"Line\n"
+"Numbers"
+msgstr ""
+"Numery\n"
+"linii"
+
+#: kdiff3.cpp:561
+msgid "Choose A Everywhere"
+msgstr "Wybierz wszędzie A"
+
+#: kdiff3.cpp:562
+msgid "Choose B Everywhere"
+msgstr "Wybierz wszędzie B"
+
+#: kdiff3.cpp:563
+msgid "Choose C Everywhere"
+msgstr "Wybierz wszędzie C"
+
+#: kdiff3.cpp:564
+msgid "Choose A for All Unsolved Conflicts"
+msgstr "Wybierz A dla wszystkich nierozwiązanych konfliktów"
+
+#: kdiff3.cpp:565
+msgid "Choose B for All Unsolved Conflicts"
+msgstr "Wybierz B dla wszystkich nierozwiązanych konfliktów"
+
+#: kdiff3.cpp:566
+msgid "Choose C for All Unsolved Conflicts"
+msgstr "Wybierz C dla wszystkich nierozwiązanych konfliktów"
+
+#: kdiff3.cpp:567
+msgid "Choose A for All Unsolved Whitespace Conflicts"
+msgstr "Wybierz A dla wszystkich nierozwiązanych konfliktów znaków odstępu"
+
+#: kdiff3.cpp:568
+msgid "Choose B for All Unsolved Whitespace Conflicts"
+msgstr "Wybierz B dla wszystkich nierozwiązanych konfliktów znaków odstępu"
+
+#: kdiff3.cpp:569
+msgid "Choose C for All Unsolved Whitespace Conflicts"
+msgstr "Wybierz C dla wszystkich nierozwiązanych konfliktów znaków odstępu"
+
+#: kdiff3.cpp:570
+msgid "Automatically Solve Simple Conflicts"
+msgstr "Automatycznie rozwiąż proste konflikty"
+
+#: kdiff3.cpp:571
+msgid "Set Deltas to Conflicts"
+msgstr "Zamień różnice na konflikty"
+
+#: kdiff3.cpp:572
+msgid "Run Regular Expression Auto Merge"
+msgstr "Uruchom automatyczne łączenie wyrażeń regularnych"
+
+#: kdiff3.cpp:573
+msgid "Automatically Solve History Conflicts"
+msgstr "Automatycznie rozwiąż konflikty historii"
+
+#: kdiff3.cpp:574
+msgid "Split Diff At Selection"
+msgstr "Podziel różnice w zaznaczeniu"
+
+#: kdiff3.cpp:575
+msgid "Join Selected Diffs"
+msgstr "Połącz zaznaczone różnice"
+
+#: kdiff3.cpp:577
+msgid "Show Window A"
+msgstr "Pokaż okno A"
+
+#: kdiff3.cpp:578
+msgid "Show Window B"
+msgstr "Pokaż okno B"
+
+#: kdiff3.cpp:579
+msgid "Show Window C"
+msgstr "Pokaz okno C"
+
+#: kdiff3.cpp:580 kdiff3.cpp:591
+msgid "Focus Next Window"
+msgstr "Uaktywnij następne okno"
+
+#: kdiff3.cpp:582
+msgid "Normal Overview"
+msgstr "Normalne przeglądanie"
+
+#: kdiff3.cpp:583
+msgid "A vs. B Overview"
+msgstr "Przegląd różnic między A i B"
+
+#: kdiff3.cpp:584
+msgid "A vs. C Overview"
+msgstr "Przegląd różnic między A i C"
+
+#: kdiff3.cpp:585
+msgid "B vs. C Overview"
+msgstr "Przegląd różnic między B i C"
+
+#: kdiff3.cpp:586
+msgid "Word Wrap Diff Windows"
+msgstr "Zawijanie wyrazów w oknach różnic"
+
+#: kdiff3.cpp:587
+msgid "Add Manual Diff Alignment"
+msgstr "Dodaj ręczne wyrównanie różnic"
+
+#: kdiff3.cpp:588
+msgid "Clear All Manual Diff Alignments"
+msgstr "Wyczyść wszystkie ręczne wyrównania różnic"
+
+#: kdiff3.cpp:593
+msgid "Focus Prev Window"
+msgstr "Uaktywnij poprzednie okno"
+
+#: kdiff3.cpp:594
+msgid "Toggle Split Orientation"
+msgstr "Przełącz orientację podziału okien"
+
+#: kdiff3.cpp:596
+msgid "Dir && Text Split Screen View"
+msgstr "Widok dzielony katalogu i tekstu"
+
+#: kdiff3.cpp:598
+msgid "Toggle Between Dir && Text View"
+msgstr "Przełącza między widokiem katalogów i tekstu"
+
+#: kdiff3.cpp:654 pdiff.cpp:1812
+msgid "The merge result hasn't been saved."
+msgstr "Rezultat połączenia nie został zapisany."
+
+#: kdiff3.cpp:656
+msgid "Save && Quit"
+msgstr "Zapisz i wyjdź"
+
+#: kdiff3.cpp:657
+msgid "Quit Without Saving"
+msgstr "Zakończ bez zapisywania"
+
+#: kdiff3.cpp:665 pdiff.cpp:1823
+msgid "Saving the merge result failed."
+msgstr "Nieudany zapis rezultatu połączenia."
+
+#: kdiff3.cpp:676 pdiff.cpp:1078
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort?"
+msgstr ""
+"Obecnie wykonujesz połączenie katalogów. Jesteś pewny że chcesz przerwać?"
+
+#: kdiff3.cpp:701
+msgid "Saving file..."
+msgstr "Zapisywanie pliku..."
+
+#: kdiff3.cpp:718
+msgid "Saving file with a new filename..."
+msgstr "Zapisywanie pliku pod nową nazwą..."
+
+#: kdiff3.cpp:781
+#| msgid "Printing completed."
+msgid "Printing not implemented."
+msgstr "Drukowanie niezaimplementowane."
+
+#: kdiff3.cpp:815
+msgid "Printing..."
+msgstr "Drukowanie..."
+
+#: kdiff3.cpp:956
+msgid "Selection"
+msgstr "Wybór"
+
+#: kdiff3.cpp:982
+msgid "Printing completed."
+msgstr "Drukowanie zakończone."
+
+#: kdiff3.cpp:986
+msgid "Printing aborted."
+msgstr "Drukowanie przerwane."
+
+#: kdiff3.cpp:993
+msgid "Exiting..."
+msgstr "Kończenie..."
+
+#: kdiff3.cpp:1006
+msgid "Toggling toolbar..."
+msgstr "Przełączanie paska narzędzi..."
+
+#: kdiff3.cpp:1027
+msgid "Toggle the statusbar..."
+msgstr "Przełącz pasek stanu..."
+
+#: smalldialogs.cpp:58
+msgid "A (Base):"
+msgstr "A (podstawa):"
+
+#: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99
+#: smalldialogs.cpp:142
+msgid "File..."
+msgstr "Plik..."
+
+#: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101
+#: smalldialogs.cpp:144
+msgid "Dir..."
+msgstr "Katalog..."
+
+#: smalldialogs.cpp:93
+msgid "C (Optional):"
+msgstr "C (opcjonalnie):"
+
+#: smalldialogs.cpp:116
+msgid "Swap/Copy Names ..."
+msgstr "Zamień/Skopiuj nazwy..."
+
+#: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123
+#, kde-format
+msgid "Swap %1<->%2"
+msgstr "Zamień %1<->%2"
+
+#: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126
+#, kde-format
+msgid "Copy %1->Output"
+msgstr "Skopiuj %1->Wyjście"
+
+#: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129
+#, kde-format
+msgid "Swap %1<->Output"
+msgstr "Zamień %1 <-> Wyjście"
+
+#: smalldialogs.cpp:136
+msgid "Output (optional):"
+msgstr "Wynik (opcjonalnie):"
+
+#: smalldialogs.cpp:168
+msgid "Configure..."
+msgstr "Konfiguracja..."
+
+#: smalldialogs.cpp:174
+msgid "&OK"
+msgstr "&OK"
+
+#: smalldialogs.cpp:362
+msgid "Search text:"
+msgstr "Szukaj tekstu:"
+
+#: smalldialogs.cpp:369
+msgid "Case sensitive"
+msgstr "Rozróżniaj wielkość liter"
+
+#: smalldialogs.cpp:372
+msgid "Search A"
+msgstr "Przeszukiwanie A"
+
+#: smalldialogs.cpp:377
+msgid "Search B"
+msgstr "Przeszukiwanie B"
+
+#: smalldialogs.cpp:382
+msgid "Search C"
+msgstr "Przeszukiwanie C"
+
+#: smalldialogs.cpp:387
+msgid "Search output"
+msgstr "Wynik szukania"
+
+#: smalldialogs.cpp:392
+msgid "&Search"
+msgstr "&Szukanie"
+
+#: smalldialogs.cpp:409
+msgid "Regular Expression Tester"
+msgstr "Test wyrażeń regularnych"
+
+#: smalldialogs.cpp:414 optiondialog.cpp:936
+msgid "Auto merge regular expression:"
+msgstr "Wyrażenie regularne dla automatycznego połączenia:"
+
+#: smalldialogs.cpp:422
+msgid "Example auto merge line:"
+msgstr "Przykładowy wiersz automatycznego połączenia:"
+
+#: smalldialogs.cpp:424
+msgid "To test auto merge, copy a line as used in your files."
+msgstr ""
+"Aby sprawdzić automatyczne łączenie, skopiuj wiersz używany w twoich plikach."
+
+#: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494
+msgid "Match result:"
+msgstr "Pasujący wynik:"
+
+#: smalldialogs.cpp:441 optiondialog.cpp:962
+msgid "History start regular expression:"
+msgstr "Wyrażenie regularne dla początku historii:"
+
+#: smalldialogs.cpp:449
+msgid "Example history start line (with leading comment):"
+msgstr "Przykładowy wiersz początkowy historii (z poprzedzającym komentarzem):"
+
+#: smalldialogs.cpp:451
+msgid ""
+"Copy a history start line as used in your files,\n"
+"including the leading comment."
+msgstr ""
+"Skopiuj tutaj wiersz początkowy wpisu historii tak jak go używasz w swoich "
+"plikach,\n"
+"włącznie z poprzedzającym go komentarzem."
+
+#: smalldialogs.cpp:469 optiondialog.cpp:972
+msgid "History entry start regular expression:"
+msgstr "Wyrażenie regularne dla początku wpisu historii:"
+
+#: smalldialogs.cpp:477
+msgid "History sort key order:"
+msgstr "Porządek sortowania historii:"
+
+#: smalldialogs.cpp:485
+msgid "Example history entry start line (without leading comment):"
+msgstr ""
+"Przykładowy wiersz początkowy historii (bez poprzedzającego komentarza):"
+
+#: smalldialogs.cpp:487
+msgid ""
+"Copy a history entry start line as used in your files,\n"
+"but omit the leading comment."
+msgstr ""
+"Skopiuj tutaj wiersz początkowy wpisu historii tak jak go używasz w swoich "
+"plikach,\n"
+"ale bez poprzedzającego go komentarza."
+
+#: smalldialogs.cpp:501
+msgid "Sort key result:"
+msgstr "Wynik sortowania kluczy:"
+
+#: smalldialogs.cpp:508
+msgid "OK"
+msgstr "OK"
+
+#: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583
+msgid "Match success."
+msgstr "Znaleziono dopasowanie."
+
+#: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589
+msgid "Match failed."
+msgstr "Nie znaleziono dopasowania."
+
+#: smalldialogs.cpp:574
+msgid "Opening and closing parentheses do not match in regular expression."
+msgstr ""
+"Nawiasy otwierające i zamykające nie zgadzają się w wyrażeniu regularnym."
+
+#: optiondialog.cpp:367
+msgid "Unicode, 8 bit"
+msgstr "Unicode, 8-bitowy"
+
+#: optiondialog.cpp:368
+msgid "Unicode"
+msgstr "Unicode"
+
+#: optiondialog.cpp:369
+msgid "Latin1"
+msgstr "Latin1"
+
+#: optiondialog.cpp:388
+msgid "Change this if non-ASCII characters are not displayed correctly."
+msgstr "Zmień to jeśli znaki nie-ascii są wyświetlane niepoprawnie."
+
+#: optiondialog.cpp:465
+msgid "Configure"
+msgstr "Konfiguracja"
+
+#: optiondialog.cpp:531
+msgid "Font"
+msgstr "Czcionka"
+
+#: optiondialog.cpp:532
+msgid "Editor & Diff Output Font"
+msgstr "Czcionka edytora i wyjścia różnic"
+
+#: optiondialog.cpp:556
+msgid "Italic font for deltas"
+msgstr "Kursywa dla różnic"
+
+#: optiondialog.cpp:559
+msgid ""
+"Selects the italic version of the font for differences.\n"
+"If the font doesn't support italic characters, then this does nothing."
+msgstr ""
+"Wybierz kursywę do pokazania różnic.\n"
+"Jeśli czcionka nie ma kursywy, wtedy to nic nie zmieni."
+
+#: optiondialog.cpp:568
+msgid "Color"
+msgstr "Kolor"
+
+#: optiondialog.cpp:569
+msgid "Colors Settings"
+msgstr "Ustawienia kolorów"
+
+#: optiondialog.cpp:588
+msgid "Editor and Diff Views:"
+msgstr "Widoki edytora i różnic:"
+
+#: optiondialog.cpp:596
+msgid "Foreground color:"
+msgstr "Kolor pierwszoplanowy:"
+
+#: optiondialog.cpp:603
+msgid "Background color:"
+msgstr "Kolor tła:"
+
+#: optiondialog.cpp:612
+msgid "Diff background color:"
+msgstr "Kolor tła dla różnic:"
+
+#: optiondialog.cpp:620
+msgid "Color A:"
+msgstr "Kolor A:"
+
+#: optiondialog.cpp:628
+msgid "Color B:"
+msgstr "Kolor B:"
+
+#: optiondialog.cpp:636
+msgid "Color C:"
+msgstr "Kolor C:"
+
+#: optiondialog.cpp:643
+msgid "Conflict color:"
+msgstr "Kolor dla konfliktów:"
+
+#: optiondialog.cpp:651
+msgid "Current range background color:"
+msgstr "Kolor tła zaznaczonego bloku:"
+
+#: optiondialog.cpp:659
+msgid "Current range diff background color:"
+msgstr "Kolor tła różnic w bloku:"
+
+#: optiondialog.cpp:666
+msgid "Color for manually aligned difference ranges:"
+msgstr "Kolor dla ręcznie wyrównanych zakresów różnic:"
+
+#: optiondialog.cpp:672
+msgid "Directory Comparison View:"
+msgstr "Widok porównywania katalogów:"
+
+#: optiondialog.cpp:678
+msgid "Newest file color:"
+msgstr "Kolor najnowszego pliku:"
+
+#: optiondialog.cpp:682
+msgid ""
+"Changing this color will only be effective when starting the next directory "
+"comparison."
+msgstr ""
+"Zmiana tego koloru będzie nastąpi po rozpoczęciu następnego porównania "
+"katalogów."
+
+#: optiondialog.cpp:687
+msgid "Oldest file color:"
+msgstr "Kolor najstarszego pliku:"
+
+#: optiondialog.cpp:695
+msgid "Middle age file color:"
+msgstr "Kolor średnich plików:"
+
+#: optiondialog.cpp:703
+msgid "Color for missing files:"
+msgstr "Kolor brakujących plików:"
+
+#: optiondialog.cpp:717
+msgid "Editor"
+msgstr "Edytor"
+
+#: optiondialog.cpp:718
+msgid "Editor Behavior"
+msgstr "Zachowanie edytora"
+
+#: optiondialog.cpp:732
+msgid "Tab inserts spaces"
+msgstr "Zamień znaki tabulacji na spacje"
+
+#: optiondialog.cpp:735
+msgid ""
+"On: Pressing tab generates the appropriate number of spaces.\n"
+"Off: A tab character will be inserted."
+msgstr ""
+"Włączone: Wciśnięcie tabulacji wstawi określoną liczbę spacji.\n"
+"Wyłączone: Zostanie wprowadzony znak tabulacji."
+
+#: optiondialog.cpp:741
+msgid "Tab size:"
+msgstr "Szerokość tabulacji:"
+
+#: optiondialog.cpp:747
+msgid "Auto indentation"
+msgstr "Automatyczne wcięcia"
+
+#: optiondialog.cpp:750
+msgid "On: The indentation of the previous line is used for a new line.\n"
+msgstr "Włączone: Wcięcie poprzedniej linii będzie użyte w nowej linii.\n"
+
+#: optiondialog.cpp:754
+msgid "Auto copy selection"
+msgstr "Wybór automatycznego kopiowania"
+
+#: optiondialog.cpp:757
+msgid ""
+"On: Any selection is immediately written to the clipboard.\n"
+"Off: You must explicitely copy e.g. via Ctrl-C."
+msgstr ""
+"Włączone: Jakiekolwiek zaznaczenie powoduje natychmiastowy zapis do "
+"schowka.\n"
+"Wyłączone: Musisz jawnie skopiować np. poprzez Ctrl-C."
+
+#: optiondialog.cpp:768
+#| msgid "&Window"
+msgid "Dos/Windows"
+msgstr "Dos/Windows"
+
+#: optiondialog.cpp:769
+#| msgid "Auto Select"
+msgid "Autodetect"
+msgstr "Wykryj automatycznie"
+
+#: optiondialog.cpp:772
+msgid ""
+"Sets the line endings for when an edited file is saved.\n"
+"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A"
+msgstr ""
+"Ustawia styl końca wiersza, jaki będzie używany podczas zapisywania pliku\n"
+"DOS/Windows: CR+LF; Unix: LF; gdzie CR=0x0D; LF=0x0A"
+
+#: optiondialog.cpp:784
+msgid "Diff"
+msgstr "Różnice"
+
+#: optiondialog.cpp:785
+msgid "Diff Settings"
+msgstr "Ustawienia różnic i połączeń"
+
+#: optiondialog.cpp:809
+msgid "Treat as white space."
+msgstr "Traktuj jako białe znaki."
+
+#: optiondialog.cpp:811
+msgid "Ignore numbers"
+msgstr "Ignoruj cyfry"
+
+#: optiondialog.cpp:814
+msgid ""
+"Ignore number characters during line matching phase. (Similar to Ignore "
+"white space.)\n"
+"Might help to compare files with numeric data."
+msgstr ""
+"Ignoruj liczby podczas sprawdzania (podobne do Ignoruj białe znaki)\n"
+"Może być pomocne przy porównywania plików z danymi numerycznymi."
+
+#: optiondialog.cpp:819
+msgid "Ignore C/C++ comments"
+msgstr "Ignoruj komentarze C/C++ "
+
+#: optiondialog.cpp:821
+msgid "Treat C/C++ comments like white space."
+msgstr "Traktuj komentarze C/C++ jako białe znaki."
+
+#: optiondialog.cpp:825
+msgid "Ignore case"
+msgstr "Ignoruj wielkość liter"
+
+#: optiondialog.cpp:828
+msgid "Treat case differences like white space changes. ('a'<=>'A')"
+msgstr ""
+"Różnice wielkości liter traktuj jak zmiany znaków odstępu (\"a\"<=>\"A\")"
+
+#: optiondialog.cpp:832
+msgid "Preprocessor command:"
+msgstr "Polecenie preprocesora:"
+
+#: optiondialog.cpp:836
+msgid "User defined pre-processing. (See the docs for details.)"
+msgstr ""
+"Zdefiniowany przez użytkownika pre-proces. (Zobacz szczegóły w dokumentacji.)"
+
+#: optiondialog.cpp:839
+msgid "Line-matching preprocessor command:"
+msgstr "Wiersz poleceń preprocesora:"
+
+#: optiondialog.cpp:843
+msgid ""
+"This pre-processor is only used during line matching.\n"
+"(See the docs for details.)"
+msgstr ""
+"Ta komenda może być użyta tylko z linii poleceń.\n"
+"(Aby uzyskać szczegóły zobacz dokumentację.)"
+
+#: optiondialog.cpp:846
+msgid "Try hard (slower)"
+msgstr "Próbuj bardziej (wolniejsze)"
+
+#: optiondialog.cpp:849
+msgid ""
+"Enables the --minimal option for the external diff.\n"
+"The analysis of big files will be much slower."
+msgstr ""
+"Udostępnia opcję --minimal dla zewnętrznego porównania.\n"
+"Analizowanie dużych plików będzie znacznie wolniejsze."
+
+#: optiondialog.cpp:854
+msgid "Align B and C for 3 input files"
+msgstr "Wyrównaj B i C dla 3 plików wejściowych"
+
+#: optiondialog.cpp:857
+msgid ""
+"Try to align B and C when comparing or merging three input files.\n"
+"Not recommended for merging because merge might get more complicated.\n"
+"(Default is off.)"
+msgstr ""
+"Próbuje wyrównać B i C kiedy porównywane są trzy pliki wejściowe.\n"
+"Nie jest to polecane dla łączenia plików ponieważ może to być skomplikowana "
+"operacja.\n"
+"Domyślnie ta opcja jest wyłączona."
+
+#: optiondialog.cpp:870
+msgid "Merge Settings"
+msgstr "Ustawienia połączeń"
+
+#: optiondialog.cpp:885
+msgid "Auto advance delay (ms):"
+msgstr "Czas automatycznego przejścia (ms):"
+
+#: optiondialog.cpp:890
+msgid ""
+"When in Auto-Advance mode the result of the current selection is shown \n"
+"for the specified time, before jumping to the next conflict. Range: 0-2000 ms"
+msgstr ""
+"W trybie automatycznego przechodzenia wynik aktualnego zaznaczenia \n"
+"jest pokazywany przez podany czas zanim nastąpi przejście do następnego \n"
+"konfliktu. Zakres: 0-2000 ms"
+
+#: optiondialog.cpp:895
+msgid "Show info dialogs"
+msgstr "Pokaż okno informacyjne"
+
+#: optiondialog.cpp:897
+msgid "Show a dialog with information about the number of conflicts."
+msgstr "Pokaż okno z informacją o liczbie konfliktów."
+
+#: optiondialog.cpp:900
+msgid "White space 2-file merge default:"
+msgstr "Domyślne łączenie białych znaków przy 2 plikach:"
+
+#: optiondialog.cpp:904 optiondialog.cpp:917
+msgid "Manual Choice"
+msgstr "Wybór użytkownika"
+
+#: optiondialog.cpp:908 optiondialog.cpp:922
+msgid ""
+"Allow the merge algorithm to automatically select an input for white-space-"
+"only changes."
+msgstr ""
+"Pozwól algorytmowi łączenia dokonać automatycznego wyboru wejścia - tylko "
+"dla znaków odstępu."
+
+#: optiondialog.cpp:913
+msgid "White space 3-file merge default:"
+msgstr "Domyślne łączenie białych znaków przy 3 plikach:"
+
+#: optiondialog.cpp:927
+msgid "Automatic Merge Regular Expression"
+msgstr "Wyrażenie regularne dla automatycznego połączenia"
+
+#: optiondialog.cpp:940
+msgid ""
+"Regular expression for lines where KDiff3 should automatically choose one "
+"source.\n"
+"When a line with a conflict matches the regular expression then\n"
+"- if available - C, otherwise B will be chosen."
+msgstr ""
+"Wyrażenie regularne dla wierszy, w których KDiff powinien automatycznie "
+"wybrać jedno ze źródeł.\n"
+"Kiedy wiersz z konfliktem pasuje do wyrażenia regularnego, wtedy\n"
+"(jeśli dostępne) zostanie wybrane C, w innym przypadku zostanie wybrane B."
+
+#: optiondialog.cpp:946
+msgid "Run regular expression auto merge on merge start"
+msgstr ""
+"Uruchom automatyczne łączenie wyrażeń regularnych przy uruchomieniu łączenia"
+
+#: optiondialog.cpp:948
+msgid ""
+"Run the merge for auto merge regular expressions\n"
+"immediately when a merge starts.\n"
+msgstr ""
+"Uruchom scalanie do automatycznego scalenia wyrażeń regularnych\n"
+"zaraz po rozpoczęciu scalania.\n"
+
+#: optiondialog.cpp:953
+msgid "Version Control History Merging"
+msgstr "Łączenie historii kontroli wersji"
+
+#: optiondialog.cpp:966
+#| msgid ""
+#| "Regular expression for the start of the version control history entry.\n"
+#| "Usually this line contains the \"$Log$\"-keyword.\n"
+#| "Default value: \".*\\$Log.*\\$.*\""
+msgid ""
+"Regular expression for the start of the version control history entry.\n"
+"Usually this line contains the \"$Log$\" keyword.\n"
+"Default value: \".*\\$Log.*\\$.*\""
+msgstr ""
+"Wyrażenie regularne dla wpisu początkowego historii kontroli wersji.\n"
+"Zwykle wiersz taki zawiera słowo kluczowe \"$Log$\".\n"
+"Domyślna wartość: \".*\\$Log.*\\$.*\""
+
+#: optiondialog.cpp:984
+msgid ""
+"A version control history entry consists of several lines.\n"
+"Specify the regular expression to detect the first line (without the leading "
+"comment).\n"
+"Use parentheses to group the keys you want to use for sorting.\n"
+"If left empty, then KDiff3 assumes that empty lines separate history "
+"entries.\n"
+"See the documentation for details."
+msgstr ""
+"Wpis kontroli historii wersji składa się z kilku wierszy.\n"
+"Podaj wyrażenie regularne w celu wykrycia pierwszego wiersza (bez "
+"poprzedzającego komentarza).\n"
+"Użyj nawiasów aby pogrupować klucze które chcesz użyć do sortowania.\n"
+"Jeśli pole zostanie puste, KDiff3 uzna że puste wiersze oddzielają wpisy "
+"historii.\n"
+"Zajrzyj do dokumentacji aby uzyskać szczegółowe informacje."
+
+#: optiondialog.cpp:992
+msgid "History merge sorting"
+msgstr "Sortowanie historii"
+
+#: optiondialog.cpp:994
+msgid "Sort version control history by a key."
+msgstr "Sortowanie historii kontroli wersji za pomocą podanego klucza."
+
+#: optiondialog.cpp:1004
+msgid "History entry start sort key order:"
+msgstr "Porządek sortowania wpisów historii:"
+
+#: optiondialog.cpp:1008
+msgid ""
+"Each pair of parentheses used in the regular expression for the history "
+"start entry\n"
+"groups a key that can be used for sorting.\n"
+"Specify the list of keys (that are numbered in order of occurrence\n"
+"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n"
+"If left empty, then no sorting will be done.\n"
+"See the documentation for details."
+msgstr ""
+"Każdy nawias użyty w wyrażeniu regularnym dla wpisu początkowego historii\n"
+"grupuje klucz który może zostać użyty do sortowania wpisów.\n"
+"Podaj listę kluczy (które są numerowane w kolejności wystąpienia\n"
+"zaczynając od 1) oddzielając je przecinkiem ',' (np. \"4,5,6,1,2,3,7\").\n"
+"Jeśli pole pozostanie puste, nie zostanie wykonane żadne sortowanie.\n"
+"Zajrzyj do dokumentacji, aby uzyskać szczegółowe informacje."
+
+#: optiondialog.cpp:1019
+msgid "Merge version control history on merge start"
+msgstr "Połącz historię kontroli wersji przy rozpoczęciu połączenia"
+
+#: optiondialog.cpp:1021
+msgid "Run version control history automerge on merge start."
+msgstr ""
+"Uruchom automatyczne łączenie historii kontroli wersji przy rozpoczęciu "
+"łączenia."
+
+#: optiondialog.cpp:1025
+msgid "Max number of history entries:"
+msgstr "Maksymalna liczba wpisów historii:"
+
+#: optiondialog.cpp:1028
+msgid "Cut off after specified number. Use -1 for infinite number of entries."
+msgstr ""
+"Obcina po podanej liczbie wpisów. Użyj -1 dla nieskończonej liczy wpisów."
+
+#: optiondialog.cpp:1032
+msgid "Test your regular expressions"
+msgstr "Sprawdzanie wyrażeń regularnych"
+
+#: optiondialog.cpp:1037
+msgid "Irrelevant merge command:"
+msgstr "Polecenie dla nieistotnego połączenia:"
+
+#: optiondialog.cpp:1041
+msgid ""
+"If specified this script is run after automerge\n"
+"when no other relevant changes were detected.\n"
+"Called with the parameters: filename1 filename2 filename3"
+msgstr ""
+"Polecenie, które zostanie wykonane po automatycznym połączeniu\n"
+"jeśli nie wykryto żadnych innych istotnych zmian.\n"
+"Wywoływany z parametrami: nazwapliku1 nazwapliku2 nazwapliku3"
+
+#: optiondialog.cpp:1047
+msgid "Auto save and quit on merge without conflicts"
+msgstr "Automatycznie zapisz i zakończ po złączeniu bez konfliktów"
+
+#: optiondialog.cpp:1050
+msgid ""
+"If KDiff3 was started for a file-merge from the command line and all\n"
+"conflicts are solvable without user interaction then automatically save and "
+"quit.\n"
+"(Similar to command line option \"--auto\".)"
+msgstr ""
+"Kiedy KDiff3 został uruchomiony dla złączenia plików z wiersza poleceń i "
+"wszystkie\n"
+"konflikty są rozwiązywalne bez potrzeby ingerencji użytkownika, wtedy "
+"automatycznie\n"
+"zapisuje i kończy działanie programu.\n"
+"Działanie jest podobne do opcji wiersza poleceń \"--auto\"."
+
+#: optiondialog.cpp:1061 optiondialog.cpp:1062
+msgid "Directory"
+msgstr "Katalog"
+
+#: optiondialog.cpp:1075
+msgid "Recursive directories"
+msgstr "Analizuj katalogi rekursywnie"
+
+#: optiondialog.cpp:1077
+msgid "Whether to analyze subdirectories or not."
+msgstr "Określa czy mają być analizowane podkatalogi."
+
+#: optiondialog.cpp:1079
+msgid "File pattern(s):"
+msgstr "Wzorzec plików:"
+
+#: optiondialog.cpp:1084
+msgid ""
+"Pattern(s) of files to be analyzed. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Wzorzec(rce) plików do analizy. \n"
+"Symbole wieloznaczne: \"*\" i \"?\"\n"
+"Można określić kilka wzorców poprzez użycie separatora: \";\""
+
+#: optiondialog.cpp:1090
+msgid "File-anti-pattern(s):"
+msgstr "Anty-wzorzec plików:"
+
+#: optiondialog.cpp:1095
+msgid ""
+"Pattern(s) of files to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Wzorzec(rce) plików jakie mają być wyłączone z analizy. \n"
+"Znaki szablonowe (wildcards): \"*\" i \"?\"\n"
+"Możesz określić kilka wzorców używając separatora: \";\""
+
+#: optiondialog.cpp:1101
+msgid "Dir-anti-pattern(s):"
+msgstr "Anty-wzorzec katalogów:"
+
+#: optiondialog.cpp:1106
+msgid ""
+"Pattern(s) of directories to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Wzorzec(rce) katalogów jakie mają być wykluczone z analizy. \n"
+"Znaki szablonowe (wildcards): \"*\" and \"?\"\n"
+"Możesz użyć kilku wzorców poprzez użycie separatora: \";\""
+
+#: optiondialog.cpp:1112
+msgid "Use .cvsignore"
+msgstr "Użyj .cvsignore"
+
+#: optiondialog.cpp:1115
+msgid ""
+"Extends the antipattern to anything that would be ignored by CVS.\n"
+"Via local \".cvsignore\" files this can be directory specific."
+msgstr ""
+"Rozszerz anty-wzorzec na wszystko, co będzie ignorowane przez CVS. \n"
+"Lokalne pliki \".cvsignore\" mogą być specyficzne dla katalogów."
+
+#: optiondialog.cpp:1120
+msgid "Find hidden files and directories"
+msgstr "Znajdź ukryte pliki i katalogi"
+
+#: optiondialog.cpp:1123
+msgid "Finds files and directories with the hidden attribute."
+msgstr "Znajduje pliki i katalogi z atrybutem ukryty."
+
+#: optiondialog.cpp:1125
+msgid "Finds files and directories starting with '.'."
+msgstr "Znajduje pliki i katalogi z nazwą zaczynającą się na \".\" ."
+
+#: optiondialog.cpp:1129
+msgid "Follow file links"
+msgstr "Podążaj za dowiązaniami"
+
+#: optiondialog.cpp:1132
+msgid ""
+"On: Compare the file the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+"Włączone: Porównuj pliki na które wskazuje dowiązanie.\n"
+"Wyłączone: Porównuj dowiązania."
+
+#: optiondialog.cpp:1137
+msgid "Follow directory links"
+msgstr "Podążaj za dowiązaniami katalogów"
+
+#: optiondialog.cpp:1140
+msgid ""
+"On: Compare the directory the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+"Włączone: Porównuj katalogi na które wskazuje dowiązanie. \n"
+"Wyłączone: Porównuj dowiązania."
+
+#: optiondialog.cpp:1156
+msgid "Case sensitive filename comparison"
+msgstr "Porównanie nazw plików uwzględnia wielkość liter"
+
+#: optiondialog.cpp:1159
+msgid ""
+"The directory comparison will compare files or directories when their names "
+"match.\n"
+"Set this option if the case of the names must match. (Default for Windows is "
+"off, otherwise on.)"
+msgstr ""
+"Porównanie katalogów porówna pliki lub katalogi kiedy ich nazwy się "
+"zgadzają.\n"
+"Włącz tą opcję jeśli wielkość liter w nazwach musi się zgadzać.\n"
+"Dla systemu Windows opcja ta jest domyślne wyłączona, w innych przypadkach "
+"włączona."
+
+#: optiondialog.cpp:1163
+msgid "File Comparison Mode"
+msgstr "Tryb porównania plików"
+
+#: optiondialog.cpp:1169
+msgid "Binary comparison"
+msgstr "Porównanie binarne"
+
+#: optiondialog.cpp:1170
+msgid "Binary comparison of each file. (Default)"
+msgstr "Binarne porównanie dla każdego pliku (domyślne)"
+
+#: optiondialog.cpp:1173
+msgid "Full analysis"
+msgstr "Pełna analiza"
+
+#: optiondialog.cpp:1174
+msgid ""
+"Do a full analysis and show statistics information in extra columns.\n"
+"(Slower than a binary comparison, much slower for binary files.)"
+msgstr ""
+"Wykonaj pełną analizę i pokaż statystyki w dodatkowych kolumnach.\n"
+"(Wolniejsze niż porównanie binarne i znacznie wolniejsze dla plików "
+"binarnych.)"
+
+#: optiondialog.cpp:1178
+msgid "Trust the size and modification date (unsafe)"
+msgstr "Ufaj rozmiarowi i dacie modyfikacji (niebezpieczne)"
+
+#: optiondialog.cpp:1179
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"Files with equal contents but different modification dates will appear as "
+"different.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"Zakłada że pliki są identyczne, jeśli ich data modyfikacji i rozmiar są "
+"identyczne.\n"
+"Pliki z jednakową zawartością ale inną datą modyfikacji zostaną uznane za "
+"różne.\n"
+"Jest to użyteczne przy dużych katalogach lub wolnych połączeniach sieciowych."
+
+#: optiondialog.cpp:1184
+msgid ""
+"Trust the size and date, but use binary comparison if date does not match "
+"(unsafe)"
+msgstr ""
+"Ufaj rozmiarowi i dacie, ale użyj porównania binarnego jeśli data się nie "
+"zgadza (niebezpieczne)"
+
+#: optiondialog.cpp:1185
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"If the dates are not equal but the sizes are, use binary comparison.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"Zakłada że pliki są identyczne, jeśli ich data modyfikacji i rozmiar są "
+"identyczne.\n"
+"Jeśli data modyfikacji nie jest identyczna (przy czym rozmiary są), używa "
+"porównania binarnego.\n"
+"Jest to użyteczne przy dużych katalogach lub wolnych połączeniach sieciowych."
+
+#: optiondialog.cpp:1190
+msgid "Trust the size (unsafe)"
+msgstr "Ufaj rozmiarowi (niebezpieczne)"
+
+#: optiondialog.cpp:1191
+msgid ""
+"Assume that files are equal if their file lengths are equal.\n"
+"Useful for big directories or slow networks when the date is modified during "
+"download."
+msgstr ""
+"Zakłada ze pliki są identyczne jeśli ich rozmiar jest identyczny.\n"
+"Użyteczne przy dużych katalogach lub wolnych połączeniach sieciowych, gdzie "
+"data jest modyfikowana w trakcie pobierania."
+
+#: optiondialog.cpp:1199
+msgid "Synchronize directories"
+msgstr "Synchronizacja katalogów"
+
+#: optiondialog.cpp:1202
+msgid ""
+"Offers to store files in both directories so that\n"
+"both directories are the same afterwards.\n"
+"Works only when comparing two directories without specifying a destination."
+msgstr ""
+"Oferuje zapisanie plików obu katalogach tak,\n"
+"że potem oba katalogi będą takie same.\n"
+"Działa tylko przy porównywaniu dwóch katalogów \n"
+"bez określonego miejsca docelowego."
+
+#: optiondialog.cpp:1208
+msgid "White space differences considered equal"
+msgstr "Różnice w znakach odstępu ignorowane"
+
+#: optiondialog.cpp:1211
+msgid ""
+"If files differ only by white space consider them equal.\n"
+"This is only active when full analysis is chosen."
+msgstr ""
+"Jeśli pliki różnią się tylko znakami odstępu, to uznaj je za identyczne.\n"
+"Opcja aktywna tylko w przypadku pełnej analizy."
+
+#: optiondialog.cpp:1217
+msgid "Copy newer instead of merging (unsafe)"
+msgstr "Kopiuj nowsze zamiast łączyć (niebezpieczne)"
+
+#: optiondialog.cpp:1220
+msgid ""
+"Don't look inside, just take the newer file.\n"
+"(Use this only if you know what you are doing!)\n"
+"Only effective when comparing two directories."
+msgstr ""
+"Nie sprawdza zawartości tylko bierze nowszy plik. \n"
+"Użyj tego tylko jeśli wiesz co robisz!\n"
+"Jest to efektywne tylko przy porównywaniu dwóch katalogów."
+
+#: optiondialog.cpp:1225
+msgid "Backup files (.orig)"
+msgstr "Tworzenie kopii zapasowych (.orig)"
+
+#: optiondialog.cpp:1228
+msgid ""
+"If a file would be saved over an old file, then the old file\n"
+"will be renamed with a '.orig' extension instead of being deleted."
+msgstr ""
+"Gdy plik będzie zapisywany w miejsce starego, to stary plik\n"
+"zmieni nazwę (dodane zostanie rozszerzenie \".orig\"), zamiast zostać "
+"usuniętym."
+
+#: optiondialog.cpp:1301 optiondialog.cpp:1302
+msgid "Regional Settings"
+msgstr "Ustawienia regionalne"
+
+#: optiondialog.cpp:1402
+msgid "Language (restart required)"
+msgstr "Język(wymaga ponownego uruchomienia)"
+
+#: optiondialog.cpp:1445
+msgid ""
+"Choose the language of the GUI strings or \"Auto\".\n"
+"For a change of language to take place, quit and restart KDiff3."
+msgstr ""
+"Wybierz język dla graficznego interfejsu użytkownika lub ustaw na"
+"\"Automatycznie\". \n"
+"Po zmianie języka należy uruchomić ponownie program KDiff3."
+
+#: optiondialog.cpp:1463
+msgid "Use the same encoding for everything:"
+msgstr "Używanie tego samego kodowania dla wszystkiego:"
+
+#: optiondialog.cpp:1466
+msgid ""
+"Enable this allows to change all encodings by changing the first only.\n"
+"Disable this if different individual settings are needed."
+msgstr ""
+"Włączenie tej opcji pozwala na zmianę wszystkich kodowań zmieniając tylko "
+"pierwsze.\n"
+"Proszę wyłączyć jeśli potrzebne są różne ustawienia indywidualne."
+
+#: optiondialog.cpp:1471
+msgid "Note: Local Encoding is "
+msgstr "Uwaga: lokalne kodowanie to "
+
+#: optiondialog.cpp:1475
+msgid "File Encoding for A:"
+msgstr "Kodowanie pliku A:"
+
+#: optiondialog.cpp:1481
+msgid ""
+"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n"
+"If the file is not Unicode then the selected encoding will be used as "
+"fallback.\n"
+"(Unicode detection depends on the first bytes of a file.)"
+msgstr ""
+"Jeśli włączone, będzie wykrywane kodowanie Unicode (UTF-16 lub UTF-8).\n"
+"Jeśli plik nie jest zakodowany Unikodem, wtedy wybrane kodowanie zostanie "
+"użyte z powrotem.\n"
+"(Wykrywanie Unicode polega na pierwszych bitach pliku.)"
+
+#: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503
+msgid "Auto Detect Unicode"
+msgstr "Automatyczne wykrywanie Unicode"
+
+#: optiondialog.cpp:1490
+msgid "File Encoding for B:"
+msgstr "Kodowanie pliku B:"
+
+#: optiondialog.cpp:1499
+msgid "File Encoding for C:"
+msgstr "Kodowanie pliku C:"
+
+#: optiondialog.cpp:1508
+msgid "File Encoding for Merge Output and Saving:"
+msgstr "Kodowanie pliku wynikowego i przy zapisywaniu:"
+
+#: optiondialog.cpp:1512
+msgid "Auto Select"
+msgstr "Wybór automatyczny"
+
+#: optiondialog.cpp:1515
+msgid ""
+"If enabled then the encoding from the input files is used.\n"
+"In ambiguous cases a dialog will ask the user to choose the encoding for "
+"saving."
+msgstr ""
+"Jeśli włączone, użyte zostanie kodowanie dla plików wejściowych.\n"
+"W przypadkach wątpliwych pojawi się okno, gdzie użytkownik będzie mógł "
+"wybrać kodowanie dla zapisu."
+
+#: optiondialog.cpp:1519
+msgid "File Encoding for Preprocessor Files:"
+msgstr "Kodowanie plików preprocesora:"
+
+#: optiondialog.cpp:1530
+msgid "Right To Left Language"
+msgstr "Język z pismem prawy-do-lewego"
+
+#: optiondialog.cpp:1533
+msgid ""
+"Some languages are read from right to left.\n"
+"This setting will change the viewer and editor accordingly."
+msgstr ""
+"Niektóre języki są czytane od prawej strony do lewej.\n"
+"Ustawienie to zmieni odpowiednio zarówno przeglądarkę jak i edytor."
+
+#: optiondialog.cpp:1548
+msgid "Integration"
+msgstr "Integracja"
+
+#: optiondialog.cpp:1549
+msgid "Integration Settings"
+msgstr "Ustawienia integracji"
+
+#: optiondialog.cpp:1563
+msgid "Command line options to ignore:"
+msgstr "Opcje wiersza poleceń do zignorowania:"
+
+#: optiondialog.cpp:1568
+msgid ""
+"List of command line options that should be ignored when KDiff3 is used by "
+"other tools.\n"
+"Several values can be specified if separated via ';'\n"
+"This will suppress the \"Unknown option\" error."
+msgstr ""
+"Lista opcji wiersza poleceń, które powinny być ignorowane podczas gdy KDiff "
+"jest używany przez inne narzędzia.\n"
+"Można podać kilka opcji oddzielając je za pomocą \";\"\n"
+"Użycie tej opcji zablokuje błąd \"Nieznana opcja\"."
+
+#: optiondialog.cpp:1575
+msgid "Quit also via Escape key"
+msgstr "Zakończenie także za pomocą klawisza Escape"
+
+#: optiondialog.cpp:1578
+msgid ""
+"Fast method to exit.\n"
+"For those who are used to using the Escape key."
+msgstr ""
+"Szybka metoda zakończenia.\n"
+"Użyteczne dla tych którzy są przyzwyczajenia do używania klawisza Escape."
+
+#: optiondialog.cpp:1583
+msgid "Integrate with ClearCase"
+msgstr "Integracja z ClearCase"
+
+#: optiondialog.cpp:1586
+msgid ""
+"Integrate with Rational ClearCase from IBM.\n"
+"Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n"
+"(Only enabled when ClearCase \"bin\" directory is in the path.)"
+msgstr ""
+"Integruj z Rational ClearCase firmy IBM.\n"
+"Modyfikuje plik \"map\" w podkatalogu ClearCase \"lib/mgrs\"\n"
+"(Dostępne jest jedynie kiedy katalog ClearCase \"bin\" znajduje się na "
+"ścieżce.)"
+
+#: optiondialog.cpp:1592
+msgid "Remove ClearCase Integration"
+msgstr "Usuń integrację z ClearCase"
+
+#: optiondialog.cpp:1595
+msgid ""
+"Restore the old \"map\" file from before doing the ClearCase integration."
+msgstr "Przywróć stary plik \"map\" sprzed integracji z ClearCase."
+
+#: optiondialog.cpp:1680
+msgid "Incompatible Font"
+msgstr "Niekompatybilna czcionka"
+
+#: optiondialog.cpp:1681
+msgid "Continue at Own Risk"
+msgstr "Kontynuacja na własne ryzyko"
+
+#: optiondialog.cpp:1682
+msgid "Select Another Font"
+msgstr "Wybierz inną czcionkę"
+
+#: optiondialog.cpp:1717
+msgid "This resets all options. Not only those of the current topic."
+msgstr "Kasuje wszystkie ustawienia. Działa nie tylko na bieżącej zakładce."
+
+#: pdiff.cpp:260
+msgid "PreprocessorCmd: "
+msgstr "Polecenie preprocesora: "
+
+#: pdiff.cpp:265
+msgid "The following option(s) you selected might change data:\n"
+msgstr "Następująca opcja(e) które wybrano mogą zmienić dane:\n"
+
+#: pdiff.cpp:266
+msgid ""
+"\n"
+"Most likely this is not wanted during a merge.\n"
+"Do you want to disable these settings or continue with these settings active?"
+msgstr ""
+"\n"
+"Najczęściej nie jest to pożądane podczas połączenia.\n"
+"Chcesz wyłączyć te ustawienia czy kontynuować z włączonymi tymi ustawieniami?"
+
+#: pdiff.cpp:268
+msgid "Option Unsafe for Merging"
+msgstr "Opcja niebezpieczna podczas łączenia"
+
+#: pdiff.cpp:269
+msgid "Use These Options During Merge"
+msgstr "Użyj tych opcji podczas łączenia"
+
+#: pdiff.cpp:270
+msgid "Disable Unsafe Options"
+msgstr "Wyłącz niebezpieczne opcje"
+
+#: pdiff.cpp:300
+msgid "Loading A"
+msgstr "Wczytywanie A"
+
+#: pdiff.cpp:304
+msgid "Loading B"
+msgstr "Wczytywanie B"
+
+#: pdiff.cpp:321 pdiff.cpp:347
+msgid "Diff: A <-> B"
+msgstr "Różnica: A <-> B"
+
+#: pdiff.cpp:327 pdiff.cpp:372
+msgid "Linediff: A <-> B"
+msgstr "Różnica: A <-> B"
+
+#: pdiff.cpp:338
+msgid "Loading C"
+msgstr "Wczytywanie C"
+
+#: pdiff.cpp:350
+msgid "Diff: B <-> C"
+msgstr "Różnica: B <-> C"
+
+#: pdiff.cpp:353
+msgid "Diff: A <-> C"
+msgstr "Różnica: A <-> C"
+
+#: pdiff.cpp:375
+msgid "Linediff: B <-> C"
+msgstr "Różnica: B <-> C"
+
+#: pdiff.cpp:378
+msgid "Linediff: A <-> C"
+msgstr "Różnica: A <-> C"
+
+#: pdiff.cpp:534
+msgid "All input files contain the same text, but are not binary equal."
+msgstr ""
+"Wszystkie pliki wejściowe zawierają ten sam tekst, ale nie są binarnie "
+"identyczne."
+
+#: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541
+#, kde-format
+msgid "Files %1 and %2 have equal text, but are not binary equal. \n"
+msgstr ""
+"Pliki %1 i %2 zawierają ten sam tekst, ale nie są binarnie identyczne.\n"
+
+#: pdiff.cpp:551
+msgid ""
+"Some inputfiles don't seem to be pure textfiles.\n"
+"Note that the KDiff3-merge was not meant for binary data.\n"
+"Continue at your own risk."
+msgstr ""
+"Niektóre pliki nie wyglądają na pliki czysto tekstowe\n"
+"Zauważ że KDiff3 nie nadaje się do łączenia danych binarnych.\n"
+"Kontynuuj na własne ryzyko."
+
+#: pdiff.cpp:566
+#, kde-format
+msgid ""
+"Some input characters could not be converted to valid unicode.\n"
+"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n"
+"Don't save the result if unsure. Continue at your own risk.\n"
+"Affected input files are in %1."
+msgstr ""
+"Pewne znaki wejściowe nie mogły zostać przekształcone do prawidłowego unikodu."
+"\n"
+"Możesz używać złego kodeku. (np. UTF-8 dla plików nie-UTF-8).\n"
+"Nie zapisuj wyników, jeśli jesteś niepewny(a). Kontynuuj na własne ryzyko.\n"
+"Uwikłane pliki wejściowe to %1."
+
+#: pdiff.cpp:1080
+msgid "Abort"
+msgstr "O programie"
+
+#: pdiff.cpp:1087 pdiff.cpp:1175
+msgid "Opening files..."
+msgstr "Otwieranie plików..."
+
+#: pdiff.cpp:1152 pdiff.cpp:1223
+msgid "File open error"
+msgstr "Błąd otwarcia pliku"
+
+#: pdiff.cpp:1255
+msgid "Cutting selection..."
+msgstr "Wytnij zaznaczenie..."
+
+#: pdiff.cpp:1276
+msgid "Copying selection to clipboard..."
+msgstr "Kopiuj zaznaczony fragment do schowka..."
+
+#: pdiff.cpp:1292
+msgid "Inserting clipboard contents..."
+msgstr "Wkleja zawartość schowka..."
+
+#: pdiff.cpp:1814
+msgid "Save && Continue"
+msgstr "Zapisz i Kontynuuj"
+
+#: pdiff.cpp:1815
+msgid "Continue Without Saving"
+msgstr "Zakończ bez zapisywania"
+
+#: pdiff.cpp:2018
+msgid "Search complete."
+msgstr "Wynik szukania."
+
+#: pdiff.cpp:2018
+msgid "Search Complete"
+msgstr "Połączenie zakończone"
+
+#: pdiff.cpp:2252
+msgid "Nothing is selected in either diff input window."
+msgstr "Nic nie wybrano w żadnym oknie wejściowym różnicy."
+
+#: pdiff.cpp:2252
+msgid "Error while adding manual diff range"
+msgstr "Błąd podczas dodawania ręcznego zakresu różnic"
+
+#: kdiff3_shell.cpp:76
+#| msgid ""
+#| "Could not initialize the KDiff part.\n"
+#| "This usually happens due to an installation problem. Please read the "
+#| "README-file in the source package for details."
+msgid ""
+"Could not initialize the KDiff3 part.\n"
+"This usually happens due to an installation problem. Please read the README-"
+"file in the source package for details."
+msgstr ""
+"Nie można zainicjować modułu KDiff3.\n"
+"Dzieje się tak zazwyczaj ze względu na problem instalacji. Proszę przeczytać "
+"plik "
+"README w pakiecie źródłowym po szczegóły."
+
+#: rc.cpp:1
+msgctxt "NAME OF TRANSLATORS"
+msgid "Your names"
+msgstr ""
+"Tomasz Waleńczak, Michał Rudolf, Marcin Bokszczanin, Krzysztof Lichota, "
+"Robert Gomułka, Michał Smoczyk"
+
+#: rc.cpp:2
+msgctxt "EMAIL OF TRANSLATORS"
+msgid "Your emails"
+msgstr ""
+"tom@w.pl, mrudolf@kdewebdev.org, mboksz@bcig.pl, lichota@mimuw.edu.pl, "
+"rgom@o2.pl, msmoczyk@wp.pl"
+
+#. i18n: file: kdiff3_part.rc:4
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:5
+msgid "&KDiff3"
+msgstr "K&Diff3"
+
+#. i18n: file: kdiff3_part.rc:13
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:8
+msgid "Configure KDiff3"
+msgstr "Konfiguracja KDiff3"
+
+#. i18n: file: kdiff3_part.rc:16
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:11
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#. i18n: file: kdiff3_shell.rc:106
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:38
+msgid "Main Toolbar"
+msgstr "Główny pasek narzędzi"
+
diff --git a/po/pl/kdiff3fileitemactionplugin.po b/po/pl/kdiff3fileitemactionplugin.po
new file mode 100644 (file)
index 0000000..a4af852
--- /dev/null
@@ -0,0 +1,100 @@
+# Copyright (C) YEAR This_file_is_part_of_KDE
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Łukasz Wojniłowicz <lukasz.wojnilowicz@gmail.com>, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-08-12 10:52+0200\n"
+"Last-Translator: Łukasz Wojniłowicz <lukasz.wojnilowicz@gmail.com>\n"
+"Language-Team: Polish <kde-i18n-doc@kde.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.2\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2);\n"
+
+#: kdiff3fileitemaction.cpp:94
+msgid "KDiff3 ..."
+msgstr "KDiff3 ..."
+
+#: kdiff3fileitemaction.cpp:125
+#, kde-format
+msgid "Compare with %1"
+msgstr "Porównaj z %1"
+
+#: kdiff3fileitemaction.cpp:131
+#, kde-format
+msgid "Merge with %1"
+msgstr "Scal z %1"
+
+#: kdiff3fileitemaction.cpp:137
+#, kde-format
+msgid "Save '%1' for later"
+msgstr "Zapisz '%1' na później"
+
+#: kdiff3fileitemaction.cpp:143
+msgid "3-way merge with base"
+msgstr "Trójstronne scalenie z bazą"
+
+#: kdiff3fileitemaction.cpp:150
+msgid "Compare with ..."
+msgstr "Porównaj z ..."
+
+#: kdiff3fileitemaction.cpp:162
+msgid "Clear list"
+msgstr "Wyczyść listę"
+
+#: kdiff3fileitemaction.cpp:170
+msgid "Compare"
+msgstr "Porównaj"
+
+#: kdiff3fileitemaction.cpp:176
+msgid "3 way comparison"
+msgstr "Trójstronne porównanie "
+
+#: kdiff3fileitemaction.cpp:180
+msgid "About KDiff3 menu plugin ..."
+msgstr "O wtyczce menu KDiff3 ..."
+
+#: kdiff3fileitemaction.cpp:284
+msgid ""
+"KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+"Wtyczka działania elementu pliku KDiff3: Prawa autorskie (C) 2011 Joachim "
+"Eibl\n"
+"Strona domowa KDiff3: http://kdiff3.sourceforge.net\n"
+"\n"
+
+#: kdiff3fileitemaction.cpp:286
+msgid ""
+"Using the contextmenu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else \"Save\" the first file for later. It "
+"will appear in the \"Compare With ...\" submenu. Then use \"Compare With\" "
+"on second file.\n"
+"For a 3-way merge first \"Save\" the base file, then the branch to merge and "
+"choose \"3-way merge with base\" on the other branch which will be used as "
+"destination.\n"
+"Same also applies to directory comparison and merge."
+msgstr ""
+"Sposób użycia rozszerzenia menu kontekstowego:\n"
+"Dla prostego porównania dwóch wybranych plików wybierz  \"Porównaj\".\n"
+"Jeśli drugi plik znajduje się w innym miejscu \"Zachowaj na później\" "
+"pierwszy plik, a pojawi się on w podmenu \"Porównaj z ...\". Następnie użyj "
+"\"Porównaj z..\" z drugim plikiem.\n"
+"Dla trójstronnego scalenia najpierw \"Zachowaj\" plik bazowy, a następnie "
+"gałąź do scalenia i wybierz \"Trójstronne scalenie z plikiem bazowym\" na "
+"innej gałęzi, która będzie użyta jako docelowa.\n"
+"To samo tyczy się porównywania i scalania katalogów."
+
+#: kdiff3fileitemaction.cpp:294
+msgid "About KDiff3 File Item Action Plugin"
+msgstr "O wtyczce działanie elementu pliku KDiff3"
+
diff --git a/po/pl/kdiff3plugin.po b/po/pl/kdiff3plugin.po
new file mode 100644 (file)
index 0000000..70beca2
--- /dev/null
@@ -0,0 +1,102 @@
+# translation of kdiff3plugin.po to Polish
+# Copyright (C) YEAR This_file_is_part_of_KDE
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Michał Smoczyk <msmoczyk@wp.pl>, 2009.
+# Łukasz Wojniłowicz <lukasz.wojnilowicz@gmail.com>, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3plugin\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-08-12 10:22+0200\n"
+"Last-Translator: Łukasz Wojniłowicz <lukasz.wojnilowicz@gmail.com>\n"
+"Language-Team: Polish <pl@li.org>\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.2\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2);\n"
+
+#: kdiff3plugin.cpp:107
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#: kdiff3plugin.cpp:114
+#, kde-format
+msgid "Compare with %1"
+msgstr "Porównaj z %1"
+
+#: kdiff3plugin.cpp:120
+#, kde-format
+msgid "Merge with %1"
+msgstr "Scal z %1"
+
+#: kdiff3plugin.cpp:126
+#, kde-format
+msgid "Save '%1' for later"
+msgstr "Zapisz '%1' na później"
+
+#: kdiff3plugin.cpp:132
+msgid "3-way merge with base"
+msgstr "Trójstronne scalenie z plikiem bazowym"
+
+#: kdiff3plugin.cpp:139
+msgid "Compare with ..."
+msgstr "Porównaj z..."
+
+#: kdiff3plugin.cpp:149
+msgid "Clear list"
+msgstr "Wyczyść listę"
+
+#: kdiff3plugin.cpp:157
+msgid "Compare"
+msgstr "Porównaj"
+
+#: kdiff3plugin.cpp:163
+msgid "3 way comparison"
+msgstr "Porównanie 3 plików/katalogów"
+
+#: kdiff3plugin.cpp:167
+msgid "About KDiff3 menu plugin ..."
+msgstr "O wtyczce menu KDiff3 Menu"
+
+#: kdiff3plugin.cpp:269
+msgid ""
+"KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+"Wtyczka menu KDiff3: Prawa autorskie (C) 2008 Joachim Eibl\n"
+"Strona domowa KDiff3: http://kdiff3.sourceforge.net\n"
+"\n"
+
+#: kdiff3plugin.cpp:271
+msgid ""
+"Using the context menu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else, \"Save\" the first file for later, and "
+"it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With"
+"\" on the second file.\n"
+"For a 3-way merge first, \"Save\" the base file, then the branch to merge, "
+"and then \"3-way merge with base\" on the other branch which will be used as "
+"the destination.\n"
+"The same also applies to directory comparison and merge."
+msgstr ""
+"Sposób użycia rozszerzenia menu kontekstowego:\n"
+"Dla prostego porównania dwóch wybranych plików wybierz  \"Porównaj\".\n"
+"Jeśli drugi plik znajduje się w innym miejscu \"Zachowaj na później\" "
+"pierwszy plik, a pojawi się on w podmenu \"Porównaj z ...\". Następnie użyj "
+"\"Porównaj z..\" z drugim plikiem.\n"
+"Dla trójstronnego scalenia najpierw \"Zachowaj\" plik bazowy, a następnie "
+"gałąź do scalenia i wybierz \"Trójstronne scalenie z plikiem bazowym\" na "
+"innej gałęzi, która będzie użyta jako docelowa.\n"
+"To samo tyczy się porównywania i scalania katalogów."
+
+#: kdiff3plugin.cpp:279
+#| msgid "About KDiff3 menu plugin ..."
+msgid "About KDiff3 Menu Plugin"
+msgstr "O wtyczce menu KDiff3 Menu"
+
diff --git a/po/pt/CMakeLists.txt b/po/pt/CMakeLists.txt
new file mode 100644 (file)
index 0000000..0cd4cec
--- /dev/null
@@ -0,0 +1,2 @@
+file(GLOB _po_files *.po)
+GETTEXT_PROCESS_PO_FILES(pt ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
diff --git a/po/pt/kdiff3.po b/po/pt/kdiff3.po
new file mode 100644 (file)
index 0000000..77e97f7
--- /dev/null
@@ -0,0 +1,3229 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-05-06 10:26+0100\n"
+"Last-Translator: Pedro Morais <morais@kde.org>\n"
+"Language-Team: pt <kde-i18n-pt@kde.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-POFile-IgnoreConsistency: White\n"
+"X-POFile-IgnoreConsistency: Diff Settings\n"
+"X-POFile-SpellExtra: LF return Dif carriage ms diff CR KDiff cvsignore\n"
+"X-POFile-SpellExtra: orig Log bin map lib mgrs Rational ClearCase rename\n"
+"X-POFile-IgnoreConsistency: End\n"
+"X-POFile-SpellExtra: copyLink Part Latin Dest Atrib AutoAdvance Tab\n"
+"X-POFile-SpellExtra: mergeResultSaved vs rmdir mpMFI cs Diff txt makeDir\n"
+"X-POFile-SpellExtra: novoficheiro Dir delete Sauer Faure Gehrmann Joachim\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-POFile-SpellExtra: Eibl Woebbeking Stephan Manfred Schmidt Bernd Mee\n"
+"X-POFile-SpellExtra: Mike Binner Zorin Sergey Eike Stefan Len Fricker Mac\n"
+"X-POFile-SpellExtra: Valentin StringMatcher kdiff Boellsterling Diffutils\n"
+"X-POFile-SpellExtra: Stallman Cervisia Hayes CvsIgnoreList Sebastien Tower\n"
+"X-POFile-SpellExtra: Rusu Help Koehler Denio Andre Eggert Partheymueller\n"
+"X-POFile-SpellExtra: Haertel Astals Scherrer Silvan\n"
+
+#: kreplacements/kreplacements.h:105
+msgid "Continue"
+msgstr "Continuar"
+
+#: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158
+#: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512
+msgid "Cancel"
+msgstr "Cancelar"
+
+#: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631
+msgid "Quit"
+msgstr "Sair"
+
+#: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339
+msgid "Ok"
+msgstr "OK"
+
+#: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715
+msgid "Help"
+msgstr "Ajuda"
+
+#: kreplacements/kreplacements.cpp:185
+msgid "Defaults"
+msgstr "Predefinições"
+
+#. i18n: file: kdiff3_shell.rc:4
+#. i18n: ectx: Menu (file)
+#: kreplacements/kreplacements.cpp:296 rc.cpp:14
+msgid "&File"
+msgstr "&Ficheiro"
+
+#: kreplacements/kreplacements.cpp:297
+msgid "&Edit"
+msgstr "&Editar"
+
+#. i18n: file: kdiff3_shell.rc:7
+#. i18n: ectx: Menu (directory)
+#: kreplacements/kreplacements.cpp:298 rc.cpp:17
+msgid "&Directory"
+msgstr "&Pasta"
+
+#. i18n: file: kdiff3_shell.rc:50
+#. i18n: ectx: Menu (movement)
+#: kreplacements/kreplacements.cpp:301 rc.cpp:26
+msgid "&Movement"
+msgstr "&Movimento"
+
+#. i18n: file: kdiff3_shell.rc:61
+#. i18n: ectx: Menu (diff)
+#: kreplacements/kreplacements.cpp:302 rc.cpp:29
+msgid "D&iffview"
+msgstr "D&iferenças"
+
+#. i18n: file: kdiff3_shell.rc:73
+#. i18n: ectx: Menu (merge)
+#: kreplacements/kreplacements.cpp:303 rc.cpp:32
+msgid "&Merge"
+msgstr "Reu&nir"
+
+#. i18n: file: kdiff3_shell.rc:95
+#. i18n: ectx: Menu (window)
+#: kreplacements/kreplacements.cpp:304 rc.cpp:35
+msgid "&Window"
+msgstr "&Janela"
+
+#: kreplacements/kreplacements.cpp:305
+msgid "&Settings"
+msgstr "&Configuração"
+
+#: kreplacements/kreplacements.cpp:306
+msgid "&Help"
+msgstr "A&juda"
+
+#: kreplacements/kreplacements.cpp:353
+msgid "&About"
+msgstr "&Acerca"
+
+#: kreplacements/kreplacements.cpp:369
+msgid "A&uthor"
+msgstr "A&utoria"
+
+#: kreplacements/kreplacements.cpp:383
+msgid "&Thanks To"
+msgstr "Agradecimen&tos a"
+
+#. i18n: file: kdiff3_shell.rc:30
+#. i18n: ectx: Menu (dir_current_merge_menu)
+#: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497
+#: rc.cpp:20
+msgid "Current Item Merge Operation"
+msgstr "Operação de Junção do Item Actual"
+
+#. i18n: file: kdiff3_shell.rc:38
+#. i18n: ectx: Menu (dir_current_sync_menu)
+#: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498
+#: rc.cpp:23
+msgid "Current Item Sync Operation"
+msgstr "Operação de Sincronização do Item Actual"
+
+#: kreplacements/kreplacements.cpp:597
+msgid "Open"
+msgstr "Abrir"
+
+#: kreplacements/kreplacements.cpp:606
+msgid "Save"
+msgstr "Gravar"
+
+#: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720
+msgid "Save As..."
+msgstr "Gravar Como..."
+
+#: kreplacements/kreplacements.cpp:623
+msgid "Print..."
+msgstr "Imprimir..."
+
+#: kreplacements/kreplacements.cpp:639
+msgid "Cut"
+msgstr "Cortar"
+
+#: kreplacements/kreplacements.cpp:647
+msgid "Copy"
+msgstr "Copiar"
+
+#: kreplacements/kreplacements.cpp:655
+msgid "Paste"
+msgstr "Colar"
+
+#: kreplacements/kreplacements.cpp:663
+msgid "Select All"
+msgstr "Seleccionar Tudo"
+
+#: kreplacements/kreplacements.cpp:671
+msgid "Show Toolbar"
+msgstr "Mostrar a Barra de Ferramentas"
+
+#: kreplacements/kreplacements.cpp:679
+msgid "Show &Status Bar"
+msgstr "Mostrar a Barra de E&stado"
+
+#: kreplacements/kreplacements.cpp:687
+#, kde-format
+msgid "&Configure %1..."
+msgstr "&Configurar o %1..."
+
+#: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707
+msgid "About"
+msgstr "Acerca"
+
+#: kreplacements/kreplacements.cpp:722
+msgid "Find"
+msgstr "Procurar"
+
+#: kreplacements/kreplacements.cpp:730
+msgid "Find Next"
+msgstr "Procurar o Seguinte"
+
+#: kreplacements/kreplacements.cpp:750
+msgid "Select Font"
+msgstr "Seleccione o Tipo de Letra"
+
+#: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676
+msgid ""
+"You selected a variable width font.\n"
+"\n"
+"Because this program doesn't handle variable width fonts\n"
+"correctly, you might experience problems while editing.\n"
+"\n"
+"Do you want to continue or do you want to select another font."
+msgstr ""
+"Você seleccionou um tamanho de letra variável.\n"
+"\n"
+"Dado que este programa não lida correctamente com tipos de letra\n"
+"de largura variável, você poderá ter problemas ao editar.\n"
+"\n"
+"Deseja continuar ou prefere seleccionar outro tipo de letra."
+
+#: kreplacements/kreplacements.cpp:792
+msgid "Incompatible font."
+msgstr "Tipo de letra incompatível."
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Continue at my own risk"
+msgstr "Continuar por minha conta"
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Select another font"
+msgstr "Seleccionar outro tipo de letra"
+
+#: kreplacements/kreplacements.cpp:1134
+msgid "For more documentation, see the help-menu or the subdirectory doc."
+msgstr ""
+"Para mais documentação, veja o menu de ajuda ou o documento das sub-pastas."
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "KDiff3-Usage"
+msgstr "Utilização do KDiff3"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Ignore"
+msgstr "Ignorar"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Exit"
+msgstr "Sair"
+
+#: diff.cpp:251
+msgid "Writing clipboard data to temp file failed."
+msgstr ""
+"A escrita de dados da área de transferência para o ficheiro temporário "
+"falhou."
+
+#: diff.cpp:255
+msgid "From Clipboard"
+msgstr "Da Área de Transferência"
+
+#: diff.cpp:471
+msgid "Expecting space after closing quotation mark."
+msgstr "Era esperado um espaço após as aspas de fecho."
+
+#: diff.cpp:474
+msgid "Not matching quotation marks."
+msgstr "Existem aspas sem correspondência."
+
+#: diff.cpp:496
+msgid "Unexpected quotation mark within argument."
+msgstr "Detectaram-se aspas inesperadas dentro do argumento."
+
+#: diff.cpp:503
+msgid "No program specified."
+msgstr "Não foi indicado nenhum programa."
+
+#: diff.cpp:605
+#, kde-format
+msgid ""
+"Preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The preprocessing command will be disabled now."
+msgstr ""
+"O pré-processamento possivelmente falhou. Verifique este comando:\n"
+"  %1\n"
+"O comando de pré-processamento vai ser desactivado."
+
+#: diff.cpp:653
+#, kde-format
+msgid ""
+"The line-matching-preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The line-matching-preprocessing command will be disabled now."
+msgstr ""
+"O pré-processamento com procura de linhas possivelmente falhou. Verifique "
+"este comando:\n"
+"  %1\n"
+"O comando de pré-processamento com procura de linhas vai ser desactivado."
+
+#: diff.cpp:1776 diff.cpp:1790
+msgid ""
+"Data loss error:\n"
+"If it is reproducible please contact the author.\n"
+msgstr ""
+"Erro de perda de dados:\n"
+"Se for reprodutível, contacte por favor o autor.\n"
+
+#: diff.cpp:1778 diff.cpp:1792
+msgid "Severe Internal Error"
+msgstr "Erro Interno Grave"
+
+#: directorymergewindow.cpp:136
+msgid "Mix of links and normal files."
+msgstr "Mistura de ligações e ficheiros normais."
+
+#: directorymergewindow.cpp:143
+msgid "Link: "
+msgstr "Ligação: "
+
+#: directorymergewindow.cpp:151
+msgid "Size. "
+msgstr "Tamanho. "
+
+#: directorymergewindow.cpp:164 directorymergewindow.cpp:174
+msgid "Date & Size: "
+msgstr "Data e Tamanho: "
+
+#: directorymergewindow.cpp:184 directorymergewindow.cpp:190
+#, kde-format
+msgid "Creating temp copy of %1 failed."
+msgstr "A criação da cópia temporária do %1 falhou."
+
+#: directorymergewindow.cpp:201 directorymergewindow.cpp:209
+#, kde-format
+msgid "Opening %1 failed."
+msgstr "O acesso ao %1 foi mal-sucedido."
+
+#: directorymergewindow.cpp:213
+msgid "Comparing file..."
+msgstr "A comparar o ficheiro..."
+
+#: directorymergewindow.cpp:223 directorymergewindow.cpp:229
+#, kde-format
+msgid "Error reading from %1"
+msgstr "Erro ao ler de %1"
+
+#: directorymergewindow.cpp:358
+msgid "Name"
+msgstr "Nome"
+
+#: directorymergewindow.cpp:358
+msgid "Operation"
+msgstr "Operação"
+
+#: directorymergewindow.cpp:358
+msgid "Status"
+msgstr "Estado"
+
+#: directorymergewindow.cpp:359
+msgid "Unsolved"
+msgstr "Não resolvido"
+
+#: directorymergewindow.cpp:359
+msgid "Solved"
+msgstr "Resolvido"
+
+#: directorymergewindow.cpp:359
+msgid "Nonwhite"
+msgstr "Não vazio"
+
+#: directorymergewindow.cpp:359
+msgid "White"
+msgstr "Vazio"
+
+#: directorymergewindow.cpp:388
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort "
+"the merge and rescan the directory?"
+msgstr ""
+"Você está neste momento a fazer uma junção de pastas. Tem a certeza que "
+"deseja interromper a junção e analisar a pasta de novo?"
+
+#: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655
+#: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823
+msgid "Warning"
+msgstr "Aviso"
+
+#: directorymergewindow.cpp:390 directorymergewindow.cpp:2965
+msgid "Rescan"
+msgstr "Pesquisar de Novo"
+
+#: directorymergewindow.cpp:391 pdiff.cpp:1081
+msgid "Continue Merging"
+msgstr "Continuar a Junção"
+
+#: directorymergewindow.cpp:548
+msgid "Opening of directories failed:"
+msgstr "O acesso às pastas foi mal-sucedido:"
+
+#: directorymergewindow.cpp:551
+#, kde-format
+msgid "Dir A \"%1\" does not exist or is not a directory.\n"
+msgstr "A pasta A \"%1\" não existe ou não é uma pasta.\n"
+
+#: directorymergewindow.cpp:554
+#, kde-format
+msgid "Dir B \"%1\" does not exist or is not a directory.\n"
+msgstr "A pasta B \"%1\" não existe ou não é uma pasta.\n"
+
+#: directorymergewindow.cpp:557
+#, kde-format
+msgid "Dir C \"%1\" does not exist or is not a directory.\n"
+msgstr "A pasta C \"%1\" não existe ou não é uma pasta.\n"
+
+#: directorymergewindow.cpp:559
+msgid "Directory Open Error"
+msgstr "Erro de Acesso à Pasta"
+
+#: directorymergewindow.cpp:567
+msgid ""
+"The destination directory must not be the same as A or B when three "
+"directories are merged.\n"
+"Check again before continuing."
+msgstr ""
+"A pasta de destino não pode ser a mesma que a A ou a B quando são reunidas "
+"três pastas.\n"
+"Verifique de novo antes de continuar."
+
+#: directorymergewindow.cpp:569
+msgid "Parameter Warning"
+msgstr "Aviso do Parâmetro"
+
+#: directorymergewindow.cpp:574
+msgid "Scanning directories..."
+msgstr "A pesquisar as pastas..."
+
+#: directorymergewindow.cpp:607
+msgid "Reading Directory A"
+msgstr "A Ler a Pasta A"
+
+#: directorymergewindow.cpp:629
+msgid "Reading Directory B"
+msgstr "A Ler a Pasta B"
+
+#: directorymergewindow.cpp:651
+msgid "Reading Directory C"
+msgstr "A Ler a Pasta C"
+
+#: directorymergewindow.cpp:677
+msgid "Some subdirectories were not readable in"
+msgstr "Algumas das sub-pastas não eram legíveis"
+
+#: directorymergewindow.cpp:682
+msgid "Check the permissions of the subdirectories."
+msgstr "Verifique as permissões das sub-pastas."
+
+#: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737
+#: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233
+#: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328
+msgid "Ready."
+msgstr "Pronto."
+
+#: directorymergewindow.cpp:735
+msgid "Directory Comparison Status"
+msgstr "Estado da Comparação da Pasta"
+
+#: directorymergewindow.cpp:736
+msgid "Number of subdirectories:"
+msgstr "Número de sub-pastas:"
+
+#: directorymergewindow.cpp:737
+msgid "Number of equal files:"
+msgstr "Número de ficheiros iguais:"
+
+#: directorymergewindow.cpp:738
+msgid "Number of different files:"
+msgstr "Número de ficheiros diferentes:"
+
+#: directorymergewindow.cpp:741
+msgid "Number of manual merges:"
+msgstr "Número de junções manuais:"
+
+#: directorymergewindow.cpp:912
+msgid "This affects all merge operations."
+msgstr "Isto afecta todas as operações de junção."
+
+#: directorymergewindow.cpp:913
+msgid "Changing All Merge Operations"
+msgstr "A Mudar Todas as Operações de Junção"
+
+#: directorymergewindow.cpp:1312
+msgid "Processing "
+msgstr "A processar "
+
+#: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742
+msgid "To do."
+msgstr "A fazer."
+
+#: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996
+msgid "Copy A to B"
+msgstr "Copiar A para B"
+
+#: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997
+msgid "Copy B to A"
+msgstr "Copiar B para A"
+
+#: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998
+msgid "Delete A"
+msgstr "Apagar A"
+
+#: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999
+msgid "Delete B"
+msgstr "Apagar B"
+
+#: directorymergewindow.cpp:1814
+msgid "Delete A & B"
+msgstr "Apagar A e B"
+
+#: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001
+msgid "Merge to A"
+msgstr "Juntar a A"
+
+#: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002
+msgid "Merge to B"
+msgstr "Juntar a B"
+
+#: directorymergewindow.cpp:1817
+msgid "Merge to A & B"
+msgstr "Juntar a A e B"
+
+#: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993
+msgid "Delete (if exists)"
+msgstr "Apagar (se existir)"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+#: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869
+msgid "Merge"
+msgstr "Reunir"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+msgid "Merge (manual)"
+msgstr "Juntar (manual)"
+
+#: directorymergewindow.cpp:1824
+msgid "Error: Conflicting File Types"
+msgstr "Erro: Tipos de Ficheiros em Conflito"
+
+#: directorymergewindow.cpp:1825
+msgid "Error: Changed and Deleted"
+msgstr "Erro: Alterado e Apagado"
+
+#: directorymergewindow.cpp:1826
+msgid "Error: Dates are equal but files are not."
+msgstr "Erro: As datas são iguais mas os ficheiros não."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906
+msgid "This operation is currently not possible."
+msgstr "Esta operação não é possível de momento."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174
+msgid "Operation Not Possible"
+msgstr "Operação Não Possível"
+
+#: directorymergewindow.cpp:1945
+msgid ""
+"This should never happen: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"If you know how to reproduce this, please contact the program author."
+msgstr ""
+"Isto nunca deve acontecer:\n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"Se souber como reproduzir isto, contacte por favor o autor do programa."
+
+#: directorymergewindow.cpp:1945
+msgid "Program Error"
+msgstr "Erro no Programa"
+
+#: directorymergewindow.cpp:1956
+msgid "An error occurred while copying.\n"
+msgstr "Ocorreu um erro ao copiar.\n"
+
+#: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025
+#: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105
+#: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123
+#: directorymergewindow.cpp:2374
+msgid "Error"
+msgstr "Erro"
+
+#: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375
+msgid "Merge Error"
+msgstr "Erro na Junção"
+
+#: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380
+msgid "Error."
+msgstr "Erro."
+
+#: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272
+#: directorymergewindow.cpp:2312
+msgid "Done."
+msgstr "Terminado."
+
+#: directorymergewindow.cpp:1990
+msgid "Not saved."
+msgstr "Não gravado."
+
+#: directorymergewindow.cpp:2025
+msgid "Unknown merge operation. (This must never happen!)"
+msgstr "Operação de junção desconhecida. (Isto nunca deve acontecer!)"
+
+#: directorymergewindow.cpp:2057
+msgid "Unknown merge operation."
+msgstr "Operação de junção desconhecida."
+
+#: directorymergewindow.cpp:2072
+msgid ""
+"The merge is about to begin.\n"
+"\n"
+"Choose \"Do it\" if you have read the instructions and know what you are "
+"doing.\n"
+"Choosing \"Simulate it\" will tell you what would happen.\n"
+"\n"
+"Be aware that this program still has beta status and there is NO WARRANTY "
+"whatsoever! Make backups of your vital data!"
+msgstr ""
+"A junção está prestes a começar.\n"
+"\n"
+"Escolha \"Fazê-lo\" se leu as instruções e sabe o que está a fazer.\n"
+"Se escolher \"Simulá-lo\" irá saber o que iria acontecer.\n"
+"\n"
+"Tenha em atenção que este programa está ainda em estado Beta e NÃO EXISTE "
+"NENHUMA GARANTIA! Faça cópias de segurança dos seus dados vitais!"
+
+#: directorymergewindow.cpp:2077
+msgid "Starting Merge"
+msgstr "A Iniciar a Junção"
+
+#: directorymergewindow.cpp:2078
+msgid "Do It"
+msgstr "Fazê-lo"
+
+#: directorymergewindow.cpp:2079
+msgid "Simulate It"
+msgstr "Simulá-lo"
+
+#: directorymergewindow.cpp:2105
+msgid ""
+"The highlighted item has a different type in the different directories. "
+"Select what to do."
+msgstr ""
+"O item realçado tem um tipo diferente nas várias pastas. Seleccione o que "
+"fazer."
+
+#: directorymergewindow.cpp:2114
+msgid ""
+"The modification dates of the file are equal but the files are not. Select "
+"what to do."
+msgstr ""
+"As datas de modificação dos ficheiros são iguais mas estes não o são. "
+"Seleccione o que fazer."
+
+#: directorymergewindow.cpp:2123
+msgid ""
+"The highlighted item was changed in one directory and deleted in the other. "
+"Select what to do."
+msgstr ""
+"O item realçado foi alterado numa pasta e modificado na outra. Seleccione o "
+"que fazer."
+
+#: directorymergewindow.cpp:2174
+msgid ""
+"This operation is currently not possible because directory merge is "
+"currently running."
+msgstr ""
+"Esta operação não é possível de momento que a junção da pasta está a "
+"decorrer."
+
+#: directorymergewindow.cpp:2234
+msgid ""
+"There was an error in the last step.\n"
+"Do you want to continue with the item that caused the error or do you want "
+"to skip this item?"
+msgstr ""
+"Ocorreu um erro no último passo.\n"
+"Deseja continuar com o item que causou o erro ou deseja saltar este item?"
+
+#: directorymergewindow.cpp:2236
+msgid "Continue merge after an error"
+msgstr "Continuar a junção após um erro"
+
+#: directorymergewindow.cpp:2237
+msgid "Continue With Last Item"
+msgstr "Continuar com o Último Item"
+
+#: directorymergewindow.cpp:2238
+msgid "Skip Item"
+msgstr "Saltar o Item"
+
+#: directorymergewindow.cpp:2272
+msgid "Skipped."
+msgstr "Ignorado."
+
+#: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493
+msgid "In progress..."
+msgstr "Em progresso..."
+
+#: directorymergewindow.cpp:2327
+msgid "Merge operation complete."
+msgstr "A operação de junção terminou."
+
+#: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330
+msgid "Merge Complete"
+msgstr "Junção Completa"
+
+#: directorymergewindow.cpp:2340
+msgid ""
+"Simulated merge complete: Check if you agree with the proposed operations."
+msgstr ""
+"A simulação da junção terminou: Verifique se concorda com as operações "
+"propostas."
+
+#: directorymergewindow.cpp:2374
+msgid "An error occurred. Press OK to see detailed information.\n"
+msgstr "Ocorreu um erro. Carregue em OK para ver a informação detalhada.\n"
+
+#: directorymergewindow.cpp:2406
+#, kde-format
+msgid "Error: While deleting %1: Creating backup failed."
+msgstr "Erro: Ao tentar apagar o %1: a criação da cópia de segurança falhou."
+
+#: directorymergewindow.cpp:2413
+#, kde-format
+msgid "delete directory recursively( %1 )"
+msgstr "apagar recursivamente as pastas( %1 )"
+
+#: directorymergewindow.cpp:2415
+#, kde-format
+msgid "delete( %1 )"
+msgstr "delete( %1 )"
+
+#: directorymergewindow.cpp:2430
+msgid "Error: delete dir operation failed while trying to read the directory."
+msgstr "Erro: a operação de remoção da pasta falhou ao tentar ler a pasta."
+
+#: directorymergewindow.cpp:2449
+#, kde-format
+msgid "Error: rmdir( %1 ) operation failed."
+msgstr "Erro: a operação rmdir( %1 ) falhou."
+
+#: directorymergewindow.cpp:2459
+msgid "Error: delete operation failed."
+msgstr "Erro: a operação de remoção falhou."
+
+#: directorymergewindow.cpp:2485
+#, kde-format
+msgid "manual merge( %1, %2, %3 -> %4)"
+msgstr "junção manual( %1, %2, %3 -> %4)"
+
+#: directorymergewindow.cpp:2488
+msgid ""
+"     Note: After a manual merge the user should continue by pressing F7."
+msgstr ""
+"     Nota: Após uma junção manual o utilizador deve continuar com o F7."
+
+#: directorymergewindow.cpp:2513
+#, kde-format
+msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed."
+msgstr ""
+"Erro: a cópia( %1 -> %2 ) falhou. A remoção do destino existente falhou."
+
+#: directorymergewindow.cpp:2522
+#, kde-format
+msgid "copyLink( %1 -> %2 )"
+msgstr "copyLink( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2533
+msgid "Error: copyLink failed: Remote links are not yet supported."
+msgstr "Erro: o copyLink falhou: As ligações remotas ainda não são suportadas."
+
+#: directorymergewindow.cpp:2539
+msgid "Error: copyLink failed."
+msgstr "Erro: o copyLink falhou."
+
+#: directorymergewindow.cpp:2564
+#, kde-format
+msgid "copy( %1 -> %2 )"
+msgstr "cópia( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2590
+#, kde-format
+msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination."
+msgstr ""
+"Erro durante o rename( %1 -> %2 ): Não é possível remover o destino "
+"existente."
+
+#: directorymergewindow.cpp:2596
+#, kde-format
+msgid "rename( %1 -> %2 )"
+msgstr "rename( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2605
+msgid "Error: Rename failed."
+msgstr "Erro: A mudança de nome falhou."
+
+#: directorymergewindow.cpp:2623
+#, kde-format
+msgid "Error during makeDir of %1. Cannot delete existing file."
+msgstr ""
+"Erro durante o makeDir do %1. Não é possível remover o ficheiro existente."
+
+#: directorymergewindow.cpp:2639
+#, kde-format
+msgid "makeDir( %1 )"
+msgstr "makeDir( %1 )"
+
+#: directorymergewindow.cpp:2649
+msgid "Error while creating directory."
+msgstr "Erro ao criar a pasta."
+
+#: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784
+msgid "Dest"
+msgstr "Dest"
+
+#: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709
+msgid "Dir"
+msgstr "Dir"
+
+#: directorymergewindow.cpp:2678
+msgid "Type"
+msgstr "Tipo"
+
+#: directorymergewindow.cpp:2678
+msgid "Size"
+msgstr "Tamanho"
+
+#: directorymergewindow.cpp:2679
+msgid "Attr"
+msgstr "Atrib"
+
+#: directorymergewindow.cpp:2679
+msgid "Last Modification"
+msgstr "Última Modificação"
+
+#: directorymergewindow.cpp:2679
+msgid "Link-Destination"
+msgstr "Ligação-Destino"
+
+#: directorymergewindow.cpp:2709 difftextwindow.cpp:401
+msgid "File"
+msgstr "Ficheiro"
+
+#: directorymergewindow.cpp:2726
+msgid "not available"
+msgstr "não disponível"
+
+#: directorymergewindow.cpp:2746
+msgid "A (Dest): "
+msgstr "A (Dest): "
+
+#: directorymergewindow.cpp:2749
+msgid "A (Base): "
+msgstr "A (Base): "
+
+#: directorymergewindow.cpp:2755
+msgid "B (Dest): "
+msgstr "B (Dest): "
+
+#: directorymergewindow.cpp:2763
+msgid "C (Dest): "
+msgstr "C (Dest): "
+
+#: directorymergewindow.cpp:2769
+msgid "Dest: "
+msgstr "Dest: "
+
+#: directorymergewindow.cpp:2836
+msgid "Save Directory Merge State As..."
+msgstr "Gravar o Estado da Junção de Pastas Como..."
+
+#: directorymergewindow.cpp:2959
+msgid "Start/Continue Directory Merge"
+msgstr "Iniciar/Continuar a Junção da Pasta"
+
+#: directorymergewindow.cpp:2960
+msgid "Run Operation for Current Item"
+msgstr "Executar a Operação no Item Actual"
+
+#: directorymergewindow.cpp:2961
+msgid "Compare Selected File"
+msgstr "Comparar o Ficheiro Seleccionado"
+
+#: directorymergewindow.cpp:2962
+msgid "Merge Current File"
+msgstr "Juntar o Ficheiro Actual"
+
+#: directorymergewindow.cpp:2962
+msgid ""
+"Merge\n"
+"File"
+msgstr ""
+"Reunir o\n"
+"Ficheiro"
+
+#: directorymergewindow.cpp:2963
+msgid "Fold All Subdirs"
+msgstr "Fechar Todas as Sub-Pasta"
+
+#: directorymergewindow.cpp:2964
+msgid "Unfold All Subdirs"
+msgstr "Expandir Todas as Sub-Pastas"
+
+#: directorymergewindow.cpp:2968
+msgid "Choose A for All Items"
+msgstr "Seleccionar Todos os Itens do A"
+
+#: directorymergewindow.cpp:2969
+msgid "Choose B for All Items"
+msgstr "Seleccionar Todos os Itens do B"
+
+#: directorymergewindow.cpp:2970
+msgid "Choose C for All Items"
+msgstr "Seleccionar Todos os Itens do C"
+
+#: directorymergewindow.cpp:2971
+msgid "Auto-Choose Operation for All Items"
+msgstr "Escolher Automaticamente a Operação para Todos os Itens"
+
+#: directorymergewindow.cpp:2972
+msgid "No Operation for All Items"
+msgstr "Nenhuma Operação para Todos os Itens"
+
+#: directorymergewindow.cpp:2977
+msgid "Show Identical Files"
+msgstr "Mostrar os Ficheiros Idênticos"
+
+#: directorymergewindow.cpp:2977
+msgid ""
+"Identical\n"
+"Files"
+msgstr ""
+"Ficheiros\n"
+"Idênticos"
+
+#: directorymergewindow.cpp:2978
+msgid "Show Different Files"
+msgstr "Mostrar os Ficheiros Diferentes"
+
+#: directorymergewindow.cpp:2979
+msgid "Show Files only in A"
+msgstr "Mostrar os Ficheiros Apenas no A"
+
+#: directorymergewindow.cpp:2979
+msgid ""
+"Files\n"
+"only in A"
+msgstr ""
+"Ficheiros \n"
+"Apenas no A"
+
+#: directorymergewindow.cpp:2980
+msgid "Show Files only in B"
+msgstr "Mostrar os Ficheiros Apenas no B"
+
+#: directorymergewindow.cpp:2980
+msgid ""
+"Files\n"
+"only in B"
+msgstr ""
+"Ficheiros\n"
+"Apenas no B"
+
+#: directorymergewindow.cpp:2981
+msgid "Show Files only in C"
+msgstr "Mostrar os Ficheiros Apenas no C"
+
+#: directorymergewindow.cpp:2981
+msgid ""
+"Files\n"
+"only in C"
+msgstr ""
+"Ficheiros\n"
+"Apenas no C"
+
+#: directorymergewindow.cpp:2985
+msgid "Compare Explicitly Selected Files"
+msgstr "Comparar os Ficheiros Seleccionados Explicitamente"
+
+#: directorymergewindow.cpp:2986
+msgid "Merge Explicitly Selected Files"
+msgstr "Juntar os Ficheiros Seleccionados Explicitamente"
+
+#: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995
+msgid "Do Nothing"
+msgstr "Não Fazer Nada"
+
+#: directorymergewindow.cpp:2989
+msgid "A"
+msgstr "A"
+
+#: directorymergewindow.cpp:2990
+msgid "B"
+msgstr "B"
+
+#: directorymergewindow.cpp:2991
+msgid "C"
+msgstr "C"
+
+#: directorymergewindow.cpp:3000
+msgid "Delete A && B"
+msgstr "Apagar A e B"
+
+#: directorymergewindow.cpp:3003
+msgid "Merge to A && B"
+msgstr "Juntar a A e B"
+
+#: main.cpp:74 main.cpp:76
+msgid "Ignored. (User defined.)"
+msgstr "Ignorado. (Definido pelo utilizador.)"
+
+#: main.cpp:162
+msgid "kdiff3"
+msgstr "kdiff3"
+
+#: main.cpp:164
+msgid "Tool for Comparison and Merge of Files and Directories"
+msgstr "Ferramenta para Comparação e Junção de Ficheiros e Pastas"
+
+#: main.cpp:165
+msgid "(c) 2002-2011 Joachim Eibl"
+msgstr "(c) 2002-2011 Joachim Eibl"
+
+#: main.cpp:172 kdiff3_part.cpp:303
+msgid "Joachim Eibl"
+msgstr "Joachim Eibl"
+
+#: main.cpp:173
+msgid "Eike Sauer"
+msgstr "Eike Sauer"
+
+#: main.cpp:173
+msgid "Bugfixes, Debian package maintainer"
+msgstr "Correcções de erros, manutenção do pacote Debian"
+
+#: main.cpp:174
+msgid "Sebastien Fricker"
+msgstr "Sebastien Fricker"
+
+#: main.cpp:174
+msgid "Windows installer"
+msgstr "Instalador para o Windows"
+
+#: main.cpp:175
+msgid "Stephan Binner"
+msgstr "Stephan Binner"
+
+#: main.cpp:175
+msgid "i18n-help"
+msgstr "ajuda em I18N"
+
+#: main.cpp:176
+msgid "Stefan Partheymueller"
+msgstr "Stefan Partheymueller"
+
+#: main.cpp:176
+msgid "Clipboard-patch"
+msgstr "Correcção da Área de Transferência"
+
+#: main.cpp:177
+msgid "David Faure"
+msgstr "David Faure"
+
+#: main.cpp:177
+msgid "KIO-Help"
+msgstr "KIO-Help"
+
+#: main.cpp:178
+msgid "Bernd Gehrmann"
+msgstr "Bernd Gehrmann"
+
+#: main.cpp:178
+msgid "Class CvsIgnoreList from Cervisia"
+msgstr "Classe CvsIgnoreList do Cervisia"
+
+#: main.cpp:179
+msgid "Andre Woebbeking"
+msgstr "Andre Woebbeking"
+
+#: main.cpp:179
+msgid "Class StringMatcher"
+msgstr "Classe StringMatcher"
+
+#: main.cpp:180
+msgid "Michael Denio"
+msgstr "Michael Denio"
+
+#: main.cpp:180
+msgid "Directory Equality-Coloring patch"
+msgstr "Correcção de Coloração da Igualdade de Pastas"
+
+#: main.cpp:181
+msgid "Manfred Koehler"
+msgstr "Manfred Koehler"
+
+#: main.cpp:181
+msgid "Fix for slow startup on Windows"
+msgstr "Correcção dos arranques lentos no Windows"
+
+#: main.cpp:182
+msgid "Sergey Zorin"
+msgstr "Sergey Zorin"
+
+#: main.cpp:182
+msgid "Diff Ext for Windows"
+msgstr "Extensão Diff para o Windows"
+
+#: main.cpp:183
+msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+
+#: main.cpp:183
+msgid "GNU-Diffutils"
+msgstr "GNU-Diffutils"
+
+#: main.cpp:184
+msgid "Tino Boellsterling, Timothy Mee"
+msgstr "Tino Boellsterling, Timothy Mee"
+
+#: main.cpp:184
+msgid "Intensive test, use and feedback"
+msgstr "Testes intensivos, utilização e reacções"
+
+#: main.cpp:185
+msgid "Michael Schmidt"
+msgstr "Michael Schmidt"
+
+#: main.cpp:185
+msgid "Mac support"
+msgstr "Suporte para Mac"
+
+#: main.cpp:186
+msgid "Valentin Rusu"
+msgstr "Valentin Rusu"
+
+#: main.cpp:186 main.cpp:187
+msgid "KDE4 porting"
+msgstr "Passagem para o KDE4"
+
+#: main.cpp:187
+msgid "Albert Astals Cid"
+msgstr "Albert Astals Cid"
+
+#: main.cpp:188
+msgid "Silvan Scherrer"
+msgstr "Silvan Scherrer"
+
+#: main.cpp:188
+msgid "OS2 port"
+msgstr "Versão para o OS/2"
+
+#: main.cpp:190
+msgid "+ Many thanks to those who reported bugs and contributed ideas!"
+msgstr ""
+"Muitos agradecimentos a todos os que comunicaram erros e contribuíram ideias!"
+
+#: main.cpp:196
+msgid "Merge the input."
+msgstr "Juntar a entrada."
+
+#: main.cpp:197
+msgid "Explicit base file. For compatibility with certain tools."
+msgstr ""
+"Ficheiro de base explícito. Para a compatibilidade com certas ferramentas."
+
+#: main.cpp:198
+msgid "Output file. Implies -m. E.g.: -o newfile.txt"
+msgstr "Ficheiro de saída. Implica o -m. P.ex.: -o novoficheiro.txt"
+
+#: main.cpp:199
+msgid "Output file, again. (For compatibility with certain tools.)"
+msgstr ""
+"Ficheiro de saída, de novo. (para a compatibilidade com certas ferramentas)"
+
+#: main.cpp:200
+msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)"
+msgstr ""
+"Sem interface se todos os conflitos são resolvidos automaticamente (precisa "
+"do -o ficheiro)"
+
+#: main.cpp:201
+msgid "Don't solve conflicts automatically. (For compatibility...)"
+msgstr "Não resolver os conflitos automaticamente. (Para compatibilidade...)"
+
+#: main.cpp:202
+msgid "Visible name replacement for input file 1 (base)."
+msgstr "Substituição do nome visível para o ficheiro de entrada 1 (base)."
+
+#: main.cpp:203
+msgid "Visible name replacement for input file 2."
+msgstr "Substituição do nome visível para o ficheiro de entrada 2."
+
+#: main.cpp:204
+msgid "Visible name replacement for input file 3."
+msgstr "Substituição do nome visível para o ficheiro de entrada 3."
+
+#: main.cpp:205
+msgid "Alternative visible name replacement. Supply this once for every input."
+msgstr ""
+"Substituição alternativa do nome visível. Indique isto para cada entrada."
+
+#: main.cpp:206
+msgid ""
+"Override a config setting. Use once for every setting. E.g.: --cs "
+"\"AutoAdvance=1\""
+msgstr ""
+"Substitui uma opção de configuração. Use uma vez para todas as opções. P."
+"ex.:  --cs \"AutoAdvance=1\""
+
+#: main.cpp:207
+msgid "Show list of config settings and current values."
+msgstr "Mostra uma lista das opções de configuração e os valores actuais."
+
+#: main.cpp:208
+msgid "Use a different config file."
+msgstr "Usar um ficheiro de configuração diferente."
+
+#: main.cpp:211
+msgid "file1 to open (base, if not specified via --base)"
+msgstr "o ficheiro 1 a abrir (base, se não for indicado através do --base)"
+
+#: main.cpp:212
+msgid "file2 to open"
+msgstr "o ficheiro 2 a abrir"
+
+#: main.cpp:213
+msgid "file3 to open"
+msgstr "o ficheiro 3 a abrir"
+
+#: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976
+#: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002
+#: mergeresultwindow.cpp:1014
+#, kde-format
+msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)"
+msgstr ""
+"Número de conflitos por resolver: %1 (dos quais %2 são espaço em branco)"
+
+#: mergeresultwindow.cpp:303
+msgid ""
+"The output has been modified.\n"
+"If you continue your changes will be lost."
+msgstr ""
+"O resultado foi modificado.\n"
+"Se você continuar as suas alterações serão perdidas."
+
+#: mergeresultwindow.cpp:834 pdiff.cpp:532
+msgid "All input files are binary equal."
+msgstr "Todos os ficheiros de entrada são iguais a nível binário."
+
+#: mergeresultwindow.cpp:836
+msgid "All input files contain the same text."
+msgstr "Todos os ficheiros de entrada contêm o mesmo texto."
+
+#: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840
+#: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540
+#, kde-format
+msgid "Files %1 and %2 are binary equal.\n"
+msgstr "Os ficheiros %1 e %2 são iguais a nível binário.\n"
+
+#: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841
+#: mergeresultwindow.cpp:843
+#, kde-format
+msgid "Files %1 and %2 have equal text.\n"
+msgstr "Os ficheiros %1 e %2 têm texto igual.\n"
+
+#: mergeresultwindow.cpp:849
+msgid "Total number of conflicts: "
+msgstr "Número total de conflitos: "
+
+#: mergeresultwindow.cpp:850
+msgid ""
+"\n"
+"Nr of automatically solved conflicts: "
+msgstr ""
+"\n"
+"Número total de conflitos resolvidos automaticamente: "
+
+#: mergeresultwindow.cpp:851
+msgid ""
+"\n"
+"Nr of unsolved conflicts: "
+msgstr ""
+"\n"
+"Número de conflitos por resolver: "
+
+#: mergeresultwindow.cpp:853
+msgid "Conflicts"
+msgstr "Conflitos"
+
+#: mergeresultwindow.cpp:1728
+msgid "<No src line>"
+msgstr "<Sem linha de origem>"
+
+#: mergeresultwindow.cpp:1736
+msgid "<Merge Conflict (Whitespace only)>"
+msgstr "<Conflito na Junção (Apenas espaço em branco)>"
+
+#: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517
+msgid "<Merge Conflict>"
+msgstr "<Conflito na Junção>"
+
+#: mergeresultwindow.cpp:2725
+msgid ""
+"Not all conflicts are solved yet.\n"
+"File not saved.\n"
+msgstr ""
+"Nem todos os conflitos estão ainda resolvidos.\n"
+"O ficheiro não foi gravado.\n"
+
+#: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736
+msgid "Conflicts Left"
+msgstr "Conflitos Restantes"
+
+#: mergeresultwindow.cpp:2734
+msgid ""
+"There is a line end style conflict. Please choose the line end style "
+"manually.\n"
+"File not saved.\n"
+msgstr ""
+"Existe um conflito de fins de linha. Escolha por favor o estilo "
+"manualmente.\n"
+"O ficheiro não foi gravado.\n"
+
+#: mergeresultwindow.cpp:2748
+msgid ""
+"\n"
+"\n"
+"Creating backup failed. File not saved."
+msgstr ""
+"\n"
+"\n"
+"A criação de salvaguarda falhou. Ficheiro não gravado."
+
+#: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792
+msgid "File Save Error"
+msgstr "Erro na Gravação do Ficheiro"
+
+#: mergeresultwindow.cpp:2792
+msgid "Error while writing."
+msgstr "Erro ao gravar."
+
+#: mergeresultwindow.cpp:3122
+msgid "Output"
+msgstr "Resultado"
+
+#: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314
+msgid "[Modified]"
+msgstr "[Modificado]"
+
+#: mergeresultwindow.cpp:3141
+msgid "Encoding for saving"
+msgstr "Codificação da gravação"
+
+#: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737
+#: optiondialog.cpp:762
+msgid "Line end style:"
+msgstr "Estilo de fim de linha:"
+
+#: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767
+msgid "Unix"
+msgstr "Unix"
+
+#: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737
+msgid "DOS"
+msgstr "DOS"
+
+#: mergeresultwindow.cpp:3229
+msgid "Conflict"
+msgstr "Conflito"
+
+#: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263
+#: mergeresultwindow.cpp:3265
+msgid "Codec from"
+msgstr "Codificador de"
+
+#: kdiff3_part.cpp:157 kdiff3_part.cpp:234
+msgid "Couldn't find files for comparison."
+msgstr "Não foi possível encontrar os ficheiros a comparar."
+
+#: kdiff3_part.cpp:302
+msgid "KDiff3Part"
+msgstr "KDiff3Part"
+
+#: fileaccess.cpp:612
+msgid ""
+"While trying to make a backup, deleting an older backup failed. \n"
+"Filename: "
+msgstr ""
+"Ao tentar fazer uma cópia de segurança, a remoção de uma cópia anterior "
+"falhou. \n"
+"Ficheiro: "
+
+#: fileaccess.cpp:619
+msgid ""
+"While trying to make a backup, renaming failed. \n"
+"Filenames: "
+msgstr ""
+"Ao tentar fazer uma cópia de segurança, a mudança de nome falhou. \n"
+"Ficheiros: "
+
+#: fileaccess.cpp:643
+#, kde-format
+msgid "Getting file status: %1"
+msgstr "A obter o estado do ficheiro: %1"
+
+#: fileaccess.cpp:686
+#, kde-format
+msgid "Reading file: %1"
+msgstr "A ler o ficheiro: %1"
+
+#: fileaccess.cpp:723
+#, kde-format
+msgid "Writing file: %1"
+msgstr "A escrever o ficheiro: %1"
+
+#: fileaccess.cpp:751
+msgid "Out of memory"
+msgstr "Sem memória"
+
+#: fileaccess.cpp:786
+#, kde-format
+msgid "Making directory: %1"
+msgstr "A criar a pasta: %1"
+
+#: fileaccess.cpp:806
+#, kde-format
+msgid "Removing directory: %1"
+msgstr "A remover a pasta: %1"
+
+#: fileaccess.cpp:821
+#, kde-format
+msgid "Removing file: %1"
+msgstr "A remover o ficheiro. %1"
+
+#: fileaccess.cpp:837
+#, kde-format
+msgid "Creating symbolic link: %1 -> %2"
+msgstr "A criar a ligação simbólica: %1 -> %2"
+
+#: fileaccess.cpp:864
+#, kde-format
+msgid "Renaming file: %1 -> %2"
+msgstr "A mudar o nome do ficheiro: %1 -> %2"
+
+#: fileaccess.cpp:897
+#, kde-format
+msgid "Copying file: %1 -> %2"
+msgstr "A copiar o ficheiro: %1 -> %2"
+
+#: fileaccess.cpp:911
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for reading failed. Filename: "
+"%1"
+msgstr ""
+"Erro durante a operação de cópia do ficheiro: O acesso ao ficheiro para "
+"leitura falhou. Ficheiro: %1"
+
+#: fileaccess.cpp:917
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for writing failed. Filename: "
+"%1"
+msgstr ""
+"Erro durante a operação de cópia do ficheiro: O acesso ao ficheiro para "
+"escrita falhou. Ficheiro: %1"
+
+#: fileaccess.cpp:932
+#, kde-format
+msgid "Error during file copy operation: Reading failed. Filename: %1"
+msgstr ""
+"Erro durante a operação de cópia do ficheiro: A leitura falhou. Ficheiro: %1"
+
+#: fileaccess.cpp:941
+#, kde-format
+msgid "Error during file copy operation: Writing failed. Filename: %1"
+msgstr ""
+"Erro durante a operação de cópia do ficheiro: A escrita falhou. Ficheiro: %1"
+
+#: fileaccess.cpp:1231
+msgid "Reading directory: "
+msgstr "A ler a pasta: "
+
+#: fileaccess.cpp:1355
+#, kde-format
+msgid "Listing directory: %1"
+msgstr "A analisar a pasta: %1"
+
+#: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396
+msgid "&Cancel"
+msgstr "&Cancelar"
+
+#: difftextwindow.cpp:403
+msgid "Line"
+msgstr "Linha"
+
+#: difftextwindow.cpp:405
+msgid "Line not available"
+msgstr "Linha não disponível"
+
+#: difftextwindow.cpp:1703 difftextwindow.cpp:1736
+msgid "Encoding:"
+msgstr "Codificação:"
+
+#: difftextwindow.cpp:1759 kdiff3.cpp:831
+msgid "Top line"
+msgstr "Linha de topo"
+
+#: difftextwindow.cpp:1769
+msgid "End"
+msgstr "Fim"
+
+#: kdiff3.cpp:169
+msgid "Current Configuration:"
+msgstr "Configuração Actual:"
+
+#: kdiff3.cpp:174
+msgid "Config Option Error:"
+msgstr "Erro da Opção de Configuração:"
+
+#: kdiff3.cpp:219
+msgid "Option --auto used, but no output file specified."
+msgstr ""
+"A opção --auto foi indicada, mas não foi especificado nenhum ficheiro de "
+"saída."
+
+#: kdiff3.cpp:369
+msgid "Option --auto ignored for directory comparison."
+msgstr "A opção --auto é ignorada para a comparação de pastas."
+
+#: kdiff3.cpp:405
+msgid "Saving failed."
+msgstr "A gravação falhou."
+
+#: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214
+msgid "Opening of these files failed:"
+msgstr "O acesso a estes ficheiros falhou:"
+
+#: kdiff3.cpp:449
+msgid "File Open Error"
+msgstr "Erro de Acesso ao Ficheiro"
+
+#: kdiff3.cpp:477
+msgid "Opens documents for comparison..."
+msgstr "Abre os documentos para os comparar..."
+
+#: kdiff3.cpp:479
+msgid "Reload"
+msgstr "Actualizar"
+
+#: kdiff3.cpp:482
+msgid "Saves the merge result. All conflicts must be solved!"
+msgstr ""
+"Grava o resultado da gravação. Todos os conflitos devem ficar resolvidos!"
+
+#: kdiff3.cpp:484
+msgid "Saves the current document as..."
+msgstr "Grava o documento actual como..."
+
+#: kdiff3.cpp:487
+msgid "Print the differences"
+msgstr "Imprimir as diferenças"
+
+#: kdiff3.cpp:490
+msgid "Quits the application"
+msgstr "Sai da aplicação"
+
+#: kdiff3.cpp:492
+msgid "Cuts the selected section and puts it to the clipboard"
+msgstr "Corta a secção seleccionada e coloca-a na área de transferência"
+
+#: kdiff3.cpp:494
+msgid "Copies the selected section to the clipboard"
+msgstr "Copia a secção seleccionada para a área de transferência"
+
+#: kdiff3.cpp:496
+msgid "Pastes the clipboard contents to current position"
+msgstr "Cola o conteúdo da área de transferência na posição actual"
+
+#: kdiff3.cpp:498
+msgid "Select everything in current window"
+msgstr "Selecciona tudo na janela actual"
+
+#: kdiff3.cpp:500
+msgid "Search for a string"
+msgstr "Procura por um texto"
+
+#: kdiff3.cpp:502
+msgid "Search again for the string"
+msgstr "Procura de novo pelo texto"
+
+#: kdiff3.cpp:507
+msgid "Enables/disables the statusbar"
+msgstr "Activa/desactiva a barra de estado"
+
+#: kdiff3.cpp:511
+msgid "Configure KDiff3..."
+msgstr "Configurar o KDiff3..."
+
+#: kdiff3.cpp:532
+msgid "Go to Current Delta"
+msgstr "Ir para o Delta Actual"
+
+#: kdiff3.cpp:532
+msgid ""
+"Current\n"
+"Delta"
+msgstr ""
+"Delta\n"
+"Actual"
+
+#: kdiff3.cpp:534
+msgid "Go to First Delta"
+msgstr "Ir para o Primeiro Delta"
+
+#: kdiff3.cpp:534
+msgid ""
+"First\n"
+"Delta"
+msgstr ""
+"Primeiro\n"
+"Delta"
+
+#: kdiff3.cpp:536
+msgid "Go to Last Delta"
+msgstr "Ir para o Último Delta"
+
+#: kdiff3.cpp:536
+msgid ""
+"Last\n"
+"Delta"
+msgstr ""
+"Último\n"
+"Delta"
+
+#: kdiff3.cpp:538
+msgid "(Skips white space differences when \"Show White Space\" is disabled.)"
+msgstr ""
+"(Ignora as diferenças de espaço em branco quando \"Mostrar os Espaços em "
+"Branco\" está desactivado.)"
+
+#: kdiff3.cpp:539
+msgid ""
+"(Does not skip white space differences even when \"Show White Space\" is "
+"disabled.)"
+msgstr ""
+"(Não ignora as diferenças de espaço em branco mesmo quando \"Mostrar os "
+"Espaços em Branco\" está desactivado.)"
+
+#: kdiff3.cpp:540
+msgid "Go to Previous Delta"
+msgstr "Ir para o Delta Anterior"
+
+#: kdiff3.cpp:540
+msgid ""
+"Prev\n"
+"Delta"
+msgstr ""
+"Delta\n"
+"Anterior"
+
+#: kdiff3.cpp:542
+msgid "Go to Next Delta"
+msgstr "Ir para o Próximo Delta"
+
+#: kdiff3.cpp:542
+msgid ""
+"Next\n"
+"Delta"
+msgstr ""
+"Delta\n"
+"Seguinte"
+
+#: kdiff3.cpp:544
+msgid "Go to Previous Conflict"
+msgstr "Ir para o Conflito Anterior"
+
+#: kdiff3.cpp:544
+msgid ""
+"Prev\n"
+"Conflict"
+msgstr ""
+"Conflito\n"
+"Anterior"
+
+#: kdiff3.cpp:546
+msgid "Go to Next Conflict"
+msgstr "Ir para o Próximo Conflito"
+
+#: kdiff3.cpp:546
+msgid ""
+"Next\n"
+"Conflict"
+msgstr ""
+"Conflito\n"
+"Seguinte"
+
+#: kdiff3.cpp:548
+msgid "Go to Previous Unsolved Conflict"
+msgstr "Ir para o Conflito por Resolver Anterior"
+
+#: kdiff3.cpp:548
+msgid ""
+"Prev\n"
+"Unsolved"
+msgstr ""
+"Não Resolvido\n"
+"Anterior"
+
+#: kdiff3.cpp:550
+msgid "Go to Next Unsolved Conflict"
+msgstr "Ir para o Conflito por Resolver Seguinte"
+
+#: kdiff3.cpp:550
+msgid ""
+"Next\n"
+"Unsolved"
+msgstr ""
+"Não Resolvido\n"
+"Seguinte"
+
+#: kdiff3.cpp:552
+msgid "Select Line(s) From A"
+msgstr "Seleccionar as Linhas do A"
+
+#: kdiff3.cpp:552
+msgid ""
+"Choose\n"
+"A"
+msgstr ""
+"Escolher\n"
+"o A"
+
+#: kdiff3.cpp:553
+msgid "Select Line(s) From B"
+msgstr "Seleccionar as Linhas do B"
+
+#: kdiff3.cpp:553
+msgid ""
+"Choose\n"
+"B"
+msgstr ""
+"Escolher\n"
+"o B"
+
+#: kdiff3.cpp:554
+msgid "Select Line(s) From C"
+msgstr "Seleccionar as Linhas do C"
+
+#: kdiff3.cpp:554
+msgid ""
+"Choose\n"
+"C"
+msgstr ""
+"Escolher\n"
+"o C"
+
+#: kdiff3.cpp:555
+msgid "Automatically Go to Next Unsolved Conflict After Source Selection"
+msgstr ""
+"Ir Automaticamente para o Próximo Conflito por Resolver Após a Selecção do "
+"Código"
+
+#: kdiff3.cpp:555
+msgid ""
+"Auto\n"
+"Next"
+msgstr ""
+"Seguinte\n"
+"Automático"
+
+#: kdiff3.cpp:557
+msgid "Show Space && Tabulator Characters for Differences"
+msgstr "Mostrar as Diferenças de Espaços e Tabulações"
+
+#: kdiff3.cpp:557
+msgid ""
+"White\n"
+"Characters"
+msgstr ""
+"Espaços\n"
+"em Branco"
+
+#: kdiff3.cpp:558
+msgid "Show White Space"
+msgstr "Mostrar os Espaços em Branco"
+
+#: kdiff3.cpp:558
+msgid ""
+"White\n"
+"Deltas"
+msgstr ""
+"Diferenças\n"
+"em Branco"
+
+#: kdiff3.cpp:560
+msgid "Show Line Numbers"
+msgstr "Mostrar os Números de Linha"
+
+#: kdiff3.cpp:560
+msgid ""
+"Line\n"
+"Numbers"
+msgstr ""
+"Números\n"
+"de Linha"
+
+#: kdiff3.cpp:561
+msgid "Choose A Everywhere"
+msgstr "Escolher o A em Todo o Lado"
+
+#: kdiff3.cpp:562
+msgid "Choose B Everywhere"
+msgstr "Escolher o B em Todo o Lado"
+
+#: kdiff3.cpp:563
+msgid "Choose C Everywhere"
+msgstr "Escolher o C em Todo o Lado"
+
+#: kdiff3.cpp:564
+msgid "Choose A for All Unsolved Conflicts"
+msgstr "Escolher A em Todos os Conflitos por Resolver"
+
+#: kdiff3.cpp:565
+msgid "Choose B for All Unsolved Conflicts"
+msgstr "Escolher B em Todos os Conflitos por Resolver"
+
+#: kdiff3.cpp:566
+msgid "Choose C for All Unsolved Conflicts"
+msgstr "Escolher C em Todos os Conflitos por Resolver"
+
+#: kdiff3.cpp:567
+msgid "Choose A for All Unsolved Whitespace Conflicts"
+msgstr "Escolher A em Todos os Conflitos de Espaço em Branco por Resolver"
+
+#: kdiff3.cpp:568
+msgid "Choose B for All Unsolved Whitespace Conflicts"
+msgstr "Escolher B em Todos os Conflitos de Espaço em Branco por Resolver"
+
+#: kdiff3.cpp:569
+msgid "Choose C for All Unsolved Whitespace Conflicts"
+msgstr "Escolher C em Todos os Conflitos de Espaço em Branco por Resolver"
+
+#: kdiff3.cpp:570
+msgid "Automatically Solve Simple Conflicts"
+msgstr "Resolver Automaticamente os Conflitos Simples"
+
+#: kdiff3.cpp:571
+msgid "Set Deltas to Conflicts"
+msgstr "Passar os Deltas para Conflitos"
+
+#: kdiff3.cpp:572
+msgid "Run Regular Expression Auto Merge"
+msgstr "Executar a Junção Automática de Expressões Regulares"
+
+#: kdiff3.cpp:573
+msgid "Automatically Solve History Conflicts"
+msgstr "Resolver Automaticamente os Conflitos do Histórico"
+
+#: kdiff3.cpp:574
+msgid "Split Diff At Selection"
+msgstr "Dividir a Diferença na Selecção"
+
+#: kdiff3.cpp:575
+msgid "Join Selected Diffs"
+msgstr "Juntar as Diferenças Seleccionadas"
+
+#: kdiff3.cpp:577
+msgid "Show Window A"
+msgstr "Mostrar a Janela A"
+
+#: kdiff3.cpp:578
+msgid "Show Window B"
+msgstr "Mostrar a Janela B"
+
+#: kdiff3.cpp:579
+msgid "Show Window C"
+msgstr "Mostrar a Janela C"
+
+#: kdiff3.cpp:580 kdiff3.cpp:591
+msgid "Focus Next Window"
+msgstr "Foco na Próxima Janela"
+
+#: kdiff3.cpp:582
+msgid "Normal Overview"
+msgstr "Vista Normal"
+
+#: kdiff3.cpp:583
+msgid "A vs. B Overview"
+msgstr "Vista A vs. B"
+
+#: kdiff3.cpp:584
+msgid "A vs. C Overview"
+msgstr "Vista A vs. C"
+
+#: kdiff3.cpp:585
+msgid "B vs. C Overview"
+msgstr "Vista B vs. C"
+
+#: kdiff3.cpp:586
+msgid "Word Wrap Diff Windows"
+msgstr "Quebrar Linha nas Janelas de Diferenças"
+
+#: kdiff3.cpp:587
+msgid "Add Manual Diff Alignment"
+msgstr "Adicionar o Alinhamento Manual das Diferenças"
+
+#: kdiff3.cpp:588
+msgid "Clear All Manual Diff Alignments"
+msgstr "Limpar Todos os Alinhamentos de Diferenças Manuais"
+
+#: kdiff3.cpp:593
+msgid "Focus Prev Window"
+msgstr "Foco na Janela Anterior"
+
+#: kdiff3.cpp:594
+msgid "Toggle Split Orientation"
+msgstr "Comutar a Orientação da Repartição"
+
+#: kdiff3.cpp:596
+msgid "Dir && Text Split Screen View"
+msgstr "Janela Repartida de Pastas e Texto"
+
+#: kdiff3.cpp:598
+msgid "Toggle Between Dir && Text View"
+msgstr "Mudar Entre a Janela de Pastas e de Texto"
+
+#: kdiff3.cpp:654 pdiff.cpp:1812
+msgid "The merge result hasn't been saved."
+msgstr "O resultado da junção não foi ainda gravado."
+
+#: kdiff3.cpp:656
+msgid "Save && Quit"
+msgstr "Gravar e Sair"
+
+#: kdiff3.cpp:657
+msgid "Quit Without Saving"
+msgstr "Sair sem Gravar"
+
+#: kdiff3.cpp:665 pdiff.cpp:1823
+msgid "Saving the merge result failed."
+msgstr "A gravação do resultado da junção falhou."
+
+#: kdiff3.cpp:676 pdiff.cpp:1078
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort?"
+msgstr ""
+"Você está a fazer uma junção de pastas de momento. Tem a certeza que quer "
+"interromper?"
+
+#: kdiff3.cpp:701
+msgid "Saving file..."
+msgstr "A gravar o ficheiro..."
+
+#: kdiff3.cpp:718
+msgid "Saving file with a new filename..."
+msgstr "A gravar o ficheiro com um novo nome..."
+
+#: kdiff3.cpp:781
+msgid "Printing not implemented."
+msgstr "A impressão não está implementada."
+
+#: kdiff3.cpp:815
+msgid "Printing..."
+msgstr "A imprimir..."
+
+#: kdiff3.cpp:956
+msgid "Selection"
+msgstr "Selecção"
+
+#: kdiff3.cpp:982
+msgid "Printing completed."
+msgstr "A impressão terminou."
+
+#: kdiff3.cpp:986
+msgid "Printing aborted."
+msgstr "A impressão foi interrompida."
+
+#: kdiff3.cpp:993
+msgid "Exiting..."
+msgstr "A sair..."
+
+#: kdiff3.cpp:1006
+msgid "Toggling toolbar..."
+msgstr "A comutar a barra de ferramentas..."
+
+#: kdiff3.cpp:1027
+msgid "Toggle the statusbar..."
+msgstr "Comutar a barra de estado..."
+
+#: smalldialogs.cpp:58
+msgid "A (Base):"
+msgstr "A (Base):"
+
+#: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99
+#: smalldialogs.cpp:142
+msgid "File..."
+msgstr "Ficheiro..."
+
+#: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101
+#: smalldialogs.cpp:144
+msgid "Dir..."
+msgstr "Pasta..."
+
+#: smalldialogs.cpp:93
+msgid "C (Optional):"
+msgstr "C (Opcional):"
+
+#: smalldialogs.cpp:116
+msgid "Swap/Copy Names ..."
+msgstr "Trocar/Copiar os Nomes ..."
+
+#: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123
+#, kde-format
+msgid "Swap %1<->%2"
+msgstr "Trocar o %1<->%2"
+
+#: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126
+#, kde-format
+msgid "Copy %1->Output"
+msgstr "Copiar o %1->Resultado"
+
+#: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129
+#, kde-format
+msgid "Swap %1<->Output"
+msgstr "Trocar o %1<->Resultado"
+
+#: smalldialogs.cpp:136
+msgid "Output (optional):"
+msgstr "Resultado (opcional):"
+
+#: smalldialogs.cpp:168
+msgid "Configure..."
+msgstr "Configurar..."
+
+#: smalldialogs.cpp:174
+msgid "&OK"
+msgstr "&OK"
+
+#: smalldialogs.cpp:362
+msgid "Search text:"
+msgstr "Texto da procura:"
+
+#: smalldialogs.cpp:369
+msgid "Case sensitive"
+msgstr "Distinguir capitalização"
+
+#: smalldialogs.cpp:372
+msgid "Search A"
+msgstr "Procurar A"
+
+#: smalldialogs.cpp:377
+msgid "Search B"
+msgstr "Procurar B"
+
+#: smalldialogs.cpp:382
+msgid "Search C"
+msgstr "Procurar C"
+
+#: smalldialogs.cpp:387
+msgid "Search output"
+msgstr "Resultado da procura"
+
+#: smalldialogs.cpp:392
+msgid "&Search"
+msgstr "&Procurar"
+
+#: smalldialogs.cpp:409
+msgid "Regular Expression Tester"
+msgstr "Teste de Expressões Regulares"
+
+#: smalldialogs.cpp:414 optiondialog.cpp:936
+msgid "Auto merge regular expression:"
+msgstr "Expressão regular de junção automática:"
+
+#: smalldialogs.cpp:422
+msgid "Example auto merge line:"
+msgstr "Linha de junção automática do exemplo:"
+
+#: smalldialogs.cpp:424
+msgid "To test auto merge, copy a line as used in your files."
+msgstr ""
+"Para um teste da junção automática, copie uma linha usada nos seus ficheiros."
+
+#: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494
+msgid "Match result:"
+msgstr "Resultado correspondente:"
+
+#: smalldialogs.cpp:441 optiondialog.cpp:962
+msgid "History start regular expression:"
+msgstr "Expressão regular do início do histórico:"
+
+#: smalldialogs.cpp:449
+msgid "Example history start line (with leading comment):"
+msgstr "Linha inicial do histórico do exemplo (com o comentário inicial):"
+
+#: smalldialogs.cpp:451
+msgid ""
+"Copy a history start line as used in your files,\n"
+"including the leading comment."
+msgstr ""
+"Copie uma linha inicial do histórico, como a usada nos seus ficheiros,\n"
+"incluindo o comentário inicial."
+
+#: smalldialogs.cpp:469 optiondialog.cpp:972
+msgid "History entry start regular expression:"
+msgstr "Expressão regular do início do item de histórico:"
+
+#: smalldialogs.cpp:477
+msgid "History sort key order:"
+msgstr "Ordem da chave do histórico:"
+
+#: smalldialogs.cpp:485
+msgid "Example history entry start line (without leading comment):"
+msgstr ""
+"Linha inicial do item do histórico do exemplo (sem o comentário inicial):"
+
+#: smalldialogs.cpp:487
+msgid ""
+"Copy a history entry start line as used in your files,\n"
+"but omit the leading comment."
+msgstr ""
+"Copie uma linha inicial do item de histórico, como a usada nos seus "
+"ficheiros,\n"
+"mas omita o comentário inicial."
+
+#: smalldialogs.cpp:501
+msgid "Sort key result:"
+msgstr "Resultado da chave de ordenação:"
+
+#: smalldialogs.cpp:508
+msgid "OK"
+msgstr "OK"
+
+#: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583
+msgid "Match success."
+msgstr "Sucesso da correspondência."
+
+#: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589
+msgid "Match failed."
+msgstr "A correspondência falhou."
+
+#: smalldialogs.cpp:574
+msgid "Opening and closing parentheses do not match in regular expression."
+msgstr ""
+"Os parêntesis de abertura e fecho não correspondem na expressão regular."
+
+#: optiondialog.cpp:367
+msgid "Unicode, 8 bit"
+msgstr "Unicode, 8 bit"
+
+#: optiondialog.cpp:368
+msgid "Unicode"
+msgstr "Unicode"
+
+#: optiondialog.cpp:369
+msgid "Latin1"
+msgstr "Latin1"
+
+#: optiondialog.cpp:388
+msgid "Change this if non-ASCII characters are not displayed correctly."
+msgstr ""
+"Altere isto se os caracteres não-ASCII não são mostrados correctamente."
+
+#: optiondialog.cpp:465
+msgid "Configure"
+msgstr "Configurar"
+
+#: optiondialog.cpp:531
+msgid "Font"
+msgstr "Tipo de Letra"
+
+#: optiondialog.cpp:532
+msgid "Editor & Diff Output Font"
+msgstr "Tipo de Letra do Resultado do Diff e do Editor"
+
+#: optiondialog.cpp:556
+msgid "Italic font for deltas"
+msgstr "Texto itálico para os deltas"
+
+#: optiondialog.cpp:559
+msgid ""
+"Selects the italic version of the font for differences.\n"
+"If the font doesn't support italic characters, then this does nothing."
+msgstr ""
+"Seleccionar a versão itálica do texto para as diferenças.\n"
+"Se o tipo de letra não suportar caracteres itálicos, isto não fará nada."
+
+#: optiondialog.cpp:568
+msgid "Color"
+msgstr "Cor"
+
+#: optiondialog.cpp:569
+msgid "Colors Settings"
+msgstr "Configuração das Cores"
+
+#: optiondialog.cpp:588
+msgid "Editor and Diff Views:"
+msgstr "Áreas do Editor e das Diferenças:"
+
+#: optiondialog.cpp:596
+msgid "Foreground color:"
+msgstr "Cor principal:"
+
+#: optiondialog.cpp:603
+msgid "Background color:"
+msgstr "Cor de fundo:"
+
+#: optiondialog.cpp:612
+msgid "Diff background color:"
+msgstr "Cor de fundo das diferenças:"
+
+#: optiondialog.cpp:620
+msgid "Color A:"
+msgstr "Cor A:"
+
+#: optiondialog.cpp:628
+msgid "Color B:"
+msgstr "Cor B:"
+
+#: optiondialog.cpp:636
+msgid "Color C:"
+msgstr "Cor C:"
+
+#: optiondialog.cpp:643
+msgid "Conflict color:"
+msgstr "Cor do conflito:"
+
+#: optiondialog.cpp:651
+msgid "Current range background color:"
+msgstr "Cor de fundo do intervalo actual:"
+
+#: optiondialog.cpp:659
+msgid "Current range diff background color:"
+msgstr "Cor de fundo da diferença do intervalo actual:"
+
+#: optiondialog.cpp:666
+msgid "Color for manually aligned difference ranges:"
+msgstr "Cor dos intervalos de diferenças alinhados manualmente:"
+
+#: optiondialog.cpp:672
+msgid "Directory Comparison View:"
+msgstr "Área de Comparação das Pastas:"
+
+#: optiondialog.cpp:678
+msgid "Newest file color:"
+msgstr "Cor do ficheiro mais recente:"
+
+#: optiondialog.cpp:682
+msgid ""
+"Changing this color will only be effective when starting the next directory "
+"comparison."
+msgstr ""
+"Se mudar esta cor, só fará efeito ao iniciar a próxima comparação de pastas."
+
+#: optiondialog.cpp:687
+msgid "Oldest file color:"
+msgstr "Cor do ficheiro mais antigo:"
+
+#: optiondialog.cpp:695
+msgid "Middle age file color:"
+msgstr "Cor dos ficheiros intermédios:"
+
+#: optiondialog.cpp:703
+msgid "Color for missing files:"
+msgstr "Cor dos ficheiros em falta:"
+
+#: optiondialog.cpp:717
+msgid "Editor"
+msgstr "Editor"
+
+#: optiondialog.cpp:718
+msgid "Editor Behavior"
+msgstr "Comportamento do Editor"
+
+#: optiondialog.cpp:732
+msgid "Tab inserts spaces"
+msgstr "O Tab insere espaços"
+
+#: optiondialog.cpp:735
+msgid ""
+"On: Pressing tab generates the appropriate number of spaces.\n"
+"Off: A tab character will be inserted."
+msgstr ""
+"Ligado: se carregar no Tab gera o número apropriado de espaços.\n"
+"Desligado: será introduzido um carácter Tab."
+
+#: optiondialog.cpp:741
+msgid "Tab size:"
+msgstr "Tamanho das tabulações:"
+
+#: optiondialog.cpp:747
+msgid "Auto indentation"
+msgstr "Indentação automática"
+
+#: optiondialog.cpp:750
+msgid "On: The indentation of the previous line is used for a new line.\n"
+msgstr "Ligado: A indentação da linha anterior é usada para uma nova linha.\n"
+
+#: optiondialog.cpp:754
+msgid "Auto copy selection"
+msgstr "Copiar automaticamente a selecção"
+
+#: optiondialog.cpp:757
+msgid ""
+"On: Any selection is immediately written to the clipboard.\n"
+"Off: You must explicitely copy e.g. via Ctrl-C."
+msgstr ""
+"Ligado: Qualquer selecção é posta automaticamente na área de transferência.\n"
+"Desligado: Você tem de copiar explicitamente, p.ex., com o Ctrl-C."
+
+#: optiondialog.cpp:768
+msgid "Dos/Windows"
+msgstr "DOS/Windows"
+
+#: optiondialog.cpp:769
+msgid "Autodetect"
+msgstr "Auto-detectar"
+
+#: optiondialog.cpp:772
+msgid ""
+"Sets the line endings for when an edited file is saved.\n"
+"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A"
+msgstr ""
+"Escolhe os fins de linha para quando um ficheiro editado é gravado.\n"
+"DOS/Windows: CR+LF; UNIX: LF; com CR=0D, LF=0A"
+
+#: optiondialog.cpp:784
+msgid "Diff"
+msgstr "Diferenças"
+
+#: optiondialog.cpp:785
+msgid "Diff Settings"
+msgstr "Configuração das Diferenças"
+
+#: optiondialog.cpp:809
+msgid "Treat as white space."
+msgstr "Tratar como espaços em branco."
+
+#: optiondialog.cpp:811
+msgid "Ignore numbers"
+msgstr "Ignorar os números"
+
+#: optiondialog.cpp:814
+msgid ""
+"Ignore number characters during line matching phase. (Similar to Ignore "
+"white space.)\n"
+"Might help to compare files with numeric data."
+msgstr ""
+"Ignora os caracteres numéricos durante a fase de correspondência das linhas "
+"(Semelhante ao Ignorar os Espaços).\n"
+"Pode ajudar a comparar os ficheiros com dados numéricos."
+
+#: optiondialog.cpp:819
+msgid "Ignore C/C++ comments"
+msgstr "Ignorar comentários de C/C++"
+
+#: optiondialog.cpp:821
+msgid "Treat C/C++ comments like white space."
+msgstr "Tratar os comentários de C/C++ como espaço em branco."
+
+#: optiondialog.cpp:825
+msgid "Ignore case"
+msgstr "Ignorar a capitalização"
+
+#: optiondialog.cpp:828
+msgid "Treat case differences like white space changes. ('a'<=>'A')"
+msgstr ""
+"Tratar diferenças de capitalização como mudanças de espaço em branco. "
+"('a'<=>'A')"
+
+#: optiondialog.cpp:832
+msgid "Preprocessor command:"
+msgstr "Comando do pré-processador:"
+
+#: optiondialog.cpp:836
+msgid "User defined pre-processing. (See the docs for details.)"
+msgstr ""
+"Pré-processamento definido pelo utilizador. (Veja a documentação para mais "
+"detalhes)."
+
+#: optiondialog.cpp:839
+msgid "Line-matching preprocessor command:"
+msgstr "Comando do pré-processador para a correspondência de linhas:"
+
+#: optiondialog.cpp:843
+msgid ""
+"This pre-processor is only used during line matching.\n"
+"(See the docs for details.)"
+msgstr ""
+"Este pré-processador só é usado na correspondência das linhas.\n"
+"(Veja a documentação para mais detalhes)."
+
+#: optiondialog.cpp:846
+msgid "Try hard (slower)"
+msgstr "Tentar com persistência (lento)"
+
+#: optiondialog.cpp:849
+msgid ""
+"Enables the --minimal option for the external diff.\n"
+"The analysis of big files will be much slower."
+msgstr ""
+"Activa a opção --minimal do 'diff' externo.\n"
+"A análise dos ficheiros grandes será muito mais lenta."
+
+#: optiondialog.cpp:854
+msgid "Align B and C for 3 input files"
+msgstr "Alinhar o B e o C para 3 ficheiros de entrada"
+
+#: optiondialog.cpp:857
+msgid ""
+"Try to align B and C when comparing or merging three input files.\n"
+"Not recommended for merging because merge might get more complicated.\n"
+"(Default is off.)"
+msgstr ""
+"Tentar alinhar o B e o C ao comparar ou reunir três ficheiros de entrada.\n"
+"Não é recomendado para a reunião, dado que esta se poderá tornar mais "
+"complicada.\n"
+"(Por omissão está desligada.)"
+
+#: optiondialog.cpp:870
+msgid "Merge Settings"
+msgstr "Configuração da Junção"
+
+#: optiondialog.cpp:885
+msgid "Auto advance delay (ms):"
+msgstr "Atraso no avanço automático (ms):"
+
+#: optiondialog.cpp:890
+msgid ""
+"When in Auto-Advance mode the result of the current selection is shown \n"
+"for the specified time, before jumping to the next conflict. Range: 0-2000 ms"
+msgstr ""
+"Quando estiver no modo de Avanço Automático, o resultado da selecção actual "
+"é mostrado durante o período indicado, antes de saltar para o próximo "
+"conflito. Intervalo: 0-2000 ms"
+
+#: optiondialog.cpp:895
+msgid "Show info dialogs"
+msgstr "Mostrar as janelas informativas"
+
+#: optiondialog.cpp:897
+msgid "Show a dialog with information about the number of conflicts."
+msgstr "Mostrar uma janela com informações sobre o número de conflitos."
+
+#: optiondialog.cpp:900
+msgid "White space 2-file merge default:"
+msgstr "Junção de espaço em branco com 2 ficheiros:"
+
+#: optiondialog.cpp:904 optiondialog.cpp:917
+msgid "Manual Choice"
+msgstr "Escolha Manual"
+
+#: optiondialog.cpp:908 optiondialog.cpp:922
+msgid ""
+"Allow the merge algorithm to automatically select an input for white-space-"
+"only changes."
+msgstr ""
+"Permite ao algoritmo de junção escolher automaticamente o ficheiro a "
+"utilizar para as alterações de apenas espaço em branco."
+
+#: optiondialog.cpp:913
+msgid "White space 3-file merge default:"
+msgstr "Junção de espaço em branco com 3 ficheiros:"
+
+#: optiondialog.cpp:927
+msgid "Automatic Merge Regular Expression"
+msgstr "Expressão Regular de Junção Automática"
+
+#: optiondialog.cpp:940
+msgid ""
+"Regular expression for lines where KDiff3 should automatically choose one "
+"source.\n"
+"When a line with a conflict matches the regular expression then\n"
+"- if available - C, otherwise B will be chosen."
+msgstr ""
+"A expressão regular das linhas em que o KDiff3 deverá escolher "
+"automaticamente uma origem.\n"
+"Quando uma linha com um conflito corresponder à expressão regular então será "
+"-\n"
+"se disponível - o C, caso contrário será escolhido o B."
+
+#: optiondialog.cpp:946
+msgid "Run regular expression auto merge on merge start"
+msgstr "Executar a junção automática da expressão regular ao iniciar a junção"
+
+#: optiondialog.cpp:948
+msgid ""
+"Run the merge for auto merge regular expressions\n"
+"immediately when a merge starts.\n"
+msgstr ""
+"Executa a junção para as expressões regulares de junção automática\n"
+"imediatamente após o início de uma junção.\n"
+
+#: optiondialog.cpp:953
+msgid "Version Control History Merging"
+msgstr "Junção do Histórico do Controlo de Versões"
+
+#: optiondialog.cpp:966
+msgid ""
+"Regular expression for the start of the version control history entry.\n"
+"Usually this line contains the \"$Log$\" keyword.\n"
+"Default value: \".*\\$Log.*\\$.*\""
+msgstr ""
+"A expressão regular para o início do item de histórico da junção.\n"
+"Normalmente, este valor contém a palavra-chave \"$Log$\".\n"
+"Valor por omissão: \".*\\$Log.*\\$.*\""
+
+#: optiondialog.cpp:984
+msgid ""
+"A version control history entry consists of several lines.\n"
+"Specify the regular expression to detect the first line (without the leading "
+"comment).\n"
+"Use parentheses to group the keys you want to use for sorting.\n"
+"If left empty, then KDiff3 assumes that empty lines separate history "
+"entries.\n"
+"See the documentation for details."
+msgstr ""
+"Um item de histórico da junção consiste em várias linhas.\n"
+"Indique a expressão regular usada para detectar a primeira linha (sem o "
+"comentário inicial).\n"
+"Use os parêntesis para agrupar as chaves que deseja usar na ordenação.\n"
+"Se for deixado em branco, o KDiff3 assume que as linhas em branco separar os "
+"itens de histórico.\n"
+"Veja a documentação para saber mais detalhes."
+
+#: optiondialog.cpp:992
+msgid "History merge sorting"
+msgstr "Ordenação da junção do histórico"
+
+#: optiondialog.cpp:994
+msgid "Sort version control history by a key."
+msgstr "Ordenar o histórico do controlo de versões por uma chave."
+
+#: optiondialog.cpp:1004
+msgid "History entry start sort key order:"
+msgstr "Ordem da chave de ordenação do início do item de histórico:"
+
+#: optiondialog.cpp:1008
+msgid ""
+"Each pair of parentheses used in the regular expression for the history "
+"start entry\n"
+"groups a key that can be used for sorting.\n"
+"Specify the list of keys (that are numbered in order of occurrence\n"
+"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n"
+"If left empty, then no sorting will be done.\n"
+"See the documentation for details."
+msgstr ""
+"Cada um dos parêntesis usados na expressão regular no item inicial do "
+"histórico\n"
+"agrupa uma chave que poderá ser usada na ordenação.\n"
+"Indique a lista de chaves (que são numeradas por ordem de ocorrência,\n"
+"a começar no 1), usando o ',' como separador (p.ex., \"4,5,6,1,2,3,7\").\n"
+"Se for deixado em branco, não será feita nenhuma ordenação.\n"
+"Veja a documentação para saber mais detalhes."
+
+#: optiondialog.cpp:1019
+msgid "Merge version control history on merge start"
+msgstr "Juntar o histórico do controlo de versões ao iniciar a junção"
+
+#: optiondialog.cpp:1021
+msgid "Run version control history automerge on merge start."
+msgstr ""
+"Executar a junção automática do histórico do controlo de versões ao iniciar "
+"a junção."
+
+#: optiondialog.cpp:1025
+msgid "Max number of history entries:"
+msgstr "Número máximo de itens do histórico:"
+
+#: optiondialog.cpp:1028
+msgid "Cut off after specified number. Use -1 for infinite number of entries."
+msgstr ""
+"Cortar ao fim do número indicado. Usar o -1 para um número infinito de "
+"elementos."
+
+#: optiondialog.cpp:1032
+msgid "Test your regular expressions"
+msgstr "Testar as suas expressões regulares"
+
+#: optiondialog.cpp:1037
+msgid "Irrelevant merge command:"
+msgstr "Comando de junção irrelevante:"
+
+#: optiondialog.cpp:1041
+msgid ""
+"If specified this script is run after automerge\n"
+"when no other relevant changes were detected.\n"
+"Called with the parameters: filename1 filename2 filename3"
+msgstr ""
+"Se for indicado, este programa é executado após a junção automática,\n"
+"quando não forem detectadas mais alterações relevantes.\n"
+"É invocado com os parâmetros: ficheiro1 ficheiro2 ficheiro3"
+
+#: optiondialog.cpp:1047
+msgid "Auto save and quit on merge without conflicts"
+msgstr "Gravar automaticamente e sair na junção sem conflitos"
+
+#: optiondialog.cpp:1050
+msgid ""
+"If KDiff3 was started for a file-merge from the command line and all\n"
+"conflicts are solvable without user interaction then automatically save and "
+"quit.\n"
+"(Similar to command line option \"--auto\".)"
+msgstr ""
+"Quando o KDiff3 foi iniciado para uma junção de ficheiros na linha de "
+"comandos e todos os conflitos podem ser resolvidos sem interacção do "
+"utilizador, então grava e sair automaticamente.\n"
+"(Semelhante à opção da linha de comandos \"--auto\".)"
+
+#: optiondialog.cpp:1061 optiondialog.cpp:1062
+msgid "Directory"
+msgstr "Pasta"
+
+#: optiondialog.cpp:1075
+msgid "Recursive directories"
+msgstr "Pastas recursivas"
+
+#: optiondialog.cpp:1077
+msgid "Whether to analyze subdirectories or not."
+msgstr "Se se analisam as sub-pastas ou não."
+
+#: optiondialog.cpp:1079
+msgid "File pattern(s):"
+msgstr "Padrões de ficheiros:"
+
+#: optiondialog.cpp:1084
+msgid ""
+"Pattern(s) of files to be analyzed. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Os padrões dos ficheiros a analisar.\n"
+"Caracteres especiais: '*' e '?'\n"
+"Podem ser indicados vários padrões usando o separador: ';'"
+
+#: optiondialog.cpp:1090
+msgid "File-anti-pattern(s):"
+msgstr "Anti-padrões de ficheiros:"
+
+#: optiondialog.cpp:1095
+msgid ""
+"Pattern(s) of files to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Os padrões dos ficheiros a excluir da análise.\n"
+"Caracteres especiais: '*' e '?'\n"
+"Podem ser indicados vários padrões usando o separador: ';'"
+
+#: optiondialog.cpp:1101
+msgid "Dir-anti-pattern(s):"
+msgstr "Anti-padrões de pastas:"
+
+#: optiondialog.cpp:1106
+msgid ""
+"Pattern(s) of directories to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Os padrões das pastas a excluir da análise.\n"
+"Caracteres especiais: '*' e '?'\n"
+"Podem ser indicados vários padrões usando o separador: ';'"
+
+#: optiondialog.cpp:1112
+msgid "Use .cvsignore"
+msgstr "Usar o .cvsignore"
+
+#: optiondialog.cpp:1115
+msgid ""
+"Extends the antipattern to anything that would be ignored by CVS.\n"
+"Via local \".cvsignore\" files this can be directory specific."
+msgstr ""
+"Extende o anti-padrão para tudo o que seria ignorado pelo CVS.\n"
+"Isto pode ser específico para cada pasta, através dos ficheiros '.cvsignore' "
+"locais."
+
+#: optiondialog.cpp:1120
+msgid "Find hidden files and directories"
+msgstr "Procurar os ficheiros e pastas escondidos"
+
+#: optiondialog.cpp:1123
+msgid "Finds files and directories with the hidden attribute."
+msgstr "Procura os ficheiros e pastas com o atributo 'escondido'."
+
+#: optiondialog.cpp:1125
+msgid "Finds files and directories starting with '.'."
+msgstr "Procura os ficheiros e pastas que comecem por '.'."
+
+#: optiondialog.cpp:1129
+msgid "Follow file links"
+msgstr "Seguir as ligações de ficheiros"
+
+#: optiondialog.cpp:1132
+msgid ""
+"On: Compare the file the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+"Ligado: Compara o ficheiro para o qual a ligação aponta.\n"
+"Desligado: Compara as ligações."
+
+#: optiondialog.cpp:1137
+msgid "Follow directory links"
+msgstr "Seguir as ligações de pastas"
+
+#: optiondialog.cpp:1140
+msgid ""
+"On: Compare the directory the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+"Ligado: Compara a pastas para a qual a ligação aponta.\n"
+"Desligado: Compara as ligações."
+
+#: optiondialog.cpp:1156
+msgid "Case sensitive filename comparison"
+msgstr "Comparação de nomes de ficheiros com distinção de maiúsculas"
+
+#: optiondialog.cpp:1159
+msgid ""
+"The directory comparison will compare files or directories when their names "
+"match.\n"
+"Set this option if the case of the names must match. (Default for Windows is "
+"off, otherwise on.)"
+msgstr ""
+"A comparação de pastas irá comparar os ficheiros ou pastas quando os seus "
+"nomes corresponderem.\n"
+"Configure esta opção, no caso de os nomes terem mesmo de corresponder. (Por "
+"omissão, no Windows, está desligada; caso contrário, está ligada.)"
+
+#: optiondialog.cpp:1163
+msgid "File Comparison Mode"
+msgstr "Modo de Comparação de Ficheiros"
+
+#: optiondialog.cpp:1169
+msgid "Binary comparison"
+msgstr "Comparação binária"
+
+#: optiondialog.cpp:1170
+msgid "Binary comparison of each file. (Default)"
+msgstr "Comparação binária de cada ficheiro. (Por omissão)"
+
+#: optiondialog.cpp:1173
+msgid "Full analysis"
+msgstr "Análise completa"
+
+#: optiondialog.cpp:1174
+msgid ""
+"Do a full analysis and show statistics information in extra columns.\n"
+"(Slower than a binary comparison, much slower for binary files.)"
+msgstr ""
+"Fazer uma análise completa e mostrar informações estatísticas em colunas "
+"extra.\n"
+"(Mais lento que a comparação binária, muito mais lento para ficheiros "
+"binários.)"
+
+#: optiondialog.cpp:1178
+msgid "Trust the size and modification date (unsafe)"
+msgstr "Confiar no tamanho e data de modificação (inseguro)"
+
+#: optiondialog.cpp:1179
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"Files with equal contents but different modification dates will appear as "
+"different.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"Assumir que os ficheiros são iguais se a data de modificação e o tamanho do "
+"ficheiro são iguais.\n"
+"Os ficheiros com conteúdo igual mas datas de modificação diferentes irão "
+"aparecer como diferentes.\n"
+"Útil para as pastas grandes ou para redes lentas."
+
+#: optiondialog.cpp:1184
+msgid ""
+"Trust the size and date, but use binary comparison if date does not match "
+"(unsafe)"
+msgstr ""
+"Confiar na data e tamanho, mas usar uma comparação binária se a data não "
+"corresponder (inseguro)"
+
+#: optiondialog.cpp:1185
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"If the dates are not equal but the sizes are, use binary comparison.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"Assumir que os ficheiros são iguais se a data de modificação e o tamanho do "
+"ficheiro são iguais.\n"
+"Se a data não for igual, mas os tamanhos forem, usar uma comparação "
+"binária.\n"
+"Útil para as pastas grandes ou para redes lentas."
+
+#: optiondialog.cpp:1190
+msgid "Trust the size (unsafe)"
+msgstr "Confiar no tamanho (inseguro)"
+
+#: optiondialog.cpp:1191
+msgid ""
+"Assume that files are equal if their file lengths are equal.\n"
+"Useful for big directories or slow networks when the date is modified during "
+"download."
+msgstr ""
+"Assumir que os ficheiros são iguais se o seu tamanho é igual.\n"
+"Útil para as pastas grandes ou para redes lentas."
+
+#: optiondialog.cpp:1199
+msgid "Synchronize directories"
+msgstr "Sincronizar as pastas"
+
+#: optiondialog.cpp:1202
+msgid ""
+"Offers to store files in both directories so that\n"
+"both directories are the same afterwards.\n"
+"Works only when comparing two directories without specifying a destination."
+msgstr ""
+"Oferece-se para armazenar os ficheiros em ambas as pastas\n"
+"de modo a que ambas as pastas fiquem iguais no fim.\n"
+"Funciona apenas ao comparar duas pastas sem indicar um destino."
+
+#: optiondialog.cpp:1208
+msgid "White space differences considered equal"
+msgstr "Diferenças de espaço em branco consideradas iguais"
+
+#: optiondialog.cpp:1211
+msgid ""
+"If files differ only by white space consider them equal.\n"
+"This is only active when full analysis is chosen."
+msgstr ""
+"Se os ficheiros apenas diferem em espaço em branco considerá-los iguais.\n"
+"Isto está activo apenas quando é escolhida a análise completa."
+
+#: optiondialog.cpp:1217
+msgid "Copy newer instead of merging (unsafe)"
+msgstr "Copiar o mais recente em vez de juntar (inseguro)"
+
+#: optiondialog.cpp:1220
+msgid ""
+"Don't look inside, just take the newer file.\n"
+"(Use this only if you know what you are doing!)\n"
+"Only effective when comparing two directories."
+msgstr ""
+"Não analisa os ficheiros, selecciona apenas o ficheiro mais recente.\n"
+"(Use isto apenas se souber o que está a fazer!)\n"
+"Só faz efeito ao comparar duas pastas."
+
+#: optiondialog.cpp:1225
+msgid "Backup files (.orig)"
+msgstr "Salvaguarda dos ficheiros (.orig)"
+
+#: optiondialog.cpp:1228
+msgid ""
+"If a file would be saved over an old file, then the old file\n"
+"will be renamed with a '.orig' extension instead of being deleted."
+msgstr ""
+"Quando um ficheiro for gravado por cima de um anterior, então o ficheiro\n"
+"antigo será renomeado para uma extensão '.orig' em vez de ser removido."
+
+#: optiondialog.cpp:1301 optiondialog.cpp:1302
+msgid "Regional Settings"
+msgstr "Configuração Regional"
+
+#: optiondialog.cpp:1402
+msgid "Language (restart required)"
+msgstr "Língua (necessário reiniciar)"
+
+#: optiondialog.cpp:1445
+msgid ""
+"Choose the language of the GUI strings or \"Auto\".\n"
+"For a change of language to take place, quit and restart KDiff3."
+msgstr ""
+"Escolha a língua da interface gráfica ou \"Auto\".\n"
+"Para mudar de língua tem que reiniciar o KDiff3."
+
+#: optiondialog.cpp:1463
+msgid "Use the same encoding for everything:"
+msgstr "Utilizar a mesma codificação para tudo:"
+
+#: optiondialog.cpp:1466
+msgid ""
+"Enable this allows to change all encodings by changing the first only.\n"
+"Disable this if different individual settings are needed."
+msgstr ""
+"Active isto para permitir modificar todas as codificações alterando apenas a "
+"primeira.\n"
+"Torne inactivo se forem necessárias opções individuais."
+
+#: optiondialog.cpp:1471
+msgid "Note: Local Encoding is "
+msgstr "Nota: A codificação local é"
+
+#: optiondialog.cpp:1475
+msgid "File Encoding for A:"
+msgstr "Codificação do Ficheiro A:"
+
+#: optiondialog.cpp:1481
+msgid ""
+"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n"
+"If the file is not Unicode then the selected encoding will be used as "
+"fallback.\n"
+"(Unicode detection depends on the first bytes of a file.)"
+msgstr ""
+"Se estiver activo, então será detectada a codificação Unicode (UTF-16 ou "
+"UTF-8).\n"
+"Se a codificação do ficheiro não for detectada, então será usada a "
+"codificação seleccionada como alternativa.\n"
+"(A detecção de Unicode depende dos primeiros 'bytes' de um ficheiro.)"
+
+#: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503
+msgid "Auto Detect Unicode"
+msgstr "Auto-Detectar o Unicode"
+
+#: optiondialog.cpp:1490
+msgid "File Encoding for B:"
+msgstr "Codificação do Ficheiro B:"
+
+#: optiondialog.cpp:1499
+msgid "File Encoding for C:"
+msgstr "Codificação do Ficheiro C:"
+
+#: optiondialog.cpp:1508
+msgid "File Encoding for Merge Output and Saving:"
+msgstr "Codificação do Ficheiro para Junção de Resultado e Gravação:"
+
+#: optiondialog.cpp:1512
+msgid "Auto Select"
+msgstr "Selecção Automática"
+
+#: optiondialog.cpp:1515
+msgid ""
+"If enabled then the encoding from the input files is used.\n"
+"In ambiguous cases a dialog will ask the user to choose the encoding for "
+"saving."
+msgstr ""
+"Se estiver activada a opção, será usada a codificação dos ficheiros de "
+"entrada.\n"
+"Nos casos ambíguos, irá aparecer uma janela a perguntar ao utilizador qual a "
+"codificação com que deseja gravar."
+
+#: optiondialog.cpp:1519
+msgid "File Encoding for Preprocessor Files:"
+msgstr "Codificação do Ficheiro dos Ficheiros de Pré-processador:"
+
+#: optiondialog.cpp:1530
+msgid "Right To Left Language"
+msgstr "Língua da Direita para a Esquerda"
+
+#: optiondialog.cpp:1533
+msgid ""
+"Some languages are read from right to left.\n"
+"This setting will change the viewer and editor accordingly."
+msgstr ""
+"Algumas línguas são lidas da direita para esquerda.\n"
+"Esta opção muda o visualizador e editor de acordo com elas."
+
+#: optiondialog.cpp:1548
+msgid "Integration"
+msgstr "Integração"
+
+#: optiondialog.cpp:1549
+msgid "Integration Settings"
+msgstr "Configuração da Integração"
+
+#: optiondialog.cpp:1563
+msgid "Command line options to ignore:"
+msgstr "Opções da linha de comandos a ignorar:"
+
+#: optiondialog.cpp:1568
+msgid ""
+"List of command line options that should be ignored when KDiff3 is used by "
+"other tools.\n"
+"Several values can be specified if separated via ';'\n"
+"This will suppress the \"Unknown option\" error."
+msgstr ""
+"Uma lista das opções da linha de comandos que deverão ser ignoradas, quando "
+"o KDiff3 for usado por outras ferramentas.\n"
+"Se desejar indicar vários valores, separe-os por ';'\n"
+"Isto irá eliminar o erro de \"Opção desconhecida\"."
+
+#: optiondialog.cpp:1575
+msgid "Quit also via Escape key"
+msgstr "Sair também com a tecla Escape"
+
+#: optiondialog.cpp:1578
+msgid ""
+"Fast method to exit.\n"
+"For those who are used to using the Escape key."
+msgstr ""
+"Um método rápido para sair.\n"
+"Para os que estão habituados a usar a tecla Escape."
+
+#: optiondialog.cpp:1583
+msgid "Integrate with ClearCase"
+msgstr "Integrar com o ClearCase"
+
+#: optiondialog.cpp:1586
+msgid ""
+"Integrate with Rational ClearCase from IBM.\n"
+"Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n"
+"(Only enabled when ClearCase \"bin\" directory is in the path.)"
+msgstr ""
+"Integra com o Rational ClearCase da IBM.\n"
+"Modifica o ficheiro \"map\" na sub-pasta do ClearCase \"lib/mgrs\"\n"
+"(Só está activo quando a pasta \"bin\" do ClearCase está na PATH.)"
+
+#: optiondialog.cpp:1592
+msgid "Remove ClearCase Integration"
+msgstr "Remover a Integração com o ClearCase"
+
+#: optiondialog.cpp:1595
+msgid ""
+"Restore the old \"map\" file from before doing the ClearCase integration."
+msgstr ""
+"Repõe o antigo ficheiro \"map\" antes de fazer a integração com o ClearCase."
+
+#: optiondialog.cpp:1680
+msgid "Incompatible Font"
+msgstr "Tipo de Letra Incompatível"
+
+#: optiondialog.cpp:1681
+msgid "Continue at Own Risk"
+msgstr "Continuar à Mesma"
+
+#: optiondialog.cpp:1682
+msgid "Select Another Font"
+msgstr "Seleccionar Outro Tipo de Letra"
+
+#: optiondialog.cpp:1717
+msgid "This resets all options. Not only those of the current topic."
+msgstr "Isto repõe todas as opções, não só as do tópico actual."
+
+#: pdiff.cpp:260
+msgid "PreprocessorCmd: "
+msgstr "Comando do pré-processador: "
+
+#: pdiff.cpp:265
+msgid "The following option(s) you selected might change data:\n"
+msgstr "As seguintes opções que seleccionou podem alterar os dados:\n"
+
+#: pdiff.cpp:266
+msgid ""
+"\n"
+"Most likely this is not wanted during a merge.\n"
+"Do you want to disable these settings or continue with these settings active?"
+msgstr ""
+"\n"
+"\n"
+"Muito provavelmente isto não é desejável durante uma junção.\n"
+"Quer desactivar estas configurações ou continuar com elas activas?"
+
+#: pdiff.cpp:268
+msgid "Option Unsafe for Merging"
+msgstr "Opção Insegura para Junção"
+
+#: pdiff.cpp:269
+msgid "Use These Options During Merge"
+msgstr "Usar Estas Opções Durante a Junção"
+
+#: pdiff.cpp:270
+msgid "Disable Unsafe Options"
+msgstr "Desactivar Opções Inseguras"
+
+#: pdiff.cpp:300
+msgid "Loading A"
+msgstr "A Carregar o A"
+
+#: pdiff.cpp:304
+msgid "Loading B"
+msgstr "A Carregar o B"
+
+#: pdiff.cpp:321 pdiff.cpp:347
+msgid "Diff: A <-> B"
+msgstr "Diferenças: A <-> B"
+
+#: pdiff.cpp:327 pdiff.cpp:372
+msgid "Linediff: A <-> B"
+msgstr "Dif. Linhas: A <-> B"
+
+#: pdiff.cpp:338
+msgid "Loading C"
+msgstr "A Carregar o C"
+
+#: pdiff.cpp:350
+msgid "Diff: B <-> C"
+msgstr "Diferenças: B <-> C"
+
+#: pdiff.cpp:353
+msgid "Diff: A <-> C"
+msgstr "Diferenças: A <-> C"
+
+#: pdiff.cpp:375
+msgid "Linediff: B <-> C"
+msgstr "Dif. Linhas: B <-> C"
+
+#: pdiff.cpp:378
+msgid "Linediff: A <-> C"
+msgstr "Dif. Linhas: A <-> C"
+
+#: pdiff.cpp:534
+msgid "All input files contain the same text, but are not binary equal."
+msgstr ""
+"Todos os ficheiros de entrada contêm o mesmo texto, mas não são iguais a "
+"nível binário."
+
+#: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541
+#, kde-format
+msgid "Files %1 and %2 have equal text, but are not binary equal. \n"
+msgstr ""
+"Os ficheiros %1 e %2 têm texto igual, mas não são iguais a nível binário.\n"
+
+#: pdiff.cpp:551
+msgid ""
+"Some inputfiles don't seem to be pure textfiles.\n"
+"Note that the KDiff3-merge was not meant for binary data.\n"
+"Continue at your own risk."
+msgstr ""
+"Alguns dos ficheiros de entrada não parecem ser ficheiros de texto puros.\n"
+"Lembre-se que a junção do KDiff3 não foi pensada para os dados binários.\n"
+"Continue por sua conta e risco."
+
+#: pdiff.cpp:566
+#, kde-format
+msgid ""
+"Some input characters could not be converted to valid unicode.\n"
+"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n"
+"Don't save the result if unsure. Continue at your own risk.\n"
+"Affected input files are in %1."
+msgstr ""
+"Alguns caracteres de entrada não puderam ser convertidos para Unicode "
+"válido.\n"
+"Poderá estar a usar o codificador errado (p.ex. UTF-8 para ficheiros não-"
+"UTF-8).\n"
+"Não grave o resultado se não tiver a certeza. Prossiga por sua conta e "
+"risco.\n"
+"Os ficheiros de entrada afectados estão em %1."
+
+#: pdiff.cpp:1080
+msgid "Abort"
+msgstr "Interromper"
+
+#: pdiff.cpp:1087 pdiff.cpp:1175
+msgid "Opening files..."
+msgstr "A aceder aos ficheiros..."
+
+#: pdiff.cpp:1152 pdiff.cpp:1223
+msgid "File open error"
+msgstr "Erro ao abrir o ficheiro"
+
+#: pdiff.cpp:1255
+msgid "Cutting selection..."
+msgstr "A cortar a selecção..."
+
+#: pdiff.cpp:1276
+msgid "Copying selection to clipboard..."
+msgstr "A copiar a selecção para a área de transferência..."
+
+#: pdiff.cpp:1292
+msgid "Inserting clipboard contents..."
+msgstr "A inserir o conteúdo da área de transferência..."
+
+#: pdiff.cpp:1814
+msgid "Save && Continue"
+msgstr "Gravar e Continuar"
+
+#: pdiff.cpp:1815
+msgid "Continue Without Saving"
+msgstr "Continuar sem Gravar"
+
+#: pdiff.cpp:2018
+msgid "Search complete."
+msgstr "Procura terminada."
+
+#: pdiff.cpp:2018
+msgid "Search Complete"
+msgstr "Procura Terminada"
+
+#: pdiff.cpp:2252
+msgid "Nothing is selected in either diff input window."
+msgstr ""
+"Não está nada seleccionado em nenhuma janela de entrada das diferenças."
+
+#: pdiff.cpp:2252
+msgid "Error while adding manual diff range"
+msgstr "Erro ao adicionar o intervalo manual de diferenças"
+
+#: kdiff3_shell.cpp:76
+msgid ""
+"Could not initialize the KDiff3 part.\n"
+"This usually happens due to an installation problem. Please read the README-"
+"file in the source package for details."
+msgstr ""
+"Não foi possível obter a componente do KDiff3.\n"
+"Isto acontece normalmente devido a um problema de instalação. Leia por favor "
+"o ficheiro README no pacote de código para mais detalhes."
+
+#: rc.cpp:1
+msgctxt "NAME OF TRANSLATORS"
+msgid "Your names"
+msgstr "José Nuno Pires"
+
+#: rc.cpp:2
+msgctxt "EMAIL OF TRANSLATORS"
+msgid "Your emails"
+msgstr "zepires@gmail.com"
+
+#. i18n: file: kdiff3_part.rc:4
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:5
+msgid "&KDiff3"
+msgstr "&KDiff3"
+
+#. i18n: file: kdiff3_part.rc:13
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:8
+msgid "Configure KDiff3"
+msgstr "Configurar o KDiff3"
+
+#. i18n: file: kdiff3_part.rc:16
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:11
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#. i18n: file: kdiff3_shell.rc:106
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:38
+msgid "Main Toolbar"
+msgstr "Barra Principal"
diff --git a/po/pt/kdiff3fileitemactionplugin.po b/po/pt/kdiff3fileitemactionplugin.po
new file mode 100644 (file)
index 0000000..dd053fc
--- /dev/null
@@ -0,0 +1,94 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3fileitemactionplugin\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-05-06 10:29+0100\n"
+"Last-Translator: José Nuno Coelho Pires <zepires@gmail.com>\n"
+"Language-Team: Portuguese <kde-i18n-pt@kde.org>\n"
+"Language: pt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-POFile-SpellExtra: Eibl Joachim KDiff\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: kdiff3fileitemaction.cpp:94
+msgid "KDiff3 ..."
+msgstr "KDiff3 ..."
+
+#: kdiff3fileitemaction.cpp:125
+#, kde-format
+msgid "Compare with %1"
+msgstr "Comparar com %1"
+
+#: kdiff3fileitemaction.cpp:131
+#, kde-format
+msgid "Merge with %1"
+msgstr "Reunir com %1"
+
+#: kdiff3fileitemaction.cpp:137
+#, kde-format
+msgid "Save '%1' for later"
+msgstr "Gravar '%1' para a posteridade"
+
+#: kdiff3fileitemaction.cpp:143
+msgid "3-way merge with base"
+msgstr "Reunião a 3-níveis com a base"
+
+#: kdiff3fileitemaction.cpp:150
+msgid "Compare with ..."
+msgstr "Comparar com ..."
+
+#: kdiff3fileitemaction.cpp:162
+msgid "Clear list"
+msgstr "Limpar a lista"
+
+#: kdiff3fileitemaction.cpp:170
+msgid "Compare"
+msgstr "Comparar"
+
+#: kdiff3fileitemaction.cpp:176
+msgid "3 way comparison"
+msgstr "Comparação a 3 níveis"
+
+#: kdiff3fileitemaction.cpp:180
+msgid "About KDiff3 menu plugin ..."
+msgstr "Acerca do 'plugin' de menu do KDiff3 ..."
+
+#: kdiff3fileitemaction.cpp:284
+msgid ""
+"KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+"'Plugin' de Acção sobre Itens de Ficheiros: Copyright (C) 2011 Joachim Eibl\n"
+"Página Web do KDiff3: http://kdiff3.sourceforge.net\n"
+"\n"
+
+#: kdiff3fileitemaction.cpp:286
+msgid ""
+"Using the contextmenu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else \"Save\" the first file for later. It "
+"will appear in the \"Compare With ...\" submenu. Then use \"Compare With\" "
+"on second file.\n"
+"For a 3-way merge first \"Save\" the base file, then the branch to merge and "
+"choose \"3-way merge with base\" on the other branch which will be used as "
+"destination.\n"
+"Same also applies to directory comparison and merge."
+msgstr ""
+"Usar a extensão do menu de contexto:\n"
+"Para uma comparação simples entre dois ficheiros seleccionados, escolha "
+"\"Comparar\".\n"
+"Se o outro ficheiro estiver noutro lado qualquer, pode \"Gravar\" o primeiro "
+"ficheiro para a posteridade. Irá depois aparecer no submenu \"Comparar "
+"Com ...\". Depois use o \"Comparar Com\" no segundo ficheiro.\n"
+"Para uma junção a 3-níveis, pode \"Gravar\" o ficheiro de base, depois a "
+"ramificação a reunir e escolher \"Reunião 3-níveis com a base\" na outra "
+"ramificação que será usada como destino.\n"
+"O mesmo também se aplica à comparação e junção de pastas."
+
+#: kdiff3fileitemaction.cpp:294
+msgid "About KDiff3 File Item Action Plugin"
+msgstr "Acerca do 'Plugin' de Acção sobre Itens de Ficheiros do KDiff3"
diff --git a/po/pt/kdiff3plugin.po b/po/pt/kdiff3plugin.po
new file mode 100644 (file)
index 0000000..d4a980f
--- /dev/null
@@ -0,0 +1,100 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR This_file_is_part_of_KDE
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3plugin\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-05-02 09:08+0100\n"
+"Last-Translator: José Nuno Coelho Pires <zepires@gmail.com>\n"
+"Language-Team: Portuguese <kde-i18n-pt@kde.org>\n"
+"Language: pt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-POFile-SpellExtra: Eibl Joachim KDiff\n"
+
+#: kdiff3plugin.cpp:107
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#: kdiff3plugin.cpp:114
+#, kde-format
+msgid "Compare with %1"
+msgstr "Comparar com %1"
+
+#: kdiff3plugin.cpp:120
+#, kde-format
+msgid "Merge with %1"
+msgstr "Reunir com %1"
+
+#: kdiff3plugin.cpp:126
+#, kde-format
+msgid "Save '%1' for later"
+msgstr "Gravar '%1' para a posteridade"
+
+#: kdiff3plugin.cpp:132
+msgid "3-way merge with base"
+msgstr "Reunião a 3-níveis com a base"
+
+#: kdiff3plugin.cpp:139
+msgid "Compare with ..."
+msgstr "Comparar com ..."
+
+#: kdiff3plugin.cpp:149
+msgid "Clear list"
+msgstr "Limpar a lista"
+
+#: kdiff3plugin.cpp:157
+msgid "Compare"
+msgstr "Comparar"
+
+#: kdiff3plugin.cpp:163
+msgid "3 way comparison"
+msgstr "Comparação a 3 níveis"
+
+#: kdiff3plugin.cpp:167
+msgid "About KDiff3 menu plugin ..."
+msgstr "Acerca do 'plugin' de menu do KDiff3 ..."
+
+#: kdiff3plugin.cpp:269
+msgid ""
+"KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+"'Plugin' de Menu do KDiff3: Copyright (C) 2008 Joachim Eibl\n"
+"Página Web do KDiff3: http://kdiff3.sourceforge.net\n"
+"\n"
+
+#: kdiff3plugin.cpp:271
+msgid ""
+"Using the context menu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else, \"Save\" the first file for later, and "
+"it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With"
+"\" on the second file.\n"
+"For a 3-way merge first, \"Save\" the base file, then the branch to merge, "
+"and then \"3-way merge with base\" on the other branch which will be used as "
+"the destination.\n"
+"The same also applies to directory comparison and merge."
+msgstr ""
+"Para usar a extensão do menu de contexto:\n"
+"Para uma comparação simples de dois ficheiros seleccionados, escolha a opção "
+"\"Comparar\".\n"
+"Se o outro ficheiro estiver noutro local qualquer, pode \"Gravar\" o "
+"primeiro ficheiro posteriormente, para que depois apareça no submenu "
+"\"Comparar Com ...\". Aí, poderá usar a opção \"Comparar Com\" no segundo "
+"ficheiro.\n"
+"Para uma reunião a 3 níveis, primeiro pode \"Gravar\" o ficheiro de base, "
+"depois a ramificação a reunir e depois escolha a opção \"junção a 3 níveis "
+"com a base\" sobre a ramificação que servirá de destino.\n"
+"O mesmo se aplica à comparação e reunião de pastas."
+
+#: kdiff3plugin.cpp:279
+msgid "About KDiff3 Menu Plugin"
+msgstr "Acerca do 'Plugin' de Menu do KDiff3"
diff --git a/po/pt_BR/CMakeLists.txt b/po/pt_BR/CMakeLists.txt
new file mode 100644 (file)
index 0000000..9614c12
--- /dev/null
@@ -0,0 +1,2 @@
+file(GLOB _po_files *.po)
+GETTEXT_PROCESS_PO_FILES(pt_BR ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
diff --git a/po/pt_BR/kdiff3.po b/po/pt_BR/kdiff3.po
new file mode 100644 (file)
index 0000000..e69702a
--- /dev/null
@@ -0,0 +1,3228 @@
+# tradução do kdiff3.po para Brazilian Portuguese
+# Copyright (C) 2003, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+#
+# Paulo Henrique Alkmin da Costa <phalkmin@yahoo.com.br>, 2003.
+# Lisiane Sztoltz <lisiane@conectiva.com.br>, 2003.
+# Lisiane Sztoltz Teixeira <lisiane@conectiva.com.br>, 2004.
+# Diniz Fernando Bortolotto Ferreira <diniz.bortolotto@gmail.com>, 2006.
+# Diniz Bortolotto <diniz.bortolotto@gmail.com>, 2006, 2007, 2008.
+# André Marcelo Alvarenga <andrealvarenga@gmx.net>, 2008, 2009, 2010, 2011.
+# Luiz Fernando Ranghetti <elchevive@opensuse.org>, 2009.
+# Marcus Gama <marcus.gama@gmail.com>, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-07-18 20:18-0300\n"
+"Last-Translator: André Marcelo Alvarenga <andrealvarenga@gmx.net>\n"
+"Language-Team: Brazilian Portuguese <kde-i18n-pt_br@kde.org>\n"
+"Language: pt_BR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.0\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#: kreplacements/kreplacements.h:105
+msgid "Continue"
+msgstr "Continuar"
+
+#: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158
+#: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512
+msgid "Cancel"
+msgstr "Cancelar"
+
+#: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631
+msgid "Quit"
+msgstr "Sair"
+
+#: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339
+msgid "Ok"
+msgstr "OK"
+
+#: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715
+msgid "Help"
+msgstr "Ajuda"
+
+#: kreplacements/kreplacements.cpp:185
+msgid "Defaults"
+msgstr "Padrões"
+
+#. i18n: file: kdiff3_shell.rc:4
+#. i18n: ectx: Menu (file)
+#: kreplacements/kreplacements.cpp:296 rc.cpp:14
+msgid "&File"
+msgstr "&Arquivo"
+
+#: kreplacements/kreplacements.cpp:297
+msgid "&Edit"
+msgstr "&Editar"
+
+#. i18n: file: kdiff3_shell.rc:7
+#. i18n: ectx: Menu (directory)
+#: kreplacements/kreplacements.cpp:298 rc.cpp:17
+msgid "&Directory"
+msgstr "&Diretório"
+
+#. i18n: file: kdiff3_shell.rc:50
+#. i18n: ectx: Menu (movement)
+#: kreplacements/kreplacements.cpp:301 rc.cpp:26
+msgid "&Movement"
+msgstr "&Movimento"
+
+#. i18n: file: kdiff3_shell.rc:61
+#. i18n: ectx: Menu (diff)
+#: kreplacements/kreplacements.cpp:302 rc.cpp:29
+msgid "D&iffview"
+msgstr "Visão das D&iferenças"
+
+#. i18n: file: kdiff3_shell.rc:73
+#. i18n: ectx: Menu (merge)
+#: kreplacements/kreplacements.cpp:303 rc.cpp:32
+msgid "&Merge"
+msgstr "&Mesclar"
+
+#. i18n: file: kdiff3_shell.rc:95
+#. i18n: ectx: Menu (window)
+#: kreplacements/kreplacements.cpp:304 rc.cpp:35
+msgid "&Window"
+msgstr "&Janela"
+
+#: kreplacements/kreplacements.cpp:305
+msgid "&Settings"
+msgstr "&Configurações"
+
+#: kreplacements/kreplacements.cpp:306
+msgid "&Help"
+msgstr "Aj&uda"
+
+#: kreplacements/kreplacements.cpp:353
+msgid "&About"
+msgstr "&Sobre"
+
+#: kreplacements/kreplacements.cpp:369
+msgid "A&uthor"
+msgstr "A&utor"
+
+#: kreplacements/kreplacements.cpp:383
+msgid "&Thanks To"
+msgstr "Agradecimen&tos"
+
+#. i18n: file: kdiff3_shell.rc:30
+#. i18n: ectx: Menu (dir_current_merge_menu)
+#: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497
+#: rc.cpp:20
+msgid "Current Item Merge Operation"
+msgstr "Operação de Mesclagem do Item Atual"
+
+#. i18n: file: kdiff3_shell.rc:38
+#. i18n: ectx: Menu (dir_current_sync_menu)
+#: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498
+#: rc.cpp:23
+msgid "Current Item Sync Operation"
+msgstr "Operação de Sincronismo do Item Atual"
+
+#: kreplacements/kreplacements.cpp:597
+msgid "Open"
+msgstr "Abrir"
+
+#: kreplacements/kreplacements.cpp:606
+msgid "Save"
+msgstr "Salvar"
+
+#: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720
+msgid "Save As..."
+msgstr "Salvar Como..."
+
+#: kreplacements/kreplacements.cpp:623
+msgid "Print..."
+msgstr "Imprimir..."
+
+#: kreplacements/kreplacements.cpp:639
+msgid "Cut"
+msgstr "Recortar"
+
+#: kreplacements/kreplacements.cpp:647
+msgid "Copy"
+msgstr "Copiar"
+
+#: kreplacements/kreplacements.cpp:655
+msgid "Paste"
+msgstr "Colar"
+
+#: kreplacements/kreplacements.cpp:663
+msgid "Select All"
+msgstr "Selecionar Tudo"
+
+#: kreplacements/kreplacements.cpp:671
+msgid "Show Toolbar"
+msgstr "Mostrar a Barra de Ferramentas"
+
+#: kreplacements/kreplacements.cpp:679
+msgid "Show &Status Bar"
+msgstr "Mostrar barra de &status"
+
+#: kreplacements/kreplacements.cpp:687
+#, kde-format
+msgid "&Configure %1..."
+msgstr "&Configurar %1..."
+
+#: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707
+msgid "About"
+msgstr "Sobre"
+
+#: kreplacements/kreplacements.cpp:722
+msgid "Find"
+msgstr "Procurar"
+
+#: kreplacements/kreplacements.cpp:730
+msgid "Find Next"
+msgstr "Procurar o Seguinte"
+
+#: kreplacements/kreplacements.cpp:750
+msgid "Select Font"
+msgstr "Selecione a Fonte"
+
+#: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676
+msgid ""
+"You selected a variable width font.\n"
+"\n"
+"Because this program doesn't handle variable width fonts\n"
+"correctly, you might experience problems while editing.\n"
+"\n"
+"Do you want to continue or do you want to select another font."
+msgstr ""
+"Você selecionou um tamanho de letra variável.\n"
+"\n"
+"Porque este programa não lida corretamente com tipos de letra\n"
+"de largura variável, você poderá ter problemas ao editar.\n"
+"\n"
+"Deseja continuar ou prefere selecionar outro tipo de letra."
+
+#: kreplacements/kreplacements.cpp:792
+msgid "Incompatible font."
+msgstr "Fonte incompatível."
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Continue at my own risk"
+msgstr "Continuar por minha conta e risco"
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Select another font"
+msgstr "Selecionar outra fonte"
+
+#: kreplacements/kreplacements.cpp:1134
+msgid "For more documentation, see the help-menu or the subdirectory doc."
+msgstr "Para mais documentação, veja o menu de ajuda ou o subdiretório doc."
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "KDiff3-Usage"
+msgstr "Utilização do KDiff3"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Ignore"
+msgstr "Ignorar"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Exit"
+msgstr "Sair"
+
+#: diff.cpp:251
+msgid "Writing clipboard data to temp file failed."
+msgstr ""
+"A gravação de dados da área de transferência para o arquivo temporário "
+"falhou."
+
+#: diff.cpp:255
+msgid "From Clipboard"
+msgstr "Da Área de Transferência"
+
+#: diff.cpp:471
+msgid "Expecting space after closing quotation mark."
+msgstr "Um espaço era esperado após as aspas de fecho."
+
+#: diff.cpp:474
+msgid "Not matching quotation marks."
+msgstr "Existem aspas sem correspondência."
+
+#: diff.cpp:496
+msgid "Unexpected quotation mark within argument."
+msgstr "Aspas inesperadas detectadas dentro do argumento."
+
+#: diff.cpp:503
+msgid "No program specified."
+msgstr "Não foi indicado nenhum programa."
+
+#: diff.cpp:605
+#, kde-format
+msgid ""
+"Preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The preprocessing command will be disabled now."
+msgstr ""
+"O pré-processamento possivelmente falhou. Verifique este comando:\n"
+"\n"
+"  %1\n"
+"\n"
+"O comando de pré-processamento vai ser desativado."
+
+#: diff.cpp:653
+#, kde-format
+msgid ""
+"The line-matching-preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The line-matching-preprocessing command will be disabled now."
+msgstr ""
+"O pré-processamento com procura de linhas possivelmente falhou. Verifique "
+"este comando:\n"
+"\n"
+"  %1\n"
+"\n"
+"O comando de pré-processamento com procura de linhas vai ser desativado."
+
+#: diff.cpp:1776 diff.cpp:1790
+msgid ""
+"Data loss error:\n"
+"If it is reproducible please contact the author.\n"
+msgstr ""
+"Erro de perda de dados:\n"
+"Se for reproduzível, por favor, contate o autor.\n"
+
+#: diff.cpp:1778 diff.cpp:1792
+msgid "Severe Internal Error"
+msgstr "Erro Interno Grave"
+
+#: directorymergewindow.cpp:136
+msgid "Mix of links and normal files."
+msgstr "Mistura de links e arquivos normais."
+
+#: directorymergewindow.cpp:143
+msgid "Link: "
+msgstr "Link: "
+
+#: directorymergewindow.cpp:151
+msgid "Size. "
+msgstr "Tamanho. "
+
+#: directorymergewindow.cpp:164 directorymergewindow.cpp:174
+msgid "Date & Size: "
+msgstr "Data e Tamanho: "
+
+#: directorymergewindow.cpp:184 directorymergewindow.cpp:190
+#, kde-format
+msgid "Creating temp copy of %1 failed."
+msgstr "A criação da cópia temporária de %1 falhou."
+
+#: directorymergewindow.cpp:201 directorymergewindow.cpp:209
+#, kde-format
+msgid "Opening %1 failed."
+msgstr "O acesso a %1 falhou."
+
+#: directorymergewindow.cpp:213
+msgid "Comparing file..."
+msgstr "Comparando arquivo..."
+
+#: directorymergewindow.cpp:223 directorymergewindow.cpp:229
+#, kde-format
+msgid "Error reading from %1"
+msgstr "Erro ao ler de %1"
+
+#: directorymergewindow.cpp:358
+msgid "Name"
+msgstr "Nome"
+
+#: directorymergewindow.cpp:358
+msgid "Operation"
+msgstr "Operação"
+
+#: directorymergewindow.cpp:358
+msgid "Status"
+msgstr "Status"
+
+#: directorymergewindow.cpp:359
+msgid "Unsolved"
+msgstr "Não resolvido"
+
+#: directorymergewindow.cpp:359
+msgid "Solved"
+msgstr "Resolvido"
+
+#: directorymergewindow.cpp:359
+msgid "Nonwhite"
+msgstr "Não vazio"
+
+#: directorymergewindow.cpp:359
+msgid "White"
+msgstr "Branco"
+
+#: directorymergewindow.cpp:388
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort "
+"the merge and rescan the directory?"
+msgstr ""
+"Você está neste momento fazendo uma mesclagem de diretórios. Tem certeza que "
+"deseja interromper a mesclagem e analisar o diretório de novo?"
+
+#: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655
+#: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823
+msgid "Warning"
+msgstr "Aviso"
+
+#: directorymergewindow.cpp:390 directorymergewindow.cpp:2965
+msgid "Rescan"
+msgstr "Pesquisar de Novo"
+
+#: directorymergewindow.cpp:391 pdiff.cpp:1081
+msgid "Continue Merging"
+msgstr "Continuar Mesclando"
+
+#: directorymergewindow.cpp:548
+msgid "Opening of directories failed:"
+msgstr "Abertura de diretórios falhou:"
+
+#: directorymergewindow.cpp:551
+#, kde-format
+msgid "Dir A \"%1\" does not exist or is not a directory.\n"
+msgstr "Dir A \"%1\" não existe ou não é um diretório.\n"
+
+#: directorymergewindow.cpp:554
+#, kde-format
+msgid "Dir B \"%1\" does not exist or is not a directory.\n"
+msgstr "Dir B \"%1\" não existe ou não é um diretório.\n"
+
+#: directorymergewindow.cpp:557
+#, kde-format
+msgid "Dir C \"%1\" does not exist or is not a directory.\n"
+msgstr "Dir C \"%1\" não existe ou não é um diretório.\n"
+
+#: directorymergewindow.cpp:559
+msgid "Directory Open Error"
+msgstr "Erro na abertura do Diretório"
+
+#: directorymergewindow.cpp:567
+msgid ""
+"The destination directory must not be the same as A or B when three "
+"directories are merged.\n"
+"Check again before continuing."
+msgstr ""
+"O diretório de destino não pode ser o mesmo que A ou B quando são mesclados "
+"três diretórios.\n"
+"Verifique de novo antes de continuar."
+
+#: directorymergewindow.cpp:569
+msgid "Parameter Warning"
+msgstr "Aviso de Parâmetro"
+
+#: directorymergewindow.cpp:574
+msgid "Scanning directories..."
+msgstr "Pesquisando diretórios..."
+
+#: directorymergewindow.cpp:607
+msgid "Reading Directory A"
+msgstr "Lendo Diretório A"
+
+#: directorymergewindow.cpp:629
+msgid "Reading Directory B"
+msgstr "Lendo Diretório B"
+
+#: directorymergewindow.cpp:651
+msgid "Reading Directory C"
+msgstr "Lendo Diretório C"
+
+#: directorymergewindow.cpp:677
+msgid "Some subdirectories were not readable in"
+msgstr "Alguns sub-diretórios não eram legíveis"
+
+#: directorymergewindow.cpp:682
+msgid "Check the permissions of the subdirectories."
+msgstr "Verifique as permissões dos sub-diretórios."
+
+#: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737
+#: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233
+#: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328
+msgid "Ready."
+msgstr "Pronto."
+
+#: directorymergewindow.cpp:735
+msgid "Directory Comparison Status"
+msgstr "Status da Comparação de Diretório"
+
+#: directorymergewindow.cpp:736
+msgid "Number of subdirectories:"
+msgstr "Número de sub-diretórios:"
+
+#: directorymergewindow.cpp:737
+msgid "Number of equal files:"
+msgstr "Número de arquivos iguais:"
+
+#: directorymergewindow.cpp:738
+msgid "Number of different files:"
+msgstr "Número de arquivos diferentes:"
+
+#: directorymergewindow.cpp:741
+msgid "Number of manual merges:"
+msgstr "Número de mesclagens manuais:"
+
+#: directorymergewindow.cpp:912
+msgid "This affects all merge operations."
+msgstr "Isto afeta todas as operações de mesclagem."
+
+#: directorymergewindow.cpp:913
+msgid "Changing All Merge Operations"
+msgstr "Mudando Todas as Operações de Mesclagem"
+
+#: directorymergewindow.cpp:1312
+msgid "Processing "
+msgstr "Processando "
+
+#: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742
+msgid "To do."
+msgstr "Fazer."
+
+#: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996
+msgid "Copy A to B"
+msgstr "Copiar A para B"
+
+#: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997
+msgid "Copy B to A"
+msgstr "Copiar B para A"
+
+#: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998
+msgid "Delete A"
+msgstr "Apagar A"
+
+#: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999
+msgid "Delete B"
+msgstr "Apagar B"
+
+#: directorymergewindow.cpp:1814
+msgid "Delete A & B"
+msgstr "Apagar A e B"
+
+#: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001
+msgid "Merge to A"
+msgstr "Mesclar com A"
+
+#: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002
+msgid "Merge to B"
+msgstr "Mesclar com B"
+
+#: directorymergewindow.cpp:1817
+msgid "Merge to A & B"
+msgstr "Mesclar com A e B"
+
+#: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993
+msgid "Delete (if exists)"
+msgstr "Apagar (se existir)"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+#: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869
+msgid "Merge"
+msgstr "Mesclar"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+msgid "Merge (manual)"
+msgstr "Mesclar (manual)"
+
+#: directorymergewindow.cpp:1824
+msgid "Error: Conflicting File Types"
+msgstr "Erro: Tipos de Arquivos em Conflito"
+
+#: directorymergewindow.cpp:1825
+msgid "Error: Changed and Deleted"
+msgstr "Erro: alterado e removido"
+
+#: directorymergewindow.cpp:1826
+msgid "Error: Dates are equal but files are not."
+msgstr "Erro: As datas são iguais mas os arquivos não."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906
+msgid "This operation is currently not possible."
+msgstr "Esta operação não é possível no momento."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174
+msgid "Operation Not Possible"
+msgstr "Operação Não Possível"
+
+#: directorymergewindow.cpp:1945
+msgid ""
+"This should never happen: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"If you know how to reproduce this, please contact the program author."
+msgstr ""
+"Isto nunca deve acontecer:\n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"Se souber como reproduzir isto, contate por favor o autor do programa."
+
+#: directorymergewindow.cpp:1945
+msgid "Program Error"
+msgstr "Erro no Programa"
+
+#: directorymergewindow.cpp:1956
+msgid "An error occurred while copying.\n"
+msgstr "Ocorreu um erro ao copiar.\n"
+
+#: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025
+#: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105
+#: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123
+#: directorymergewindow.cpp:2374
+msgid "Error"
+msgstr "Erro"
+
+#: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375
+msgid "Merge Error"
+msgstr "Erro na mesclagem"
+
+#: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380
+msgid "Error."
+msgstr "Erro."
+
+#: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272
+#: directorymergewindow.cpp:2312
+msgid "Done."
+msgstr "Concluído."
+
+#: directorymergewindow.cpp:1990
+msgid "Not saved."
+msgstr "Não salvo."
+
+#: directorymergewindow.cpp:2025
+msgid "Unknown merge operation. (This must never happen!)"
+msgstr "Operação de mesclagem desconhecida. (Isto nunca deve acontecer!)"
+
+#: directorymergewindow.cpp:2057
+msgid "Unknown merge operation."
+msgstr "Operação de mesclagem desconhecida."
+
+#: directorymergewindow.cpp:2072
+msgid ""
+"The merge is about to begin.\n"
+"\n"
+"Choose \"Do it\" if you have read the instructions and know what you are "
+"doing.\n"
+"Choosing \"Simulate it\" will tell you what would happen.\n"
+"\n"
+"Be aware that this program still has beta status and there is NO WARRANTY "
+"whatsoever! Make backups of your vital data!"
+msgstr ""
+"A mesclagem está para começar.\n"
+"\n"
+"Escolha \"Faça\" se você leu as instruções e sabe o que está fazendo.\n"
+"Escolhendo \"Simular\" você verá o que irá acontecer.\n"
+"\n"
+" Saiba que esse programa ainda está em fase beta, e NÃO HÁ GARANTIA alguma! "
+"Faça backups dos seus dados!"
+
+#: directorymergewindow.cpp:2077
+msgid "Starting Merge"
+msgstr "Iniciando Mesclagem"
+
+#: directorymergewindow.cpp:2078
+msgid "Do It"
+msgstr "Faça"
+
+#: directorymergewindow.cpp:2079
+msgid "Simulate It"
+msgstr "Simular"
+
+#: directorymergewindow.cpp:2105
+msgid ""
+"The highlighted item has a different type in the different directories. "
+"Select what to do."
+msgstr ""
+"O item selecionado tem um tipo diferente nos diferentes diretórios. "
+"Selecione o que fazer."
+
+#: directorymergewindow.cpp:2114
+msgid ""
+"The modification dates of the file are equal but the files are not. Select "
+"what to do."
+msgstr ""
+"As datas de modificação do arquivo são iguais mas os arquivos não são. "
+"Selecione o que fazer."
+
+#: directorymergewindow.cpp:2123
+msgid ""
+"The highlighted item was changed in one directory and deleted in the other. "
+"Select what to do."
+msgstr ""
+"O item selecionado foi alterado em um diretório e removido em outro. "
+"Selecione o que fazer."
+
+#: directorymergewindow.cpp:2174
+msgid ""
+"This operation is currently not possible because directory merge is "
+"currently running."
+msgstr ""
+"Esta operação não é possível no momento porque uma mesclagem de diretório "
+"está em execução."
+
+#: directorymergewindow.cpp:2234
+msgid ""
+"There was an error in the last step.\n"
+"Do you want to continue with the item that caused the error or do you want "
+"to skip this item?"
+msgstr ""
+"Houve um erro no último passo.\n"
+"Você quer continuar com o item que causou o erro ou prefere pular esse item?"
+
+#: directorymergewindow.cpp:2236
+msgid "Continue merge after an error"
+msgstr "Continuar mesclagem após um erro"
+
+#: directorymergewindow.cpp:2237
+msgid "Continue With Last Item"
+msgstr "Continuar com o Último Item"
+
+#: directorymergewindow.cpp:2238
+msgid "Skip Item"
+msgstr "Pular Item"
+
+#: directorymergewindow.cpp:2272
+msgid "Skipped."
+msgstr "Ignorado."
+
+#: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493
+msgid "In progress..."
+msgstr "Em progresso..."
+
+#: directorymergewindow.cpp:2327
+msgid "Merge operation complete."
+msgstr "Operação de mesclagem completa."
+
+#: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330
+msgid "Merge Complete"
+msgstr "Mesclagem completa."
+
+#: directorymergewindow.cpp:2340
+msgid ""
+"Simulated merge complete: Check if you agree with the proposed operations."
+msgstr ""
+"A simulação de mesclagem terminou: Verifique se concorda com as operações "
+"propostas."
+
+#: directorymergewindow.cpp:2374
+msgid "An error occurred. Press OK to see detailed information.\n"
+msgstr "Ocorreu um erro. Pressione OK para ver informações detalhadas.\n"
+
+#: directorymergewindow.cpp:2406
+#, kde-format
+msgid "Error: While deleting %1: Creating backup failed."
+msgstr "Erro: Ao tentar apagar %1: Criação da cópia de segurança falhou."
+
+#: directorymergewindow.cpp:2413
+#, kde-format
+msgid "delete directory recursively( %1 )"
+msgstr "apagar diretório recursivamente( %1 )"
+
+#: directorymergewindow.cpp:2415
+#, kde-format
+msgid "delete( %1 )"
+msgstr "apagar( %1 )"
+
+#: directorymergewindow.cpp:2430
+msgid "Error: delete dir operation failed while trying to read the directory."
+msgstr ""
+"Erro: a operação de remoção de diretório falhou quando tentava ler o "
+"diretório."
+
+#: directorymergewindow.cpp:2449
+#, kde-format
+msgid "Error: rmdir( %1 ) operation failed."
+msgstr "Erro: rmdir( %1 ) operação falhou."
+
+#: directorymergewindow.cpp:2459
+msgid "Error: delete operation failed."
+msgstr "Erro: a operação de remoção falhou."
+
+#: directorymergewindow.cpp:2485
+#, kde-format
+msgid "manual merge( %1, %2, %3 -> %4)"
+msgstr "mesclagem manual( %1, %2, %3 -> %4)"
+
+#: directorymergewindow.cpp:2488
+msgid ""
+"     Note: After a manual merge the user should continue by pressing F7."
+msgstr ""
+"     Nota: Após uma mesclagem manual o usuário deve continuar pressionando "
+"F7."
+
+#: directorymergewindow.cpp:2513
+#, kde-format
+msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed."
+msgstr "Erro: cópia( %1 -> %2 ) falhou. Remoção do destino existente falhou."
+
+#: directorymergewindow.cpp:2522
+#, kde-format
+msgid "copyLink( %1 -> %2 )"
+msgstr "copyLink( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2533
+msgid "Error: copyLink failed: Remote links are not yet supported."
+msgstr "Erro: copyLink falhou: Ligações remotas ainda não são suportadas."
+
+#: directorymergewindow.cpp:2539
+msgid "Error: copyLink failed."
+msgstr "Erro: copyLink falhou."
+
+#: directorymergewindow.cpp:2564
+#, kde-format
+msgid "copy( %1 -> %2 )"
+msgstr "cópia( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2590
+#, kde-format
+msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination."
+msgstr ""
+"Erro durante renomear( %1 -> %2 ): Não é possível remover o destino "
+"existente."
+
+#: directorymergewindow.cpp:2596
+#, kde-format
+msgid "rename( %1 -> %2 )"
+msgstr "renomear( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2605
+msgid "Error: Rename failed."
+msgstr "Erro: Renomear falhou."
+
+#: directorymergewindow.cpp:2623
+#, kde-format
+msgid "Error during makeDir of %1. Cannot delete existing file."
+msgstr ""
+"Erro durante makeDir de %1. Não foi possível remover o arquivo existente."
+
+#: directorymergewindow.cpp:2639
+#, kde-format
+msgid "makeDir( %1 )"
+msgstr "makeDir( %1 )"
+
+#: directorymergewindow.cpp:2649
+msgid "Error while creating directory."
+msgstr "Erro ao criar diretório."
+
+#: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784
+msgid "Dest"
+msgstr "Destino"
+
+#: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709
+msgid "Dir"
+msgstr "Dir"
+
+#: directorymergewindow.cpp:2678
+msgid "Type"
+msgstr "Tipo"
+
+#: directorymergewindow.cpp:2678
+msgid "Size"
+msgstr "Tamanho"
+
+#: directorymergewindow.cpp:2679
+msgid "Attr"
+msgstr "Atributos"
+
+#: directorymergewindow.cpp:2679
+msgid "Last Modification"
+msgstr "Última modificação"
+
+#: directorymergewindow.cpp:2679
+msgid "Link-Destination"
+msgstr "Ligação-Destino"
+
+#: directorymergewindow.cpp:2709 difftextwindow.cpp:401
+msgid "File"
+msgstr "Arquivo"
+
+#: directorymergewindow.cpp:2726
+msgid "not available"
+msgstr "não disponível"
+
+#: directorymergewindow.cpp:2746
+msgid "A (Dest): "
+msgstr "A (Destino): "
+
+#: directorymergewindow.cpp:2749
+msgid "A (Base): "
+msgstr "A (Base): "
+
+#: directorymergewindow.cpp:2755
+msgid "B (Dest): "
+msgstr "B (Destino): "
+
+#: directorymergewindow.cpp:2763
+msgid "C (Dest): "
+msgstr "C (Destino): "
+
+#: directorymergewindow.cpp:2769
+msgid "Dest: "
+msgstr "Destino: "
+
+#: directorymergewindow.cpp:2836
+msgid "Save Directory Merge State As..."
+msgstr "Salvar o Estado da Mesclagem de Diretório Como..."
+
+#: directorymergewindow.cpp:2959
+msgid "Start/Continue Directory Merge"
+msgstr "Iniciar/Continuar Mesclagem de Diretório"
+
+#: directorymergewindow.cpp:2960
+msgid "Run Operation for Current Item"
+msgstr "Executar Operação para o Item Atual"
+
+#: directorymergewindow.cpp:2961
+msgid "Compare Selected File"
+msgstr "Comparar Arquivo Selecionado"
+
+#: directorymergewindow.cpp:2962
+msgid "Merge Current File"
+msgstr "Mesclar Arquivo Atual"
+
+#: directorymergewindow.cpp:2962
+msgid ""
+"Merge\n"
+"File"
+msgstr ""
+"Mesclar\n"
+"Arquivo"
+
+#: directorymergewindow.cpp:2963
+msgid "Fold All Subdirs"
+msgstr "Fechar Todos Sub-diretórios"
+
+#: directorymergewindow.cpp:2964
+msgid "Unfold All Subdirs"
+msgstr "Expandir Todos Sub-diretórios"
+
+#: directorymergewindow.cpp:2968
+msgid "Choose A for All Items"
+msgstr "Selecionar Todos os Itens de A"
+
+#: directorymergewindow.cpp:2969
+msgid "Choose B for All Items"
+msgstr "Selecionar Todos os Itens de B"
+
+#: directorymergewindow.cpp:2970
+msgid "Choose C for All Items"
+msgstr "Selecionar Todos os Itens de C"
+
+#: directorymergewindow.cpp:2971
+msgid "Auto-Choose Operation for All Items"
+msgstr "Escolher Automaticamente a Operação para Todos os Itens"
+
+#: directorymergewindow.cpp:2972
+msgid "No Operation for All Items"
+msgstr "Nenhuma Operação para Todos os Itens"
+
+#: directorymergewindow.cpp:2977
+msgid "Show Identical Files"
+msgstr "Mostrar Arquivos Idênticos"
+
+#: directorymergewindow.cpp:2977
+msgid ""
+"Identical\n"
+"Files"
+msgstr ""
+"Arquivos\n"
+"Idênticos"
+
+#: directorymergewindow.cpp:2978
+msgid "Show Different Files"
+msgstr "Mostrar os Arquivos Diferentes"
+
+#: directorymergewindow.cpp:2979
+msgid "Show Files only in A"
+msgstr "Mostrar Arquivos apenas em A"
+
+#: directorymergewindow.cpp:2979
+msgid ""
+"Files\n"
+"only in A"
+msgstr ""
+"Arquivos\n"
+"apenas em A"
+
+#: directorymergewindow.cpp:2980
+msgid "Show Files only in B"
+msgstr "Mostrar Arquivos apenas em B"
+
+#: directorymergewindow.cpp:2980
+msgid ""
+"Files\n"
+"only in B"
+msgstr ""
+"Arquivos\n"
+"apenas em B"
+
+#: directorymergewindow.cpp:2981
+msgid "Show Files only in C"
+msgstr "Mostrar Arquivos apenas em C"
+
+#: directorymergewindow.cpp:2981
+msgid ""
+"Files\n"
+"only in C"
+msgstr ""
+"Arquivos\n"
+"apenas em C"
+
+#: directorymergewindow.cpp:2985
+msgid "Compare Explicitly Selected Files"
+msgstr "Comparar Explicitamente os Arquivos Selecionados"
+
+#: directorymergewindow.cpp:2986
+msgid "Merge Explicitly Selected Files"
+msgstr "Mesclar Explicitamente os Arquivos Selecionados"
+
+#: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995
+msgid "Do Nothing"
+msgstr "Não fazer nada"
+
+#: directorymergewindow.cpp:2989
+msgid "A"
+msgstr "A"
+
+#: directorymergewindow.cpp:2990
+msgid "B"
+msgstr "B"
+
+#: directorymergewindow.cpp:2991
+msgid "C"
+msgstr "C"
+
+#: directorymergewindow.cpp:3000
+msgid "Delete A && B"
+msgstr "Apagar A e B"
+
+#: directorymergewindow.cpp:3003
+msgid "Merge to A && B"
+msgstr "Mesclar com A e B"
+
+#: main.cpp:74 main.cpp:76
+msgid "Ignored. (User defined.)"
+msgstr "Ignorado. (definido pelo usuário.)"
+
+#: main.cpp:162
+msgid "kdiff3"
+msgstr "kdiff3"
+
+#: main.cpp:164
+msgid "Tool for Comparison and Merge of Files and Directories"
+msgstr "Ferramenta para Comparação e Mesclagem de Arquivos e Diretórios"
+
+#: main.cpp:165
+msgid "(c) 2002-2011 Joachim Eibl"
+msgstr "(c) 2002-2011 Joachim Eibl"
+
+#: main.cpp:172 kdiff3_part.cpp:303
+msgid "Joachim Eibl"
+msgstr "Joachim Eibl"
+
+#: main.cpp:173
+msgid "Eike Sauer"
+msgstr "Eike Sauer"
+
+#: main.cpp:173
+msgid "Bugfixes, Debian package maintainer"
+msgstr "Correção de erros, mantenedor do pacote Debian"
+
+#: main.cpp:174
+msgid "Sebastien Fricker"
+msgstr "Sebastien Fricker"
+
+#: main.cpp:174
+msgid "Windows installer"
+msgstr "Instalador para o Windows"
+
+#: main.cpp:175
+msgid "Stephan Binner"
+msgstr "Stephan Binner"
+
+#: main.cpp:175
+msgid "i18n-help"
+msgstr "i18n-help"
+
+#: main.cpp:176
+msgid "Stefan Partheymueller"
+msgstr "Stefan Partheymueller"
+
+#: main.cpp:176
+msgid "Clipboard-patch"
+msgstr "Correção da Área de Transferência"
+
+#: main.cpp:177
+msgid "David Faure"
+msgstr "David Faure"
+
+#: main.cpp:177
+msgid "KIO-Help"
+msgstr "KIO-Help"
+
+#: main.cpp:178
+msgid "Bernd Gehrmann"
+msgstr "Bernd Gehrmann"
+
+#: main.cpp:178
+msgid "Class CvsIgnoreList from Cervisia"
+msgstr "Classe CvsIgnoreList do Cervisia"
+
+#: main.cpp:179
+msgid "Andre Woebbeking"
+msgstr "Andre Woebbeking"
+
+#: main.cpp:179
+msgid "Class StringMatcher"
+msgstr "Classe StringMatcher"
+
+#: main.cpp:180
+msgid "Michael Denio"
+msgstr "Michael Denio"
+
+#: main.cpp:180
+msgid "Directory Equality-Coloring patch"
+msgstr "Correção de Coloração da Igualdade de Diretórios"
+
+#: main.cpp:181
+msgid "Manfred Koehler"
+msgstr "Manfred Koehler"
+
+#: main.cpp:181
+msgid "Fix for slow startup on Windows"
+msgstr "Correção para inicialização lenta no Windows"
+
+#: main.cpp:182
+msgid "Sergey Zorin"
+msgstr "Sergey Zorin"
+
+#: main.cpp:182
+msgid "Diff Ext for Windows"
+msgstr "Extensão Diff para o Windows"
+
+#: main.cpp:183
+msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+
+#: main.cpp:183
+msgid "GNU-Diffutils"
+msgstr "GNU-Diffutils"
+
+#: main.cpp:184
+msgid "Tino Boellsterling, Timothy Mee"
+msgstr "Tino Boellsterling, Timothy Mee"
+
+#: main.cpp:184
+msgid "Intensive test, use and feedback"
+msgstr "Testes intensivos, utilização e sugestões"
+
+#: main.cpp:185
+msgid "Michael Schmidt"
+msgstr "Michael Schmidt"
+
+#: main.cpp:185
+msgid "Mac support"
+msgstr "Suporte para Mac"
+
+#: main.cpp:186
+msgid "Valentin Rusu"
+msgstr "Valentin Rusu"
+
+#: main.cpp:186 main.cpp:187
+msgid "KDE4 porting"
+msgstr "Passagem para o KDE4"
+
+#: main.cpp:187
+msgid "Albert Astals Cid"
+msgstr "Albert Astals Cid"
+
+#: main.cpp:188
+msgid "Silvan Scherrer"
+msgstr "Silvan Scherrer"
+
+#: main.cpp:188
+msgid "OS2 port"
+msgstr "Versão para o OS/2"
+
+#: main.cpp:190
+msgid "+ Many thanks to those who reported bugs and contributed ideas!"
+msgstr "+ Muito obrigado àqueles que relataram bugs e contribuíram com ideias!"
+
+#: main.cpp:196
+msgid "Merge the input."
+msgstr "Mesclar a Entrada."
+
+#: main.cpp:197
+msgid "Explicit base file. For compatibility with certain tools."
+msgstr "Arquivo base explícito. Para compatibilidade com certas ferramentas."
+
+#: main.cpp:198
+msgid "Output file. Implies -m. E.g.: -o newfile.txt"
+msgstr "Arquivo de Saída. Implica -m. P.ex.: -o novoarquivo.txt"
+
+#: main.cpp:199
+msgid "Output file, again. (For compatibility with certain tools.)"
+msgstr ""
+"Arquivo de saída, novamente. (Para compatibilidade com certas ferramentas.)"
+
+#: main.cpp:200
+msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)"
+msgstr ""
+"Sem interface se todos os conflitos são resolvidos automaticamente "
+"(necessita -o arquivo)"
+
+#: main.cpp:201
+msgid "Don't solve conflicts automatically. (For compatibility...)"
+msgstr "Não resolver conflitos automaticamente. (Para compatibilidade...)"
+
+#: main.cpp:202
+msgid "Visible name replacement for input file 1 (base)."
+msgstr "Substituição do nome visível para o arquivo de entrada 1 (base)."
+
+#: main.cpp:203
+msgid "Visible name replacement for input file 2."
+msgstr "Substituição do nome visível para o arquivo de entrada 2."
+
+#: main.cpp:204
+msgid "Visible name replacement for input file 3."
+msgstr "Substituição do nome visível para o arquivo de entrada 3."
+
+#: main.cpp:205
+msgid "Alternative visible name replacement. Supply this once for every input."
+msgstr ""
+"Substituição alternativa do nome visível. Coloque apenas um para cada "
+"entrada."
+
+#: main.cpp:206
+msgid ""
+"Override a config setting. Use once for every setting. E.g.: --cs "
+"\"AutoAdvance=1\""
+msgstr ""
+"Substitui uma opção de configuração. Use uma vez para todas as opções. P."
+"ex.: --cs \"AutoAdvance=1\""
+
+#: main.cpp:207
+msgid "Show list of config settings and current values."
+msgstr "Mostra uma lista das opções de configuração e os valores atuais."
+
+#: main.cpp:208
+msgid "Use a different config file."
+msgstr "Usar um arquivo de configuração diferente."
+
+#: main.cpp:211
+msgid "file1 to open (base, if not specified via --base)"
+msgstr "arquivo 1 abrindo (base, se não especificado via --base)"
+
+#: main.cpp:212
+msgid "file2 to open"
+msgstr "arquivo 2 abrindo"
+
+#: main.cpp:213
+msgid "file3 to open"
+msgstr "arquivo 3 abrindo"
+
+#: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976
+#: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002
+#: mergeresultwindow.cpp:1014
+#, kde-format
+msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)"
+msgstr ""
+"Número de conflitos não resolvidos: %1 (dos quais %2 são espaços em branco)"
+
+#: mergeresultwindow.cpp:303
+msgid ""
+"The output has been modified.\n"
+"If you continue your changes will be lost."
+msgstr ""
+"A saída foi modificada.\n"
+"Se você continuar suas mudanças serão perdidas."
+
+#: mergeresultwindow.cpp:834 pdiff.cpp:532
+msgid "All input files are binary equal."
+msgstr "Todos os arquivos de entrada são iguais em nível binário."
+
+#: mergeresultwindow.cpp:836
+msgid "All input files contain the same text."
+msgstr "Todos os arquivos de entrada contém o mesmo texto."
+
+#: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840
+#: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540
+#, kde-format
+msgid "Files %1 and %2 are binary equal.\n"
+msgstr "Os arquivos %1 e %2 são iguais em nível binário.\n"
+
+#: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841
+#: mergeresultwindow.cpp:843
+#, kde-format
+msgid "Files %1 and %2 have equal text.\n"
+msgstr "Arquivos %1 e %2 possuem texto igual.\n"
+
+#: mergeresultwindow.cpp:849
+msgid "Total number of conflicts: "
+msgstr "Número total de conflitos: "
+
+#: mergeresultwindow.cpp:850
+msgid ""
+"\n"
+"Nr of automatically solved conflicts: "
+msgstr ""
+"\n"
+"Número de conflitos resolvidos automaticamente: "
+
+#: mergeresultwindow.cpp:851
+msgid ""
+"\n"
+"Nr of unsolved conflicts: "
+msgstr ""
+"\n"
+"Número de conflitos não resolvidos: "
+
+#: mergeresultwindow.cpp:853
+msgid "Conflicts"
+msgstr "Conflitos"
+
+#: mergeresultwindow.cpp:1728
+msgid "<No src line>"
+msgstr "<Sem linha de origem>"
+
+#: mergeresultwindow.cpp:1736
+msgid "<Merge Conflict (Whitespace only)>"
+msgstr "<Conflito de Mesclagem (Apenas espaços em branco)>"
+
+#: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517
+msgid "<Merge Conflict>"
+msgstr "<Conflito de Mesclagem>"
+
+#: mergeresultwindow.cpp:2725
+msgid ""
+"Not all conflicts are solved yet.\n"
+"File not saved.\n"
+msgstr ""
+"Nem todos os conflitos foram resolvidos.\n"
+"Arquivo não foi salvo.\n"
+
+#: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736
+msgid "Conflicts Left"
+msgstr "Conflitos Restantes"
+
+#: mergeresultwindow.cpp:2734
+msgid ""
+"There is a line end style conflict. Please choose the line end style "
+"manually.\n"
+"File not saved.\n"
+msgstr ""
+"Existe um conflito de fins de linha. Escolha o estilo manualmente.\n"
+"O arquivo não foi salvo.\n"
+
+#: mergeresultwindow.cpp:2748
+msgid ""
+"\n"
+"\n"
+"Creating backup failed. File not saved."
+msgstr ""
+"\n"
+"\n"
+"Criação do backup falhou. Arquivo não salvo."
+
+#: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792
+msgid "File Save Error"
+msgstr "Erro ao salvar arquivo"
+
+#: mergeresultwindow.cpp:2792
+msgid "Error while writing."
+msgstr "Erro ao gravar."
+
+#: mergeresultwindow.cpp:3122
+msgid "Output"
+msgstr "Saída"
+
+#: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314
+msgid "[Modified]"
+msgstr "[Modificado]"
+
+#: mergeresultwindow.cpp:3141
+msgid "Encoding for saving"
+msgstr "Codificação da gravação"
+
+#: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737
+#: optiondialog.cpp:762
+msgid "Line end style:"
+msgstr "Estilo de fim de linha:"
+
+#: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767
+msgid "Unix"
+msgstr "Unix"
+
+#: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737
+msgid "DOS"
+msgstr "DOS"
+
+#: mergeresultwindow.cpp:3229
+msgid "Conflict"
+msgstr "Conflito"
+
+#: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263
+#: mergeresultwindow.cpp:3265
+msgid "Codec from"
+msgstr "Codificador de"
+
+#: kdiff3_part.cpp:157 kdiff3_part.cpp:234
+msgid "Couldn't find files for comparison."
+msgstr "Não encontrou arquivos para comparação."
+
+#: kdiff3_part.cpp:302
+msgid "KDiff3Part"
+msgstr "KDiff3Part"
+
+#: fileaccess.cpp:612
+msgid ""
+"While trying to make a backup, deleting an older backup failed. \n"
+"Filename: "
+msgstr ""
+"Ao tentar fazer uma cópia de segurança, a remoção de uma cópia anterior "
+"falhou. \n"
+"Nome do Arquivo: "
+
+#: fileaccess.cpp:619
+msgid ""
+"While trying to make a backup, renaming failed. \n"
+"Filenames: "
+msgstr ""
+"Ao tentar fazer uma cópia de segurança, a mudança de nome falhou. \n"
+"Nome dos Arquivos: "
+
+#: fileaccess.cpp:643
+#, kde-format
+msgid "Getting file status: %1"
+msgstr "Obtendo status do arquivo: %1"
+
+#: fileaccess.cpp:686
+#, kde-format
+msgid "Reading file: %1"
+msgstr "Lendo arquivo: %1"
+
+#: fileaccess.cpp:723
+#, kde-format
+msgid "Writing file: %1"
+msgstr "Gravando arquivo: %1"
+
+#: fileaccess.cpp:751
+msgid "Out of memory"
+msgstr "Memória insuficiente"
+
+#: fileaccess.cpp:786
+#, kde-format
+msgid "Making directory: %1"
+msgstr "Criando diretório: %1"
+
+#: fileaccess.cpp:806
+#, kde-format
+msgid "Removing directory: %1"
+msgstr "Removendo diretório: %1"
+
+#: fileaccess.cpp:821
+#, kde-format
+msgid "Removing file: %1"
+msgstr "Removendo arquivo: %1"
+
+#: fileaccess.cpp:837
+#, kde-format
+msgid "Creating symbolic link: %1 -> %2"
+msgstr "Criando link simbólico: %1 -> %2"
+
+#: fileaccess.cpp:864
+#, kde-format
+msgid "Renaming file: %1 -> %2"
+msgstr "Renomeando arquivo: %1 -> %2"
+
+#: fileaccess.cpp:897
+#, kde-format
+msgid "Copying file: %1 -> %2"
+msgstr "Copiando arquivo: %1 -> %2"
+
+#: fileaccess.cpp:911
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for reading failed. Filename: "
+"%1"
+msgstr ""
+"Erro durante a operação de cópia de arquivo: Abertura de arquivo para "
+"leitura falhou. Nome do Arquivo: %1"
+
+#: fileaccess.cpp:917
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for writing failed. Filename: "
+"%1"
+msgstr ""
+"Erro durante operação de cópia de arquivo: Abertura do arquivo para escrita "
+"falhou. Nome do Arquivo: %1"
+
+#: fileaccess.cpp:932
+#, kde-format
+msgid "Error during file copy operation: Reading failed. Filename: %1"
+msgstr ""
+"Erro durante operação de cópia de arquivo: Leitura falhou. Nome do Arquivo: "
+"%1"
+
+#: fileaccess.cpp:941
+#, kde-format
+msgid "Error during file copy operation: Writing failed. Filename: %1"
+msgstr ""
+"Erro durante operação de cópia de arquivo: Escrita falhou. Nome do Arquivo: "
+"%1"
+
+#: fileaccess.cpp:1231
+msgid "Reading directory: "
+msgstr "Lendo diretório: "
+
+#: fileaccess.cpp:1355
+#, kde-format
+msgid "Listing directory: %1"
+msgstr "Listando diretório: %1"
+
+#: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396
+msgid "&Cancel"
+msgstr "&Cancelar"
+
+#: difftextwindow.cpp:403
+msgid "Line"
+msgstr "Linha"
+
+#: difftextwindow.cpp:405
+msgid "Line not available"
+msgstr "Linha não disponível"
+
+#: difftextwindow.cpp:1703 difftextwindow.cpp:1736
+msgid "Encoding:"
+msgstr "Codificação:"
+
+#: difftextwindow.cpp:1759 kdiff3.cpp:831
+msgid "Top line"
+msgstr "Linha de topo"
+
+#: difftextwindow.cpp:1769
+msgid "End"
+msgstr "Fim"
+
+#: kdiff3.cpp:169
+msgid "Current Configuration:"
+msgstr "Configuração atual:"
+
+#: kdiff3.cpp:174
+msgid "Config Option Error:"
+msgstr "Erro da Opção de Configuração:"
+
+#: kdiff3.cpp:219
+msgid "Option --auto used, but no output file specified."
+msgstr "Opção --auto usada, mas nenhum arquivo de saída especificado."
+
+#: kdiff3.cpp:369
+msgid "Option --auto ignored for directory comparison."
+msgstr "Opção --auto ignorada para comparação de diretórios."
+
+#: kdiff3.cpp:405
+msgid "Saving failed."
+msgstr "Falha ao salvar."
+
+#: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214
+msgid "Opening of these files failed:"
+msgstr "Abertura desses arquivos falhou:"
+
+#: kdiff3.cpp:449
+msgid "File Open Error"
+msgstr "Erro na abertura do arquivo"
+
+#: kdiff3.cpp:477
+msgid "Opens documents for comparison..."
+msgstr "Abre documentos para comparação..."
+
+#: kdiff3.cpp:479
+msgid "Reload"
+msgstr "Recarregar"
+
+#: kdiff3.cpp:482
+msgid "Saves the merge result. All conflicts must be solved!"
+msgstr ""
+"Salva o resultado da mesclagem. Todos os conflitos precisam ser resolvidos!"
+
+#: kdiff3.cpp:484
+msgid "Saves the current document as..."
+msgstr "Salva o documento atual como..."
+
+#: kdiff3.cpp:487
+msgid "Print the differences"
+msgstr "Imprimir as diferenças"
+
+#: kdiff3.cpp:490
+msgid "Quits the application"
+msgstr "Sai do aplicativo"
+
+#: kdiff3.cpp:492
+msgid "Cuts the selected section and puts it to the clipboard"
+msgstr "Corta a seção selecionada e a coloca na área de transferência"
+
+#: kdiff3.cpp:494
+msgid "Copies the selected section to the clipboard"
+msgstr "Copia a seção selecionada para a área de transferência"
+
+#: kdiff3.cpp:496
+msgid "Pastes the clipboard contents to current position"
+msgstr "Cola o conteúdo da área de transferência na posição atual"
+
+#: kdiff3.cpp:498
+msgid "Select everything in current window"
+msgstr "Seleciona tudo na janela atual"
+
+#: kdiff3.cpp:500
+msgid "Search for a string"
+msgstr "Procura por um texto"
+
+#: kdiff3.cpp:502
+msgid "Search again for the string"
+msgstr "Procura de novo pelo texto"
+
+#: kdiff3.cpp:507
+msgid "Enables/disables the statusbar"
+msgstr "Habilita/desabilita a barra de status"
+
+#: kdiff3.cpp:511
+msgid "Configure KDiff3..."
+msgstr "Configurar o KDiff3..."
+
+#: kdiff3.cpp:532
+msgid "Go to Current Delta"
+msgstr "Vá para o Delta Atual"
+
+#: kdiff3.cpp:532
+msgid ""
+"Current\n"
+"Delta"
+msgstr ""
+"Delta\n"
+"Atual"
+
+#: kdiff3.cpp:534
+msgid "Go to First Delta"
+msgstr "Vá para o Primeiro Delta"
+
+#: kdiff3.cpp:534
+msgid ""
+"First\n"
+"Delta"
+msgstr ""
+"Primeiro\n"
+"Delta"
+
+#: kdiff3.cpp:536
+msgid "Go to Last Delta"
+msgstr "Vá para o Último Delta"
+
+#: kdiff3.cpp:536
+msgid ""
+"Last\n"
+"Delta"
+msgstr ""
+"Último\n"
+"Delta"
+
+#: kdiff3.cpp:538
+msgid "(Skips white space differences when \"Show White Space\" is disabled.)"
+msgstr ""
+"(Ignora as diferenças de espaço em branco quando \"Mostrar os Espaços em "
+"Branco\" está desativado.)"
+
+#: kdiff3.cpp:539
+msgid ""
+"(Does not skip white space differences even when \"Show White Space\" is "
+"disabled.)"
+msgstr ""
+"(Não ignora as diferenças de espaço em branco mesmo quando \"Mostrar os "
+"Espaços em Branco\" está desativado.)"
+
+#: kdiff3.cpp:540
+msgid "Go to Previous Delta"
+msgstr "Vá para o Delta Anterior"
+
+#: kdiff3.cpp:540
+msgid ""
+"Prev\n"
+"Delta"
+msgstr ""
+"Delta\n"
+"Anterior"
+
+#: kdiff3.cpp:542
+msgid "Go to Next Delta"
+msgstr "Vá para o Próximo Delta"
+
+#: kdiff3.cpp:542
+msgid ""
+"Next\n"
+"Delta"
+msgstr ""
+"Delta\n"
+"Seguinte"
+
+#: kdiff3.cpp:544
+msgid "Go to Previous Conflict"
+msgstr "Vá para o Conflito Anterior"
+
+#: kdiff3.cpp:544
+msgid ""
+"Prev\n"
+"Conflict"
+msgstr ""
+"Conflito\n"
+"Anterior"
+
+#: kdiff3.cpp:546
+msgid "Go to Next Conflict"
+msgstr "Vá para o Próximo Conflito"
+
+#: kdiff3.cpp:546
+msgid ""
+"Next\n"
+"Conflict"
+msgstr ""
+"Conflito\n"
+"Seguinte"
+
+#: kdiff3.cpp:548
+msgid "Go to Previous Unsolved Conflict"
+msgstr "Vá para o Conflito Não-Resolvido Anterior."
+
+#: kdiff3.cpp:548
+msgid ""
+"Prev\n"
+"Unsolved"
+msgstr ""
+"Não Resolvido\n"
+"Anterior"
+
+#: kdiff3.cpp:550
+msgid "Go to Next Unsolved Conflict"
+msgstr "Vá para o Próximo Conflito Não-Resolvido"
+
+#: kdiff3.cpp:550
+msgid ""
+"Next\n"
+"Unsolved"
+msgstr ""
+"Não Resolvido\n"
+"Seguinte"
+
+#: kdiff3.cpp:552
+msgid "Select Line(s) From A"
+msgstr "Seleciona Linha(s) De A"
+
+#: kdiff3.cpp:552
+msgid ""
+"Choose\n"
+"A"
+msgstr ""
+"Escolher\n"
+"o A"
+
+#: kdiff3.cpp:553
+msgid "Select Line(s) From B"
+msgstr "Seleciona Linha(s) De B"
+
+#: kdiff3.cpp:553
+msgid ""
+"Choose\n"
+"B"
+msgstr ""
+"Escolher\n"
+"o B"
+
+#: kdiff3.cpp:554
+msgid "Select Line(s) From C"
+msgstr "Selecione Linha(s) De C"
+
+#: kdiff3.cpp:554
+msgid ""
+"Choose\n"
+"C"
+msgstr ""
+"Escolher\n"
+"o C"
+
+#: kdiff3.cpp:555
+msgid "Automatically Go to Next Unsolved Conflict After Source Selection"
+msgstr ""
+"Ir Automaticamente para o Próximo Conflito Não-Resolvido Após a Seleção da "
+"Fonte."
+
+#: kdiff3.cpp:555
+msgid ""
+"Auto\n"
+"Next"
+msgstr ""
+"Seguinte\n"
+"Automático"
+
+#: kdiff3.cpp:557
+msgid "Show Space && Tabulator Characters for Differences"
+msgstr "Mostrar as Diferenças de Espaços e Tabulações"
+
+#: kdiff3.cpp:557
+msgid ""
+"White\n"
+"Characters"
+msgstr ""
+"Espaços\n"
+"em Branco"
+
+#: kdiff3.cpp:558
+msgid "Show White Space"
+msgstr "Mostrar Espaços em Branco"
+
+#: kdiff3.cpp:558
+msgid ""
+"White\n"
+"Deltas"
+msgstr ""
+"Diferenças\n"
+"em Branco"
+
+#: kdiff3.cpp:560
+msgid "Show Line Numbers"
+msgstr "Mostrar Números de Linha"
+
+#: kdiff3.cpp:560
+msgid ""
+"Line\n"
+"Numbers"
+msgstr ""
+"Números\n"
+"de Linha"
+
+#: kdiff3.cpp:561
+msgid "Choose A Everywhere"
+msgstr "Escolher A em qualquer lugar"
+
+#: kdiff3.cpp:562
+msgid "Choose B Everywhere"
+msgstr "Escolher B em qualquer lugar"
+
+#: kdiff3.cpp:563
+msgid "Choose C Everywhere"
+msgstr "Escolher C em qualquer lugar"
+
+#: kdiff3.cpp:564
+msgid "Choose A for All Unsolved Conflicts"
+msgstr "Escolha A em Todos os Conflitos Não-Resolvidos"
+
+#: kdiff3.cpp:565
+msgid "Choose B for All Unsolved Conflicts"
+msgstr "Escolha B em Todos os Conflitos Não-Resolvidos"
+
+#: kdiff3.cpp:566
+msgid "Choose C for All Unsolved Conflicts"
+msgstr "Escolha C em Todos os Conflitos Não-Resolvidos"
+
+#: kdiff3.cpp:567
+msgid "Choose A for All Unsolved Whitespace Conflicts"
+msgstr "Escolha A em Todos os Conflitos de Espaço em Branco Não-Resolvidos"
+
+#: kdiff3.cpp:568
+msgid "Choose B for All Unsolved Whitespace Conflicts"
+msgstr "Escolha B em Todos os Conflitos de Espaço em Branco Não-Resolvidos"
+
+#: kdiff3.cpp:569
+msgid "Choose C for All Unsolved Whitespace Conflicts"
+msgstr "Escolha C em Todos os Conflitos de Espaço em Branco Não-Resolvidos"
+
+#: kdiff3.cpp:570
+msgid "Automatically Solve Simple Conflicts"
+msgstr "Resolva Conflitos Simples Automaticamente"
+
+#: kdiff3.cpp:571
+msgid "Set Deltas to Conflicts"
+msgstr "Defina Delta para Conflitos"
+
+#: kdiff3.cpp:572
+msgid "Run Regular Expression Auto Merge"
+msgstr "Executar Mesclagem Automática de Expressões Regulares"
+
+#: kdiff3.cpp:573
+msgid "Automatically Solve History Conflicts"
+msgstr "Resolva Conflitos de Histórico Automaticamente"
+
+#: kdiff3.cpp:574
+msgid "Split Diff At Selection"
+msgstr "Dividir Diferenças ao Selecionar"
+
+#: kdiff3.cpp:575
+msgid "Join Selected Diffs"
+msgstr "Juntar Diferenças Selecionadas"
+
+#: kdiff3.cpp:577
+msgid "Show Window A"
+msgstr "Mostrar Janela A"
+
+#: kdiff3.cpp:578
+msgid "Show Window B"
+msgstr "Mostrar Janela B"
+
+#: kdiff3.cpp:579
+msgid "Show Window C"
+msgstr "Mostrar Janela C"
+
+#: kdiff3.cpp:580 kdiff3.cpp:591
+msgid "Focus Next Window"
+msgstr "Foco na Próxima Janela"
+
+#: kdiff3.cpp:582
+msgid "Normal Overview"
+msgstr "Visão Normal"
+
+#: kdiff3.cpp:583
+msgid "A vs. B Overview"
+msgstr "Visão A vs. B"
+
+#: kdiff3.cpp:584
+msgid "A vs. C Overview"
+msgstr "Visão A vs. C"
+
+#: kdiff3.cpp:585
+msgid "B vs. C Overview"
+msgstr "Visão B vs. C"
+
+#: kdiff3.cpp:586
+msgid "Word Wrap Diff Windows"
+msgstr "Quebrar Linha nas Janelas de Diferenças"
+
+#: kdiff3.cpp:587
+msgid "Add Manual Diff Alignment"
+msgstr "Adicionar Alinhamento Manual das Diferenças"
+
+#: kdiff3.cpp:588
+msgid "Clear All Manual Diff Alignments"
+msgstr "Limpar Todos Alinhamentos de Diferenças Manuais"
+
+#: kdiff3.cpp:593
+msgid "Focus Prev Window"
+msgstr "Foco na Janela Anterior"
+
+#: kdiff3.cpp:594
+msgid "Toggle Split Orientation"
+msgstr "Alterar Orientação da Divisão"
+
+#: kdiff3.cpp:596
+msgid "Dir && Text Split Screen View"
+msgstr "Janela Dividida de Diretórios e Texto"
+
+#: kdiff3.cpp:598
+msgid "Toggle Between Dir && Text View"
+msgstr "Alternar entre visualização de Diretório e Texto"
+
+#: kdiff3.cpp:654 pdiff.cpp:1812
+msgid "The merge result hasn't been saved."
+msgstr "O resultado da Mesclagem não foi salvo."
+
+#: kdiff3.cpp:656
+msgid "Save && Quit"
+msgstr "Salvar e Sair"
+
+#: kdiff3.cpp:657
+msgid "Quit Without Saving"
+msgstr "Sair sem Salvar"
+
+#: kdiff3.cpp:665 pdiff.cpp:1823
+msgid "Saving the merge result failed."
+msgstr "Falha ao salvar o resultado da mesclagem"
+
+#: kdiff3.cpp:676 pdiff.cpp:1078
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort?"
+msgstr ""
+"Você está fazendo uma mesclagem de diretórios. Tem certeza de que deseja "
+"cancelar?"
+
+#: kdiff3.cpp:701
+msgid "Saving file..."
+msgstr "Salvando arquivo...."
+
+#: kdiff3.cpp:718
+msgid "Saving file with a new filename..."
+msgstr "Salvando arquivo com um novo nome..."
+
+#: kdiff3.cpp:781
+msgid "Printing not implemented."
+msgstr "A impressão não está implementada."
+
+#: kdiff3.cpp:815
+msgid "Printing..."
+msgstr "Imprimindo..."
+
+#: kdiff3.cpp:956
+msgid "Selection"
+msgstr "Seleção"
+
+#: kdiff3.cpp:982
+msgid "Printing completed."
+msgstr "Impressão concluída."
+
+#: kdiff3.cpp:986
+msgid "Printing aborted."
+msgstr "Impressão cancelada."
+
+#: kdiff3.cpp:993
+msgid "Exiting..."
+msgstr "Saindo..."
+
+#: kdiff3.cpp:1006
+msgid "Toggling toolbar..."
+msgstr "Mudando Barra de Ferramentas..."
+
+#: kdiff3.cpp:1027
+msgid "Toggle the statusbar..."
+msgstr "Mudar a Barra de Status..."
+
+#: smalldialogs.cpp:58
+msgid "A (Base):"
+msgstr "A (Base):"
+
+#: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99
+#: smalldialogs.cpp:142
+msgid "File..."
+msgstr "Arquivo..."
+
+#: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101
+#: smalldialogs.cpp:144
+msgid "Dir..."
+msgstr "Diretório..."
+
+#: smalldialogs.cpp:93
+msgid "C (Optional):"
+msgstr "C (Opcional):"
+
+#: smalldialogs.cpp:116
+msgid "Swap/Copy Names ..."
+msgstr "Trocar/Copiar Nomes..."
+
+#: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123
+#, kde-format
+msgid "Swap %1<->%2"
+msgstr "Trocar %1<->%2"
+
+#: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126
+#, kde-format
+msgid "Copy %1->Output"
+msgstr "Copiar %1->Saída"
+
+#: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129
+#, kde-format
+msgid "Swap %1<->Output"
+msgstr "Trocar %1<->Saída"
+
+#: smalldialogs.cpp:136
+msgid "Output (optional):"
+msgstr "Saída (opcional):"
+
+#: smalldialogs.cpp:168
+msgid "Configure..."
+msgstr "Configurar..."
+
+#: smalldialogs.cpp:174
+msgid "&OK"
+msgstr "&OK"
+
+#: smalldialogs.cpp:362
+msgid "Search text:"
+msgstr "Texto da procura:"
+
+#: smalldialogs.cpp:369
+msgid "Case sensitive"
+msgstr "Diferenciar maiúsculas de minúsculas"
+
+#: smalldialogs.cpp:372
+msgid "Search A"
+msgstr "Procurar A"
+
+#: smalldialogs.cpp:377
+msgid "Search B"
+msgstr "Procurar B"
+
+#: smalldialogs.cpp:382
+msgid "Search C"
+msgstr "Procurar C"
+
+#: smalldialogs.cpp:387
+msgid "Search output"
+msgstr "Resultado da procura"
+
+#: smalldialogs.cpp:392
+msgid "&Search"
+msgstr "&Procurar"
+
+#: smalldialogs.cpp:409
+msgid "Regular Expression Tester"
+msgstr "Teste de Expressões Regulares"
+
+#: smalldialogs.cpp:414 optiondialog.cpp:936
+msgid "Auto merge regular expression:"
+msgstr "Expressão regular de mesclagem automática:"
+
+#: smalldialogs.cpp:422
+msgid "Example auto merge line:"
+msgstr "Linha de mesclagem automática do exemplo:"
+
+#: smalldialogs.cpp:424
+msgid "To test auto merge, copy a line as used in your files."
+msgstr ""
+"Para testar a mesclagem automática, copie uma linha usada nos seus arquivos."
+
+#: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494
+msgid "Match result:"
+msgstr "Resultado correspondente:"
+
+#: smalldialogs.cpp:441 optiondialog.cpp:962
+msgid "History start regular expression:"
+msgstr "Expressão regular do início do histórico:"
+
+#: smalldialogs.cpp:449
+msgid "Example history start line (with leading comment):"
+msgstr "Linha inicial do histórico do exemplo (com o comentário inicial):"
+
+#: smalldialogs.cpp:451
+msgid ""
+"Copy a history start line as used in your files,\n"
+"including the leading comment."
+msgstr ""
+"Copie uma linha inicial do histórico, como a usada nos seus arquivos,\n"
+"incluindo o comentário inicial."
+
+#: smalldialogs.cpp:469 optiondialog.cpp:972
+msgid "History entry start regular expression:"
+msgstr "Expressão regular do início do item de histórico:"
+
+#: smalldialogs.cpp:477
+msgid "History sort key order:"
+msgstr "Ordem da chave do histórico:"
+
+#: smalldialogs.cpp:485
+msgid "Example history entry start line (without leading comment):"
+msgstr ""
+"Linha inicial do item do histórico do exemplo (sem o comentário inicial):"
+
+#: smalldialogs.cpp:487
+msgid ""
+"Copy a history entry start line as used in your files,\n"
+"but omit the leading comment."
+msgstr ""
+"Copie uma linha inicial do item de histórico, como a usada nos seus "
+"arquivos,\n"
+"mas omita o comentário inicial."
+
+#: smalldialogs.cpp:501
+msgid "Sort key result:"
+msgstr "Resultado da chave de ordenação:"
+
+#: smalldialogs.cpp:508
+msgid "OK"
+msgstr "OK"
+
+#: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583
+msgid "Match success."
+msgstr "Sucesso da correspondência."
+
+#: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589
+msgid "Match failed."
+msgstr "A correspondência falhou."
+
+#: smalldialogs.cpp:574
+msgid "Opening and closing parentheses do not match in regular expression."
+msgstr ""
+"Os parênteses de abertura e fechamento não correspondem na expressão regular."
+
+#: optiondialog.cpp:367
+msgid "Unicode, 8 bit"
+msgstr "Unicode, 8 bit"
+
+#: optiondialog.cpp:368
+msgid "Unicode"
+msgstr "Unicode"
+
+#: optiondialog.cpp:369
+msgid "Latin1"
+msgstr "Latin1"
+
+#: optiondialog.cpp:388
+msgid "Change this if non-ASCII characters are not displayed correctly."
+msgstr ""
+"Mude isto se caracteres diferentes de ASCII não forem exibidos corretamente."
+
+#: optiondialog.cpp:465
+msgid "Configure"
+msgstr "Configurar"
+
+#: optiondialog.cpp:531
+msgid "Font"
+msgstr "Fonte"
+
+#: optiondialog.cpp:532
+msgid "Editor & Diff Output Font"
+msgstr "Fonte de saída do Editor e do Diff"
+
+#: optiondialog.cpp:556
+msgid "Italic font for deltas"
+msgstr "Fonte em Itálico para deltas"
+
+#: optiondialog.cpp:559
+msgid ""
+"Selects the italic version of the font for differences.\n"
+"If the font doesn't support italic characters, then this does nothing."
+msgstr ""
+"Seleciona a versão em itálico da fonte para diferenças.\n"
+"Se a fonte não suportar caracteres em itálico, ele não fará nada."
+
+#: optiondialog.cpp:568
+msgid "Color"
+msgstr "Cor"
+
+#: optiondialog.cpp:569
+msgid "Colors Settings"
+msgstr "Configuração de Cores"
+
+#: optiondialog.cpp:588
+msgid "Editor and Diff Views:"
+msgstr "Áreas do Editor e das Diferenças:"
+
+#: optiondialog.cpp:596
+msgid "Foreground color:"
+msgstr "Cor do primeiro plano:"
+
+#: optiondialog.cpp:603
+msgid "Background color:"
+msgstr "Cor do plano de fundo:"
+
+#: optiondialog.cpp:612
+msgid "Diff background color:"
+msgstr "Cor do plano de fundo do diferenciador:"
+
+#: optiondialog.cpp:620
+msgid "Color A:"
+msgstr "Cor A:"
+
+#: optiondialog.cpp:628
+msgid "Color B:"
+msgstr "Cor B:"
+
+#: optiondialog.cpp:636
+msgid "Color C:"
+msgstr "Cor C:"
+
+#: optiondialog.cpp:643
+msgid "Conflict color:"
+msgstr "Cor do conflito:"
+
+#: optiondialog.cpp:651
+msgid "Current range background color:"
+msgstr "Cor de fundo do intervalo atual:"
+
+#: optiondialog.cpp:659
+msgid "Current range diff background color:"
+msgstr "Cor de fundo da diferença do intervalo atual:"
+
+#: optiondialog.cpp:666
+msgid "Color for manually aligned difference ranges:"
+msgstr "Cor dos intervalos de diferenças alinhados manualmente:"
+
+#: optiondialog.cpp:672
+msgid "Directory Comparison View:"
+msgstr "Área de Comparação de Diretório:"
+
+#: optiondialog.cpp:678
+msgid "Newest file color:"
+msgstr "Cor do arquivo mais recente:"
+
+#: optiondialog.cpp:682
+msgid ""
+"Changing this color will only be effective when starting the next directory "
+"comparison."
+msgstr ""
+"Mudar esta cor, só terá efeito quando iniciar a próxima comparação de "
+"diretório."
+
+#: optiondialog.cpp:687
+msgid "Oldest file color:"
+msgstr "Cor do arquivo mais antigo:"
+
+#: optiondialog.cpp:695
+msgid "Middle age file color:"
+msgstr "Cor dos arquivos intermediários:"
+
+#: optiondialog.cpp:703
+msgid "Color for missing files:"
+msgstr "Cor dos arquivos faltantes:"
+
+#: optiondialog.cpp:717
+msgid "Editor"
+msgstr "Editor"
+
+#: optiondialog.cpp:718
+msgid "Editor Behavior"
+msgstr "Comportamento do Editor"
+
+#: optiondialog.cpp:732
+msgid "Tab inserts spaces"
+msgstr "Tab insere espaços"
+
+#: optiondialog.cpp:735
+msgid ""
+"On: Pressing tab generates the appropriate number of spaces.\n"
+"Off: A tab character will be inserted."
+msgstr ""
+"Ligado: Ao pressionar Tab o número apropriado de espaços é gerado.\n"
+"Desligado: Um caractere de Tab será inserido."
+
+#: optiondialog.cpp:741
+msgid "Tab size:"
+msgstr "Tamanho da tabulação:"
+
+#: optiondialog.cpp:747
+msgid "Auto indentation"
+msgstr "Endentação automática"
+
+#: optiondialog.cpp:750
+msgid "On: The indentation of the previous line is used for a new line.\n"
+msgstr "Ligado: A endentação da linha anterior é usada para uma nova linha.\n"
+
+#: optiondialog.cpp:754
+msgid "Auto copy selection"
+msgstr "Auto copiar seleção"
+
+#: optiondialog.cpp:757
+msgid ""
+"On: Any selection is immediately written to the clipboard.\n"
+"Off: You must explicitely copy e.g. via Ctrl-C."
+msgstr ""
+"Ligado: Qualquer seleção é imediatamente enviada para a Área de "
+"Transferência.\n"
+"Desligado: Você deve explicitamente copiar, p.ex. via Ctrl+C."
+
+#: optiondialog.cpp:768
+msgid "Dos/Windows"
+msgstr "DOS/Windows"
+
+#: optiondialog.cpp:769
+msgid "Autodetect"
+msgstr "Auto-detectar"
+
+#: optiondialog.cpp:772
+msgid ""
+"Sets the line endings for when an edited file is saved.\n"
+"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A"
+msgstr ""
+"Configura os finais de linha para quando um arquivo editado for salvo.\n"
+"DOS/Windows: CR+LF; Unix: LF; com CR=0D, LF=0A"
+
+#: optiondialog.cpp:784
+msgid "Diff"
+msgstr "Diff"
+
+#: optiondialog.cpp:785
+msgid "Diff Settings"
+msgstr "Configurações de Diff"
+
+#: optiondialog.cpp:809
+msgid "Treat as white space."
+msgstr "Trata como espaços em branco."
+
+#: optiondialog.cpp:811
+msgid "Ignore numbers"
+msgstr "Ignorar Números"
+
+#: optiondialog.cpp:814
+msgid ""
+"Ignore number characters during line matching phase. (Similar to Ignore "
+"white space.)\n"
+"Might help to compare files with numeric data."
+msgstr ""
+"Ignorar caracteres numéricos durante fase de combinação de linhas. (Similar "
+"a Ignorar espaços em branco.)\n"
+"Pode ajudar a comparar arquivos com dados numéricos."
+
+#: optiondialog.cpp:819
+msgid "Ignore C/C++ comments"
+msgstr "Ignorar comentários de C/C++"
+
+#: optiondialog.cpp:821
+msgid "Treat C/C++ comments like white space."
+msgstr "Trata comentários C/C++ como espaços em branco."
+
+#: optiondialog.cpp:825
+msgid "Ignore case"
+msgstr "Ignorar caixa"
+
+#: optiondialog.cpp:828
+msgid "Treat case differences like white space changes. ('a'<=>'A')"
+msgstr "Tratar casos diferentes como mudanças de espaços em branco ('a'<=>'A')"
+
+#: optiondialog.cpp:832
+msgid "Preprocessor command:"
+msgstr "Comando do Pré-processador:"
+
+#: optiondialog.cpp:836
+msgid "User defined pre-processing. (See the docs for details.)"
+msgstr ""
+"Pré-processamento definido pelo usuário. (Veja a documentação para detalhes.)"
+
+#: optiondialog.cpp:839
+msgid "Line-matching preprocessor command:"
+msgstr "Comando do Pré-processador para correspondência de linhas:"
+
+#: optiondialog.cpp:843
+msgid ""
+"This pre-processor is only used during line matching.\n"
+"(See the docs for details.)"
+msgstr ""
+"Esse pré-processador é usado somente durante correspondência de linhas.\n"
+"(Veja a documentação para detalhes.)"
+
+#: optiondialog.cpp:846
+msgid "Try hard (slower)"
+msgstr "Tentar com persistência (lento)"
+
+#: optiondialog.cpp:849
+msgid ""
+"Enables the --minimal option for the external diff.\n"
+"The analysis of big files will be much slower."
+msgstr ""
+"Habilita a opção --minimal para o diff externo.\n"
+"A análise dos arquivos grandes será muito mais lenta."
+
+#: optiondialog.cpp:854
+msgid "Align B and C for 3 input files"
+msgstr "Alinhar o B e o C para 3 arquivos de entrada"
+
+#: optiondialog.cpp:857
+msgid ""
+"Try to align B and C when comparing or merging three input files.\n"
+"Not recommended for merging because merge might get more complicated.\n"
+"(Default is off.)"
+msgstr ""
+"Tentar alinhar o B e o C ao comparar ou mesclar três arquivos de entrada.\n"
+"Não é recomendado para mesclar porque isto pode ser mais complicado.\n"
+"(Por padrão está desativado.)"
+
+#: optiondialog.cpp:870
+msgid "Merge Settings"
+msgstr "Configurações de Mesclagem"
+
+#: optiondialog.cpp:885
+msgid "Auto advance delay (ms):"
+msgstr "Atraso no avanço automático (ms):"
+
+#: optiondialog.cpp:890
+msgid ""
+"When in Auto-Advance mode the result of the current selection is shown \n"
+"for the specified time, before jumping to the next conflict. Range: 0-2000 ms"
+msgstr ""
+"Quando estiver no modo de Avanço Automático, o resultado da seleção atual é "
+"mostrado\n"
+"durante o período indicado, antes de saltar para o próximo conflito. "
+"Intervalo: 0-2000 ms"
+
+#: optiondialog.cpp:895
+msgid "Show info dialogs"
+msgstr "Mostrar os diálogos de informação"
+
+#: optiondialog.cpp:897
+msgid "Show a dialog with information about the number of conflicts."
+msgstr "Mostrar um diálogo com informações sobre o número de conflitos."
+
+#: optiondialog.cpp:900
+msgid "White space 2-file merge default:"
+msgstr "Mesclagem padrão de 2 arquivos com espaços em branco:"
+
+#: optiondialog.cpp:904 optiondialog.cpp:917
+msgid "Manual Choice"
+msgstr "Escolha Manual"
+
+#: optiondialog.cpp:908 optiondialog.cpp:922
+msgid ""
+"Allow the merge algorithm to automatically select an input for white-space-"
+"only changes."
+msgstr ""
+"Permite que o algoritmo de mesclagem selecione automaticamente uma entrada "
+"para mudanças somente em espaços em branco."
+
+#: optiondialog.cpp:913
+msgid "White space 3-file merge default:"
+msgstr "Mesclagem padrão de 3 arquivos com espaços em branco:"
+
+#: optiondialog.cpp:927
+msgid "Automatic Merge Regular Expression"
+msgstr "Expressão Regular de Mesclagem Automática"
+
+#: optiondialog.cpp:940
+msgid ""
+"Regular expression for lines where KDiff3 should automatically choose one "
+"source.\n"
+"When a line with a conflict matches the regular expression then\n"
+"- if available - C, otherwise B will be chosen."
+msgstr ""
+"A expressão regular para linhas em que o KDiff3 deverá escolher "
+"automaticamente uma origem.\n"
+"Quando uma linha com um conflito corresponder à expressão regular então\n"
+"- se possível - será C, caso contrário B será escolhido."
+
+#: optiondialog.cpp:946
+msgid "Run regular expression auto merge on merge start"
+msgstr ""
+"Executar a mesclagem automática da expressão regular ao iniciar a mesclagem"
+
+#: optiondialog.cpp:948
+msgid ""
+"Run the merge for auto merge regular expressions\n"
+"immediately when a merge starts.\n"
+msgstr ""
+"Executa a mesclagem para as expressões regulares de mesclagem automática\n"
+"imediatamente após o início de uma mesclagem.\n"
+
+#: optiondialog.cpp:953
+msgid "Version Control History Merging"
+msgstr "Mesclagem do Histórico de Controle de Versões"
+
+#: optiondialog.cpp:966
+msgid ""
+"Regular expression for the start of the version control history entry.\n"
+"Usually this line contains the \"$Log$\" keyword.\n"
+"Default value: \".*\\$Log.*\\$.*\""
+msgstr ""
+"A expressão regular para o início do item de histórico da mesclagem.\n"
+"Normalmente este valor contém a palavra chave \"$Log$\".\n"
+"Valor padrão: \".*\\$Log.*\\$.*\""
+
+#: optiondialog.cpp:984
+msgid ""
+"A version control history entry consists of several lines.\n"
+"Specify the regular expression to detect the first line (without the leading "
+"comment).\n"
+"Use parentheses to group the keys you want to use for sorting.\n"
+"If left empty, then KDiff3 assumes that empty lines separate history "
+"entries.\n"
+"See the documentation for details."
+msgstr ""
+"Um item de histórico da mesclagem consiste em várias linhas.\n"
+"Indique a expressão regular usada para detectar a primeira linha (sem o "
+"comentário inicial).\n"
+"Use os parênteses para agrupar as chaves que deseja usar na ordenação.\n"
+"Se for deixado em branco, o KDiff3 assume que as linhas em branco separam os "
+"itens de histórico.\n"
+"Veja a documentação para detalhes."
+
+#: optiondialog.cpp:992
+msgid "History merge sorting"
+msgstr "Ordenação da mesclagem do histórico"
+
+#: optiondialog.cpp:994
+msgid "Sort version control history by a key."
+msgstr "Ordenar o histórico do controle de versões por uma chave."
+
+#: optiondialog.cpp:1004
+msgid "History entry start sort key order:"
+msgstr "Ordem da chave de ordenação do início do item de histórico:"
+
+#: optiondialog.cpp:1008
+msgid ""
+"Each pair of parentheses used in the regular expression for the history "
+"start entry\n"
+"groups a key that can be used for sorting.\n"
+"Specify the list of keys (that are numbered in order of occurrence\n"
+"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n"
+"If left empty, then no sorting will be done.\n"
+"See the documentation for details."
+msgstr ""
+"Cada um dos parênteses usados na expressão regular no item inicial do "
+"histórico\n"
+"agrupa uma chave que poderá ser usada na ordenação.\n"
+"Indique a lista de chaves (que são numeradas por ordem de ocorrência,\n"
+"começando com 1), usando ',' como separador (p.ex., \"4,5,6,1,2,3,7\").\n"
+"Se deixar em branco, nenhuma ordenação será efetuada.\n"
+"Veja a documentação para detalhes."
+
+#: optiondialog.cpp:1019
+msgid "Merge version control history on merge start"
+msgstr "Mesclar o histórico do controle de versões ao iniciar a mesclagem"
+
+#: optiondialog.cpp:1021
+msgid "Run version control history automerge on merge start."
+msgstr ""
+"Executar mesclagem automática do histórico de controle de versões ao iniciar "
+"a mesclagem."
+
+#: optiondialog.cpp:1025
+msgid "Max number of history entries:"
+msgstr "Número máximo de itens do histórico:"
+
+#: optiondialog.cpp:1028
+msgid "Cut off after specified number. Use -1 for infinite number of entries."
+msgstr ""
+"Recortar após o número indicado. Usar -1 para um número infinito de "
+"elementos."
+
+#: optiondialog.cpp:1032
+msgid "Test your regular expressions"
+msgstr "Testar suas expressões regulares"
+
+#: optiondialog.cpp:1037
+msgid "Irrelevant merge command:"
+msgstr "Comando de mesclagem irrelevante:"
+
+#: optiondialog.cpp:1041
+msgid ""
+"If specified this script is run after automerge\n"
+"when no other relevant changes were detected.\n"
+"Called with the parameters: filename1 filename2 filename3"
+msgstr ""
+"Se for indicado, este script é executado após a mesclagem automática\n"
+"quando não forem detectadas mais alterações relevantes.\n"
+"É invocado com os parâmetros: arquivo1 arquivo2 arquivo3"
+
+#: optiondialog.cpp:1047
+msgid "Auto save and quit on merge without conflicts"
+msgstr "Gravar automaticamente e sair na mesclagem sem conflitos"
+
+#: optiondialog.cpp:1050
+msgid ""
+"If KDiff3 was started for a file-merge from the command line and all\n"
+"conflicts are solvable without user interaction then automatically save and "
+"quit.\n"
+"(Similar to command line option \"--auto\".)"
+msgstr ""
+"Se o KDiff3 foi iniciado para uma mesclagem de arquivo a partir da linha de "
+"comando e todos os\n"
+"conflitos podem ser resolvidos sem interação do usuário e, após isso, salva "
+"e sai automaticamente.\n"
+"(Semelhante à opção de linha de comando \"--auto\".)"
+
+#: optiondialog.cpp:1061 optiondialog.cpp:1062
+msgid "Directory"
+msgstr "Diretório"
+
+#: optiondialog.cpp:1075
+msgid "Recursive directories"
+msgstr "Diretórios Recursivos"
+
+#: optiondialog.cpp:1077
+msgid "Whether to analyze subdirectories or not."
+msgstr "Decide analisar sub-diretórios ou não."
+
+#: optiondialog.cpp:1079
+msgid "File pattern(s):"
+msgstr "Padrão(ões) de Arquivo:"
+
+#: optiondialog.cpp:1084
+msgid ""
+"Pattern(s) of files to be analyzed. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Padrão(ões) de arquivos a analisar.\n"
+"Caracteres especiais: '*' e '?'\n"
+"Podem ser indicados vários padrões usando o separador: ';'"
+
+#: optiondialog.cpp:1090
+msgid "File-anti-pattern(s):"
+msgstr "Antipadrão(ões) de arquivo:"
+
+#: optiondialog.cpp:1095
+msgid ""
+"Pattern(s) of files to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Padrão(ões) de arquivos a excluir da análise.\n"
+"Caracteres especiais: '*' e '?'\n"
+"Podem ser indicados vários padrões usando o separador: ';'"
+
+#: optiondialog.cpp:1101
+msgid "Dir-anti-pattern(s):"
+msgstr "Antipadrão(ões) de diretório:"
+
+#: optiondialog.cpp:1106
+msgid ""
+"Pattern(s) of directories to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Padrão(ões) de diretórios a excluir da análise.\n"
+"Caracteres especiais: '*' e '?'\n"
+"Podem ser indicados vários padrões usando o separador: ';'"
+
+#: optiondialog.cpp:1112
+msgid "Use .cvsignore"
+msgstr "Usar .cvsignore"
+
+#: optiondialog.cpp:1115
+msgid ""
+"Extends the antipattern to anything that would be ignored by CVS.\n"
+"Via local \".cvsignore\" files this can be directory specific."
+msgstr ""
+"Estende o antipadrão para qualquer coisa que possa ser ignorada pelo CVS.\n"
+"Através de arquivos \".cvsignore\" locais isso pode ser específico para cada "
+"diretório."
+
+#: optiondialog.cpp:1120
+msgid "Find hidden files and directories"
+msgstr "Encontrar arquivos e diretórios ocultos"
+
+#: optiondialog.cpp:1123
+msgid "Finds files and directories with the hidden attribute."
+msgstr "Encontra arquivos e diretórios com o atributo oculto."
+
+#: optiondialog.cpp:1125
+msgid "Finds files and directories starting with '.'."
+msgstr "Encontrar arquivos e diretórios começando com '.'."
+
+#: optiondialog.cpp:1129
+msgid "Follow file links"
+msgstr "Seguir as ligações de arquivos"
+
+#: optiondialog.cpp:1132
+msgid ""
+"On: Compare the file the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+"Ligado: Compara o arquivo para o qual a ligação aponta.\n"
+"Desligado: Compara as ligações."
+
+#: optiondialog.cpp:1137
+msgid "Follow directory links"
+msgstr "Seguir ligações de diretório"
+
+#: optiondialog.cpp:1140
+msgid ""
+"On: Compare the directory the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+"Ligado: Compara o diretório para o qual a ligação aponta.\n"
+"Desligado: Compara as ligações."
+
+#: optiondialog.cpp:1156
+msgid "Case sensitive filename comparison"
+msgstr ""
+"Comparação de nomes de arquivos com distinção entre maiúsculas e minúsculas"
+
+#: optiondialog.cpp:1159
+msgid ""
+"The directory comparison will compare files or directories when their names "
+"match.\n"
+"Set this option if the case of the names must match. (Default for Windows is "
+"off, otherwise on.)"
+msgstr ""
+"A comparação de diretório irá comparar os arquivos ou diretórios quando os "
+"seus nomes corresponderem.\n"
+"Configure esta opção se a caixa dos nomes deve corresponder. (O padrão para "
+"Windows é desligada; caso contrário ligada.)"
+
+#: optiondialog.cpp:1163
+msgid "File Comparison Mode"
+msgstr "Modo de Comparação de Arquivo"
+
+#: optiondialog.cpp:1169
+msgid "Binary comparison"
+msgstr "Comparação binária"
+
+#: optiondialog.cpp:1170
+msgid "Binary comparison of each file. (Default)"
+msgstr "Comparação binária de cada arquivo. (Padrão)"
+
+#: optiondialog.cpp:1173
+msgid "Full analysis"
+msgstr "Análise completa"
+
+#: optiondialog.cpp:1174
+msgid ""
+"Do a full analysis and show statistics information in extra columns.\n"
+"(Slower than a binary comparison, much slower for binary files.)"
+msgstr ""
+"Fazer uma análise completa e mostrar informações estatísticas em colunas "
+"extra.\n"
+"(Mais lento que a comparação binária, muito mais lento para arquivos "
+"binários.)"
+
+#: optiondialog.cpp:1178
+msgid "Trust the size and modification date (unsafe)"
+msgstr "Confiar no tamanho e data de modificação (inseguro)"
+
+#: optiondialog.cpp:1179
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"Files with equal contents but different modification dates will appear as "
+"different.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"Assumir que os arquivos são iguais se a data de modificação e o tamanho do "
+"arquivo são iguais.\n"
+"Arquivos com conteúdos iguais mas datas de modificação diferentes irão "
+"aparecer como diferentes.\n"
+"Útil para diretórios grandes ou redes lentas."
+
+#: optiondialog.cpp:1184
+msgid ""
+"Trust the size and date, but use binary comparison if date does not match "
+"(unsafe)"
+msgstr ""
+"Confiar no tamanho e data, mas usar comparação binária se a data não "
+"combinar (inseguro)"
+
+#: optiondialog.cpp:1185
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"If the dates are not equal but the sizes are, use binary comparison.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"Assumir que os arquivos são iguais se a data de modificação e o tamanho do "
+"arquivo são iguais.\n"
+"Se a data não é igual mas os tamanhos são, usar comparação binária.\n"
+"Útil para diretórios grandes ou redes lentas."
+
+#: optiondialog.cpp:1190
+msgid "Trust the size (unsafe)"
+msgstr "Confiar no tamanho (inseguro)"
+
+#: optiondialog.cpp:1191
+msgid ""
+"Assume that files are equal if their file lengths are equal.\n"
+"Useful for big directories or slow networks when the date is modified during "
+"download."
+msgstr ""
+"Assumir que os arquivos são iguais se o seu tamanho é igual.\n"
+"Útil para diretórios grandes ou para redes lentas quando a data é modificada "
+"durante o download."
+
+#: optiondialog.cpp:1199
+msgid "Synchronize directories"
+msgstr "Sincronizar diretórios"
+
+#: optiondialog.cpp:1202
+msgid ""
+"Offers to store files in both directories so that\n"
+"both directories are the same afterwards.\n"
+"Works only when comparing two directories without specifying a destination."
+msgstr ""
+"Oferece-se para armazenar arquivos em ambos diretórios\n"
+"de modo que ambos fiquem iguais no fim.\n"
+"Funciona apenas ao comparar dois diretórios sem indicar um destino."
+
+#: optiondialog.cpp:1208
+msgid "White space differences considered equal"
+msgstr "Diferenças de espaço em branco consideradas iguais"
+
+#: optiondialog.cpp:1211
+msgid ""
+"If files differ only by white space consider them equal.\n"
+"This is only active when full analysis is chosen."
+msgstr ""
+"Se os arquivos apenas diferem em espaço em branco considerá-los iguais.\n"
+"Isto está ativo apenas quando é escolhida a análise completa."
+
+#: optiondialog.cpp:1217
+msgid "Copy newer instead of merging (unsafe)"
+msgstr "Copiar mais novo ao invés de mesclar (inseguro)"
+
+#: optiondialog.cpp:1220
+msgid ""
+"Don't look inside, just take the newer file.\n"
+"(Use this only if you know what you are doing!)\n"
+"Only effective when comparing two directories."
+msgstr ""
+"Não analisa, apenas pega o arquivo mais novo.\n"
+"(Use somente se você sabe o que está fazendo!)\n"
+"Só é efetivo quando comparando dois diretórios."
+
+#: optiondialog.cpp:1225
+msgid "Backup files (.orig)"
+msgstr "Backup dos arquivos (.orig)"
+
+#: optiondialog.cpp:1228
+msgid ""
+"If a file would be saved over an old file, then the old file\n"
+"will be renamed with a '.orig' extension instead of being deleted."
+msgstr ""
+"Se um arquivo for salvo sobre um arquivo antigo, o arquivo antigo\n"
+"será renomeado com uma extensão '.orig' ao invés de ser removido."
+
+#: optiondialog.cpp:1301 optiondialog.cpp:1302
+msgid "Regional Settings"
+msgstr "Configurações Regionais"
+
+#: optiondialog.cpp:1402
+msgid "Language (restart required)"
+msgstr "Idioma (é necessário reiniciar)"
+
+#: optiondialog.cpp:1445
+msgid ""
+"Choose the language of the GUI strings or \"Auto\".\n"
+"For a change of language to take place, quit and restart KDiff3."
+msgstr ""
+"Escolha o idioma da interface gráfica ou \"Auto\".\n"
+"Para que a mudança de idioma tenha efeito, saia e reinicie o KDiff3."
+
+#: optiondialog.cpp:1463
+msgid "Use the same encoding for everything:"
+msgstr "Utilizar a mesma codificação para tudo:"
+
+#: optiondialog.cpp:1466
+msgid ""
+"Enable this allows to change all encodings by changing the first only.\n"
+"Disable this if different individual settings are needed."
+msgstr ""
+"Ative isto para permitir modificar todas as codificações alterando apenas a "
+"primeira.\n"
+"Desative se forem necessárias opções individuais."
+
+#: optiondialog.cpp:1471
+msgid "Note: Local Encoding is "
+msgstr "Nota: A codificação local é "
+
+#: optiondialog.cpp:1475
+msgid "File Encoding for A:"
+msgstr "Codificação de Arquivo para A:"
+
+#: optiondialog.cpp:1481
+msgid ""
+"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n"
+"If the file is not Unicode then the selected encoding will be used as "
+"fallback.\n"
+"(Unicode detection depends on the first bytes of a file.)"
+msgstr ""
+"Se estiver ativo, então a codificação Unicode (UTF-16 ou UTF-8) será "
+"detectada.\n"
+"Se o arquivo não for Unicode então a codificação selecionada será usada como "
+"alternativa.\n"
+"(A detecção de Unicode depende dos primeiros bytes de um arquivo.)"
+
+#: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503
+msgid "Auto Detect Unicode"
+msgstr "Auto-Detectar o Unicode"
+
+#: optiondialog.cpp:1490
+msgid "File Encoding for B:"
+msgstr "Codificação de Arquivo para B:"
+
+#: optiondialog.cpp:1499
+msgid "File Encoding for C:"
+msgstr "Codificação de Arquivo para C:"
+
+#: optiondialog.cpp:1508
+msgid "File Encoding for Merge Output and Saving:"
+msgstr "Codificação de Arquivo para Mesclagem de Resultado e Gravação:"
+
+#: optiondialog.cpp:1512
+msgid "Auto Select"
+msgstr "Seleção Automática"
+
+#: optiondialog.cpp:1515
+msgid ""
+"If enabled then the encoding from the input files is used.\n"
+"In ambiguous cases a dialog will ask the user to choose the encoding for "
+"saving."
+msgstr ""
+"Se estiver ativada, será usada a codificação dos arquivos de entrada.\n"
+"Em casos ambíguos, uma caixa de diálogo irá pedir ao usuário para escolher a "
+"codificação com que deseja gravar."
+
+#: optiondialog.cpp:1519
+msgid "File Encoding for Preprocessor Files:"
+msgstr "Codificação de Arquivo dos Arquivos de Pré-processamento:"
+
+#: optiondialog.cpp:1530
+msgid "Right To Left Language"
+msgstr "Idioma da Direita para a Esquerda"
+
+#: optiondialog.cpp:1533
+msgid ""
+"Some languages are read from right to left.\n"
+"This setting will change the viewer and editor accordingly."
+msgstr ""
+"Alguns idiomas são lidos da direita para esquerda.\n"
+"Esta opção muda o visualizador e editor apropriadamente."
+
+#: optiondialog.cpp:1548
+msgid "Integration"
+msgstr "Integração"
+
+#: optiondialog.cpp:1549
+msgid "Integration Settings"
+msgstr "Configuração de Integração"
+
+#: optiondialog.cpp:1563
+msgid "Command line options to ignore:"
+msgstr "Opções da linha de comandos a ignorar:"
+
+#: optiondialog.cpp:1568
+msgid ""
+"List of command line options that should be ignored when KDiff3 is used by "
+"other tools.\n"
+"Several values can be specified if separated via ';'\n"
+"This will suppress the \"Unknown option\" error."
+msgstr ""
+"Uma lista das opções da linha de comandos que deverão ser ignoradas, quando "
+"o KDiff3 for usado por outras ferramentas.\n"
+"Se desejar indicar vários valores, separe-os por ';'\n"
+"Isto irá eliminar o erro de \"Opção desconhecida\"."
+
+#: optiondialog.cpp:1575
+msgid "Quit also via Escape key"
+msgstr "Sair também com a tecla ESC"
+
+#: optiondialog.cpp:1578
+msgid ""
+"Fast method to exit.\n"
+"For those who are used to using the Escape key."
+msgstr ""
+"Um método rápido para sair.\n"
+"Para os que estão acostumados a usar a tecla ESC."
+
+#: optiondialog.cpp:1583
+msgid "Integrate with ClearCase"
+msgstr "Integrar com o ClearCase"
+
+#: optiondialog.cpp:1586
+msgid ""
+"Integrate with Rational ClearCase from IBM.\n"
+"Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n"
+"(Only enabled when ClearCase \"bin\" directory is in the path.)"
+msgstr ""
+"Integra com o Rational ClearCase da IBM.\n"
+"Modifica o arquivo \"map\" no subdiretório \"lib/mgrs\" do ClearCase\n"
+"(Ativo apenas quando o diretório \"bin\" do ClearCase está no path.)"
+
+#: optiondialog.cpp:1592
+msgid "Remove ClearCase Integration"
+msgstr "Remover a Integração com o ClearCase"
+
+#: optiondialog.cpp:1595
+msgid ""
+"Restore the old \"map\" file from before doing the ClearCase integration."
+msgstr ""
+"Recupera o arquivo \"map\" usado antes de fazer a integração com o ClearCase."
+
+#: optiondialog.cpp:1680
+msgid "Incompatible Font"
+msgstr "Fonte Incompatível"
+
+#: optiondialog.cpp:1681
+msgid "Continue at Own Risk"
+msgstr "Continue por sua conta e risco"
+
+#: optiondialog.cpp:1682
+msgid "Select Another Font"
+msgstr "Selecionar outra fonte"
+
+#: optiondialog.cpp:1717
+msgid "This resets all options. Not only those of the current topic."
+msgstr "Reinicia todas as opções. Não somente as desse tópico."
+
+#: pdiff.cpp:260
+msgid "PreprocessorCmd: "
+msgstr "Comando do pré-processador: "
+
+#: pdiff.cpp:265
+msgid "The following option(s) you selected might change data:\n"
+msgstr ""
+"A(s) seguinte(s) opção(ões) que você selecionou podem modificar os dados:\n"
+
+#: pdiff.cpp:266
+msgid ""
+"\n"
+"Most likely this is not wanted during a merge.\n"
+"Do you want to disable these settings or continue with these settings active?"
+msgstr ""
+"\n"
+"Muito provavelmente isso não é desejável durante uma mesclagem.\n"
+"Deseja desabilitar estas configurações, ou continuar com elas ativas?"
+
+#: pdiff.cpp:268
+msgid "Option Unsafe for Merging"
+msgstr "Opção Insegura para Mesclagem"
+
+#: pdiff.cpp:269
+msgid "Use These Options During Merge"
+msgstr "Usar Estas Opções Durante a Mesclagem"
+
+#: pdiff.cpp:270
+msgid "Disable Unsafe Options"
+msgstr "Desativar Opções Inseguras"
+
+#: pdiff.cpp:300
+msgid "Loading A"
+msgstr "Carregando A"
+
+#: pdiff.cpp:304
+msgid "Loading B"
+msgstr "Carregando B"
+
+#: pdiff.cpp:321 pdiff.cpp:347
+msgid "Diff: A <-> B"
+msgstr "Diferenças: A <-> B"
+
+#: pdiff.cpp:327 pdiff.cpp:372
+msgid "Linediff: A <-> B"
+msgstr "Dif. Linhas: A <-> B"
+
+#: pdiff.cpp:338
+msgid "Loading C"
+msgstr "Carregando C"
+
+#: pdiff.cpp:350
+msgid "Diff: B <-> C"
+msgstr "Diferenças: B <-> C"
+
+#: pdiff.cpp:353
+msgid "Diff: A <-> C"
+msgstr "Diferenças: A <-> C"
+
+#: pdiff.cpp:375
+msgid "Linediff: B <-> C"
+msgstr "Dif. Linhas: B <-> C"
+
+#: pdiff.cpp:378
+msgid "Linediff: A <-> C"
+msgstr "Dif. Linhas: A <-> C"
+
+#: pdiff.cpp:534
+msgid "All input files contain the same text, but are not binary equal."
+msgstr ""
+"Todos os arquivos de entrada contêm o mesmo texto, mas não são iguais em "
+"nível binário."
+
+#: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541
+#, kde-format
+msgid "Files %1 and %2 have equal text, but are not binary equal. \n"
+msgstr ""
+"Os arquivos %1 e %2 têm texto igual, mas não são iguais em nível binário. \n"
+
+#: pdiff.cpp:551
+msgid ""
+"Some inputfiles don't seem to be pure textfiles.\n"
+"Note that the KDiff3-merge was not meant for binary data.\n"
+"Continue at your own risk."
+msgstr ""
+"Alguns dos arquivos de entrada não parecem ser arquivos de texto puro.\n"
+"Lembre-se que a mesclagem do KDiff3 não foi pensada para dados binários.\n"
+"Continue por sua conta e risco."
+
+#: pdiff.cpp:566
+#, kde-format
+msgid ""
+"Some input characters could not be converted to valid unicode.\n"
+"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n"
+"Don't save the result if unsure. Continue at your own risk.\n"
+"Affected input files are in %1."
+msgstr ""
+"Alguns caracteres de entrada não puderam ser convertidos para Unicode "
+"válido.\n"
+"Você poderá estar usando o codificador errado (p.ex. UTF-8 para arquivos não-"
+"UTF-8).\n"
+"Não salve o resultado se não tiver certeza. Prossiga por sua conta e risco.\n"
+"Os arquivos de entrada afetados estão em %1."
+
+#: pdiff.cpp:1080
+msgid "Abort"
+msgstr "Cancelar"
+
+#: pdiff.cpp:1087 pdiff.cpp:1175
+msgid "Opening files..."
+msgstr "Abrindo arquivos..."
+
+#: pdiff.cpp:1152 pdiff.cpp:1223
+msgid "File open error"
+msgstr "Erro ao abrir o arquivo"
+
+#: pdiff.cpp:1255
+msgid "Cutting selection..."
+msgstr "Recortando seleção..."
+
+#: pdiff.cpp:1276
+msgid "Copying selection to clipboard..."
+msgstr "Copiando a seleção para a área de transferência..."
+
+#: pdiff.cpp:1292
+msgid "Inserting clipboard contents..."
+msgstr "Inserindo o conteúdo da área de transferência..."
+
+#: pdiff.cpp:1814
+msgid "Save && Continue"
+msgstr "Salvar e Continuar"
+
+#: pdiff.cpp:1815
+msgid "Continue Without Saving"
+msgstr "Continuar sem Salvar"
+
+#: pdiff.cpp:2018
+msgid "Search complete."
+msgstr "Procura terminada."
+
+#: pdiff.cpp:2018
+msgid "Search Complete"
+msgstr "Procura Terminada"
+
+#: pdiff.cpp:2252
+msgid "Nothing is selected in either diff input window."
+msgstr "Nada foi selecionado em nenhuma janela de entrada de diferenças."
+
+#: pdiff.cpp:2252
+msgid "Error while adding manual diff range"
+msgstr "Erro ao adicionar o intervalo manual de diferenças"
+
+#: kdiff3_shell.cpp:76
+msgid ""
+"Could not initialize the KDiff3 part.\n"
+"This usually happens due to an installation problem. Please read the README-"
+"file in the source package for details."
+msgstr ""
+"Não foi possível inicializar o componente KDiff3.\n"
+"Isso normalmente acontece devido a um problema na instalação. Leia o arquivo "
+"README no pacote de fontes para detalhes."
+
+#: rc.cpp:1
+msgctxt "NAME OF TRANSLATORS"
+msgid "Your names"
+msgstr "Diniz Bortolotto"
+
+#: rc.cpp:2
+msgctxt "EMAIL OF TRANSLATORS"
+msgid "Your emails"
+msgstr "diniz.bortolotto@gmail.com"
+
+#. i18n: file: kdiff3_part.rc:4
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:5
+msgid "&KDiff3"
+msgstr "&KDiff3"
+
+#. i18n: file: kdiff3_part.rc:13
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:8
+msgid "Configure KDiff3"
+msgstr "Configurar o KDiff3"
+
+#. i18n: file: kdiff3_part.rc:16
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:11
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#. i18n: file: kdiff3_shell.rc:106
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:38
+msgid "Main Toolbar"
+msgstr "Barra de ferramentas principal"
diff --git a/po/pt_BR/kdiff3fileitemactionplugin.po b/po/pt_BR/kdiff3fileitemactionplugin.po
new file mode 100644 (file)
index 0000000..1d4d1fd
--- /dev/null
@@ -0,0 +1,100 @@
+# Copyright (C) YEAR This_file_is_part_of_KDE
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Marcus Gama <marcus.gama@gmail.com>, 2011.
+# André Marcelo Alvarenga <andrealvarenga@gmx.net>, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-08-05 01:41-0300\n"
+"Last-Translator: André Marcelo Alvarenga <andrealvarenga@gmx.net>\n"
+"Language-Team: Brazilian Portuguese <kde-i18n-pt_br@kde.org>\n"
+"Language: pt_BR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.0\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#: kdiff3fileitemaction.cpp:94
+msgid "KDiff3 ..."
+msgstr "KDiff3 ..."
+
+#: kdiff3fileitemaction.cpp:125
+#, kde-format
+msgid "Compare with %1"
+msgstr "Comparar com %1"
+
+#: kdiff3fileitemaction.cpp:131
+#, kde-format
+msgid "Merge with %1"
+msgstr "Mesclar com %1"
+
+#: kdiff3fileitemaction.cpp:137
+#, kde-format
+msgid "Save '%1' for later"
+msgstr "Salvar '%1' para mais tarde"
+
+#: kdiff3fileitemaction.cpp:143
+msgid "3-way merge with base"
+msgstr "Mesclar 3 níveis com a base"
+
+#: kdiff3fileitemaction.cpp:150
+msgid "Compare with ..."
+msgstr "Comparar com..."
+
+#: kdiff3fileitemaction.cpp:162
+msgid "Clear list"
+msgstr "Limpar a lista"
+
+#: kdiff3fileitemaction.cpp:170
+msgid "Compare"
+msgstr "Comparar"
+
+#: kdiff3fileitemaction.cpp:176
+msgid "3 way comparison"
+msgstr "Comparação em 3 níveis"
+
+#: kdiff3fileitemaction.cpp:180
+msgid "About KDiff3 menu plugin ..."
+msgstr "Sobre o plugin de menu do KDiff3..."
+
+#: kdiff3fileitemaction.cpp:284
+msgid ""
+"KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+"Plugin de ação de item de arquivo do KDiff3: Copyright (C) 2011 Joachim "
+"Eibl\n"
+"Página Web do KDiff3: http://kdiff3.sourceforge.net\n"
+"\n"
+
+#: kdiff3fileitemaction.cpp:286
+msgid ""
+"Using the contextmenu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else \"Save\" the first file for later. It "
+"will appear in the \"Compare With ...\" submenu. Then use \"Compare With\" "
+"on second file.\n"
+"For a 3-way merge first \"Save\" the base file, then the branch to merge and "
+"choose \"3-way merge with base\" on the other branch which will be used as "
+"destination.\n"
+"Same also applies to directory comparison and merge."
+msgstr ""
+"Usar a extensão do menu de contexto:\n"
+"Para uma comparação simples entre dois arquivos selecionados, escolha "
+"\"Comparar\".\n"
+"Se o outro arquivo estiver em outro local qualquer, você pode \"Salvar\" o "
+"primeiro arquivo para usar mais tarde. Irá depois aparecer no submenu "
+"\"Comparar com ...\". Depois use o \"Comparar com\" no segundo arquivo.\n"
+"Para uma mesclagem em 3 níveis, você pode \"Salvar\" o arquivo de base, "
+"depois a ramificação a mesclar e selecionar \"Mesclar 3 níveis com a base\" "
+"na outra ramificação que será usada como destino.\n"
+"O mesmo também se aplica à comparação e mesclagem de pastas."
+
+#: kdiff3fileitemaction.cpp:294
+msgid "About KDiff3 File Item Action Plugin"
+msgstr "Sobre o plugin de ação sobre itens de arquivos do KDiff3"
diff --git a/po/pt_BR/kdiff3plugin.po b/po/pt_BR/kdiff3plugin.po
new file mode 100644 (file)
index 0000000..a69afd6
--- /dev/null
@@ -0,0 +1,100 @@
+# tradução do kdiff3plugin.po para Brazilian Portuguese
+# Copyright (C) YEAR This_file_is_part_of_KDE
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Luiz Fernando Ranghetti <elchevive@opensuse.org>, 2008, 2010.
+# André Marcelo Alvarenga <andrealvarenga@gmx.net>, 2008, 2009, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3plugin\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-05-07 22:43-0300\n"
+"Last-Translator: André Marcelo Alvarenga <andrealvarenga@gmx.net>\n"
+"Language-Team: Brazilian Portuguese <kde-i18n-pt_br@kde.org>\n"
+"Language: pt_BR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.0\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#: kdiff3plugin.cpp:107
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#: kdiff3plugin.cpp:114
+#, kde-format
+msgid "Compare with %1"
+msgstr "Comparar com %1"
+
+#: kdiff3plugin.cpp:120
+#, kde-format
+msgid "Merge with %1"
+msgstr "Mesclar com %1"
+
+#: kdiff3plugin.cpp:126
+#, kde-format
+msgid "Save '%1' for later"
+msgstr "Salvar '%1' para mais tarde"
+
+#: kdiff3plugin.cpp:132
+msgid "3-way merge with base"
+msgstr "Mescar 3 níveis com a base"
+
+#: kdiff3plugin.cpp:139
+msgid "Compare with ..."
+msgstr "Comparar com..."
+
+#: kdiff3plugin.cpp:149
+msgid "Clear list"
+msgstr "Limpar lista"
+
+#: kdiff3plugin.cpp:157
+msgid "Compare"
+msgstr "Comparar"
+
+#: kdiff3plugin.cpp:163
+msgid "3 way comparison"
+msgstr "Comparação em 3 níveis"
+
+#: kdiff3plugin.cpp:167
+msgid "About KDiff3 menu plugin ..."
+msgstr "Sobre o plug-in de menu do KDiff3..."
+
+#: kdiff3plugin.cpp:269
+msgid ""
+"KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+"Plug-in de menu do KDiff3: Copyright (C) 2008 Joachim Eibl\n"
+"Página Web do KDiff3: http://kdiff3.sourceforge.net\n"
+"\n"
+
+#: kdiff3plugin.cpp:271
+msgid ""
+"Using the context menu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else, \"Save\" the first file for later, and "
+"it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With"
+"\" on the second file.\n"
+"For a 3-way merge first, \"Save\" the base file, then the branch to merge, "
+"and then \"3-way merge with base\" on the other branch which will be used as "
+"the destination.\n"
+"The same also applies to directory comparison and merge."
+msgstr ""
+"Usando a extensão do menu de contexto:\n"
+"Para uma comparação simples de dois arquivos selecionados, escolha a opção "
+"\"Comparar\".\n"
+"Se o outro arquivo não estiver no mesmo local, você pode \"Salvar\" o "
+"primeiro arquivo mais tarde, e irá aparecer então no submenu \"Comparar "
+"com...\". Então, use a opção \"Comparar com\" no segundo arquivo.\n"
+"Para uma mesclagem em 3 níveis, primeiro pode \"Salvar\" o arquivo de base, "
+"depois a ramificação a reunir e depois escolha a opção \"mesclar a 3 níveis "
+"com a base\" sobre a ramificação que servirá de destino.\n"
+"O mesmo se aplica à comparação e reunião de pastas."
+
+#: kdiff3plugin.cpp:279
+msgid "About KDiff3 Menu Plugin"
+msgstr "Sobre o plug-in de menu do KDiff3"
diff --git a/po/ro/CMakeLists.txt b/po/ro/CMakeLists.txt
new file mode 100644 (file)
index 0000000..83a849f
--- /dev/null
@@ -0,0 +1,2 @@
+file(GLOB _po_files *.po)
+GETTEXT_PROCESS_PO_FILES(ro ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
diff --git a/po/ro/kdiff3.po b/po/ro/kdiff3.po
new file mode 100644 (file)
index 0000000..b54481c
--- /dev/null
@@ -0,0 +1,3001 @@
+# translation of @PACKAGE.po to @LANGUAGE
+# Copyright (C).
+#
+# Claudiu Costin <claudiuc@kde.org>, 2003.
+# Sergiu Bivol <sergiu@ase.md>, 2008, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: @PACKAGE\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2009-08-04 13:51+0300\n"
+"Last-Translator: Sergiu Bivol <sergiu@ase.md>\n"
+"Language-Team: Romanian <kde-i18n-ro@kde.org>\n"
+"Language: ro\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.0\n"
+"Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < "
+"20)) ? 1 : 2;\n"
+
+#: kreplacements/kreplacements.h:105
+#, fuzzy
+msgid "Continue"
+msgstr "Continuare"
+
+#: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158
+#: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512
+msgid "Cancel"
+msgstr "Renunță"
+
+#: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631
+#, fuzzy
+msgid "Quit"
+msgstr "Termină"
+
+#: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339
+#, fuzzy
+msgid "Ok"
+msgstr "OK"
+
+#: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715
+msgid "Help"
+msgstr "Ajutor"
+
+#: kreplacements/kreplacements.cpp:185
+msgid "Defaults"
+msgstr "Implicite"
+
+#. i18n: file: kdiff3_shell.rc:4
+#. i18n: ectx: Menu (file)
+#: kreplacements/kreplacements.cpp:296 rc.cpp:14
+#, fuzzy
+msgid "&File"
+msgstr "&Fișier"
+
+#: kreplacements/kreplacements.cpp:297
+#, fuzzy
+msgid "&Edit"
+msgstr "&Editează"
+
+#. i18n: file: kdiff3_shell.rc:7
+#. i18n: ectx: Menu (directory)
+#: kreplacements/kreplacements.cpp:298 rc.cpp:17
+#, fuzzy
+msgid "&Directory"
+msgstr "Director"
+
+#. i18n: file: kdiff3_shell.rc:50
+#. i18n: ectx: Menu (movement)
+#: kreplacements/kreplacements.cpp:301 rc.cpp:26
+msgid "&Movement"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:61
+#. i18n: ectx: Menu (diff)
+#: kreplacements/kreplacements.cpp:302 rc.cpp:29
+msgid "D&iffview"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:73
+#. i18n: ectx: Menu (merge)
+#: kreplacements/kreplacements.cpp:303 rc.cpp:32
+#, fuzzy
+msgid "&Merge"
+msgstr "combinație"
+
+#. i18n: file: kdiff3_shell.rc:95
+#. i18n: ectx: Menu (window)
+#: kreplacements/kreplacements.cpp:304 rc.cpp:35
+msgid "&Window"
+msgstr "&Fereastră"
+
+#: kreplacements/kreplacements.cpp:305
+#, fuzzy
+msgid "&Settings"
+msgstr "&Configurări"
+
+#: kreplacements/kreplacements.cpp:306
+msgid "&Help"
+msgstr "&Ajutor"
+
+#: kreplacements/kreplacements.cpp:353
+msgid "&About"
+msgstr "&Despre"
+
+#: kreplacements/kreplacements.cpp:369
+msgid "A&uthor"
+msgstr "A&utor"
+
+#: kreplacements/kreplacements.cpp:383
+msgid "&Thanks To"
+msgstr "&Mulțumiri"
+
+#. i18n: file: kdiff3_shell.rc:30
+#. i18n: ectx: Menu (dir_current_merge_menu)
+#: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497
+#: rc.cpp:20
+msgid "Current Item Merge Operation"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:38
+#. i18n: ectx: Menu (dir_current_sync_menu)
+#: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498
+#: rc.cpp:23
+msgid "Current Item Sync Operation"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:597
+#, fuzzy
+msgid "Open"
+msgstr "Deschidere"
+
+#: kreplacements/kreplacements.cpp:606
+#, fuzzy
+msgid "Save"
+msgstr "Salvează"
+
+#: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720
+msgid "Save As..."
+msgstr "Salvare ca..."
+
+#: kreplacements/kreplacements.cpp:623
+#, fuzzy
+msgid "Print..."
+msgstr "Tipărește..."
+
+#: kreplacements/kreplacements.cpp:639
+#, fuzzy
+msgid "Cut"
+msgstr "Decupare"
+
+#: kreplacements/kreplacements.cpp:647
+#, fuzzy
+msgid "Copy"
+msgstr "Copiere"
+
+#: kreplacements/kreplacements.cpp:655
+#, fuzzy
+msgid "Paste"
+msgstr "Lipire"
+
+#: kreplacements/kreplacements.cpp:663
+#, fuzzy
+msgid "Select All"
+msgstr "Selectează tot"
+
+#: kreplacements/kreplacements.cpp:671
+msgid "Show Toolbar"
+msgstr "Afișează bara de unelte"
+
+#: kreplacements/kreplacements.cpp:679
+#, fuzzy
+#| msgid "Show &Statusbar"
+msgid "Show &Status Bar"
+msgstr "Afișează bara de &stare"
+
+#: kreplacements/kreplacements.cpp:687
+#, kde-format
+msgid "&Configure %1..."
+msgstr "&Configurează %1..."
+
+#: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707
+#, fuzzy
+msgid "About"
+msgstr "Despre:"
+
+#: kreplacements/kreplacements.cpp:722
+#, fuzzy
+msgid "Find"
+msgstr "Caută"
+
+#: kreplacements/kreplacements.cpp:730
+#, fuzzy
+msgid "Find Next"
+msgstr "Caută următorul"
+
+#: kreplacements/kreplacements.cpp:750
+msgid "Select Font"
+msgstr "Selectare font"
+
+#: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676
+msgid ""
+"You selected a variable width font.\n"
+"\n"
+"Because this program doesn't handle variable width fonts\n"
+"correctly, you might experience problems while editing.\n"
+"\n"
+"Do you want to continue or do you want to select another font."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:792
+msgid "Incompatible font."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Continue at my own risk"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Select another font"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1134
+msgid "For more documentation, see the help-menu or the subdirectory doc."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "KDiff3-Usage"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1137
+#, fuzzy
+msgid "Ignore"
+msgstr "Ignorat"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Exit"
+msgstr "Ieșire"
+
+#: diff.cpp:251
+msgid "Writing clipboard data to temp file failed."
+msgstr ""
+
+#: diff.cpp:255
+msgid "From Clipboard"
+msgstr "Din clipboard"
+
+#: diff.cpp:471
+msgid "Expecting space after closing quotation mark."
+msgstr ""
+
+#: diff.cpp:474
+msgid "Not matching quotation marks."
+msgstr ""
+
+#: diff.cpp:496
+msgid "Unexpected quotation mark within argument."
+msgstr ""
+
+#: diff.cpp:503
+msgid "No program specified."
+msgstr ""
+
+#: diff.cpp:605
+#, kde-format
+msgid ""
+"Preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The preprocessing command will be disabled now."
+msgstr ""
+
+#: diff.cpp:653
+#, kde-format
+msgid ""
+"The line-matching-preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The line-matching-preprocessing command will be disabled now."
+msgstr ""
+
+#: diff.cpp:1776 diff.cpp:1790
+msgid ""
+"Data loss error:\n"
+"If it is reproducible please contact the author.\n"
+msgstr ""
+
+#: diff.cpp:1778 diff.cpp:1792
+msgid "Severe Internal Error"
+msgstr ""
+
+#: directorymergewindow.cpp:136
+msgid "Mix of links and normal files."
+msgstr ""
+
+#: directorymergewindow.cpp:143
+#, fuzzy
+msgid "Link: "
+msgstr "Legătură"
+
+#: directorymergewindow.cpp:151
+#, fuzzy
+msgid "Size. "
+msgstr "Mărime "
+
+#: directorymergewindow.cpp:164 directorymergewindow.cpp:174
+msgid "Date & Size: "
+msgstr ""
+
+#: directorymergewindow.cpp:184 directorymergewindow.cpp:190
+#, kde-format
+msgid "Creating temp copy of %1 failed."
+msgstr ""
+
+#: directorymergewindow.cpp:201 directorymergewindow.cpp:209
+#, kde-format
+msgid "Opening %1 failed."
+msgstr ""
+
+#: directorymergewindow.cpp:213
+msgid "Comparing file..."
+msgstr ""
+
+#: directorymergewindow.cpp:223 directorymergewindow.cpp:229
+#, kde-format
+msgid "Error reading from %1"
+msgstr "Eroare la citirea din %1"
+
+#: directorymergewindow.cpp:358
+msgid "Name"
+msgstr "Denumire"
+
+#: directorymergewindow.cpp:358
+msgid "Operation"
+msgstr "Operație"
+
+#: directorymergewindow.cpp:358
+msgid "Status"
+msgstr "Stare"
+
+#: directorymergewindow.cpp:359
+msgid "Unsolved"
+msgstr "Nesoluționat"
+
+#: directorymergewindow.cpp:359
+msgid "Solved"
+msgstr "Soluționat"
+
+#: directorymergewindow.cpp:359
+msgid "Nonwhite"
+msgstr ""
+
+#: directorymergewindow.cpp:359
+msgid "White"
+msgstr "Alb"
+
+#: directorymergewindow.cpp:388
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort "
+"the merge and rescan the directory?"
+msgstr ""
+
+#: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655
+#: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823
+msgid "Warning"
+msgstr "Avertisment"
+
+#: directorymergewindow.cpp:390 directorymergewindow.cpp:2965
+msgid "Rescan"
+msgstr "Recitire"
+
+#: directorymergewindow.cpp:391 pdiff.cpp:1081
+msgid "Continue Merging"
+msgstr ""
+
+#: directorymergewindow.cpp:548
+msgid "Opening of directories failed:"
+msgstr "Deschiderea directoarelor a eșuat:"
+
+#: directorymergewindow.cpp:551
+#, kde-format
+msgid "Dir A \"%1\" does not exist or is not a directory.\n"
+msgstr "Directorul A „%1” nu există sau nu este un director.\n"
+
+#: directorymergewindow.cpp:554
+#, kde-format
+msgid "Dir B \"%1\" does not exist or is not a directory.\n"
+msgstr "Directorul B „%1” nu există sau nu este un director.\n"
+
+#: directorymergewindow.cpp:557
+#, kde-format
+msgid "Dir C \"%1\" does not exist or is not a directory.\n"
+msgstr "Directorul C „%1” nu există sau nu este un director.\n"
+
+#: directorymergewindow.cpp:559
+msgid "Directory Open Error"
+msgstr "Eroare la deschiderea directorului"
+
+#: directorymergewindow.cpp:567
+msgid ""
+"The destination directory must not be the same as A or B when three "
+"directories are merged.\n"
+"Check again before continuing."
+msgstr ""
+
+#: directorymergewindow.cpp:569
+msgid "Parameter Warning"
+msgstr "Avertizare parametru"
+
+#: directorymergewindow.cpp:574
+msgid "Scanning directories..."
+msgstr "Scanare directoare..."
+
+#: directorymergewindow.cpp:607
+msgid "Reading Directory A"
+msgstr "Citire director A"
+
+#: directorymergewindow.cpp:629
+msgid "Reading Directory B"
+msgstr "Citire director B"
+
+#: directorymergewindow.cpp:651
+msgid "Reading Directory C"
+msgstr "Citire director C"
+
+#: directorymergewindow.cpp:677
+msgid "Some subdirectories were not readable in"
+msgstr ""
+
+#: directorymergewindow.cpp:682
+msgid "Check the permissions of the subdirectories."
+msgstr "Verificați permisiunile subdirectoarelor."
+
+#: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737
+#: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233
+#: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328
+msgid "Ready."
+msgstr "Gata."
+
+#: directorymergewindow.cpp:735
+msgid "Directory Comparison Status"
+msgstr "Starea comparării directoarelor"
+
+#: directorymergewindow.cpp:736
+msgid "Number of subdirectories:"
+msgstr "Numărul de subdirectoare:"
+
+#: directorymergewindow.cpp:737
+msgid "Number of equal files:"
+msgstr "Numărul de fișiere egale:"
+
+#: directorymergewindow.cpp:738
+msgid "Number of different files:"
+msgstr "Numărul de fișiere diferite:"
+
+#: directorymergewindow.cpp:741
+msgid "Number of manual merges:"
+msgstr "Numărul de combinări manuale:"
+
+#: directorymergewindow.cpp:912
+msgid "This affects all merge operations."
+msgstr "Aceasta afectează toate operațiile de combinare."
+
+#: directorymergewindow.cpp:913
+msgid "Changing All Merge Operations"
+msgstr ""
+
+#: directorymergewindow.cpp:1312
+msgid "Processing "
+msgstr "Procesare "
+
+#: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742
+msgid "To do."
+msgstr "De făcut."
+
+#: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996
+msgid "Copy A to B"
+msgstr "Copiază A în B"
+
+#: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997
+msgid "Copy B to A"
+msgstr "Copiază B în A"
+
+#: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998
+msgid "Delete A"
+msgstr "Șterge A"
+
+#: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999
+msgid "Delete B"
+msgstr "Șterge B"
+
+#: directorymergewindow.cpp:1814
+msgid "Delete A & B"
+msgstr "Șterge A și B"
+
+#: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001
+msgid "Merge to A"
+msgstr ""
+
+#: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002
+msgid "Merge to B"
+msgstr ""
+
+#: directorymergewindow.cpp:1817
+msgid "Merge to A & B"
+msgstr ""
+
+#: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993
+msgid "Delete (if exists)"
+msgstr "Șterge (dacă există)"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+#: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869
+msgid "Merge"
+msgstr "Combinație"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+msgid "Merge (manual)"
+msgstr "Combină (manual)"
+
+#: directorymergewindow.cpp:1824
+msgid "Error: Conflicting File Types"
+msgstr ""
+
+#: directorymergewindow.cpp:1825
+msgid "Error: Changed and Deleted"
+msgstr ""
+
+#: directorymergewindow.cpp:1826
+msgid "Error: Dates are equal but files are not."
+msgstr ""
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906
+msgid "This operation is currently not possible."
+msgstr "Această operație nu este posibilă momentan."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174
+msgid "Operation Not Possible"
+msgstr "Operație imposibilă"
+
+#: directorymergewindow.cpp:1945
+msgid ""
+"This should never happen: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"If you know how to reproduce this, please contact the program author."
+msgstr ""
+
+#: directorymergewindow.cpp:1945
+msgid "Program Error"
+msgstr "Eroare program"
+
+#: directorymergewindow.cpp:1956
+msgid "An error occurred while copying.\n"
+msgstr "A intervenit o eroare în timpul copierii.\n"
+
+#: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025
+#: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105
+#: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123
+#: directorymergewindow.cpp:2374
+msgid "Error"
+msgstr "Eroare"
+
+#: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375
+msgid "Merge Error"
+msgstr "Eroare de combinare"
+
+#: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380
+msgid "Error."
+msgstr "Eroare."
+
+#: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272
+#: directorymergewindow.cpp:2312
+msgid "Done."
+msgstr "Gata."
+
+#: directorymergewindow.cpp:1990
+msgid "Not saved."
+msgstr "Nesalvat."
+
+#: directorymergewindow.cpp:2025
+msgid "Unknown merge operation. (This must never happen!)"
+msgstr ""
+
+#: directorymergewindow.cpp:2057
+msgid "Unknown merge operation."
+msgstr ""
+
+#: directorymergewindow.cpp:2072
+msgid ""
+"The merge is about to begin.\n"
+"\n"
+"Choose \"Do it\" if you have read the instructions and know what you are "
+"doing.\n"
+"Choosing \"Simulate it\" will tell you what would happen.\n"
+"\n"
+"Be aware that this program still has beta status and there is NO WARRANTY "
+"whatsoever! Make backups of your vital data!"
+msgstr ""
+
+#: directorymergewindow.cpp:2077
+msgid "Starting Merge"
+msgstr ""
+
+#: directorymergewindow.cpp:2078
+msgid "Do It"
+msgstr "Execută"
+
+#: directorymergewindow.cpp:2079
+msgid "Simulate It"
+msgstr "Simulează"
+
+#: directorymergewindow.cpp:2105
+msgid ""
+"The highlighted item has a different type in the different directories. "
+"Select what to do."
+msgstr ""
+
+#: directorymergewindow.cpp:2114
+msgid ""
+"The modification dates of the file are equal but the files are not. Select "
+"what to do."
+msgstr ""
+
+#: directorymergewindow.cpp:2123
+msgid ""
+"The highlighted item was changed in one directory and deleted in the other. "
+"Select what to do."
+msgstr ""
+
+#: directorymergewindow.cpp:2174
+msgid ""
+"This operation is currently not possible because directory merge is "
+"currently running."
+msgstr ""
+
+#: directorymergewindow.cpp:2234
+msgid ""
+"There was an error in the last step.\n"
+"Do you want to continue with the item that caused the error or do you want "
+"to skip this item?"
+msgstr ""
+
+#: directorymergewindow.cpp:2236
+msgid "Continue merge after an error"
+msgstr ""
+
+#: directorymergewindow.cpp:2237
+msgid "Continue With Last Item"
+msgstr ""
+
+#: directorymergewindow.cpp:2238
+msgid "Skip Item"
+msgstr ""
+
+#: directorymergewindow.cpp:2272
+msgid "Skipped."
+msgstr ""
+
+#: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493
+msgid "In progress..."
+msgstr "În curs..."
+
+#: directorymergewindow.cpp:2327
+msgid "Merge operation complete."
+msgstr ""
+
+#: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330
+msgid "Merge Complete"
+msgstr ""
+
+#: directorymergewindow.cpp:2340
+msgid ""
+"Simulated merge complete: Check if you agree with the proposed operations."
+msgstr ""
+
+#: directorymergewindow.cpp:2374
+msgid "An error occurred. Press OK to see detailed information.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:2406
+#, kde-format
+msgid "Error: While deleting %1: Creating backup failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2413
+#, kde-format
+msgid "delete directory recursively( %1 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2415
+#, fuzzy, kde-format
+msgid "delete( %1 )"
+msgstr "Ș&terge"
+
+#: directorymergewindow.cpp:2430
+msgid "Error: delete dir operation failed while trying to read the directory."
+msgstr ""
+
+#: directorymergewindow.cpp:2449
+#, kde-format
+msgid "Error: rmdir( %1 ) operation failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2459
+msgid "Error: delete operation failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2485
+#, kde-format
+msgid "manual merge( %1, %2, %3 -> %4)"
+msgstr ""
+
+#: directorymergewindow.cpp:2488
+msgid ""
+"     Note: After a manual merge the user should continue by pressing F7."
+msgstr ""
+
+#: directorymergewindow.cpp:2513
+#, kde-format
+msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2522
+#, kde-format
+msgid "copyLink( %1 -> %2 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2533
+msgid "Error: copyLink failed: Remote links are not yet supported."
+msgstr ""
+
+#: directorymergewindow.cpp:2539
+msgid "Error: copyLink failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2564
+#, fuzzy, kde-format
+msgid "copy( %1 -> %2 )"
+msgstr "C&opiază"
+
+#: directorymergewindow.cpp:2590
+#, kde-format
+msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination."
+msgstr ""
+
+#: directorymergewindow.cpp:2596
+#, fuzzy, kde-format
+msgid "rename( %1 -> %2 )"
+msgstr "&Redenumire"
+
+#: directorymergewindow.cpp:2605
+msgid "Error: Rename failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2623
+#, kde-format
+msgid "Error during makeDir of %1. Cannot delete existing file."
+msgstr ""
+
+#: directorymergewindow.cpp:2639
+#, kde-format
+msgid "makeDir( %1 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2649
+msgid "Error while creating directory."
+msgstr "Eroare la crearea directorului."
+
+#: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784
+msgid "Dest"
+msgstr "Dest"
+
+#: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709
+msgid "Dir"
+msgstr "Dir"
+
+#: directorymergewindow.cpp:2678
+msgid "Type"
+msgstr "Tip"
+
+#: directorymergewindow.cpp:2678
+msgid "Size"
+msgstr "Dimensiune"
+
+#: directorymergewindow.cpp:2679
+msgid "Attr"
+msgstr "Atrib"
+
+#: directorymergewindow.cpp:2679
+msgid "Last Modification"
+msgstr "Ultima modificare"
+
+#: directorymergewindow.cpp:2679
+msgid "Link-Destination"
+msgstr "Destinație-legătură"
+
+#: directorymergewindow.cpp:2709 difftextwindow.cpp:401
+#, fuzzy
+msgid "File"
+msgstr "Fișier:"
+
+#: directorymergewindow.cpp:2726
+msgid "not available"
+msgstr "indisponibil"
+
+#: directorymergewindow.cpp:2746
+msgid "A (Dest): "
+msgstr "A (Dest): "
+
+#: directorymergewindow.cpp:2749
+msgid "A (Base): "
+msgstr "A (Bază): "
+
+#: directorymergewindow.cpp:2755
+msgid "B (Dest): "
+msgstr "B (Dest): "
+
+#: directorymergewindow.cpp:2763
+msgid "C (Dest): "
+msgstr "C (Dest): "
+
+#: directorymergewindow.cpp:2769
+msgid "Dest: "
+msgstr "Dest: "
+
+#: directorymergewindow.cpp:2836
+msgid "Save Directory Merge State As..."
+msgstr ""
+
+#: directorymergewindow.cpp:2959
+msgid "Start/Continue Directory Merge"
+msgstr ""
+
+#: directorymergewindow.cpp:2960
+msgid "Run Operation for Current Item"
+msgstr ""
+
+#: directorymergewindow.cpp:2961
+msgid "Compare Selected File"
+msgstr "Compară fișierul ales"
+
+#: directorymergewindow.cpp:2962
+msgid "Merge Current File"
+msgstr ""
+
+#: directorymergewindow.cpp:2962
+msgid ""
+"Merge\n"
+"File"
+msgstr ""
+
+#: directorymergewindow.cpp:2963
+msgid "Fold All Subdirs"
+msgstr ""
+
+#: directorymergewindow.cpp:2964
+msgid "Unfold All Subdirs"
+msgstr ""
+
+#: directorymergewindow.cpp:2968
+msgid "Choose A for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2969
+msgid "Choose B for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2970
+msgid "Choose C for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2971
+msgid "Auto-Choose Operation for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2972
+msgid "No Operation for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2977
+msgid "Show Identical Files"
+msgstr "Arată fișiere identice"
+
+#: directorymergewindow.cpp:2977
+msgid ""
+"Identical\n"
+"Files"
+msgstr ""
+"Fișiere\n"
+"identice"
+
+#: directorymergewindow.cpp:2978
+msgid "Show Different Files"
+msgstr "Arată fișiere diferite"
+
+#: directorymergewindow.cpp:2979
+msgid "Show Files only in A"
+msgstr ""
+
+#: directorymergewindow.cpp:2979
+msgid ""
+"Files\n"
+"only in A"
+msgstr ""
+
+#: directorymergewindow.cpp:2980
+msgid "Show Files only in B"
+msgstr ""
+
+#: directorymergewindow.cpp:2980
+msgid ""
+"Files\n"
+"only in B"
+msgstr ""
+
+#: directorymergewindow.cpp:2981
+msgid "Show Files only in C"
+msgstr ""
+
+#: directorymergewindow.cpp:2981
+msgid ""
+"Files\n"
+"only in C"
+msgstr ""
+
+#: directorymergewindow.cpp:2985
+msgid "Compare Explicitly Selected Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2986
+msgid "Merge Explicitly Selected Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995
+msgid "Do Nothing"
+msgstr "Nu fă nimic"
+
+#: directorymergewindow.cpp:2989
+msgid "A"
+msgstr "A"
+
+#: directorymergewindow.cpp:2990
+msgid "B"
+msgstr "B"
+
+#: directorymergewindow.cpp:2991
+msgid "C"
+msgstr "C"
+
+#: directorymergewindow.cpp:3000
+msgid "Delete A && B"
+msgstr ""
+
+#: directorymergewindow.cpp:3003
+msgid "Merge to A && B"
+msgstr ""
+
+#: main.cpp:74 main.cpp:76
+msgid "Ignored. (User defined.)"
+msgstr ""
+
+#: main.cpp:162
+#, fuzzy
+msgid "kdiff3"
+msgstr "KDiff3"
+
+#: main.cpp:164
+msgid "Tool for Comparison and Merge of Files and Directories"
+msgstr ""
+
+#: main.cpp:165
+msgid "(c) 2002-2011 Joachim Eibl"
+msgstr ""
+
+#: main.cpp:172 kdiff3_part.cpp:303
+msgid "Joachim Eibl"
+msgstr ""
+
+#: main.cpp:173
+msgid "Eike Sauer"
+msgstr ""
+
+#: main.cpp:173
+msgid "Bugfixes, Debian package maintainer"
+msgstr ""
+
+#: main.cpp:174
+msgid "Sebastien Fricker"
+msgstr ""
+
+#: main.cpp:174
+msgid "Windows installer"
+msgstr ""
+
+#: main.cpp:175
+msgid "Stephan Binner"
+msgstr "Stephan Binner"
+
+#: main.cpp:175
+msgid "i18n-help"
+msgstr ""
+
+#: main.cpp:176
+msgid "Stefan Partheymueller"
+msgstr "Stefan Partheymueller"
+
+#: main.cpp:176
+msgid "Clipboard-patch"
+msgstr ""
+
+#: main.cpp:177
+msgid "David Faure"
+msgstr "David Faure"
+
+#: main.cpp:177
+msgid "KIO-Help"
+msgstr ""
+
+#: main.cpp:178
+msgid "Bernd Gehrmann"
+msgstr "Bernd Gehrmann"
+
+#: main.cpp:178
+msgid "Class CvsIgnoreList from Cervisia"
+msgstr ""
+
+#: main.cpp:179
+msgid "Andre Woebbeking"
+msgstr "Andre Woebbeking"
+
+#: main.cpp:179
+msgid "Class StringMatcher"
+msgstr ""
+
+#: main.cpp:180
+msgid "Michael Denio"
+msgstr "Michael Denio"
+
+#: main.cpp:180
+msgid "Directory Equality-Coloring patch"
+msgstr ""
+
+#: main.cpp:181
+msgid "Manfred Koehler"
+msgstr "Manfred Koehler"
+
+#: main.cpp:181
+msgid "Fix for slow startup on Windows"
+msgstr ""
+
+#: main.cpp:182
+msgid "Sergey Zorin"
+msgstr "Sergey Zorin"
+
+#: main.cpp:182
+msgid "Diff Ext for Windows"
+msgstr ""
+
+#: main.cpp:183
+msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+
+#: main.cpp:183
+msgid "GNU-Diffutils"
+msgstr "GNU-Diffutils"
+
+#: main.cpp:184
+msgid "Tino Boellsterling, Timothy Mee"
+msgstr "Tino Boellsterling, Timothy Mee"
+
+#: main.cpp:184
+msgid "Intensive test, use and feedback"
+msgstr ""
+
+#: main.cpp:185
+msgid "Michael Schmidt"
+msgstr "Michael Schmidt"
+
+#: main.cpp:185
+msgid "Mac support"
+msgstr "Suport Mac"
+
+#: main.cpp:186
+msgid "Valentin Rusu"
+msgstr "Valentin Rusu"
+
+#: main.cpp:186 main.cpp:187
+msgid "KDE4 porting"
+msgstr "Portarea KDE4"
+
+#: main.cpp:187
+msgid "Albert Astals Cid"
+msgstr "Albert Astals Cid"
+
+#: main.cpp:188
+msgid "Silvan Scherrer"
+msgstr ""
+
+#: main.cpp:188
+msgid "OS2 port"
+msgstr ""
+
+#: main.cpp:190
+msgid "+ Many thanks to those who reported bugs and contributed ideas!"
+msgstr ""
+
+#: main.cpp:196
+msgid "Merge the input."
+msgstr ""
+
+#: main.cpp:197
+msgid "Explicit base file. For compatibility with certain tools."
+msgstr ""
+
+#: main.cpp:198
+msgid "Output file. Implies -m. E.g.: -o newfile.txt"
+msgstr ""
+
+#: main.cpp:199
+msgid "Output file, again. (For compatibility with certain tools.)"
+msgstr ""
+
+#: main.cpp:200
+msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)"
+msgstr ""
+
+#: main.cpp:201
+msgid "Don't solve conflicts automatically. (For compatibility...)"
+msgstr ""
+
+#: main.cpp:202
+msgid "Visible name replacement for input file 1 (base)."
+msgstr ""
+
+#: main.cpp:203
+msgid "Visible name replacement for input file 2."
+msgstr ""
+
+#: main.cpp:204
+msgid "Visible name replacement for input file 3."
+msgstr ""
+
+#: main.cpp:205
+msgid "Alternative visible name replacement. Supply this once for every input."
+msgstr ""
+
+#: main.cpp:206
+msgid ""
+"Override a config setting. Use once for every setting. E.g.: --cs "
+"\"AutoAdvance=1\""
+msgstr ""
+
+#: main.cpp:207
+msgid "Show list of config settings and current values."
+msgstr ""
+
+#: main.cpp:208
+msgid "Use a different config file."
+msgstr ""
+
+#: main.cpp:211
+msgid "file1 to open (base, if not specified via --base)"
+msgstr ""
+
+#: main.cpp:212
+msgid "file2 to open"
+msgstr "fișier2 de deschis"
+
+#: main.cpp:213
+msgid "file3 to open"
+msgstr "fișier3 de deschis"
+
+#: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976
+#: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002
+#: mergeresultwindow.cpp:1014
+#, kde-format
+msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)"
+msgstr ""
+
+#: mergeresultwindow.cpp:303
+msgid ""
+"The output has been modified.\n"
+"If you continue your changes will be lost."
+msgstr ""
+
+#: mergeresultwindow.cpp:834 pdiff.cpp:532
+msgid "All input files are binary equal."
+msgstr ""
+
+#: mergeresultwindow.cpp:836
+msgid "All input files contain the same text."
+msgstr ""
+
+#: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840
+#: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540
+#, kde-format
+msgid "Files %1 and %2 are binary equal.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841
+#: mergeresultwindow.cpp:843
+#, kde-format
+msgid "Files %1 and %2 have equal text.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:849
+msgid "Total number of conflicts: "
+msgstr ""
+
+#: mergeresultwindow.cpp:850
+msgid ""
+"\n"
+"Nr of automatically solved conflicts: "
+msgstr ""
+
+#: mergeresultwindow.cpp:851
+msgid ""
+"\n"
+"Nr of unsolved conflicts: "
+msgstr ""
+
+#: mergeresultwindow.cpp:853
+#, fuzzy
+msgid "Conflicts"
+msgstr "conflicte"
+
+#: mergeresultwindow.cpp:1728
+msgid "<No src line>"
+msgstr ""
+
+#: mergeresultwindow.cpp:1736
+msgid "<Merge Conflict (Whitespace only)>"
+msgstr ""
+
+#: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517
+msgid "<Merge Conflict>"
+msgstr ""
+
+#: mergeresultwindow.cpp:2725
+msgid ""
+"Not all conflicts are solved yet.\n"
+"File not saved.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736
+msgid "Conflicts Left"
+msgstr ""
+
+#: mergeresultwindow.cpp:2734
+msgid ""
+"There is a line end style conflict. Please choose the line end style "
+"manually.\n"
+"File not saved.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:2748
+msgid ""
+"\n"
+"\n"
+"Creating backup failed. File not saved."
+msgstr ""
+
+#: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792
+msgid "File Save Error"
+msgstr ""
+
+#: mergeresultwindow.cpp:2792
+msgid "Error while writing."
+msgstr ""
+
+#: mergeresultwindow.cpp:3122
+#, fuzzy
+msgid "Output"
+msgstr "Rezultat"
+
+#: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314
+#, fuzzy
+msgid "[Modified]"
+msgstr "Modificat"
+
+#: mergeresultwindow.cpp:3141
+msgid "Encoding for saving"
+msgstr ""
+
+#: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737
+#: optiondialog.cpp:762
+msgid "Line end style:"
+msgstr ""
+
+#: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767
+msgid "Unix"
+msgstr ""
+
+#: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737
+msgid "DOS"
+msgstr ""
+
+#: mergeresultwindow.cpp:3229
+#, fuzzy
+msgid "Conflict"
+msgstr "conflicte"
+
+#: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263
+#: mergeresultwindow.cpp:3265
+msgid "Codec from"
+msgstr ""
+
+#: kdiff3_part.cpp:157 kdiff3_part.cpp:234
+msgid "Couldn't find files for comparison."
+msgstr ""
+
+#: kdiff3_part.cpp:302
+msgid "KDiff3Part"
+msgstr "KDiff3Part"
+
+#: fileaccess.cpp:612
+msgid ""
+"While trying to make a backup, deleting an older backup failed. \n"
+"Filename: "
+msgstr ""
+
+#: fileaccess.cpp:619
+msgid ""
+"While trying to make a backup, renaming failed. \n"
+"Filenames: "
+msgstr ""
+
+#: fileaccess.cpp:643
+#, kde-format
+msgid "Getting file status: %1"
+msgstr "Se obține starea fișierului: %1"
+
+#: fileaccess.cpp:686
+#, kde-format
+msgid "Reading file: %1"
+msgstr "Se citește fișierul: %1"
+
+#: fileaccess.cpp:723
+#, kde-format
+msgid "Writing file: %1"
+msgstr "Se scrie fișierul: %1"
+
+#: fileaccess.cpp:751
+msgid "Out of memory"
+msgstr "Memorie insuficientă"
+
+#: fileaccess.cpp:786
+#, kde-format
+msgid "Making directory: %1"
+msgstr "Se creează dosarul: %1"
+
+#: fileaccess.cpp:806
+#, kde-format
+msgid "Removing directory: %1"
+msgstr "Se elimină dosarul: %1"
+
+#: fileaccess.cpp:821
+#, kde-format
+msgid "Removing file: %1"
+msgstr "Se elimină fișierul: %1"
+
+#: fileaccess.cpp:837
+#, kde-format
+msgid "Creating symbolic link: %1 -> %2"
+msgstr "Se creează legătura simbolică: %1 -> %2"
+
+#: fileaccess.cpp:864
+#, kde-format
+msgid "Renaming file: %1 -> %2"
+msgstr "Se redenumește fișierul: %1 -> %2"
+
+#: fileaccess.cpp:897
+#, kde-format
+msgid "Copying file: %1 -> %2"
+msgstr "Se copiază fișierul: %1 -> %2"
+
+#: fileaccess.cpp:911
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for reading failed. Filename: "
+"%1"
+msgstr ""
+
+#: fileaccess.cpp:917
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for writing failed. Filename: "
+"%1"
+msgstr ""
+
+#: fileaccess.cpp:932
+#, kde-format
+msgid "Error during file copy operation: Reading failed. Filename: %1"
+msgstr ""
+
+#: fileaccess.cpp:941
+#, kde-format
+msgid "Error during file copy operation: Writing failed. Filename: %1"
+msgstr ""
+
+#: fileaccess.cpp:1231
+msgid "Reading directory: "
+msgstr "Se citește dosarul: "
+
+#: fileaccess.cpp:1355
+#, kde-format
+msgid "Listing directory: %1"
+msgstr "Se enumeră dosarul: %1"
+
+#: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396
+msgid "&Cancel"
+msgstr "&Renunță"
+
+#: difftextwindow.cpp:403
+msgid "Line"
+msgstr "Linie"
+
+#: difftextwindow.cpp:405
+msgid "Line not available"
+msgstr ""
+
+#: difftextwindow.cpp:1703 difftextwindow.cpp:1736
+msgid "Encoding:"
+msgstr ""
+
+#: difftextwindow.cpp:1759 kdiff3.cpp:831
+msgid "Top line"
+msgstr "Linia de vîrf"
+
+#: difftextwindow.cpp:1769
+msgid "End"
+msgstr "Sfîrșit"
+
+#: kdiff3.cpp:169
+msgid "Current Configuration:"
+msgstr "Configurație actuală:"
+
+#: kdiff3.cpp:174
+msgid "Config Option Error:"
+msgstr "Eroare opțiune de configurare:"
+
+#: kdiff3.cpp:219
+msgid "Option --auto used, but no output file specified."
+msgstr "Opțiunea --auto utilizată, dar niciun fișier de ieșire specificat."
+
+#: kdiff3.cpp:369
+msgid "Option --auto ignored for directory comparison."
+msgstr "Opțiunea --auto ignorată pentru compararea directoarelor."
+
+#: kdiff3.cpp:405
+msgid "Saving failed."
+msgstr "Salvarea a eșuat."
+
+#: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214
+msgid "Opening of these files failed:"
+msgstr "Deschiderea acestor fișiere a eșuat:"
+
+#: kdiff3.cpp:449
+msgid "File Open Error"
+msgstr "Eroare la deschiderea fișierului"
+
+#: kdiff3.cpp:477
+msgid "Opens documents for comparison..."
+msgstr "Deschide documente pentru comparare..."
+
+#: kdiff3.cpp:479
+msgid "Reload"
+msgstr "Reîncarcă"
+
+#: kdiff3.cpp:482
+msgid "Saves the merge result. All conflicts must be solved!"
+msgstr "Salvează rezultatul combinării. Toate conflictele trebuiesc rezolvate!"
+
+#: kdiff3.cpp:484
+msgid "Saves the current document as..."
+msgstr "Salvează documentul actual ca..."
+
+#: kdiff3.cpp:487
+msgid "Print the differences"
+msgstr "Tipărește diferențele"
+
+#: kdiff3.cpp:490
+msgid "Quits the application"
+msgstr "Iese din aplicație"
+
+#: kdiff3.cpp:492
+msgid "Cuts the selected section and puts it to the clipboard"
+msgstr "Taie secțiunea selectată și o pune în clipboard"
+
+#: kdiff3.cpp:494
+msgid "Copies the selected section to the clipboard"
+msgstr "Copiază secțiunea selectată în clipboard"
+
+#: kdiff3.cpp:496
+#, fuzzy
+#| msgid "Pastes the clipboard contents to actual position"
+msgid "Pastes the clipboard contents to current position"
+msgstr "Lipește conținutul clipboard-ului la poziția curentă"
+
+#: kdiff3.cpp:498
+msgid "Select everything in current window"
+msgstr "Selectează tot din fereastra curentă"
+
+#: kdiff3.cpp:500
+msgid "Search for a string"
+msgstr "Caută un șir"
+
+#: kdiff3.cpp:502
+msgid "Search again for the string"
+msgstr ""
+
+#: kdiff3.cpp:507
+msgid "Enables/disables the statusbar"
+msgstr "Activează/dezactivează bara de stare"
+
+#: kdiff3.cpp:511
+msgid "Configure KDiff3..."
+msgstr "Configurare KDiff3..."
+
+#: kdiff3.cpp:532
+msgid "Go to Current Delta"
+msgstr ""
+
+#: kdiff3.cpp:532
+msgid ""
+"Current\n"
+"Delta"
+msgstr ""
+"Delta\n"
+"actuală"
+
+#: kdiff3.cpp:534
+msgid "Go to First Delta"
+msgstr "Mergi la prima delta"
+
+#: kdiff3.cpp:534
+msgid ""
+"First\n"
+"Delta"
+msgstr ""
+"Prima\n"
+"delta"
+
+#: kdiff3.cpp:536
+msgid "Go to Last Delta"
+msgstr "Mergi la ultima delta"
+
+#: kdiff3.cpp:536
+msgid ""
+"Last\n"
+"Delta"
+msgstr ""
+"Ultima\n"
+"delta"
+
+#: kdiff3.cpp:538
+msgid "(Skips white space differences when \"Show White Space\" is disabled.)"
+msgstr ""
+
+#: kdiff3.cpp:539
+msgid ""
+"(Does not skip white space differences even when \"Show White Space\" is "
+"disabled.)"
+msgstr ""
+
+#: kdiff3.cpp:540
+msgid "Go to Previous Delta"
+msgstr "Mergi la delta precedentă"
+
+#: kdiff3.cpp:540
+msgid ""
+"Prev\n"
+"Delta"
+msgstr ""
+"Delta\n"
+"prec."
+
+#: kdiff3.cpp:542
+msgid "Go to Next Delta"
+msgstr "Mergi la delta următoare"
+
+#: kdiff3.cpp:542
+msgid ""
+"Next\n"
+"Delta"
+msgstr ""
+"Delta\n"
+"următ."
+
+#: kdiff3.cpp:544
+msgid "Go to Previous Conflict"
+msgstr "Mergi la conflictul precedent"
+
+#: kdiff3.cpp:544
+msgid ""
+"Prev\n"
+"Conflict"
+msgstr ""
+"Conflict\n"
+"precedent"
+
+#: kdiff3.cpp:546
+msgid "Go to Next Conflict"
+msgstr "Mergi la conflictul următor"
+
+#: kdiff3.cpp:546
+msgid ""
+"Next\n"
+"Conflict"
+msgstr ""
+"Conflict\n"
+"următor"
+
+#: kdiff3.cpp:548
+msgid "Go to Previous Unsolved Conflict"
+msgstr "Mergi la conflictul nerezolvat precedent"
+
+#: kdiff3.cpp:548
+msgid ""
+"Prev\n"
+"Unsolved"
+msgstr ""
+"Nerezolvat\n"
+"precedent"
+
+#: kdiff3.cpp:550
+msgid "Go to Next Unsolved Conflict"
+msgstr "Mergi la conflictul nerezolvat următor"
+
+#: kdiff3.cpp:550
+msgid ""
+"Next\n"
+"Unsolved"
+msgstr ""
+"Nerezolvat\n"
+"următor"
+
+#: kdiff3.cpp:552
+msgid "Select Line(s) From A"
+msgstr "Alege liniile din A"
+
+#: kdiff3.cpp:552
+msgid ""
+"Choose\n"
+"A"
+msgstr ""
+"Alege\n"
+"A"
+
+#: kdiff3.cpp:553
+msgid "Select Line(s) From B"
+msgstr "Alege liniile din B"
+
+#: kdiff3.cpp:553
+msgid ""
+"Choose\n"
+"B"
+msgstr ""
+"Alege\n"
+"B"
+
+#: kdiff3.cpp:554
+msgid "Select Line(s) From C"
+msgstr "Alege liniile din C"
+
+#: kdiff3.cpp:554
+msgid ""
+"Choose\n"
+"C"
+msgstr ""
+"Alege\n"
+"C"
+
+#: kdiff3.cpp:555
+msgid "Automatically Go to Next Unsolved Conflict After Source Selection"
+msgstr "Mergi automat la următorul conflict nerezolvat după alegerea sursei"
+
+#: kdiff3.cpp:555
+msgid ""
+"Auto\n"
+"Next"
+msgstr ""
+"Următor\n"
+"automat"
+
+#: kdiff3.cpp:557
+msgid "Show Space && Tabulator Characters for Differences"
+msgstr "Arată caracterele de spațiere și tabulare pentru diferențe"
+
+#: kdiff3.cpp:557
+msgid ""
+"White\n"
+"Characters"
+msgstr ""
+"Caractere\n"
+"albe"
+
+#: kdiff3.cpp:558
+msgid "Show White Space"
+msgstr "Arată spațiile albe"
+
+#: kdiff3.cpp:558
+msgid ""
+"White\n"
+"Deltas"
+msgstr ""
+"Delta\n"
+"albe"
+
+#: kdiff3.cpp:560
+msgid "Show Line Numbers"
+msgstr "Arată numerele liniilor"
+
+#: kdiff3.cpp:560
+msgid ""
+"Line\n"
+"Numbers"
+msgstr ""
+"Numere\n"
+"de linii"
+
+#: kdiff3.cpp:561
+msgid "Choose A Everywhere"
+msgstr "Alege A peste tot"
+
+#: kdiff3.cpp:562
+msgid "Choose B Everywhere"
+msgstr "Alege B peste tot"
+
+#: kdiff3.cpp:563
+msgid "Choose C Everywhere"
+msgstr "Alege C peste tot"
+
+#: kdiff3.cpp:564
+msgid "Choose A for All Unsolved Conflicts"
+msgstr "Alege A pentru toate conflictele nerezolvate"
+
+#: kdiff3.cpp:565
+msgid "Choose B for All Unsolved Conflicts"
+msgstr "Alege B pentru toate conflictele nerezolvate"
+
+#: kdiff3.cpp:566
+msgid "Choose C for All Unsolved Conflicts"
+msgstr "Alege C pentru toate conflictele nerezolvate"
+
+#: kdiff3.cpp:567
+msgid "Choose A for All Unsolved Whitespace Conflicts"
+msgstr "Alege A pentru toate conflictele de spațiu alb nerezolvate"
+
+#: kdiff3.cpp:568
+msgid "Choose B for All Unsolved Whitespace Conflicts"
+msgstr "Alege B pentru toate conflictele de spațiu alb nerezolvate"
+
+#: kdiff3.cpp:569
+msgid "Choose C for All Unsolved Whitespace Conflicts"
+msgstr "Alege C pentru toate conflictele de spațiu alb nerezolvate"
+
+#: kdiff3.cpp:570
+msgid "Automatically Solve Simple Conflicts"
+msgstr "Rezolvă automat conflictele simple"
+
+#: kdiff3.cpp:571
+msgid "Set Deltas to Conflicts"
+msgstr "Stabilește deltele la conflicte"
+
+#: kdiff3.cpp:572
+msgid "Run Regular Expression Auto Merge"
+msgstr ""
+
+#: kdiff3.cpp:573
+msgid "Automatically Solve History Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:574
+msgid "Split Diff At Selection"
+msgstr "Desparte Diff la selecție"
+
+#: kdiff3.cpp:575
+msgid "Join Selected Diffs"
+msgstr ""
+
+#: kdiff3.cpp:577
+msgid "Show Window A"
+msgstr "Arată fereastra A"
+
+#: kdiff3.cpp:578
+msgid "Show Window B"
+msgstr "Arată fereastra B"
+
+#: kdiff3.cpp:579
+msgid "Show Window C"
+msgstr "Arată fereastra C"
+
+#: kdiff3.cpp:580 kdiff3.cpp:591
+msgid "Focus Next Window"
+msgstr "Focalizează fereastra următoare"
+
+#: kdiff3.cpp:582
+msgid "Normal Overview"
+msgstr "Sumar normal"
+
+#: kdiff3.cpp:583
+msgid "A vs. B Overview"
+msgstr "Sumar A vs. B"
+
+#: kdiff3.cpp:584
+msgid "A vs. C Overview"
+msgstr "Sumar A vs. C"
+
+#: kdiff3.cpp:585
+msgid "B vs. C Overview"
+msgstr "Sumar B vs. C"
+
+#: kdiff3.cpp:586
+msgid "Word Wrap Diff Windows"
+msgstr ""
+
+#: kdiff3.cpp:587
+msgid "Add Manual Diff Alignment"
+msgstr ""
+
+#: kdiff3.cpp:588
+msgid "Clear All Manual Diff Alignments"
+msgstr ""
+
+#: kdiff3.cpp:593
+msgid "Focus Prev Window"
+msgstr "Focalizează fereastra precedentă"
+
+#: kdiff3.cpp:594
+msgid "Toggle Split Orientation"
+msgstr "Comută orientarea despărțirii"
+
+#: kdiff3.cpp:596
+msgid "Dir && Text Split Screen View"
+msgstr ""
+
+#: kdiff3.cpp:598
+msgid "Toggle Between Dir && Text View"
+msgstr ""
+
+#: kdiff3.cpp:654 pdiff.cpp:1812
+msgid "The merge result hasn't been saved."
+msgstr "Rezultatul combinării nu a fost salvat."
+
+#: kdiff3.cpp:656
+msgid "Save && Quit"
+msgstr "Salvează și ieși"
+
+#: kdiff3.cpp:657
+msgid "Quit Without Saving"
+msgstr "Ieși fără a salva"
+
+#: kdiff3.cpp:665 pdiff.cpp:1823
+msgid "Saving the merge result failed."
+msgstr "Salvarea rezultatului combinării a eșuat."
+
+#: kdiff3.cpp:676 pdiff.cpp:1078
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort?"
+msgstr ""
+
+#: kdiff3.cpp:701
+msgid "Saving file..."
+msgstr "Salvare fișier..."
+
+#: kdiff3.cpp:718
+msgid "Saving file with a new filename..."
+msgstr "Se salvează fișierul cu un nume nou..."
+
+#: kdiff3.cpp:781
+#, fuzzy
+#| msgid "Printing completed."
+msgid "Printing not implemented."
+msgstr "Tipărire încheiată"
+
+#: kdiff3.cpp:815
+msgid "Printing..."
+msgstr "Se tipărește..."
+
+#: kdiff3.cpp:956
+msgid "Selection"
+msgstr "Selecție"
+
+#: kdiff3.cpp:982
+msgid "Printing completed."
+msgstr "Tipărire încheiată"
+
+#: kdiff3.cpp:986
+msgid "Printing aborted."
+msgstr "Tipărire abandonată."
+
+#: kdiff3.cpp:993
+msgid "Exiting..."
+msgstr "Ieșire..."
+
+#: kdiff3.cpp:1006
+msgid "Toggling toolbar..."
+msgstr "Se comută bara de unelte..."
+
+#: kdiff3.cpp:1027
+msgid "Toggle the statusbar..."
+msgstr "Se comută bara de stare..."
+
+#: smalldialogs.cpp:58
+msgid "A (Base):"
+msgstr ""
+
+#: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99
+#: smalldialogs.cpp:142
+msgid "File..."
+msgstr "Fișier..."
+
+#: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101
+#: smalldialogs.cpp:144
+msgid "Dir..."
+msgstr ""
+
+#: smalldialogs.cpp:93
+msgid "C (Optional):"
+msgstr ""
+
+#: smalldialogs.cpp:116
+msgid "Swap/Copy Names ..."
+msgstr ""
+
+#: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123
+#, fuzzy, kde-format
+msgid "Swap %1<->%2"
+msgstr " Swap: %1 / %2 "
+
+#: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126
+#, kde-format
+msgid "Copy %1->Output"
+msgstr ""
+
+#: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129
+#, kde-format
+msgid "Swap %1<->Output"
+msgstr ""
+
+#: smalldialogs.cpp:136
+msgid "Output (optional):"
+msgstr ""
+
+#: smalldialogs.cpp:168
+msgid "Configure..."
+msgstr "Configurare..."
+
+#: smalldialogs.cpp:174
+msgid "&OK"
+msgstr "&OK"
+
+#: smalldialogs.cpp:362
+msgid "Search text:"
+msgstr "Căutare text:"
+
+#: smalldialogs.cpp:369
+msgid "Case sensitive"
+msgstr "Sensibil la registru"
+
+#: smalldialogs.cpp:372
+msgid "Search A"
+msgstr "Caută A"
+
+#: smalldialogs.cpp:377
+msgid "Search B"
+msgstr "Caută B"
+
+#: smalldialogs.cpp:382
+msgid "Search C"
+msgstr "Caută C"
+
+#: smalldialogs.cpp:387
+msgid "Search output"
+msgstr "Caută în ieșire"
+
+#: smalldialogs.cpp:392
+msgid "&Search"
+msgstr "&Caută"
+
+#: smalldialogs.cpp:409
+msgid "Regular Expression Tester"
+msgstr ""
+
+#: smalldialogs.cpp:414 optiondialog.cpp:936
+msgid "Auto merge regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:422
+msgid "Example auto merge line:"
+msgstr ""
+
+#: smalldialogs.cpp:424
+msgid "To test auto merge, copy a line as used in your files."
+msgstr ""
+
+#: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494
+msgid "Match result:"
+msgstr ""
+
+#: smalldialogs.cpp:441 optiondialog.cpp:962
+msgid "History start regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:449
+msgid "Example history start line (with leading comment):"
+msgstr ""
+
+#: smalldialogs.cpp:451
+msgid ""
+"Copy a history start line as used in your files,\n"
+"including the leading comment."
+msgstr ""
+
+#: smalldialogs.cpp:469 optiondialog.cpp:972
+msgid "History entry start regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:477
+msgid "History sort key order:"
+msgstr ""
+
+#: smalldialogs.cpp:485
+msgid "Example history entry start line (without leading comment):"
+msgstr ""
+
+#: smalldialogs.cpp:487
+msgid ""
+"Copy a history entry start line as used in your files,\n"
+"but omit the leading comment."
+msgstr ""
+
+#: smalldialogs.cpp:501
+msgid "Sort key result:"
+msgstr ""
+
+#: smalldialogs.cpp:508
+msgid "OK"
+msgstr "OK"
+
+#: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583
+msgid "Match success."
+msgstr ""
+
+#: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589
+msgid "Match failed."
+msgstr ""
+
+#: smalldialogs.cpp:574
+msgid "Opening and closing parentheses do not match in regular expression."
+msgstr ""
+
+#: optiondialog.cpp:367
+msgid "Unicode, 8 bit"
+msgstr ""
+
+#: optiondialog.cpp:368
+msgid "Unicode"
+msgstr "Unicod"
+
+#: optiondialog.cpp:369
+msgid "Latin1"
+msgstr "Latin1"
+
+#: optiondialog.cpp:388
+msgid "Change this if non-ASCII characters are not displayed correctly."
+msgstr ""
+
+#: optiondialog.cpp:465
+msgid "Configure"
+msgstr "Configurează"
+
+#: optiondialog.cpp:531
+msgid "Font"
+msgstr "Font"
+
+#: optiondialog.cpp:532
+msgid "Editor & Diff Output Font"
+msgstr ""
+
+#: optiondialog.cpp:556
+msgid "Italic font for deltas"
+msgstr ""
+
+#: optiondialog.cpp:559
+msgid ""
+"Selects the italic version of the font for differences.\n"
+"If the font doesn't support italic characters, then this does nothing."
+msgstr ""
+
+#: optiondialog.cpp:568
+msgid "Color"
+msgstr "Culoare"
+
+#: optiondialog.cpp:569
+msgid "Colors Settings"
+msgstr ""
+
+#: optiondialog.cpp:588
+msgid "Editor and Diff Views:"
+msgstr ""
+
+#: optiondialog.cpp:596
+msgid "Foreground color:"
+msgstr "Culoare prim-plan:"
+
+#: optiondialog.cpp:603
+msgid "Background color:"
+msgstr "Culoare fundal:"
+
+#: optiondialog.cpp:612
+msgid "Diff background color:"
+msgstr ""
+
+#: optiondialog.cpp:620
+msgid "Color A:"
+msgstr "Culoare A:"
+
+#: optiondialog.cpp:628
+msgid "Color B:"
+msgstr "Culoare B:"
+
+#: optiondialog.cpp:636
+msgid "Color C:"
+msgstr "Culoare C:"
+
+#: optiondialog.cpp:643
+msgid "Conflict color:"
+msgstr "Culoare conflict:"
+
+#: optiondialog.cpp:651
+msgid "Current range background color:"
+msgstr ""
+
+#: optiondialog.cpp:659
+msgid "Current range diff background color:"
+msgstr ""
+
+#: optiondialog.cpp:666
+msgid "Color for manually aligned difference ranges:"
+msgstr ""
+
+#: optiondialog.cpp:672
+msgid "Directory Comparison View:"
+msgstr ""
+
+#: optiondialog.cpp:678
+msgid "Newest file color:"
+msgstr ""
+
+#: optiondialog.cpp:682
+msgid ""
+"Changing this color will only be effective when starting the next directory "
+"comparison."
+msgstr ""
+
+#: optiondialog.cpp:687
+msgid "Oldest file color:"
+msgstr ""
+
+#: optiondialog.cpp:695
+msgid "Middle age file color:"
+msgstr ""
+
+#: optiondialog.cpp:703
+msgid "Color for missing files:"
+msgstr ""
+
+#: optiondialog.cpp:717
+msgid "Editor"
+msgstr "Editor"
+
+#: optiondialog.cpp:718
+msgid "Editor Behavior"
+msgstr "Comportament editor"
+
+#: optiondialog.cpp:732
+msgid "Tab inserts spaces"
+msgstr ""
+
+#: optiondialog.cpp:735
+msgid ""
+"On: Pressing tab generates the appropriate number of spaces.\n"
+"Off: A tab character will be inserted."
+msgstr ""
+
+#: optiondialog.cpp:741
+#, fuzzy
+msgid "Tab size:"
+msgstr "Mărime &TAB:"
+
+#: optiondialog.cpp:747
+msgid "Auto indentation"
+msgstr ""
+
+#: optiondialog.cpp:750
+msgid "On: The indentation of the previous line is used for a new line.\n"
+msgstr ""
+
+#: optiondialog.cpp:754
+msgid "Auto copy selection"
+msgstr ""
+
+#: optiondialog.cpp:757
+msgid ""
+"On: Any selection is immediately written to the clipboard.\n"
+"Off: You must explicitely copy e.g. via Ctrl-C."
+msgstr ""
+
+#: optiondialog.cpp:768
+#, fuzzy
+#| msgid "&Window"
+msgid "Dos/Windows"
+msgstr "&Fereastră"
+
+#: optiondialog.cpp:769
+#, fuzzy
+#| msgid "Auto Select"
+msgid "Autodetect"
+msgstr "Selectare automată"
+
+#: optiondialog.cpp:772
+msgid ""
+"Sets the line endings for when an edited file is saved.\n"
+"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A"
+msgstr ""
+
+#: optiondialog.cpp:784
+msgid "Diff"
+msgstr "Diff"
+
+#: optiondialog.cpp:785
+msgid "Diff Settings"
+msgstr ""
+
+#: optiondialog.cpp:809
+msgid "Treat as white space."
+msgstr ""
+
+#: optiondialog.cpp:811
+msgid "Ignore numbers"
+msgstr ""
+
+#: optiondialog.cpp:814
+msgid ""
+"Ignore number characters during line matching phase. (Similar to Ignore "
+"white space.)\n"
+"Might help to compare files with numeric data."
+msgstr ""
+
+#: optiondialog.cpp:819
+msgid "Ignore C/C++ comments"
+msgstr ""
+
+#: optiondialog.cpp:821
+msgid "Treat C/C++ comments like white space."
+msgstr ""
+
+#: optiondialog.cpp:825
+msgid "Ignore case"
+msgstr ""
+
+#: optiondialog.cpp:828
+msgid "Treat case differences like white space changes. ('a'<=>'A')"
+msgstr ""
+
+#: optiondialog.cpp:832
+msgid "Preprocessor command:"
+msgstr ""
+
+#: optiondialog.cpp:836
+msgid "User defined pre-processing. (See the docs for details.)"
+msgstr ""
+
+#: optiondialog.cpp:839
+msgid "Line-matching preprocessor command:"
+msgstr ""
+
+#: optiondialog.cpp:843
+msgid ""
+"This pre-processor is only used during line matching.\n"
+"(See the docs for details.)"
+msgstr ""
+
+#: optiondialog.cpp:846
+msgid "Try hard (slower)"
+msgstr ""
+
+#: optiondialog.cpp:849
+msgid ""
+"Enables the --minimal option for the external diff.\n"
+"The analysis of big files will be much slower."
+msgstr ""
+
+#: optiondialog.cpp:854
+msgid "Align B and C for 3 input files"
+msgstr ""
+
+#: optiondialog.cpp:857
+msgid ""
+"Try to align B and C when comparing or merging three input files.\n"
+"Not recommended for merging because merge might get more complicated.\n"
+"(Default is off.)"
+msgstr ""
+
+#: optiondialog.cpp:870
+msgid "Merge Settings"
+msgstr ""
+
+#: optiondialog.cpp:885
+msgid "Auto advance delay (ms):"
+msgstr ""
+
+#: optiondialog.cpp:890
+msgid ""
+"When in Auto-Advance mode the result of the current selection is shown \n"
+"for the specified time, before jumping to the next conflict. Range: 0-2000 ms"
+msgstr ""
+
+#: optiondialog.cpp:895
+msgid "Show info dialogs"
+msgstr ""
+
+#: optiondialog.cpp:897
+msgid "Show a dialog with information about the number of conflicts."
+msgstr ""
+
+#: optiondialog.cpp:900
+msgid "White space 2-file merge default:"
+msgstr ""
+
+#: optiondialog.cpp:904 optiondialog.cpp:917
+msgid "Manual Choice"
+msgstr "Alegere manuală"
+
+#: optiondialog.cpp:908 optiondialog.cpp:922
+msgid ""
+"Allow the merge algorithm to automatically select an input for white-space-"
+"only changes."
+msgstr ""
+
+#: optiondialog.cpp:913
+msgid "White space 3-file merge default:"
+msgstr ""
+
+#: optiondialog.cpp:927
+msgid "Automatic Merge Regular Expression"
+msgstr ""
+
+#: optiondialog.cpp:940
+msgid ""
+"Regular expression for lines where KDiff3 should automatically choose one "
+"source.\n"
+"When a line with a conflict matches the regular expression then\n"
+"- if available - C, otherwise B will be chosen."
+msgstr ""
+
+#: optiondialog.cpp:946
+msgid "Run regular expression auto merge on merge start"
+msgstr ""
+
+#: optiondialog.cpp:948
+msgid ""
+"Run the merge for auto merge regular expressions\n"
+"immediately when a merge starts.\n"
+msgstr ""
+
+#: optiondialog.cpp:953
+msgid "Version Control History Merging"
+msgstr ""
+
+#: optiondialog.cpp:966
+msgid ""
+"Regular expression for the start of the version control history entry.\n"
+"Usually this line contains the \"$Log$\" keyword.\n"
+"Default value: \".*\\$Log.*\\$.*\""
+msgstr ""
+
+#: optiondialog.cpp:984
+msgid ""
+"A version control history entry consists of several lines.\n"
+"Specify the regular expression to detect the first line (without the leading "
+"comment).\n"
+"Use parentheses to group the keys you want to use for sorting.\n"
+"If left empty, then KDiff3 assumes that empty lines separate history "
+"entries.\n"
+"See the documentation for details."
+msgstr ""
+
+#: optiondialog.cpp:992
+msgid "History merge sorting"
+msgstr ""
+
+#: optiondialog.cpp:994
+msgid "Sort version control history by a key."
+msgstr ""
+
+#: optiondialog.cpp:1004
+msgid "History entry start sort key order:"
+msgstr ""
+
+#: optiondialog.cpp:1008
+msgid ""
+"Each pair of parentheses used in the regular expression for the history "
+"start entry\n"
+"groups a key that can be used for sorting.\n"
+"Specify the list of keys (that are numbered in order of occurrence\n"
+"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n"
+"If left empty, then no sorting will be done.\n"
+"See the documentation for details."
+msgstr ""
+
+#: optiondialog.cpp:1019
+msgid "Merge version control history on merge start"
+msgstr ""
+
+#: optiondialog.cpp:1021
+msgid "Run version control history automerge on merge start."
+msgstr ""
+
+#: optiondialog.cpp:1025
+msgid "Max number of history entries:"
+msgstr ""
+
+#: optiondialog.cpp:1028
+msgid "Cut off after specified number. Use -1 for infinite number of entries."
+msgstr ""
+
+#: optiondialog.cpp:1032
+msgid "Test your regular expressions"
+msgstr ""
+
+#: optiondialog.cpp:1037
+msgid "Irrelevant merge command:"
+msgstr ""
+
+#: optiondialog.cpp:1041
+msgid ""
+"If specified this script is run after automerge\n"
+"when no other relevant changes were detected.\n"
+"Called with the parameters: filename1 filename2 filename3"
+msgstr ""
+
+#: optiondialog.cpp:1047
+msgid "Auto save and quit on merge without conflicts"
+msgstr ""
+
+#: optiondialog.cpp:1050
+msgid ""
+"If KDiff3 was started for a file-merge from the command line and all\n"
+"conflicts are solvable without user interaction then automatically save and "
+"quit.\n"
+"(Similar to command line option \"--auto\".)"
+msgstr ""
+
+#: optiondialog.cpp:1061 optiondialog.cpp:1062
+#, fuzzy
+msgid "Directory"
+msgstr "Director"
+
+#: optiondialog.cpp:1075
+msgid "Recursive directories"
+msgstr ""
+
+#: optiondialog.cpp:1077
+msgid "Whether to analyze subdirectories or not."
+msgstr ""
+
+#: optiondialog.cpp:1079
+msgid "File pattern(s):"
+msgstr ""
+
+#: optiondialog.cpp:1084
+msgid ""
+"Pattern(s) of files to be analyzed. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1090
+msgid "File-anti-pattern(s):"
+msgstr ""
+
+#: optiondialog.cpp:1095
+msgid ""
+"Pattern(s) of files to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1101
+msgid "Dir-anti-pattern(s):"
+msgstr ""
+
+#: optiondialog.cpp:1106
+msgid ""
+"Pattern(s) of directories to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1112
+msgid "Use .cvsignore"
+msgstr ""
+
+#: optiondialog.cpp:1115
+msgid ""
+"Extends the antipattern to anything that would be ignored by CVS.\n"
+"Via local \".cvsignore\" files this can be directory specific."
+msgstr ""
+
+#: optiondialog.cpp:1120
+msgid "Find hidden files and directories"
+msgstr ""
+
+#: optiondialog.cpp:1123
+msgid "Finds files and directories with the hidden attribute."
+msgstr ""
+
+#: optiondialog.cpp:1125
+msgid "Finds files and directories starting with '.'."
+msgstr ""
+
+#: optiondialog.cpp:1129
+msgid "Follow file links"
+msgstr ""
+
+#: optiondialog.cpp:1132
+msgid ""
+"On: Compare the file the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+
+#: optiondialog.cpp:1137
+msgid "Follow directory links"
+msgstr ""
+
+#: optiondialog.cpp:1140
+msgid ""
+"On: Compare the directory the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+
+#: optiondialog.cpp:1156
+msgid "Case sensitive filename comparison"
+msgstr ""
+
+#: optiondialog.cpp:1159
+msgid ""
+"The directory comparison will compare files or directories when their names "
+"match.\n"
+"Set this option if the case of the names must match. (Default for Windows is "
+"off, otherwise on.)"
+msgstr ""
+
+#: optiondialog.cpp:1163
+msgid "File Comparison Mode"
+msgstr ""
+
+#: optiondialog.cpp:1169
+msgid "Binary comparison"
+msgstr ""
+
+#: optiondialog.cpp:1170
+msgid "Binary comparison of each file. (Default)"
+msgstr ""
+
+#: optiondialog.cpp:1173
+msgid "Full analysis"
+msgstr ""
+
+#: optiondialog.cpp:1174
+msgid ""
+"Do a full analysis and show statistics information in extra columns.\n"
+"(Slower than a binary comparison, much slower for binary files.)"
+msgstr ""
+
+#: optiondialog.cpp:1178
+msgid "Trust the size and modification date (unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1179
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"Files with equal contents but different modification dates will appear as "
+"different.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+
+#: optiondialog.cpp:1184
+msgid ""
+"Trust the size and date, but use binary comparison if date does not match "
+"(unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1185
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"If the dates are not equal but the sizes are, use binary comparison.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+
+#: optiondialog.cpp:1190
+msgid "Trust the size (unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1191
+msgid ""
+"Assume that files are equal if their file lengths are equal.\n"
+"Useful for big directories or slow networks when the date is modified during "
+"download."
+msgstr ""
+
+#: optiondialog.cpp:1199
+msgid "Synchronize directories"
+msgstr "Sincronizează dosare"
+
+#: optiondialog.cpp:1202
+msgid ""
+"Offers to store files in both directories so that\n"
+"both directories are the same afterwards.\n"
+"Works only when comparing two directories without specifying a destination."
+msgstr ""
+
+#: optiondialog.cpp:1208
+msgid "White space differences considered equal"
+msgstr ""
+
+#: optiondialog.cpp:1211
+msgid ""
+"If files differ only by white space consider them equal.\n"
+"This is only active when full analysis is chosen."
+msgstr ""
+
+#: optiondialog.cpp:1217
+msgid "Copy newer instead of merging (unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1220
+msgid ""
+"Don't look inside, just take the newer file.\n"
+"(Use this only if you know what you are doing!)\n"
+"Only effective when comparing two directories."
+msgstr ""
+
+#: optiondialog.cpp:1225
+msgid "Backup files (.orig)"
+msgstr ""
+
+#: optiondialog.cpp:1228
+msgid ""
+"If a file would be saved over an old file, then the old file\n"
+"will be renamed with a '.orig' extension instead of being deleted."
+msgstr ""
+
+#: optiondialog.cpp:1301 optiondialog.cpp:1302
+msgid "Regional Settings"
+msgstr "Configurări regionale"
+
+#: optiondialog.cpp:1402
+msgid "Language (restart required)"
+msgstr ""
+
+#: optiondialog.cpp:1445
+msgid ""
+"Choose the language of the GUI strings or \"Auto\".\n"
+"For a change of language to take place, quit and restart KDiff3."
+msgstr ""
+
+#: optiondialog.cpp:1463
+msgid "Use the same encoding for everything:"
+msgstr ""
+
+#: optiondialog.cpp:1466
+msgid ""
+"Enable this allows to change all encodings by changing the first only.\n"
+"Disable this if different individual settings are needed."
+msgstr ""
+
+#: optiondialog.cpp:1471
+msgid "Note: Local Encoding is "
+msgstr ""
+
+#: optiondialog.cpp:1475
+msgid "File Encoding for A:"
+msgstr ""
+
+#: optiondialog.cpp:1481
+msgid ""
+"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n"
+"If the file is not Unicode then the selected encoding will be used as "
+"fallback.\n"
+"(Unicode detection depends on the first bytes of a file.)"
+msgstr ""
+
+#: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503
+msgid "Auto Detect Unicode"
+msgstr ""
+
+#: optiondialog.cpp:1490
+msgid "File Encoding for B:"
+msgstr ""
+
+#: optiondialog.cpp:1499
+msgid "File Encoding for C:"
+msgstr ""
+
+#: optiondialog.cpp:1508
+msgid "File Encoding for Merge Output and Saving:"
+msgstr ""
+
+#: optiondialog.cpp:1512
+msgid "Auto Select"
+msgstr "Selectare automată"
+
+#: optiondialog.cpp:1515
+msgid ""
+"If enabled then the encoding from the input files is used.\n"
+"In ambiguous cases a dialog will ask the user to choose the encoding for "
+"saving."
+msgstr ""
+
+#: optiondialog.cpp:1519
+msgid "File Encoding for Preprocessor Files:"
+msgstr ""
+
+#: optiondialog.cpp:1530
+msgid "Right To Left Language"
+msgstr ""
+
+#: optiondialog.cpp:1533
+msgid ""
+"Some languages are read from right to left.\n"
+"This setting will change the viewer and editor accordingly."
+msgstr ""
+
+#: optiondialog.cpp:1548
+msgid "Integration"
+msgstr ""
+
+#: optiondialog.cpp:1549
+msgid "Integration Settings"
+msgstr ""
+
+#: optiondialog.cpp:1563
+msgid "Command line options to ignore:"
+msgstr ""
+
+#: optiondialog.cpp:1568
+msgid ""
+"List of command line options that should be ignored when KDiff3 is used by "
+"other tools.\n"
+"Several values can be specified if separated via ';'\n"
+"This will suppress the \"Unknown option\" error."
+msgstr ""
+
+#: optiondialog.cpp:1575
+msgid "Quit also via Escape key"
+msgstr ""
+
+#: optiondialog.cpp:1578
+msgid ""
+"Fast method to exit.\n"
+"For those who are used to using the Escape key."
+msgstr ""
+
+#: optiondialog.cpp:1583
+msgid "Integrate with ClearCase"
+msgstr ""
+
+#: optiondialog.cpp:1586
+msgid ""
+"Integrate with Rational ClearCase from IBM.\n"
+"Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n"
+"(Only enabled when ClearCase \"bin\" directory is in the path.)"
+msgstr ""
+
+#: optiondialog.cpp:1592
+msgid "Remove ClearCase Integration"
+msgstr ""
+
+#: optiondialog.cpp:1595
+msgid ""
+"Restore the old \"map\" file from before doing the ClearCase integration."
+msgstr ""
+
+#: optiondialog.cpp:1680
+msgid "Incompatible Font"
+msgstr ""
+
+#: optiondialog.cpp:1681
+msgid "Continue at Own Risk"
+msgstr ""
+
+#: optiondialog.cpp:1682
+msgid "Select Another Font"
+msgstr ""
+
+#: optiondialog.cpp:1717
+msgid "This resets all options. Not only those of the current topic."
+msgstr ""
+
+#: pdiff.cpp:260
+msgid "PreprocessorCmd: "
+msgstr ""
+
+#: pdiff.cpp:265
+msgid "The following option(s) you selected might change data:\n"
+msgstr ""
+
+#: pdiff.cpp:266
+msgid ""
+"\n"
+"Most likely this is not wanted during a merge.\n"
+"Do you want to disable these settings or continue with these settings active?"
+msgstr ""
+
+#: pdiff.cpp:268
+msgid "Option Unsafe for Merging"
+msgstr ""
+
+#: pdiff.cpp:269
+msgid "Use These Options During Merge"
+msgstr ""
+
+#: pdiff.cpp:270
+msgid "Disable Unsafe Options"
+msgstr ""
+
+#: pdiff.cpp:300
+msgid "Loading A"
+msgstr ""
+
+#: pdiff.cpp:304
+msgid "Loading B"
+msgstr ""
+
+#: pdiff.cpp:321 pdiff.cpp:347
+msgid "Diff: A <-> B"
+msgstr ""
+
+#: pdiff.cpp:327 pdiff.cpp:372
+msgid "Linediff: A <-> B"
+msgstr ""
+
+#: pdiff.cpp:338
+msgid "Loading C"
+msgstr ""
+
+#: pdiff.cpp:350
+msgid "Diff: B <-> C"
+msgstr ""
+
+#: pdiff.cpp:353
+msgid "Diff: A <-> C"
+msgstr ""
+
+#: pdiff.cpp:375
+msgid "Linediff: B <-> C"
+msgstr ""
+
+#: pdiff.cpp:378
+msgid "Linediff: A <-> C"
+msgstr ""
+
+#: pdiff.cpp:534
+msgid "All input files contain the same text, but are not binary equal."
+msgstr ""
+
+#: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541
+#, kde-format
+msgid "Files %1 and %2 have equal text, but are not binary equal. \n"
+msgstr ""
+
+#: pdiff.cpp:551
+msgid ""
+"Some inputfiles don't seem to be pure textfiles.\n"
+"Note that the KDiff3-merge was not meant for binary data.\n"
+"Continue at your own risk."
+msgstr ""
+
+#: pdiff.cpp:566
+#, kde-format
+msgid ""
+"Some input characters could not be converted to valid unicode.\n"
+"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n"
+"Don't save the result if unsure. Continue at your own risk.\n"
+"Affected input files are in %1."
+msgstr ""
+
+#: pdiff.cpp:1080
+msgid "Abort"
+msgstr "Abandonează"
+
+#: pdiff.cpp:1087 pdiff.cpp:1175
+msgid "Opening files..."
+msgstr ""
+
+#: pdiff.cpp:1152 pdiff.cpp:1223
+#, fuzzy
+msgid "File open error"
+msgstr "Eroare la deschiderea fișierului"
+
+#: pdiff.cpp:1255
+msgid "Cutting selection..."
+msgstr "Tai selecția..."
+
+#: pdiff.cpp:1276
+msgid "Copying selection to clipboard..."
+msgstr "Copiez selecția în clipboard..."
+
+#: pdiff.cpp:1292
+msgid "Inserting clipboard contents..."
+msgstr "Inserez conținutul clipboard-ului..."
+
+#: pdiff.cpp:1814
+msgid "Save && Continue"
+msgstr ""
+
+#: pdiff.cpp:1815
+msgid "Continue Without Saving"
+msgstr ""
+
+#: pdiff.cpp:2018
+msgid "Search complete."
+msgstr ""
+
+#: pdiff.cpp:2018
+msgid "Search Complete"
+msgstr ""
+
+#: pdiff.cpp:2252
+msgid "Nothing is selected in either diff input window."
+msgstr ""
+
+#: pdiff.cpp:2252
+msgid "Error while adding manual diff range"
+msgstr ""
+
+#: kdiff3_shell.cpp:76
+msgid ""
+"Could not initialize the KDiff3 part.\n"
+"This usually happens due to an installation problem. Please read the README-"
+"file in the source package for details."
+msgstr ""
+
+#: rc.cpp:1
+msgctxt "NAME OF TRANSLATORS"
+msgid "Your names"
+msgstr "Sergiu Bivol"
+
+#: rc.cpp:2
+msgctxt "EMAIL OF TRANSLATORS"
+msgid "Your emails"
+msgstr "sergiu@ase.md"
+
+#. i18n: file: kdiff3_part.rc:4
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:5
+#, fuzzy
+msgid "&KDiff3"
+msgstr "KDiff3"
+
+#. i18n: file: kdiff3_part.rc:13
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:8
+msgid "Configure KDiff3"
+msgstr ""
+
+#. i18n: file: kdiff3_part.rc:16
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:11
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#. i18n: file: kdiff3_shell.rc:106
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:38
+#, fuzzy
+msgid "Main Toolbar"
+msgstr "Bare de unelte"
+
+#~ msgid ""
+#~ "_: NAME OF TRANSLATORS\n"
+#~ "Your names"
+#~ msgstr "Claudiu Costin"
+
+#~ msgid ""
+#~ "_: EMAIL OF TRANSLATORS\n"
+#~ "Your emails"
+#~ msgstr "claudiuc@kde.org"
diff --git a/po/ro/kdiff3plugin.po b/po/ro/kdiff3plugin.po
new file mode 100644 (file)
index 0000000..0d89492
--- /dev/null
@@ -0,0 +1,91 @@
+# Copyright (C) YEAR This_file_is_part_of_KDE
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Sergiu Bivol <sergiu@ase.md>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3plugin\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2008-12-19 17:21+0200\n"
+"Last-Translator: Sergiu Bivol <sergiu@ase.md>\n"
+"Language-Team: Romanian <kde-i18n-ro@lists.kde.org>\n"
+"Language: ro\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 0.3\n"
+"Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < "
+"20)) ? 1 : 2;\n"
+
+#: kdiff3plugin.cpp:107
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#: kdiff3plugin.cpp:114
+#, kde-format
+msgid "Compare with %1"
+msgstr "Compară cu %1"
+
+#: kdiff3plugin.cpp:120
+#, kde-format
+msgid "Merge with %1"
+msgstr "Combină cu %1"
+
+#: kdiff3plugin.cpp:126
+#, kde-format
+msgid "Save '%1' for later"
+msgstr "Salvează „%1” pentru mai tîrziu"
+
+#: kdiff3plugin.cpp:132
+msgid "3-way merge with base"
+msgstr "Combinare în 3 direcții cu bază"
+
+#: kdiff3plugin.cpp:139
+msgid "Compare with ..."
+msgstr "Comparare cu..."
+
+#: kdiff3plugin.cpp:149
+msgid "Clear list"
+msgstr "Curăță lista"
+
+#: kdiff3plugin.cpp:157
+msgid "Compare"
+msgstr "Compară"
+
+#: kdiff3plugin.cpp:163
+msgid "3 way comparison"
+msgstr "Comparare în 3 direcții"
+
+#: kdiff3plugin.cpp:167
+msgid "About KDiff3 menu plugin ..."
+msgstr "Despre modulul de meniu KDiff3..."
+
+#: kdiff3plugin.cpp:269
+msgid ""
+"KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+"Modul de meniu KDiff3: Drept de autor (C) 2008 Joachim Eibl\n"
+"Pagina web KDiff3: http://kdiff3.sourceforge.net\n"
+"\n"
+
+#: kdiff3plugin.cpp:271
+msgid ""
+"Using the context menu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else, \"Save\" the first file for later, and "
+"it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With"
+"\" on the second file.\n"
+"For a 3-way merge first, \"Save\" the base file, then the branch to merge, "
+"and then \"3-way merge with base\" on the other branch which will be used as "
+"the destination.\n"
+"The same also applies to directory comparison and merge."
+msgstr ""
+
+#: kdiff3plugin.cpp:279
+#, fuzzy
+#| msgid "About KDiff3 menu plugin ..."
+msgid "About KDiff3 Menu Plugin"
+msgstr "Despre modulul de meniu KDiff3..."
diff --git a/po/ru/CMakeLists.txt b/po/ru/CMakeLists.txt
new file mode 100644 (file)
index 0000000..26b2f5e
--- /dev/null
@@ -0,0 +1,2 @@
+file(GLOB _po_files *.po)
+GETTEXT_PROCESS_PO_FILES(ru ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
diff --git a/po/ru/kdiff3.po b/po/ru/kdiff3.po
new file mode 100644 (file)
index 0000000..514e822
--- /dev/null
@@ -0,0 +1,3279 @@
+# KDE3 - kdiff3.pot Russian translation.
+# KDE3 - kdeextragear-1/kdiff3.po Russian translation.
+# Nick Shaforostoff <shaforostoff@kde.ru>, 2004-2005, 2009, 2010.
+# Alexander Potashev <aspotashev@gmail.com>, 2010.
+# Vladimir Lomov <irk.translator@gmail.com>, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2010-12-19 17:13+0300\n"
+"Last-Translator: Alexander Potashev <aspotashev@gmail.com>\n"
+"Language-Team: Russian <kde-russian@lists.kde.ru>\n"
+"Language: ru\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.1\n"
+"Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n"
+"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Environment: kde\n"
+"X-Accelerator-Marker: &\n"
+"X-Text-Markup: kde4\n"
+
+#: kreplacements/kreplacements.h:105
+msgid "Continue"
+msgstr "Продолжить"
+
+#: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158
+#: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512
+msgid "Cancel"
+msgstr "Отмена"
+
+#: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631
+msgid "Quit"
+msgstr "Выход"
+
+#: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339
+msgid "Ok"
+msgstr "Ok"
+
+#: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715
+msgid "Help"
+msgstr "Справка"
+
+#: kreplacements/kreplacements.cpp:185
+msgid "Defaults"
+msgstr "По умолчанию"
+
+#. i18n: file: kdiff3_shell.rc:4
+#. i18n: ectx: Menu (file)
+#: kreplacements/kreplacements.cpp:296 rc.cpp:14
+msgid "&File"
+msgstr "&Файл"
+
+#: kreplacements/kreplacements.cpp:297
+msgid "&Edit"
+msgstr "&Правка"
+
+#. i18n: file: kdiff3_shell.rc:7
+#. i18n: ectx: Menu (directory)
+#: kreplacements/kreplacements.cpp:298 rc.cpp:17
+msgid "&Directory"
+msgstr "&Каталог"
+
+#. i18n: file: kdiff3_shell.rc:50
+#. i18n: ectx: Menu (movement)
+#: kreplacements/kreplacements.cpp:301 rc.cpp:26
+msgid "&Movement"
+msgstr "&Перемещение"
+
+#. i18n: file: kdiff3_shell.rc:61
+#. i18n: ectx: Menu (diff)
+#: kreplacements/kreplacements.cpp:302 rc.cpp:29
+msgid "D&iffview"
+msgstr "D&iff"
+
+#. i18n: file: kdiff3_shell.rc:73
+#. i18n: ectx: Menu (merge)
+#: kreplacements/kreplacements.cpp:303 rc.cpp:32
+msgid "&Merge"
+msgstr "&Объединение"
+
+#. i18n: file: kdiff3_shell.rc:95
+#. i18n: ectx: Menu (window)
+#: kreplacements/kreplacements.cpp:304 rc.cpp:35
+msgid "&Window"
+msgstr "&Окно"
+
+#: kreplacements/kreplacements.cpp:305
+msgid "&Settings"
+msgstr "&Настройка"
+
+#: kreplacements/kreplacements.cpp:306
+msgid "&Help"
+msgstr "&Справка"
+
+#: kreplacements/kreplacements.cpp:353
+msgid "&About"
+msgstr "&О программе"
+
+#: kreplacements/kreplacements.cpp:369
+msgid "A&uthor"
+msgstr "А&втор"
+
+#: kreplacements/kreplacements.cpp:383
+msgid "&Thanks To"
+msgstr "&Благодарности"
+
+#. i18n: file: kdiff3_shell.rc:30
+#. i18n: ectx: Menu (dir_current_merge_menu)
+#: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497
+#: rc.cpp:20
+msgid "Current Item Merge Operation"
+msgstr "Операция слияния для выбранного объекта"
+
+#. i18n: file: kdiff3_shell.rc:38
+#. i18n: ectx: Menu (dir_current_sync_menu)
+#: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498
+#: rc.cpp:23
+msgid "Current Item Sync Operation"
+msgstr "Операция синхронизации для выбранного объекта"
+
+#: kreplacements/kreplacements.cpp:597
+msgid "Open"
+msgstr "Открыть"
+
+#: kreplacements/kreplacements.cpp:606
+msgid "Save"
+msgstr "Сохранить"
+
+#: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720
+msgid "Save As..."
+msgstr "Сохранить как..."
+
+#: kreplacements/kreplacements.cpp:623
+msgid "Print..."
+msgstr "Печать..."
+
+#: kreplacements/kreplacements.cpp:639
+msgid "Cut"
+msgstr "Вырезать"
+
+#: kreplacements/kreplacements.cpp:647
+msgid "Copy"
+msgstr "Копировать"
+
+#: kreplacements/kreplacements.cpp:655
+msgid "Paste"
+msgstr "Вставить"
+
+#: kreplacements/kreplacements.cpp:663
+msgid "Select All"
+msgstr "Выделить всё"
+
+#: kreplacements/kreplacements.cpp:671
+msgid "Show Toolbar"
+msgstr "Показать панель инструментов"
+
+#: kreplacements/kreplacements.cpp:679
+msgid "Show &Status Bar"
+msgstr "Показать &статусную панель"
+
+#: kreplacements/kreplacements.cpp:687
+#, kde-format
+msgid "&Configure %1..."
+msgstr "&Настроить %1..."
+
+#: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707
+msgid "About"
+msgstr "О программе"
+
+#: kreplacements/kreplacements.cpp:722
+msgid "Find"
+msgstr "Найти"
+
+#: kreplacements/kreplacements.cpp:730
+msgid "Find Next"
+msgstr "Найти далее"
+
+#: kreplacements/kreplacements.cpp:750
+msgid "Select Font"
+msgstr "Выбрать шрифт"
+
+#: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676
+msgid ""
+"You selected a variable width font.\n"
+"\n"
+"Because this program doesn't handle variable width fonts\n"
+"correctly, you might experience problems while editing.\n"
+"\n"
+"Do you want to continue or do you want to select another font."
+msgstr ""
+"Вы выбрали не моноширинный шрифт.\n"
+"\n"
+"Поскольку данная программа не может правильно работать с\n"
+"не моноширинными шрифтами, вы можете столкнуться с проблемами\n"
+"при редактировании.\n"
+"Вы хотите продолжить или вы хотите выбрать другой шрифт?"
+
+#: kreplacements/kreplacements.cpp:792
+msgid "Incompatible font."
+msgstr "Несовместимый шрифт."
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Continue at my own risk"
+msgstr "Продолжить на ваш страх и риск"
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Select another font"
+msgstr "Выбрать другой шрифт"
+
+#: kreplacements/kreplacements.cpp:1134
+msgid "For more documentation, see the help-menu or the subdirectory doc."
+msgstr ""
+"Более подробную документацию можно найти в меню Справка или в поддиректории "
+"doc."
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "KDiff3-Usage"
+msgstr "Использование KDiff3"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Ignore"
+msgstr "Игнорировать"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Exit"
+msgstr "Выход"
+
+#: diff.cpp:251
+msgid "Writing clipboard data to temp file failed."
+msgstr "Не удалось записать данные из буфера обмена во временный файл."
+
+#: diff.cpp:255
+msgid "From Clipboard"
+msgstr "Из буфера обмена"
+
+#: diff.cpp:471
+msgid "Expecting space after closing quotation mark."
+msgstr ""
+
+#: diff.cpp:474
+msgid "Not matching quotation marks."
+msgstr ""
+
+#: diff.cpp:496
+msgid "Unexpected quotation mark within argument."
+msgstr ""
+
+#: diff.cpp:503
+msgid "No program specified."
+msgstr ""
+
+#: diff.cpp:605
+#, kde-format
+msgid ""
+"Preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The preprocessing command will be disabled now."
+msgstr ""
+"Возможная ошибка при предобработки. Проверьте эту команду:\n"
+"\n"
+"  %1\n"
+"\n"
+"Команда предобработки будет отключена."
+
+#: diff.cpp:653
+#, kde-format
+msgid ""
+"The line-matching-preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The line-matching-preprocessing command will be disabled now."
+msgstr ""
+"Возможная ошибка при предобработки строко ориентированного соответствия. "
+"Проверьте эту команду:\n"
+"\n"
+"  %1\n"
+"\n"
+"Команда предобработки строко-ориентированного соответствия будет отключена."
+
+#: diff.cpp:1776 diff.cpp:1790
+msgid ""
+"Data loss error:\n"
+"If it is reproducible please contact the author.\n"
+msgstr ""
+"Ошибка с потерей данных:\n"
+"Если ошибка постоянно повторяется свяжитесь с автором.\n"
+
+#: diff.cpp:1778 diff.cpp:1792
+msgid "Severe Internal Error"
+msgstr "Серьёзная внутренняя ошибка"
+
+#: directorymergewindow.cpp:136
+msgid "Mix of links and normal files."
+msgstr "Совмещение ссылок и обычных файлов"
+
+#: directorymergewindow.cpp:143
+msgid "Link: "
+msgstr "Ссылка: "
+
+#: directorymergewindow.cpp:151
+msgid "Size. "
+msgstr "Размер. "
+
+#: directorymergewindow.cpp:164 directorymergewindow.cpp:174
+msgid "Date & Size: "
+msgstr "Дата и размер: "
+
+#: directorymergewindow.cpp:184 directorymergewindow.cpp:190
+#, kde-format
+msgid "Creating temp copy of %1 failed."
+msgstr "Не удалось создать временную копию %1."
+
+#: directorymergewindow.cpp:201 directorymergewindow.cpp:209
+#, kde-format
+msgid "Opening %1 failed."
+msgstr "Не удалось открыть %1."
+
+#: directorymergewindow.cpp:213
+msgid "Comparing file..."
+msgstr "Сравнивание файла..."
+
+#: directorymergewindow.cpp:223 directorymergewindow.cpp:229
+#, kde-format
+msgid "Error reading from %1"
+msgstr "Ошибка чтения из %1"
+
+#: directorymergewindow.cpp:358
+msgid "Name"
+msgstr "Имя"
+
+#: directorymergewindow.cpp:358
+msgid "Operation"
+msgstr "Действие"
+
+#: directorymergewindow.cpp:358
+msgid "Status"
+msgstr "Состояние"
+
+#: directorymergewindow.cpp:359
+msgid "Unsolved"
+msgstr "Неразрешённый"
+
+#: directorymergewindow.cpp:359
+msgid "Solved"
+msgstr "Разрешённый"
+
+#: directorymergewindow.cpp:359
+msgid "Nonwhite"
+msgstr "Чёрный"
+
+#: directorymergewindow.cpp:359
+msgid "White"
+msgstr "Белый"
+
+#: directorymergewindow.cpp:388
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort "
+"the merge and rescan the directory?"
+msgstr ""
+"Сейчас программа работает в режиме объединения каталогов. Вы действительно "
+"хотите отменить все изменения и обновить содержание каталогов?"
+
+#: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655
+#: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823
+msgid "Warning"
+msgstr "Предупреждение"
+
+#: directorymergewindow.cpp:390 directorymergewindow.cpp:2965
+msgid "Rescan"
+msgstr "Обновить"
+
+#: directorymergewindow.cpp:391 pdiff.cpp:1081
+msgid "Continue Merging"
+msgstr "Продолжить"
+
+#: directorymergewindow.cpp:548
+msgid "Opening of directories failed:"
+msgstr "Не удалось открыть каталоги:"
+
+#: directorymergewindow.cpp:551
+#, kde-format
+msgid "Dir A \"%1\" does not exist or is not a directory.\n"
+msgstr "Каталог A «%1» не существует или это не каталог.\n"
+
+#: directorymergewindow.cpp:554
+#, kde-format
+msgid "Dir B \"%1\" does not exist or is not a directory.\n"
+msgstr "Каталог B «%1» не существует или это не каталог.\n"
+
+#: directorymergewindow.cpp:557
+#, kde-format
+msgid "Dir C \"%1\" does not exist or is not a directory.\n"
+msgstr "Каталог C «%1» не существует или это не каталог.\n"
+
+#: directorymergewindow.cpp:559
+msgid "Directory Open Error"
+msgstr "Ошибка чтения каталога"
+
+#: directorymergewindow.cpp:567
+msgid ""
+"The destination directory must not be the same as A or B when three "
+"directories are merged.\n"
+"Check again before continuing."
+msgstr ""
+"Путь к конечному каталогу не должен совпадать с A или B при объединении трёх "
+"каталогов.\n"
+"Проверьте снова прежде чем продолжить."
+
+#: directorymergewindow.cpp:569
+msgid "Parameter Warning"
+msgstr "Неправильный параметр"
+
+#: directorymergewindow.cpp:574
+msgid "Scanning directories..."
+msgstr "Сканирование каталогов..."
+
+#: directorymergewindow.cpp:607
+msgid "Reading Directory A"
+msgstr "Чтение каталога A"
+
+#: directorymergewindow.cpp:629
+msgid "Reading Directory B"
+msgstr "Чтение каталога B"
+
+#: directorymergewindow.cpp:651
+msgid "Reading Directory C"
+msgstr "Чтение каталога C"
+
+#: directorymergewindow.cpp:677
+msgid "Some subdirectories were not readable in"
+msgstr "Не удалось прочитать некоторые подкаталоги в"
+
+#: directorymergewindow.cpp:682
+msgid "Check the permissions of the subdirectories."
+msgstr "Проверьте права этих каталогов."
+
+#: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737
+#: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233
+#: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328
+msgid "Ready."
+msgstr "Готово."
+
+#: directorymergewindow.cpp:735
+msgid "Directory Comparison Status"
+msgstr "Состояние сравнения каталогов"
+
+#: directorymergewindow.cpp:736
+msgid "Number of subdirectories:"
+msgstr "Количество подкаталогов:"
+
+#: directorymergewindow.cpp:737
+msgid "Number of equal files:"
+msgstr "Количество одинаковых файлов:"
+
+#: directorymergewindow.cpp:738
+msgid "Number of different files:"
+msgstr "Количество разных файлов:"
+
+#: directorymergewindow.cpp:741
+msgid "Number of manual merges:"
+msgstr "Количество объединений вручную:"
+
+#: directorymergewindow.cpp:912
+msgid "This affects all merge operations."
+msgstr "Это влияет на все объединения"
+
+#: directorymergewindow.cpp:913
+msgid "Changing All Merge Operations"
+msgstr "Изменение всех объединений"
+
+#: directorymergewindow.cpp:1312
+msgid "Processing "
+msgstr "Обработка "
+
+#: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742
+msgid "To do."
+msgstr "Осталось сделать."
+
+#: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996
+msgid "Copy A to B"
+msgstr "Копировать A в B"
+
+#: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997
+msgid "Copy B to A"
+msgstr "Копировать B в A"
+
+#: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998
+msgid "Delete A"
+msgstr "Удалить A"
+
+#: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999
+msgid "Delete B"
+msgstr "Удалить B"
+
+#: directorymergewindow.cpp:1814
+msgid "Delete A & B"
+msgstr "Удалить A и B"
+
+#: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001
+msgid "Merge to A"
+msgstr "Объединить в A"
+
+#: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002
+msgid "Merge to B"
+msgstr "Объединить в B"
+
+#: directorymergewindow.cpp:1817
+msgid "Merge to A & B"
+msgstr "Объединить в A & B"
+
+#: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993
+msgid "Delete (if exists)"
+msgstr "Удалить (если существует)"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+#: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869
+msgid "Merge"
+msgstr "Объединить"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+msgid "Merge (manual)"
+msgstr "Объединить (вручную)"
+
+#: directorymergewindow.cpp:1824
+msgid "Error: Conflicting File Types"
+msgstr "Ошибка: несовместимые типы файлов"
+
+#: directorymergewindow.cpp:1825
+msgid "Error: Changed and Deleted"
+msgstr "Ошибка: изменено или удалено"
+
+#: directorymergewindow.cpp:1826
+msgid "Error: Dates are equal but files are not."
+msgstr "Ошибка: время совпадает, а содержимое файлов — нет."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906
+msgid "This operation is currently not possible."
+msgstr "Эта операция сейчас недоступна."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174
+msgid "Operation Not Possible"
+msgstr "Операция недоступна"
+
+#: directorymergewindow.cpp:1945
+msgid ""
+"This should never happen: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"If you know how to reproduce this, please contact the program author."
+msgstr ""
+"Этого не должно случаться:\n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"Если вы знаете как воспроизвести это, пожалуйста, сообщите автору программы."
+
+#: directorymergewindow.cpp:1945
+msgid "Program Error"
+msgstr "Ошибка программы"
+
+#: directorymergewindow.cpp:1956
+msgid "An error occurred while copying.\n"
+msgstr "Ошибка копирования.\n"
+
+#: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025
+#: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105
+#: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123
+#: directorymergewindow.cpp:2374
+msgid "Error"
+msgstr "Ошибка"
+
+#: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375
+msgid "Merge Error"
+msgstr "Ошибка объединения"
+
+#: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380
+msgid "Error."
+msgstr "Ошибка."
+
+#: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272
+#: directorymergewindow.cpp:2312
+msgid "Done."
+msgstr "Готово."
+
+#: directorymergewindow.cpp:1990
+msgid "Not saved."
+msgstr "Не сохранено."
+
+#: directorymergewindow.cpp:2025
+msgid "Unknown merge operation. (This must never happen!)"
+msgstr "Неизвестное объединение. (Этого не должно быть!)"
+
+#: directorymergewindow.cpp:2057
+msgid "Unknown merge operation."
+msgstr "Неизвестное объединение."
+
+#: directorymergewindow.cpp:2072
+msgid ""
+"The merge is about to begin.\n"
+"\n"
+"Choose \"Do it\" if you have read the instructions and know what you are "
+"doing.\n"
+"Choosing \"Simulate it\" will tell you what would happen.\n"
+"\n"
+"Be aware that this program still has beta status and there is NO WARRANTY "
+"whatsoever! Make backups of your vital data!"
+msgstr ""
+"Сейчас начнётся объединения.\n"
+"\n"
+"Нажмите «Выполнить» после прочтения инструкций и знаете что вы делаете.\n"
+"Нажмите «Имитировать» чтобы увидеть, что должно произойти.\n"
+"\n"
+"Мы предупреждаем, что эта программа всё ещё имеет бета статус и не "
+"предоставляем никаких ГАРАНТИЙ! Делайте резервные копии ваших важных данных!"
+
+#: directorymergewindow.cpp:2077
+msgid "Starting Merge"
+msgstr "Начало объединения"
+
+#: directorymergewindow.cpp:2078
+msgid "Do It"
+msgstr "Выполнить"
+
+#: directorymergewindow.cpp:2079
+msgid "Simulate It"
+msgstr "Имитировать"
+
+#: directorymergewindow.cpp:2105
+msgid ""
+"The highlighted item has a different type in the different directories. "
+"Select what to do."
+msgstr ""
+"Выделенный объект имеет разные типы в разных каталогах. Выберите, что делать."
+
+#: directorymergewindow.cpp:2114
+msgid ""
+"The modification dates of the file are equal but the files are not. Select "
+"what to do."
+msgstr ""
+"Даты последнего изменения файлов одинаковы, но содержимое — нет. Выберите, "
+"что делать."
+
+#: directorymergewindow.cpp:2123
+msgid ""
+"The highlighted item was changed in one directory and deleted in the other. "
+"Select what to do."
+msgstr ""
+"Выделенный файл был изменён в одном каталоге и удалён в другом. Выберите, "
+"что делать."
+
+#: directorymergewindow.cpp:2174
+msgid ""
+"This operation is currently not possible because directory merge is "
+"currently running."
+msgstr ""
+"Эта операция сейчас недоступна, поскольку выполняется объединение каталогов."
+
+#: directorymergewindow.cpp:2234
+msgid ""
+"There was an error in the last step.\n"
+"Do you want to continue with the item that caused the error or do you want "
+"to skip this item?"
+msgstr ""
+"На предыдущем этапе произошла ошибка.\n"
+"Вы хотите продолжить с объектом, который вызвал ошибку, или пропустить этот "
+"объект?"
+
+#: directorymergewindow.cpp:2236
+msgid "Continue merge after an error"
+msgstr "Продолжить объединение после ошибки"
+
+#: directorymergewindow.cpp:2237
+msgid "Continue With Last Item"
+msgstr "Продолжить с последнего объекта"
+
+#: directorymergewindow.cpp:2238
+msgid "Skip Item"
+msgstr "Пропустить объект"
+
+#: directorymergewindow.cpp:2272
+msgid "Skipped."
+msgstr "Пропущено."
+
+#: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493
+msgid "In progress..."
+msgstr "Идёт работа..."
+
+#: directorymergewindow.cpp:2327
+msgid "Merge operation complete."
+msgstr "Объединение завершено."
+
+#: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330
+msgid "Merge Complete"
+msgstr "Объединение завершено"
+
+#: directorymergewindow.cpp:2340
+msgid ""
+"Simulated merge complete: Check if you agree with the proposed operations."
+msgstr ""
+"Имитирование объединение завершено. Вы согласны с предлагаемыми изменениями?"
+
+#: directorymergewindow.cpp:2374
+msgid "An error occurred. Press OK to see detailed information.\n"
+msgstr "Произошла ошибка. Нажмите OK для подробностей.\n"
+
+#: directorymergewindow.cpp:2406
+#, kde-format
+msgid "Error: While deleting %1: Creating backup failed."
+msgstr "Ошибка: удаление %1: не удалось создать резервную копию."
+
+#: directorymergewindow.cpp:2413
+#, kde-format
+msgid "delete directory recursively( %1 )"
+msgstr "удалить каталог рекурсивно(%1 )"
+
+#: directorymergewindow.cpp:2415
+#, kde-format
+msgid "delete( %1 )"
+msgstr "удалить( %1 )"
+
+#: directorymergewindow.cpp:2430
+msgid "Error: delete dir operation failed while trying to read the directory."
+msgstr "Ошибка: не удалось удалить каталог при попытке прочитать этот каталог."
+
+#: directorymergewindow.cpp:2449
+#, kde-format
+msgid "Error: rmdir( %1 ) operation failed."
+msgstr "Ошибка: операция rmdir( %1 ) завершилась с ошибкой."
+
+#: directorymergewindow.cpp:2459
+msgid "Error: delete operation failed."
+msgstr "Ошибка: не удалось удалить."
+
+#: directorymergewindow.cpp:2485
+#, kde-format
+msgid "manual merge( %1, %2, %3 -> %4)"
+msgstr "объединение вручную( %1, %2, %3 -> %4)"
+
+#: directorymergewindow.cpp:2488
+msgid ""
+"     Note: After a manual merge the user should continue by pressing F7."
+msgstr "     После завершения объединения вручную нажмите F7."
+
+#: directorymergewindow.cpp:2513
+#, kde-format
+msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed."
+msgstr ""
+"Ошибка: операция copy(%1 -> %2) завершилась с ошибкой. Не удалось удалить "
+"существующее назначение."
+
+#: directorymergewindow.cpp:2522
+#, kde-format
+msgid "copyLink( %1 -> %2 )"
+msgstr "copyLink( %1 -> %2 ) скопировать ссылку"
+
+#: directorymergewindow.cpp:2533
+msgid "Error: copyLink failed: Remote links are not yet supported."
+msgstr ""
+"Ошибка: операция copyLink завершилась с ошибкой: удалённые ссылки не "
+"поддерживаются."
+
+#: directorymergewindow.cpp:2539
+msgid "Error: copyLink failed."
+msgstr "Ошибка операция copyLink (копирование ссылки) завершилась с ошибкой."
+
+#: directorymergewindow.cpp:2564
+#, kde-format
+msgid "copy( %1 -> %2 )"
+msgstr "copy( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2590
+#, kde-format
+msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination."
+msgstr ""
+"Ошибка при выполнении rename( %1 -> %2 ). Не удалось удалить существующее "
+"назначение."
+
+#: directorymergewindow.cpp:2596
+#, kde-format
+msgid "rename( %1 -> %2 )"
+msgstr "rename( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2605
+msgid "Error: Rename failed."
+msgstr "Ошибка: не удалось переименовать."
+
+#: directorymergewindow.cpp:2623
+#, kde-format
+msgid "Error during makeDir of %1. Cannot delete existing file."
+msgstr "Не удалось создать каталог %1. Не удалось удалить существующий файл."
+
+#: directorymergewindow.cpp:2639
+#, kde-format
+msgid "makeDir( %1 )"
+msgstr "makeDir( %1 )"
+
+#: directorymergewindow.cpp:2649
+msgid "Error while creating directory."
+msgstr "Не удалось создать каталог"
+
+#: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784
+msgid "Dest"
+msgstr "Назначение"
+
+#: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709
+msgid "Dir"
+msgstr "Каталог"
+
+#: directorymergewindow.cpp:2678
+msgid "Type"
+msgstr "Тип"
+
+#: directorymergewindow.cpp:2678
+msgid "Size"
+msgstr "Размер"
+
+#: directorymergewindow.cpp:2679
+msgid "Attr"
+msgstr "Атрибуты"
+
+#: directorymergewindow.cpp:2679
+msgid "Last Modification"
+msgstr "Последнее изменение"
+
+#: directorymergewindow.cpp:2679
+msgid "Link-Destination"
+msgstr "Объект ссылки"
+
+#: directorymergewindow.cpp:2709 difftextwindow.cpp:401
+msgid "File"
+msgstr "Файл"
+
+#: directorymergewindow.cpp:2726
+msgid "not available"
+msgstr "недоступно"
+
+#: directorymergewindow.cpp:2746
+msgid "A (Dest): "
+msgstr "A (назначение): "
+
+#: directorymergewindow.cpp:2749
+msgid "A (Base): "
+msgstr "A (исходное): "
+
+#: directorymergewindow.cpp:2755
+msgid "B (Dest): "
+msgstr "B (назначение): "
+
+#: directorymergewindow.cpp:2763
+msgid "C (Dest): "
+msgstr "C (назначение): "
+
+#: directorymergewindow.cpp:2769
+msgid "Dest: "
+msgstr "Назначение: "
+
+#: directorymergewindow.cpp:2836
+msgid "Save Directory Merge State As..."
+msgstr "Сохранить состояние объединения каталога как..."
+
+#: directorymergewindow.cpp:2959
+msgid "Start/Continue Directory Merge"
+msgstr "Начать/продолжить объединение каталогов"
+
+#: directorymergewindow.cpp:2960
+msgid "Run Operation for Current Item"
+msgstr "Выполнить операцию для выбранного объекта"
+
+#: directorymergewindow.cpp:2961
+msgid "Compare Selected File"
+msgstr "Сравнить выделенный файл"
+
+#: directorymergewindow.cpp:2962
+msgid "Merge Current File"
+msgstr "Объединить текущий файл"
+
+#: directorymergewindow.cpp:2962
+msgid ""
+"Merge\n"
+"File"
+msgstr ""
+"Объединить\n"
+"файл"
+
+#: directorymergewindow.cpp:2963
+msgid "Fold All Subdirs"
+msgstr "Включая все подкаталоги"
+
+#: directorymergewindow.cpp:2964
+msgid "Unfold All Subdirs"
+msgstr "Исключая все подкаталоги"
+
+#: directorymergewindow.cpp:2968
+msgid "Choose A for All Items"
+msgstr "Выбрать A для всех"
+
+#: directorymergewindow.cpp:2969
+msgid "Choose B for All Items"
+msgstr "Выбрать B для всех"
+
+#: directorymergewindow.cpp:2970
+msgid "Choose C for All Items"
+msgstr "Выбрать C для всех"
+
+#: directorymergewindow.cpp:2971
+msgid "Auto-Choose Operation for All Items"
+msgstr "Автоматически выбирать тип действия для всех"
+
+#: directorymergewindow.cpp:2972
+msgid "No Operation for All Items"
+msgstr "Убрать действия для всех"
+
+#: directorymergewindow.cpp:2977
+msgid "Show Identical Files"
+msgstr "Показать идентичные файлы"
+
+#: directorymergewindow.cpp:2977
+msgid ""
+"Identical\n"
+"Files"
+msgstr ""
+"Идентичные\n"
+"файлы"
+
+#: directorymergewindow.cpp:2978
+msgid "Show Different Files"
+msgstr "Показать разные файлы"
+
+#: directorymergewindow.cpp:2979
+msgid "Show Files only in A"
+msgstr "Показать файлы только в A"
+
+#: directorymergewindow.cpp:2979
+msgid ""
+"Files\n"
+"only in A"
+msgstr ""
+"Файлы\n"
+"только в A"
+
+#: directorymergewindow.cpp:2980
+msgid "Show Files only in B"
+msgstr "Показать файлы только в B"
+
+#: directorymergewindow.cpp:2980
+msgid ""
+"Files\n"
+"only in B"
+msgstr ""
+"Файлы\n"
+"только в B"
+
+#: directorymergewindow.cpp:2981
+msgid "Show Files only in C"
+msgstr "Показать файлы только в C"
+
+#: directorymergewindow.cpp:2981
+msgid ""
+"Files\n"
+"only in C"
+msgstr ""
+"Файлы\n"
+"только в C"
+
+#: directorymergewindow.cpp:2985
+msgid "Compare Explicitly Selected Files"
+msgstr "Сравнить только выделенные файлы"
+
+#: directorymergewindow.cpp:2986
+msgid "Merge Explicitly Selected Files"
+msgstr "Объединить только выделенные файлы"
+
+#: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995
+msgid "Do Nothing"
+msgstr "Ничего"
+
+#: directorymergewindow.cpp:2989
+msgid "A"
+msgstr "A"
+
+#: directorymergewindow.cpp:2990
+msgid "B"
+msgstr "B"
+
+#: directorymergewindow.cpp:2991
+msgid "C"
+msgstr "C"
+
+#: directorymergewindow.cpp:3000
+msgid "Delete A && B"
+msgstr "Удалить A и B"
+
+#: directorymergewindow.cpp:3003
+msgid "Merge to A && B"
+msgstr "Объединить в A и B"
+
+#: main.cpp:74 main.cpp:76
+msgid "Ignored. (User defined.)"
+msgstr "Пропущено. (Определено пользователем.)"
+
+#: main.cpp:162
+msgid "kdiff3"
+msgstr "kdiff3"
+
+#: main.cpp:164
+msgid "Tool for Comparison and Merge of Files and Directories"
+msgstr "Инструмент для сравнения и объединения файлов и каталогов"
+
+#: main.cpp:165
+#, fuzzy
+#| msgid "(c) 2002-2009 Joachim Eibl"
+msgid "(c) 2002-2011 Joachim Eibl"
+msgstr "© Joachim Eibl, 2002-2009"
+
+#: main.cpp:172 kdiff3_part.cpp:303
+msgid "Joachim Eibl"
+msgstr "Joachim Eibl"
+
+#: main.cpp:173
+msgid "Eike Sauer"
+msgstr "Eike Sauer"
+
+#: main.cpp:173
+msgid "Bugfixes, Debian package maintainer"
+msgstr "Исправления, сопровождающий Debian пакета"
+
+#: main.cpp:174
+msgid "Sebastien Fricker"
+msgstr "Sebastien Fricker"
+
+#: main.cpp:174
+msgid "Windows installer"
+msgstr "Установщик для Windows"
+
+#: main.cpp:175
+msgid "Stephan Binner"
+msgstr "Stephan Binner"
+
+#: main.cpp:175
+msgid "i18n-help"
+msgstr "Перевод справки"
+
+#: main.cpp:176
+msgid "Stefan Partheymueller"
+msgstr "Stefan Partheymueller"
+
+#: main.cpp:176
+msgid "Clipboard-patch"
+msgstr "Патч буфера обмена"
+
+#: main.cpp:177
+msgid "David Faure"
+msgstr "David Faure"
+
+#: main.cpp:177
+msgid "KIO-Help"
+msgstr "Справка по KIO"
+
+#: main.cpp:178
+msgid "Bernd Gehrmann"
+msgstr "Bernd Gehrmann"
+
+#: main.cpp:178
+msgid "Class CvsIgnoreList from Cervisia"
+msgstr "Класс CvsIgnoreList из Cervisia"
+
+#: main.cpp:179
+msgid "Andre Woebbeking"
+msgstr "Andre Woebbeking"
+
+#: main.cpp:179
+msgid "Class StringMatcher"
+msgstr "Класс StringMatcher"
+
+#: main.cpp:180
+msgid "Michael Denio"
+msgstr "Michael Denio"
+
+#: main.cpp:180
+msgid "Directory Equality-Coloring patch"
+msgstr "Патч подсветки равенства каталогов"
+
+#: main.cpp:181
+msgid "Manfred Koehler"
+msgstr "Manfred Koehler"
+
+#: main.cpp:181
+msgid "Fix for slow startup on Windows"
+msgstr "Исправление по медленному запуску на Windows"
+
+#: main.cpp:182
+msgid "Sergey Zorin"
+msgstr "Sergey Zorin"
+
+#: main.cpp:182
+msgid "Diff Ext for Windows"
+msgstr "Diff Ext для Windows"
+
+#: main.cpp:183
+msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+
+#: main.cpp:183
+msgid "GNU-Diffutils"
+msgstr "GNU утилиты diff"
+
+#: main.cpp:184
+msgid "Tino Boellsterling, Timothy Mee"
+msgstr "Tino Boellsterling, Timothy Mee"
+
+#: main.cpp:184
+msgid "Intensive test, use and feedback"
+msgstr "Тщательное тестирование, применение и отзыв"
+
+#: main.cpp:185
+msgid "Michael Schmidt"
+msgstr "Michael Schmidt"
+
+#: main.cpp:185
+msgid "Mac support"
+msgstr "Поддержка Mac"
+
+#: main.cpp:186
+msgid "Valentin Rusu"
+msgstr "Valentin Rusu"
+
+#: main.cpp:186 main.cpp:187
+msgid "KDE4 porting"
+msgstr "Портирование на KDE4"
+
+#: main.cpp:187
+msgid "Albert Astals Cid"
+msgstr "Albert Astals Cid"
+
+#: main.cpp:188
+msgid "Silvan Scherrer"
+msgstr ""
+
+#: main.cpp:188
+msgid "OS2 port"
+msgstr ""
+
+#: main.cpp:190
+msgid "+ Many thanks to those who reported bugs and contributed ideas!"
+msgstr ""
+"+ Благодарю всех, кто отправлял отчёты об ошибках и предлагал новые идеи!"
+
+#: main.cpp:196
+msgid "Merge the input."
+msgstr "Объединить ввод."
+
+#: main.cpp:197
+msgid "Explicit base file. For compatibility with certain tools."
+msgstr "Явный основной файл. Для совместимости с некоторыми программами."
+
+#: main.cpp:198
+msgid "Output file. Implies -m. E.g.: -o newfile.txt"
+msgstr "Выходной файл. Подразумевает наличие -m. Например: -o newfile.txt"
+
+#: main.cpp:199
+msgid "Output file, again. (For compatibility with certain tools.)"
+msgstr "Выходной файл, снова. (Для совместимости с некоторыми программами.)"
+
+#: main.cpp:200
+msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)"
+msgstr ""
+"Не выводить графический интерфейс если все конфликты удалось разрешить "
+"автоматически. (требуется -o файл)"
+
+#: main.cpp:201
+msgid "Don't solve conflicts automatically. (For compatibility...)"
+msgstr "Не разрешать конфликты автоматически (для совместимости...)"
+
+#: main.cpp:202
+msgid "Visible name replacement for input file 1 (base)."
+msgstr "Замена видимого названия для входного файла 1 (основной)."
+
+#: main.cpp:203
+msgid "Visible name replacement for input file 2."
+msgstr "Замена видимого названия для входного файла 2."
+
+#: main.cpp:204
+msgid "Visible name replacement for input file 3."
+msgstr "Замена видимого названия для входного файла 3."
+
+#: main.cpp:205
+msgid "Alternative visible name replacement. Supply this once for every input."
+msgstr ""
+"Альтернативная замена видимого названия. Использовать для каждого входного "
+"файла."
+
+#: main.cpp:206
+msgid ""
+"Override a config setting. Use once for every setting. E.g.: --cs "
+"\"AutoAdvance=1\""
+msgstr ""
+"Перезаписать настраиваемый параметр. Использовать один раз для любого "
+"параметра. Например: --cs \"autoAdvance=1\""
+
+#: main.cpp:207
+msgid "Show list of config settings and current values."
+msgstr "Показать список настраиваемых параметров и их текущие значения."
+
+#: main.cpp:208
+msgid "Use a different config file."
+msgstr "Использовать другой файл настроек."
+
+#: main.cpp:211
+msgid "file1 to open (base, if not specified via --base)"
+msgstr "файл1 открыть (основной, если не указан посредством --base)"
+
+#: main.cpp:212
+msgid "file2 to open"
+msgstr "файл2 открыть"
+
+#: main.cpp:213
+msgid "file3 to open"
+msgstr "файл3 открыть"
+
+#: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976
+#: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002
+#: mergeresultwindow.cpp:1014
+#, kde-format
+msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)"
+msgstr ""
+"Осталось неразрешённых конфликтов: %1 (%2 из которых — конфликты пустых "
+"промежутков)"
+
+#: mergeresultwindow.cpp:303
+msgid ""
+"The output has been modified.\n"
+"If you continue your changes will be lost."
+msgstr ""
+"Вывод был изменён.\n"
+"Если вы продолжите, изменения будут утеряны."
+
+#: mergeresultwindow.cpp:834 pdiff.cpp:532
+msgid "All input files are binary equal."
+msgstr "Все входные файлы одинаковы на двоичном уровне."
+
+#: mergeresultwindow.cpp:836
+msgid "All input files contain the same text."
+msgstr "Все входные файлы содержат одинаковый текст."
+
+#: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840
+#: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540
+#, kde-format
+msgid "Files %1 and %2 are binary equal.\n"
+msgstr "Файлы %1 и %2 одинаковы на двоичном уровне.\n"
+
+#: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841
+#: mergeresultwindow.cpp:843
+#, kde-format
+msgid "Files %1 and %2 have equal text.\n"
+msgstr "Файлы %1 и %2 содержат одинаковый текст. \n"
+
+#: mergeresultwindow.cpp:849
+msgid "Total number of conflicts: "
+msgstr "Общее количество конфликтов: "
+
+#: mergeresultwindow.cpp:850
+msgid ""
+"\n"
+"Nr of automatically solved conflicts: "
+msgstr ""
+"\n"
+"Количество разрешённых автоматически конфликтов: "
+
+#: mergeresultwindow.cpp:851
+msgid ""
+"\n"
+"Nr of unsolved conflicts: "
+msgstr ""
+"\n"
+"Количество неразрешённых конфликтов: "
+
+#: mergeresultwindow.cpp:853
+msgid "Conflicts"
+msgstr "Конфликты"
+
+#: mergeresultwindow.cpp:1728
+msgid "<No src line>"
+msgstr "<Нет исходной строки>"
+
+#: mergeresultwindow.cpp:1736
+msgid "<Merge Conflict (Whitespace only)>"
+msgstr "<Конфликт объединения (пустые промежутки)>"
+
+#: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517
+msgid "<Merge Conflict>"
+msgstr "<Конфликт объединения>"
+
+#: mergeresultwindow.cpp:2725
+msgid ""
+"Not all conflicts are solved yet.\n"
+"File not saved.\n"
+msgstr ""
+"Не все конфликты разрешены.\n"
+"Файл не сохранён.\n"
+
+#: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736
+msgid "Conflicts Left"
+msgstr "Осталось конфликтов"
+
+#: mergeresultwindow.cpp:2734
+msgid ""
+"There is a line end style conflict. Please choose the line end style "
+"manually.\n"
+"File not saved.\n"
+msgstr ""
+"Конфликт в типе перевода строки. Пожалуйста, выберите тип перевода строки "
+"вручную.\n"
+"Файл не сохранён.\n"
+
+#: mergeresultwindow.cpp:2748
+msgid ""
+"\n"
+"\n"
+"Creating backup failed. File not saved."
+msgstr ""
+"\n"
+"\n"
+"Не удалось создать резервную копию. Файл не сохранён."
+
+#: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792
+msgid "File Save Error"
+msgstr "Ошибка сохранения файла"
+
+#: mergeresultwindow.cpp:2792
+msgid "Error while writing."
+msgstr "Ошибка записи"
+
+#: mergeresultwindow.cpp:3122
+msgid "Output"
+msgstr "Вывод"
+
+#: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314
+msgid "[Modified]"
+msgstr "[Изменён]"
+
+#: mergeresultwindow.cpp:3141
+msgid "Encoding for saving"
+msgstr "Кодировка для сохранения"
+
+#: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737
+#: optiondialog.cpp:762
+msgid "Line end style:"
+msgstr "Тип перевода строки:"
+
+#: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767
+msgid "Unix"
+msgstr "Unix"
+
+#: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737
+msgid "DOS"
+msgstr "DOS"
+
+#: mergeresultwindow.cpp:3229
+msgid "Conflict"
+msgstr "Конфликт"
+
+#: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263
+#: mergeresultwindow.cpp:3265
+msgid "Codec from"
+msgstr "Кодировать из"
+
+#: kdiff3_part.cpp:157 kdiff3_part.cpp:234
+msgid "Couldn't find files for comparison."
+msgstr "Не удалось найти файлы для сравнения."
+
+#: kdiff3_part.cpp:302
+msgid "KDiff3Part"
+msgstr "KDiff3Part"
+
+#: fileaccess.cpp:612
+msgid ""
+"While trying to make a backup, deleting an older backup failed. \n"
+"Filename: "
+msgstr ""
+"Не удалось удалить старую резервную копию. \n"
+"Файл: "
+
+#: fileaccess.cpp:619
+msgid ""
+"While trying to make a backup, renaming failed. \n"
+"Filenames: "
+msgstr ""
+"Не удалось выполнить переименование. \n"
+"Файлы: "
+
+#: fileaccess.cpp:643
+#, kde-format
+msgid "Getting file status: %1"
+msgstr "Получение состояния файла: %1"
+
+#: fileaccess.cpp:686
+#, kde-format
+msgid "Reading file: %1"
+msgstr "Чтение файла: %1"
+
+#: fileaccess.cpp:723
+#, kde-format
+msgid "Writing file: %1"
+msgstr "Запись в файл: %1"
+
+#: fileaccess.cpp:751
+msgid "Out of memory"
+msgstr "Не хватает памяти"
+
+#: fileaccess.cpp:786
+#, kde-format
+msgid "Making directory: %1"
+msgstr "Создание каталога: %1"
+
+#: fileaccess.cpp:806
+#, kde-format
+msgid "Removing directory: %1"
+msgstr "Удаление каталога: %1"
+
+#: fileaccess.cpp:821
+#, kde-format
+msgid "Removing file: %1"
+msgstr "Удаление файла: %1"
+
+#: fileaccess.cpp:837
+#, kde-format
+msgid "Creating symbolic link: %1 -> %2"
+msgstr "Создание символической ссылки: %1 -> %2"
+
+#: fileaccess.cpp:864
+#, kde-format
+msgid "Renaming file: %1 -> %2"
+msgstr "Переименование файла: %1 -> %2"
+
+#: fileaccess.cpp:897
+#, kde-format
+msgid "Copying file: %1 -> %2"
+msgstr "Копирование файла: %1 -> %2"
+
+#: fileaccess.cpp:911
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for reading failed. Filename: "
+"%1"
+msgstr "Не удалось открыть для чтения файл %1"
+
+#: fileaccess.cpp:917
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for writing failed. Filename: "
+"%1"
+msgstr "Не удалось открыть для записи файл %1"
+
+#: fileaccess.cpp:932
+#, kde-format
+msgid "Error during file copy operation: Reading failed. Filename: %1"
+msgstr "Не удалось прочитать файл %1"
+
+#: fileaccess.cpp:941
+#, kde-format
+msgid "Error during file copy operation: Writing failed. Filename: %1"
+msgstr "Не удалось записать в файл %1"
+
+#: fileaccess.cpp:1231
+msgid "Reading directory: "
+msgstr "Чтение каталога: "
+
+#: fileaccess.cpp:1355
+#, kde-format
+msgid "Listing directory: %1"
+msgstr "Вывод содержимого каталога: %1"
+
+#: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396
+msgid "&Cancel"
+msgstr "&Отмена"
+
+#: difftextwindow.cpp:403
+msgid "Line"
+msgstr "Строка"
+
+#: difftextwindow.cpp:405
+msgid "Line not available"
+msgstr "Строка недоступна"
+
+#: difftextwindow.cpp:1703 difftextwindow.cpp:1736
+msgid "Encoding:"
+msgstr "Кодировка:"
+
+#: difftextwindow.cpp:1759 kdiff3.cpp:831
+msgid "Top line"
+msgstr "Первая строка"
+
+#: difftextwindow.cpp:1769
+msgid "End"
+msgstr "Конец"
+
+#: kdiff3.cpp:169
+msgid "Current Configuration:"
+msgstr "Текущие настройки:"
+
+#: kdiff3.cpp:174
+msgid "Config Option Error:"
+msgstr "Ошибка параметра настройки:"
+
+#: kdiff3.cpp:219
+msgid "Option --auto used, but no output file specified."
+msgstr "Ключ --auto использован, но не указаны выходные файлы."
+
+#: kdiff3.cpp:369
+msgid "Option --auto ignored for directory comparison."
+msgstr "Ключ --auto игнорируется для каталогов"
+
+#: kdiff3.cpp:405
+msgid "Saving failed."
+msgstr "Не удалось произвести сохранение."
+
+#: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214
+msgid "Opening of these files failed:"
+msgstr "Не удалось открыть файлы:"
+
+#: kdiff3.cpp:449
+msgid "File Open Error"
+msgstr "Ошибка открытия файлов"
+
+#: kdiff3.cpp:477
+msgid "Opens documents for comparison..."
+msgstr "Открыть файлы для сравнения..."
+
+#: kdiff3.cpp:479
+msgid "Reload"
+msgstr "Обновить"
+
+#: kdiff3.cpp:482
+msgid "Saves the merge result. All conflicts must be solved!"
+msgstr "Сохранить результат объединения. Все конфликты должны быть разрешены!"
+
+#: kdiff3.cpp:484
+msgid "Saves the current document as..."
+msgstr "Сохранить с другим именем..."
+
+#: kdiff3.cpp:487
+msgid "Print the differences"
+msgstr "Распечатать отличия"
+
+#: kdiff3.cpp:490
+msgid "Quits the application"
+msgstr "Выйти"
+
+#: kdiff3.cpp:492
+msgid "Cuts the selected section and puts it to the clipboard"
+msgstr "Вырезать в буфер обмена"
+
+#: kdiff3.cpp:494
+msgid "Copies the selected section to the clipboard"
+msgstr "Скопировать в буфер обмена"
+
+#: kdiff3.cpp:496
+msgid "Pastes the clipboard contents to current position"
+msgstr "Вставить из буфера обмена"
+
+#: kdiff3.cpp:498
+msgid "Select everything in current window"
+msgstr "Выделить всё в текущем окне"
+
+#: kdiff3.cpp:500
+msgid "Search for a string"
+msgstr "Искать текст"
+
+#: kdiff3.cpp:502
+msgid "Search again for the string"
+msgstr "Продолжить поиск текста"
+
+#: kdiff3.cpp:507
+msgid "Enables/disables the statusbar"
+msgstr "Отобразить/скрыть панель состояния"
+
+#: kdiff3.cpp:511
+msgid "Configure KDiff3..."
+msgstr "Настроить KDiff3..."
+
+#: kdiff3.cpp:532
+msgid "Go to Current Delta"
+msgstr "Перейти к текущему различию"
+
+#: kdiff3.cpp:532
+msgid ""
+"Current\n"
+"Delta"
+msgstr ""
+"Текущее\n"
+"различие"
+
+#: kdiff3.cpp:534
+msgid "Go to First Delta"
+msgstr "Перейти к первому различию"
+
+#: kdiff3.cpp:534
+msgid ""
+"First\n"
+"Delta"
+msgstr ""
+"Первое\n"
+"различие"
+
+#: kdiff3.cpp:536
+msgid "Go to Last Delta"
+msgstr "Перейти к последнему различию"
+
+#: kdiff3.cpp:536
+msgid ""
+"Last\n"
+"Delta"
+msgstr ""
+"Последнее\n"
+"различие"
+
+#: kdiff3.cpp:538
+msgid "(Skips white space differences when \"Show White Space\" is disabled.)"
+msgstr ""
+"(Пропускать отличия в пустых промежутках, когда «Отображать пустые "
+"промежутки» выключено.)"
+
+#: kdiff3.cpp:539
+msgid ""
+"(Does not skip white space differences even when \"Show White Space\" is "
+"disabled.)"
+msgstr ""
+"(Не пропускать отличия в пустых промежутках, даже когда «Отображать пустые "
+"промежутки» выключено.)"
+
+#: kdiff3.cpp:540
+msgid "Go to Previous Delta"
+msgstr "Перейти к предыдущему различию"
+
+#: kdiff3.cpp:540
+msgid ""
+"Prev\n"
+"Delta"
+msgstr ""
+"Предыдущее\n"
+"различие"
+
+#: kdiff3.cpp:542
+msgid "Go to Next Delta"
+msgstr "Перейти к следующему различию"
+
+#: kdiff3.cpp:542
+msgid ""
+"Next\n"
+"Delta"
+msgstr ""
+"Следующее\n"
+"различие"
+
+#: kdiff3.cpp:544
+msgid "Go to Previous Conflict"
+msgstr "Перейти к предыдущему конфликту"
+
+#: kdiff3.cpp:544
+msgid ""
+"Prev\n"
+"Conflict"
+msgstr ""
+"Предыдущий\n"
+"конфликт"
+
+#: kdiff3.cpp:546
+msgid "Go to Next Conflict"
+msgstr "Перейти к следующему конфликту"
+
+#: kdiff3.cpp:546
+msgid ""
+"Next\n"
+"Conflict"
+msgstr ""
+"Следующий\n"
+"конфликт"
+
+#: kdiff3.cpp:548
+msgid "Go to Previous Unsolved Conflict"
+msgstr "Перейти к предыдущему неразрешённому конфликту"
+
+#: kdiff3.cpp:548
+msgid ""
+"Prev\n"
+"Unsolved"
+msgstr ""
+"Предыдущий\n"
+"неразрешённый"
+
+#: kdiff3.cpp:550
+msgid "Go to Next Unsolved Conflict"
+msgstr "Перейти к следующему неразрешённому конфликту"
+
+#: kdiff3.cpp:550
+msgid ""
+"Next\n"
+"Unsolved"
+msgstr ""
+"Следующий\n"
+"неразрешённый"
+
+#: kdiff3.cpp:552
+msgid "Select Line(s) From A"
+msgstr "Выбрать строки из A"
+
+#: kdiff3.cpp:552
+msgid ""
+"Choose\n"
+"A"
+msgstr ""
+"Выбрать\n"
+"A"
+
+#: kdiff3.cpp:553
+msgid "Select Line(s) From B"
+msgstr "Выбрать строки из B"
+
+#: kdiff3.cpp:553
+msgid ""
+"Choose\n"
+"B"
+msgstr ""
+"Выбрать\n"
+"B"
+
+#: kdiff3.cpp:554
+msgid "Select Line(s) From C"
+msgstr "Выбрать строки из C"
+
+#: kdiff3.cpp:554
+msgid ""
+"Choose\n"
+"C"
+msgstr ""
+"Выбрать\n"
+"C"
+
+#: kdiff3.cpp:555
+msgid "Automatically Go to Next Unsolved Conflict After Source Selection"
+msgstr ""
+"Перейти к следующему неразрешённому конфликту после выделения исходника"
+
+#: kdiff3.cpp:555
+msgid ""
+"Auto\n"
+"Next"
+msgstr ""
+"Автоматически\n"
+"следующий"
+
+#: kdiff3.cpp:557
+msgid "Show Space && Tabulator Characters for Differences"
+msgstr "Отображать пробелы и табуляции в различиях"
+
+#: kdiff3.cpp:557
+msgid ""
+"White\n"
+"Characters"
+msgstr ""
+"Пустые\n"
+"промежутки"
+
+#: kdiff3.cpp:558
+msgid "Show White Space"
+msgstr "Отображать пустые промежутки"
+
+#: kdiff3.cpp:558
+msgid ""
+"White\n"
+"Deltas"
+msgstr ""
+"Пустые\n"
+"различия"
+
+#: kdiff3.cpp:560
+msgid "Show Line Numbers"
+msgstr "Отображать номера строк"
+
+#: kdiff3.cpp:560
+msgid ""
+"Line\n"
+"Numbers"
+msgstr ""
+"Номера\n"
+"строк"
+
+#: kdiff3.cpp:561
+msgid "Choose A Everywhere"
+msgstr "Выбрать A везде"
+
+#: kdiff3.cpp:562
+msgid "Choose B Everywhere"
+msgstr "Выбрать B везде"
+
+#: kdiff3.cpp:563
+msgid "Choose C Everywhere"
+msgstr "Выбрать C везде"
+
+#: kdiff3.cpp:564
+msgid "Choose A for All Unsolved Conflicts"
+msgstr "Выбрать A для всех неразрешённых конфликтов"
+
+#: kdiff3.cpp:565
+msgid "Choose B for All Unsolved Conflicts"
+msgstr "Выбрать B для всех неразрешённых конфликтов"
+
+#: kdiff3.cpp:566
+msgid "Choose C for All Unsolved Conflicts"
+msgstr "Выбрать C для всех неразрешённых конфликтов"
+
+#: kdiff3.cpp:567
+msgid "Choose A for All Unsolved Whitespace Conflicts"
+msgstr "Выбрать A для всех неразрешённых конфликтов пустых промежутков"
+
+#: kdiff3.cpp:568
+msgid "Choose B for All Unsolved Whitespace Conflicts"
+msgstr "Выбрать B для всех неразрешённых конфликтов пустых промежутков"
+
+#: kdiff3.cpp:569
+msgid "Choose C for All Unsolved Whitespace Conflicts"
+msgstr "Выбрать C для всех неразрешённых конфликтов пустых промежутков"
+
+#: kdiff3.cpp:570
+msgid "Automatically Solve Simple Conflicts"
+msgstr "Разрешать простые конфликты автоматически"
+
+#: kdiff3.cpp:571
+msgid "Set Deltas to Conflicts"
+msgstr "Определить различия как конфликты"
+
+#: kdiff3.cpp:572
+msgid "Run Regular Expression Auto Merge"
+msgstr "Запустить автоматическое объединение на основе регулярного выражения"
+
+#: kdiff3.cpp:573
+msgid "Automatically Solve History Conflicts"
+msgstr "Разрешать конфликты истории автоматически"
+
+#: kdiff3.cpp:574
+msgid "Split Diff At Selection"
+msgstr "Разделить Diff по выделению"
+
+#: kdiff3.cpp:575
+msgid "Join Selected Diffs"
+msgstr "Сгруппировать выделенные Diff"
+
+#: kdiff3.cpp:577
+msgid "Show Window A"
+msgstr "Отобразить окно A"
+
+#: kdiff3.cpp:578
+msgid "Show Window B"
+msgstr "Отобразить окно B"
+
+#: kdiff3.cpp:579
+msgid "Show Window C"
+msgstr "Отобразить окно C"
+
+#: kdiff3.cpp:580 kdiff3.cpp:591
+msgid "Focus Next Window"
+msgstr "Активировать следующее окно"
+
+#: kdiff3.cpp:582
+msgid "Normal Overview"
+msgstr "Обычный обзор "
+
+#: kdiff3.cpp:583
+msgid "A vs. B Overview"
+msgstr "Обзор A vs. B"
+
+#: kdiff3.cpp:584
+msgid "A vs. C Overview"
+msgstr "Обзор A vs. C "
+
+#: kdiff3.cpp:585
+msgid "B vs. C Overview"
+msgstr "Обзор B vs. C"
+
+#: kdiff3.cpp:586
+msgid "Word Wrap Diff Windows"
+msgstr "Перенос по словам в окнах Diff"
+
+#: kdiff3.cpp:587
+msgid "Add Manual Diff Alignment"
+msgstr "Добавить вручную выравнивание Diff"
+
+#: kdiff3.cpp:588
+msgid "Clear All Manual Diff Alignments"
+msgstr "Убрать все выравнивания Diff"
+
+#: kdiff3.cpp:593
+msgid "Focus Prev Window"
+msgstr "Активировать предыдущее окно"
+
+#: kdiff3.cpp:594
+msgid "Toggle Split Orientation"
+msgstr "Поменять ориентация разделения"
+
+#: kdiff3.cpp:596
+msgid "Dir && Text Split Screen View"
+msgstr "Режим каталог/текст"
+
+#: kdiff3.cpp:598
+msgid "Toggle Between Dir && Text View"
+msgstr "Каталоги/текст"
+
+#: kdiff3.cpp:654 pdiff.cpp:1812
+msgid "The merge result hasn't been saved."
+msgstr "Результат объединения не сохранён"
+
+#: kdiff3.cpp:656
+msgid "Save && Quit"
+msgstr "Сохранить и выйти"
+
+#: kdiff3.cpp:657
+msgid "Quit Without Saving"
+msgstr "Выйти без сохранения"
+
+#: kdiff3.cpp:665 pdiff.cpp:1823
+msgid "Saving the merge result failed."
+msgstr "Не удалось сохранить результат объединения"
+
+#: kdiff3.cpp:676 pdiff.cpp:1078
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort?"
+msgstr "Остановить объединение каталогов?"
+
+#: kdiff3.cpp:701
+msgid "Saving file..."
+msgstr "Сохранение файла..."
+
+#: kdiff3.cpp:718
+msgid "Saving file with a new filename..."
+msgstr "Сохранение файла с новым именем..."
+
+#: kdiff3.cpp:781
+#, fuzzy
+#| msgid "Printing completed."
+msgid "Printing not implemented."
+msgstr "Печать завершена."
+
+#: kdiff3.cpp:815
+msgid "Printing..."
+msgstr "Печать..."
+
+#: kdiff3.cpp:956
+msgid "Selection"
+msgstr "Выбор"
+
+#: kdiff3.cpp:982
+msgid "Printing completed."
+msgstr "Печать завершена."
+
+#: kdiff3.cpp:986
+msgid "Printing aborted."
+msgstr "Печать прервана."
+
+#: kdiff3.cpp:993
+msgid "Exiting..."
+msgstr "Выход..."
+
+#: kdiff3.cpp:1006
+msgid "Toggling toolbar..."
+msgstr "Отображение/скрытие панели инструментов..."
+
+#: kdiff3.cpp:1027
+msgid "Toggle the statusbar..."
+msgstr "Отображение/скрытие панели состояния..."
+
+#: smalldialogs.cpp:58
+msgid "A (Base):"
+msgstr "A (исходное):"
+
+#: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99
+#: smalldialogs.cpp:142
+msgid "File..."
+msgstr "Файл..."
+
+#: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101
+#: smalldialogs.cpp:144
+msgid "Dir..."
+msgstr "Каталог..."
+
+#: smalldialogs.cpp:93
+msgid "C (Optional):"
+msgstr "С (необязательно):"
+
+#: smalldialogs.cpp:116
+msgid "Swap/Copy Names ..."
+msgstr "Поменять/копировать названия ..."
+
+#: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123
+#, kde-format
+msgid "Swap %1<->%2"
+msgstr "Поменять %1<->%2"
+
+#: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126
+#, kde-format
+msgid "Copy %1->Output"
+msgstr "Копировать %1->Вывод"
+
+#: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129
+#, kde-format
+msgid "Swap %1<->Output"
+msgstr "Поменять %1<->Вывод"
+
+#: smalldialogs.cpp:136
+msgid "Output (optional):"
+msgstr "Вывод (необязательно):"
+
+#: smalldialogs.cpp:168
+msgid "Configure..."
+msgstr "Настроить..."
+
+#: smalldialogs.cpp:174
+msgid "&OK"
+msgstr "&OK"
+
+#: smalldialogs.cpp:362
+msgid "Search text:"
+msgstr "Найти:"
+
+#: smalldialogs.cpp:369
+msgid "Case sensitive"
+msgstr "С учётом регистра"
+
+#: smalldialogs.cpp:372
+msgid "Search A"
+msgstr "Поиск в A"
+
+#: smalldialogs.cpp:377
+msgid "Search B"
+msgstr "Поиск в B"
+
+#: smalldialogs.cpp:382
+msgid "Search C"
+msgstr "Поиск в C"
+
+#: smalldialogs.cpp:387
+msgid "Search output"
+msgstr "Поиск в выводе"
+
+#: smalldialogs.cpp:392
+msgid "&Search"
+msgstr "&Искать"
+
+#: smalldialogs.cpp:409
+msgid "Regular Expression Tester"
+msgstr "Проверка регулярного выражения"
+
+#: smalldialogs.cpp:414 optiondialog.cpp:936
+msgid "Auto merge regular expression:"
+msgstr "Регулярное выражения автоматического объединения:"
+
+#: smalldialogs.cpp:422
+msgid "Example auto merge line:"
+msgstr "Образец автоматически объединяемая строка:"
+
+#: smalldialogs.cpp:424
+msgid "To test auto merge, copy a line as used in your files."
+msgstr ""
+"Чтобы опробовать автоматическое объединение, скопируйте строку из ваших "
+"файлов."
+
+#: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494
+msgid "Match result:"
+msgstr "Результат соответствия:"
+
+#: smalldialogs.cpp:441 optiondialog.cpp:962
+msgid "History start regular expression:"
+msgstr "Регулярное выражения начала истории:"
+
+#: smalldialogs.cpp:449
+msgid "Example history start line (with leading comment):"
+msgstr "Образец строка начала истории (с комментарием в начале):"
+
+#: smalldialogs.cpp:451
+msgid ""
+"Copy a history start line as used in your files,\n"
+"including the leading comment."
+msgstr ""
+"Скопируйте строку начала истории из ваших файлов,\n"
+"включая комментарий в начале."
+
+#: smalldialogs.cpp:469 optiondialog.cpp:972
+msgid "History entry start regular expression:"
+msgstr "Регулярное выражения начала пункта истории."
+
+#: smalldialogs.cpp:477
+msgid "History sort key order:"
+msgstr "Порядок сортировки ключей истории:"
+
+#: smalldialogs.cpp:485
+msgid "Example history entry start line (without leading comment):"
+msgstr "Образец начало строки пункта истории (без комментария в начале):"
+
+#: smalldialogs.cpp:487
+msgid ""
+"Copy a history entry start line as used in your files,\n"
+"but omit the leading comment."
+msgstr ""
+"Скопируйте начало строки пункта истории  из ваших файлов, но без комментария "
+"в начале."
+
+#: smalldialogs.cpp:501
+msgid "Sort key result:"
+msgstr "Результат сортировки ключей:"
+
+#: smalldialogs.cpp:508
+msgid "OK"
+msgstr "OK"
+
+#: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583
+msgid "Match success."
+msgstr "Соответствие найдено."
+
+#: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589
+msgid "Match failed."
+msgstr "Соответствие не найдено."
+
+#: smalldialogs.cpp:574
+msgid "Opening and closing parentheses do not match in regular expression."
+msgstr "Открывающие и закрывающие скобки не парные в регулярном выражении."
+
+#: optiondialog.cpp:367
+msgid "Unicode, 8 bit"
+msgstr "Unicode, 8 бит"
+
+#: optiondialog.cpp:368
+msgid "Unicode"
+msgstr "Unicode"
+
+#: optiondialog.cpp:369
+msgid "Latin1"
+msgstr "Latin1"
+
+#: optiondialog.cpp:388
+msgid "Change this if non-ASCII characters are not displayed correctly."
+msgstr "Измените кодировку, если не ASCII символы не отображаются корректно."
+
+#: optiondialog.cpp:465
+msgid "Configure"
+msgstr "Настроить"
+
+#: optiondialog.cpp:531
+msgid "Font"
+msgstr "Шрифт"
+
+#: optiondialog.cpp:532
+msgid "Editor & Diff Output Font"
+msgstr "Шрифт редактора и вывода различий"
+
+#: optiondialog.cpp:556
+msgid "Italic font for deltas"
+msgstr "Различия курсивом"
+
+#: optiondialog.cpp:559
+msgid ""
+"Selects the italic version of the font for differences.\n"
+"If the font doesn't support italic characters, then this does nothing."
+msgstr "Если шрифт не содержит курсива, этот параметр не работает."
+
+#: optiondialog.cpp:568
+msgid "Color"
+msgstr "Цвет"
+
+#: optiondialog.cpp:569
+msgid "Colors Settings"
+msgstr "Настройки цвета"
+
+#: optiondialog.cpp:588
+msgid "Editor and Diff Views:"
+msgstr "Вид окна редактора и различий"
+
+#: optiondialog.cpp:596
+msgid "Foreground color:"
+msgstr "Цвет текста:"
+
+#: optiondialog.cpp:603
+msgid "Background color:"
+msgstr "Цвет фона:"
+
+#: optiondialog.cpp:612
+msgid "Diff background color:"
+msgstr "Цвет фона различий:"
+
+#: optiondialog.cpp:620
+msgid "Color A:"
+msgstr "Цвет A:"
+
+#: optiondialog.cpp:628
+msgid "Color B:"
+msgstr "Цвет B:"
+
+#: optiondialog.cpp:636
+msgid "Color C:"
+msgstr "Цвет C:"
+
+#: optiondialog.cpp:643
+msgid "Conflict color:"
+msgstr "Цвет конфликтов:"
+
+#: optiondialog.cpp:651
+msgid "Current range background color:"
+msgstr "Текущий промежуток цветов фона:"
+
+#: optiondialog.cpp:659
+msgid "Current range diff background color:"
+msgstr "Текущий промежуток цветов цветов фона различий:"
+
+#: optiondialog.cpp:666
+msgid "Color for manually aligned difference ranges:"
+msgstr "Цвет для вручную выравненных промежутков различий:"
+
+#: optiondialog.cpp:672
+msgid "Directory Comparison View:"
+msgstr "Вид окна сравнения каталогов:"
+
+#: optiondialog.cpp:678
+msgid "Newest file color:"
+msgstr "Цвет самых новых файлов:"
+
+#: optiondialog.cpp:682
+msgid ""
+"Changing this color will only be effective when starting the next directory "
+"comparison."
+msgstr ""
+"Изменение этого цвета будет иметь силу только когда начнётся следующее "
+"сравнение каталогов."
+
+#: optiondialog.cpp:687
+msgid "Oldest file color:"
+msgstr "Цвет самых старых файлов:"
+
+#: optiondialog.cpp:695
+msgid "Middle age file color:"
+msgstr "Цвет файлов среднего возраста:"
+
+#: optiondialog.cpp:703
+msgid "Color for missing files:"
+msgstr "Цвет для отсутствующих файлов:"
+
+#: optiondialog.cpp:717
+msgid "Editor"
+msgstr "Редактор"
+
+#: optiondialog.cpp:718
+msgid "Editor Behavior"
+msgstr "Поведение редактора"
+
+#: optiondialog.cpp:732
+msgid "Tab inserts spaces"
+msgstr "Заменять табуляцию пробелами"
+
+#: optiondialog.cpp:735
+msgid ""
+"On: Pressing tab generates the appropriate number of spaces.\n"
+"Off: A tab character will be inserted."
+msgstr ""
+"Вкл: нажатие Tab вставляет необходимое количество пробелов.\n"
+"Выкл: будет вставлен символ Tab."
+
+#: optiondialog.cpp:741
+msgid "Tab size:"
+msgstr "Табуляция:"
+
+#: optiondialog.cpp:747
+msgid "Auto indentation"
+msgstr "Проставлять отступы автоматически"
+
+#: optiondialog.cpp:750
+msgid "On: The indentation of the previous line is used for a new line.\n"
+msgstr "Вкл: отступы предыдущей строки будут использованы для новой строки.\n"
+
+#: optiondialog.cpp:754
+msgid "Auto copy selection"
+msgstr "Копировать выделение в буфер обмена автоматически"
+
+#: optiondialog.cpp:757
+msgid ""
+"On: Any selection is immediately written to the clipboard.\n"
+"Off: You must explicitely copy e.g. via Ctrl-C."
+msgstr ""
+"Вкл: любое выделение сразу же записывается в буфер обмена.\n"
+"Выкл: вы должны явно скопировать, например, с помощью Ctrl-C."
+
+#: optiondialog.cpp:768
+#, fuzzy
+#| msgid "&Window"
+msgid "Dos/Windows"
+msgstr "&Окно"
+
+#: optiondialog.cpp:769
+#, fuzzy
+#| msgid "Auto Select"
+msgid "Autodetect"
+msgstr "Копировать выделение в буфер обмена автоматически"
+
+#: optiondialog.cpp:772
+msgid ""
+"Sets the line endings for when an edited file is saved.\n"
+"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A"
+msgstr ""
+"Устанавливает перевод строки при сохранении редактируемого файла.\n"
+"DOS/Windows: CR+LF; UNIX: LF; здесь CR=0D, LF=0A"
+
+#: optiondialog.cpp:784
+msgid "Diff"
+msgstr "Diff"
+
+#: optiondialog.cpp:785
+msgid "Diff Settings"
+msgstr "Настройки сравнения и объединения"
+
+#: optiondialog.cpp:809
+msgid "Treat as white space."
+msgstr "Обрабатывать как пробелы."
+
+#: optiondialog.cpp:811
+msgid "Ignore numbers"
+msgstr "Пропускать цифры"
+
+#: optiondialog.cpp:814
+msgid ""
+"Ignore number characters during line matching phase. (Similar to Ignore "
+"white space.)\n"
+"Might help to compare files with numeric data."
+msgstr ""
+"Пропускать цифры в процессе соответствия строк. (Похоже на Пропускать "
+"пробелы.)\n"
+"Может помочь при сравнении файлов с численными данными."
+
+#: optiondialog.cpp:819
+msgid "Ignore C/C++ comments"
+msgstr "Пропускать комментарии C/C++"
+
+#: optiondialog.cpp:821
+msgid "Treat C/C++ comments like white space."
+msgstr "Обрабатывать комментарии C/C++ как пробелы."
+
+#: optiondialog.cpp:825
+msgid "Ignore case"
+msgstr "Без учёта регистра"
+
+#: optiondialog.cpp:828
+msgid "Treat case differences like white space changes. ('a'<=>'A')"
+msgstr "Обрабатывать различие в регистре как изменения в пробелах. («a»<=>«A»)"
+
+#: optiondialog.cpp:832
+msgid "Preprocessor command:"
+msgstr "Предварительная команда:"
+
+#: optiondialog.cpp:836
+msgid "User defined pre-processing. (See the docs for details.)"
+msgstr ""
+"Предварительная обработка, определяемая пользователем (для подробностей см. "
+"документацию)."
+
+#: optiondialog.cpp:839
+msgid "Line-matching preprocessor command:"
+msgstr "Предварительная команда для сравнения строк:"
+
+#: optiondialog.cpp:843
+msgid ""
+"This pre-processor is only used during line matching.\n"
+"(See the docs for details.)"
+msgstr ""
+"Этот предобработчик используется только во время процесса соответствия "
+"строк.\n"
+"(Подробности см. в документации)"
+
+#: optiondialog.cpp:846
+msgid "Try hard (slower)"
+msgstr "Задействовать все алгоритмы (медленно)"
+
+#: optiondialog.cpp:849
+msgid ""
+"Enables the --minimal option for the external diff.\n"
+"The analysis of big files will be much slower."
+msgstr ""
+"Включить опцию --minimal для внешних программ diff.\n"
+"Анализ больших файлов будет намного медленнее."
+
+#: optiondialog.cpp:854
+msgid "Align B and C for 3 input files"
+msgstr "Выравнять B и C для 3 входных файлов"
+
+#: optiondialog.cpp:857
+msgid ""
+"Try to align B and C when comparing or merging three input files.\n"
+"Not recommended for merging because merge might get more complicated.\n"
+"(Default is off.)"
+msgstr ""
+"Попробовать выровнять B и C при сравнении или объединении трёх входных "
+"файлов.\n"
+"Не рекомендуется для объединения, поскольку может усложнить процесс.\n"
+"(По умолчанию выключено)"
+
+#: optiondialog.cpp:870
+msgid "Merge Settings"
+msgstr "Настройки объединения"
+
+#: optiondialog.cpp:885
+msgid "Auto advance delay (ms):"
+msgstr "Задержка перед переходом, мс:"
+
+#: optiondialog.cpp:890
+msgid ""
+"When in Auto-Advance mode the result of the current selection is shown \n"
+"for the specified time, before jumping to the next conflict. Range: 0-2000 ms"
+msgstr ""
+"Показывать результат текущего выбора на некоторое время, а затем переходить "
+"к следующему конфликту. Диапазон: 0..2000 мс"
+
+#: optiondialog.cpp:895
+msgid "Show info dialogs"
+msgstr "Отображать информационные окна"
+
+#: optiondialog.cpp:897
+msgid "Show a dialog with information about the number of conflicts."
+msgstr "Отображать окно с информацией о количестве конфликтов."
+
+#: optiondialog.cpp:900
+msgid "White space 2-file merge default:"
+msgstr "Пустые промежутки при объединении двух файлов:"
+
+#: optiondialog.cpp:904 optiondialog.cpp:917
+msgid "Manual Choice"
+msgstr "Выбор вручную"
+
+#: optiondialog.cpp:908 optiondialog.cpp:922
+msgid ""
+"Allow the merge algorithm to automatically select an input for white-space-"
+"only changes."
+msgstr ""
+"Позволить алгоритму объединения автоматически выбирать входной для изменений "
+"только с пробелами."
+
+#: optiondialog.cpp:913
+msgid "White space 3-file merge default:"
+msgstr "Пустые промежутки при объединении трёх файлов:"
+
+#: optiondialog.cpp:927
+msgid "Automatic Merge Regular Expression"
+msgstr "Регулярное выражение автоматического объединения"
+
+#: optiondialog.cpp:940
+msgid ""
+"Regular expression for lines where KDiff3 should automatically choose one "
+"source.\n"
+"When a line with a conflict matches the regular expression then\n"
+"- if available - C, otherwise B will be chosen."
+msgstr ""
+"Регулярное выражение для строк, где KDiff3 должен автоматически выбирать "
+"один источник.\n"
+"Когда строка с конфликтом соответствует регулярному выражению, тогда,\n"
+"если доступно, будет выбрано C, иначе — B."
+
+#: optiondialog.cpp:946
+msgid "Run regular expression auto merge on merge start"
+msgstr ""
+"Запустить автоматическое объединение по регулярному выражению в начале "
+"процесса объединения"
+
+#: optiondialog.cpp:948
+msgid ""
+"Run the merge for auto merge regular expressions\n"
+"immediately when a merge starts.\n"
+msgstr ""
+"Запустить объединение для автоматически объединяемых регулярных выражений\n"
+"сразу же после начала процесса объединения.\n"
+
+#: optiondialog.cpp:953
+msgid "Version Control History Merging"
+msgstr "Объединение истории системы контроля версий"
+
+#: optiondialog.cpp:966
+msgid ""
+"Regular expression for the start of the version control history entry.\n"
+"Usually this line contains the \"$Log$\" keyword.\n"
+"Default value: \".*\\$Log.*\\$.*\""
+msgstr ""
+"Регулярное выражение для начала пункта истории системы контроля версий.\n"
+"Обычно эта строка содержит ключевое слово «$Log$».\n"
+"Значение по умолчанию: «.*\\$Log.*\\$.*»"
+
+#: optiondialog.cpp:984
+msgid ""
+"A version control history entry consists of several lines.\n"
+"Specify the regular expression to detect the first line (without the leading "
+"comment).\n"
+"Use parentheses to group the keys you want to use for sorting.\n"
+"If left empty, then KDiff3 assumes that empty lines separate history "
+"entries.\n"
+"See the documentation for details."
+msgstr ""
+"Пункт истории системы контроля версий состоит из нескольких строк.\n"
+"Введите регулярное выражение чтобы обнаружить первую строку (без комментария "
+"в начале).\n"
+"Используйте скобки чтобы группировать ключи, которые вы хотите использовать "
+"для сортировки.\n"
+"Если оставить пустым, то KDiff3 предполагает, что пустые строки отделяют "
+"пункты истории.\n"
+"Подробности см. в документации."
+
+#: optiondialog.cpp:992
+msgid "History merge sorting"
+msgstr "Сортировка объединения истории"
+
+#: optiondialog.cpp:994
+msgid "Sort version control history by a key."
+msgstr "Сортировать историю системы контроля версий по ключу."
+
+#: optiondialog.cpp:1004
+msgid "History entry start sort key order:"
+msgstr "Порядок ключей сортировки начала пункта истории"
+
+#: optiondialog.cpp:1008
+msgid ""
+"Each pair of parentheses used in the regular expression for the history "
+"start entry\n"
+"groups a key that can be used for sorting.\n"
+"Specify the list of keys (that are numbered in order of occurrence\n"
+"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n"
+"If left empty, then no sorting will be done.\n"
+"See the documentation for details."
+msgstr ""
+"Каждая пара скобок, используемая в регулярном выражении для пункта начала "
+"истории группирует ключ, который можно использовать для сортировки.\n"
+"Укажите список ключей (который занумерованы в порядке появления\n"
+"начиная с 1) используя «,» как разделитель (например, «4,5,6,1,2,3,7»).\n"
+"Если оставить пустым, то сортировка производится не будет.\n"
+"Подробности см. в документации."
+
+#: optiondialog.cpp:1019
+msgid "Merge version control history on merge start"
+msgstr ""
+"Объединить историю системы контроля версий в начале процесса объединения."
+
+#: optiondialog.cpp:1021
+msgid "Run version control history automerge on merge start."
+msgstr ""
+"Запустить автоматическое объединение истории системы контроля версий в "
+"начале процесса объединения."
+
+#: optiondialog.cpp:1025
+msgid "Max number of history entries:"
+msgstr "Максимальное количество пунктов истории:"
+
+#: optiondialog.cpp:1028
+msgid "Cut off after specified number. Use -1 for infinite number of entries."
+msgstr ""
+"Вырезать начиная с указанного числа. Используйте -1 для всех пунктов истории."
+
+#: optiondialog.cpp:1032
+msgid "Test your regular expressions"
+msgstr "Проверка ваших регулярных выражений"
+
+#: optiondialog.cpp:1037
+msgid "Irrelevant merge command:"
+msgstr "Ошибочная команда объединения:"
+
+#: optiondialog.cpp:1041
+msgid ""
+"If specified this script is run after automerge\n"
+"when no other relevant changes were detected.\n"
+"Called with the parameters: filename1 filename2 filename3"
+msgstr ""
+"Если указано, этот скрипт запускается после автоматического объединения\n"
+"когда не обнаружены другие относящие к делу изменения.\n"
+"Запускается с параметрами: файл1 файл2 файл3"
+
+#: optiondialog.cpp:1047
+msgid "Auto save and quit on merge without conflicts"
+msgstr "Автоматически сохранить и выйти, при объединении без конфликтов"
+
+#: optiondialog.cpp:1050
+msgid ""
+"If KDiff3 was started for a file-merge from the command line and all\n"
+"conflicts are solvable without user interaction then automatically save and "
+"quit.\n"
+"(Similar to command line option \"--auto\".)"
+msgstr ""
+"Если KDiff3 был запущен из командной строки и все\n"
+"конфликты разрешимы без участия пользователя, тогда автоматически сохранить "
+"и выйти.\n"
+"(Подобно опции командной строки «--auto».)"
+
+#: optiondialog.cpp:1061 optiondialog.cpp:1062
+msgid "Directory"
+msgstr "Каталог"
+
+#: optiondialog.cpp:1075
+msgid "Recursive directories"
+msgstr "Рекурсивно по каталогам"
+
+#: optiondialog.cpp:1077
+msgid "Whether to analyze subdirectories or not."
+msgstr "Нужно ли анализировать подкаталоги или нет."
+
+#: optiondialog.cpp:1079
+msgid "File pattern(s):"
+msgstr "Маски файлов:"
+
+#: optiondialog.cpp:1084
+msgid ""
+"Pattern(s) of files to be analyzed. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Маска(и) файлов, выбираемых для анализа. \n"
+"Шаблоны: «*» и «?»\n"
+"Несколько масок можно указать, используя разделитель: «;»"
+
+#: optiondialog.cpp:1090
+msgid "File-anti-pattern(s):"
+msgstr "Пропускать файлы по маске:"
+
+#: optiondialog.cpp:1095
+msgid ""
+"Pattern(s) of files to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Маска(и) файлов, которые исключаются из анализа. \n"
+"Шаблоны: «*» и «?»\n"
+"Несколько масок можно указать, используя разделитель «;»"
+
+#: optiondialog.cpp:1101
+msgid "Dir-anti-pattern(s):"
+msgstr "Пропускать каталоги по маске:"
+
+#: optiondialog.cpp:1106
+msgid ""
+"Pattern(s) of directories to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Маска(и) каталогов, которые исключаются из анализа. \n"
+"Шаблоны: «*» и «?»\n"
+"Несколько масок можно указать, используя разделитель «;»"
+
+#: optiondialog.cpp:1112
+msgid "Use .cvsignore"
+msgstr "Использовать .cvsignore"
+
+#: optiondialog.cpp:1115
+msgid ""
+"Extends the antipattern to anything that would be ignored by CVS.\n"
+"Via local \".cvsignore\" files this can be directory specific."
+msgstr ""
+"Расширить пропуск по маске на все типы, которые могут быть пропущены CVS.\n"
+"Посредством локальных файлов «.cvsignore», правила могут меняться от "
+"каталога к каталогу."
+
+#: optiondialog.cpp:1120
+msgid "Find hidden files and directories"
+msgstr "Учитывать скрытые файлы и каталоги"
+
+#: optiondialog.cpp:1123
+msgid "Finds files and directories with the hidden attribute."
+msgstr "Найти файлы и каталоги с атрибутом «скрытый»."
+
+#: optiondialog.cpp:1125
+msgid "Finds files and directories starting with '.'."
+msgstr "Учитывать файлы и каталоги, начинающиеся с «.»."
+
+#: optiondialog.cpp:1129
+msgid "Follow file links"
+msgstr "Следовать по ссылкам на файлы"
+
+#: optiondialog.cpp:1132
+msgid ""
+"On: Compare the file the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+"Вкл: Сравнивать файл, на который ссылка указывает.\n"
+"Выкл: Сравнивать ссылки."
+
+#: optiondialog.cpp:1137
+msgid "Follow directory links"
+msgstr "Следовать по ссылкам на каталоги"
+
+#: optiondialog.cpp:1140
+msgid ""
+"On: Compare the directory the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+"Вкл: Сравнивать каталог, на который указывает ссылка.\n"
+"Выкл: Сравнивать ссылки."
+
+#: optiondialog.cpp:1156
+msgid "Case sensitive filename comparison"
+msgstr "Сравнение имён файлов и учётом регистра"
+
+#: optiondialog.cpp:1159
+msgid ""
+"The directory comparison will compare files or directories when their names "
+"match.\n"
+"Set this option if the case of the names must match. (Default for Windows is "
+"off, otherwise on.)"
+msgstr ""
+"Сравнение каталогов сравнивает файлы или каталоги, если их названия "
+"соответствуют. Включите эту опцию, если регистр названий должен "
+"соответствовать. (По умолчанию на Windows Выкл, иначе Вкл.)"
+
+#: optiondialog.cpp:1163
+msgid "File Comparison Mode"
+msgstr "Режим сравнивания файлов"
+
+#: optiondialog.cpp:1169
+msgid "Binary comparison"
+msgstr "Бинарное сравнение"
+
+#: optiondialog.cpp:1170
+msgid "Binary comparison of each file. (Default)"
+msgstr "Бинарное сравнение каждого файла (по умолчанию)"
+
+#: optiondialog.cpp:1173
+msgid "Full analysis"
+msgstr "Полный анализ"
+
+#: optiondialog.cpp:1174
+msgid ""
+"Do a full analysis and show statistics information in extra columns.\n"
+"(Slower than a binary comparison, much slower for binary files.)"
+msgstr ""
+"Провести полный анализ и показать статистическую информацию в дополнительных "
+"столбцах.\n"
+"(Медленнее чем двоичное сравнение, намного медленнее для двоичных файлов.)"
+
+#: optiondialog.cpp:1178
+msgid "Trust the size and modification date (unsafe)"
+msgstr "Сравнивать по размеру и дате изменения (неточно)"
+
+#: optiondialog.cpp:1179
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"Files with equal contents but different modification dates will appear as "
+"different.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"Считать файлы одинаковыми, если время изменения и размер совпадают.\n"
+"Файлы с одинаковым содержанием, но разными датами изменения будут "
+"отображаться как разные.\n"
+"Полезно для больших каталогов или медленных сетей."
+
+#: optiondialog.cpp:1184
+msgid ""
+"Trust the size and date, but use binary comparison if date does not match "
+"(unsafe)"
+msgstr ""
+"Сравнивать по размеру и дате, но использовать двоичное сравнение, если даты "
+"не совпадают (неточно)"
+
+#: optiondialog.cpp:1185
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"If the dates are not equal but the sizes are, use binary comparison.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"Считать файлы одинаковыми, если время изменения и размер совпадают.\n"
+"Если даты не совпадают, а размеры совпадают, использовать двоичное "
+"сравнение.\n"
+"Полезно для больших каталогов или медленных сетей."
+
+#: optiondialog.cpp:1190
+msgid "Trust the size (unsafe)"
+msgstr "Сравнивать по размеру (неточно)"
+
+#: optiondialog.cpp:1191
+msgid ""
+"Assume that files are equal if their file lengths are equal.\n"
+"Useful for big directories or slow networks when the date is modified during "
+"download."
+msgstr ""
+"Считать файлы одинаковыми, если их размеры совпадают.\n"
+"Полезно для больших каталогов или медленных сетей, когда дата изменяется во "
+"время скачивания."
+
+#: optiondialog.cpp:1199
+msgid "Synchronize directories"
+msgstr "Синхронизировать каталоги"
+
+#: optiondialog.cpp:1202
+msgid ""
+"Offers to store files in both directories so that\n"
+"both directories are the same afterwards.\n"
+"Works only when comparing two directories without specifying a destination."
+msgstr ""
+"Предлагает сохранить файлы в обоих каталогах, так что\n"
+"оба каталога будут одинаковы.\n"
+"Работает только при сравнении двух каталогов без указания назначения."
+
+#: optiondialog.cpp:1208
+msgid "White space differences considered equal"
+msgstr "Отличия в пробелах рассматриваются одинаково"
+
+#: optiondialog.cpp:1211
+msgid ""
+"If files differ only by white space consider them equal.\n"
+"This is only active when full analysis is chosen."
+msgstr ""
+"Если файлы отличаются только пробелами, рассматривать их как одинаковые.\n"
+"Эта опция Вкл только если выбран полный анализ."
+
+#: optiondialog.cpp:1217
+msgid "Copy newer instead of merging (unsafe)"
+msgstr "Принимать сразу новые файлы вместо объединения (небезопасно)"
+
+#: optiondialog.cpp:1220
+msgid ""
+"Don't look inside, just take the newer file.\n"
+"(Use this only if you know what you are doing!)\n"
+"Only effective when comparing two directories."
+msgstr ""
+"Не сравнивай, просто возьми самый новый файл.\n"
+"(Используйте только если вы знаете, что вы делаете!)\n"
+"Имеет силу при сравнении двух каталогов."
+
+#: optiondialog.cpp:1225
+msgid "Backup files (.orig)"
+msgstr "Сохранить резервные копии (.orig)"
+
+#: optiondialog.cpp:1228
+msgid ""
+"If a file would be saved over an old file, then the old file\n"
+"will be renamed with a '.orig' extension instead of being deleted."
+msgstr ""
+"Если файл будет сохранён поверх старого, то старых файл\n"
+"будет переименован с расширением «.orig» вместо его удаления."
+
+#: optiondialog.cpp:1301 optiondialog.cpp:1302
+msgid "Regional Settings"
+msgstr "Региональные настройки"
+
+#: optiondialog.cpp:1402
+msgid "Language (restart required)"
+msgstr "Язык (требуется перезапуск)"
+
+#: optiondialog.cpp:1445
+msgid ""
+"Choose the language of the GUI strings or \"Auto\".\n"
+"For a change of language to take place, quit and restart KDiff3."
+msgstr ""
+"Выберите язык графического интерфейса или «Авто».\n"
+"Чтобы изменение языка вступило в силу, завершите и запустите заново KDiff3."
+
+#: optiondialog.cpp:1463
+msgid "Use the same encoding for everything:"
+msgstr "Использовать ту же самую кодировку для остальных:"
+
+#: optiondialog.cpp:1466
+msgid ""
+"Enable this allows to change all encodings by changing the first only.\n"
+"Disable this if different individual settings are needed."
+msgstr ""
+"Включая эту опцию позволяет изменить все кодировки изменяя только первую.\n"
+"Выключите эту опцию, если нужны различные индивидуальные настройки."
+
+#: optiondialog.cpp:1471
+msgid "Note: Local Encoding is "
+msgstr "Примечание: локальная кодировка — "
+
+#: optiondialog.cpp:1475
+msgid "File Encoding for A:"
+msgstr "Кодировка файла A:"
+
+#: optiondialog.cpp:1481
+msgid ""
+"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n"
+"If the file is not Unicode then the selected encoding will be used as "
+"fallback.\n"
+"(Unicode detection depends on the first bytes of a file.)"
+msgstr ""
+"Если включено, то Unicode кодировка (UTF-16 или UTF-8) будет обнаружена.\n"
+"Если файл не в Unicode, тогда выбранная кодировка будет использована как "
+"кодировка по умолчанию.\n"
+"(Определение Unicode зависит от первых байтов файла.)"
+
+#: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503
+msgid "Auto Detect Unicode"
+msgstr "Автоматическое обнаружение Unicode"
+
+#: optiondialog.cpp:1490
+msgid "File Encoding for B:"
+msgstr "Кодировка файла B:"
+
+#: optiondialog.cpp:1499
+msgid "File Encoding for C:"
+msgstr "Кодировка файла C:"
+
+#: optiondialog.cpp:1508
+msgid "File Encoding for Merge Output and Saving:"
+msgstr "Кодировка для объединения и сохранения:"
+
+#: optiondialog.cpp:1512
+msgid "Auto Select"
+msgstr "Копировать выделение в буфер обмена автоматически"
+
+#: optiondialog.cpp:1515
+msgid ""
+"If enabled then the encoding from the input files is used.\n"
+"In ambiguous cases a dialog will ask the user to choose the encoding for "
+"saving."
+msgstr ""
+"Если опция включена, то используется кодировка из входных файлов.\n"
+"В случаях затруднений появится окно с выбором кодировки для сохранения."
+
+#: optiondialog.cpp:1519
+msgid "File Encoding for Preprocessor Files:"
+msgstr "Кодировка препроцессора:"
+
+#: optiondialog.cpp:1530
+msgid "Right To Left Language"
+msgstr "Язык справа налево"
+
+#: optiondialog.cpp:1533
+msgid ""
+"Some languages are read from right to left.\n"
+"This setting will change the viewer and editor accordingly."
+msgstr ""
+"Некоторые языки читаются справа налево.\n"
+"Эта опция изменяет просмотр и редактор соответственно."
+
+#: optiondialog.cpp:1548
+msgid "Integration"
+msgstr "Действие"
+
+#: optiondialog.cpp:1549
+msgid "Integration Settings"
+msgstr "Региональные настройки"
+
+#: optiondialog.cpp:1563
+msgid "Command line options to ignore:"
+msgstr "Пропускаемые опции командной строки:"
+
+#: optiondialog.cpp:1568
+msgid ""
+"List of command line options that should be ignored when KDiff3 is used by "
+"other tools.\n"
+"Several values can be specified if separated via ';'\n"
+"This will suppress the \"Unknown option\" error."
+msgstr ""
+"Список опций командной строки, которые должны быть пропущены, когда KDiff3 "
+"используется другими инструментами.\n"
+"Можно указать несколько значений, разделив символом «;»\n"
+"Эта опция будет подавлять ошибку «Неизвестная опция»."
+
+#: optiondialog.cpp:1575
+msgid "Quit also via Escape key"
+msgstr "Выход также по клавише Escape"
+
+#: optiondialog.cpp:1578
+msgid ""
+"Fast method to exit.\n"
+"For those who are used to using the Escape key."
+msgstr ""
+"Быстрый способ выйти.\n"
+"Для тех, что привык использовать клавишу Escape."
+
+#: optiondialog.cpp:1583
+msgid "Integrate with ClearCase"
+msgstr "Интегрировать с ClearCase"
+
+#: optiondialog.cpp:1586
+msgid ""
+"Integrate with Rational ClearCase from IBM.\n"
+"Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n"
+"(Only enabled when ClearCase \"bin\" directory is in the path.)"
+msgstr ""
+"Интегрировать с Rational ClearCase от IBM.\n"
+"Изменяет файл «map» в подкаталоге ClearCase «lib/mgrs»\n"
+"(Включено только если каталог «bin» ClearCase присутствует в переменной "
+"PATH.)"
+
+#: optiondialog.cpp:1592
+msgid "Remove ClearCase Integration"
+msgstr "Убрать интегрирование с ClearCase"
+
+#: optiondialog.cpp:1595
+msgid ""
+"Restore the old \"map\" file from before doing the ClearCase integration."
+msgstr ""
+"Восстановить старый файл «map», перед установкой интегрирования с ClearCase."
+
+#: optiondialog.cpp:1680
+msgid "Incompatible Font"
+msgstr "Несовместимый шрифт"
+
+#: optiondialog.cpp:1681
+msgid "Continue at Own Risk"
+msgstr "Продолжить"
+
+#: optiondialog.cpp:1682
+msgid "Select Another Font"
+msgstr "Выбрать другой шрифт"
+
+#: optiondialog.cpp:1717
+msgid "This resets all options. Not only those of the current topic."
+msgstr "Это сбросит абсолютно все параметры, а не только текущей вкладки."
+
+#: pdiff.cpp:260
+msgid "PreprocessorCmd: "
+msgstr "Предварительная команда:"
+
+#: pdiff.cpp:265
+msgid "The following option(s) you selected might change data:\n"
+msgstr "Следующие опции, которые вы выбрали, могут изменить данные:\n"
+
+#: pdiff.cpp:266
+msgid ""
+"\n"
+"Most likely this is not wanted during a merge.\n"
+"Do you want to disable these settings or continue with these settings active?"
+msgstr ""
+"\n"
+"Скорее всего этого не нужно в процессе объединения.\n"
+"Вы хотите отключить эти параметры или продолжить с включенными этими "
+"параметрами?"
+
+#: pdiff.cpp:268
+msgid "Option Unsafe for Merging"
+msgstr "Опция небезопасна для объединения"
+
+#: pdiff.cpp:269
+msgid "Use These Options During Merge"
+msgstr "Использовать эти опции в процессе объединения"
+
+#: pdiff.cpp:270
+msgid "Disable Unsafe Options"
+msgstr "Отключить небезопасные"
+
+#: pdiff.cpp:300
+msgid "Loading A"
+msgstr "Загрузка A"
+
+#: pdiff.cpp:304
+msgid "Loading B"
+msgstr "Загрузка B"
+
+#: pdiff.cpp:321 pdiff.cpp:347
+msgid "Diff: A <-> B"
+msgstr "Различие: A <-> B"
+
+#: pdiff.cpp:327 pdiff.cpp:372
+msgid "Linediff: A <-> B"
+msgstr "Построчное сравнение: A <-> B"
+
+#: pdiff.cpp:338
+msgid "Loading C"
+msgstr "Загрузка C"
+
+#: pdiff.cpp:350
+msgid "Diff: B <-> C"
+msgstr "Различие: B <-> C"
+
+#: pdiff.cpp:353
+msgid "Diff: A <-> C"
+msgstr "Различие: A <-> C"
+
+#: pdiff.cpp:375
+msgid "Linediff: B <-> C"
+msgstr "Построчное сравнение: B <-> C"
+
+#: pdiff.cpp:378
+msgid "Linediff: A <-> C"
+msgstr "Построчное сравнение: A <-> C"
+
+#: pdiff.cpp:534
+msgid "All input files contain the same text, but are not binary equal."
+msgstr "Все входные файлы содержат одинаковый текст, но двоично не совпадают."
+
+#: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541
+#, kde-format
+msgid "Files %1 and %2 have equal text, but are not binary equal. \n"
+msgstr "Файлы %1 и %2 имеют одинаковый текст, но двоично не совпадают.\n"
+
+#: pdiff.cpp:551
+msgid ""
+"Some inputfiles don't seem to be pure textfiles.\n"
+"Note that the KDiff3-merge was not meant for binary data.\n"
+"Continue at your own risk."
+msgstr ""
+"Кажется некоторые входные файлы не являются чисто текстовыми.\n"
+"Заметим, что объединение в KDiff3 не предназначено для двоичных данных.\n"
+"Продолжайте на свой страх и риск."
+
+#: pdiff.cpp:566
+#, kde-format
+msgid ""
+"Some input characters could not be converted to valid unicode.\n"
+"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n"
+"Don't save the result if unsure. Continue at your own risk.\n"
+"Affected input files are in %1."
+msgstr ""
+
+#: pdiff.cpp:1080
+msgid "Abort"
+msgstr "Стоп"
+
+#: pdiff.cpp:1087 pdiff.cpp:1175
+msgid "Opening files..."
+msgstr "Открытие файлов..."
+
+#: pdiff.cpp:1152 pdiff.cpp:1223
+msgid "File open error"
+msgstr "Ошибка открытия файла"
+
+#: pdiff.cpp:1255
+msgid "Cutting selection..."
+msgstr "Вырезание в буфер обмена..."
+
+#: pdiff.cpp:1276
+msgid "Copying selection to clipboard..."
+msgstr "Копирование в буфер обмена..."
+
+#: pdiff.cpp:1292
+msgid "Inserting clipboard contents..."
+msgstr "Вставка из буфера обмена..."
+
+#: pdiff.cpp:1814
+msgid "Save && Continue"
+msgstr "Сохранить и продолжить"
+
+#: pdiff.cpp:1815
+msgid "Continue Without Saving"
+msgstr "Продолжить без сохранения"
+
+#: pdiff.cpp:2018
+msgid "Search complete."
+msgstr "Поиск завершён."
+
+#: pdiff.cpp:2018
+msgid "Search Complete"
+msgstr "Поиск завершён"
+
+#: pdiff.cpp:2252
+msgid "Nothing is selected in either diff input window."
+msgstr "Ничего не выбрано ни в одном из входных окон diff."
+
+#: pdiff.cpp:2252
+msgid "Error while adding manual diff range"
+msgstr "Ошибка при добавлении вручную заданной области diff"
+
+#: kdiff3_shell.cpp:76
+#, fuzzy
+#| msgid ""
+#| "Could not initialize the KDiff part.\n"
+#| "This usually happens due to an installation problem. Please read the "
+#| "README-file in the source package for details."
+msgid ""
+"Could not initialize the KDiff3 part.\n"
+"This usually happens due to an installation problem. Please read the README-"
+"file in the source package for details."
+msgstr ""
+"Невозможно инициализировать KDiff часть.\n"
+"Такая ситуация обычно возникает из-за проблем в установке. Подробности можно "
+"найти в файле README в пакете исходных файлов."
+
+#: rc.cpp:1
+msgctxt "NAME OF TRANSLATORS"
+msgid "Your names"
+msgstr "Владимир Ломов"
+
+#: rc.cpp:2
+msgctxt "EMAIL OF TRANSLATORS"
+msgid "Your emails"
+msgstr "irk.translator@gmail.com"
+
+#. i18n: file: kdiff3_part.rc:4
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:5
+msgid "&KDiff3"
+msgstr "&KDiff3"
+
+#. i18n: file: kdiff3_part.rc:13
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:8
+msgid "Configure KDiff3"
+msgstr "Настроить KDiff3"
+
+#. i18n: file: kdiff3_part.rc:16
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:11
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#. i18n: file: kdiff3_shell.rc:106
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:38
+msgid "Main Toolbar"
+msgstr "Главная панель инструментов"
+
+#~ msgid "Directory Merge"
+#~ msgstr "Объединение каталогов"
+
+#~ msgid ""
+#~ "_: NAME OF TRANSLATORS\n"
+#~ "Your names"
+#~ msgstr "Николай Шафоростов"
+
+#~ msgid ""
+#~ "_: EMAIL OF TRANSLATORS\n"
+#~ "Your emails"
+#~ msgstr "linux@l10n.org.ua"
+
+#~ msgid "Enables/disables the toolbar"
+#~ msgstr "Отобразить/скрыть панель инструментов"
+
+#~ msgid "Files A and B are binary equal.\n"
+#~ msgstr "Файлы A и B бинарно одинаковы.\n"
+
+#~ msgid "Files A and C are binary equal.\n"
+#~ msgstr "Файлы A и C бинарно одинаковы.\n"
+
+#~ msgid "Files A and C have equal text. \n"
+#~ msgstr "Файлы A и C содержат одинаковый текст. \n"
+
+#~ msgid "Files B and C are binary equal.\n"
+#~ msgstr "Файлы B и C бинарно одинаковы.\n"
+
+#~ msgid "Files B and C have equal text. \n"
+#~ msgstr "Файлы B и C содержат одинаковый текст. \n"
+
+#~ msgid "Preserve carriage return"
+#~ msgstr "Отображать символ перевода каретки"
+
+#, fuzzy
+#~ msgid "Diff and Merge"
+#~ msgstr "Сравнить и объединить"
+
+#, fuzzy
+#~ msgid "Save Directory Merge State ..."
+#~ msgstr "Объединение каталогов"
+
+#, fuzzy
+#~ msgid "Load Directory Merge State ..."
+#~ msgstr "Объединение каталогов"
+
+#, fuzzy
+#~ msgid "Synchronize Directories"
+#~ msgstr "Синхронизировать каталоги"
+
+#, fuzzy
+#~ msgid "Copy Newer Files Instead of Merging"
+#~ msgstr "Принимать сразу новые файлы вместо объединения (небезопасно)"
+
+#~ msgid "List only deltas"
+#~ msgstr "Только различия"
+
+#, fuzzy
+#~ msgid "no selection"
+#~ msgstr "Копировать выделение в буфер обмена автоматически"
+
+#, fuzzy
+#~ msgid "Manually match lines"
+#~ msgstr "Выбор вручную"
+
+#~ msgid "Has no effect. For compatibility with certain tools."
+#~ msgstr "Для совместимости с некоторыми средствами."
+
+#~ msgid "For compatibility with certain tools."
+#~ msgstr "Для совместимости с некоторыми средствами."
+
+#~ msgid "Colors in Editor & Diff Output"
+#~ msgstr "Цвета редактора и вывода различий"
diff --git a/po/ru/kdiff3fileitemactionplugin.po b/po/ru/kdiff3fileitemactionplugin.po
new file mode 100644 (file)
index 0000000..3e33edf
--- /dev/null
@@ -0,0 +1,102 @@
+# Copyright (C) YEAR This_file_is_part_of_KDE
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Yuri Efremov <yur.arh@gmail.com>, 2011.
+# Alexander Potashev <aspotashev@gmail.com>, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-05-08 10:53+0400\n"
+"Last-Translator: Alexander Potashev <aspotashev@gmail.com>\n"
+"Language-Team: Russian <kde-russian@lists.kde.ru>\n"
+"Language: ru\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.2\n"
+"Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n"
+"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Environment: kde\n"
+"X-Accelerator-Marker: &\n"
+"X-Text-Markup: kde4\n"
+
+#: kdiff3fileitemaction.cpp:94
+msgid "KDiff3 ..."
+msgstr "KDiff3"
+
+#: kdiff3fileitemaction.cpp:125
+#, kde-format
+msgid "Compare with %1"
+msgstr "Сравнить с %1"
+
+#: kdiff3fileitemaction.cpp:131
+#, kde-format
+msgid "Merge with %1"
+msgstr "Объединить с %1"
+
+#: kdiff3fileitemaction.cpp:137
+#, kde-format
+msgid "Save '%1' for later"
+msgstr "Отложить на потом «%1»"
+
+#: kdiff3fileitemaction.cpp:143
+msgid "3-way merge with base"
+msgstr "Трёхстороннее объединение c основным файлом"
+
+#: kdiff3fileitemaction.cpp:150
+msgid "Compare with ..."
+msgstr "Сравнить с..."
+
+#: kdiff3fileitemaction.cpp:162
+msgid "Clear list"
+msgstr "Очистить список"
+
+#: kdiff3fileitemaction.cpp:170
+msgid "Compare"
+msgstr "Сравнить"
+
+#: kdiff3fileitemaction.cpp:176
+msgid "3 way comparison"
+msgstr "Трёхстороннее сравнение"
+
+#: kdiff3fileitemaction.cpp:180
+msgid "About KDiff3 menu plugin ..."
+msgstr "О модуле меню KDiff3..."
+
+#: kdiff3fileitemaction.cpp:284
+msgid ""
+"KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+"Модуль меню действий с файлами KDiff3: © Joachim Eibl, 2011\n"
+"Домашняя страница KDiff3: http://kdiff3.sourceforge.net\n"
+"\n"
+
+#: kdiff3fileitemaction.cpp:286
+msgid ""
+"Using the contextmenu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else \"Save\" the first file for later. It "
+"will appear in the \"Compare With ...\" submenu. Then use \"Compare With\" "
+"on second file.\n"
+"For a 3-way merge first \"Save\" the base file, then the branch to merge and "
+"choose \"3-way merge with base\" on the other branch which will be used as "
+"destination.\n"
+"Same also applies to directory comparison and merge."
+msgstr ""
+"Использование расширения контекстного меню:\n"
+"Для простого сравнения двух выбранных файлов выберите пункт «Сравнить».\n"
+"Если файлы находятся в разных каталогах, то следует «Сохранить» первый файл. "
+"Тогда он появится в подменю «Сравнить с...». Воспользуйтесь этим пунктом "
+"подменю на втором файле.\n"
+"Для трёхстороннего объединения сначала следует «Сохранить» основной файл, "
+"затем на другом файле выбрать «Трёхстороннее объединение c основным файлом», "
+"который будет использован как получаемый файл объединения.\n"
+"То же самое применимо для сравнения и объединения каталогов."
+
+#: kdiff3fileitemaction.cpp:294
+msgid "About KDiff3 File Item Action Plugin"
+msgstr "О модуле меню действий с файлами KDiff3"
diff --git a/po/ru/kdiff3plugin.po b/po/ru/kdiff3plugin.po
new file mode 100644 (file)
index 0000000..f5f7c2f
--- /dev/null
@@ -0,0 +1,102 @@
+# Copyright (C) YEAR This_file_is_part_of_KDE
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Yuri Efremov <yur.arh@gmail.com>, 2011.
+# Last-Translator: Alexander Potashev <aspotashev@gmail.com>, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-05-08 11:27+0400\n"
+"Last-Translator: Alexander Potashev <aspotashev@gmail.com>\n"
+"Language-Team: Russian <kde-russian@lists.kde.ru>\n"
+"Language: ru\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.2\n"
+"Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n"
+"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Environment: kde\n"
+"X-Accelerator-Marker: &\n"
+"X-Text-Markup: kde4\n"
+
+#: kdiff3plugin.cpp:107
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#: kdiff3plugin.cpp:114
+#, kde-format
+msgid "Compare with %1"
+msgstr "Сравнить с %1"
+
+#: kdiff3plugin.cpp:120
+#, kde-format
+msgid "Merge with %1"
+msgstr "Объединить с %1"
+
+#: kdiff3plugin.cpp:126
+#, kde-format
+msgid "Save '%1' for later"
+msgstr "Отложить на потом «%1»"
+
+#: kdiff3plugin.cpp:132
+msgid "3-way merge with base"
+msgstr "Трёхстороннее объединение c основным файлом"
+
+#: kdiff3plugin.cpp:139
+msgid "Compare with ..."
+msgstr "Сравнить с..."
+
+#: kdiff3plugin.cpp:149
+msgid "Clear list"
+msgstr "Очистить список"
+
+#: kdiff3plugin.cpp:157
+msgid "Compare"
+msgstr "Сравнить"
+
+#: kdiff3plugin.cpp:163
+msgid "3 way comparison"
+msgstr "Трёхстороннее сравнение"
+
+#: kdiff3plugin.cpp:167
+msgid "About KDiff3 menu plugin ..."
+msgstr "О модуле меню KDiff3..."
+
+#: kdiff3plugin.cpp:269
+msgid ""
+"KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+"Модуль меню KDiff3: © Joachim Eibl, 2008\n"
+"Домашняя страница KDiff3: http://kdiff3.sourceforge.net\n"
+"\n"
+
+#: kdiff3plugin.cpp:271
+msgid ""
+"Using the context menu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else, \"Save\" the first file for later, and "
+"it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With"
+"\" on the second file.\n"
+"For a 3-way merge first, \"Save\" the base file, then the branch to merge, "
+"and then \"3-way merge with base\" on the other branch which will be used as "
+"the destination.\n"
+"The same also applies to directory comparison and merge."
+msgstr ""
+"Использование расширения контекстного меню:\n"
+"Для простого сравнения двух выбранных файлов выберите пункт «Сравнить».\n"
+"Если файлы находятся в разных каталогах, то следует «Сохранить» первый файл. "
+"Тогда он появится в подменю «Сравнить с...». Воспользуйтесь этим пунктом "
+"подменю на втором файле.\n"
+"Для трёхстороннего объединения сначала следует «Сохранить» основной файл, "
+"затем на другом файле выбрать «Трёхстороннее объединение c основным файлом», "
+"который будет использован как получаемый файл объединения.\n"
+"То же самое применимо для сравнения и объединения каталогов."
+
+#: kdiff3plugin.cpp:279
+msgid "About KDiff3 Menu Plugin"
+msgstr "О модуле меню KDiff3"
diff --git a/po/rw/CMakeLists.txt b/po/rw/CMakeLists.txt
new file mode 100644 (file)
index 0000000..1cac3d0
--- /dev/null
@@ -0,0 +1,2 @@
+file(GLOB _po_files *.po)
+GETTEXT_PROCESS_PO_FILES(rw ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
diff --git a/po/rw/kdiff3.po b/po/rw/kdiff3.po
new file mode 100644 (file)
index 0000000..8bd8714
--- /dev/null
@@ -0,0 +1,3556 @@
+# translation of kdiff3 to Kinyarwanda.
+# Copyright (C) 
+# This file is distributed under the same license as the kdiff3 package.
+# Steve Murphy <murf@e-tools.com>, 2005.
+# Steve performed initial rough translation from compendium built from translations provided by the following translators:
+# Philibert Ndandali  <ndandali@yahoo.fr>, 2005.
+# Viateur MUGENZI <muvia1@yahoo.fr>, 2005.
+# Noëlla Mupole <s24211045@tuks.co.za>, 2005.
+# Carole Karema <karemacarole@hotmail.com>, 2005.
+# JEAN BAPTISTE NGENDAHAYO <ngenda_denis@yahoo.co.uk>, 2005.
+# Augustin KIBERWA  <akiberwa@yahoo.co.uk>, 2005.
+# Donatien NSENGIYUMVA <ndonatienuk@yahoo.co.uk>, 2005.
+# Antoine Bigirimana <antoine@e-tools.com>, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3 3.4\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2005-05-25 18:07-0600\n"
+"Last-Translator: Steve Murphy <murf@e-tools.com>\n"
+"Language-Team: Kinyarwanda <translation-team-rw@lists.sourceforge.net>\n"
+"Language: rw\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: kreplacements/kreplacements.h:105
+#, fuzzy
+#| msgid "C&ontinue"
+msgid "Continue"
+msgstr "Komeza"
+
+#: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158
+#: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512
+msgid "Cancel"
+msgstr ""
+
+#: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631
+msgid "Quit"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339
+msgid "Ok"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715
+msgid "Help"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:185
+msgid "Defaults"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:4
+#. i18n: ectx: Menu (file)
+#: kreplacements/kreplacements.cpp:296 rc.cpp:14
+#, fuzzy
+msgid "&File"
+msgstr "Idosiye..."
+
+#: kreplacements/kreplacements.cpp:297
+#, fuzzy
+#| msgid "Editor"
+msgid "&Edit"
+msgstr "Muhinduzi"
+
+#. i18n: file: kdiff3_shell.rc:7
+#. i18n: ectx: Menu (directory)
+#: kreplacements/kreplacements.cpp:298 rc.cpp:17
+#, fuzzy
+msgid "&Directory"
+msgstr "Ububiko"
+
+#. i18n: file: kdiff3_shell.rc:50
+#. i18n: ectx: Menu (movement)
+#: kreplacements/kreplacements.cpp:301 rc.cpp:26
+#, fuzzy
+msgid "&Movement"
+msgstr "Igenda"
+
+#. i18n: file: kdiff3_shell.rc:61
+#. i18n: ectx: Menu (diff)
+#: kreplacements/kreplacements.cpp:302 rc.cpp:29
+#, fuzzy
+msgid "D&iffview"
+msgstr "Igabanya"
+
+#. i18n: file: kdiff3_shell.rc:73
+#. i18n: ectx: Menu (merge)
+#: kreplacements/kreplacements.cpp:303 rc.cpp:32
+#, fuzzy
+msgid "&Merge"
+msgstr "Gukomatanya"
+
+#. i18n: file: kdiff3_shell.rc:95
+#. i18n: ectx: Menu (window)
+#: kreplacements/kreplacements.cpp:304 rc.cpp:35
+msgid "&Window"
+msgstr "Idirishya"
+
+#: kreplacements/kreplacements.cpp:305
+#, fuzzy
+msgid "&Settings"
+msgstr "Iganamiterere rya musomyi"
+
+#: kreplacements/kreplacements.cpp:306
+msgid "&Help"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:353
+#, fuzzy
+#| msgid "Abort"
+msgid "&About"
+msgstr "Ntibyakunze"
+
+#: kreplacements/kreplacements.cpp:369
+msgid "A&uthor"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:383
+msgid "&Thanks To"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:30
+#. i18n: ectx: Menu (dir_current_merge_menu)
+#: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497
+#: rc.cpp:20
+#, fuzzy
+msgid "Current Item Merge Operation"
+msgstr "Ibikorerwa Ishusho"
+
+#. i18n: file: kdiff3_shell.rc:38
+#. i18n: ectx: Menu (dir_current_sync_menu)
+#: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498
+#: rc.cpp:23
+#, fuzzy
+msgid "Current Item Sync Operation"
+msgstr "Iki cyiciro"
+
+#: kreplacements/kreplacements.cpp:597
+#, fuzzy
+#| msgid "Operation"
+msgid "Open"
+msgstr "Igikorwa"
+
+#: kreplacements/kreplacements.cpp:606
+#, fuzzy
+msgid "Save"
+msgstr "Gikomeye"
+
+#: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720
+msgid "Save As..."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:623
+#, fuzzy
+msgid "Print..."
+msgstr "Tegereza..."
+
+#: kreplacements/kreplacements.cpp:639
+msgid "Cut"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:647
+msgid "Copy"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:655
+msgid "Paste"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:663
+#, fuzzy
+msgid "Select All"
+msgstr "A "
+
+#: kreplacements/kreplacements.cpp:671
+msgid "Show Toolbar"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:679
+msgid "Show &Status Bar"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:687
+#, fuzzy, kde-format
+#| msgid "Configure..."
+msgid "&Configure %1..."
+msgstr "Kugena imiterere..."
+
+#: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707
+#, fuzzy
+#| msgid "Abort"
+msgid "About"
+msgstr "Ntibyakunze"
+
+#: kreplacements/kreplacements.cpp:722
+msgid "Find"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:730
+msgid "Find Next"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:750
+#, fuzzy
+msgid "Select Font"
+msgstr "Gutoranya imyandikire"
+
+#: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676
+#, fuzzy
+msgid ""
+"You selected a variable width font.\n"
+"\n"
+"Because this program doesn't handle variable width fonts\n"
+"correctly, you might experience problems while editing.\n"
+"\n"
+"Do you want to continue or do you want to select another font."
+msgstr ""
+"Byahiswemo A Impinduragaciro Ubugari: Imyandikire . \n"
+"\n"
+"iyi Porogaramu Impinduragaciro Ubugari: , Guhindura . \n"
+"\n"
+"Kuri Gukomeza Cyangwa Kuri Guhitamo Imyandikire . "
+
+#: kreplacements/kreplacements.cpp:792
+#, fuzzy
+msgid "Incompatible font."
+msgstr "%S Itakorana"
+
+#: kreplacements/kreplacements.cpp:793
+#, fuzzy
+msgid "Continue at my own risk"
+msgstr "Gukomeza Ku "
+
+#: kreplacements/kreplacements.cpp:793
+#, fuzzy
+msgid "Select another font"
+msgstr "Gutoranya imyandikire"
+
+#: kreplacements/kreplacements.cpp:1134
+msgid "For more documentation, see the help-menu or the subdirectory doc."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "KDiff3-Usage"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1137
+#, fuzzy
+msgid "Ignore"
+msgstr "Kwirengagiza Inshuro Imwe"
+
+#: kreplacements/kreplacements.cpp:1137
+#, fuzzy
+#| msgid "Editor"
+msgid "Exit"
+msgstr "Muhinduzi"
+
+#: diff.cpp:251
+#, fuzzy
+msgid "Writing clipboard data to temp file failed."
+msgstr "Ububikokoporora Ibyatanzwe Kuri Idosiye Byanze . "
+
+#: diff.cpp:255
+#, fuzzy
+msgid "From Clipboard"
+msgstr "Ububikokoporora"
+
+#: diff.cpp:471
+msgid "Expecting space after closing quotation mark."
+msgstr ""
+
+#: diff.cpp:474
+msgid "Not matching quotation marks."
+msgstr ""
+
+#: diff.cpp:496
+msgid "Unexpected quotation mark within argument."
+msgstr ""
+
+#: diff.cpp:503
+msgid "No program specified."
+msgstr ""
+
+#: diff.cpp:605
+#, fuzzy, kde-format
+msgid ""
+"Preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The preprocessing command will be disabled now."
+msgstr ""
+"Byanze . iyi command : \n"
+"\n"
+"%1 \n"
+"\n"
+"command Yahagaritswe NONEAHA . "
+
+#: diff.cpp:653
+#, fuzzy, kde-format
+msgid ""
+"The line-matching-preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The line-matching-preprocessing command will be disabled now."
+msgstr ""
+"Umurongo: - - Byanze . iyi command : \n"
+"\n"
+"%1 \n"
+"\n"
+"Umurongo: - - command Yahagaritswe NONEAHA . "
+
+#: diff.cpp:1776 diff.cpp:1790
+#, fuzzy
+msgid ""
+"Data loss error:\n"
+"If it is reproducible please contact the author.\n"
+msgstr ""
+"Ikosa : \n"
+"ni Umuntu i Umwanditsi: . \n"
+
+#: diff.cpp:1778 diff.cpp:1792
+#, fuzzy
+msgid "Severe Internal Error"
+msgstr "Ikosa "
+
+#: directorymergewindow.cpp:136
+#, fuzzy
+msgid "Mix of links and normal files."
+msgstr "Bya amahuza na Bisanzwe Idosiye . "
+
+#: directorymergewindow.cpp:143
+#, fuzzy
+msgid "Link: "
+msgstr "Ihuza..."
+
+#: directorymergewindow.cpp:151
+#, fuzzy
+msgid "Size. "
+msgstr "Ingano:"
+
+#: directorymergewindow.cpp:164 directorymergewindow.cpp:174
+#, fuzzy
+msgid "Date & Size: "
+msgstr "Itariki & Igihe"
+
+#: directorymergewindow.cpp:184 directorymergewindow.cpp:190
+#, fuzzy, kde-format
+msgid "Creating temp copy of %1 failed."
+msgstr "Gukoporora Bya %1 Byanze . "
+
+#: directorymergewindow.cpp:201 directorymergewindow.cpp:209
+#, fuzzy, kde-format
+msgid "Opening %1 failed."
+msgstr "%1 Byanze . "
+
+#: directorymergewindow.cpp:213
+#, fuzzy
+msgid "Comparing file..."
+msgstr "Idosiye ... "
+
+#: directorymergewindow.cpp:223 directorymergewindow.cpp:229
+#, fuzzy, kde-format
+msgid "Error reading from %1"
+msgstr "Ikosa Kuva: %1 "
+
+#: directorymergewindow.cpp:358
+msgid "Name"
+msgstr "Izina"
+
+#: directorymergewindow.cpp:358
+msgid "Operation"
+msgstr "Igikorwa"
+
+#: directorymergewindow.cpp:358
+msgid "Status"
+msgstr "Imimerere"
+
+#: directorymergewindow.cpp:359
+#, fuzzy
+msgid "Unsolved"
+msgstr "Kidakoreshwa"
+
+#: directorymergewindow.cpp:359
+#, fuzzy
+msgid "Solved"
+msgstr "Gikomeye"
+
+#: directorymergewindow.cpp:359
+#, fuzzy
+msgid "Nonwhite"
+msgstr "Nta na kimwe"
+
+#: directorymergewindow.cpp:359
+msgid "White"
+msgstr "Umweru"
+
+#: directorymergewindow.cpp:388
+#, fuzzy
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort "
+"the merge and rescan the directory?"
+msgstr "A Ububiko Gukomatanya . , Kuri Kureka i Gukomatanya na i Ububiko ? "
+
+#: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655
+#: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823
+msgid "Warning"
+msgstr ""
+
+#: directorymergewindow.cpp:390 directorymergewindow.cpp:2965
+#, fuzzy
+msgid "Rescan"
+msgstr "Urukiramende"
+
+#: directorymergewindow.cpp:391 pdiff.cpp:1081
+#, fuzzy
+msgid "Continue Merging"
+msgstr "Gukomeza "
+
+#: directorymergewindow.cpp:548
+#, fuzzy
+msgid "Opening of directories failed:"
+msgstr "Bya ububiko bw'amaderese Byanze : "
+
+#: directorymergewindow.cpp:551
+#, fuzzy, kde-format
+msgid "Dir A \"%1\" does not exist or is not a directory.\n"
+msgstr "A \" %1 \" OYA Cyangwa ni OYA A Ububiko . \n"
+
+#: directorymergewindow.cpp:554
+#, fuzzy, kde-format
+msgid "Dir B \"%1\" does not exist or is not a directory.\n"
+msgstr "\" %1 \" OYA Cyangwa ni OYA A Ububiko . \n"
+
+#: directorymergewindow.cpp:557
+#, fuzzy, kde-format
+msgid "Dir C \"%1\" does not exist or is not a directory.\n"
+msgstr "\" %1 \" OYA Cyangwa ni OYA A Ububiko . \n"
+
+#: directorymergewindow.cpp:559
+#, fuzzy
+msgid "Directory Open Error"
+msgstr "Gufungura Ikosa "
+
+#: directorymergewindow.cpp:567
+#, fuzzy
+msgid ""
+"The destination directory must not be the same as A or B when three "
+"directories are merged.\n"
+"Check again before continuing."
+msgstr ""
+"Ishyika: Ububiko OYA i Nka A Cyangwa Ryari: ububiko bw'amaderese . \n"
+"Nanone Mbere . "
+
+#: directorymergewindow.cpp:569
+#, fuzzy
+msgid "Parameter Warning"
+msgstr "Kuburira bijyanye na mucapyi"
+
+#: directorymergewindow.cpp:574
+#, fuzzy
+msgid "Scanning directories..."
+msgstr "ububiko bw'amaderese ... "
+
+#: directorymergewindow.cpp:607
+#, fuzzy
+msgid "Reading Directory A"
+msgstr "A "
+
+#: directorymergewindow.cpp:629
+#, fuzzy
+msgid "Reading Directory B"
+msgstr "Guhanga ububiko "
+
+#: directorymergewindow.cpp:651
+#, fuzzy
+msgid "Reading Directory C"
+msgstr "Guhanga ububiko "
+
+#: directorymergewindow.cpp:677
+#, fuzzy
+msgid "Some subdirectories were not readable in"
+msgstr "Ububiko bwungirije OYA in "
+
+#: directorymergewindow.cpp:682
+#, fuzzy
+msgid "Check the permissions of the subdirectories."
+msgstr "i Uruhushya Bya i Ububiko bwungirije . "
+
+#: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737
+#: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233
+#: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328
+msgid "Ready."
+msgstr "Cyiteguye."
+
+#: directorymergewindow.cpp:735
+#, fuzzy
+msgid "Directory Comparison Status"
+msgstr "Inzira y'ububiko"
+
+#: directorymergewindow.cpp:736
+#, fuzzy
+msgid "Number of subdirectories:"
+msgstr "Bya Ububiko bwungirije : "
+
+#: directorymergewindow.cpp:737
+#, fuzzy
+msgid "Number of equal files:"
+msgstr "Bya bingana Idosiye : "
+
+#: directorymergewindow.cpp:738
+#, fuzzy
+msgid "Number of different files:"
+msgstr "Bya Idosiye : "
+
+#: directorymergewindow.cpp:741
+#, fuzzy
+msgid "Number of manual merges:"
+msgstr "Bya Bikorwa : "
+
+#: directorymergewindow.cpp:912
+#, fuzzy
+msgid "This affects all merge operations."
+msgstr "Byose Gukomatanya Ibikorwa: . "
+
+#: directorymergewindow.cpp:913
+#, fuzzy
+msgid "Changing All Merge Operations"
+msgstr "Ibikorerwa Ishusho"
+
+#: directorymergewindow.cpp:1312
+#, fuzzy
+msgid "Processing "
+msgstr "Inonosora"
+
+#: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742
+#, fuzzy
+msgid "To do."
+msgstr "Gukora"
+
+#: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996
+#, fuzzy
+msgid "Copy A to B"
+msgstr "A Kuri "
+
+#: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997
+#, fuzzy
+msgid "Copy B to A"
+msgstr "Kuri A "
+
+#: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998
+#, fuzzy
+msgid "Delete A"
+msgstr "A "
+
+#: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999
+#, fuzzy
+msgid "Delete B"
+msgstr "Gusiba #"
+
+#: directorymergewindow.cpp:1814
+#, fuzzy
+msgid "Delete A & B"
+msgstr "A & "
+
+#: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001
+#, fuzzy
+msgid "Merge to A"
+msgstr "Kuri A "
+
+#: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002
+#, fuzzy
+msgid "Merge to B"
+msgstr "Kuri "
+
+#: directorymergewindow.cpp:1817
+#, fuzzy
+msgid "Merge to A & B"
+msgstr "Kuri A & "
+
+#: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993
+#, fuzzy
+msgid "Delete (if exists)"
+msgstr "( NIBA ) "
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+#: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869
+msgid "Merge"
+msgstr "Gukomatanya"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+#, fuzzy
+msgid "Merge (manual)"
+msgstr "( Bikorwa ) "
+
+#: directorymergewindow.cpp:1824
+#, fuzzy
+msgid "Error: Conflicting File Types"
+msgstr "Ikosa : Idosiye "
+
+#: directorymergewindow.cpp:1825
+msgid "Error: Changed and Deleted"
+msgstr ""
+
+#: directorymergewindow.cpp:1826
+#, fuzzy
+msgid "Error: Dates are equal but files are not."
+msgstr "Ikosa : bingana Idosiye OYA . "
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906
+#, fuzzy
+msgid "This operation is currently not possible."
+msgstr "Igikorwa ni OYA . "
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174
+#, fuzzy
+msgid "Operation Not Possible"
+msgstr "Igikorwa nticyashobotse"
+
+#: directorymergewindow.cpp:1945
+#, fuzzy
+msgid ""
+"This should never happen: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"If you know how to reproduce this, please contact the program author."
+msgstr ""
+"Nta na rimwe : \n"
+"\n"
+": = Kuri iyi , Umuntu i Porogaramu Umwanditsi: . "
+
+#: directorymergewindow.cpp:1945
+#, fuzzy
+msgid "Program Error"
+msgstr "Ikosa "
+
+#: directorymergewindow.cpp:1956
+#, fuzzy
+msgid "An error occurred while copying.\n"
+msgstr "Ikosa Gukoporora . \n"
+
+#: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025
+#: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105
+#: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123
+#: directorymergewindow.cpp:2374
+#, fuzzy
+#| msgid "Error."
+msgid "Error"
+msgstr "Ikosa."
+
+#: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375
+#, fuzzy
+msgid "Merge Error"
+msgstr "Ikosa "
+
+#: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380
+msgid "Error."
+msgstr "Ikosa."
+
+#: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272
+#: directorymergewindow.cpp:2312
+msgid "Done."
+msgstr "Byakozwe."
+
+#: directorymergewindow.cpp:1990
+#, fuzzy
+msgid "Not saved."
+msgstr "Bidasangiwe"
+
+#: directorymergewindow.cpp:2025
+#, fuzzy
+msgid "Unknown merge operation. (This must never happen!)"
+msgstr "Gukomatanya Igikorwa . ( Nta na rimwe ! ) "
+
+#: directorymergewindow.cpp:2057
+#, fuzzy
+msgid "Unknown merge operation."
+msgstr "Gukomatanya Igikorwa . "
+
+#: directorymergewindow.cpp:2072
+#, fuzzy
+msgid ""
+"The merge is about to begin.\n"
+"\n"
+"Choose \"Do it\" if you have read the instructions and know what you are "
+"doing.\n"
+"Choosing \"Simulate it\" will tell you what would happen.\n"
+"\n"
+"Be aware that this program still has beta status and there is NO WARRANTY "
+"whatsoever! Make backups of your vital data!"
+msgstr ""
+"Gukomatanya ni Bigyanye Kuri . \n"
+"\n"
+"\" \" NIBA Soma i Amabwiriza na . \n"
+"\" \" . \n"
+"\n"
+"iyi Porogaramu beta Imimerere na ni ! Ibyashyinguwe Bya Ibyatanzwe ! "
+
+#: directorymergewindow.cpp:2077
+#, fuzzy
+msgid "Starting Merge"
+msgstr "Gutangiza serivise"
+
+#: directorymergewindow.cpp:2078
+#, fuzzy
+msgid "Do It"
+msgstr "Akadomo"
+
+#: directorymergewindow.cpp:2079
+#, fuzzy
+msgid "Simulate It"
+msgstr "Kwigana Igaragaza"
+
+#: directorymergewindow.cpp:2105
+#, fuzzy
+msgid ""
+"The highlighted item has a different type in the different directories. "
+"Select what to do."
+msgstr "Ikintu A Ubwoko: in i ububiko bw'amaderese . Kuri . "
+
+#: directorymergewindow.cpp:2114
+#, fuzzy
+msgid ""
+"The modification dates of the file are equal but the files are not. Select "
+"what to do."
+msgstr "Amatariki Bya i Idosiye bingana i Idosiye OYA . Kuri . "
+
+#: directorymergewindow.cpp:2123
+#, fuzzy
+msgid ""
+"The highlighted item was changed in one directory and deleted in the other. "
+"Select what to do."
+msgstr "Ikintu A Ubwoko: in i ububiko bw'amaderese . Kuri . "
+
+#: directorymergewindow.cpp:2174
+#, fuzzy
+msgid ""
+"This operation is currently not possible because directory merge is "
+"currently running."
+msgstr "Igikorwa ni OYA Ububiko Gukomatanya ni . "
+
+#: directorymergewindow.cpp:2234
+#, fuzzy
+msgid ""
+"There was an error in the last step.\n"
+"Do you want to continue with the item that caused the error or do you want "
+"to skip this item?"
+msgstr ""
+"Ikosa in i Iheruka Intera . \n"
+"Kuri Gukomeza Na: i Ikintu i Ikosa Cyangwa Kuri Gusimbuka iyi Ikintu ? "
+
+#: directorymergewindow.cpp:2236
+#, fuzzy
+msgid "Continue merge after an error"
+msgstr "Gukomeza Gukomatanya Nyuma Ikosa "
+
+#: directorymergewindow.cpp:2237
+#, fuzzy
+msgid "Continue With Last Item"
+msgstr "Gukomeza "
+
+#: directorymergewindow.cpp:2238
+#, fuzzy
+msgid "Skip Item"
+msgstr "Ibigize by'ilisiti"
+
+#: directorymergewindow.cpp:2272
+#, fuzzy
+msgid "Skipped."
+msgstr "Byoherejwe ku"
+
+#: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493
+#, fuzzy
+msgid "In progress..."
+msgstr "Aho bigeze: ... "
+
+#: directorymergewindow.cpp:2327
+#, fuzzy
+msgid "Merge operation complete."
+msgstr "Igikorwa Byuzuye . "
+
+#: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330
+#, fuzzy
+msgid "Merge Complete"
+msgstr "Gushyira ku gihe byarangiye"
+
+#: directorymergewindow.cpp:2340
+#, fuzzy
+msgid ""
+"Simulated merge complete: Check if you agree with the proposed operations."
+msgstr "Gukomatanya Byuzuye : NIBA Na: i Ibikorwa: . "
+
+#: directorymergewindow.cpp:2374
+#, fuzzy
+msgid "An error occurred. Press OK to see detailed information.\n"
+msgstr "Habayemoikosa."
+
+#: directorymergewindow.cpp:2406
+#, fuzzy, kde-format
+msgid "Error: While deleting %1: Creating backup failed."
+msgstr "Ikosa : Gusiba %1 : Inyibutsa Byanze . "
+
+#: directorymergewindow.cpp:2413
+#, fuzzy, kde-format
+msgid "delete directory recursively( %1 )"
+msgstr "Gusiba Ububiko ( %1 ) "
+
+#: directorymergewindow.cpp:2415
+#, fuzzy, kde-format
+msgid "delete( %1 )"
+msgstr "Gusiba"
+
+#: directorymergewindow.cpp:2430
+#, fuzzy
+msgid "Error: delete dir operation failed while trying to read the directory."
+msgstr "Ikosa : Gusiba Igikorwa Byanze Kuri Soma i Ububiko . "
+
+#: directorymergewindow.cpp:2449
+#, fuzzy, kde-format
+msgid "Error: rmdir( %1 ) operation failed."
+msgstr "Ikosa : ( %1 ) Igikorwa Byanze . "
+
+#: directorymergewindow.cpp:2459
+#, fuzzy
+msgid "Error: delete operation failed."
+msgstr "Ikosa : Gusiba Igikorwa Byanze . "
+
+#: directorymergewindow.cpp:2485
+#, fuzzy, kde-format
+msgid "manual merge( %1, %2, %3 -> %4)"
+msgstr "Bikorwa Gukomatanya ( %1 , %2 , %3 - > %4 ) "
+
+#: directorymergewindow.cpp:2488
+#, fuzzy
+msgid ""
+"     Note: After a manual merge the user should continue by pressing F7."
+msgstr "icyitonderwa : A Bikorwa Gukomatanya i Umukoresha Gukomeza ku . "
+
+#: directorymergewindow.cpp:2513
+#, fuzzy, kde-format
+msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed."
+msgstr "Ikosa : Gukoporora ( %1 - > %2 ) Byanze . Ishyika: Byanze . "
+
+#: directorymergewindow.cpp:2522
+#, fuzzy, kde-format
+msgid "copyLink( %1 -> %2 )"
+msgstr "Ihuza ku %1 (%2)"
+
+#: directorymergewindow.cpp:2533
+#, fuzzy
+msgid "Error: copyLink failed: Remote links are not yet supported."
+msgstr "Ikosa : Byanze : amahuza OYA . "
+
+#: directorymergewindow.cpp:2539
+#, fuzzy
+msgid "Error: copyLink failed."
+msgstr "Ikosa : Byanze . "
+
+#: directorymergewindow.cpp:2564
+#, fuzzy, kde-format
+msgid "copy( %1 -> %2 )"
+msgstr "Gukoporora"
+
+#: directorymergewindow.cpp:2590
+#, fuzzy, kde-format
+msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination."
+msgstr "Ikosa Guhindura izina ( %1 - > %2 ) : Gusiba Ishyika: . "
+
+#: directorymergewindow.cpp:2596
+#, fuzzy, kde-format
+msgid "rename( %1 -> %2 )"
+msgstr "Guhindura izina"
+
+#: directorymergewindow.cpp:2605
+#, fuzzy
+msgid "Error: Rename failed."
+msgstr "Ikosa : Byanze . "
+
+#: directorymergewindow.cpp:2623
+#, fuzzy, kde-format
+msgid "Error during makeDir of %1. Cannot delete existing file."
+msgstr "Ikosa Bya %1 . Gusiba Idosiye . "
+
+#: directorymergewindow.cpp:2639
+#, kde-format
+msgid "makeDir( %1 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2649
+#, fuzzy
+msgid "Error while creating directory."
+msgstr "Ikosa Kurema Ububiko . "
+
+#: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784
+#, fuzzy
+msgid "Dest"
+msgstr "Kugogora"
+
+#: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709
+#, fuzzy
+msgid "Dir"
+msgstr "Muhamagazatelefoni"
+
+#: directorymergewindow.cpp:2678
+msgid "Type"
+msgstr "Ubwoko"
+
+#: directorymergewindow.cpp:2678
+msgid "Size"
+msgstr "Ingano"
+
+#: directorymergewindow.cpp:2679
+#, fuzzy
+msgid "Attr"
+msgstr "Nyuma"
+
+#: directorymergewindow.cpp:2679
+#, fuzzy
+msgid "Last Modification"
+msgstr "Iherutse guhindurwa"
+
+#: directorymergewindow.cpp:2679
+#, fuzzy
+msgid "Link-Destination"
+msgstr "Ishyika"
+
+#: directorymergewindow.cpp:2709 difftextwindow.cpp:401
+#, fuzzy
+msgid "File"
+msgstr "Idosiye..."
+
+#: directorymergewindow.cpp:2726
+#, fuzzy
+msgid "not available"
+msgstr "Ntibonetse"
+
+#: directorymergewindow.cpp:2746
+#, fuzzy
+msgid "A (Dest): "
+msgstr "A ( ) : "
+
+#: directorymergewindow.cpp:2749
+#, fuzzy
+msgid "A (Base): "
+msgstr "A ( Base ) : "
+
+#: directorymergewindow.cpp:2755
+msgid "B (Dest): "
+msgstr ""
+
+#: directorymergewindow.cpp:2763
+msgid "C (Dest): "
+msgstr ""
+
+#: directorymergewindow.cpp:2769
+#, fuzzy
+msgid "Dest: "
+msgstr "Ibiro: %1"
+
+#: directorymergewindow.cpp:2836
+#, fuzzy
+msgid "Save Directory Merge State As..."
+msgstr "Seriveri y'ububiko:"
+
+#: directorymergewindow.cpp:2959
+#, fuzzy
+msgid "Start/Continue Directory Merge"
+msgstr "Gutangira /Gukomeza "
+
+#: directorymergewindow.cpp:2960
+#, fuzzy
+msgid "Run Operation for Current Item"
+msgstr "ya:  "
+
+#: directorymergewindow.cpp:2961
+#, fuzzy
+msgid "Compare Selected File"
+msgstr "Idosiye "
+
+#: directorymergewindow.cpp:2962
+#, fuzzy
+msgid "Merge Current File"
+msgstr "Idosiye "
+
+#: directorymergewindow.cpp:2962
+#, fuzzy
+#| msgid "Merge"
+msgid ""
+"Merge\n"
+"File"
+msgstr "Gukomatanya"
+
+#: directorymergewindow.cpp:2963
+#, fuzzy
+msgid "Fold All Subdirs"
+msgstr "Amajwi Yose"
+
+#: directorymergewindow.cpp:2964
+msgid "Unfold All Subdirs"
+msgstr ""
+
+#: directorymergewindow.cpp:2968
+#, fuzzy
+msgid "Choose A for All Items"
+msgstr "A ya:  "
+
+#: directorymergewindow.cpp:2969
+#, fuzzy
+msgid "Choose B for All Items"
+msgstr "ya:  "
+
+#: directorymergewindow.cpp:2970
+#, fuzzy
+msgid "Choose C for All Items"
+msgstr "ya:  "
+
+#: directorymergewindow.cpp:2971
+#, fuzzy
+msgid "Auto-Choose Operation for All Items"
+msgstr "- ya:  "
+
+#: directorymergewindow.cpp:2972
+#, fuzzy
+msgid "No Operation for All Items"
+msgstr "ya:  "
+
+#: directorymergewindow.cpp:2977
+msgid "Show Identical Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2977
+msgid ""
+"Identical\n"
+"Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2978
+#, fuzzy
+msgid "Show Different Files"
+msgstr "Bya Idosiye : "
+
+#: directorymergewindow.cpp:2979
+msgid "Show Files only in A"
+msgstr ""
+
+#: directorymergewindow.cpp:2979
+msgid ""
+"Files\n"
+"only in A"
+msgstr ""
+
+#: directorymergewindow.cpp:2980
+msgid "Show Files only in B"
+msgstr ""
+
+#: directorymergewindow.cpp:2980
+msgid ""
+"Files\n"
+"only in B"
+msgstr ""
+
+#: directorymergewindow.cpp:2981
+msgid "Show Files only in C"
+msgstr ""
+
+#: directorymergewindow.cpp:2981
+msgid ""
+"Files\n"
+"only in C"
+msgstr ""
+
+#: directorymergewindow.cpp:2985
+#, fuzzy
+msgid "Compare Explicitly Selected Files"
+msgstr "Idosiye "
+
+#: directorymergewindow.cpp:2986
+#, fuzzy
+msgid "Merge Explicitly Selected Files"
+msgstr "Idosiye "
+
+#: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995
+msgid "Do Nothing"
+msgstr "Ntugire icyo Ukora"
+
+#: directorymergewindow.cpp:2989
+msgid "A"
+msgstr "A"
+
+#: directorymergewindow.cpp:2990
+msgid "B"
+msgstr "B"
+
+#: directorymergewindow.cpp:2991
+msgid "C"
+msgstr "C"
+
+#: directorymergewindow.cpp:3000
+#, fuzzy
+msgid "Delete A && B"
+msgstr "A & & "
+
+#: directorymergewindow.cpp:3003
+#, fuzzy
+msgid "Merge to A && B"
+msgstr "Kuri A & & "
+
+#: main.cpp:74 main.cpp:76
+msgid "Ignored. (User defined.)"
+msgstr ""
+
+#: main.cpp:162
+#, fuzzy
+msgid "kdiff3"
+msgstr "Igabanya"
+
+#: main.cpp:164
+#, fuzzy
+msgid "Tool for Comparison and Merge of Files and Directories"
+msgstr "ya:  na Bya na "
+
+#: main.cpp:165
+msgid "(c) 2002-2011 Joachim Eibl"
+msgstr ""
+
+#: main.cpp:172 kdiff3_part.cpp:303
+msgid "Joachim Eibl"
+msgstr ""
+
+#: main.cpp:173
+msgid "Eike Sauer"
+msgstr ""
+
+#: main.cpp:173
+msgid "Bugfixes, Debian package maintainer"
+msgstr ""
+
+#: main.cpp:174
+msgid "Sebastien Fricker"
+msgstr ""
+
+#: main.cpp:174
+msgid "Windows installer"
+msgstr ""
+
+#: main.cpp:175
+msgid "Stephan Binner"
+msgstr ""
+
+#: main.cpp:175
+msgid "i18n-help"
+msgstr ""
+
+#: main.cpp:176
+msgid "Stefan Partheymueller"
+msgstr ""
+
+#: main.cpp:176
+#, fuzzy
+msgid "Clipboard-patch"
+msgstr "Ububikokoporora"
+
+#: main.cpp:177
+msgid "David Faure"
+msgstr ""
+
+#: main.cpp:177
+msgid "KIO-Help"
+msgstr ""
+
+#: main.cpp:178
+msgid "Bernd Gehrmann"
+msgstr ""
+
+#: main.cpp:178
+msgid "Class CvsIgnoreList from Cervisia"
+msgstr ""
+
+#: main.cpp:179
+msgid "Andre Woebbeking"
+msgstr ""
+
+#: main.cpp:179
+msgid "Class StringMatcher"
+msgstr ""
+
+#: main.cpp:180
+msgid "Michael Denio"
+msgstr ""
+
+#: main.cpp:180
+#, fuzzy
+msgid "Directory Equality-Coloring patch"
+msgstr "Inzira y'ububiko"
+
+#: main.cpp:181
+msgid "Manfred Koehler"
+msgstr ""
+
+#: main.cpp:181
+msgid "Fix for slow startup on Windows"
+msgstr ""
+
+#: main.cpp:182
+#, fuzzy
+msgid "Sergey Zorin"
+msgstr "Ikosa "
+
+#: main.cpp:182
+msgid "Diff Ext for Windows"
+msgstr ""
+
+#: main.cpp:183
+msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+msgstr ""
+
+#: main.cpp:183
+msgid "GNU-Diffutils"
+msgstr ""
+
+#: main.cpp:184
+msgid "Tino Boellsterling, Timothy Mee"
+msgstr ""
+
+#: main.cpp:184
+msgid "Intensive test, use and feedback"
+msgstr ""
+
+#: main.cpp:185
+msgid "Michael Schmidt"
+msgstr ""
+
+#: main.cpp:185
+msgid "Mac support"
+msgstr ""
+
+#: main.cpp:186
+msgid "Valentin Rusu"
+msgstr ""
+
+#: main.cpp:186 main.cpp:187
+#, fuzzy
+#| msgid "Do Nothing"
+msgid "KDE4 porting"
+msgstr "Ntugire icyo Ukora"
+
+#: main.cpp:187
+msgid "Albert Astals Cid"
+msgstr ""
+
+#: main.cpp:188
+msgid "Silvan Scherrer"
+msgstr ""
+
+#: main.cpp:188
+msgid "OS2 port"
+msgstr ""
+
+#: main.cpp:190
+#, fuzzy
+msgid "+ Many thanks to those who reported bugs and contributed ideas!"
+msgstr "+ Kuri na ! "
+
+#: main.cpp:196
+#, fuzzy
+msgid "Merge the input."
+msgstr "i Iyinjiza . "
+
+#: main.cpp:197
+#, fuzzy
+msgid "Explicit base file. For compatibility with certain tools."
+msgstr "SHINGIRO Idosiye . Bihuye neza Na: Ibikoresho . "
+
+#: main.cpp:198
+#, fuzzy
+msgid "Output file. Implies -m. E.g.: -o newfile.txt"
+msgstr "E. G."
+
+#: main.cpp:199
+#, fuzzy
+msgid "Output file, again. (For compatibility with certain tools.)"
+msgstr "Idosiye , Nanone . ( Bihuye neza Na: Ibikoresho . ) "
+
+#: main.cpp:200
+#, fuzzy
+msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)"
+msgstr "NIBA Byose Ikiyega - . ( - o Idosiye ) "
+
+#: main.cpp:201
+#, fuzzy
+msgid "Don't solve conflicts automatically. (For compatibility...)"
+msgstr "mu buryo bwikora: . ( Bihuye neza ... ) "
+
+#: main.cpp:202
+#, fuzzy
+msgid "Visible name replacement for input file 1 (base)."
+msgstr "Izina: ya:  Iyinjiza Idosiye 1 ( SHINGIRO ) . "
+
+#: main.cpp:203
+#, fuzzy
+msgid "Visible name replacement for input file 2."
+msgstr "Izina: ya:  Iyinjiza Idosiye 2 . "
+
+#: main.cpp:204
+#, fuzzy
+msgid "Visible name replacement for input file 3."
+msgstr "Izina: ya:  Iyinjiza Idosiye 3 . "
+
+#: main.cpp:205
+#, fuzzy
+msgid "Alternative visible name replacement. Supply this once for every input."
+msgstr "Kigaragara Izina: . iyi Rimwe ya:  buri Iyinjiza . "
+
+#: main.cpp:206
+msgid ""
+"Override a config setting. Use once for every setting. E.g.: --cs "
+"\"AutoAdvance=1\""
+msgstr ""
+
+#: main.cpp:207
+msgid "Show list of config settings and current values."
+msgstr ""
+
+#: main.cpp:208
+#, fuzzy
+msgid "Use a different config file."
+msgstr "Bya Idosiye : "
+
+#: main.cpp:211
+#, fuzzy
+msgid "file1 to open (base, if not specified via --base)"
+msgstr "Kuri Gufungura ( SHINGIRO , NIBA OYA Biturutse - - SHINGIRO ) "
+
+#: main.cpp:212
+#, fuzzy
+msgid "file2 to open"
+msgstr "Kuri Gufungura "
+
+#: main.cpp:213
+#, fuzzy
+msgid "file3 to open"
+msgstr "Kuri Gufungura "
+
+#: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976
+#: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002
+#: mergeresultwindow.cpp:1014
+#, fuzzy, kde-format
+msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)"
+msgstr "Bya : %1 ( Bya %2 ) "
+
+#: mergeresultwindow.cpp:303
+#, fuzzy
+msgid ""
+"The output has been modified.\n"
+"If you continue your changes will be lost."
+msgstr ""
+"Ibisohoka Byahinduwe: . \n"
+"Gukomeza Amahinduka . "
+
+#: mergeresultwindow.cpp:834 pdiff.cpp:532
+#, fuzzy
+msgid "All input files are binary equal."
+msgstr "Iyinjiza Idosiye Nyabibiri bingana . "
+
+#: mergeresultwindow.cpp:836
+#, fuzzy
+msgid "All input files contain the same text."
+msgstr "Iyinjiza Idosiye i Umwandiko . "
+
+#: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840
+#: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540
+#, fuzzy, kde-format
+msgid "Files %1 and %2 are binary equal.\n"
+msgstr "na Nyabibiri bingana . \n"
+
+#: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841
+#: mergeresultwindow.cpp:843
+#, fuzzy, kde-format
+msgid "Files %1 and %2 have equal text.\n"
+msgstr "A na bingana Umwandiko . \n"
+
+#: mergeresultwindow.cpp:849
+#, fuzzy
+msgid "Total number of conflicts: "
+msgstr "Umubare Bya : "
+
+#: mergeresultwindow.cpp:850
+#, fuzzy
+msgid ""
+"\n"
+"Nr of automatically solved conflicts: "
+msgstr ""
+"\n"
+"Bya mu buryo bwikora: : "
+
+#: mergeresultwindow.cpp:851
+#, fuzzy
+msgid ""
+"\n"
+"Nr of unsolved conflicts: "
+msgstr ""
+"\n"
+"Bya : "
+
+#: mergeresultwindow.cpp:853
+#, fuzzy
+msgid "Conflicts"
+msgstr "Ishyamirana ry'ingenzi"
+
+#: mergeresultwindow.cpp:1728
+#, fuzzy
+msgid "<No src line>"
+msgstr "< Umurongo: > "
+
+#: mergeresultwindow.cpp:1736
+msgid "<Merge Conflict (Whitespace only)>"
+msgstr ""
+
+#: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517
+#, fuzzy
+msgid "<Merge Conflict>"
+msgstr "Ishyamirana ry'ingenzi"
+
+#: mergeresultwindow.cpp:2725
+#, fuzzy
+msgid ""
+"Not all conflicts are solved yet.\n"
+"File not saved.\n"
+msgstr ""
+"Byose . \n"
+"Idosiye OYA . \n"
+
+#: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736
+#, fuzzy
+msgid "Conflicts Left"
+msgstr "Guhitamo Ibumoso"
+
+#: mergeresultwindow.cpp:2734
+msgid ""
+"There is a line end style conflict. Please choose the line end style "
+"manually.\n"
+"File not saved.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:2748
+#, fuzzy
+msgid ""
+"\n"
+"\n"
+"Creating backup failed. File not saved."
+msgstr ""
+"\n"
+"\n"
+"Inyibutsa Byanze . Idosiye OYA . "
+
+#: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792
+#, fuzzy
+msgid "File Save Error"
+msgstr "Idosiye Kubika Ikosa "
+
+#: mergeresultwindow.cpp:2792
+#, fuzzy
+msgid "Error while writing."
+msgstr "Ikosa . "
+
+#: mergeresultwindow.cpp:3122
+msgid "Output"
+msgstr "Ibisohoka"
+
+#: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314
+#, fuzzy
+msgid "[Modified]"
+msgstr "Byahinduwe"
+
+#: mergeresultwindow.cpp:3141
+#, fuzzy
+msgid "Encoding for saving"
+msgstr "Idosiye ya:  : "
+
+#: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737
+#: optiondialog.cpp:762
+#, fuzzy
+msgid "Line end style:"
+msgstr "Impera Imisusire : "
+
+#: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767
+msgid "Unix"
+msgstr ""
+
+#: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737
+msgid "DOS"
+msgstr ""
+
+#: mergeresultwindow.cpp:3229
+#, fuzzy
+msgid "Conflict"
+msgstr "Ishyamirana ry'ingenzi"
+
+#: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263
+#: mergeresultwindow.cpp:3265
+msgid "Codec from"
+msgstr ""
+
+#: kdiff3_part.cpp:157 kdiff3_part.cpp:234
+#, fuzzy
+msgid "Couldn't find files for comparison."
+msgstr "Gushaka Idosiye ya:  . "
+
+#: kdiff3_part.cpp:302
+msgid "KDiff3Part"
+msgstr ""
+
+#: fileaccess.cpp:612
+#, fuzzy
+msgid ""
+"While trying to make a backup, deleting an older backup failed. \n"
+"Filename: "
+msgstr ""
+"Kuri Ubwoko A Inyibutsa , Gusiba Inyibutsa Byanze . \n"
+": "
+
+#: fileaccess.cpp:619
+#, fuzzy
+msgid ""
+"While trying to make a backup, renaming failed. \n"
+"Filenames: "
+msgstr ""
+"Kuri Ubwoko A Inyibutsa , Guhindura izina Byanze . \n"
+": "
+
+#: fileaccess.cpp:643
+#, fuzzy, kde-format
+msgid "Getting file status: %1"
+msgstr "Idosiye Imimerere : %1 "
+
+#: fileaccess.cpp:686
+#, fuzzy, kde-format
+msgid "Reading file: %1"
+msgstr "Idosiye : %1 "
+
+#: fileaccess.cpp:723
+#, fuzzy, kde-format
+msgid "Writing file: %1"
+msgstr "Idosiye : %1 "
+
+#: fileaccess.cpp:751
+msgid "Out of memory"
+msgstr "Ububiko bwarenzwe"
+
+#: fileaccess.cpp:786
+#, fuzzy, kde-format
+msgid "Making directory: %1"
+msgstr "Ububiko : %1 "
+
+#: fileaccess.cpp:806
+#, fuzzy, kde-format
+msgid "Removing directory: %1"
+msgstr "Ububiko : %1 "
+
+#: fileaccess.cpp:821
+#, fuzzy, kde-format
+msgid "Removing file: %1"
+msgstr "Idosiye : %1 "
+
+#: fileaccess.cpp:837
+#, fuzzy, kde-format
+msgid "Creating symbolic link: %1 -> %2"
+msgstr "Ihuza : %1 - > %2 "
+
+#: fileaccess.cpp:864
+#, fuzzy, kde-format
+msgid "Renaming file: %1 -> %2"
+msgstr "Idosiye : %1 - > %2 "
+
+#: fileaccess.cpp:897
+#, fuzzy, kde-format
+msgid "Copying file: %1 -> %2"
+msgstr "Idosiye : %1 - > %2 "
+
+#: fileaccess.cpp:911
+#, fuzzy, kde-format
+msgid ""
+"Error during file copy operation: Opening file for reading failed. Filename: "
+"%1"
+msgstr "Ikosa Idosiye Gukoporora Igikorwa : Idosiye ya:  Byanze . : %1 "
+
+#: fileaccess.cpp:917
+#, fuzzy, kde-format
+msgid ""
+"Error during file copy operation: Opening file for writing failed. Filename: "
+"%1"
+msgstr "Ikosa Idosiye Gukoporora Igikorwa : Idosiye ya:  Byanze . : %1 "
+
+#: fileaccess.cpp:932
+#, fuzzy, kde-format
+msgid "Error during file copy operation: Reading failed. Filename: %1"
+msgstr "Ikosa Idosiye Gukoporora Igikorwa : Byanze . : %1 "
+
+#: fileaccess.cpp:941
+#, fuzzy, kde-format
+msgid "Error during file copy operation: Writing failed. Filename: %1"
+msgstr "Ikosa Idosiye Gukoporora Igikorwa : Byanze . : %1 "
+
+#: fileaccess.cpp:1231
+#, fuzzy
+msgid "Reading directory: "
+msgstr "Ububiko : "
+
+#: fileaccess.cpp:1355
+#, fuzzy, kde-format
+msgid "Listing directory: %1"
+msgstr "Ububiko : %1 "
+
+#: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396
+msgid "&Cancel"
+msgstr ""
+
+#: difftextwindow.cpp:403
+#, fuzzy
+msgid "Line"
+msgstr "Ihuza..."
+
+#: difftextwindow.cpp:405
+#, fuzzy
+msgid "Line not available"
+msgstr "Ntibonetse"
+
+#: difftextwindow.cpp:1703 difftextwindow.cpp:1736
+#, fuzzy
+msgid "Encoding:"
+msgstr "Idosiye ya:  A : "
+
+#: difftextwindow.cpp:1759 kdiff3.cpp:831
+#, fuzzy
+msgid "Top line"
+msgstr "Umurongo: %1 "
+
+#: difftextwindow.cpp:1769
+msgid "End"
+msgstr "Impera"
+
+#: kdiff3.cpp:169
+#, fuzzy
+msgid "Current Configuration:"
+msgstr "Iki cyiciro"
+
+#: kdiff3.cpp:174
+#, fuzzy
+msgid "Config Option Error:"
+msgstr "Ikosa gufungura idosiye"
+
+#: kdiff3.cpp:219
+#, fuzzy
+msgid "Option --auto used, but no output file specified."
+msgstr "- - Ikiyega Byakoreshejwe , Oya Ibisohoka Idosiye . "
+
+#: kdiff3.cpp:369
+#, fuzzy
+msgid "Option --auto ignored for directory comparison."
+msgstr "- - Ikiyega ya:  Ububiko . "
+
+#: kdiff3.cpp:405
+#, fuzzy
+msgid "Saving failed."
+msgstr "Byanze . "
+
+#: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214
+#, fuzzy
+msgid "Opening of these files failed:"
+msgstr "Bya Idosiye Byanze : "
+
+#: kdiff3.cpp:449
+#, fuzzy
+msgid "File Open Error"
+msgstr "Ikosa gufungura idosiye"
+
+#: kdiff3.cpp:477
+#, fuzzy
+msgid "Opens documents for comparison..."
+msgstr "Inyandiko ya:  ... "
+
+#: kdiff3.cpp:479
+#, fuzzy
+#| msgid "Ready."
+msgid "Reload"
+msgstr "Cyiteguye."
+
+#: kdiff3.cpp:482
+#, fuzzy
+msgid "Saves the merge result. All conflicts must be solved!"
+msgstr "i Gukomatanya Igisubizo . ! "
+
+#: kdiff3.cpp:484
+#, fuzzy
+msgid "Saves the current document as..."
+msgstr "i KIGEZWEHO Inyandiko Nka ... "
+
+#: kdiff3.cpp:487
+msgid "Print the differences"
+msgstr ""
+
+#: kdiff3.cpp:490
+#, fuzzy
+msgid "Quits the application"
+msgstr "i Porogaramu "
+
+#: kdiff3.cpp:492
+#, fuzzy
+msgid "Cuts the selected section and puts it to the clipboard"
+msgstr "i Byahiswemo Icyiciro na Kuri i Ububikokoporora "
+
+#: kdiff3.cpp:494
+#, fuzzy
+msgid "Copies the selected section to the clipboard"
+msgstr "i Byahiswemo Icyiciro Kuri i Ububikokoporora "
+
+#: kdiff3.cpp:496
+#, fuzzy
+msgid "Pastes the clipboard contents to current position"
+msgstr "i Ububikokoporora Ibigize Kuri Ibirindiro: "
+
+#: kdiff3.cpp:498
+msgid "Select everything in current window"
+msgstr ""
+
+#: kdiff3.cpp:500
+#, fuzzy
+msgid "Search for a string"
+msgstr "ya:  A Ikurikiranyanyuguti "
+
+#: kdiff3.cpp:502
+#, fuzzy
+msgid "Search again for the string"
+msgstr "Nanone ya:  i Ikurikiranyanyuguti "
+
+#: kdiff3.cpp:507
+#, fuzzy
+msgid "Enables/disables the statusbar"
+msgstr "/i Umurongomiterere "
+
+#: kdiff3.cpp:511
+#, fuzzy
+msgid "Configure KDiff3..."
+msgstr "Kugena imiterere..."
+
+#: kdiff3.cpp:532
+#, fuzzy
+msgid "Go to Current Delta"
+msgstr "Kuri "
+
+#: kdiff3.cpp:532
+#, fuzzy
+msgid ""
+"Current\n"
+"Delta"
+msgstr "Kuri "
+
+#: kdiff3.cpp:534
+#, fuzzy
+msgid "Go to First Delta"
+msgstr "Kuri "
+
+#: kdiff3.cpp:534
+#, fuzzy
+msgid ""
+"First\n"
+"Delta"
+msgstr "Kuri "
+
+#: kdiff3.cpp:536
+#, fuzzy
+msgid "Go to Last Delta"
+msgstr "Kuri "
+
+#: kdiff3.cpp:536
+#, fuzzy
+msgid ""
+"Last\n"
+"Delta"
+msgstr "Kuri "
+
+#: kdiff3.cpp:538
+#, fuzzy
+msgid "(Skips white space differences when \"Show White Space\" is disabled.)"
+msgstr "( Umweru Umwanya Ibinyuranyo Ryari: \" \" ni Yahagaritswe . ) "
+
+#: kdiff3.cpp:539
+#, fuzzy
+msgid ""
+"(Does not skip white space differences even when \"Show White Space\" is "
+"disabled.)"
+msgstr ""
+"( OYA Gusimbuka Umweru Umwanya Ibinyuranyo ATARIIGIHARWE Ryari: \" \" ni "
+"Yahagaritswe . ) "
+
+#: kdiff3.cpp:540
+#, fuzzy
+msgid "Go to Previous Delta"
+msgstr "Kuri "
+
+#: kdiff3.cpp:540
+#, fuzzy
+msgid ""
+"Prev\n"
+"Delta"
+msgstr "Kuri "
+
+#: kdiff3.cpp:542
+#, fuzzy
+msgid "Go to Next Delta"
+msgstr "Kuri "
+
+#: kdiff3.cpp:542
+#, fuzzy
+msgid ""
+"Next\n"
+"Delta"
+msgstr "Kuri "
+
+#: kdiff3.cpp:544
+#, fuzzy
+msgid "Go to Previous Conflict"
+msgstr "Kuri "
+
+#: kdiff3.cpp:544
+#, fuzzy
+msgid ""
+"Prev\n"
+"Conflict"
+msgstr "Ishyamirana ry'ingenzi"
+
+#: kdiff3.cpp:546
+#, fuzzy
+msgid "Go to Next Conflict"
+msgstr "Kuri "
+
+#: kdiff3.cpp:546
+#, fuzzy
+msgid ""
+"Next\n"
+"Conflict"
+msgstr "Kuri "
+
+#: kdiff3.cpp:548
+#, fuzzy
+msgid "Go to Previous Unsolved Conflict"
+msgstr "Kuri "
+
+#: kdiff3.cpp:548
+#, fuzzy
+msgid ""
+"Prev\n"
+"Unsolved"
+msgstr "Kidakoreshwa"
+
+#: kdiff3.cpp:550
+#, fuzzy
+msgid "Go to Next Unsolved Conflict"
+msgstr "Kuri "
+
+#: kdiff3.cpp:550
+#, fuzzy
+msgid ""
+"Next\n"
+"Unsolved"
+msgstr "Kidakoreshwa"
+
+#: kdiff3.cpp:552
+#, fuzzy
+msgid "Select Line(s) From A"
+msgstr "( S ) A "
+
+#: kdiff3.cpp:552
+msgid ""
+"Choose\n"
+"A"
+msgstr ""
+
+#: kdiff3.cpp:553
+#, fuzzy
+msgid "Select Line(s) From B"
+msgstr "( S ) "
+
+#: kdiff3.cpp:553
+msgid ""
+"Choose\n"
+"B"
+msgstr ""
+
+#: kdiff3.cpp:554
+#, fuzzy
+msgid "Select Line(s) From C"
+msgstr "( S ) "
+
+#: kdiff3.cpp:554
+msgid ""
+"Choose\n"
+"C"
+msgstr ""
+
+#: kdiff3.cpp:555
+#, fuzzy
+msgid "Automatically Go to Next Unsolved Conflict After Source Selection"
+msgstr "Kuri "
+
+#: kdiff3.cpp:555
+#, fuzzy
+msgid ""
+"Auto\n"
+"Next"
+msgstr "Gukoporora Ihitamo "
+
+#: kdiff3.cpp:557
+#, fuzzy
+msgid "Show Space && Tabulator Characters for Differences"
+msgstr "& & ya:  "
+
+#: kdiff3.cpp:557
+msgid ""
+"White\n"
+"Characters"
+msgstr ""
+
+#: kdiff3.cpp:558
+#, fuzzy
+msgid "Show White Space"
+msgstr "Umwanya w'Umweru"
+
+#: kdiff3.cpp:558
+msgid ""
+"White\n"
+"Deltas"
+msgstr ""
+
+#: kdiff3.cpp:560
+#, fuzzy
+msgid "Show Line Numbers"
+msgstr "Kwerekana nomero z'umurongo"
+
+#: kdiff3.cpp:560
+#, fuzzy
+msgid ""
+"Line\n"
+"Numbers"
+msgstr "Kwerekana nomero z'umurongo"
+
+#: kdiff3.cpp:561
+#, fuzzy
+msgid "Choose A Everywhere"
+msgstr "A "
+
+#: kdiff3.cpp:562
+#, fuzzy
+msgid "Choose B Everywhere"
+msgstr "Hitamo darayiva"
+
+#: kdiff3.cpp:563
+#, fuzzy
+msgid "Choose C Everywhere"
+msgstr "Hitamo darayiva"
+
+#: kdiff3.cpp:564
+#, fuzzy
+msgid "Choose A for All Unsolved Conflicts"
+msgstr "A ya:  "
+
+#: kdiff3.cpp:565
+#, fuzzy
+msgid "Choose B for All Unsolved Conflicts"
+msgstr "ya:  "
+
+#: kdiff3.cpp:566
+#, fuzzy
+msgid "Choose C for All Unsolved Conflicts"
+msgstr "ya:  "
+
+#: kdiff3.cpp:567
+#, fuzzy
+msgid "Choose A for All Unsolved Whitespace Conflicts"
+msgstr "A ya:  "
+
+#: kdiff3.cpp:568
+#, fuzzy
+msgid "Choose B for All Unsolved Whitespace Conflicts"
+msgstr "ya:  "
+
+#: kdiff3.cpp:569
+#, fuzzy
+msgid "Choose C for All Unsolved Whitespace Conflicts"
+msgstr "ya:  "
+
+#: kdiff3.cpp:570
+#, fuzzy
+msgid "Automatically Solve Simple Conflicts"
+msgstr "Gufunga mu buryo bwikoresha impago zidakoreshwa"
+
+#: kdiff3.cpp:571
+#, fuzzy
+msgid "Set Deltas to Conflicts"
+msgstr "Kuri "
+
+#: kdiff3.cpp:572
+msgid "Run Regular Expression Auto Merge"
+msgstr ""
+
+#: kdiff3.cpp:573
+#, fuzzy
+msgid "Automatically Solve History Conflicts"
+msgstr "Gufunga mu buryo bwikoresha impago zidakoreshwa"
+
+#: kdiff3.cpp:574
+msgid "Split Diff At Selection"
+msgstr ""
+
+#: kdiff3.cpp:575
+#, fuzzy
+msgid "Join Selected Diffs"
+msgstr "Idosiye "
+
+#: kdiff3.cpp:577
+#, fuzzy
+msgid "Show Window A"
+msgstr "A "
+
+#: kdiff3.cpp:578
+#, fuzzy
+msgid "Show Window B"
+msgstr "Kwerekana Ilisiti y'Amadirishya"
+
+#: kdiff3.cpp:579
+#, fuzzy
+msgid "Show Window C"
+msgstr "Kwerekana Ilisiti y'Amadirishya"
+
+#: kdiff3.cpp:580 kdiff3.cpp:591
+#, fuzzy
+msgid "Focus Next Window"
+msgstr "idirishya rikurikira"
+
+#: kdiff3.cpp:582
+#, fuzzy
+msgid "Normal Overview"
+msgstr "Gahunda-Nyamwaka"
+
+#: kdiff3.cpp:583
+#, fuzzy
+msgid "A vs. B Overview"
+msgstr "A . "
+
+#: kdiff3.cpp:584
+#, fuzzy
+msgid "A vs. C Overview"
+msgstr "A . "
+
+#: kdiff3.cpp:585
+#, fuzzy
+msgid "B vs. C Overview"
+msgstr "Incamake"
+
+#: kdiff3.cpp:586
+msgid "Word Wrap Diff Windows"
+msgstr ""
+
+#: kdiff3.cpp:587
+msgid "Add Manual Diff Alignment"
+msgstr ""
+
+#: kdiff3.cpp:588
+msgid "Clear All Manual Diff Alignments"
+msgstr ""
+
+#: kdiff3.cpp:593
+#, fuzzy
+msgid "Focus Prev Window"
+msgstr "Kwerekeza ku idirishya: "
+
+#: kdiff3.cpp:594
+#, fuzzy
+msgid "Toggle Split Orientation"
+msgstr "Icyerekezo mwandiko"
+
+#: kdiff3.cpp:596
+msgid "Dir && Text Split Screen View"
+msgstr ""
+
+#: kdiff3.cpp:598
+msgid "Toggle Between Dir && Text View"
+msgstr ""
+
+#: kdiff3.cpp:654 pdiff.cpp:1812
+#, fuzzy
+msgid "The merge result hasn't been saved."
+msgstr "Gukomatanya Igisubizo . "
+
+#: kdiff3.cpp:656
+#, fuzzy
+msgid "Save && Quit"
+msgstr "Kubika & & "
+
+#: kdiff3.cpp:657
+#, fuzzy
+msgid "Quit Without Saving"
+msgstr "Komeka utahinduye imiterere"
+
+#: kdiff3.cpp:665 pdiff.cpp:1823
+#, fuzzy
+msgid "Saving the merge result failed."
+msgstr "i Gukomatanya Igisubizo Byanze . "
+
+#: kdiff3.cpp:676 pdiff.cpp:1078
+#, fuzzy
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort?"
+msgstr "A Ububiko Gukomatanya . , Kuri Kureka ? "
+
+#: kdiff3.cpp:701
+#, fuzzy
+msgid "Saving file..."
+msgstr "Idosiye ... "
+
+#: kdiff3.cpp:718
+#, fuzzy
+msgid "Saving file with a new filename..."
+msgstr "Idosiye Na: A Gishya Izina ry'idosiye: ... "
+
+#: kdiff3.cpp:781
+#, fuzzy
+msgid "Printing not implemented."
+msgstr "Igikorwa Byuzuye . "
+
+#: kdiff3.cpp:815
+#, fuzzy
+msgid "Printing..."
+msgstr "Tegereza..."
+
+#: kdiff3.cpp:956
+#, fuzzy
+msgid "Selection"
+msgstr "Gutoranya imyandikire"
+
+#: kdiff3.cpp:982
+#, fuzzy
+msgid "Printing completed."
+msgstr "Igikorwa Byuzuye . "
+
+#: kdiff3.cpp:986
+#, fuzzy
+msgid "Printing aborted."
+msgstr "Igikorwa Byuzuye . "
+
+#: kdiff3.cpp:993
+#, fuzzy
+msgid "Exiting..."
+msgstr "Tegereza..."
+
+#: kdiff3.cpp:1006
+#, fuzzy
+msgid "Toggling toolbar..."
+msgstr "Umwanyabikoresho ... "
+
+#: kdiff3.cpp:1027
+#, fuzzy
+msgid "Toggle the statusbar..."
+msgstr "i Umurongomiterere ... "
+
+#: smalldialogs.cpp:58
+#, fuzzy
+msgid "A (Base):"
+msgstr "A ( Base ) : "
+
+#: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99
+#: smalldialogs.cpp:142
+#, fuzzy
+msgid "File..."
+msgstr "Idosiye..."
+
+#: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101
+#: smalldialogs.cpp:144
+#, fuzzy
+msgid "Dir..."
+msgstr "..."
+
+#: smalldialogs.cpp:93
+#, fuzzy
+msgid "C (Optional):"
+msgstr "(bitari ngombwa)"
+
+#: smalldialogs.cpp:116
+msgid "Swap/Copy Names ..."
+msgstr ""
+
+#: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123
+#, kde-format
+msgid "Swap %1<->%2"
+msgstr ""
+
+#: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126
+#, kde-format
+msgid "Copy %1->Output"
+msgstr ""
+
+#: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129
+#, kde-format
+msgid "Swap %1<->Output"
+msgstr ""
+
+#: smalldialogs.cpp:136
+#, fuzzy
+msgid "Output (optional):"
+msgstr "( Bitari ngombwa ) : "
+
+#: smalldialogs.cpp:168
+msgid "Configure..."
+msgstr "Kugena imiterere..."
+
+#: smalldialogs.cpp:174
+msgid "&OK"
+msgstr ""
+
+#: smalldialogs.cpp:362
+#, fuzzy
+msgid "Search text:"
+msgstr "Umwandiko : "
+
+#: smalldialogs.cpp:369
+msgid "Case sensitive"
+msgstr "Imyandikire y'inyuguti nkuru/nto"
+
+#: smalldialogs.cpp:372
+#, fuzzy
+msgid "Search A"
+msgstr "A "
+
+#: smalldialogs.cpp:377
+#, fuzzy
+msgid "Search B"
+msgstr "Gushaka"
+
+#: smalldialogs.cpp:382
+#, fuzzy
+msgid "Search C"
+msgstr "Gushaka"
+
+#: smalldialogs.cpp:387
+#, fuzzy
+msgid "Search output"
+msgstr "Ibisohoka "
+
+#: smalldialogs.cpp:392
+msgid "&Search"
+msgstr "Shakisha"
+
+#: smalldialogs.cpp:409
+msgid "Regular Expression Tester"
+msgstr ""
+
+#: smalldialogs.cpp:414 optiondialog.cpp:936
+msgid "Auto merge regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:422
+msgid "Example auto merge line:"
+msgstr ""
+
+#: smalldialogs.cpp:424
+msgid "To test auto merge, copy a line as used in your files."
+msgstr ""
+
+#: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494
+msgid "Match result:"
+msgstr ""
+
+#: smalldialogs.cpp:441 optiondialog.cpp:962
+msgid "History start regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:449
+msgid "Example history start line (with leading comment):"
+msgstr ""
+
+#: smalldialogs.cpp:451
+msgid ""
+"Copy a history start line as used in your files,\n"
+"including the leading comment."
+msgstr ""
+
+#: smalldialogs.cpp:469 optiondialog.cpp:972
+msgid "History entry start regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:477
+msgid "History sort key order:"
+msgstr ""
+
+#: smalldialogs.cpp:485
+msgid "Example history entry start line (without leading comment):"
+msgstr ""
+
+#: smalldialogs.cpp:487
+msgid ""
+"Copy a history entry start line as used in your files,\n"
+"but omit the leading comment."
+msgstr ""
+
+#: smalldialogs.cpp:501
+msgid "Sort key result:"
+msgstr ""
+
+#: smalldialogs.cpp:508
+msgid "OK"
+msgstr ""
+
+#: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583
+msgid "Match success."
+msgstr ""
+
+#: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589
+#, fuzzy
+msgid "Match failed."
+msgstr "Byanze . "
+
+#: smalldialogs.cpp:574
+msgid "Opening and closing parentheses do not match in regular expression."
+msgstr ""
+
+#: optiondialog.cpp:367
+#, fuzzy
+msgid "Unicode, 8 bit"
+msgstr ", 8 "
+
+#: optiondialog.cpp:368
+msgid "Unicode"
+msgstr "Inikode"
+
+#: optiondialog.cpp:369
+#, fuzzy
+msgid "Latin1"
+msgstr "Ikilatini-1"
+
+#: optiondialog.cpp:388
+#, fuzzy
+msgid "Change this if non-ASCII characters are not displayed correctly."
+msgstr "iyi NIBA - Inyuguti OYA . "
+
+#: optiondialog.cpp:465
+#, fuzzy
+#| msgid "Configure..."
+msgid "Configure"
+msgstr "Kugena imiterere..."
+
+#: optiondialog.cpp:531
+msgid "Font"
+msgstr ""
+
+#: optiondialog.cpp:532
+msgid "Editor & Diff Output Font"
+msgstr ""
+
+#: optiondialog.cpp:556
+#, fuzzy
+msgid "Italic font for deltas"
+msgstr "Imyandikire ya:  "
+
+#: optiondialog.cpp:559
+#, fuzzy
+msgid ""
+"Selects the italic version of the font for differences.\n"
+"If the font doesn't support italic characters, then this does nothing."
+msgstr ""
+"i Biberamye Verisiyo Bya i Imyandikire ya:  Ibinyuranyo . \n"
+"i Imyandikire Gushigikira Biberamye Inyuguti , Hanyuma iyi Nta na kimwe . "
+
+#: optiondialog.cpp:568
+msgid "Color"
+msgstr "Ibara"
+
+#: optiondialog.cpp:569
+#, fuzzy
+msgid "Colors Settings"
+msgstr "Amagenamiterere y'Akarere"
+
+#: optiondialog.cpp:588
+msgid "Editor and Diff Views:"
+msgstr ""
+
+#: optiondialog.cpp:596
+msgid "Foreground color:"
+msgstr "Ibara ry'imbugambanza:"
+
+#: optiondialog.cpp:603
+msgid "Background color:"
+msgstr "Ibara ry'imbuganyuma:"
+
+#: optiondialog.cpp:612
+#, fuzzy
+msgid "Diff background color:"
+msgstr "Mbuganyuma Ibara: : "
+
+#: optiondialog.cpp:620
+#, fuzzy
+msgid "Color A:"
+msgstr "A : "
+
+#: optiondialog.cpp:628
+#, fuzzy
+msgid "Color B:"
+msgstr "Ibara:"
+
+#: optiondialog.cpp:636
+#, fuzzy
+msgid "Color C:"
+msgstr "Ibara:"
+
+#: optiondialog.cpp:643
+#, fuzzy
+msgid "Conflict color:"
+msgstr "Ibara: : "
+
+#: optiondialog.cpp:651
+#, fuzzy
+msgid "Current range background color:"
+msgstr "Urutonde Mbuganyuma Ibara: : "
+
+#: optiondialog.cpp:659
+#, fuzzy
+msgid "Current range diff background color:"
+msgstr "Urutonde Mbuganyuma Ibara: : "
+
+#: optiondialog.cpp:666
+msgid "Color for manually aligned difference ranges:"
+msgstr ""
+
+#: optiondialog.cpp:672
+#, fuzzy
+msgid "Directory Comparison View:"
+msgstr "Inzira y'ububiko"
+
+#: optiondialog.cpp:678
+msgid "Newest file color:"
+msgstr ""
+
+#: optiondialog.cpp:682
+msgid ""
+"Changing this color will only be effective when starting the next directory "
+"comparison."
+msgstr ""
+
+#: optiondialog.cpp:687
+msgid "Oldest file color:"
+msgstr ""
+
+#: optiondialog.cpp:695
+msgid "Middle age file color:"
+msgstr ""
+
+#: optiondialog.cpp:703
+msgid "Color for missing files:"
+msgstr ""
+
+#: optiondialog.cpp:717
+msgid "Editor"
+msgstr "Muhinduzi"
+
+#: optiondialog.cpp:718
+#, fuzzy
+msgid "Editor Behavior"
+msgstr "imyitwarire"
+
+#: optiondialog.cpp:732
+#, fuzzy
+msgid "Tab inserts spaces"
+msgstr "Imyanya "
+
+#: optiondialog.cpp:735
+#, fuzzy
+msgid ""
+"On: Pressing tab generates the appropriate number of spaces.\n"
+"Off: A tab character will be inserted."
+msgstr ""
+": tab i Umubare Bya Imyanya . \n"
+": A - Inyuguti: Byinjijwemo . "
+
+#: optiondialog.cpp:741
+#, fuzzy
+msgid "Tab size:"
+msgstr "Ingano: : "
+
+#: optiondialog.cpp:747
+#, fuzzy
+msgid "Auto indentation"
+msgstr "Isunika "
+
+#: optiondialog.cpp:750
+#, fuzzy
+msgid "On: The indentation of the previous line is used for a new line.\n"
+msgstr ""
+": Isunika Bya i Ibanjirije Umurongo: ni Byakoreshejwe ya:  A Gishya "
+"Umurongo: . \n"
+
+#: optiondialog.cpp:754
+#, fuzzy
+msgid "Auto copy selection"
+msgstr "Gukoporora Ihitamo "
+
+#: optiondialog.cpp:757
+#, fuzzy
+msgid ""
+"On: Any selection is immediately written to the clipboard.\n"
+"Off: You must explicitely copy e.g. via Ctrl-C."
+msgstr "G."
+
+#: optiondialog.cpp:768
+#, fuzzy
+#| msgid "&Window"
+msgid "Dos/Windows"
+msgstr "Idirishya"
+
+#: optiondialog.cpp:769
+#, fuzzy
+msgid "Autodetect"
+msgstr "Gukoporora Ihitamo "
+
+#: optiondialog.cpp:772
+#, fuzzy
+msgid ""
+"Sets the line endings for when an edited file is saved.\n"
+"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A"
+msgstr ""
+"i Umurongo: ya:  Ryari: Idosiye ni . \n"
+"/: + ; : ; Na: = , = "
+
+#: optiondialog.cpp:784
+#, fuzzy
+msgid "Diff"
+msgstr "Igabanya"
+
+#: optiondialog.cpp:785
+#, fuzzy
+msgid "Diff Settings"
+msgstr "Iganamiterere rya musomyi"
+
+#: optiondialog.cpp:809
+#, fuzzy
+msgid "Treat as white space."
+msgstr "/+ + Ibisobanuro nka Umweru Umwanya . "
+
+#: optiondialog.cpp:811
+#, fuzzy
+msgid "Ignore numbers"
+msgstr "Imibare "
+
+#: optiondialog.cpp:814
+#, fuzzy
+msgid ""
+"Ignore number characters during line matching phase. (Similar to Ignore "
+"white space.)\n"
+"Might help to compare files with numeric data."
+msgstr ""
+"Umubare Inyuguti Umurongo: . ( Kuri Umweru Umwanya . ) \n"
+"Ifashayobora Kuri Kugereranya # Idosiye Na: Bikurikije umubare Ibyatanzwe . "
+
+#: optiondialog.cpp:819
+#, fuzzy
+msgid "Ignore C/C++ comments"
+msgstr "/+ + Ibisobanuro "
+
+#: optiondialog.cpp:821
+#, fuzzy
+msgid "Treat C/C++ comments like white space."
+msgstr "/+ + Ibisobanuro nka Umweru Umwanya . "
+
+#: optiondialog.cpp:825
+#, fuzzy
+msgid "Ignore case"
+msgstr "Kwirengagiza Inshuro Imwe"
+
+#: optiondialog.cpp:828
+#, fuzzy
+msgid "Treat case differences like white space changes. ('a'<=>'A')"
+msgstr "Ibinyuranyo nka Umweru Umwanya Amahinduka . ( ' < = > ' ) "
+
+#: optiondialog.cpp:832
+#, fuzzy
+msgid "Preprocessor command:"
+msgstr "command : "
+
+#: optiondialog.cpp:836
+#, fuzzy
+msgid "User defined pre-processing. (See the docs for details.)"
+msgstr "Byahawe imiterere mbere - Inonosora . ( i ya:  Birambuye . ) "
+
+#: optiondialog.cpp:839
+#, fuzzy
+msgid "Line-matching preprocessor command:"
+msgstr "- command : "
+
+#: optiondialog.cpp:843
+#, fuzzy
+msgid ""
+"This pre-processor is only used during line matching.\n"
+"(See the docs for details.)"
+msgstr ""
+"Byahawe imiterere mbere - ni Byakoreshejwe Umurongo: . \n"
+"( i ya:  Birambuye . ) "
+
+#: optiondialog.cpp:846
+#, fuzzy
+msgid "Try hard (slower)"
+msgstr "Ikomeye ( ) "
+
+#: optiondialog.cpp:849
+#, fuzzy
+msgid ""
+"Enables the --minimal option for the external diff.\n"
+"The analysis of big files will be much slower."
+msgstr ""
+"i - - Ihitamo ya:  i external . \n"
+"Bya Idosiye . "
+
+#: optiondialog.cpp:854
+msgid "Align B and C for 3 input files"
+msgstr ""
+
+#: optiondialog.cpp:857
+msgid ""
+"Try to align B and C when comparing or merging three input files.\n"
+"Not recommended for merging because merge might get more complicated.\n"
+"(Default is off.)"
+msgstr ""
+
+#: optiondialog.cpp:870
+#, fuzzy
+msgid "Merge Settings"
+msgstr "Iganamiterere rya musomyi"
+
+#: optiondialog.cpp:885
+#, fuzzy
+msgid "Auto advance delay (ms):"
+msgstr "Gutinda ( Madamu ) : "
+
+#: optiondialog.cpp:890
+#, fuzzy
+msgid ""
+"When in Auto-Advance mode the result of the current selection is shown \n"
+"for the specified time, before jumping to the next conflict. Range: 0-2000 ms"
+msgstr ""
+"in - Ubwoko i Igisubizo Bya i KIGEZWEHO Ihitamo ni \n"
+"ya:  i Igihe , Mbere Kuri i Ibikurikira > . : 0 %S - Madamu "
+
+#: optiondialog.cpp:895
+#, fuzzy
+msgid "Show info dialogs"
+msgstr "A "
+
+#: optiondialog.cpp:897
+msgid "Show a dialog with information about the number of conflicts."
+msgstr ""
+
+#: optiondialog.cpp:900
+#, fuzzy
+msgid "White space 2-file merge default:"
+msgstr "Umwanya 2 - Idosiye Gukomatanya Mburabuzi : "
+
+#: optiondialog.cpp:904 optiondialog.cpp:917
+#, fuzzy
+msgid "Manual Choice"
+msgstr "Ibishushanyo by'Intoki"
+
+#: optiondialog.cpp:908 optiondialog.cpp:922
+#, fuzzy
+msgid ""
+"Allow the merge algorithm to automatically select an input for white-space-"
+"only changes."
+msgstr ""
+"i Gukomatanya Kuri mu buryo bwikora: Guhitamo Iyinjiza ya:  Umweru - Umwanya "
+"- Amahinduka . "
+
+#: optiondialog.cpp:913
+#, fuzzy
+msgid "White space 3-file merge default:"
+msgstr "Umwanya 3 - Idosiye Gukomatanya Mburabuzi : "
+
+#: optiondialog.cpp:927
+msgid "Automatic Merge Regular Expression"
+msgstr ""
+
+#: optiondialog.cpp:940
+msgid ""
+"Regular expression for lines where KDiff3 should automatically choose one "
+"source.\n"
+"When a line with a conflict matches the regular expression then\n"
+"- if available - C, otherwise B will be chosen."
+msgstr ""
+
+#: optiondialog.cpp:946
+msgid "Run regular expression auto merge on merge start"
+msgstr ""
+
+#: optiondialog.cpp:948
+msgid ""
+"Run the merge for auto merge regular expressions\n"
+"immediately when a merge starts.\n"
+msgstr ""
+
+#: optiondialog.cpp:953
+msgid "Version Control History Merging"
+msgstr ""
+
+#: optiondialog.cpp:966
+msgid ""
+"Regular expression for the start of the version control history entry.\n"
+"Usually this line contains the \"$Log$\" keyword.\n"
+"Default value: \".*\\$Log.*\\$.*\""
+msgstr ""
+
+#: optiondialog.cpp:984
+msgid ""
+"A version control history entry consists of several lines.\n"
+"Specify the regular expression to detect the first line (without the leading "
+"comment).\n"
+"Use parentheses to group the keys you want to use for sorting.\n"
+"If left empty, then KDiff3 assumes that empty lines separate history "
+"entries.\n"
+"See the documentation for details."
+msgstr ""
+
+#: optiondialog.cpp:992
+msgid "History merge sorting"
+msgstr ""
+
+#: optiondialog.cpp:994
+msgid "Sort version control history by a key."
+msgstr ""
+
+#: optiondialog.cpp:1004
+msgid "History entry start sort key order:"
+msgstr ""
+
+#: optiondialog.cpp:1008
+msgid ""
+"Each pair of parentheses used in the regular expression for the history "
+"start entry\n"
+"groups a key that can be used for sorting.\n"
+"Specify the list of keys (that are numbered in order of occurrence\n"
+"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n"
+"If left empty, then no sorting will be done.\n"
+"See the documentation for details."
+msgstr ""
+
+#: optiondialog.cpp:1019
+msgid "Merge version control history on merge start"
+msgstr ""
+
+#: optiondialog.cpp:1021
+msgid "Run version control history automerge on merge start."
+msgstr ""
+
+#: optiondialog.cpp:1025
+#, fuzzy
+msgid "Max number of history entries:"
+msgstr "Bya Ububiko bwungirije : "
+
+#: optiondialog.cpp:1028
+msgid "Cut off after specified number. Use -1 for infinite number of entries."
+msgstr ""
+
+#: optiondialog.cpp:1032
+msgid "Test your regular expressions"
+msgstr ""
+
+#: optiondialog.cpp:1037
+msgid "Irrelevant merge command:"
+msgstr ""
+
+#: optiondialog.cpp:1041
+msgid ""
+"If specified this script is run after automerge\n"
+"when no other relevant changes were detected.\n"
+"Called with the parameters: filename1 filename2 filename3"
+msgstr ""
+
+#: optiondialog.cpp:1047
+msgid "Auto save and quit on merge without conflicts"
+msgstr ""
+
+#: optiondialog.cpp:1050
+msgid ""
+"If KDiff3 was started for a file-merge from the command line and all\n"
+"conflicts are solvable without user interaction then automatically save and "
+"quit.\n"
+"(Similar to command line option \"--auto\".)"
+msgstr ""
+
+#: optiondialog.cpp:1061 optiondialog.cpp:1062
+#, fuzzy
+msgid "Directory"
+msgstr "Ububiko"
+
+#: optiondialog.cpp:1075
+#, fuzzy
+msgid "Recursive directories"
+msgstr "ububiko bw'amaderese "
+
+#: optiondialog.cpp:1077
+#, fuzzy
+msgid "Whether to analyze subdirectories or not."
+msgstr "Kuri Ububiko bwungirije Cyangwa OYA . "
+
+#: optiondialog.cpp:1079
+#, fuzzy
+msgid "File pattern(s):"
+msgstr "Idosiye Ishusho ( S ) : "
+
+#: optiondialog.cpp:1084
+#, fuzzy
+msgid ""
+"Pattern(s) of files to be analyzed. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"( S ) Bya Idosiye Kuri . \n"
+": ' * ' na ' ? ' \n"
+"ku ikoresha i Mutandukanya : ' ; ' "
+
+#: optiondialog.cpp:1090
+#, fuzzy
+msgid "File-anti-pattern(s):"
+msgstr "Idosiye - - Ishusho ( S ) : "
+
+#: optiondialog.cpp:1095
+#, fuzzy
+msgid ""
+"Pattern(s) of files to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"( S ) Bya Idosiye Kuri Kuva: . \n"
+": ' * ' na ' ? ' \n"
+"ku ikoresha i Mutandukanya : ' ; ' "
+
+#: optiondialog.cpp:1101
+#, fuzzy
+msgid "Dir-anti-pattern(s):"
+msgstr "- - Ishusho ( S ) : "
+
+#: optiondialog.cpp:1106
+#, fuzzy
+msgid ""
+"Pattern(s) of directories to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"( S ) Bya ububiko bw'amaderese Kuri Kuva: . \n"
+": ' * ' na ' ? ' \n"
+"ku ikoresha i Mutandukanya : ' "
+
+#: optiondialog.cpp:1112
+msgid "Use .cvsignore"
+msgstr ""
+
+#: optiondialog.cpp:1115
+#, fuzzy
+msgid ""
+"Extends the antipattern to anything that would be ignored by CVS.\n"
+"Via local \".cvsignore\" files this can be directory specific."
+msgstr ""
+"i Kuri ku . \n"
+"Bya hafi \" . \" - Idosiye iyi Ububiko . "
+
+#: optiondialog.cpp:1120
+#, fuzzy
+msgid "Find hidden files and directories"
+msgstr "Birahishe Idosiye na ububiko bw'amaderese "
+
+#: optiondialog.cpp:1123
+#, fuzzy
+msgid "Finds files and directories with the hidden attribute."
+msgstr "Idosiye na ububiko bw'amaderese Na: i Birahishe Ikiranga: . "
+
+#: optiondialog.cpp:1125
+#, fuzzy
+msgid "Finds files and directories starting with '.'."
+msgstr "Idosiye na ububiko bw'amaderese Itangira... Na: ' . ' . "
+
+#: optiondialog.cpp:1129
+#, fuzzy
+msgid "Follow file links"
+msgstr "Idosiye amahuza "
+
+#: optiondialog.cpp:1132
+#, fuzzy
+msgid ""
+"On: Compare the file the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+": i Idosiye i Ihuza Utudomo Kuri . \n"
+": i amahuza . "
+
+#: optiondialog.cpp:1137
+#, fuzzy
+msgid "Follow directory links"
+msgstr "Ububiko amahuza "
+
+#: optiondialog.cpp:1140
+#, fuzzy
+msgid ""
+"On: Compare the directory the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+": i Ububiko i Ihuza Utudomo Kuri . \n"
+": i amahuza . "
+
+#: optiondialog.cpp:1156
+msgid "Case sensitive filename comparison"
+msgstr ""
+
+#: optiondialog.cpp:1159
+msgid ""
+"The directory comparison will compare files or directories when their names "
+"match.\n"
+"Set this option if the case of the names must match. (Default for Windows is "
+"off, otherwise on.)"
+msgstr ""
+
+#: optiondialog.cpp:1163
+#, fuzzy
+msgid "File Comparison Mode"
+msgstr "Idosiye "
+
+#: optiondialog.cpp:1169
+msgid "Binary comparison"
+msgstr ""
+
+#: optiondialog.cpp:1170
+#, fuzzy
+msgid "Binary comparison of each file. (Default)"
+msgstr "Bya Idosiye . ( ) "
+
+#: optiondialog.cpp:1173
+#, fuzzy
+msgid "Full analysis"
+msgstr "Kwikaraga hose"
+
+#: optiondialog.cpp:1174
+#, fuzzy
+msgid ""
+"Do a full analysis and show statistics information in extra columns.\n"
+"(Slower than a binary comparison, much slower for binary files.)"
+msgstr ""
+"A Cyuzuye na Herekana %S Sitatisitiki Ibisobanuro: in Birenga Inkingi: . \n"
+"( A Nyabibiri , ya:  Nyabibiri Idosiye . ) "
+
+#: optiondialog.cpp:1178
+#, fuzzy
+msgid "Trust the size and modification date (unsafe)"
+msgstr "i Itariki: ( ) "
+
+#: optiondialog.cpp:1179
+#, fuzzy
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"Files with equal contents but different modification dates will appear as "
+"different.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"Idosiye bingana NIBA i Itariki: na Idosiye Uburebure bingana . \n"
+"ya:  ububiko bw'amaderese Cyangwa Buhoro . "
+
+#: optiondialog.cpp:1184
+#, fuzzy
+msgid ""
+"Trust the size and date, but use binary comparison if date does not match "
+"(unsafe)"
+msgstr "i Itariki: ( ) "
+
+#: optiondialog.cpp:1185
+#, fuzzy
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"If the dates are not equal but the sizes are, use binary comparison.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"Idosiye bingana NIBA i Itariki: na Idosiye Uburebure bingana . \n"
+"ya:  ububiko bw'amaderese Cyangwa Buhoro . "
+
+#: optiondialog.cpp:1190
+#, fuzzy
+msgid "Trust the size (unsafe)"
+msgstr "i Ingano: ( ) "
+
+#: optiondialog.cpp:1191
+#, fuzzy
+msgid ""
+"Assume that files are equal if their file lengths are equal.\n"
+"Useful for big directories or slow networks when the date is modified during "
+"download."
+msgstr ""
+"Idosiye bingana NIBA Idosiye bingana . \n"
+"ya:  ububiko bw'amaderese Cyangwa Buhoro Ryari: i Itariki: ni Byahinduwe: "
+"Iyimura . "
+
+#: optiondialog.cpp:1199
+#, fuzzy
+msgid "Synchronize directories"
+msgstr "ububiko bw'amaderese "
+
+#: optiondialog.cpp:1202
+#, fuzzy
+msgid ""
+"Offers to store files in both directories so that\n"
+"both directories are the same afterwards.\n"
+"Works only when comparing two directories without specifying a destination."
+msgstr ""
+"Kuri Idosiye in Byombi ububiko bw'amaderese ububiko bw'amaderese i . \n"
+"Ryari: Kabiri ububiko bw'amaderese A Ishyika: . "
+
+#: optiondialog.cpp:1208
+#, fuzzy
+msgid "White space differences considered equal"
+msgstr "Umwanya Ibinyuranyo bingana "
+
+#: optiondialog.cpp:1211
+#, fuzzy
+msgid ""
+"If files differ only by white space consider them equal.\n"
+"This is only active when full analysis is chosen."
+msgstr ""
+"Idosiye ku Umweru Umwanya bingana . \n"
+"ni Gikora Ryari: Cyuzuye ni . "
+
+#: optiondialog.cpp:1217
+#, fuzzy
+msgid "Copy newer instead of merging (unsafe)"
+msgstr "Bya ( ) "
+
+#: optiondialog.cpp:1220
+#, fuzzy
+msgid ""
+"Don't look inside, just take the newer file.\n"
+"(Use this only if you know what you are doing!)\n"
+"Only effective when comparing two directories."
+msgstr ""
+"Kureba Mo Imbere , i Idosiye . \n"
+"( iyi NIBA ! ) \n"
+"CYUZUYE Ryari: Kabiri ububiko bw'amaderese . "
+
+#: optiondialog.cpp:1225
+#, fuzzy
+msgid "Backup files (.orig)"
+msgstr "Idosiye ( . ) "
+
+#: optiondialog.cpp:1228
+#, fuzzy
+msgid ""
+"If a file would be saved over an old file, then the old file\n"
+"will be renamed with a '.orig' extension instead of being deleted."
+msgstr ""
+"A Idosiye KURI ki/bishaje Idosiye , Hanyuma i ki/bishaje Na: A ' . - "
+"Umugereka: Bya Kyasibwe: %S . "
+
+#: optiondialog.cpp:1301 optiondialog.cpp:1302
+#, fuzzy
+msgid "Regional Settings"
+msgstr "Amagenamiterere y'Akarere"
+
+#: optiondialog.cpp:1402
+#, fuzzy
+msgid "Language (restart required)"
+msgstr "( Ongera utangire Bya ngombwa ) "
+
+#: optiondialog.cpp:1445
+#, fuzzy
+msgid ""
+"Choose the language of the GUI strings or \"Auto\".\n"
+"For a change of language to take place, quit and restart KDiff3."
+msgstr ""
+"i Ururimi: Bya i - Ikurikiranyanyuguti Cyangwa \" \" . \n"
+"A Guhindura... Bya Ururimi: Kuri , &Kuvamo na Ongera utangire . "
+
+#: optiondialog.cpp:1463
+#, fuzzy
+msgid "Use the same encoding for everything:"
+msgstr "i Imisobekere: ya:  : "
+
+#: optiondialog.cpp:1466
+#, fuzzy
+msgid ""
+"Enable this allows to change all encodings by changing the first only.\n"
+"Disable this if different individual settings are needed."
+msgstr ""
+"iyi Kuri Guhindura... Byose ku i Itangira . \n"
+"iyi NIBA Igenamiterere . "
+
+#: optiondialog.cpp:1471
+#, fuzzy
+msgid "Note: Local Encoding is "
+msgstr "icyitonderwa : ni "
+
+#: optiondialog.cpp:1475
+#, fuzzy
+msgid "File Encoding for A:"
+msgstr "Idosiye ya:  A : "
+
+#: optiondialog.cpp:1481
+msgid ""
+"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n"
+"If the file is not Unicode then the selected encoding will be used as "
+"fallback.\n"
+"(Unicode detection depends on the first bytes of a file.)"
+msgstr ""
+
+#: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503
+msgid "Auto Detect Unicode"
+msgstr ""
+
+#: optiondialog.cpp:1490
+#, fuzzy
+msgid "File Encoding for B:"
+msgstr "Idosiye ya:  : "
+
+#: optiondialog.cpp:1499
+#, fuzzy
+msgid "File Encoding for C:"
+msgstr "Idosiye ya:  : "
+
+#: optiondialog.cpp:1508
+#, fuzzy
+msgid "File Encoding for Merge Output and Saving:"
+msgstr "Idosiye ya:  na : "
+
+#: optiondialog.cpp:1512
+#, fuzzy
+msgid "Auto Select"
+msgstr "Gukoporora Ihitamo "
+
+#: optiondialog.cpp:1515
+msgid ""
+"If enabled then the encoding from the input files is used.\n"
+"In ambiguous cases a dialog will ask the user to choose the encoding for "
+"saving."
+msgstr ""
+
+#: optiondialog.cpp:1519
+#, fuzzy
+msgid "File Encoding for Preprocessor Files:"
+msgstr "Idosiye ya:  : "
+
+#: optiondialog.cpp:1530
+#, fuzzy
+msgid "Right To Left Language"
+msgstr "Iburyo ku ibumoso"
+
+#: optiondialog.cpp:1533
+#, fuzzy
+msgid ""
+"Some languages are read from right to left.\n"
+"This setting will change the viewer and editor accordingly."
+msgstr ""
+"Indimi Soma Kuva: Iburyo: Kuri Ibumoso: . \n"
+"Igenamiterere Guhindura... i na Muhinduzi . "
+
+#: optiondialog.cpp:1548
+#, fuzzy
+msgid "Integration"
+msgstr "Igikorwa"
+
+#: optiondialog.cpp:1549
+#, fuzzy
+msgid "Integration Settings"
+msgstr "Amagenamiterere y'Akarere"
+
+#: optiondialog.cpp:1563
+msgid "Command line options to ignore:"
+msgstr ""
+
+#: optiondialog.cpp:1568
+msgid ""
+"List of command line options that should be ignored when KDiff3 is used by "
+"other tools.\n"
+"Several values can be specified if separated via ';'\n"
+"This will suppress the \"Unknown option\" error."
+msgstr ""
+
+#: optiondialog.cpp:1575
+msgid "Quit also via Escape key"
+msgstr ""
+
+#: optiondialog.cpp:1578
+msgid ""
+"Fast method to exit.\n"
+"For those who are used to using the Escape key."
+msgstr ""
+
+#: optiondialog.cpp:1583
+msgid "Integrate with ClearCase"
+msgstr ""
+
+#: optiondialog.cpp:1586
+msgid ""
+"Integrate with Rational ClearCase from IBM.\n"
+"Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n"
+"(Only enabled when ClearCase \"bin\" directory is in the path.)"
+msgstr ""
+
+#: optiondialog.cpp:1592
+msgid "Remove ClearCase Integration"
+msgstr ""
+
+#: optiondialog.cpp:1595
+msgid ""
+"Restore the old \"map\" file from before doing the ClearCase integration."
+msgstr ""
+
+#: optiondialog.cpp:1680
+#, fuzzy
+msgid "Incompatible Font"
+msgstr "%S Itakorana"
+
+#: optiondialog.cpp:1681
+#, fuzzy
+msgid "Continue at Own Risk"
+msgstr "Gukomeza Ku "
+
+#: optiondialog.cpp:1682
+#, fuzzy
+msgid "Select Another Font"
+msgstr "Gutoranya imyandikire"
+
+#: optiondialog.cpp:1717
+#, fuzzy
+msgid "This resets all options. Not only those of the current topic."
+msgstr "Byose Amahitamo . Bya i KIGEZWEHO . "
+
+#: pdiff.cpp:260
+#, fuzzy
+msgid "PreprocessorCmd: "
+msgstr "Munonosora"
+
+#: pdiff.cpp:265
+#, fuzzy
+msgid "The following option(s) you selected might change data:\n"
+msgstr "Ihitamo ( S ) Byahiswemo Guhindura... Ibyatanzwe : \n"
+
+#: pdiff.cpp:266
+#, fuzzy
+msgid ""
+"\n"
+"Most likely this is not wanted during a merge.\n"
+"Do you want to disable these settings or continue with these settings active?"
+msgstr ""
+"\n"
+"iyi ni OYA A Gukomatanya . \n"
+"Kuri Kwangira Igenamiterere Cyangwa Gukomeza Na: Igenamiterere Gikora ? "
+
+#: pdiff.cpp:268
+#, fuzzy
+msgid "Option Unsafe for Merging"
+msgstr "ya:  "
+
+#: pdiff.cpp:269
+msgid "Use These Options During Merge"
+msgstr ""
+
+#: pdiff.cpp:270
+#, fuzzy
+msgid "Disable Unsafe Options"
+msgstr "Anga amahitamo y'ishakisha y'urwego rwo hejuru"
+
+#: pdiff.cpp:300
+#, fuzzy
+msgid "Loading A"
+msgstr "A "
+
+#: pdiff.cpp:304
+#, fuzzy
+msgid "Loading B"
+msgstr "Ifungura"
+
+#: pdiff.cpp:321 pdiff.cpp:347
+#, fuzzy
+msgid "Diff: A <-> B"
+msgstr ": A < - > "
+
+#: pdiff.cpp:327 pdiff.cpp:372
+#, fuzzy
+msgid "Linediff: A <-> B"
+msgstr ": A < - > "
+
+#: pdiff.cpp:338
+#, fuzzy
+msgid "Loading C"
+msgstr "Ifungura"
+
+#: pdiff.cpp:350
+msgid "Diff: B <-> C"
+msgstr ""
+
+#: pdiff.cpp:353
+#, fuzzy
+msgid "Diff: A <-> C"
+msgstr ": A < - > "
+
+#: pdiff.cpp:375
+msgid "Linediff: B <-> C"
+msgstr ""
+
+#: pdiff.cpp:378
+#, fuzzy
+msgid "Linediff: A <-> C"
+msgstr ": A < - > "
+
+#: pdiff.cpp:534
+#, fuzzy
+msgid "All input files contain the same text, but are not binary equal."
+msgstr "Iyinjiza Idosiye i Umwandiko . "
+
+#: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541
+#, fuzzy, kde-format
+msgid "Files %1 and %2 have equal text, but are not binary equal. \n"
+msgstr "A na Nyabibiri bingana . \n"
+
+#: pdiff.cpp:551
+#, fuzzy
+msgid ""
+"Some inputfiles don't seem to be pure textfiles.\n"
+"Note that the KDiff3-merge was not meant for binary data.\n"
+"Continue at your own risk."
+msgstr ""
+"Kuri . \n"
+"icyitonderwa i - Gukomatanya OYA ya:  Nyabibiri Ibyatanzwe . \n"
+"Gukomeza Ku . "
+
+#: pdiff.cpp:566
+#, kde-format
+msgid ""
+"Some input characters could not be converted to valid unicode.\n"
+"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n"
+"Don't save the result if unsure. Continue at your own risk.\n"
+"Affected input files are in %1."
+msgstr ""
+
+#: pdiff.cpp:1080
+msgid "Abort"
+msgstr "Ntibyakunze"
+
+#: pdiff.cpp:1087 pdiff.cpp:1175
+#, fuzzy
+msgid "Opening files..."
+msgstr "Mu Gufungura dosiye"
+
+#: pdiff.cpp:1152 pdiff.cpp:1223
+msgid "File open error"
+msgstr "Ikosa gufungura idosiye"
+
+#: pdiff.cpp:1255
+#, fuzzy
+msgid "Cutting selection..."
+msgstr "Ihitamo ... "
+
+#: pdiff.cpp:1276
+#, fuzzy
+msgid "Copying selection to clipboard..."
+msgstr "Ihitamo Kuri Ububikokoporora ... "
+
+#: pdiff.cpp:1292
+#, fuzzy
+msgid "Inserting clipboard contents..."
+msgstr "Ububikokoporora Ibigize ... "
+
+#: pdiff.cpp:1814
+#, fuzzy
+msgid "Save && Continue"
+msgstr "Kubika & & Gukomeza "
+
+#: pdiff.cpp:1815
+#, fuzzy
+msgid "Continue Without Saving"
+msgstr "Gukomeza "
+
+#: pdiff.cpp:2018
+#, fuzzy
+msgid "Search complete."
+msgstr "Byuzuye . "
+
+#: pdiff.cpp:2018
+#, fuzzy
+msgid "Search Complete"
+msgstr "Igishushanyombonera cy'Ishakisha"
+
+#: pdiff.cpp:2252
+msgid "Nothing is selected in either diff input window."
+msgstr ""
+
+#: pdiff.cpp:2252
+#, fuzzy
+msgid "Error while adding manual diff range"
+msgstr "Ikosa Kurema Ububiko . "
+
+#: kdiff3_shell.cpp:76
+#, fuzzy
+msgid ""
+"Could not initialize the KDiff3 part.\n"
+"This usually happens due to an installation problem. Please read the README-"
+"file in the source package for details."
+msgstr ""
+"OYA Gushaka Inzira %s ! \n"
+"Kuri iyinjizaporogaramu . Soma i - Idosiye in i Inkomoko Porogaramu ya:  "
+"Birambuye . "
+
+#: rc.cpp:1
+msgctxt "NAME OF TRANSLATORS"
+msgid "Your names"
+msgstr ""
+
+#: rc.cpp:2
+msgctxt "EMAIL OF TRANSLATORS"
+msgid "Your emails"
+msgstr ""
+
+#. i18n: file: kdiff3_part.rc:4
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:5
+msgid "&KDiff3"
+msgstr ""
+
+#. i18n: file: kdiff3_part.rc:13
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:8
+#, fuzzy
+msgid "Configure KDiff3"
+msgstr "Kuboneza Gucapa na KDE"
+
+#. i18n: file: kdiff3_part.rc:16
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:11
+msgid "KDiff3"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:106
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:38
+msgid "Main Toolbar"
+msgstr ""
+
+#, fuzzy
+#~ msgid "Directory Merge"
+#~ msgstr "Seriveri y'ububiko:"
+
+#~ msgid ""
+#~ "_: NAME OF TRANSLATORS\n"
+#~ "Your names"
+#~ msgstr ""
+#~ "Viateur MUGENZI, JEAN BAPTISTE NGENDAHAYO, Augustin KIBERWA, Donatien "
+#~ "NSENGIYUMVA"
+
+#~ msgid ""
+#~ "_: EMAIL OF TRANSLATORS\n"
+#~ "Your emails"
+#~ msgstr ""
+#~ "muvia1@yahoo.fr, ngenda_denis@yahoo.co.uk, akiberwa@yahoo.co.uk, "
+#~ "ndonatienuk@yahoo.co.uk"
+
+#, fuzzy
+#~ msgid "Enables/disables the toolbar"
+#~ msgstr "/i Umwanyabikoresho "
+
+#, fuzzy
+#~ msgid "Files A and B are binary equal.\n"
+#~ msgstr "A na Nyabibiri bingana . \n"
+
+#, fuzzy
+#~ msgid "Files A and C are binary equal.\n"
+#~ msgstr "A na Nyabibiri bingana . \n"
+
+#, fuzzy
+#~ msgid "Files A and C have equal text. \n"
+#~ msgstr "A na bingana Umwandiko . \n"
+
+#, fuzzy
+#~ msgid "Files B and C are binary equal.\n"
+#~ msgstr "na Nyabibiri bingana . \n"
+
+#, fuzzy
+#~ msgid "Files B and C have equal text. \n"
+#~ msgstr "na bingana Umwandiko . \n"
+
+#, fuzzy
+#~ msgid "Preserve carriage return"
+#~ msgstr "Garuka "
+
+#, fuzzy
+#~ msgid ""
+#~ "Show carriage return characters '\\r' if they exist.\n"
+#~ "Helps to compare files that were modified under different operating "
+#~ "systems."
+#~ msgstr ""
+#~ "Garuka Inyuguti ' \\r ' NIBA . \n"
+#~ "Kuri Kugereranya # Idosiye Byahinduwe: . "
+
+#, fuzzy
+#~ msgid "Diff and Merge"
+#~ msgstr "Ikinyuranyo/Itandukaniro"
+
+#, fuzzy
+#~ msgid "Save Directory Merge State ..."
+#~ msgstr "Seriveri y'ububiko:"
+
+#, fuzzy
+#~ msgid "Load Directory Merge State ..."
+#~ msgstr "Seriveri y'ububiko:"
+
+#, fuzzy
+#~ msgid "Synchronize Directories"
+#~ msgstr "ububiko bw'amaderese "
+
+#, fuzzy
+#~ msgid "Copy Newer Files Instead of Merging"
+#~ msgstr "Bya ( ) "
+
+#, fuzzy
+#~ msgid "List only deltas"
+#~ msgstr "Ibiri ku rutonde"
+
+#, fuzzy
+#~ msgid "Files and directories without change will not appear in the list."
+#~ msgstr ""
+#~ "na ububiko bw'amaderese Guhindura... OYA Kugaragara in i Urutonde . "
+
+#, fuzzy
+#~ msgid "no selection"
+#~ msgstr "Gukoporora Ihitamo "
+
+#, fuzzy
+#~ msgid "Manually match lines"
+#~ msgstr "Ibishushanyo by'Intoki"
+
+#, fuzzy
+#~ msgid "Has no effect. For compatibility with certain tools."
+#~ msgstr "Oya INGARUKA . Bihuye neza Na: Ibikoresho . "
+
+#, fuzzy
+#~ msgid "For compatibility with certain tools."
+#~ msgstr "Bihuye neza Na: Ibikoresho . "
+
+#, fuzzy
+#~ msgid "Colors in Editor & Diff Output"
+#~ msgstr "in & "
diff --git a/po/sk/CMakeLists.txt b/po/sk/CMakeLists.txt
new file mode 100644 (file)
index 0000000..7727a2e
--- /dev/null
@@ -0,0 +1,2 @@
+file(GLOB _po_files *.po)
+GETTEXT_PROCESS_PO_FILES(sk ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
diff --git a/po/sk/kdiff3.po b/po/sk/kdiff3.po
new file mode 100644 (file)
index 0000000..14fc12f
--- /dev/null
@@ -0,0 +1,2911 @@
+# translation of kdiff3.po to Slovak
+# Richard Fric <Richard.Fric@kdemail.net>, 2006, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2006-09-15 18:02+0200\n"
+"Last-Translator: Richard Fric <Richard.Fric@kdemail.net>\n"
+"Language-Team: Slovak <kde-sk@linux.sk>\n"
+"Language: sk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
+
+#: kreplacements/kreplacements.h:105
+msgid "Continue"
+msgstr ""
+
+#: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158
+#: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512
+msgid "Cancel"
+msgstr ""
+
+#: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631
+msgid "Quit"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339
+msgid "Ok"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715
+msgid "Help"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:185
+msgid "Defaults"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:4
+#. i18n: ectx: Menu (file)
+#: kreplacements/kreplacements.cpp:296 rc.cpp:14
+msgid "&File"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:297
+msgid "&Edit"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:7
+#. i18n: ectx: Menu (directory)
+#: kreplacements/kreplacements.cpp:298 rc.cpp:17
+msgid "&Directory"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:50
+#. i18n: ectx: Menu (movement)
+#: kreplacements/kreplacements.cpp:301 rc.cpp:26
+msgid "&Movement"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:61
+#. i18n: ectx: Menu (diff)
+#: kreplacements/kreplacements.cpp:302 rc.cpp:29
+msgid "D&iffview"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:73
+#. i18n: ectx: Menu (merge)
+#: kreplacements/kreplacements.cpp:303 rc.cpp:32
+msgid "&Merge"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:95
+#. i18n: ectx: Menu (window)
+#: kreplacements/kreplacements.cpp:304 rc.cpp:35
+msgid "&Window"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:305
+msgid "&Settings"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:306
+msgid "&Help"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:353
+msgid "&About"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:369
+msgid "A&uthor"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:383
+msgid "&Thanks To"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:30
+#. i18n: ectx: Menu (dir_current_merge_menu)
+#: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497
+#: rc.cpp:20
+msgid "Current Item Merge Operation"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:38
+#. i18n: ectx: Menu (dir_current_sync_menu)
+#: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498
+#: rc.cpp:23
+msgid "Current Item Sync Operation"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:597
+msgid "Open"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:606
+msgid "Save"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720
+msgid "Save As..."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:623
+msgid "Print..."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:639
+msgid "Cut"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:647
+msgid "Copy"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:655
+msgid "Paste"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:663
+msgid "Select All"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:671
+msgid "Show Toolbar"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:679
+msgid "Show &Status Bar"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:687
+#, kde-format
+msgid "&Configure %1..."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707
+msgid "About"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:722
+msgid "Find"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:730
+msgid "Find Next"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:750
+msgid "Select Font"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676
+msgid ""
+"You selected a variable width font.\n"
+"\n"
+"Because this program doesn't handle variable width fonts\n"
+"correctly, you might experience problems while editing.\n"
+"\n"
+"Do you want to continue or do you want to select another font."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:792
+msgid "Incompatible font."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Continue at my own risk"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Select another font"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1134
+msgid "For more documentation, see the help-menu or the subdirectory doc."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "KDiff3-Usage"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Ignore"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Exit"
+msgstr ""
+
+#: diff.cpp:251
+msgid "Writing clipboard data to temp file failed."
+msgstr ""
+
+#: diff.cpp:255
+msgid "From Clipboard"
+msgstr ""
+
+#: diff.cpp:471
+msgid "Expecting space after closing quotation mark."
+msgstr ""
+
+#: diff.cpp:474
+msgid "Not matching quotation marks."
+msgstr ""
+
+#: diff.cpp:496
+msgid "Unexpected quotation mark within argument."
+msgstr ""
+
+#: diff.cpp:503
+msgid "No program specified."
+msgstr ""
+
+#: diff.cpp:605
+#, kde-format
+msgid ""
+"Preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The preprocessing command will be disabled now."
+msgstr ""
+
+#: diff.cpp:653
+#, kde-format
+msgid ""
+"The line-matching-preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The line-matching-preprocessing command will be disabled now."
+msgstr ""
+
+#: diff.cpp:1776 diff.cpp:1790
+msgid ""
+"Data loss error:\n"
+"If it is reproducible please contact the author.\n"
+msgstr ""
+
+#: diff.cpp:1778 diff.cpp:1792
+msgid "Severe Internal Error"
+msgstr ""
+
+#: directorymergewindow.cpp:136
+msgid "Mix of links and normal files."
+msgstr ""
+
+#: directorymergewindow.cpp:143
+msgid "Link: "
+msgstr ""
+
+#: directorymergewindow.cpp:151
+msgid "Size. "
+msgstr ""
+
+#: directorymergewindow.cpp:164 directorymergewindow.cpp:174
+msgid "Date & Size: "
+msgstr ""
+
+#: directorymergewindow.cpp:184 directorymergewindow.cpp:190
+#, kde-format
+msgid "Creating temp copy of %1 failed."
+msgstr ""
+
+#: directorymergewindow.cpp:201 directorymergewindow.cpp:209
+#, kde-format
+msgid "Opening %1 failed."
+msgstr ""
+
+#: directorymergewindow.cpp:213
+msgid "Comparing file..."
+msgstr ""
+
+#: directorymergewindow.cpp:223 directorymergewindow.cpp:229
+#, kde-format
+msgid "Error reading from %1"
+msgstr ""
+
+#: directorymergewindow.cpp:358
+msgid "Name"
+msgstr ""
+
+#: directorymergewindow.cpp:358
+msgid "Operation"
+msgstr ""
+
+#: directorymergewindow.cpp:358
+msgid "Status"
+msgstr ""
+
+#: directorymergewindow.cpp:359
+msgid "Unsolved"
+msgstr ""
+
+#: directorymergewindow.cpp:359
+msgid "Solved"
+msgstr ""
+
+#: directorymergewindow.cpp:359
+msgid "Nonwhite"
+msgstr ""
+
+#: directorymergewindow.cpp:359
+msgid "White"
+msgstr ""
+
+#: directorymergewindow.cpp:388
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort "
+"the merge and rescan the directory?"
+msgstr ""
+
+#: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655
+#: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823
+msgid "Warning"
+msgstr ""
+
+#: directorymergewindow.cpp:390 directorymergewindow.cpp:2965
+msgid "Rescan"
+msgstr ""
+
+#: directorymergewindow.cpp:391 pdiff.cpp:1081
+msgid "Continue Merging"
+msgstr ""
+
+#: directorymergewindow.cpp:548
+msgid "Opening of directories failed:"
+msgstr ""
+
+#: directorymergewindow.cpp:551
+#, kde-format
+msgid "Dir A \"%1\" does not exist or is not a directory.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:554
+#, kde-format
+msgid "Dir B \"%1\" does not exist or is not a directory.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:557
+#, kde-format
+msgid "Dir C \"%1\" does not exist or is not a directory.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:559
+msgid "Directory Open Error"
+msgstr ""
+
+#: directorymergewindow.cpp:567
+msgid ""
+"The destination directory must not be the same as A or B when three "
+"directories are merged.\n"
+"Check again before continuing."
+msgstr ""
+
+#: directorymergewindow.cpp:569
+msgid "Parameter Warning"
+msgstr ""
+
+#: directorymergewindow.cpp:574
+msgid "Scanning directories..."
+msgstr ""
+
+#: directorymergewindow.cpp:607
+msgid "Reading Directory A"
+msgstr ""
+
+#: directorymergewindow.cpp:629
+msgid "Reading Directory B"
+msgstr ""
+
+#: directorymergewindow.cpp:651
+msgid "Reading Directory C"
+msgstr ""
+
+#: directorymergewindow.cpp:677
+msgid "Some subdirectories were not readable in"
+msgstr ""
+
+#: directorymergewindow.cpp:682
+msgid "Check the permissions of the subdirectories."
+msgstr ""
+
+#: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737
+#: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233
+#: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328
+msgid "Ready."
+msgstr ""
+
+#: directorymergewindow.cpp:735
+msgid "Directory Comparison Status"
+msgstr ""
+
+#: directorymergewindow.cpp:736
+msgid "Number of subdirectories:"
+msgstr ""
+
+#: directorymergewindow.cpp:737
+msgid "Number of equal files:"
+msgstr ""
+
+#: directorymergewindow.cpp:738
+msgid "Number of different files:"
+msgstr ""
+
+#: directorymergewindow.cpp:741
+msgid "Number of manual merges:"
+msgstr ""
+
+#: directorymergewindow.cpp:912
+msgid "This affects all merge operations."
+msgstr ""
+
+#: directorymergewindow.cpp:913
+msgid "Changing All Merge Operations"
+msgstr ""
+
+#: directorymergewindow.cpp:1312
+msgid "Processing "
+msgstr ""
+
+#: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742
+msgid "To do."
+msgstr ""
+
+#: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996
+msgid "Copy A to B"
+msgstr ""
+
+#: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997
+msgid "Copy B to A"
+msgstr ""
+
+#: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998
+msgid "Delete A"
+msgstr ""
+
+#: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999
+msgid "Delete B"
+msgstr ""
+
+#: directorymergewindow.cpp:1814
+msgid "Delete A & B"
+msgstr ""
+
+#: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001
+msgid "Merge to A"
+msgstr ""
+
+#: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002
+msgid "Merge to B"
+msgstr ""
+
+#: directorymergewindow.cpp:1817
+msgid "Merge to A & B"
+msgstr ""
+
+#: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993
+msgid "Delete (if exists)"
+msgstr ""
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+#: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869
+msgid "Merge"
+msgstr ""
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+msgid "Merge (manual)"
+msgstr ""
+
+#: directorymergewindow.cpp:1824
+msgid "Error: Conflicting File Types"
+msgstr ""
+
+#: directorymergewindow.cpp:1825
+msgid "Error: Changed and Deleted"
+msgstr ""
+
+#: directorymergewindow.cpp:1826
+msgid "Error: Dates are equal but files are not."
+msgstr ""
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906
+msgid "This operation is currently not possible."
+msgstr ""
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174
+msgid "Operation Not Possible"
+msgstr ""
+
+#: directorymergewindow.cpp:1945
+msgid ""
+"This should never happen: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"If you know how to reproduce this, please contact the program author."
+msgstr ""
+
+#: directorymergewindow.cpp:1945
+msgid "Program Error"
+msgstr ""
+
+#: directorymergewindow.cpp:1956
+msgid "An error occurred while copying.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025
+#: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105
+#: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123
+#: directorymergewindow.cpp:2374
+msgid "Error"
+msgstr ""
+
+#: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375
+msgid "Merge Error"
+msgstr ""
+
+#: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380
+msgid "Error."
+msgstr ""
+
+#: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272
+#: directorymergewindow.cpp:2312
+msgid "Done."
+msgstr ""
+
+#: directorymergewindow.cpp:1990
+msgid "Not saved."
+msgstr ""
+
+#: directorymergewindow.cpp:2025
+msgid "Unknown merge operation. (This must never happen!)"
+msgstr ""
+
+#: directorymergewindow.cpp:2057
+msgid "Unknown merge operation."
+msgstr ""
+
+#: directorymergewindow.cpp:2072
+msgid ""
+"The merge is about to begin.\n"
+"\n"
+"Choose \"Do it\" if you have read the instructions and know what you are "
+"doing.\n"
+"Choosing \"Simulate it\" will tell you what would happen.\n"
+"\n"
+"Be aware that this program still has beta status and there is NO WARRANTY "
+"whatsoever! Make backups of your vital data!"
+msgstr ""
+
+#: directorymergewindow.cpp:2077
+msgid "Starting Merge"
+msgstr ""
+
+#: directorymergewindow.cpp:2078
+msgid "Do It"
+msgstr ""
+
+#: directorymergewindow.cpp:2079
+msgid "Simulate It"
+msgstr ""
+
+#: directorymergewindow.cpp:2105
+msgid ""
+"The highlighted item has a different type in the different directories. "
+"Select what to do."
+msgstr ""
+
+#: directorymergewindow.cpp:2114
+msgid ""
+"The modification dates of the file are equal but the files are not. Select "
+"what to do."
+msgstr ""
+
+#: directorymergewindow.cpp:2123
+msgid ""
+"The highlighted item was changed in one directory and deleted in the other. "
+"Select what to do."
+msgstr ""
+
+#: directorymergewindow.cpp:2174
+msgid ""
+"This operation is currently not possible because directory merge is "
+"currently running."
+msgstr ""
+
+#: directorymergewindow.cpp:2234
+msgid ""
+"There was an error in the last step.\n"
+"Do you want to continue with the item that caused the error or do you want "
+"to skip this item?"
+msgstr ""
+
+#: directorymergewindow.cpp:2236
+msgid "Continue merge after an error"
+msgstr ""
+
+#: directorymergewindow.cpp:2237
+msgid "Continue With Last Item"
+msgstr ""
+
+#: directorymergewindow.cpp:2238
+msgid "Skip Item"
+msgstr ""
+
+#: directorymergewindow.cpp:2272
+msgid "Skipped."
+msgstr ""
+
+#: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493
+msgid "In progress..."
+msgstr ""
+
+#: directorymergewindow.cpp:2327
+msgid "Merge operation complete."
+msgstr ""
+
+#: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330
+msgid "Merge Complete"
+msgstr ""
+
+#: directorymergewindow.cpp:2340
+msgid ""
+"Simulated merge complete: Check if you agree with the proposed operations."
+msgstr ""
+
+#: directorymergewindow.cpp:2374
+msgid "An error occurred. Press OK to see detailed information.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:2406
+#, kde-format
+msgid "Error: While deleting %1: Creating backup failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2413
+#, kde-format
+msgid "delete directory recursively( %1 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2415
+#, kde-format
+msgid "delete( %1 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2430
+msgid "Error: delete dir operation failed while trying to read the directory."
+msgstr ""
+
+#: directorymergewindow.cpp:2449
+#, kde-format
+msgid "Error: rmdir( %1 ) operation failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2459
+msgid "Error: delete operation failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2485
+#, kde-format
+msgid "manual merge( %1, %2, %3 -> %4)"
+msgstr ""
+
+#: directorymergewindow.cpp:2488
+msgid ""
+"     Note: After a manual merge the user should continue by pressing F7."
+msgstr ""
+
+#: directorymergewindow.cpp:2513
+#, kde-format
+msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2522
+#, kde-format
+msgid "copyLink( %1 -> %2 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2533
+msgid "Error: copyLink failed: Remote links are not yet supported."
+msgstr ""
+
+#: directorymergewindow.cpp:2539
+msgid "Error: copyLink failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2564
+#, kde-format
+msgid "copy( %1 -> %2 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2590
+#, kde-format
+msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination."
+msgstr ""
+
+#: directorymergewindow.cpp:2596
+#, kde-format
+msgid "rename( %1 -> %2 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2605
+msgid "Error: Rename failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2623
+#, kde-format
+msgid "Error during makeDir of %1. Cannot delete existing file."
+msgstr ""
+
+#: directorymergewindow.cpp:2639
+#, kde-format
+msgid "makeDir( %1 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2649
+msgid "Error while creating directory."
+msgstr ""
+
+#: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784
+msgid "Dest"
+msgstr ""
+
+#: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709
+msgid "Dir"
+msgstr ""
+
+#: directorymergewindow.cpp:2678
+msgid "Type"
+msgstr ""
+
+#: directorymergewindow.cpp:2678
+msgid "Size"
+msgstr ""
+
+#: directorymergewindow.cpp:2679
+msgid "Attr"
+msgstr ""
+
+#: directorymergewindow.cpp:2679
+msgid "Last Modification"
+msgstr ""
+
+#: directorymergewindow.cpp:2679
+msgid "Link-Destination"
+msgstr ""
+
+#: directorymergewindow.cpp:2709 difftextwindow.cpp:401
+msgid "File"
+msgstr ""
+
+#: directorymergewindow.cpp:2726
+msgid "not available"
+msgstr ""
+
+#: directorymergewindow.cpp:2746
+msgid "A (Dest): "
+msgstr ""
+
+#: directorymergewindow.cpp:2749
+msgid "A (Base): "
+msgstr ""
+
+#: directorymergewindow.cpp:2755
+msgid "B (Dest): "
+msgstr ""
+
+#: directorymergewindow.cpp:2763
+msgid "C (Dest): "
+msgstr ""
+
+#: directorymergewindow.cpp:2769
+msgid "Dest: "
+msgstr ""
+
+#: directorymergewindow.cpp:2836
+msgid "Save Directory Merge State As..."
+msgstr ""
+
+#: directorymergewindow.cpp:2959
+msgid "Start/Continue Directory Merge"
+msgstr ""
+
+#: directorymergewindow.cpp:2960
+msgid "Run Operation for Current Item"
+msgstr ""
+
+#: directorymergewindow.cpp:2961
+msgid "Compare Selected File"
+msgstr ""
+
+#: directorymergewindow.cpp:2962
+msgid "Merge Current File"
+msgstr ""
+
+#: directorymergewindow.cpp:2962
+msgid ""
+"Merge\n"
+"File"
+msgstr ""
+
+#: directorymergewindow.cpp:2963
+msgid "Fold All Subdirs"
+msgstr ""
+
+#: directorymergewindow.cpp:2964
+msgid "Unfold All Subdirs"
+msgstr ""
+
+#: directorymergewindow.cpp:2968
+msgid "Choose A for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2969
+msgid "Choose B for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2970
+msgid "Choose C for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2971
+msgid "Auto-Choose Operation for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2972
+msgid "No Operation for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2977
+msgid "Show Identical Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2977
+msgid ""
+"Identical\n"
+"Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2978
+msgid "Show Different Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2979
+msgid "Show Files only in A"
+msgstr ""
+
+#: directorymergewindow.cpp:2979
+msgid ""
+"Files\n"
+"only in A"
+msgstr ""
+
+#: directorymergewindow.cpp:2980
+msgid "Show Files only in B"
+msgstr ""
+
+#: directorymergewindow.cpp:2980
+msgid ""
+"Files\n"
+"only in B"
+msgstr ""
+
+#: directorymergewindow.cpp:2981
+msgid "Show Files only in C"
+msgstr ""
+
+#: directorymergewindow.cpp:2981
+msgid ""
+"Files\n"
+"only in C"
+msgstr ""
+
+#: directorymergewindow.cpp:2985
+msgid "Compare Explicitly Selected Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2986
+msgid "Merge Explicitly Selected Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995
+msgid "Do Nothing"
+msgstr ""
+
+#: directorymergewindow.cpp:2989
+msgid "A"
+msgstr ""
+
+#: directorymergewindow.cpp:2990
+msgid "B"
+msgstr ""
+
+#: directorymergewindow.cpp:2991
+msgid "C"
+msgstr ""
+
+#: directorymergewindow.cpp:3000
+msgid "Delete A && B"
+msgstr ""
+
+#: directorymergewindow.cpp:3003
+msgid "Merge to A && B"
+msgstr ""
+
+#: main.cpp:74 main.cpp:76
+msgid "Ignored. (User defined.)"
+msgstr ""
+
+#: main.cpp:162
+msgid "kdiff3"
+msgstr ""
+
+#: main.cpp:164
+msgid "Tool for Comparison and Merge of Files and Directories"
+msgstr ""
+
+#: main.cpp:165
+msgid "(c) 2002-2011 Joachim Eibl"
+msgstr ""
+
+#: main.cpp:172 kdiff3_part.cpp:303
+msgid "Joachim Eibl"
+msgstr ""
+
+#: main.cpp:173
+msgid "Eike Sauer"
+msgstr ""
+
+#: main.cpp:173
+msgid "Bugfixes, Debian package maintainer"
+msgstr ""
+
+#: main.cpp:174
+msgid "Sebastien Fricker"
+msgstr ""
+
+#: main.cpp:174
+msgid "Windows installer"
+msgstr ""
+
+#: main.cpp:175
+msgid "Stephan Binner"
+msgstr ""
+
+#: main.cpp:175
+msgid "i18n-help"
+msgstr ""
+
+#: main.cpp:176
+msgid "Stefan Partheymueller"
+msgstr ""
+
+#: main.cpp:176
+msgid "Clipboard-patch"
+msgstr ""
+
+#: main.cpp:177
+msgid "David Faure"
+msgstr ""
+
+#: main.cpp:177
+msgid "KIO-Help"
+msgstr ""
+
+#: main.cpp:178
+msgid "Bernd Gehrmann"
+msgstr ""
+
+#: main.cpp:178
+msgid "Class CvsIgnoreList from Cervisia"
+msgstr ""
+
+#: main.cpp:179
+msgid "Andre Woebbeking"
+msgstr ""
+
+#: main.cpp:179
+msgid "Class StringMatcher"
+msgstr ""
+
+#: main.cpp:180
+msgid "Michael Denio"
+msgstr ""
+
+#: main.cpp:180
+msgid "Directory Equality-Coloring patch"
+msgstr ""
+
+#: main.cpp:181
+msgid "Manfred Koehler"
+msgstr ""
+
+#: main.cpp:181
+msgid "Fix for slow startup on Windows"
+msgstr ""
+
+#: main.cpp:182
+msgid "Sergey Zorin"
+msgstr ""
+
+#: main.cpp:182
+msgid "Diff Ext for Windows"
+msgstr ""
+
+#: main.cpp:183
+msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+msgstr ""
+
+#: main.cpp:183
+msgid "GNU-Diffutils"
+msgstr ""
+
+#: main.cpp:184
+msgid "Tino Boellsterling, Timothy Mee"
+msgstr ""
+
+#: main.cpp:184
+msgid "Intensive test, use and feedback"
+msgstr ""
+
+#: main.cpp:185
+msgid "Michael Schmidt"
+msgstr ""
+
+#: main.cpp:185
+msgid "Mac support"
+msgstr ""
+
+#: main.cpp:186
+msgid "Valentin Rusu"
+msgstr ""
+
+#: main.cpp:186 main.cpp:187
+msgid "KDE4 porting"
+msgstr ""
+
+#: main.cpp:187
+msgid "Albert Astals Cid"
+msgstr ""
+
+#: main.cpp:188
+msgid "Silvan Scherrer"
+msgstr ""
+
+#: main.cpp:188
+msgid "OS2 port"
+msgstr ""
+
+#: main.cpp:190
+msgid "+ Many thanks to those who reported bugs and contributed ideas!"
+msgstr ""
+
+#: main.cpp:196
+msgid "Merge the input."
+msgstr ""
+
+#: main.cpp:197
+msgid "Explicit base file. For compatibility with certain tools."
+msgstr ""
+
+#: main.cpp:198
+msgid "Output file. Implies -m. E.g.: -o newfile.txt"
+msgstr ""
+
+#: main.cpp:199
+msgid "Output file, again. (For compatibility with certain tools.)"
+msgstr ""
+
+#: main.cpp:200
+msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)"
+msgstr ""
+
+#: main.cpp:201
+msgid "Don't solve conflicts automatically. (For compatibility...)"
+msgstr ""
+
+#: main.cpp:202
+msgid "Visible name replacement for input file 1 (base)."
+msgstr ""
+
+#: main.cpp:203
+msgid "Visible name replacement for input file 2."
+msgstr ""
+
+#: main.cpp:204
+msgid "Visible name replacement for input file 3."
+msgstr ""
+
+#: main.cpp:205
+msgid "Alternative visible name replacement. Supply this once for every input."
+msgstr ""
+
+#: main.cpp:206
+msgid ""
+"Override a config setting. Use once for every setting. E.g.: --cs "
+"\"AutoAdvance=1\""
+msgstr ""
+
+#: main.cpp:207
+msgid "Show list of config settings and current values."
+msgstr ""
+
+#: main.cpp:208
+msgid "Use a different config file."
+msgstr ""
+
+#: main.cpp:211
+msgid "file1 to open (base, if not specified via --base)"
+msgstr ""
+
+#: main.cpp:212
+msgid "file2 to open"
+msgstr ""
+
+#: main.cpp:213
+msgid "file3 to open"
+msgstr ""
+
+#: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976
+#: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002
+#: mergeresultwindow.cpp:1014
+#, kde-format
+msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)"
+msgstr ""
+
+#: mergeresultwindow.cpp:303
+msgid ""
+"The output has been modified.\n"
+"If you continue your changes will be lost."
+msgstr ""
+
+#: mergeresultwindow.cpp:834 pdiff.cpp:532
+msgid "All input files are binary equal."
+msgstr ""
+
+#: mergeresultwindow.cpp:836
+msgid "All input files contain the same text."
+msgstr ""
+
+#: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840
+#: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540
+#, kde-format
+msgid "Files %1 and %2 are binary equal.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841
+#: mergeresultwindow.cpp:843
+#, kde-format
+msgid "Files %1 and %2 have equal text.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:849
+msgid "Total number of conflicts: "
+msgstr ""
+
+#: mergeresultwindow.cpp:850
+msgid ""
+"\n"
+"Nr of automatically solved conflicts: "
+msgstr ""
+
+#: mergeresultwindow.cpp:851
+msgid ""
+"\n"
+"Nr of unsolved conflicts: "
+msgstr ""
+
+#: mergeresultwindow.cpp:853
+msgid "Conflicts"
+msgstr ""
+
+#: mergeresultwindow.cpp:1728
+msgid "<No src line>"
+msgstr ""
+
+#: mergeresultwindow.cpp:1736
+msgid "<Merge Conflict (Whitespace only)>"
+msgstr ""
+
+#: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517
+msgid "<Merge Conflict>"
+msgstr ""
+
+#: mergeresultwindow.cpp:2725
+msgid ""
+"Not all conflicts are solved yet.\n"
+"File not saved.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736
+msgid "Conflicts Left"
+msgstr ""
+
+#: mergeresultwindow.cpp:2734
+msgid ""
+"There is a line end style conflict. Please choose the line end style "
+"manually.\n"
+"File not saved.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:2748
+msgid ""
+"\n"
+"\n"
+"Creating backup failed. File not saved."
+msgstr ""
+
+#: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792
+msgid "File Save Error"
+msgstr ""
+
+#: mergeresultwindow.cpp:2792
+msgid "Error while writing."
+msgstr ""
+
+#: mergeresultwindow.cpp:3122
+msgid "Output"
+msgstr ""
+
+#: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314
+msgid "[Modified]"
+msgstr ""
+
+#: mergeresultwindow.cpp:3141
+msgid "Encoding for saving"
+msgstr ""
+
+#: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737
+#: optiondialog.cpp:762
+msgid "Line end style:"
+msgstr ""
+
+#: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767
+msgid "Unix"
+msgstr ""
+
+#: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737
+msgid "DOS"
+msgstr ""
+
+#: mergeresultwindow.cpp:3229
+msgid "Conflict"
+msgstr ""
+
+#: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263
+#: mergeresultwindow.cpp:3265
+msgid "Codec from"
+msgstr ""
+
+#: kdiff3_part.cpp:157 kdiff3_part.cpp:234
+msgid "Couldn't find files for comparison."
+msgstr ""
+
+#: kdiff3_part.cpp:302
+msgid "KDiff3Part"
+msgstr ""
+
+#: fileaccess.cpp:612
+msgid ""
+"While trying to make a backup, deleting an older backup failed. \n"
+"Filename: "
+msgstr ""
+
+#: fileaccess.cpp:619
+msgid ""
+"While trying to make a backup, renaming failed. \n"
+"Filenames: "
+msgstr ""
+
+#: fileaccess.cpp:643
+#, kde-format
+msgid "Getting file status: %1"
+msgstr ""
+
+#: fileaccess.cpp:686
+#, kde-format
+msgid "Reading file: %1"
+msgstr ""
+
+#: fileaccess.cpp:723
+#, kde-format
+msgid "Writing file: %1"
+msgstr ""
+
+#: fileaccess.cpp:751
+msgid "Out of memory"
+msgstr ""
+
+#: fileaccess.cpp:786
+#, kde-format
+msgid "Making directory: %1"
+msgstr ""
+
+#: fileaccess.cpp:806
+#, kde-format
+msgid "Removing directory: %1"
+msgstr ""
+
+#: fileaccess.cpp:821
+#, kde-format
+msgid "Removing file: %1"
+msgstr ""
+
+#: fileaccess.cpp:837
+#, kde-format
+msgid "Creating symbolic link: %1 -> %2"
+msgstr ""
+
+#: fileaccess.cpp:864
+#, kde-format
+msgid "Renaming file: %1 -> %2"
+msgstr ""
+
+#: fileaccess.cpp:897
+#, kde-format
+msgid "Copying file: %1 -> %2"
+msgstr ""
+
+#: fileaccess.cpp:911
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for reading failed. Filename: "
+"%1"
+msgstr ""
+
+#: fileaccess.cpp:917
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for writing failed. Filename: "
+"%1"
+msgstr ""
+
+#: fileaccess.cpp:932
+#, kde-format
+msgid "Error during file copy operation: Reading failed. Filename: %1"
+msgstr ""
+
+#: fileaccess.cpp:941
+#, kde-format
+msgid "Error during file copy operation: Writing failed. Filename: %1"
+msgstr ""
+
+#: fileaccess.cpp:1231
+msgid "Reading directory: "
+msgstr ""
+
+#: fileaccess.cpp:1355
+#, kde-format
+msgid "Listing directory: %1"
+msgstr ""
+
+#: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396
+msgid "&Cancel"
+msgstr ""
+
+#: difftextwindow.cpp:403
+msgid "Line"
+msgstr ""
+
+#: difftextwindow.cpp:405
+msgid "Line not available"
+msgstr ""
+
+#: difftextwindow.cpp:1703 difftextwindow.cpp:1736
+msgid "Encoding:"
+msgstr ""
+
+#: difftextwindow.cpp:1759 kdiff3.cpp:831
+msgid "Top line"
+msgstr ""
+
+#: difftextwindow.cpp:1769
+msgid "End"
+msgstr ""
+
+#: kdiff3.cpp:169
+msgid "Current Configuration:"
+msgstr ""
+
+#: kdiff3.cpp:174
+msgid "Config Option Error:"
+msgstr ""
+
+#: kdiff3.cpp:219
+msgid "Option --auto used, but no output file specified."
+msgstr ""
+
+#: kdiff3.cpp:369
+msgid "Option --auto ignored for directory comparison."
+msgstr ""
+
+#: kdiff3.cpp:405
+msgid "Saving failed."
+msgstr ""
+
+#: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214
+msgid "Opening of these files failed:"
+msgstr ""
+
+#: kdiff3.cpp:449
+msgid "File Open Error"
+msgstr ""
+
+#: kdiff3.cpp:477
+msgid "Opens documents for comparison..."
+msgstr ""
+
+#: kdiff3.cpp:479
+msgid "Reload"
+msgstr ""
+
+#: kdiff3.cpp:482
+msgid "Saves the merge result. All conflicts must be solved!"
+msgstr ""
+
+#: kdiff3.cpp:484
+msgid "Saves the current document as..."
+msgstr ""
+
+#: kdiff3.cpp:487
+msgid "Print the differences"
+msgstr ""
+
+#: kdiff3.cpp:490
+msgid "Quits the application"
+msgstr ""
+
+#: kdiff3.cpp:492
+msgid "Cuts the selected section and puts it to the clipboard"
+msgstr ""
+
+#: kdiff3.cpp:494
+msgid "Copies the selected section to the clipboard"
+msgstr ""
+
+#: kdiff3.cpp:496
+msgid "Pastes the clipboard contents to current position"
+msgstr ""
+
+#: kdiff3.cpp:498
+msgid "Select everything in current window"
+msgstr ""
+
+#: kdiff3.cpp:500
+msgid "Search for a string"
+msgstr ""
+
+#: kdiff3.cpp:502
+msgid "Search again for the string"
+msgstr ""
+
+#: kdiff3.cpp:507
+msgid "Enables/disables the statusbar"
+msgstr ""
+
+#: kdiff3.cpp:511
+msgid "Configure KDiff3..."
+msgstr ""
+
+#: kdiff3.cpp:532
+msgid "Go to Current Delta"
+msgstr ""
+
+#: kdiff3.cpp:532
+msgid ""
+"Current\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:534
+msgid "Go to First Delta"
+msgstr ""
+
+#: kdiff3.cpp:534
+msgid ""
+"First\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:536
+msgid "Go to Last Delta"
+msgstr ""
+
+#: kdiff3.cpp:536
+msgid ""
+"Last\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:538
+msgid "(Skips white space differences when \"Show White Space\" is disabled.)"
+msgstr ""
+
+#: kdiff3.cpp:539
+msgid ""
+"(Does not skip white space differences even when \"Show White Space\" is "
+"disabled.)"
+msgstr ""
+
+#: kdiff3.cpp:540
+msgid "Go to Previous Delta"
+msgstr ""
+
+#: kdiff3.cpp:540
+msgid ""
+"Prev\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:542
+msgid "Go to Next Delta"
+msgstr ""
+
+#: kdiff3.cpp:542
+msgid ""
+"Next\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:544
+msgid "Go to Previous Conflict"
+msgstr ""
+
+#: kdiff3.cpp:544
+msgid ""
+"Prev\n"
+"Conflict"
+msgstr ""
+
+#: kdiff3.cpp:546
+msgid "Go to Next Conflict"
+msgstr ""
+
+#: kdiff3.cpp:546
+msgid ""
+"Next\n"
+"Conflict"
+msgstr ""
+
+#: kdiff3.cpp:548
+msgid "Go to Previous Unsolved Conflict"
+msgstr ""
+
+#: kdiff3.cpp:548
+msgid ""
+"Prev\n"
+"Unsolved"
+msgstr ""
+
+#: kdiff3.cpp:550
+msgid "Go to Next Unsolved Conflict"
+msgstr ""
+
+#: kdiff3.cpp:550
+msgid ""
+"Next\n"
+"Unsolved"
+msgstr ""
+
+#: kdiff3.cpp:552
+msgid "Select Line(s) From A"
+msgstr ""
+
+#: kdiff3.cpp:552
+msgid ""
+"Choose\n"
+"A"
+msgstr ""
+
+#: kdiff3.cpp:553
+msgid "Select Line(s) From B"
+msgstr ""
+
+#: kdiff3.cpp:553
+msgid ""
+"Choose\n"
+"B"
+msgstr ""
+
+#: kdiff3.cpp:554
+msgid "Select Line(s) From C"
+msgstr ""
+
+#: kdiff3.cpp:554
+msgid ""
+"Choose\n"
+"C"
+msgstr ""
+
+#: kdiff3.cpp:555
+msgid "Automatically Go to Next Unsolved Conflict After Source Selection"
+msgstr ""
+
+#: kdiff3.cpp:555
+msgid ""
+"Auto\n"
+"Next"
+msgstr ""
+
+#: kdiff3.cpp:557
+msgid "Show Space && Tabulator Characters for Differences"
+msgstr ""
+
+#: kdiff3.cpp:557
+msgid ""
+"White\n"
+"Characters"
+msgstr ""
+
+#: kdiff3.cpp:558
+msgid "Show White Space"
+msgstr ""
+
+#: kdiff3.cpp:558
+msgid ""
+"White\n"
+"Deltas"
+msgstr ""
+
+#: kdiff3.cpp:560
+msgid "Show Line Numbers"
+msgstr ""
+
+#: kdiff3.cpp:560
+msgid ""
+"Line\n"
+"Numbers"
+msgstr ""
+
+#: kdiff3.cpp:561
+msgid "Choose A Everywhere"
+msgstr ""
+
+#: kdiff3.cpp:562
+msgid "Choose B Everywhere"
+msgstr ""
+
+#: kdiff3.cpp:563
+msgid "Choose C Everywhere"
+msgstr ""
+
+#: kdiff3.cpp:564
+msgid "Choose A for All Unsolved Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:565
+msgid "Choose B for All Unsolved Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:566
+msgid "Choose C for All Unsolved Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:567
+msgid "Choose A for All Unsolved Whitespace Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:568
+msgid "Choose B for All Unsolved Whitespace Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:569
+msgid "Choose C for All Unsolved Whitespace Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:570
+msgid "Automatically Solve Simple Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:571
+msgid "Set Deltas to Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:572
+msgid "Run Regular Expression Auto Merge"
+msgstr ""
+
+#: kdiff3.cpp:573
+msgid "Automatically Solve History Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:574
+msgid "Split Diff At Selection"
+msgstr ""
+
+#: kdiff3.cpp:575
+msgid "Join Selected Diffs"
+msgstr ""
+
+#: kdiff3.cpp:577
+msgid "Show Window A"
+msgstr ""
+
+#: kdiff3.cpp:578
+msgid "Show Window B"
+msgstr ""
+
+#: kdiff3.cpp:579
+msgid "Show Window C"
+msgstr ""
+
+#: kdiff3.cpp:580 kdiff3.cpp:591
+msgid "Focus Next Window"
+msgstr ""
+
+#: kdiff3.cpp:582
+msgid "Normal Overview"
+msgstr ""
+
+#: kdiff3.cpp:583
+msgid "A vs. B Overview"
+msgstr ""
+
+#: kdiff3.cpp:584
+msgid "A vs. C Overview"
+msgstr ""
+
+#: kdiff3.cpp:585
+msgid "B vs. C Overview"
+msgstr ""
+
+#: kdiff3.cpp:586
+msgid "Word Wrap Diff Windows"
+msgstr ""
+
+#: kdiff3.cpp:587
+msgid "Add Manual Diff Alignment"
+msgstr ""
+
+#: kdiff3.cpp:588
+msgid "Clear All Manual Diff Alignments"
+msgstr ""
+
+#: kdiff3.cpp:593
+msgid "Focus Prev Window"
+msgstr ""
+
+#: kdiff3.cpp:594
+msgid "Toggle Split Orientation"
+msgstr ""
+
+#: kdiff3.cpp:596
+msgid "Dir && Text Split Screen View"
+msgstr ""
+
+#: kdiff3.cpp:598
+msgid "Toggle Between Dir && Text View"
+msgstr ""
+
+#: kdiff3.cpp:654 pdiff.cpp:1812
+msgid "The merge result hasn't been saved."
+msgstr ""
+
+#: kdiff3.cpp:656
+msgid "Save && Quit"
+msgstr ""
+
+#: kdiff3.cpp:657
+msgid "Quit Without Saving"
+msgstr ""
+
+#: kdiff3.cpp:665 pdiff.cpp:1823
+msgid "Saving the merge result failed."
+msgstr ""
+
+#: kdiff3.cpp:676 pdiff.cpp:1078
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort?"
+msgstr ""
+
+#: kdiff3.cpp:701
+msgid "Saving file..."
+msgstr ""
+
+#: kdiff3.cpp:718
+msgid "Saving file with a new filename..."
+msgstr ""
+
+#: kdiff3.cpp:781
+msgid "Printing not implemented."
+msgstr ""
+
+#: kdiff3.cpp:815
+msgid "Printing..."
+msgstr ""
+
+#: kdiff3.cpp:956
+msgid "Selection"
+msgstr ""
+
+#: kdiff3.cpp:982
+msgid "Printing completed."
+msgstr ""
+
+#: kdiff3.cpp:986
+msgid "Printing aborted."
+msgstr ""
+
+#: kdiff3.cpp:993
+msgid "Exiting..."
+msgstr ""
+
+#: kdiff3.cpp:1006
+msgid "Toggling toolbar..."
+msgstr ""
+
+#: kdiff3.cpp:1027
+msgid "Toggle the statusbar..."
+msgstr ""
+
+#: smalldialogs.cpp:58
+msgid "A (Base):"
+msgstr ""
+
+#: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99
+#: smalldialogs.cpp:142
+msgid "File..."
+msgstr ""
+
+#: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101
+#: smalldialogs.cpp:144
+msgid "Dir..."
+msgstr ""
+
+#: smalldialogs.cpp:93
+msgid "C (Optional):"
+msgstr ""
+
+#: smalldialogs.cpp:116
+msgid "Swap/Copy Names ..."
+msgstr ""
+
+#: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123
+#, kde-format
+msgid "Swap %1<->%2"
+msgstr ""
+
+#: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126
+#, kde-format
+msgid "Copy %1->Output"
+msgstr ""
+
+#: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129
+#, kde-format
+msgid "Swap %1<->Output"
+msgstr ""
+
+#: smalldialogs.cpp:136
+msgid "Output (optional):"
+msgstr ""
+
+#: smalldialogs.cpp:168
+msgid "Configure..."
+msgstr ""
+
+#: smalldialogs.cpp:174
+msgid "&OK"
+msgstr ""
+
+#: smalldialogs.cpp:362
+msgid "Search text:"
+msgstr ""
+
+#: smalldialogs.cpp:369
+msgid "Case sensitive"
+msgstr ""
+
+#: smalldialogs.cpp:372
+msgid "Search A"
+msgstr ""
+
+#: smalldialogs.cpp:377
+msgid "Search B"
+msgstr ""
+
+#: smalldialogs.cpp:382
+msgid "Search C"
+msgstr ""
+
+#: smalldialogs.cpp:387
+msgid "Search output"
+msgstr ""
+
+#: smalldialogs.cpp:392
+msgid "&Search"
+msgstr ""
+
+#: smalldialogs.cpp:409
+msgid "Regular Expression Tester"
+msgstr ""
+
+#: smalldialogs.cpp:414 optiondialog.cpp:936
+msgid "Auto merge regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:422
+msgid "Example auto merge line:"
+msgstr ""
+
+#: smalldialogs.cpp:424
+msgid "To test auto merge, copy a line as used in your files."
+msgstr ""
+
+#: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494
+msgid "Match result:"
+msgstr ""
+
+#: smalldialogs.cpp:441 optiondialog.cpp:962
+msgid "History start regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:449
+msgid "Example history start line (with leading comment):"
+msgstr ""
+
+#: smalldialogs.cpp:451
+msgid ""
+"Copy a history start line as used in your files,\n"
+"including the leading comment."
+msgstr ""
+
+#: smalldialogs.cpp:469 optiondialog.cpp:972
+msgid "History entry start regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:477
+msgid "History sort key order:"
+msgstr ""
+
+#: smalldialogs.cpp:485
+msgid "Example history entry start line (without leading comment):"
+msgstr ""
+
+#: smalldialogs.cpp:487
+msgid ""
+"Copy a history entry start line as used in your files,\n"
+"but omit the leading comment."
+msgstr ""
+
+#: smalldialogs.cpp:501
+msgid "Sort key result:"
+msgstr ""
+
+#: smalldialogs.cpp:508
+msgid "OK"
+msgstr ""
+
+#: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583
+msgid "Match success."
+msgstr ""
+
+#: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589
+msgid "Match failed."
+msgstr ""
+
+#: smalldialogs.cpp:574
+msgid "Opening and closing parentheses do not match in regular expression."
+msgstr ""
+
+#: optiondialog.cpp:367
+msgid "Unicode, 8 bit"
+msgstr ""
+
+#: optiondialog.cpp:368
+msgid "Unicode"
+msgstr ""
+
+#: optiondialog.cpp:369
+msgid "Latin1"
+msgstr ""
+
+#: optiondialog.cpp:388
+msgid "Change this if non-ASCII characters are not displayed correctly."
+msgstr ""
+
+#: optiondialog.cpp:465
+msgid "Configure"
+msgstr ""
+
+#: optiondialog.cpp:531
+msgid "Font"
+msgstr ""
+
+#: optiondialog.cpp:532
+msgid "Editor & Diff Output Font"
+msgstr ""
+
+#: optiondialog.cpp:556
+msgid "Italic font for deltas"
+msgstr ""
+
+#: optiondialog.cpp:559
+msgid ""
+"Selects the italic version of the font for differences.\n"
+"If the font doesn't support italic characters, then this does nothing."
+msgstr ""
+
+#: optiondialog.cpp:568
+msgid "Color"
+msgstr ""
+
+#: optiondialog.cpp:569
+msgid "Colors Settings"
+msgstr ""
+
+#: optiondialog.cpp:588
+msgid "Editor and Diff Views:"
+msgstr ""
+
+#: optiondialog.cpp:596
+msgid "Foreground color:"
+msgstr ""
+
+#: optiondialog.cpp:603
+msgid "Background color:"
+msgstr ""
+
+#: optiondialog.cpp:612
+msgid "Diff background color:"
+msgstr ""
+
+#: optiondialog.cpp:620
+msgid "Color A:"
+msgstr ""
+
+#: optiondialog.cpp:628
+msgid "Color B:"
+msgstr ""
+
+#: optiondialog.cpp:636
+msgid "Color C:"
+msgstr ""
+
+#: optiondialog.cpp:643
+msgid "Conflict color:"
+msgstr ""
+
+#: optiondialog.cpp:651
+msgid "Current range background color:"
+msgstr ""
+
+#: optiondialog.cpp:659
+msgid "Current range diff background color:"
+msgstr ""
+
+#: optiondialog.cpp:666
+msgid "Color for manually aligned difference ranges:"
+msgstr ""
+
+#: optiondialog.cpp:672
+msgid "Directory Comparison View:"
+msgstr ""
+
+#: optiondialog.cpp:678
+msgid "Newest file color:"
+msgstr ""
+
+#: optiondialog.cpp:682
+msgid ""
+"Changing this color will only be effective when starting the next directory "
+"comparison."
+msgstr ""
+
+#: optiondialog.cpp:687
+msgid "Oldest file color:"
+msgstr ""
+
+#: optiondialog.cpp:695
+msgid "Middle age file color:"
+msgstr ""
+
+#: optiondialog.cpp:703
+msgid "Color for missing files:"
+msgstr ""
+
+#: optiondialog.cpp:717
+msgid "Editor"
+msgstr ""
+
+#: optiondialog.cpp:718
+msgid "Editor Behavior"
+msgstr ""
+
+#: optiondialog.cpp:732
+msgid "Tab inserts spaces"
+msgstr ""
+
+#: optiondialog.cpp:735
+msgid ""
+"On: Pressing tab generates the appropriate number of spaces.\n"
+"Off: A tab character will be inserted."
+msgstr ""
+
+#: optiondialog.cpp:741
+msgid "Tab size:"
+msgstr ""
+
+#: optiondialog.cpp:747
+msgid "Auto indentation"
+msgstr ""
+
+#: optiondialog.cpp:750
+msgid "On: The indentation of the previous line is used for a new line.\n"
+msgstr ""
+
+#: optiondialog.cpp:754
+msgid "Auto copy selection"
+msgstr ""
+
+#: optiondialog.cpp:757
+msgid ""
+"On: Any selection is immediately written to the clipboard.\n"
+"Off: You must explicitely copy e.g. via Ctrl-C."
+msgstr ""
+
+#: optiondialog.cpp:768
+msgid "Dos/Windows"
+msgstr ""
+
+#: optiondialog.cpp:769
+msgid "Autodetect"
+msgstr ""
+
+#: optiondialog.cpp:772
+msgid ""
+"Sets the line endings for when an edited file is saved.\n"
+"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A"
+msgstr ""
+
+#: optiondialog.cpp:784
+msgid "Diff"
+msgstr ""
+
+#: optiondialog.cpp:785
+msgid "Diff Settings"
+msgstr ""
+
+#: optiondialog.cpp:809
+msgid "Treat as white space."
+msgstr ""
+
+#: optiondialog.cpp:811
+msgid "Ignore numbers"
+msgstr ""
+
+#: optiondialog.cpp:814
+msgid ""
+"Ignore number characters during line matching phase. (Similar to Ignore "
+"white space.)\n"
+"Might help to compare files with numeric data."
+msgstr ""
+
+#: optiondialog.cpp:819
+msgid "Ignore C/C++ comments"
+msgstr ""
+
+#: optiondialog.cpp:821
+msgid "Treat C/C++ comments like white space."
+msgstr ""
+
+#: optiondialog.cpp:825
+msgid "Ignore case"
+msgstr ""
+
+#: optiondialog.cpp:828
+msgid "Treat case differences like white space changes. ('a'<=>'A')"
+msgstr ""
+
+#: optiondialog.cpp:832
+msgid "Preprocessor command:"
+msgstr ""
+
+#: optiondialog.cpp:836
+msgid "User defined pre-processing. (See the docs for details.)"
+msgstr ""
+
+#: optiondialog.cpp:839
+msgid "Line-matching preprocessor command:"
+msgstr ""
+
+#: optiondialog.cpp:843
+msgid ""
+"This pre-processor is only used during line matching.\n"
+"(See the docs for details.)"
+msgstr ""
+
+#: optiondialog.cpp:846
+msgid "Try hard (slower)"
+msgstr ""
+
+#: optiondialog.cpp:849
+msgid ""
+"Enables the --minimal option for the external diff.\n"
+"The analysis of big files will be much slower."
+msgstr ""
+
+#: optiondialog.cpp:854
+msgid "Align B and C for 3 input files"
+msgstr ""
+
+#: optiondialog.cpp:857
+msgid ""
+"Try to align B and C when comparing or merging three input files.\n"
+"Not recommended for merging because merge might get more complicated.\n"
+"(Default is off.)"
+msgstr ""
+
+#: optiondialog.cpp:870
+msgid "Merge Settings"
+msgstr ""
+
+#: optiondialog.cpp:885
+msgid "Auto advance delay (ms):"
+msgstr ""
+
+#: optiondialog.cpp:890
+msgid ""
+"When in Auto-Advance mode the result of the current selection is shown \n"
+"for the specified time, before jumping to the next conflict. Range: 0-2000 ms"
+msgstr ""
+
+#: optiondialog.cpp:895
+msgid "Show info dialogs"
+msgstr ""
+
+#: optiondialog.cpp:897
+msgid "Show a dialog with information about the number of conflicts."
+msgstr ""
+
+#: optiondialog.cpp:900
+msgid "White space 2-file merge default:"
+msgstr ""
+
+#: optiondialog.cpp:904 optiondialog.cpp:917
+msgid "Manual Choice"
+msgstr ""
+
+#: optiondialog.cpp:908 optiondialog.cpp:922
+msgid ""
+"Allow the merge algorithm to automatically select an input for white-space-"
+"only changes."
+msgstr ""
+
+#: optiondialog.cpp:913
+msgid "White space 3-file merge default:"
+msgstr ""
+
+#: optiondialog.cpp:927
+msgid "Automatic Merge Regular Expression"
+msgstr ""
+
+#: optiondialog.cpp:940
+msgid ""
+"Regular expression for lines where KDiff3 should automatically choose one "
+"source.\n"
+"When a line with a conflict matches the regular expression then\n"
+"- if available - C, otherwise B will be chosen."
+msgstr ""
+
+#: optiondialog.cpp:946
+msgid "Run regular expression auto merge on merge start"
+msgstr ""
+
+#: optiondialog.cpp:948
+msgid ""
+"Run the merge for auto merge regular expressions\n"
+"immediately when a merge starts.\n"
+msgstr ""
+
+#: optiondialog.cpp:953
+msgid "Version Control History Merging"
+msgstr ""
+
+#: optiondialog.cpp:966
+msgid ""
+"Regular expression for the start of the version control history entry.\n"
+"Usually this line contains the \"$Log$\" keyword.\n"
+"Default value: \".*\\$Log.*\\$.*\""
+msgstr ""
+
+#: optiondialog.cpp:984
+msgid ""
+"A version control history entry consists of several lines.\n"
+"Specify the regular expression to detect the first line (without the leading "
+"comment).\n"
+"Use parentheses to group the keys you want to use for sorting.\n"
+"If left empty, then KDiff3 assumes that empty lines separate history "
+"entries.\n"
+"See the documentation for details."
+msgstr ""
+
+#: optiondialog.cpp:992
+msgid "History merge sorting"
+msgstr ""
+
+#: optiondialog.cpp:994
+msgid "Sort version control history by a key."
+msgstr ""
+
+#: optiondialog.cpp:1004
+msgid "History entry start sort key order:"
+msgstr ""
+
+#: optiondialog.cpp:1008
+msgid ""
+"Each pair of parentheses used in the regular expression for the history "
+"start entry\n"
+"groups a key that can be used for sorting.\n"
+"Specify the list of keys (that are numbered in order of occurrence\n"
+"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n"
+"If left empty, then no sorting will be done.\n"
+"See the documentation for details."
+msgstr ""
+
+#: optiondialog.cpp:1019
+msgid "Merge version control history on merge start"
+msgstr ""
+
+#: optiondialog.cpp:1021
+msgid "Run version control history automerge on merge start."
+msgstr ""
+
+#: optiondialog.cpp:1025
+msgid "Max number of history entries:"
+msgstr ""
+
+#: optiondialog.cpp:1028
+msgid "Cut off after specified number. Use -1 for infinite number of entries."
+msgstr ""
+
+#: optiondialog.cpp:1032
+msgid "Test your regular expressions"
+msgstr ""
+
+#: optiondialog.cpp:1037
+msgid "Irrelevant merge command:"
+msgstr ""
+
+#: optiondialog.cpp:1041
+msgid ""
+"If specified this script is run after automerge\n"
+"when no other relevant changes were detected.\n"
+"Called with the parameters: filename1 filename2 filename3"
+msgstr ""
+
+#: optiondialog.cpp:1047
+msgid "Auto save and quit on merge without conflicts"
+msgstr ""
+
+#: optiondialog.cpp:1050
+msgid ""
+"If KDiff3 was started for a file-merge from the command line and all\n"
+"conflicts are solvable without user interaction then automatically save and "
+"quit.\n"
+"(Similar to command line option \"--auto\".)"
+msgstr ""
+
+#: optiondialog.cpp:1061 optiondialog.cpp:1062
+msgid "Directory"
+msgstr ""
+
+#: optiondialog.cpp:1075
+msgid "Recursive directories"
+msgstr ""
+
+#: optiondialog.cpp:1077
+msgid "Whether to analyze subdirectories or not."
+msgstr ""
+
+#: optiondialog.cpp:1079
+msgid "File pattern(s):"
+msgstr ""
+
+#: optiondialog.cpp:1084
+msgid ""
+"Pattern(s) of files to be analyzed. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1090
+msgid "File-anti-pattern(s):"
+msgstr ""
+
+#: optiondialog.cpp:1095
+msgid ""
+"Pattern(s) of files to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1101
+msgid "Dir-anti-pattern(s):"
+msgstr ""
+
+#: optiondialog.cpp:1106
+msgid ""
+"Pattern(s) of directories to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1112
+msgid "Use .cvsignore"
+msgstr ""
+
+#: optiondialog.cpp:1115
+msgid ""
+"Extends the antipattern to anything that would be ignored by CVS.\n"
+"Via local \".cvsignore\" files this can be directory specific."
+msgstr ""
+
+#: optiondialog.cpp:1120
+msgid "Find hidden files and directories"
+msgstr ""
+
+#: optiondialog.cpp:1123
+msgid "Finds files and directories with the hidden attribute."
+msgstr ""
+
+#: optiondialog.cpp:1125
+msgid "Finds files and directories starting with '.'."
+msgstr ""
+
+#: optiondialog.cpp:1129
+msgid "Follow file links"
+msgstr ""
+
+#: optiondialog.cpp:1132
+msgid ""
+"On: Compare the file the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+
+#: optiondialog.cpp:1137
+msgid "Follow directory links"
+msgstr ""
+
+#: optiondialog.cpp:1140
+msgid ""
+"On: Compare the directory the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+
+#: optiondialog.cpp:1156
+msgid "Case sensitive filename comparison"
+msgstr ""
+
+#: optiondialog.cpp:1159
+msgid ""
+"The directory comparison will compare files or directories when their names "
+"match.\n"
+"Set this option if the case of the names must match. (Default for Windows is "
+"off, otherwise on.)"
+msgstr ""
+
+#: optiondialog.cpp:1163
+msgid "File Comparison Mode"
+msgstr ""
+
+#: optiondialog.cpp:1169
+msgid "Binary comparison"
+msgstr ""
+
+#: optiondialog.cpp:1170
+msgid "Binary comparison of each file. (Default)"
+msgstr ""
+
+#: optiondialog.cpp:1173
+msgid "Full analysis"
+msgstr ""
+
+#: optiondialog.cpp:1174
+msgid ""
+"Do a full analysis and show statistics information in extra columns.\n"
+"(Slower than a binary comparison, much slower for binary files.)"
+msgstr ""
+
+#: optiondialog.cpp:1178
+msgid "Trust the size and modification date (unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1179
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"Files with equal contents but different modification dates will appear as "
+"different.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+
+#: optiondialog.cpp:1184
+msgid ""
+"Trust the size and date, but use binary comparison if date does not match "
+"(unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1185
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"If the dates are not equal but the sizes are, use binary comparison.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+
+#: optiondialog.cpp:1190
+msgid "Trust the size (unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1191
+msgid ""
+"Assume that files are equal if their file lengths are equal.\n"
+"Useful for big directories or slow networks when the date is modified during "
+"download."
+msgstr ""
+
+#: optiondialog.cpp:1199
+msgid "Synchronize directories"
+msgstr ""
+
+#: optiondialog.cpp:1202
+msgid ""
+"Offers to store files in both directories so that\n"
+"both directories are the same afterwards.\n"
+"Works only when comparing two directories without specifying a destination."
+msgstr ""
+
+#: optiondialog.cpp:1208
+msgid "White space differences considered equal"
+msgstr ""
+
+#: optiondialog.cpp:1211
+msgid ""
+"If files differ only by white space consider them equal.\n"
+"This is only active when full analysis is chosen."
+msgstr ""
+
+#: optiondialog.cpp:1217
+msgid "Copy newer instead of merging (unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1220
+msgid ""
+"Don't look inside, just take the newer file.\n"
+"(Use this only if you know what you are doing!)\n"
+"Only effective when comparing two directories."
+msgstr ""
+
+#: optiondialog.cpp:1225
+msgid "Backup files (.orig)"
+msgstr ""
+
+#: optiondialog.cpp:1228
+msgid ""
+"If a file would be saved over an old file, then the old file\n"
+"will be renamed with a '.orig' extension instead of being deleted."
+msgstr ""
+
+#: optiondialog.cpp:1301 optiondialog.cpp:1302
+msgid "Regional Settings"
+msgstr ""
+
+#: optiondialog.cpp:1402
+msgid "Language (restart required)"
+msgstr ""
+
+#: optiondialog.cpp:1445
+msgid ""
+"Choose the language of the GUI strings or \"Auto\".\n"
+"For a change of language to take place, quit and restart KDiff3."
+msgstr ""
+
+#: optiondialog.cpp:1463
+msgid "Use the same encoding for everything:"
+msgstr ""
+
+#: optiondialog.cpp:1466
+msgid ""
+"Enable this allows to change all encodings by changing the first only.\n"
+"Disable this if different individual settings are needed."
+msgstr ""
+
+#: optiondialog.cpp:1471
+msgid "Note: Local Encoding is "
+msgstr ""
+
+#: optiondialog.cpp:1475
+msgid "File Encoding for A:"
+msgstr ""
+
+#: optiondialog.cpp:1481
+msgid ""
+"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n"
+"If the file is not Unicode then the selected encoding will be used as "
+"fallback.\n"
+"(Unicode detection depends on the first bytes of a file.)"
+msgstr ""
+
+#: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503
+msgid "Auto Detect Unicode"
+msgstr ""
+
+#: optiondialog.cpp:1490
+msgid "File Encoding for B:"
+msgstr ""
+
+#: optiondialog.cpp:1499
+msgid "File Encoding for C:"
+msgstr ""
+
+#: optiondialog.cpp:1508
+msgid "File Encoding for Merge Output and Saving:"
+msgstr ""
+
+#: optiondialog.cpp:1512
+msgid "Auto Select"
+msgstr ""
+
+#: optiondialog.cpp:1515
+msgid ""
+"If enabled then the encoding from the input files is used.\n"
+"In ambiguous cases a dialog will ask the user to choose the encoding for "
+"saving."
+msgstr ""
+
+#: optiondialog.cpp:1519
+msgid "File Encoding for Preprocessor Files:"
+msgstr ""
+
+#: optiondialog.cpp:1530
+msgid "Right To Left Language"
+msgstr ""
+
+#: optiondialog.cpp:1533
+msgid ""
+"Some languages are read from right to left.\n"
+"This setting will change the viewer and editor accordingly."
+msgstr ""
+
+#: optiondialog.cpp:1548
+msgid "Integration"
+msgstr ""
+
+#: optiondialog.cpp:1549
+msgid "Integration Settings"
+msgstr ""
+
+#: optiondialog.cpp:1563
+msgid "Command line options to ignore:"
+msgstr ""
+
+#: optiondialog.cpp:1568
+msgid ""
+"List of command line options that should be ignored when KDiff3 is used by "
+"other tools.\n"
+"Several values can be specified if separated via ';'\n"
+"This will suppress the \"Unknown option\" error."
+msgstr ""
+
+#: optiondialog.cpp:1575
+msgid "Quit also via Escape key"
+msgstr ""
+
+#: optiondialog.cpp:1578
+msgid ""
+"Fast method to exit.\n"
+"For those who are used to using the Escape key."
+msgstr ""
+
+#: optiondialog.cpp:1583
+msgid "Integrate with ClearCase"
+msgstr ""
+
+#: optiondialog.cpp:1586
+msgid ""
+"Integrate with Rational ClearCase from IBM.\n"
+"Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n"
+"(Only enabled when ClearCase \"bin\" directory is in the path.)"
+msgstr ""
+
+#: optiondialog.cpp:1592
+msgid "Remove ClearCase Integration"
+msgstr ""
+
+#: optiondialog.cpp:1595
+msgid ""
+"Restore the old \"map\" file from before doing the ClearCase integration."
+msgstr ""
+
+#: optiondialog.cpp:1680
+msgid "Incompatible Font"
+msgstr ""
+
+#: optiondialog.cpp:1681
+msgid "Continue at Own Risk"
+msgstr ""
+
+#: optiondialog.cpp:1682
+msgid "Select Another Font"
+msgstr ""
+
+#: optiondialog.cpp:1717
+msgid "This resets all options. Not only those of the current topic."
+msgstr ""
+
+#: pdiff.cpp:260
+msgid "PreprocessorCmd: "
+msgstr ""
+
+#: pdiff.cpp:265
+msgid "The following option(s) you selected might change data:\n"
+msgstr ""
+
+#: pdiff.cpp:266
+msgid ""
+"\n"
+"Most likely this is not wanted during a merge.\n"
+"Do you want to disable these settings or continue with these settings active?"
+msgstr ""
+
+#: pdiff.cpp:268
+msgid "Option Unsafe for Merging"
+msgstr ""
+
+#: pdiff.cpp:269
+msgid "Use These Options During Merge"
+msgstr ""
+
+#: pdiff.cpp:270
+msgid "Disable Unsafe Options"
+msgstr ""
+
+#: pdiff.cpp:300
+msgid "Loading A"
+msgstr ""
+
+#: pdiff.cpp:304
+msgid "Loading B"
+msgstr ""
+
+#: pdiff.cpp:321 pdiff.cpp:347
+msgid "Diff: A <-> B"
+msgstr ""
+
+#: pdiff.cpp:327 pdiff.cpp:372
+msgid "Linediff: A <-> B"
+msgstr ""
+
+#: pdiff.cpp:338
+msgid "Loading C"
+msgstr ""
+
+#: pdiff.cpp:350
+msgid "Diff: B <-> C"
+msgstr ""
+
+#: pdiff.cpp:353
+msgid "Diff: A <-> C"
+msgstr ""
+
+#: pdiff.cpp:375
+msgid "Linediff: B <-> C"
+msgstr ""
+
+#: pdiff.cpp:378
+msgid "Linediff: A <-> C"
+msgstr ""
+
+#: pdiff.cpp:534
+msgid "All input files contain the same text, but are not binary equal."
+msgstr ""
+
+#: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541
+#, kde-format
+msgid "Files %1 and %2 have equal text, but are not binary equal. \n"
+msgstr ""
+
+#: pdiff.cpp:551
+msgid ""
+"Some inputfiles don't seem to be pure textfiles.\n"
+"Note that the KDiff3-merge was not meant for binary data.\n"
+"Continue at your own risk."
+msgstr ""
+
+#: pdiff.cpp:566
+#, kde-format
+msgid ""
+"Some input characters could not be converted to valid unicode.\n"
+"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n"
+"Don't save the result if unsure. Continue at your own risk.\n"
+"Affected input files are in %1."
+msgstr ""
+
+#: pdiff.cpp:1080
+msgid "Abort"
+msgstr ""
+
+#: pdiff.cpp:1087 pdiff.cpp:1175
+msgid "Opening files..."
+msgstr ""
+
+#: pdiff.cpp:1152 pdiff.cpp:1223
+msgid "File open error"
+msgstr ""
+
+#: pdiff.cpp:1255
+msgid "Cutting selection..."
+msgstr ""
+
+#: pdiff.cpp:1276
+msgid "Copying selection to clipboard..."
+msgstr ""
+
+#: pdiff.cpp:1292
+msgid "Inserting clipboard contents..."
+msgstr ""
+
+#: pdiff.cpp:1814
+msgid "Save && Continue"
+msgstr ""
+
+#: pdiff.cpp:1815
+msgid "Continue Without Saving"
+msgstr ""
+
+#: pdiff.cpp:2018
+msgid "Search complete."
+msgstr ""
+
+#: pdiff.cpp:2018
+msgid "Search Complete"
+msgstr ""
+
+#: pdiff.cpp:2252
+msgid "Nothing is selected in either diff input window."
+msgstr ""
+
+#: pdiff.cpp:2252
+msgid "Error while adding manual diff range"
+msgstr ""
+
+#: kdiff3_shell.cpp:76
+msgid ""
+"Could not initialize the KDiff3 part.\n"
+"This usually happens due to an installation problem. Please read the README-"
+"file in the source package for details."
+msgstr ""
+
+#: rc.cpp:1
+msgctxt "NAME OF TRANSLATORS"
+msgid "Your names"
+msgstr ""
+
+#: rc.cpp:2
+msgctxt "EMAIL OF TRANSLATORS"
+msgid "Your emails"
+msgstr ""
+
+#. i18n: file: kdiff3_part.rc:4
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:5
+msgid "&KDiff3"
+msgstr ""
+
+#. i18n: file: kdiff3_part.rc:13
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:8
+msgid "Configure KDiff3"
+msgstr ""
+
+#. i18n: file: kdiff3_part.rc:16
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:11
+msgid "KDiff3"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:106
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:38
+msgid "Main Toolbar"
+msgstr ""
diff --git a/po/sk/kdiff3fileitemactionplugin.po b/po/sk/kdiff3fileitemactionplugin.po
new file mode 100644 (file)
index 0000000..06e9ea6
--- /dev/null
@@ -0,0 +1,83 @@
+# translation of kdiff3fileitemactionplugin.po to Slovak
+# Richard Fric <Richard.Fric@kdemail.net>, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3fileitemactionplugin\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-05-08 13:12+0200\n"
+"Last-Translator: Richard Fric <Richard.Fric@kdemail.net>\n"
+"Language-Team: Slovak <kde-sk@linux.sk>\n"
+"Language: sk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.0\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
+
+#: kdiff3fileitemaction.cpp:94
+msgid "KDiff3 ..."
+msgstr ""
+
+#: kdiff3fileitemaction.cpp:125
+#, kde-format
+msgid "Compare with %1"
+msgstr ""
+
+#: kdiff3fileitemaction.cpp:131
+#, kde-format
+msgid "Merge with %1"
+msgstr ""
+
+#: kdiff3fileitemaction.cpp:137
+#, kde-format
+msgid "Save '%1' for later"
+msgstr ""
+
+#: kdiff3fileitemaction.cpp:143
+msgid "3-way merge with base"
+msgstr ""
+
+#: kdiff3fileitemaction.cpp:150
+msgid "Compare with ..."
+msgstr ""
+
+#: kdiff3fileitemaction.cpp:162
+msgid "Clear list"
+msgstr ""
+
+#: kdiff3fileitemaction.cpp:170
+msgid "Compare"
+msgstr ""
+
+#: kdiff3fileitemaction.cpp:176
+msgid "3 way comparison"
+msgstr ""
+
+#: kdiff3fileitemaction.cpp:180
+msgid "About KDiff3 menu plugin ..."
+msgstr ""
+
+#: kdiff3fileitemaction.cpp:284
+msgid ""
+"KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+
+#: kdiff3fileitemaction.cpp:286
+msgid ""
+"Using the contextmenu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else \"Save\" the first file for later. It "
+"will appear in the \"Compare With ...\" submenu. Then use \"Compare With\" "
+"on second file.\n"
+"For a 3-way merge first \"Save\" the base file, then the branch to merge and "
+"choose \"3-way merge with base\" on the other branch which will be used as "
+"destination.\n"
+"Same also applies to directory comparison and merge."
+msgstr ""
+
+#: kdiff3fileitemaction.cpp:294
+msgid "About KDiff3 File Item Action Plugin"
+msgstr ""
diff --git a/po/sk/kdiff3plugin.po b/po/sk/kdiff3plugin.po
new file mode 100644 (file)
index 0000000..2b5d084
--- /dev/null
@@ -0,0 +1,83 @@
+# translation of kdiff3plugin.po to Slovak
+# Richard Fric <Richard.Fric@kdemail.net>, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3plugin\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2009-04-26 14:31+0200\n"
+"Last-Translator: Richard Fric <Richard.Fric@kdemail.net>\n"
+"Language-Team: Slovak <kde-sk@linux.sk>\n"
+"Language: sk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 0.3\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
+
+#: kdiff3plugin.cpp:107
+msgid "KDiff3"
+msgstr ""
+
+#: kdiff3plugin.cpp:114
+#, kde-format
+msgid "Compare with %1"
+msgstr ""
+
+#: kdiff3plugin.cpp:120
+#, kde-format
+msgid "Merge with %1"
+msgstr ""
+
+#: kdiff3plugin.cpp:126
+#, kde-format
+msgid "Save '%1' for later"
+msgstr ""
+
+#: kdiff3plugin.cpp:132
+msgid "3-way merge with base"
+msgstr ""
+
+#: kdiff3plugin.cpp:139
+msgid "Compare with ..."
+msgstr ""
+
+#: kdiff3plugin.cpp:149
+msgid "Clear list"
+msgstr ""
+
+#: kdiff3plugin.cpp:157
+msgid "Compare"
+msgstr ""
+
+#: kdiff3plugin.cpp:163
+msgid "3 way comparison"
+msgstr ""
+
+#: kdiff3plugin.cpp:167
+msgid "About KDiff3 menu plugin ..."
+msgstr ""
+
+#: kdiff3plugin.cpp:269
+msgid ""
+"KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+
+#: kdiff3plugin.cpp:271
+msgid ""
+"Using the context menu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else, \"Save\" the first file for later, and "
+"it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With"
+"\" on the second file.\n"
+"For a 3-way merge first, \"Save\" the base file, then the branch to merge, "
+"and then \"3-way merge with base\" on the other branch which will be used as "
+"the destination.\n"
+"The same also applies to directory comparison and merge."
+msgstr ""
+
+#: kdiff3plugin.cpp:279
+msgid "About KDiff3 Menu Plugin"
+msgstr ""
diff --git a/po/sv/CMakeLists.txt b/po/sv/CMakeLists.txt
new file mode 100644 (file)
index 0000000..186a388
--- /dev/null
@@ -0,0 +1,2 @@
+file(GLOB _po_files *.po)
+GETTEXT_PROCESS_PO_FILES(sv ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
diff --git a/po/sv/kdiff3.po b/po/sv/kdiff3.po
new file mode 100644 (file)
index 0000000..2288467
--- /dev/null
@@ -0,0 +1,3191 @@
+# translation of kdiff3.po to Swedish
+# Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+#
+# Stefan Asserhäll <stefan.asserhall@comhem.se>, 2004, 2005, 2006, 2007, 2008, 2009, 2010.
+# Stefan Asserhall <stefan.asserhall@comhem.se>, 2010, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-05-06 16:56+0200\n"
+"Last-Translator: Stefan Asserhall <stefan.asserhall@comhem.se>\n"
+"Language-Team: Swedish <kde-i18n-doc@kde.org>\n"
+"Language: sv\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.2\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: kreplacements/kreplacements.h:105
+msgid "Continue"
+msgstr "Fortsätt"
+
+#: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158
+#: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512
+msgid "Cancel"
+msgstr "Avbryt"
+
+#: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631
+msgid "Quit"
+msgstr "Avsluta"
+
+#: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339
+msgid "Ok"
+msgstr "Ok"
+
+#: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715
+msgid "Help"
+msgstr "Hjälp"
+
+#: kreplacements/kreplacements.cpp:185
+msgid "Defaults"
+msgstr "Förval"
+
+#. i18n: file: kdiff3_shell.rc:4
+#. i18n: ectx: Menu (file)
+#: kreplacements/kreplacements.cpp:296 rc.cpp:14
+msgid "&File"
+msgstr "&Arkiv"
+
+#: kreplacements/kreplacements.cpp:297
+msgid "&Edit"
+msgstr "&Redigera"
+
+#. i18n: file: kdiff3_shell.rc:7
+#. i18n: ectx: Menu (directory)
+#: kreplacements/kreplacements.cpp:298 rc.cpp:17
+msgid "&Directory"
+msgstr "&Katalog"
+
+#. i18n: file: kdiff3_shell.rc:50
+#. i18n: ectx: Menu (movement)
+#: kreplacements/kreplacements.cpp:301 rc.cpp:26
+msgid "&Movement"
+msgstr "&Förflyttning"
+
+#. i18n: file: kdiff3_shell.rc:61
+#. i18n: ectx: Menu (diff)
+#: kreplacements/kreplacements.cpp:302 rc.cpp:29
+msgid "D&iffview"
+msgstr "&Jämförelsevy"
+
+#. i18n: file: kdiff3_shell.rc:73
+#. i18n: ectx: Menu (merge)
+#: kreplacements/kreplacements.cpp:303 rc.cpp:32
+msgid "&Merge"
+msgstr "Sa&mmanfoga"
+
+#. i18n: file: kdiff3_shell.rc:95
+#. i18n: ectx: Menu (window)
+#: kreplacements/kreplacements.cpp:304 rc.cpp:35
+msgid "&Window"
+msgstr "Fö&nster"
+
+#: kreplacements/kreplacements.cpp:305
+msgid "&Settings"
+msgstr "In&ställningar"
+
+#: kreplacements/kreplacements.cpp:306
+msgid "&Help"
+msgstr "&Hjälp"
+
+#: kreplacements/kreplacements.cpp:353
+msgid "&About"
+msgstr "&Om"
+
+#: kreplacements/kreplacements.cpp:369
+msgid "A&uthor"
+msgstr "&Upphovsman"
+
+#: kreplacements/kreplacements.cpp:383
+msgid "&Thanks To"
+msgstr "&Tack till"
+
+#. i18n: file: kdiff3_shell.rc:30
+#. i18n: ectx: Menu (dir_current_merge_menu)
+#: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497
+#: rc.cpp:20
+msgid "Current Item Merge Operation"
+msgstr "Sammanfogningsåtgärd för aktuellt objekt"
+
+#. i18n: file: kdiff3_shell.rc:38
+#. i18n: ectx: Menu (dir_current_sync_menu)
+#: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498
+#: rc.cpp:23
+msgid "Current Item Sync Operation"
+msgstr "Synkroniseringsåtgärd för aktuellt objekt"
+
+#: kreplacements/kreplacements.cpp:597
+msgid "Open"
+msgstr "Öppna"
+
+#: kreplacements/kreplacements.cpp:606
+msgid "Save"
+msgstr "Spara"
+
+#: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720
+msgid "Save As..."
+msgstr "Spara som..."
+
+#: kreplacements/kreplacements.cpp:623
+msgid "Print..."
+msgstr "Skriv ut..."
+
+#: kreplacements/kreplacements.cpp:639
+msgid "Cut"
+msgstr "Klipp ut"
+
+#: kreplacements/kreplacements.cpp:647
+msgid "Copy"
+msgstr "Kopiera"
+
+#: kreplacements/kreplacements.cpp:655
+msgid "Paste"
+msgstr "Klistra in"
+
+#: kreplacements/kreplacements.cpp:663
+msgid "Select All"
+msgstr "Markera alla"
+
+#: kreplacements/kreplacements.cpp:671
+msgid "Show Toolbar"
+msgstr "Visa verktygsrad"
+
+#: kreplacements/kreplacements.cpp:679
+msgid "Show &Status Bar"
+msgstr "Visa &statusrad"
+
+#: kreplacements/kreplacements.cpp:687
+#, kde-format
+msgid "&Configure %1..."
+msgstr "&Anpassa %1..."
+
+#: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707
+msgid "About"
+msgstr "Om"
+
+#: kreplacements/kreplacements.cpp:722
+msgid "Find"
+msgstr "Sök"
+
+#: kreplacements/kreplacements.cpp:730
+msgid "Find Next"
+msgstr "Sök igen"
+
+#: kreplacements/kreplacements.cpp:750
+msgid "Select Font"
+msgstr "Välj teckensnitt"
+
+#: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676
+msgid ""
+"You selected a variable width font.\n"
+"\n"
+"Because this program doesn't handle variable width fonts\n"
+"correctly, you might experience problems while editing.\n"
+"\n"
+"Do you want to continue or do you want to select another font."
+msgstr ""
+"Du valde ett teckensnitt med variabel bredd.\n"
+"\n"
+"Eftersom programmet inte hanterar teckensnitt med variabel bredd\n"
+"på ett riktigt sätt, kan du råka ut för problem vid redigering.\n"
+"\n"
+"Vill du fortsätta, eller vill du välja ett annat teckensnitt?"
+
+#: kreplacements/kreplacements.cpp:792
+msgid "Incompatible font."
+msgstr "Olämpligt teckensnitt."
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Continue at my own risk"
+msgstr "Fortsätt på egen risk"
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Select another font"
+msgstr "Välj ett annat teckensnitt"
+
+#: kreplacements/kreplacements.cpp:1134
+msgid "For more documentation, see the help-menu or the subdirectory doc."
+msgstr "För ytterligare dokumentation, se hjälpmenyn eller underkatalogen doc."
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "KDiff3-Usage"
+msgstr "Användning av Kdiff3"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Ignore"
+msgstr "Ignorera"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Exit"
+msgstr "Avsluta"
+
+#: diff.cpp:251
+msgid "Writing clipboard data to temp file failed."
+msgstr "Skrivning av klippbordsdata till tillfällig fil misslyckades."
+
+#: diff.cpp:255
+msgid "From Clipboard"
+msgstr "Från klippbord"
+
+#: diff.cpp:471
+msgid "Expecting space after closing quotation mark."
+msgstr "Förväntade mellanslag efter avslutande citationstecken."
+
+#: diff.cpp:474
+msgid "Not matching quotation marks."
+msgstr "Inga matchande citationstecken."
+
+#: diff.cpp:496
+msgid "Unexpected quotation mark within argument."
+msgstr "Oväntat citationstecken inne i argument."
+
+#: diff.cpp:503
+msgid "No program specified."
+msgstr "Inget program angivet."
+
+#: diff.cpp:605
+#, kde-format
+msgid ""
+"Preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The preprocessing command will be disabled now."
+msgstr ""
+"Preprocessing misslyckades möjligen. Kontrollera kommandot:\n"
+"\n"
+"  %1\n"
+"\n"
+"Preprocessingkommandot inaktiveras nu."
+
+#: diff.cpp:653
+#, kde-format
+msgid ""
+"The line-matching-preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The line-matching-preprocessing command will be disabled now."
+msgstr ""
+"Preprocessingen för radmatchning misslyckades möjligen. Kontrollera "
+"kommandot:\n"
+"\n"
+"  %1\n"
+"\n"
+"Preprocessingen för radmatchning inaktiveras nu."
+
+#: diff.cpp:1776 diff.cpp:1790
+msgid ""
+"Data loss error:\n"
+"If it is reproducible please contact the author.\n"
+msgstr ""
+"Dataförlustfel:\n"
+"Om det går att upprepa, kontakta upphovsmannen.\n"
+
+#: diff.cpp:1778 diff.cpp:1792
+msgid "Severe Internal Error"
+msgstr "Allvarligt internt fel"
+
+#: directorymergewindow.cpp:136
+msgid "Mix of links and normal files."
+msgstr "Blandning av länkar och normala filer."
+
+#: directorymergewindow.cpp:143
+msgid "Link: "
+msgstr "Länk: "
+
+#: directorymergewindow.cpp:151
+msgid "Size. "
+msgstr "Storlek: "
+
+#: directorymergewindow.cpp:164 directorymergewindow.cpp:174
+msgid "Date & Size: "
+msgstr "Datum och storlek: "
+
+#: directorymergewindow.cpp:184 directorymergewindow.cpp:190
+#, kde-format
+msgid "Creating temp copy of %1 failed."
+msgstr "Att skapa tillfällig kopia av %1 misslyckades."
+
+#: directorymergewindow.cpp:201 directorymergewindow.cpp:209
+#, kde-format
+msgid "Opening %1 failed."
+msgstr "Öppna %1 misslyckades."
+
+#: directorymergewindow.cpp:213
+msgid "Comparing file..."
+msgstr "Jämför fil..."
+
+#: directorymergewindow.cpp:223 directorymergewindow.cpp:229
+#, kde-format
+msgid "Error reading from %1"
+msgstr "Fel vid läsning från %1"
+
+#: directorymergewindow.cpp:358
+msgid "Name"
+msgstr "Namn"
+
+#: directorymergewindow.cpp:358
+msgid "Operation"
+msgstr "Åtgärd"
+
+#: directorymergewindow.cpp:358
+msgid "Status"
+msgstr "Status"
+
+#: directorymergewindow.cpp:359
+msgid "Unsolved"
+msgstr "Olöst"
+
+#: directorymergewindow.cpp:359
+msgid "Solved"
+msgstr "Löst"
+
+#: directorymergewindow.cpp:359
+msgid "Nonwhite"
+msgstr "Inte blank"
+
+#: directorymergewindow.cpp:359
+msgid "White"
+msgstr "Blank"
+
+#: directorymergewindow.cpp:388
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort "
+"the merge and rescan the directory?"
+msgstr ""
+"Du håller för närvarande på med att sammanfoga kataloger. Är du säker på att "
+"du vill avbryta den och avsöka katalogen igen?"
+
+#: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655
+#: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823
+msgid "Warning"
+msgstr "Varning"
+
+#: directorymergewindow.cpp:390 directorymergewindow.cpp:2965
+msgid "Rescan"
+msgstr "Avsök igen"
+
+#: directorymergewindow.cpp:391 pdiff.cpp:1081
+msgid "Continue Merging"
+msgstr "Fortsätt sammanfoga"
+
+#: directorymergewindow.cpp:548
+msgid "Opening of directories failed:"
+msgstr "Öppna katalogerna misslyckades:"
+
+#: directorymergewindow.cpp:551
+#, kde-format
+msgid "Dir A \"%1\" does not exist or is not a directory.\n"
+msgstr "Katalog A \"%1\" finns inte eller är inte en katalog.\n"
+
+#: directorymergewindow.cpp:554
+#, kde-format
+msgid "Dir B \"%1\" does not exist or is not a directory.\n"
+msgstr "Katalog B \"%1\" finns inte eller är inte en katalog.\n"
+
+#: directorymergewindow.cpp:557
+#, kde-format
+msgid "Dir C \"%1\" does not exist or is not a directory.\n"
+msgstr "Katalog C \"%1\" finns inte eller är inte en katalog.\n"
+
+#: directorymergewindow.cpp:559
+msgid "Directory Open Error"
+msgstr "Fel vid öppna katalog"
+
+#: directorymergewindow.cpp:567
+msgid ""
+"The destination directory must not be the same as A or B when three "
+"directories are merged.\n"
+"Check again before continuing."
+msgstr ""
+"Målkatalogen får inte vara samma som A eller B när tre kataloger "
+"sammanfogas.\n"
+"Kontrollera igen innan du fortsätter."
+
+#: directorymergewindow.cpp:569
+msgid "Parameter Warning"
+msgstr "Parametervarning"
+
+#: directorymergewindow.cpp:574
+msgid "Scanning directories..."
+msgstr "Söker i kataloger..."
+
+#: directorymergewindow.cpp:607
+msgid "Reading Directory A"
+msgstr "Läser katalog A"
+
+#: directorymergewindow.cpp:629
+msgid "Reading Directory B"
+msgstr "Läser katalog B"
+
+#: directorymergewindow.cpp:651
+msgid "Reading Directory C"
+msgstr "Läser katalog C"
+
+#: directorymergewindow.cpp:677
+msgid "Some subdirectories were not readable in"
+msgstr "Vissa underkataloger kunde inte läsas i"
+
+#: directorymergewindow.cpp:682
+msgid "Check the permissions of the subdirectories."
+msgstr "Kontrollera rättigheter för underkatalogerna."
+
+#: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737
+#: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233
+#: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328
+msgid "Ready."
+msgstr "Klar."
+
+#: directorymergewindow.cpp:735
+msgid "Directory Comparison Status"
+msgstr "Status för katalogjämförelse"
+
+#: directorymergewindow.cpp:736
+msgid "Number of subdirectories:"
+msgstr "Antal underkataloger:"
+
+#: directorymergewindow.cpp:737
+msgid "Number of equal files:"
+msgstr "Antal likadana filer:"
+
+#: directorymergewindow.cpp:738
+msgid "Number of different files:"
+msgstr "Antal olika filer:"
+
+#: directorymergewindow.cpp:741
+msgid "Number of manual merges:"
+msgstr "Antal manuella sammanfogningar:"
+
+#: directorymergewindow.cpp:912
+msgid "This affects all merge operations."
+msgstr "Det här påverkar alla sammanfogningsåtgärder."
+
+#: directorymergewindow.cpp:913
+msgid "Changing All Merge Operations"
+msgstr "Ändra alla sammanfogningsåtgärder"
+
+#: directorymergewindow.cpp:1312
+msgid "Processing "
+msgstr "Behandlar "
+
+#: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742
+msgid "To do."
+msgstr "Att göra."
+
+#: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996
+msgid "Copy A to B"
+msgstr "Kopiera A till B"
+
+#: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997
+msgid "Copy B to A"
+msgstr "Kopiera B till A"
+
+#: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998
+msgid "Delete A"
+msgstr "Ta bort A"
+
+#: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999
+msgid "Delete B"
+msgstr "Ta bort B"
+
+#: directorymergewindow.cpp:1814
+msgid "Delete A & B"
+msgstr "Ta bort A och B"
+
+#: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001
+msgid "Merge to A"
+msgstr "Sammanfoga till A"
+
+#: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002
+msgid "Merge to B"
+msgstr "Sammanfoga till B"
+
+#: directorymergewindow.cpp:1817
+msgid "Merge to A & B"
+msgstr "Sammanfoga till A och B"
+
+#: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993
+msgid "Delete (if exists)"
+msgstr "Ta bort (om den finns)"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+#: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869
+msgid "Merge"
+msgstr "Sammanfoga"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+msgid "Merge (manual)"
+msgstr "Sammanfoga (manuellt)"
+
+#: directorymergewindow.cpp:1824
+msgid "Error: Conflicting File Types"
+msgstr "Fel: Konflikt i filtyper"
+
+#: directorymergewindow.cpp:1825
+msgid "Error: Changed and Deleted"
+msgstr "Fel: Ändrad och borttagen"
+
+#: directorymergewindow.cpp:1826
+msgid "Error: Dates are equal but files are not."
+msgstr "Fel: Datum är lika men filerna är det inte."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906
+msgid "This operation is currently not possible."
+msgstr "Den här åtgärden är för närvarande inte möjlig att utföra."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174
+msgid "Operation Not Possible"
+msgstr "Åtgärd inte möjlig"
+
+#: directorymergewindow.cpp:1945
+msgid ""
+"This should never happen: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"If you know how to reproduce this, please contact the program author."
+msgstr ""
+"Det här ska aldrig inträffa:\n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"Om du vet hur du kan upprepa detta, kontakta programmets upphovsman."
+
+#: directorymergewindow.cpp:1945
+msgid "Program Error"
+msgstr "Programfel"
+
+#: directorymergewindow.cpp:1956
+msgid "An error occurred while copying.\n"
+msgstr "Ett fel uppstod vid kopiering.\n"
+
+#: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025
+#: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105
+#: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123
+#: directorymergewindow.cpp:2374
+msgid "Error"
+msgstr "Fel"
+
+#: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375
+msgid "Merge Error"
+msgstr "Sammanfogningsfel"
+
+#: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380
+msgid "Error."
+msgstr "Fel."
+
+#: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272
+#: directorymergewindow.cpp:2312
+msgid "Done."
+msgstr "Klar."
+
+#: directorymergewindow.cpp:1990
+msgid "Not saved."
+msgstr "Inte sparad."
+
+#: directorymergewindow.cpp:2025
+msgid "Unknown merge operation. (This must never happen!)"
+msgstr "Okänd sammanfogningsåtgärd. (Det här får aldrig inträffa!)"
+
+#: directorymergewindow.cpp:2057
+msgid "Unknown merge operation."
+msgstr "Okänd sammanfogningsåtgärd."
+
+#: directorymergewindow.cpp:2072
+msgid ""
+"The merge is about to begin.\n"
+"\n"
+"Choose \"Do it\" if you have read the instructions and know what you are "
+"doing.\n"
+"Choosing \"Simulate it\" will tell you what would happen.\n"
+"\n"
+"Be aware that this program still has beta status and there is NO WARRANTY "
+"whatsoever! Make backups of your vital data!"
+msgstr ""
+"Sammanfogning ska nu börja.\n"
+"\n"
+"Välj \"Gör det\" om du har läst instruktionerna och vet vad du gör.\n"
+"Genom att välja \"Simulera det\" får du reda på vad som skulle hända.\n"
+"\n"
+"Var medveten om att det här programmet fortfarande har beta-status, och det "
+"finns INGA GARANTIER överhuvudtaget! Gör säkerhetskopior av viktig "
+"information!"
+
+#: directorymergewindow.cpp:2077
+msgid "Starting Merge"
+msgstr "Startar sammanfogning"
+
+#: directorymergewindow.cpp:2078
+msgid "Do It"
+msgstr "Gör det"
+
+#: directorymergewindow.cpp:2079
+msgid "Simulate It"
+msgstr "Simulera det"
+
+#: directorymergewindow.cpp:2105
+msgid ""
+"The highlighted item has a different type in the different directories. "
+"Select what to do."
+msgstr ""
+"Det markerade objektet har olika typ i de olika katalogerna. Välj vad du "
+"vill göra."
+
+#: directorymergewindow.cpp:2114
+msgid ""
+"The modification dates of the file are equal but the files are not. Select "
+"what to do."
+msgstr ""
+"Ändringsdatum för filerna är samma, men filerna är det inte. Välj vad du "
+"vill göra."
+
+#: directorymergewindow.cpp:2123
+msgid ""
+"The highlighted item was changed in one directory and deleted in the other. "
+"Select what to do."
+msgstr ""
+"Det markerade objektet har olika typ i de olika katalogerna. Välj vad du "
+"vill göra."
+
+#: directorymergewindow.cpp:2174
+msgid ""
+"This operation is currently not possible because directory merge is "
+"currently running."
+msgstr ""
+"Den här åtgärden är för närvarande inte möjlig eftersom katalogsammanfogning "
+"för närvarande kör."
+
+#: directorymergewindow.cpp:2234
+msgid ""
+"There was an error in the last step.\n"
+"Do you want to continue with the item that caused the error or do you want "
+"to skip this item?"
+msgstr ""
+"Ett fel uppstod under föregående steg.\n"
+"Vill du fortsätta med objektet som orsakade felet, eller vill du hoppa över "
+"objektet?"
+
+#: directorymergewindow.cpp:2236
+msgid "Continue merge after an error"
+msgstr "Fortsätt sammanfoga efter ett fel"
+
+#: directorymergewindow.cpp:2237
+msgid "Continue With Last Item"
+msgstr "Fortsätt med sista objekt"
+
+#: directorymergewindow.cpp:2238
+msgid "Skip Item"
+msgstr "Hoppa över objekt"
+
+#: directorymergewindow.cpp:2272
+msgid "Skipped."
+msgstr "Överhoppad."
+
+#: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493
+msgid "In progress..."
+msgstr "Pågår..."
+
+#: directorymergewindow.cpp:2327
+msgid "Merge operation complete."
+msgstr "Sammanfogningsåtgärd färdig."
+
+#: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330
+msgid "Merge Complete"
+msgstr "Sammanfogning färdig"
+
+#: directorymergewindow.cpp:2340
+msgid ""
+"Simulated merge complete: Check if you agree with the proposed operations."
+msgstr ""
+"Simulerad sammanfogning färdig. Kontrollera om du håller med om de "
+"föreslagna åtgärderna."
+
+#: directorymergewindow.cpp:2374
+msgid "An error occurred. Press OK to see detailed information.\n"
+msgstr "Ett fel uppstod. Tryck på Ok för att se detaljerad information.\n"
+
+#: directorymergewindow.cpp:2406
+#, kde-format
+msgid "Error: While deleting %1: Creating backup failed."
+msgstr "Fel: Vid borttagning av %1: Misslyckades skapa säkerhetskopia."
+
+#: directorymergewindow.cpp:2413
+#, kde-format
+msgid "delete directory recursively( %1 )"
+msgstr "Ta bort katalog rekursivt (%1)"
+
+#: directorymergewindow.cpp:2415
+#, kde-format
+msgid "delete( %1 )"
+msgstr "Ta bort (%1)"
+
+#: directorymergewindow.cpp:2430
+msgid "Error: delete dir operation failed while trying to read the directory."
+msgstr ""
+"Fel: Borttagningsåtgärd för katalog misslyckades när katalogen skulle läsas."
+
+#: directorymergewindow.cpp:2449
+#, kde-format
+msgid "Error: rmdir( %1 ) operation failed."
+msgstr "Fel: Åtgärden rmdir (%1) misslyckades."
+
+#: directorymergewindow.cpp:2459
+msgid "Error: delete operation failed."
+msgstr "Fel: Borttagningsåtgärden misslyckades."
+
+#: directorymergewindow.cpp:2485
+#, kde-format
+msgid "manual merge( %1, %2, %3 -> %4)"
+msgstr "Manuell sammanfogning (%1, %2, %3 -> %4)"
+
+#: directorymergewindow.cpp:2488
+msgid ""
+"     Note: After a manual merge the user should continue by pressing F7."
+msgstr ""
+"     Observera: Efter en manuell sammanfogning bör användaren fortsätta "
+"genom att trycka på F7."
+
+#: directorymergewindow.cpp:2513
+#, kde-format
+msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed."
+msgstr ""
+"Fel: Kopiering (%1 -> %2) misslyckades. Borttagning av befintlig fil "
+"misslyckades."
+
+#: directorymergewindow.cpp:2522
+#, kde-format
+msgid "copyLink( %1 -> %2 )"
+msgstr "Kopiera länk (%1 -> %2)"
+
+#: directorymergewindow.cpp:2533
+msgid "Error: copyLink failed: Remote links are not yet supported."
+msgstr "Fel: Kopiera länk misslyckades: Fjärrlänkar stöds inte ännu."
+
+#: directorymergewindow.cpp:2539
+msgid "Error: copyLink failed."
+msgstr "Fel: Kopiera länk misslyckades."
+
+#: directorymergewindow.cpp:2564
+#, kde-format
+msgid "copy( %1 -> %2 )"
+msgstr "Kopiera (%1 -> %2)"
+
+#: directorymergewindow.cpp:2590
+#, kde-format
+msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination."
+msgstr "Fel vid namnbyte (%1 -> %2): Kan inte ta bort befintlig fil."
+
+#: directorymergewindow.cpp:2596
+#, kde-format
+msgid "rename( %1 -> %2 )"
+msgstr "Byt namn (%1 -> %2)"
+
+#: directorymergewindow.cpp:2605
+msgid "Error: Rename failed."
+msgstr "Fel: Namnbyte misslyckades."
+
+#: directorymergewindow.cpp:2623
+#, kde-format
+msgid "Error during makeDir of %1. Cannot delete existing file."
+msgstr "Fel när katalogen %1 skulle skapas: Kan inte ta bort befintlig fil."
+
+#: directorymergewindow.cpp:2639
+#, kde-format
+msgid "makeDir( %1 )"
+msgstr "Skapa katalog (%1)"
+
+#: directorymergewindow.cpp:2649
+msgid "Error while creating directory."
+msgstr "Fel vid skapa katalog."
+
+#: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784
+msgid "Dest"
+msgstr "Mål"
+
+#: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709
+msgid "Dir"
+msgstr "Katalog"
+
+#: directorymergewindow.cpp:2678
+msgid "Type"
+msgstr "Typ"
+
+#: directorymergewindow.cpp:2678
+msgid "Size"
+msgstr "Storlek"
+
+#: directorymergewindow.cpp:2679
+msgid "Attr"
+msgstr "Egenskap"
+
+#: directorymergewindow.cpp:2679
+msgid "Last Modification"
+msgstr "Senast ändrad"
+
+#: directorymergewindow.cpp:2679
+msgid "Link-Destination"
+msgstr "Länkmål"
+
+#: directorymergewindow.cpp:2709 difftextwindow.cpp:401
+msgid "File"
+msgstr "Arkiv"
+
+#: directorymergewindow.cpp:2726
+msgid "not available"
+msgstr "Ej tillgänglig"
+
+#: directorymergewindow.cpp:2746
+msgid "A (Dest): "
+msgstr "A (mål): "
+
+#: directorymergewindow.cpp:2749
+msgid "A (Base): "
+msgstr "A (bas): "
+
+#: directorymergewindow.cpp:2755
+msgid "B (Dest): "
+msgstr "B (mål): "
+
+#: directorymergewindow.cpp:2763
+msgid "C (Dest): "
+msgstr "C (mål): "
+
+#: directorymergewindow.cpp:2769
+msgid "Dest: "
+msgstr "Mål: "
+
+#: directorymergewindow.cpp:2836
+msgid "Save Directory Merge State As..."
+msgstr "Spara tillstånd för katalogsammanfogning som..."
+
+#: directorymergewindow.cpp:2959
+msgid "Start/Continue Directory Merge"
+msgstr "Starta eller fortsätt katalogsammanfogning"
+
+#: directorymergewindow.cpp:2960
+msgid "Run Operation for Current Item"
+msgstr "Utför åtgärd för aktuellt objekt"
+
+#: directorymergewindow.cpp:2961
+msgid "Compare Selected File"
+msgstr "Jämför markerade filer"
+
+#: directorymergewindow.cpp:2962
+msgid "Merge Current File"
+msgstr "Sammanfoga markerade filer"
+
+#: directorymergewindow.cpp:2962
+msgid ""
+"Merge\n"
+"File"
+msgstr ""
+"Sammanfoga\n"
+"fil"
+
+#: directorymergewindow.cpp:2963
+msgid "Fold All Subdirs"
+msgstr "Dra ihop alla underkataloger"
+
+#: directorymergewindow.cpp:2964
+msgid "Unfold All Subdirs"
+msgstr "Expandera alla underkataloger"
+
+#: directorymergewindow.cpp:2968
+msgid "Choose A for All Items"
+msgstr "Välj A för alla objekt"
+
+#: directorymergewindow.cpp:2969
+msgid "Choose B for All Items"
+msgstr "Välj B för alla objekt"
+
+#: directorymergewindow.cpp:2970
+msgid "Choose C for All Items"
+msgstr "Välj C för alla objekt"
+
+#: directorymergewindow.cpp:2971
+msgid "Auto-Choose Operation for All Items"
+msgstr "Välj automatiskt åtgärd för alla objekt"
+
+#: directorymergewindow.cpp:2972
+msgid "No Operation for All Items"
+msgstr "Ingen åtgärd för något objekt"
+
+#: directorymergewindow.cpp:2977
+msgid "Show Identical Files"
+msgstr "Visa identiska filer"
+
+#: directorymergewindow.cpp:2977
+msgid ""
+"Identical\n"
+"Files"
+msgstr ""
+"Identiska\n"
+"filer"
+
+#: directorymergewindow.cpp:2978
+msgid "Show Different Files"
+msgstr "Visa olika filer"
+
+#: directorymergewindow.cpp:2979
+msgid "Show Files only in A"
+msgstr "Visa bara filer i A"
+
+#: directorymergewindow.cpp:2979
+msgid ""
+"Files\n"
+"only in A"
+msgstr ""
+"Bara\n"
+"filer i A"
+
+#: directorymergewindow.cpp:2980
+msgid "Show Files only in B"
+msgstr "Visa bara filer i B"
+
+#: directorymergewindow.cpp:2980
+msgid ""
+"Files\n"
+"only in B"
+msgstr ""
+"Bara\n"
+"filer i B"
+
+#: directorymergewindow.cpp:2981
+msgid "Show Files only in C"
+msgstr "Visa bara filer i C"
+
+#: directorymergewindow.cpp:2981
+msgid ""
+"Files\n"
+"only in C"
+msgstr ""
+"Bara\n"
+"filer i C"
+
+#: directorymergewindow.cpp:2985
+msgid "Compare Explicitly Selected Files"
+msgstr "Jämför explicit markerade filer"
+
+#: directorymergewindow.cpp:2986
+msgid "Merge Explicitly Selected Files"
+msgstr "Sammanfoga explicit markerade filer"
+
+#: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995
+msgid "Do Nothing"
+msgstr "Gör ingenting"
+
+#: directorymergewindow.cpp:2989
+msgid "A"
+msgstr "A"
+
+#: directorymergewindow.cpp:2990
+msgid "B"
+msgstr "B"
+
+#: directorymergewindow.cpp:2991
+msgid "C"
+msgstr "C"
+
+#: directorymergewindow.cpp:3000
+msgid "Delete A && B"
+msgstr "Ta bort A och B"
+
+#: directorymergewindow.cpp:3003
+msgid "Merge to A && B"
+msgstr "Sammanfoga till A och B"
+
+#: main.cpp:74 main.cpp:76
+msgid "Ignored. (User defined.)"
+msgstr "Ignorerad. (Användardefinierad.)"
+
+#: main.cpp:162
+msgid "kdiff3"
+msgstr "Kdiff3"
+
+#: main.cpp:164
+msgid "Tool for Comparison and Merge of Files and Directories"
+msgstr "Verktyg för jämförelse och sammanfogning av filer och kataloger"
+
+#: main.cpp:165
+msgid "(c) 2002-2011 Joachim Eibl"
+msgstr "© 2002-2011 Joachim Eibl"
+
+#: main.cpp:172 kdiff3_part.cpp:303
+msgid "Joachim Eibl"
+msgstr "Joachim Eibl"
+
+#: main.cpp:173
+msgid "Eike Sauer"
+msgstr "Eike Sauer"
+
+#: main.cpp:173
+msgid "Bugfixes, Debian package maintainer"
+msgstr "Felrättningar, underhåll av Debian-paket"
+
+#: main.cpp:174
+msgid "Sebastien Fricker"
+msgstr "Sebastien Fricker"
+
+#: main.cpp:174
+msgid "Windows installer"
+msgstr "Installationsprogram för Windows"
+
+#: main.cpp:175
+msgid "Stephan Binner"
+msgstr "Stephan Binner"
+
+#: main.cpp:175
+msgid "i18n-help"
+msgstr "Hjälp om i18n"
+
+#: main.cpp:176
+msgid "Stefan Partheymueller"
+msgstr "Stefan Partheymueller"
+
+#: main.cpp:176
+msgid "Clipboard-patch"
+msgstr "Programfix för klippbord"
+
+#: main.cpp:177
+msgid "David Faure"
+msgstr "David Faure"
+
+#: main.cpp:177
+msgid "KIO-Help"
+msgstr "I/O-slaven för hjälp"
+
+#: main.cpp:178
+msgid "Bernd Gehrmann"
+msgstr "Bernd Gehrmann"
+
+#: main.cpp:178
+msgid "Class CvsIgnoreList from Cervisia"
+msgstr "Klassen CvsIgnoreList från Cervisia"
+
+#: main.cpp:179
+msgid "Andre Woebbeking"
+msgstr "Andre Woebbeking"
+
+#: main.cpp:179
+msgid "Class StringMatcher"
+msgstr "Klassen StringMatcher"
+
+#: main.cpp:180
+msgid "Michael Denio"
+msgstr "Michael Denio"
+
+#: main.cpp:180
+msgid "Directory Equality-Coloring patch"
+msgstr "Programfix för färgläggning av kataloglikhet"
+
+#: main.cpp:181
+msgid "Manfred Koehler"
+msgstr "Manfred Koehler"
+
+#: main.cpp:181
+msgid "Fix for slow startup on Windows"
+msgstr "Fix för långsam start på Windows"
+
+#: main.cpp:182
+msgid "Sergey Zorin"
+msgstr "Sergey Zorin"
+
+#: main.cpp:182
+msgid "Diff Ext for Windows"
+msgstr "Diff Ext för Windows"
+
+#: main.cpp:183
+msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+
+#: main.cpp:183
+msgid "GNU-Diffutils"
+msgstr "GNU-Diffutils"
+
+#: main.cpp:184
+msgid "Tino Boellsterling, Timothy Mee"
+msgstr "Tino Boellsterling, Timothy Mee"
+
+#: main.cpp:184
+msgid "Intensive test, use and feedback"
+msgstr "Intensiv test, användning och gensvar"
+
+#: main.cpp:185
+msgid "Michael Schmidt"
+msgstr "Michael Schmidt"
+
+#: main.cpp:185
+msgid "Mac support"
+msgstr "Stöd för Mac"
+
+#: main.cpp:186
+msgid "Valentin Rusu"
+msgstr "Valentin Rusu"
+
+#: main.cpp:186 main.cpp:187
+msgid "KDE4 porting"
+msgstr "Överföring till KDE4"
+
+#: main.cpp:187
+msgid "Albert Astals Cid"
+msgstr "Albert Astals Cid"
+
+#: main.cpp:188
+msgid "Silvan Scherrer"
+msgstr "Silvan Scherrer"
+
+#: main.cpp:188
+msgid "OS2 port"
+msgstr "Överföring till OS2"
+
+#: main.cpp:190
+msgid "+ Many thanks to those who reported bugs and contributed ideas!"
+msgstr "Samt stort tack till de som rapporterade fel och bidrog med idéer!"
+
+#: main.cpp:196
+msgid "Merge the input."
+msgstr "Sammanfoga indata."
+
+#: main.cpp:197
+msgid "Explicit base file. For compatibility with certain tools."
+msgstr "Explicit basfil. För att fungera tillsammans med vissa verktyg."
+
+#: main.cpp:198
+msgid "Output file. Implies -m. E.g.: -o newfile.txt"
+msgstr "Utdatafil. Betyder underförstått -m. T.ex.: -o ny_fil.txt"
+
+#: main.cpp:199
+msgid "Output file, again. (For compatibility with certain tools.)"
+msgstr "Utdatafil, igen. (för att fungera med vissa verktyg.)"
+
+#: main.cpp:200
+msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)"
+msgstr ""
+"Inget grafiskt gränssnitt om alla konflikter kan lösas automatiskt (kräver -"
+"o fil)"
+
+#: main.cpp:201
+msgid "Don't solve conflicts automatically. (For compatibility...)"
+msgstr ""
+"Lös inte konflikter automatiskt. (För att fungera med andra verktyg...)"
+
+#: main.cpp:202
+msgid "Visible name replacement for input file 1 (base)."
+msgstr "Synlig ersättning av namn för indatafil 1 (bas)."
+
+#: main.cpp:203
+msgid "Visible name replacement for input file 2."
+msgstr "Synlig ersättning av namn för indatafil 2."
+
+#: main.cpp:204
+msgid "Visible name replacement for input file 3."
+msgstr "Synlig ersättning av namn för indatafil 3."
+
+#: main.cpp:205
+msgid "Alternative visible name replacement. Supply this once for every input."
+msgstr ""
+"Alternativ synlig ersättning av namn. Ange detta en gång för all indata."
+
+#: main.cpp:206
+msgid ""
+"Override a config setting. Use once for every setting. E.g.: --cs "
+"\"AutoAdvance=1\""
+msgstr ""
+"Överskrid en inställning. Använd en gång för varje inställning, t.ex.  --cs "
+"\"AutoAdvance=1\""
+
+#: main.cpp:207
+msgid "Show list of config settings and current values."
+msgstr "Visa lista med inställningar och nuvarande värden."
+
+#: main.cpp:208
+msgid "Use a different config file."
+msgstr "Använd en annan inställningsfil."
+
+#: main.cpp:211
+msgid "file1 to open (base, if not specified via --base)"
+msgstr "Fil 1 att öppna (basfil, om den inte anges med --base)"
+
+#: main.cpp:212
+msgid "file2 to open"
+msgstr "Fil 2 att öppna"
+
+#: main.cpp:213
+msgid "file3 to open"
+msgstr "Fil 3 att öppna"
+
+#: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976
+#: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002
+#: mergeresultwindow.cpp:1014
+#, kde-format
+msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)"
+msgstr "Antal återstående olösta konflikter: %1 (av vilka %2 är blanktecken)"
+
+#: mergeresultwindow.cpp:303
+msgid ""
+"The output has been modified.\n"
+"If you continue your changes will be lost."
+msgstr ""
+"Utdata har ändrats.\n"
+"Om du fortsätter kommer dina ändringar att gå förlorade."
+
+#: mergeresultwindow.cpp:834 pdiff.cpp:532
+msgid "All input files are binary equal."
+msgstr "Alla indatafiler är binärt lika."
+
+#: mergeresultwindow.cpp:836
+msgid "All input files contain the same text."
+msgstr "Alla indatafiler innehåller samma text."
+
+#: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840
+#: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540
+#, kde-format
+msgid "Files %1 and %2 are binary equal.\n"
+msgstr "Filerna %1 och %2 är binärt likadana.\n"
+
+#: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841
+#: mergeresultwindow.cpp:843
+#, kde-format
+msgid "Files %1 and %2 have equal text.\n"
+msgstr "Filerna %1 och %2 innehåller samma text.\n"
+
+#: mergeresultwindow.cpp:849
+msgid "Total number of conflicts: "
+msgstr "Totalt antal konflikter: "
+
+#: mergeresultwindow.cpp:850
+msgid ""
+"\n"
+"Nr of automatically solved conflicts: "
+msgstr ""
+"\n"
+"Antal automatiskt lösta konflikter: "
+
+#: mergeresultwindow.cpp:851
+msgid ""
+"\n"
+"Nr of unsolved conflicts: "
+msgstr ""
+"\n"
+"Antal olösta konflikter: "
+
+#: mergeresultwindow.cpp:853
+msgid "Conflicts"
+msgstr "Konflikter"
+
+#: mergeresultwindow.cpp:1728
+msgid "<No src line>"
+msgstr "<Ingen källrad>"
+
+#: mergeresultwindow.cpp:1736
+msgid "<Merge Conflict (Whitespace only)>"
+msgstr "<Konflikt vid sammanfogning (bara blanktecken)>"
+
+#: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517
+msgid "<Merge Conflict>"
+msgstr "<Konflikter vid sammanfogning>"
+
+#: mergeresultwindow.cpp:2725
+msgid ""
+"Not all conflicts are solved yet.\n"
+"File not saved.\n"
+msgstr ""
+"Alla konflikter har inte lösts ännu.\n"
+"Filen sparas inte.\n"
+
+#: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736
+msgid "Conflicts Left"
+msgstr "Konflikter kvar"
+
+#: mergeresultwindow.cpp:2734
+msgid ""
+"There is a line end style conflict. Please choose the line end style "
+"manually.\n"
+"File not saved.\n"
+msgstr ""
+"Det finns konflikter i typ av radslut. Välj typ av radslut manuellt.\n"
+"Filen har inte sparats.\n"
+
+#: mergeresultwindow.cpp:2748
+msgid ""
+"\n"
+"\n"
+"Creating backup failed. File not saved."
+msgstr ""
+"\n"
+"\n"
+"Misslyckades skapa säkerhetskopia. Filen sparades inte."
+
+#: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792
+msgid "File Save Error"
+msgstr "Fel vid spara fil"
+
+#: mergeresultwindow.cpp:2792
+msgid "Error while writing."
+msgstr "Fel vid skrivning."
+
+#: mergeresultwindow.cpp:3122
+msgid "Output"
+msgstr "Utmatning"
+
+#: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314
+msgid "[Modified]"
+msgstr "[Ändrad]"
+
+#: mergeresultwindow.cpp:3141
+msgid "Encoding for saving"
+msgstr "Kodning för att spara"
+
+#: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737
+#: optiondialog.cpp:762
+msgid "Line end style:"
+msgstr "Typ av radslut:"
+
+#: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767
+msgid "Unix"
+msgstr "Unix"
+
+#: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737
+msgid "DOS"
+msgstr "DOS"
+
+#: mergeresultwindow.cpp:3229
+msgid "Conflict"
+msgstr "Konflikt"
+
+#: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263
+#: mergeresultwindow.cpp:3265
+msgid "Codec from"
+msgstr "Kodare från"
+
+#: kdiff3_part.cpp:157 kdiff3_part.cpp:234
+msgid "Couldn't find files for comparison."
+msgstr "Kunde inte hitta filer för jämförelse."
+
+#: kdiff3_part.cpp:302
+msgid "KDiff3Part"
+msgstr "Kdiff3-del"
+
+#: fileaccess.cpp:612
+msgid ""
+"While trying to make a backup, deleting an older backup failed. \n"
+"Filename: "
+msgstr ""
+"Vid försök att skapa en säkerhetskopia, misslyckades borttagning av äldre "
+"säkerhetskopia.\n"
+"Filnamn: "
+
+#: fileaccess.cpp:619
+msgid ""
+"While trying to make a backup, renaming failed. \n"
+"Filenames: "
+msgstr ""
+"Vid försök att skapa en säkerhetskopia, misslyckades namnbyte.\n"
+"Filnamn: "
+
+#: fileaccess.cpp:643
+#, kde-format
+msgid "Getting file status: %1"
+msgstr "Hämtar filstatus: %1"
+
+#: fileaccess.cpp:686
+#, kde-format
+msgid "Reading file: %1"
+msgstr "Läser fil: %1"
+
+#: fileaccess.cpp:723
+#, kde-format
+msgid "Writing file: %1"
+msgstr "Skriver fil: %1"
+
+#: fileaccess.cpp:751
+msgid "Out of memory"
+msgstr "Slut på minne"
+
+#: fileaccess.cpp:786
+#, kde-format
+msgid "Making directory: %1"
+msgstr "Skapar katalog: %1"
+
+#: fileaccess.cpp:806
+#, kde-format
+msgid "Removing directory: %1"
+msgstr "Tar bort katalog: %1"
+
+#: fileaccess.cpp:821
+#, kde-format
+msgid "Removing file: %1"
+msgstr "Tar bort fil: %1"
+
+#: fileaccess.cpp:837
+#, kde-format
+msgid "Creating symbolic link: %1 -> %2"
+msgstr "Skapar symbolisk länk: %1 -> %2"
+
+#: fileaccess.cpp:864
+#, kde-format
+msgid "Renaming file: %1 -> %2"
+msgstr "Byter namn på fil: %1 -> %2"
+
+#: fileaccess.cpp:897
+#, kde-format
+msgid "Copying file: %1 -> %2"
+msgstr "Kopierar fil: %1 -> %2"
+
+#: fileaccess.cpp:911
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for reading failed. Filename: "
+"%1"
+msgstr ""
+"Fel under filkopieringsåtgärd: Öppna fil för läsning misslyckades. Filnamn: "
+"%1"
+
+#: fileaccess.cpp:917
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for writing failed. Filename: "
+"%1"
+msgstr ""
+"Fel under filkopieringsåtgärd: Öppna fil för skrivning misslyckades. "
+"Filnamn: %1"
+
+#: fileaccess.cpp:932
+#, kde-format
+msgid "Error during file copy operation: Reading failed. Filename: %1"
+msgstr "Fel under filkopieringsåtgärd: Läsning misslyckades. Filnamn: %1"
+
+#: fileaccess.cpp:941
+#, kde-format
+msgid "Error during file copy operation: Writing failed. Filename: %1"
+msgstr "Fel under filkopieringsåtgärd: Skrivning misslyckades. Filnamn: %1"
+
+#: fileaccess.cpp:1231
+msgid "Reading directory: "
+msgstr "Läser katalog: "
+
+#: fileaccess.cpp:1355
+#, kde-format
+msgid "Listing directory: %1"
+msgstr "Listar katalog: %1"
+
+#: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396
+msgid "&Cancel"
+msgstr "&Avbryt"
+
+#: difftextwindow.cpp:403
+msgid "Line"
+msgstr "Linje"
+
+#: difftextwindow.cpp:405
+msgid "Line not available"
+msgstr "Rad inte tillgänglig"
+
+#: difftextwindow.cpp:1703 difftextwindow.cpp:1736
+msgid "Encoding:"
+msgstr "Kodning:"
+
+#: difftextwindow.cpp:1759 kdiff3.cpp:831
+msgid "Top line"
+msgstr "Övre rad"
+
+#: difftextwindow.cpp:1769
+msgid "End"
+msgstr "Slut"
+
+#: kdiff3.cpp:169
+msgid "Current Configuration:"
+msgstr "Aktuell inställning:"
+
+#: kdiff3.cpp:174
+msgid "Config Option Error:"
+msgstr "Fel i inställningsalternativ:"
+
+#: kdiff3.cpp:219
+msgid "Option --auto used, but no output file specified."
+msgstr "Väljaren --auto användes, men ingen utdatafil angavs."
+
+#: kdiff3.cpp:369
+msgid "Option --auto ignored for directory comparison."
+msgstr "Väljaren --auto ignoreras för katalogjämförelse."
+
+#: kdiff3.cpp:405
+msgid "Saving failed."
+msgstr "Misslyckades spara."
+
+#: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214
+msgid "Opening of these files failed:"
+msgstr "Misslyckades öppna följande filer:"
+
+#: kdiff3.cpp:449
+msgid "File Open Error"
+msgstr "Fel vid öppna fil"
+
+#: kdiff3.cpp:477
+msgid "Opens documents for comparison..."
+msgstr "Öppnar dokument för jämförelse..."
+
+#: kdiff3.cpp:479
+msgid "Reload"
+msgstr "Uppdatera"
+
+#: kdiff3.cpp:482
+msgid "Saves the merge result. All conflicts must be solved!"
+msgstr "Sparar sammanfogningsresultat. Alla konflikter måste vara lösta."
+
+#: kdiff3.cpp:484
+msgid "Saves the current document as..."
+msgstr "Sparar aktuellt dokument som..."
+
+#: kdiff3.cpp:487
+msgid "Print the differences"
+msgstr "Skriv ut skillnaderna"
+
+#: kdiff3.cpp:490
+msgid "Quits the application"
+msgstr "Avslutar programmet"
+
+#: kdiff3.cpp:492
+msgid "Cuts the selected section and puts it to the clipboard"
+msgstr "Klipper ut markerad del och flyttar den till klippbordet"
+
+#: kdiff3.cpp:494
+msgid "Copies the selected section to the clipboard"
+msgstr "Kopierar markerad del till klippbordet"
+
+#: kdiff3.cpp:496
+msgid "Pastes the clipboard contents to current position"
+msgstr "Klistrar in klippbordets innehåll på aktuell position"
+
+#: kdiff3.cpp:498
+msgid "Select everything in current window"
+msgstr "Markera allting i nuvarande fönster"
+
+#: kdiff3.cpp:500
+msgid "Search for a string"
+msgstr "Sök efter en sträng"
+
+#: kdiff3.cpp:502
+msgid "Search again for the string"
+msgstr "Sök efter strängen igen"
+
+#: kdiff3.cpp:507
+msgid "Enables/disables the statusbar"
+msgstr "Aktiverar/inaktiverar statusraden"
+
+#: kdiff3.cpp:511
+msgid "Configure KDiff3..."
+msgstr "Anpassa Kdiff3..."
+
+#: kdiff3.cpp:532
+msgid "Go to Current Delta"
+msgstr "Gå till aktuell skillnad"
+
+#: kdiff3.cpp:532
+msgid ""
+"Current\n"
+"Delta"
+msgstr ""
+"Aktuell\n"
+"skillnad"
+
+#: kdiff3.cpp:534
+msgid "Go to First Delta"
+msgstr "Gå till första skillnad"
+
+#: kdiff3.cpp:534
+msgid ""
+"First\n"
+"Delta"
+msgstr ""
+"Första\n"
+"skillnad"
+
+#: kdiff3.cpp:536
+msgid "Go to Last Delta"
+msgstr "Gå till sista skillnad"
+
+#: kdiff3.cpp:536
+msgid ""
+"Last\n"
+"Delta"
+msgstr ""
+"Sista\n"
+"skillnad"
+
+#: kdiff3.cpp:538
+msgid "(Skips white space differences when \"Show White Space\" is disabled.)"
+msgstr ""
+"(Hoppar över skillnader i blanktecken när \"Visa blanktecken\" är "
+"inaktiverat.)"
+
+#: kdiff3.cpp:539
+msgid ""
+"(Does not skip white space differences even when \"Show White Space\" is "
+"disabled.)"
+msgstr ""
+"(Hoppar inte över skillnader i blanktecken även när \"Visa blanktecken\" är "
+"inaktiverat.)"
+
+#: kdiff3.cpp:540
+msgid "Go to Previous Delta"
+msgstr "Gå till föregående skillnad"
+
+#: kdiff3.cpp:540
+msgid ""
+"Prev\n"
+"Delta"
+msgstr ""
+"Föregående\n"
+"skillnad"
+
+#: kdiff3.cpp:542
+msgid "Go to Next Delta"
+msgstr "Gå till nästa skillnad"
+
+#: kdiff3.cpp:542
+msgid ""
+"Next\n"
+"Delta"
+msgstr ""
+"Nästa\n"
+"skillnad"
+
+#: kdiff3.cpp:544
+msgid "Go to Previous Conflict"
+msgstr "Gå till föregående konflikt"
+
+#: kdiff3.cpp:544
+msgid ""
+"Prev\n"
+"Conflict"
+msgstr ""
+"Föregående\n"
+"konflikt"
+
+#: kdiff3.cpp:546
+msgid "Go to Next Conflict"
+msgstr "Gå till nästa konflikt"
+
+#: kdiff3.cpp:546
+msgid ""
+"Next\n"
+"Conflict"
+msgstr ""
+"Nästa\n"
+"konflikt"
+
+#: kdiff3.cpp:548
+msgid "Go to Previous Unsolved Conflict"
+msgstr "Gå till föregående olösta konflikt"
+
+#: kdiff3.cpp:548
+msgid ""
+"Prev\n"
+"Unsolved"
+msgstr ""
+"Föregående\n"
+"olösta"
+
+#: kdiff3.cpp:550
+msgid "Go to Next Unsolved Conflict"
+msgstr "Gå till nästa olösta konflikt"
+
+#: kdiff3.cpp:550
+msgid ""
+"Next\n"
+"Unsolved"
+msgstr ""
+"Nästa\n"
+"olösta"
+
+#: kdiff3.cpp:552
+msgid "Select Line(s) From A"
+msgstr "Välj rad(er) från A"
+
+#: kdiff3.cpp:552
+msgid ""
+"Choose\n"
+"A"
+msgstr ""
+"Välj\n"
+"A"
+
+#: kdiff3.cpp:553
+msgid "Select Line(s) From B"
+msgstr "Välj rad(er) från B"
+
+#: kdiff3.cpp:553
+msgid ""
+"Choose\n"
+"B"
+msgstr ""
+"Välj\n"
+"B"
+
+#: kdiff3.cpp:554
+msgid "Select Line(s) From C"
+msgstr "Välj rad(er) från C"
+
+#: kdiff3.cpp:554
+msgid ""
+"Choose\n"
+"C"
+msgstr ""
+"Välj\n"
+"C"
+
+#: kdiff3.cpp:555
+msgid "Automatically Go to Next Unsolved Conflict After Source Selection"
+msgstr "Gå automatiskt till nästa olösta konflikt efter val av källa"
+
+#: kdiff3.cpp:555
+msgid ""
+"Auto\n"
+"Next"
+msgstr ""
+"Automatiskt\n"
+"nästa"
+
+#: kdiff3.cpp:557
+msgid "Show Space && Tabulator Characters for Differences"
+msgstr "Visa mellanslag och tabulatortecken i jämförelse"
+
+#: kdiff3.cpp:557
+msgid ""
+"White\n"
+"Characters"
+msgstr ""
+"Blank\n"
+"tecken"
+
+#: kdiff3.cpp:558
+msgid "Show White Space"
+msgstr "Visa blanktecken"
+
+#: kdiff3.cpp:558
+msgid ""
+"White\n"
+"Deltas"
+msgstr ""
+"Blanktecken\n"
+"skillnader"
+
+#: kdiff3.cpp:560
+msgid "Show Line Numbers"
+msgstr "Visa radnummer"
+
+#: kdiff3.cpp:560
+msgid ""
+"Line\n"
+"Numbers"
+msgstr ""
+"Rad\n"
+"nummer"
+
+#: kdiff3.cpp:561
+msgid "Choose A Everywhere"
+msgstr "Välj A överallt"
+
+#: kdiff3.cpp:562
+msgid "Choose B Everywhere"
+msgstr "Välj B överallt"
+
+#: kdiff3.cpp:563
+msgid "Choose C Everywhere"
+msgstr "Välj C överallt"
+
+#: kdiff3.cpp:564
+msgid "Choose A for All Unsolved Conflicts"
+msgstr "Välj A för alla olösta konflikter"
+
+#: kdiff3.cpp:565
+msgid "Choose B for All Unsolved Conflicts"
+msgstr "Välj B för alla olösta konflikter"
+
+#: kdiff3.cpp:566
+msgid "Choose C for All Unsolved Conflicts"
+msgstr "Välj C för alla olösta konflikter"
+
+#: kdiff3.cpp:567
+msgid "Choose A for All Unsolved Whitespace Conflicts"
+msgstr "Välj A för olösta konflikter med blanktecken"
+
+#: kdiff3.cpp:568
+msgid "Choose B for All Unsolved Whitespace Conflicts"
+msgstr "Välj B för olösta konflikter med blanktecken"
+
+#: kdiff3.cpp:569
+msgid "Choose C for All Unsolved Whitespace Conflicts"
+msgstr "Välj C för olösta konflikter med blanktecken"
+
+#: kdiff3.cpp:570
+msgid "Automatically Solve Simple Conflicts"
+msgstr "Lös automatiskt enkla konflikter"
+
+#: kdiff3.cpp:571
+msgid "Set Deltas to Conflicts"
+msgstr "Ändra skillnader till konflikter"
+
+#: kdiff3.cpp:572
+msgid "Run Regular Expression Auto Merge"
+msgstr "Kör automatisk sammanfogning med reguljärt uttryck"
+
+#: kdiff3.cpp:573
+msgid "Automatically Solve History Conflicts"
+msgstr "Lös automatiskt historikkonflikter"
+
+#: kdiff3.cpp:574
+msgid "Split Diff At Selection"
+msgstr "Dela jämförelse vid markering"
+
+#: kdiff3.cpp:575
+msgid "Join Selected Diffs"
+msgstr "Foga ihop markerade jämförelser"
+
+#: kdiff3.cpp:577
+msgid "Show Window A"
+msgstr "Visa fönster A"
+
+#: kdiff3.cpp:578
+msgid "Show Window B"
+msgstr "Visa fönster B"
+
+#: kdiff3.cpp:579
+msgid "Show Window C"
+msgstr "Visa fönster C"
+
+#: kdiff3.cpp:580 kdiff3.cpp:591
+msgid "Focus Next Window"
+msgstr "Fokus till nästa fönster"
+
+#: kdiff3.cpp:582
+msgid "Normal Overview"
+msgstr "Normal översikt"
+
+#: kdiff3.cpp:583
+msgid "A vs. B Overview"
+msgstr "A mot B-översikt"
+
+#: kdiff3.cpp:584
+msgid "A vs. C Overview"
+msgstr "A mot C-översikt"
+
+#: kdiff3.cpp:585
+msgid "B vs. C Overview"
+msgstr "B mot C-översikt"
+
+#: kdiff3.cpp:586
+msgid "Word Wrap Diff Windows"
+msgstr "Radbryt skillnadsfönster"
+
+#: kdiff3.cpp:587
+msgid "Add Manual Diff Alignment"
+msgstr "Lägg till manuell justering av jämförelse"
+
+#: kdiff3.cpp:588
+msgid "Clear All Manual Diff Alignments"
+msgstr "Rensa alla manuella justeringar av jämförelse"
+
+#: kdiff3.cpp:593
+msgid "Focus Prev Window"
+msgstr "Fokus till föregående fönster"
+
+#: kdiff3.cpp:594
+msgid "Toggle Split Orientation"
+msgstr "Byt delningsorientering"
+
+#: kdiff3.cpp:596
+msgid "Dir && Text Split Screen View"
+msgstr "Delad skärmvy för kataloger och text"
+
+#: kdiff3.cpp:598
+msgid "Toggle Between Dir && Text View"
+msgstr "Byt mellan katalog och textvy"
+
+#: kdiff3.cpp:654 pdiff.cpp:1812
+msgid "The merge result hasn't been saved."
+msgstr "Sammanfogningsresultatet har inte sparats."
+
+#: kdiff3.cpp:656
+msgid "Save && Quit"
+msgstr "Spara och avsluta"
+
+#: kdiff3.cpp:657
+msgid "Quit Without Saving"
+msgstr "Avsluta utan att spara"
+
+#: kdiff3.cpp:665 pdiff.cpp:1823
+msgid "Saving the merge result failed."
+msgstr "Misslyckades spara sammanfogningsresultatet."
+
+#: kdiff3.cpp:676 pdiff.cpp:1078
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort?"
+msgstr ""
+"Du håller för närvarande på med en katalogsammanfogning. Är du säker på att "
+"du vill avbryta?"
+
+#: kdiff3.cpp:701
+msgid "Saving file..."
+msgstr "Sparar fil..."
+
+#: kdiff3.cpp:718
+msgid "Saving file with a new filename..."
+msgstr "Sparar fil med ett nytt namn..."
+
+#: kdiff3.cpp:781
+msgid "Printing not implemented."
+msgstr "Utskrift inte implementerad."
+
+#: kdiff3.cpp:815
+msgid "Printing..."
+msgstr "Skriver ut..."
+
+#: kdiff3.cpp:956
+msgid "Selection"
+msgstr "Markering"
+
+#: kdiff3.cpp:982
+msgid "Printing completed."
+msgstr "Utskrift färdig."
+
+#: kdiff3.cpp:986
+msgid "Printing aborted."
+msgstr "Utskrift avbruten."
+
+#: kdiff3.cpp:993
+msgid "Exiting..."
+msgstr "Avslutar..."
+
+#: kdiff3.cpp:1006
+msgid "Toggling toolbar..."
+msgstr "Växlar verktygsrad..."
+
+#: kdiff3.cpp:1027
+msgid "Toggle the statusbar..."
+msgstr "Växla statusraden..."
+
+#: smalldialogs.cpp:58
+msgid "A (Base):"
+msgstr "A (bas):"
+
+#: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99
+#: smalldialogs.cpp:142
+msgid "File..."
+msgstr "Fil..."
+
+#: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101
+#: smalldialogs.cpp:144
+msgid "Dir..."
+msgstr "Katalog..."
+
+#: smalldialogs.cpp:93
+msgid "C (Optional):"
+msgstr "C (valfri):"
+
+#: smalldialogs.cpp:116
+msgid "Swap/Copy Names ..."
+msgstr "Byt eller kopiera namn..."
+
+#: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123
+#, kde-format
+msgid "Swap %1<->%2"
+msgstr "Byt ut %1 mot %2"
+
+#: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126
+#, kde-format
+msgid "Copy %1->Output"
+msgstr "Kopiera %1 till utdata"
+
+#: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129
+#, kde-format
+msgid "Swap %1<->Output"
+msgstr "Byt %1 mot utmatning"
+
+#: smalldialogs.cpp:136
+msgid "Output (optional):"
+msgstr "Utmatning (valfri):"
+
+#: smalldialogs.cpp:168
+msgid "Configure..."
+msgstr "Anpassa..."
+
+#: smalldialogs.cpp:174
+msgid "&OK"
+msgstr "&Ok"
+
+#: smalldialogs.cpp:362
+msgid "Search text:"
+msgstr "Söktext:"
+
+#: smalldialogs.cpp:369
+msgid "Case sensitive"
+msgstr "Skiftlägeskänslig"
+
+#: smalldialogs.cpp:372
+msgid "Search A"
+msgstr "Sök A"
+
+#: smalldialogs.cpp:377
+msgid "Search B"
+msgstr "Sök B"
+
+#: smalldialogs.cpp:382
+msgid "Search C"
+msgstr "Sök C"
+
+#: smalldialogs.cpp:387
+msgid "Search output"
+msgstr "Sökutmatning"
+
+#: smalldialogs.cpp:392
+msgid "&Search"
+msgstr "&Sök"
+
+#: smalldialogs.cpp:409
+msgid "Regular Expression Tester"
+msgstr "Test av reguljära uttryck"
+
+#: smalldialogs.cpp:414 optiondialog.cpp:936
+msgid "Auto merge regular expression:"
+msgstr "Reguljärt uttryck för automatisk sammanfogning:"
+
+#: smalldialogs.cpp:422
+msgid "Example auto merge line:"
+msgstr "Exempel på rad för automatisk sammanfogning:"
+
+#: smalldialogs.cpp:424
+msgid "To test auto merge, copy a line as used in your files."
+msgstr ""
+"För att prova automatisk sammanfogning, kopiera en rad som används i dina "
+"filer."
+
+#: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494
+msgid "Match result:"
+msgstr "Matchningsresultat:"
+
+#: smalldialogs.cpp:441 optiondialog.cpp:962
+msgid "History start regular expression:"
+msgstr "Reguljärt uttryck för historikens början:"
+
+#: smalldialogs.cpp:449
+msgid "Example history start line (with leading comment):"
+msgstr "Exempel på startrad för historik (med inledande kommentar):"
+
+#: smalldialogs.cpp:451
+msgid ""
+"Copy a history start line as used in your files,\n"
+"including the leading comment."
+msgstr ""
+"Kopiera en startrad för historik som används i dina filer,\n"
+"inklusive den inledande kommentaren."
+
+#: smalldialogs.cpp:469 optiondialog.cpp:972
+msgid "History entry start regular expression:"
+msgstr "Reguljärt uttryck för historikpostens början:"
+
+#: smalldialogs.cpp:477
+msgid "History sort key order:"
+msgstr "Sorteringsnyckelordning för historik:"
+
+#: smalldialogs.cpp:485
+msgid "Example history entry start line (without leading comment):"
+msgstr "Exempel på startrad för en historikpost (utan inledande kommentar):"
+
+#: smalldialogs.cpp:487
+msgid ""
+"Copy a history entry start line as used in your files,\n"
+"but omit the leading comment."
+msgstr ""
+"Kopiera en startrad för en historikpost som används i dina filer,\n"
+"men utelämna den inledande kommentaren."
+
+#: smalldialogs.cpp:501
+msgid "Sort key result:"
+msgstr "Sorteringsnyckelresultat:"
+
+#: smalldialogs.cpp:508
+msgid "OK"
+msgstr "Ok"
+
+#: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583
+msgid "Match success."
+msgstr "Matchning lyckades."
+
+#: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589
+msgid "Match failed."
+msgstr "Matchning misslyckades."
+
+#: smalldialogs.cpp:574
+msgid "Opening and closing parentheses do not match in regular expression."
+msgstr "Inledande och avslutande parenteser matchar inte i reguljärt uttryck."
+
+#: optiondialog.cpp:367
+msgid "Unicode, 8 bit"
+msgstr "Unicode, 8 bitar"
+
+#: optiondialog.cpp:368
+msgid "Unicode"
+msgstr "Unicode"
+
+#: optiondialog.cpp:369
+msgid "Latin1"
+msgstr "Latin1"
+
+#: optiondialog.cpp:388
+msgid "Change this if non-ASCII characters are not displayed correctly."
+msgstr "Ändra det här om tecken som inte är ASCII inte visas riktigt."
+
+#: optiondialog.cpp:465
+msgid "Configure"
+msgstr "Anpassa"
+
+#: optiondialog.cpp:531
+msgid "Font"
+msgstr "Teckensnitt"
+
+#: optiondialog.cpp:532
+msgid "Editor & Diff Output Font"
+msgstr "Teckensnitt för editor och jämförelser"
+
+#: optiondialog.cpp:556
+msgid "Italic font for deltas"
+msgstr "Kursiv stil för skillnader"
+
+#: optiondialog.cpp:559
+msgid ""
+"Selects the italic version of the font for differences.\n"
+"If the font doesn't support italic characters, then this does nothing."
+msgstr ""
+"Väljer den kursiva versionen av teckensnittet för skillnader.\n"
+"Om teckensnittet inte stöder kursiva tecken, gör detta ingenting."
+
+#: optiondialog.cpp:568
+msgid "Color"
+msgstr "Färg"
+
+#: optiondialog.cpp:569
+msgid "Colors Settings"
+msgstr "Färginställningar"
+
+#: optiondialog.cpp:588
+msgid "Editor and Diff Views:"
+msgstr "Editor- och skillnadsvyer:"
+
+#: optiondialog.cpp:596
+msgid "Foreground color:"
+msgstr "Förgrundsfärg:"
+
+#: optiondialog.cpp:603
+msgid "Background color:"
+msgstr "Bakgrundsfärg:"
+
+#: optiondialog.cpp:612
+msgid "Diff background color:"
+msgstr "Bakgrundsfärg för jämförelse:"
+
+#: optiondialog.cpp:620
+msgid "Color A:"
+msgstr "Färg A:"
+
+#: optiondialog.cpp:628
+msgid "Color B:"
+msgstr "Färg B:"
+
+#: optiondialog.cpp:636
+msgid "Color C:"
+msgstr "Färg C:"
+
+#: optiondialog.cpp:643
+msgid "Conflict color:"
+msgstr "Konfliktfärg:"
+
+#: optiondialog.cpp:651
+msgid "Current range background color:"
+msgstr "Bakgrundsfärg för aktuellt intervall:"
+
+#: optiondialog.cpp:659
+msgid "Current range diff background color:"
+msgstr "Bakgrundsfärg för aktuellt jämförelseintervall:"
+
+#: optiondialog.cpp:666
+msgid "Color for manually aligned difference ranges:"
+msgstr "Färg för manuellt justerade jämförelseintervall:"
+
+#: optiondialog.cpp:672
+msgid "Directory Comparison View:"
+msgstr "Katalogjämförelsevy:"
+
+#: optiondialog.cpp:678
+msgid "Newest file color:"
+msgstr "Färg för nyaste fil:"
+
+#: optiondialog.cpp:682
+msgid ""
+"Changing this color will only be effective when starting the next directory "
+"comparison."
+msgstr "Att ändra färgen får bara effekt när nästa katalogjämförelse startas."
+
+#: optiondialog.cpp:687
+msgid "Oldest file color:"
+msgstr "Färg för äldsta fil:"
+
+#: optiondialog.cpp:695
+msgid "Middle age file color:"
+msgstr "Färg för medelgammal fil:"
+
+#: optiondialog.cpp:703
+msgid "Color for missing files:"
+msgstr "Färg för saknade filer:"
+
+#: optiondialog.cpp:717
+msgid "Editor"
+msgstr "Editor"
+
+#: optiondialog.cpp:718
+msgid "Editor Behavior"
+msgstr "Editorbeteende"
+
+#: optiondialog.cpp:732
+msgid "Tab inserts spaces"
+msgstr "Tabulator infogar mellanslag"
+
+#: optiondialog.cpp:735
+msgid ""
+"On: Pressing tab generates the appropriate number of spaces.\n"
+"Off: A tab character will be inserted."
+msgstr ""
+"På: Genom att trycka på tabulator, skapas lämpligt antal mellanslag.\n"
+"Av: Ett tabulatortecken infogas."
+
+#: optiondialog.cpp:741
+msgid "Tab size:"
+msgstr "Tabulatorbredd:"
+
+#: optiondialog.cpp:747
+msgid "Auto indentation"
+msgstr "Automatisk indentering"
+
+#: optiondialog.cpp:750
+msgid "On: The indentation of the previous line is used for a new line.\n"
+msgstr "På: Indentering av föregående rad används för en ny rad.\n"
+
+#: optiondialog.cpp:754
+msgid "Auto copy selection"
+msgstr "Kopiera automatiskt markering"
+
+#: optiondialog.cpp:757
+msgid ""
+"On: Any selection is immediately written to the clipboard.\n"
+"Off: You must explicitely copy e.g. via Ctrl-C."
+msgstr ""
+"På: Alla markeringar skrivs omedelbart till klippbordet.\n"
+"Av: Du måste kopiera explicit, t.ex. via Ctrl-C."
+
+#: optiondialog.cpp:768
+msgid "Dos/Windows"
+msgstr "DOS/Windows"
+
+#: optiondialog.cpp:769
+msgid "Autodetect"
+msgstr "Detektera automatiskt"
+
+#: optiondialog.cpp:772
+msgid ""
+"Sets the line endings for when an edited file is saved.\n"
+"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A"
+msgstr ""
+"Anger radsluten när en redigerad fil sparas.\n"
+"DOS/Windows: CR+LF, Unix: LF, med CR=0D och LF=0A"
+
+#: optiondialog.cpp:784
+msgid "Diff"
+msgstr "Jämför"
+
+#: optiondialog.cpp:785
+msgid "Diff Settings"
+msgstr "Inställningar av jämför"
+
+#: optiondialog.cpp:809
+msgid "Treat as white space."
+msgstr "Behandla som blanktecken."
+
+#: optiondialog.cpp:811
+msgid "Ignore numbers"
+msgstr "Ignorera siffror"
+
+#: optiondialog.cpp:814
+msgid ""
+"Ignore number characters during line matching phase. (Similar to Ignore "
+"white space.)\n"
+"Might help to compare files with numeric data."
+msgstr ""
+"Ignorera siffror när rader matchas. (Liknar ignorera blanktecken.)\n"
+"Kan hjälpa till att jämföra filer med numerisk data."
+
+#: optiondialog.cpp:819
+msgid "Ignore C/C++ comments"
+msgstr "Ignorera C/C++ kommentarer"
+
+#: optiondialog.cpp:821
+msgid "Treat C/C++ comments like white space."
+msgstr "Behandla C/C++ kommentarer som blanktecken."
+
+#: optiondialog.cpp:825
+msgid "Ignore case"
+msgstr "Ignorera skiftläge"
+
+#: optiondialog.cpp:828
+msgid "Treat case differences like white space changes. ('a'<=>'A')"
+msgstr "Behandla skiftlägesskillnader som blankteckenskillnader. ('a' <=> 'A')"
+
+#: optiondialog.cpp:832
+msgid "Preprocessor command:"
+msgstr "Preprocessorkommando:"
+
+#: optiondialog.cpp:836
+msgid "User defined pre-processing. (See the docs for details.)"
+msgstr ""
+"Användardefinierad förbehandling (Se dokumentationen för detaljinformation.)"
+
+#: optiondialog.cpp:839
+msgid "Line-matching preprocessor command:"
+msgstr "Preprocessorkommando för radmatchning:"
+
+#: optiondialog.cpp:843
+msgid ""
+"This pre-processor is only used during line matching.\n"
+"(See the docs for details.)"
+msgstr ""
+"Den här preprocessorn används bara under radmatchning.\n"
+"(Se dokumentationen för detaljinformation.)"
+
+#: optiondialog.cpp:846
+msgid "Try hard (slower)"
+msgstr "Var noggrann (långsammare)"
+
+#: optiondialog.cpp:849
+msgid ""
+"Enables the --minimal option for the external diff.\n"
+"The analysis of big files will be much slower."
+msgstr ""
+"Aktiverar väljaren --minimal för det externa verktyget diff.\n"
+"Analys av stora filer blir mycket långsammare."
+
+#: optiondialog.cpp:854
+msgid "Align B and C for 3 input files"
+msgstr "Justera B och C vid tre indatafiler"
+
+#: optiondialog.cpp:857
+msgid ""
+"Try to align B and C when comparing or merging three input files.\n"
+"Not recommended for merging because merge might get more complicated.\n"
+"(Default is off.)"
+msgstr ""
+"Försök justera B och C vid jämförelse eller sammanfogning av tre "
+"indatafiler.\n"
+"Rekommenderas inte vid sammanfogning eftersom den kan bli mer komplicerad\n"
+"(normalvärdet är av),"
+
+#: optiondialog.cpp:870
+msgid "Merge Settings"
+msgstr "Inställningar av sammanfoga"
+
+#: optiondialog.cpp:885
+msgid "Auto advance delay (ms):"
+msgstr "Fördröjning vid automatisk fortsättning (ms):"
+
+#: optiondialog.cpp:890
+msgid ""
+"When in Auto-Advance mode the result of the current selection is shown \n"
+"for the specified time, before jumping to the next conflict. Range: 0-2000 ms"
+msgstr ""
+"Vid läget automatisk fortsättning, visas resultatet av aktuell markering\n"
+"under den angivna tiden, innan det går vidare till nästa konflikt. "
+"Intervall: 0-2000 ms."
+
+#: optiondialog.cpp:895
+msgid "Show info dialogs"
+msgstr "Visa informationsdialogrutor"
+
+#: optiondialog.cpp:897
+msgid "Show a dialog with information about the number of conflicts."
+msgstr "Visa en dialogruta med information om antal konflikter."
+
+#: optiondialog.cpp:900
+msgid "White space 2-file merge default:"
+msgstr "Standardvärde för sammanfogning av blanktecken med två filer:"
+
+#: optiondialog.cpp:904 optiondialog.cpp:917
+msgid "Manual Choice"
+msgstr "Manuellt val"
+
+#: optiondialog.cpp:908 optiondialog.cpp:922
+msgid ""
+"Allow the merge algorithm to automatically select an input for white-space-"
+"only changes."
+msgstr ""
+"Tillåt att sammanfogningsalgoritmen automatiskt väljer indata för ändringar "
+"av bara blanktecken."
+
+#: optiondialog.cpp:913
+msgid "White space 3-file merge default:"
+msgstr "Standardvärde för sammanfogning av blanktecken med tre filer:"
+
+#: optiondialog.cpp:927
+msgid "Automatic Merge Regular Expression"
+msgstr "Automatisk sammanfogning med reguljärt uttryck"
+
+#: optiondialog.cpp:940
+msgid ""
+"Regular expression for lines where KDiff3 should automatically choose one "
+"source.\n"
+"When a line with a conflict matches the regular expression then\n"
+"- if available - C, otherwise B will be chosen."
+msgstr ""
+"Reguljärt uttryck för rader där Kdiff3 automatiskt ska välja en källa.\n"
+"När en rad med en konflikt matchar det reguljära uttrycket väljes -C\n"
+"om tillgängligt, annars väljes B."
+
+#: optiondialog.cpp:946
+msgid "Run regular expression auto merge on merge start"
+msgstr ""
+"Kör automatisk sammanfogning med reguljärt uttryck när sammanfogning startar"
+
+#: optiondialog.cpp:948
+msgid ""
+"Run the merge for auto merge regular expressions\n"
+"immediately when a merge starts.\n"
+msgstr ""
+"Kör automatisk sammanfogning med reguljärt\n"
+"uttryck omedelbart när en sammanfogning startar.\n"
+
+#: optiondialog.cpp:953
+msgid "Version Control History Merging"
+msgstr "Sammanfogning enligt versionshanteringshistorik"
+
+#: optiondialog.cpp:966
+msgid ""
+"Regular expression for the start of the version control history entry.\n"
+"Usually this line contains the \"$Log$\" keyword.\n"
+"Default value: \".*\\$Log.*\\$.*\""
+msgstr ""
+"Reguljärt uttryck för början av versionshanteringens historikpost.\n"
+"Oftast innehåller raden nyckelordet  \"$Log$\".\n"
+"Standardvärde:  \".*\\$Log.*\\$.*\""
+
+#: optiondialog.cpp:984
+msgid ""
+"A version control history entry consists of several lines.\n"
+"Specify the regular expression to detect the first line (without the leading "
+"comment).\n"
+"Use parentheses to group the keys you want to use for sorting.\n"
+"If left empty, then KDiff3 assumes that empty lines separate history "
+"entries.\n"
+"See the documentation for details."
+msgstr ""
+"En av versionshanteringens historikposter består av flera rader.\n"
+"Ange det reguljära uttrycket för att detektera första raden (utan den "
+"inledande kommentaren).\n"
+"Använd parenteser för att gruppera nycklarna du vill använda för sortering.\n"
+"Om det lämnas tomt, antar Kdiff3 att tomma rader skiljer historikposterna "
+"åt.\n"
+"Se dokumentationen för detaljinformation."
+
+#: optiondialog.cpp:992
+msgid "History merge sorting"
+msgstr "Sortering av historiksammanfogning"
+
+#: optiondialog.cpp:994
+msgid "Sort version control history by a key."
+msgstr "Sortera versionshanteringshistoriken med en nyckel."
+
+#: optiondialog.cpp:1004
+msgid "History entry start sort key order:"
+msgstr "Sorteringsnycklarnas ordning från historikpostens början:"
+
+#: optiondialog.cpp:1008
+msgid ""
+"Each pair of parentheses used in the regular expression for the history "
+"start entry\n"
+"groups a key that can be used for sorting.\n"
+"Specify the list of keys (that are numbered in order of occurrence\n"
+"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n"
+"If left empty, then no sorting will be done.\n"
+"See the documentation for details."
+msgstr ""
+"Varje parentes som används i det reguljära uttrycket för historikpostens "
+"början\n"
+"grupperar en nyckel som kan användas för sortering.\n"
+"Ange listan med nycklar (som numreras i den ordning de förekommer med\n"
+"början på 1), med användning av ',' som skiljetecken (t.ex. "
+"\"4,5,6,1,2,3,7\").\n"
+"Om det lämnas tomt, görs ingen sortering.\n"
+"Se dokumentationen för detaljinformation."
+
+#: optiondialog.cpp:1019
+msgid "Merge version control history on merge start"
+msgstr ""
+"Sammanfogning enligt versionshanteringshistorik när sammanfogning startar"
+
+#: optiondialog.cpp:1021
+msgid "Run version control history automerge on merge start."
+msgstr ""
+"Kör automatisk sammanfogning enligt versionshanteringshistorik när "
+"sammanfogning startar."
+
+#: optiondialog.cpp:1025
+msgid "Max number of history entries:"
+msgstr "Maximalt antal historikposter:"
+
+#: optiondialog.cpp:1028
+msgid "Cut off after specified number. Use -1 for infinite number of entries."
+msgstr "Skär bort efter angivet antal. Använd -1 för obegränsat antal poster."
+
+#: optiondialog.cpp:1032
+msgid "Test your regular expressions"
+msgstr "Prova dina reguljära uttryck"
+
+#: optiondialog.cpp:1037
+msgid "Irrelevant merge command:"
+msgstr "Ej relevant sammanfogningskommando:"
+
+#: optiondialog.cpp:1041
+msgid ""
+"If specified this script is run after automerge\n"
+"when no other relevant changes were detected.\n"
+"Called with the parameters: filename1 filename2 filename3"
+msgstr ""
+"Om angivet körs det här skriptet efter automatisk sammanfogning\n"
+"när inga andra relevanta ändringar detekterades.\n"
+"Anropas med parametrarna: filnamn1 filnamn2 filnamn3"
+
+#: optiondialog.cpp:1047
+msgid "Auto save and quit on merge without conflicts"
+msgstr "Spara automatiskt och avsluta vid sammanfogning utan konflikter"
+
+#: optiondialog.cpp:1050
+msgid ""
+"If KDiff3 was started for a file-merge from the command line and all\n"
+"conflicts are solvable without user interaction then automatically save and "
+"quit.\n"
+"(Similar to command line option \"--auto\".)"
+msgstr ""
+"När Kdiff3 startas från kommandoraden för en filsammanfogning och alla\n"
+"konflikter kan lösas utan användarinteraktion, spara då automatiskt och "
+"avsluta.\n"
+"(Liknar kommandoradsväljaren \"--auto\".)"
+
+#: optiondialog.cpp:1061 optiondialog.cpp:1062
+msgid "Directory"
+msgstr "Katalog"
+
+#: optiondialog.cpp:1075
+msgid "Recursive directories"
+msgstr "Rekursiva kataloger"
+
+#: optiondialog.cpp:1077
+msgid "Whether to analyze subdirectories or not."
+msgstr "Om underkataloger ska analyseras eller inte."
+
+#: optiondialog.cpp:1079
+msgid "File pattern(s):"
+msgstr "Mönster för filer:"
+
+#: optiondialog.cpp:1084
+msgid ""
+"Pattern(s) of files to be analyzed. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Mönster för filer som ska analyseras.\n"
+"Jokertecken: '*' och '?'\n"
+"Flera mönster kan anges genom att använda skiljetecknet ';'"
+
+#: optiondialog.cpp:1090
+msgid "File-anti-pattern(s):"
+msgstr "Undantagsmönster för filer:"
+
+#: optiondialog.cpp:1095
+msgid ""
+"Pattern(s) of files to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Mönster för filer som ska undantas från analys.\n"
+"Jokertecken: '*' och '?'\n"
+"Flera mönster kan anges genom att använda skiljetecknet ';'"
+
+#: optiondialog.cpp:1101
+msgid "Dir-anti-pattern(s):"
+msgstr "Undantagsmönster för kataloger:"
+
+#: optiondialog.cpp:1106
+msgid ""
+"Pattern(s) of directories to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Mönster för kataloger som ska undantas från analys.\n"
+"Jokertecken: '*' och '?'\n"
+"Flera mönster kan anges genom att använda skiljetecknet ';'"
+
+#: optiondialog.cpp:1112
+msgid "Use .cvsignore"
+msgstr "Använd .cvsignore"
+
+#: optiondialog.cpp:1115
+msgid ""
+"Extends the antipattern to anything that would be ignored by CVS.\n"
+"Via local \".cvsignore\" files this can be directory specific."
+msgstr ""
+"Utökar undantagsmönster med allt som skulle ignoreras av CVS.\n"
+"Med lokala \".cvsignore\" filer, kan det vara katalogspecifikt."
+
+#: optiondialog.cpp:1120
+msgid "Find hidden files and directories"
+msgstr "Sök efter gömda filer och kataloger"
+
+#: optiondialog.cpp:1123
+msgid "Finds files and directories with the hidden attribute."
+msgstr "Söker efter filer och kataloger med egenskapen gömd."
+
+#: optiondialog.cpp:1125
+msgid "Finds files and directories starting with '.'."
+msgstr "Söker efter filer och kataloger som börjar med '.'."
+
+#: optiondialog.cpp:1129
+msgid "Follow file links"
+msgstr "Följ fillänkar"
+
+#: optiondialog.cpp:1132
+msgid ""
+"On: Compare the file the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+"På: Jämför filen som länken pekar på.\n"
+"Av: Jämför länkarna."
+
+#: optiondialog.cpp:1137
+msgid "Follow directory links"
+msgstr "Följ kataloglänkar"
+
+#: optiondialog.cpp:1140
+msgid ""
+"On: Compare the directory the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+"På: Jämför katalogen som länken pekar på.\n"
+"Av: Jämför länkarna."
+
+#: optiondialog.cpp:1156
+msgid "Case sensitive filename comparison"
+msgstr "Skiftlägeskänslig filnamnsjämförelse"
+
+#: optiondialog.cpp:1159
+msgid ""
+"The directory comparison will compare files or directories when their names "
+"match.\n"
+"Set this option if the case of the names must match. (Default for Windows is "
+"off, otherwise on.)"
+msgstr ""
+"Katalogjämförelsen jämför filer eller kataloger när deras namn matchar.\n"
+"Ange alternativet om namnens skiftläge måste matcha. (Normalvärdet för "
+"Windows är av, annars på.)"
+
+#: optiondialog.cpp:1163
+msgid "File Comparison Mode"
+msgstr "Filjämförelseläge"
+
+#: optiondialog.cpp:1169
+msgid "Binary comparison"
+msgstr "Binär jämförelse"
+
+#: optiondialog.cpp:1170
+msgid "Binary comparison of each file. (Default)"
+msgstr "Binär jämförelse av varje fil. (Standardvärde)"
+
+#: optiondialog.cpp:1173
+msgid "Full analysis"
+msgstr "Fullständig analys"
+
+#: optiondialog.cpp:1174
+msgid ""
+"Do a full analysis and show statistics information in extra columns.\n"
+"(Slower than a binary comparison, much slower for binary files.)"
+msgstr ""
+"Gör en fullständig analys och visa statistisk information i extra kolumner.\n"
+"(Långsammare än binär jämförelse, mycket långsammare för binärfiler.)"
+
+#: optiondialog.cpp:1178
+msgid "Trust the size and modification date (unsafe)"
+msgstr "Lita på storlek och ändringsdatum (inte säkert)"
+
+#: optiondialog.cpp:1179
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"Files with equal contents but different modification dates will appear as "
+"different.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"Antar att filer är lika om ändringsdatum och fillängden är lika.\n"
+"Filer med lika innehåll men olika ändringsdatum kommer att verka vara "
+"olika.\n"
+"Användbar för stora kataloger eller långsamma nätverk."
+
+#: optiondialog.cpp:1184
+msgid ""
+"Trust the size and date, but use binary comparison if date does not match "
+"(unsafe)"
+msgstr ""
+"Lita på storlek och datum, men använd binärjämförelse om datum inte stämmer "
+"(inte säkert)"
+
+#: optiondialog.cpp:1185
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"If the dates are not equal but the sizes are, use binary comparison.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"Antar att filer är lika om ändringsdatum och fillängden är lika.\n"
+"Om datumen inte är lika men storlekarna är det, används binärjämförelse.\n"
+"Användbar för stora kataloger eller långsamma nätverk."
+
+#: optiondialog.cpp:1190
+msgid "Trust the size (unsafe)"
+msgstr "Lita på storleken (inte säkert)"
+
+#: optiondialog.cpp:1191
+msgid ""
+"Assume that files are equal if their file lengths are equal.\n"
+"Useful for big directories or slow networks when the date is modified during "
+"download."
+msgstr ""
+"Antar att filer är lika om deras fillängder är lika.\n"
+"Användbar för stora kataloger eller långsamma nätverk när datum ändras under "
+"nerladdning."
+
+#: optiondialog.cpp:1199
+msgid "Synchronize directories"
+msgstr "Synkronisera kataloger"
+
+#: optiondialog.cpp:1202
+msgid ""
+"Offers to store files in both directories so that\n"
+"both directories are the same afterwards.\n"
+"Works only when comparing two directories without specifying a destination."
+msgstr ""
+"Erbjuder att lagra filer i båda katalogerna, så att båda\n"
+"blir likadana efteråt. Fungerar bara när två kataloger\n"
+"jämförs och ingen målkatalog anges."
+
+#: optiondialog.cpp:1208
+msgid "White space differences considered equal"
+msgstr "Skillnader i blanktecken anses lika"
+
+#: optiondialog.cpp:1211
+msgid ""
+"If files differ only by white space consider them equal.\n"
+"This is only active when full analysis is chosen."
+msgstr ""
+"Om filer bara skiljer sig med blanktecken, anse dem lika.\n"
+"Det här är bara aktiverat när fullständig analys väljes."
+
+#: optiondialog.cpp:1217
+msgid "Copy newer instead of merging (unsafe)"
+msgstr "Kopiera nyare istället för att sammanfoga (inte säkert)"
+
+#: optiondialog.cpp:1220
+msgid ""
+"Don't look inside, just take the newer file.\n"
+"(Use this only if you know what you are doing!)\n"
+"Only effective when comparing two directories."
+msgstr ""
+"Titta inte i filen, utan använd bara den nyaste filen.\n"
+"(Använd bara det här om du vet vad du gör!)\n"
+"Har bara någon effekt när två kataloger jämförs."
+
+#: optiondialog.cpp:1225
+msgid "Backup files (.orig)"
+msgstr "Säkerhetskopior (.orig)"
+
+#: optiondialog.cpp:1228
+msgid ""
+"If a file would be saved over an old file, then the old file\n"
+"will be renamed with a '.orig' extension instead of being deleted."
+msgstr ""
+"När en fil skulle sparas och en gammal fil redan finns, kommer den\n"
+"gamla filen att döpas om med filändelsen '.orig' istället för att tas bort."
+
+#: optiondialog.cpp:1301 optiondialog.cpp:1302
+msgid "Regional Settings"
+msgstr "Regionsinställningar"
+
+#: optiondialog.cpp:1402
+msgid "Language (restart required)"
+msgstr "Språk (omstart krävs)"
+
+#: optiondialog.cpp:1445
+msgid ""
+"Choose the language of the GUI strings or \"Auto\".\n"
+"For a change of language to take place, quit and restart KDiff3."
+msgstr ""
+"Välj språk för strängarna i det grafiska gränssnittet eller \"Automatisk\".\n"
+"För att språkbytet ska ske, avsluta och starta om Kdiff3."
+
+#: optiondialog.cpp:1463
+msgid "Use the same encoding for everything:"
+msgstr "Använd samma kodning för allt:"
+
+#: optiondialog.cpp:1466
+msgid ""
+"Enable this allows to change all encodings by changing the first only.\n"
+"Disable this if different individual settings are needed."
+msgstr ""
+"Att aktivera det här låter dig ändra alla kodningar genom att bara ändra den "
+"första.\n"
+"Inaktivera det om olika individuella inställningar behövs."
+
+#: optiondialog.cpp:1471
+msgid "Note: Local Encoding is "
+msgstr "Observera: Lokal kodning är "
+
+#: optiondialog.cpp:1475
+msgid "File Encoding for A:"
+msgstr "Filkodning för A:"
+
+#: optiondialog.cpp:1481
+msgid ""
+"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n"
+"If the file is not Unicode then the selected encoding will be used as "
+"fallback.\n"
+"(Unicode detection depends on the first bytes of a file.)"
+msgstr ""
+"Om aktiverad detekteras Unicode-kodning (UTF-16 eller UTF-8).\n"
+"Om filens kodning inte kan detekteras, används den valda kodningen som "
+"reserv.\n"
+"(Detektering av Unicode beror på den första byten i en fil.)"
+
+#: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503
+msgid "Auto Detect Unicode"
+msgstr "Detektera automatiskt Unicode"
+
+#: optiondialog.cpp:1490
+msgid "File Encoding for B:"
+msgstr "Filkodning för B:"
+
+#: optiondialog.cpp:1499
+msgid "File Encoding for C:"
+msgstr "Filkodning för C:"
+
+#: optiondialog.cpp:1508
+msgid "File Encoding for Merge Output and Saving:"
+msgstr "Filkodning för sammanfogad utdata och vid spara:"
+
+#: optiondialog.cpp:1512
+msgid "Auto Select"
+msgstr "Automatiskt markering"
+
+#: optiondialog.cpp:1515
+msgid ""
+"If enabled then the encoding from the input files is used.\n"
+"In ambiguous cases a dialog will ask the user to choose the encoding for "
+"saving."
+msgstr ""
+"Om aktiverad används indatafilernas kodning.\n"
+"I tvetydiga fall ombedes användaren att välja kodning för att spara med en "
+"dialogruta."
+
+#: optiondialog.cpp:1519
+msgid "File Encoding for Preprocessor Files:"
+msgstr "Filkodning för preprocessorfiler:"
+
+#: optiondialog.cpp:1530
+msgid "Right To Left Language"
+msgstr "Språk som läses från höger till vänster"
+
+#: optiondialog.cpp:1533
+msgid ""
+"Some languages are read from right to left.\n"
+"This setting will change the viewer and editor accordingly."
+msgstr ""
+"Vissa språk läses från höger till vänster.\n"
+"Inställningen ändrar visningen och editorn på motsvarande sätt."
+
+#: optiondialog.cpp:1548
+msgid "Integration"
+msgstr "Integrering"
+
+#: optiondialog.cpp:1549
+msgid "Integration Settings"
+msgstr "Integreringsinställningar"
+
+#: optiondialog.cpp:1563
+msgid "Command line options to ignore:"
+msgstr "Kommandoradsväljare att ignorera:"
+
+#: optiondialog.cpp:1568
+msgid ""
+"List of command line options that should be ignored when KDiff3 is used by "
+"other tools.\n"
+"Several values can be specified if separated via ';'\n"
+"This will suppress the \"Unknown option\" error."
+msgstr ""
+"Lista med kommandoradsväljare som ska ignoreras när Kdiff3 används av andra "
+"verktyg.\n"
+"Flera värden kan anges om de åtskiljs av ';'\n"
+"Detta undertrycker felmeddelandet \"Okänd väljare\"."
+
+#: optiondialog.cpp:1575
+msgid "Quit also via Escape key"
+msgstr "Avsluta också via Esc-tangenten"
+
+#: optiondialog.cpp:1578
+msgid ""
+"Fast method to exit.\n"
+"For those who are used to using the Escape key."
+msgstr ""
+"Snabb metod att avsluta.\n"
+"För de som är vana vid att använda Esc-tangenten."
+
+#: optiondialog.cpp:1583
+msgid "Integrate with ClearCase"
+msgstr "Integrering med Clearcase"
+
+#: optiondialog.cpp:1586
+msgid ""
+"Integrate with Rational ClearCase from IBM.\n"
+"Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n"
+"(Only enabled when ClearCase \"bin\" directory is in the path.)"
+msgstr ""
+"Integrera med Rational Clearcase från IBM.\n"
+"Ändrar \"map\"-filen i Clearcase-underkatalogen \"lib/mgrs\"\n"
+"(Bara aktiverat när Clearcase-katalogen \"bin\" finns i sökvägen.)"
+
+#: optiondialog.cpp:1592
+msgid "Remove ClearCase Integration"
+msgstr "Avbryt integrering med Clearcase"
+
+#: optiondialog.cpp:1595
+msgid ""
+"Restore the old \"map\" file from before doing the ClearCase integration."
+msgstr ""
+"Återställ den gamla \"map\"-filen som användes innan integrering med "
+"Clearcase."
+
+#: optiondialog.cpp:1680
+msgid "Incompatible Font"
+msgstr "Olämpligt teckensnitt"
+
+#: optiondialog.cpp:1681
+msgid "Continue at Own Risk"
+msgstr "Fortsätt på egen risk"
+
+#: optiondialog.cpp:1682
+msgid "Select Another Font"
+msgstr "Välj ett annat teckensnitt"
+
+#: optiondialog.cpp:1717
+msgid "This resets all options. Not only those of the current topic."
+msgstr "Det här återställer alla alternativ, inte bara de i nuvarande ämne."
+
+#: pdiff.cpp:260
+msgid "PreprocessorCmd: "
+msgstr "Preprocessorkommando: "
+
+#: pdiff.cpp:265
+msgid "The following option(s) you selected might change data:\n"
+msgstr "Följande alternativ du valde kan ändra data:\n"
+
+#: pdiff.cpp:266
+msgid ""
+"\n"
+"Most likely this is not wanted during a merge.\n"
+"Do you want to disable these settings or continue with these settings active?"
+msgstr ""
+"\n"
+"Troligen är det inte önskvärt under en sammanfogning.\n"
+"Vill du inaktivera inställningarna eller fortsätta med inställningarna "
+"aktiva?"
+
+#: pdiff.cpp:268
+msgid "Option Unsafe for Merging"
+msgstr "Alternativ osäkert vid sammanfogning"
+
+#: pdiff.cpp:269
+msgid "Use These Options During Merge"
+msgstr "Använd alternativen under sammanfogningen"
+
+#: pdiff.cpp:270
+msgid "Disable Unsafe Options"
+msgstr "Inaktivera osäkra alternativ"
+
+#: pdiff.cpp:300
+msgid "Loading A"
+msgstr "Laddar A"
+
+#: pdiff.cpp:304
+msgid "Loading B"
+msgstr "Laddar B"
+
+#: pdiff.cpp:321 pdiff.cpp:347
+msgid "Diff: A <-> B"
+msgstr "Jämförelse: A <-> B"
+
+#: pdiff.cpp:327 pdiff.cpp:372
+msgid "Linediff: A <-> B"
+msgstr "Radjämförelse: A <-> B"
+
+#: pdiff.cpp:338
+msgid "Loading C"
+msgstr "Laddar C"
+
+#: pdiff.cpp:350
+msgid "Diff: B <-> C"
+msgstr "Jämförelse: B <-> C"
+
+#: pdiff.cpp:353
+msgid "Diff: A <-> C"
+msgstr "Jämförelse: A <-> C"
+
+#: pdiff.cpp:375
+msgid "Linediff: B <-> C"
+msgstr "Radjämförelse: B <-> C"
+
+#: pdiff.cpp:378
+msgid "Linediff: A <-> C"
+msgstr "Radjämförelse: A <-> C"
+
+#: pdiff.cpp:534
+msgid "All input files contain the same text, but are not binary equal."
+msgstr "Alla indatafiler innehåller samma text, men är inte binärt likadana."
+
+#: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541
+#, kde-format
+msgid "Files %1 and %2 have equal text, but are not binary equal. \n"
+msgstr "Filerna %1 och %2 har samma text, men är inte binärt likadana.\n"
+
+#: pdiff.cpp:551
+msgid ""
+"Some inputfiles don't seem to be pure textfiles.\n"
+"Note that the KDiff3-merge was not meant for binary data.\n"
+"Continue at your own risk."
+msgstr ""
+"Vissa indatafiler verkar inte vara rena textfiler.\n"
+"Observera att Kdiff3:s sammanfogning inte är avsedd för binärdata.\n"
+"Fortsätt på egen risk."
+
+#: pdiff.cpp:566
+#, kde-format
+msgid ""
+"Some input characters could not be converted to valid unicode.\n"
+"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n"
+"Don't save the result if unsure. Continue at your own risk.\n"
+"Affected input files are in %1."
+msgstr ""
+"Vissa indatatecken kunde inte konverteras till giltig Unicode.\n"
+"Du kanske använder fel avkodare (t.ex. UTF-8 för filer som inte använder "
+"UTF-8).\n"
+"Spara inte resultatet om du är osäker. Fortsätt på egen risk.\n"
+"Berörda indatafiler finns i %1."
+
+#: pdiff.cpp:1080
+msgid "Abort"
+msgstr "Avbryt"
+
+#: pdiff.cpp:1087 pdiff.cpp:1175
+msgid "Opening files..."
+msgstr "Öppnar filer..."
+
+#: pdiff.cpp:1152 pdiff.cpp:1223
+msgid "File open error"
+msgstr "Fel när filen öppnades"
+
+#: pdiff.cpp:1255
+msgid "Cutting selection..."
+msgstr "Klipper ut markering..."
+
+#: pdiff.cpp:1276
+msgid "Copying selection to clipboard..."
+msgstr "Kopierar markering till klippbord..."
+
+#: pdiff.cpp:1292
+msgid "Inserting clipboard contents..."
+msgstr "Infogar klippbordets innehåll..."
+
+#: pdiff.cpp:1814
+msgid "Save && Continue"
+msgstr "Spara och fortsätt"
+
+#: pdiff.cpp:1815
+msgid "Continue Without Saving"
+msgstr "Fortsätt utan att spara"
+
+#: pdiff.cpp:2018
+msgid "Search complete."
+msgstr "Sökning färdig."
+
+#: pdiff.cpp:2018
+msgid "Search Complete"
+msgstr "Sökning färdig"
+
+#: pdiff.cpp:2252
+msgid "Nothing is selected in either diff input window."
+msgstr "Ingenting är markerad i något indatafönster med jämförelse."
+
+#: pdiff.cpp:2252
+msgid "Error while adding manual diff range"
+msgstr "Fel vid tillägg av manuellt jämförelseintervall"
+
+#: kdiff3_shell.cpp:76
+msgid ""
+"Could not initialize the KDiff3 part.\n"
+"This usually happens due to an installation problem. Please read the README-"
+"file in the source package for details."
+msgstr ""
+"Kunde inte initiera Kdiff3-delprogrammet.\n"
+"Detta händer oftast beroende på ett installationsproblem. Läs filen README i "
+"källkodspaketet för detaljinformation."
+
+#: rc.cpp:1
+msgctxt "NAME OF TRANSLATORS"
+msgid "Your names"
+msgstr "Stefan Asserhäll"
+
+#: rc.cpp:2
+msgctxt "EMAIL OF TRANSLATORS"
+msgid "Your emails"
+msgstr "stefan.asserhall@comhem.se"
+
+#. i18n: file: kdiff3_part.rc:4
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:5
+msgid "&KDiff3"
+msgstr "&Kdiff3"
+
+#. i18n: file: kdiff3_part.rc:13
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:8
+msgid "Configure KDiff3"
+msgstr "Anpassa Kdiff3"
+
+#. i18n: file: kdiff3_part.rc:16
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:11
+msgid "KDiff3"
+msgstr "Kdiff3"
+
+#. i18n: file: kdiff3_shell.rc:106
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:38
+msgid "Main Toolbar"
+msgstr "Huvudverktygsrad"
diff --git a/po/sv/kdiff3fileitemactionplugin.po b/po/sv/kdiff3fileitemactionplugin.po
new file mode 100644 (file)
index 0000000..1fe7ead
--- /dev/null
@@ -0,0 +1,97 @@
+# Copyright (C) YEAR This_file_is_part_of_KDE
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Last-Translator: Stefan Asserhall <stefan.asserhall@comhem.se>, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-05-06 17:00+0200\n"
+"Last-Translator: Stefan Asserhall <stefan.asserhall@comhem.se>\n"
+"Language-Team: Swedish <kde-i18n-doc@kde.org>\n"
+"Language: sv\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.2\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: kdiff3fileitemaction.cpp:94
+msgid "KDiff3 ..."
+msgstr "Kdiff3..."
+
+#: kdiff3fileitemaction.cpp:125
+#, kde-format
+msgid "Compare with %1"
+msgstr "Jämför med %1"
+
+#: kdiff3fileitemaction.cpp:131
+#, kde-format
+msgid "Merge with %1"
+msgstr "Sammanfoga med %1"
+
+#: kdiff3fileitemaction.cpp:137
+#, kde-format
+msgid "Save '%1' for later"
+msgstr "Spara '%1' till senare"
+
+#: kdiff3fileitemaction.cpp:143
+msgid "3-way merge with base"
+msgstr "Trevägs sammanfogning med bas"
+
+#: kdiff3fileitemaction.cpp:150
+msgid "Compare with ..."
+msgstr "Jämför med..."
+
+#: kdiff3fileitemaction.cpp:162
+msgid "Clear list"
+msgstr "Rensa lista"
+
+#: kdiff3fileitemaction.cpp:170
+msgid "Compare"
+msgstr "Jämför"
+
+#: kdiff3fileitemaction.cpp:176
+msgid "3 way comparison"
+msgstr "Trevägs jämförelse"
+
+#: kdiff3fileitemaction.cpp:180
+msgid "About KDiff3 menu plugin ..."
+msgstr "Om Kdiff3:s menyinsticksprogram..."
+
+#: kdiff3fileitemaction.cpp:284
+msgid ""
+"KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+"Kdiff3-insticksprogram för filobjektåtgärder: Copyright © 2011 Joachim Eibl\n"
+"Kdiff3-hemsida: http://kdiff3.sourceforge.net\n"
+"\n"
+
+#: kdiff3fileitemaction.cpp:286
+msgid ""
+"Using the contextmenu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else \"Save\" the first file for later. It "
+"will appear in the \"Compare With ...\" submenu. Then use \"Compare With\" "
+"on second file.\n"
+"For a 3-way merge first \"Save\" the base file, then the branch to merge and "
+"choose \"3-way merge with base\" on the other branch which will be used as "
+"destination.\n"
+"Same also applies to directory comparison and merge."
+msgstr ""
+"Hur man använder utökningen av den sammanhangsberoende menyn:\n"
+"För enkel jämförelse av två utvalda filer, välj \"Jämför\".\n"
+"Om den andra filen finns någon annanstans, \"Spara\" den första filen till "
+"senare. Den visas i undermenyn \"Jämför med...\". Använd därefter \"Jämför "
+"med\" för den andra filen.\n"
+"För en trevägs sammanfogning, \"Spara\" först basfilen, därefter grenen som "
+"ska sammanfogas och välj \"Trevägs sammanfogning med bas\" i den andra "
+"grenen, som kommer att användas som resultat.\n"
+"Detsamma gäller också för jämförelse och sammanfogning av kataloger."
+
+#: kdiff3fileitemaction.cpp:294
+msgid "About KDiff3 File Item Action Plugin"
+msgstr "Om Kdiff3:s insticksprogram för filobjektåtgärder"
diff --git a/po/sv/kdiff3plugin.po b/po/sv/kdiff3plugin.po
new file mode 100644 (file)
index 0000000..fa8d477
--- /dev/null
@@ -0,0 +1,98 @@
+# translation of kdiff3plugin.po to Swedish
+# Copyright (C) YEAR This_file_is_part_of_KDE
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Stefan Asserhäll <stefan.asserhall@comhem.se>, 2008, 2009, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3plugin\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-05-02 21:06+0200\n"
+"Last-Translator: Stefan Asserhall <stefan.asserhall@comhem.se>\n"
+"Language-Team: Swedish <kde-i18n-doc@kde.org>\n"
+"Language: sv\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.2\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: kdiff3plugin.cpp:107
+msgid "KDiff3"
+msgstr "Kdiff3"
+
+#: kdiff3plugin.cpp:114
+#, kde-format
+msgid "Compare with %1"
+msgstr "Jämför med %1"
+
+#: kdiff3plugin.cpp:120
+#, kde-format
+msgid "Merge with %1"
+msgstr "Sammanfoga med %1"
+
+#: kdiff3plugin.cpp:126
+#, kde-format
+msgid "Save '%1' for later"
+msgstr "Spara '%1' till senare"
+
+#: kdiff3plugin.cpp:132
+msgid "3-way merge with base"
+msgstr "Trevägs sammanfogning med bas"
+
+#: kdiff3plugin.cpp:139
+msgid "Compare with ..."
+msgstr "Jämför med..."
+
+#: kdiff3plugin.cpp:149
+msgid "Clear list"
+msgstr "Rensa lista"
+
+#: kdiff3plugin.cpp:157
+msgid "Compare"
+msgstr "Jämför"
+
+#: kdiff3plugin.cpp:163
+msgid "3 way comparison"
+msgstr "Trevägs jämförelse"
+
+#: kdiff3plugin.cpp:167
+msgid "About KDiff3 menu plugin ..."
+msgstr "Om Kdiff3:s menyinsticksprogram..."
+
+#: kdiff3plugin.cpp:269
+msgid ""
+"KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+"KDiff3:s menyinsticksprogram: Copyright © 2008 Joachim Eibl\n"
+"KDiff3:s hemsida: http://kdiff3.sourceforge.net\n"
+"\n"
+
+#: kdiff3plugin.cpp:271
+msgid ""
+"Using the context menu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else, \"Save\" the first file for later, and "
+"it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With"
+"\" on the second file.\n"
+"For a 3-way merge first, \"Save\" the base file, then the branch to merge, "
+"and then \"3-way merge with base\" on the other branch which will be used as "
+"the destination.\n"
+"The same also applies to directory comparison and merge."
+msgstr ""
+"Hur man använder utökningen i den sammanhangsberoende menyn:\n"
+"För enkel jämförelse av två utvalda filer, välj \"Jämför\".\n"
+"Om den andra filen finns någon annanstans, \"Spara\" den första filen till "
+"senare. Den visas i undermenyn \"Jämför med...\". Använd därefter \"Jämför "
+"med\" för den andra filen.\n"
+"För en trevägs sammanfogning, \"Spara\" först basfilen, därefter grenen som "
+"ska sammanfogas och välj \"Trevägs sammanfogning med bas\" i den andra "
+"grenen, som kommer att användas som resultat.\n"
+"Detsamma gäller också för jämförelse och sammanfogning av kataloger."
+
+#: kdiff3plugin.cpp:279
+msgid "About KDiff3 Menu Plugin"
+msgstr "Om Kdiff3:s menyinsticksprogram"
diff --git a/po/ta/CMakeLists.txt b/po/ta/CMakeLists.txt
new file mode 100644 (file)
index 0000000..ff62992
--- /dev/null
@@ -0,0 +1,2 @@
+file(GLOB _po_files *.po)
+GETTEXT_PROCESS_PO_FILES(ta ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
diff --git a/po/ta/kdiff3.po b/po/ta/kdiff3.po
new file mode 100644 (file)
index 0000000..7b12934
--- /dev/null
@@ -0,0 +1,3327 @@
+# translation of kdiff3.po to 
+# translation of kdiff3.po to
+# translation of kdiff3.po to
+# translation of kdiff3.po to Tamil
+# Copyright (C) 2004 Free Software Foundation, Inc.
+# , 2004.
+# , 2004.
+# , 2004.
+# , 2004.
+# , 2004.
+# , 2004.
+# , 2004.
+# , 2004.
+# , 2004.
+# , 2004.
+# , 2004.
+# , 2004.
+# , 2004.
+# , 2004.
+# , 2004.
+# Ambalam <tamilpc@ambalam.com>, 2004.
+# root <root@localhost.localdomain>, 2004.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2004-08-24 04:28+0530\n"
+"Last-Translator: I. Felix <ifelix25@yahoo.co.in>\n"
+"Language-Team:  <ta@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: kreplacements/kreplacements.h:105
+#, fuzzy
+#| msgid "C&ontinue"
+msgid "Continue"
+msgstr "தொடர்தல்"
+
+#: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158
+#: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512
+msgid "Cancel"
+msgstr ""
+
+#: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631
+msgid "Quit"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339
+msgid "Ok"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715
+msgid "Help"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:185
+msgid "Defaults"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:4
+#. i18n: ectx: Menu (file)
+#: kreplacements/kreplacements.cpp:296 rc.cpp:14
+#, fuzzy
+#| msgid "File..."
+msgid "&File"
+msgstr "கோப்பு"
+
+#: kreplacements/kreplacements.cpp:297
+#, fuzzy
+#| msgid "Editor"
+msgid "&Edit"
+msgstr "திருத்தியவர்"
+
+#. i18n: file: kdiff3_shell.rc:7
+#. i18n: ectx: Menu (directory)
+#: kreplacements/kreplacements.cpp:298 rc.cpp:17
+msgid "&Directory"
+msgstr "அடைவு"
+
+#. i18n: file: kdiff3_shell.rc:50
+#. i18n: ectx: Menu (movement)
+#: kreplacements/kreplacements.cpp:301 rc.cpp:26
+msgid "&Movement"
+msgstr "நகர்த்துவது "
+
+#. i18n: file: kdiff3_shell.rc:61
+#. i18n: ectx: Menu (diff)
+#: kreplacements/kreplacements.cpp:302 rc.cpp:29
+msgid "D&iffview"
+msgstr "வித்தியாச பார்வை"
+
+#. i18n: file: kdiff3_shell.rc:73
+#. i18n: ectx: Menu (merge)
+#: kreplacements/kreplacements.cpp:303 rc.cpp:32
+msgid "&Merge"
+msgstr "ஒன்றாகச்சேர்"
+
+#. i18n: file: kdiff3_shell.rc:95
+#. i18n: ectx: Menu (window)
+#: kreplacements/kreplacements.cpp:304 rc.cpp:35
+msgid "&Window"
+msgstr "சாளரங்கள்"
+
+#: kreplacements/kreplacements.cpp:305
+#, fuzzy
+msgid "&Settings"
+msgstr "வேறுபாடு & சேர்த்திடு அமைப்புகள்"
+
+#: kreplacements/kreplacements.cpp:306
+msgid "&Help"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:353
+#, fuzzy
+#| msgid "Abort"
+msgid "&About"
+msgstr "விடுதல்"
+
+#: kreplacements/kreplacements.cpp:369
+msgid "A&uthor"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:383
+msgid "&Thanks To"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:30
+#. i18n: ectx: Menu (dir_current_merge_menu)
+#: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497
+#: rc.cpp:20
+msgid "Current Item Merge Operation"
+msgstr "நடப்பு உருப்படி ஒற்றிணை செயற்பாடு "
+
+#. i18n: file: kdiff3_shell.rc:38
+#. i18n: ectx: Menu (dir_current_sync_menu)
+#: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498
+#: rc.cpp:23
+msgid "Current Item Sync Operation"
+msgstr "நடப்பு உருப்படி இசைவு செயற்பாடு"
+
+#: kreplacements/kreplacements.cpp:597
+#, fuzzy
+#| msgid "Operation"
+msgid "Open"
+msgstr "இயக்கம்."
+
+#: kreplacements/kreplacements.cpp:606
+#, fuzzy
+#| msgid "Solved"
+msgid "Save"
+msgstr "Solved"
+
+#: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720
+msgid "Save As..."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:623
+#, fuzzy
+msgid "Print..."
+msgstr "வெளியேறுதல்..."
+
+#: kreplacements/kreplacements.cpp:639
+msgid "Cut"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:647
+msgid "Copy"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:655
+msgid "Paste"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:663
+#, fuzzy
+#| msgid "Delete A"
+msgid "Select All"
+msgstr " A ஐ நீக்கு"
+
+#: kreplacements/kreplacements.cpp:671
+msgid "Show Toolbar"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:679
+msgid "Show &Status Bar"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:687
+#, fuzzy, kde-format
+#| msgid "Configure..."
+msgid "&Configure %1..."
+msgstr "அமை"
+
+#: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707
+#, fuzzy
+#| msgid "Abort"
+msgid "About"
+msgstr "விடுதல்"
+
+#: kreplacements/kreplacements.cpp:722
+msgid "Find"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:730
+msgid "Find Next"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:750
+#, fuzzy
+#| msgid "Select Another Font"
+msgid "Select Font"
+msgstr "மற்றொரு எழுத்துருவை  தேர்தெடு"
+
+#: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676
+msgid ""
+"You selected a variable width font.\n"
+"\n"
+"Because this program doesn't handle variable width fonts\n"
+"correctly, you might experience problems while editing.\n"
+"\n"
+"Do you want to continue or do you want to select another font."
+msgstr ""
+"நீங்கள் மாற்றக்கூடிய அகல எழுத்துருவை தேர்தெடுத்துள்ளீர்கள்\n"
+"இதற்கு காரணம் இந்த நிரல் மாற்றக் கூடிய அகலமான எழுத்துருவை கையாளாது. திருத்தங்கள் "
+"செய்யும் பொழுதுப் பிரச்சனைகளை சந்தித்ருக்கலாம், சரியாக நீங்கள் தொடர வேண்டுமா அல்லது, வேறு "
+"எழுத்துருவை தேர்ந்தெடுக்கிறீர்களா."
+
+#: kreplacements/kreplacements.cpp:792
+#, fuzzy
+#| msgid "Incompatible Font"
+msgid "Incompatible font."
+msgstr "கச்சிதமில்லாத எழுத்துரு"
+
+#: kreplacements/kreplacements.cpp:793
+#, fuzzy
+#| msgid "Continue at Own Risk"
+msgid "Continue at my own risk"
+msgstr "உங்களுடைய சொந்த ஆபத்தில் தொடரவும்"
+
+#: kreplacements/kreplacements.cpp:793
+#, fuzzy
+#| msgid "Select Another Font"
+msgid "Select another font"
+msgstr "மற்றொரு எழுத்துருவை  தேர்தெடு"
+
+#: kreplacements/kreplacements.cpp:1134
+msgid "For more documentation, see the help-menu or the subdirectory doc."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1137
+#, fuzzy
+#| msgid "KDiff3"
+msgid "KDiff3-Usage"
+msgstr "KDiff3"
+
+#: kreplacements/kreplacements.cpp:1137
+#, fuzzy
+#| msgid "Ignore case"
+msgid "Ignore"
+msgstr "Ignore case"
+
+#: kreplacements/kreplacements.cpp:1137
+#, fuzzy
+#| msgid "Editor"
+msgid "Exit"
+msgstr "திருத்தியவர்"
+
+#: diff.cpp:251
+msgid "Writing clipboard data to temp file failed."
+msgstr "க்ளிப்போர்டின் எழுத்தின் தரத்தில் உள்ள டெம்ப் கோப்பு தவறு."
+
+#: diff.cpp:255
+msgid "From Clipboard"
+msgstr "கிளிப் போர்டிலிருந்து."
+
+#: diff.cpp:471
+msgid "Expecting space after closing quotation mark."
+msgstr ""
+
+#: diff.cpp:474
+msgid "Not matching quotation marks."
+msgstr ""
+
+#: diff.cpp:496
+msgid "Unexpected quotation mark within argument."
+msgstr ""
+
+#: diff.cpp:503
+msgid "No program specified."
+msgstr ""
+
+#: diff.cpp:605
+#, kde-format
+msgid ""
+"Preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The preprocessing command will be disabled now."
+msgstr ""
+"முன்செயலிகள் தவறு. கட்டளையை சரிப்பார்:\n"
+"\n"
+"  %1\n"
+"\n"
+"முன்செயலிகள் கட்டளையை இப்பொழுதே முடக்கு,"
+
+#: diff.cpp:653
+#, kde-format
+msgid ""
+"The line-matching-preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The line-matching-preprocessing command will be disabled now."
+msgstr ""
+"முன்செயலிகள் தவறு. கட்டளையை சரிப்பார்:\n"
+"\n"
+"  %1\n"
+"\n"
+"வரிசெல்களின் கட்டளையை இப்பொழுதே முடக்கு,"
+
+#: diff.cpp:1776 diff.cpp:1790
+#, fuzzy
+#| msgid ""
+#| "Data loss error:\n"
+#| "If it is reproducable please contact the author.\n"
+msgid ""
+"Data loss error:\n"
+"If it is reproducible please contact the author.\n"
+msgstr ""
+"தகவல் தவறானது.\n"
+"மீண்டும் உற்பத்தியானால் ஆசிரியரை அணுகவும்.\n"
+
+#: diff.cpp:1778 diff.cpp:1792
+msgid "Severe Internal Error"
+msgstr "கடுமையான உள்சார்ந்த தவறு."
+
+#: directorymergewindow.cpp:136
+msgid "Mix of links and normal files."
+msgstr "இணைப்புகள் மற்றும் கோப்புகள் கலந்து உள்ளன."
+
+#: directorymergewindow.cpp:143
+msgid "Link: "
+msgstr "இணைப்பு."
+
+#: directorymergewindow.cpp:151
+msgid "Size. "
+msgstr "அளவு."
+
+#: directorymergewindow.cpp:164 directorymergewindow.cpp:174
+msgid "Date & Size: "
+msgstr "தேதி மற்றும் அளவு."
+
+#: directorymergewindow.cpp:184 directorymergewindow.cpp:190
+#, kde-format
+msgid "Creating temp copy of %1 failed."
+msgstr "வார்ப்புரு படியெடு உருவாக்குவது %1 இயலவில்லை."
+
+#: directorymergewindow.cpp:201 directorymergewindow.cpp:209
+#, kde-format
+msgid "Opening %1 failed."
+msgstr "திறப்பதற்கு %1 இயலவில்லை."
+
+#: directorymergewindow.cpp:213
+#, fuzzy
+msgid "Comparing file..."
+msgstr "கோப்பினை ஒப்பிடுகிறது...."
+
+#: directorymergewindow.cpp:223 directorymergewindow.cpp:229
+#, kde-format
+msgid "Error reading from %1"
+msgstr "%1னிலிருந்து படிக்கும் பிழை"
+
+#: directorymergewindow.cpp:358
+msgid "Name"
+msgstr "பெயர்."
+
+#: directorymergewindow.cpp:358
+msgid "Operation"
+msgstr "இயக்கம்."
+
+#: directorymergewindow.cpp:358
+msgid "Status"
+msgstr "நிலை."
+
+#: directorymergewindow.cpp:359
+msgid "Unsolved"
+msgstr "Unsolved"
+
+#: directorymergewindow.cpp:359
+msgid "Solved"
+msgstr "Solved"
+
+#: directorymergewindow.cpp:359
+msgid "Nonwhite"
+msgstr "Nonwhite"
+
+#: directorymergewindow.cpp:359
+msgid "White"
+msgstr "White"
+
+#: directorymergewindow.cpp:388
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort "
+"the merge and rescan the directory?"
+msgstr ""
+"நீங்கள் தற்பொழுது ஒன்றாக சேர்க்கப்பட்ட அடைவை பயன்படுத்திக் கொண்டிருக்கிறீர்கள். நீங்கள் நிச்சயமாக "
+"ஒன்று சேர்ப்பதை நிறுத்திவிட்டு அடைவை மறுவருடலை விரும்புகிறீர்களா?"
+
+#: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655
+#: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823
+msgid "Warning"
+msgstr ""
+
+#: directorymergewindow.cpp:390 directorymergewindow.cpp:2965
+msgid "Rescan"
+msgstr "மறுவருடல்"
+
+#: directorymergewindow.cpp:391 pdiff.cpp:1081
+msgid "Continue Merging"
+msgstr "தொடர்ந்து ஒன்றாக சேர்."
+
+#: directorymergewindow.cpp:548
+msgid "Opening of directories failed:"
+msgstr "அடைவு திறக்க இயலவில்லை:"
+
+#: directorymergewindow.cpp:551
+#, kde-format
+msgid "Dir A \"%1\" does not exist or is not a directory.\n"
+msgstr "அடைவு எ \"%1\" இல்லை அல்லது அது ஒரு அடைவு இல்லை.\n"
+
+#: directorymergewindow.cpp:554
+#, kde-format
+msgid "Dir B \"%1\" does not exist or is not a directory.\n"
+msgstr "அடைவு B \"%1\" உபயோகத்தில் இல்லை (அ) அது ஒரு அடைவே அல்ல.\n"
+
+#: directorymergewindow.cpp:557
+#, kde-format
+msgid "Dir C \"%1\" does not exist or is not a directory.\n"
+msgstr "அடைவு C \"%1\" உபயோகத்தில் இல்லை (அ) அது ஒரு அடைவே அல்ல.\n"
+
+#: directorymergewindow.cpp:559
+msgid "Directory Open Error"
+msgstr "திறந்த தகவல் தளம் தவறு."
+
+#: directorymergewindow.cpp:567
+msgid ""
+"The destination directory must not be the same as A or B when three "
+"directories are merged.\n"
+"Check again before continuing."
+msgstr ""
+"மூன்று அடைவுகள் ஒன்று சேரும் பொழுது, சேரும் அடைவு A (அ) B போன்று இருக்கக் கூடாது.\n"
+"தொடர்வதற்கு முன் மீண்டும் சரிபார்க்கவும்."
+
+#: directorymergewindow.cpp:569
+msgid "Parameter Warning"
+msgstr "அளவுருக்கள் எச்சிரிகை."
+
+#: directorymergewindow.cpp:574
+#, fuzzy
+msgid "Scanning directories..."
+msgstr "Scanning directories ..."
+
+#: directorymergewindow.cpp:607
+msgid "Reading Directory A"
+msgstr "தகவல் தளம் 'ஏ'வை படிக்கவும்."
+
+#: directorymergewindow.cpp:629
+msgid "Reading Directory B"
+msgstr "தகவல் தளம் 'பி'ஐ படிக்கவும்."
+
+#: directorymergewindow.cpp:651
+msgid "Reading Directory C"
+msgstr "தகவல் தளம் 'சி'ஐ படிக்கவும்."
+
+#: directorymergewindow.cpp:677
+msgid "Some subdirectories were not readable in"
+msgstr "சில துணை அடைவுகளை படிக்க இயலவில்லை"
+
+#: directorymergewindow.cpp:682
+msgid "Check the permissions of the subdirectories."
+msgstr "துணை அடைவுகளின் அனுமதிகளை சரிபார்க்கவும்."
+
+#: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737
+#: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233
+#: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328
+msgid "Ready."
+msgstr "தயார்."
+
+#: directorymergewindow.cpp:735
+msgid "Directory Comparison Status"
+msgstr "அடைவு ஒப்பிடும் நிலை"
+
+#: directorymergewindow.cpp:736
+msgid "Number of subdirectories:"
+msgstr "உப அடைவுகளின் எண்ணிக்கை:"
+
+#: directorymergewindow.cpp:737
+msgid "Number of equal files:"
+msgstr "சம கோப்புகளின் எண்ணிக்கை:"
+
+#: directorymergewindow.cpp:738
+msgid "Number of different files:"
+msgstr "வேறு விதமான கோப்புகளின் எண்ணிக்கை:"
+
+#: directorymergewindow.cpp:741
+msgid "Number of manual merges:"
+msgstr "கைமுறை ஒன்று சேர்க்கையின் எண்ணிக்கை:"
+
+#: directorymergewindow.cpp:912
+msgid "This affects all merge operations."
+msgstr "இது அனைத்து ஒன்றுசேர் இயக்கங்களை பாதிக்கிறது."
+
+#: directorymergewindow.cpp:913
+msgid "Changing All Merge Operations"
+msgstr "அனைத்து ஒன்றுசேர் இயக்கங்களை மாற்றிக்கொண்டிருக்கிறது"
+
+#: directorymergewindow.cpp:1312
+msgid "Processing "
+msgstr "செயலாக்குதல்"
+
+#: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742
+msgid "To do."
+msgstr "அதை செய்."
+
+#: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996
+msgid "Copy A to B"
+msgstr " A to B படியெடு"
+
+#: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997
+msgid "Copy B to A"
+msgstr "படியெடு B to A"
+
+#: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998
+msgid "Delete A"
+msgstr " A ஐ நீக்கு"
+
+#: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999
+msgid "Delete B"
+msgstr "B ஐ நீக்கு"
+
+#: directorymergewindow.cpp:1814
+msgid "Delete A & B"
+msgstr "A & Bஐ நீக்கு "
+
+#: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001
+msgid "Merge to A"
+msgstr " A ஐ ஒன்றாகச் சேர்."
+
+#: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002
+msgid "Merge to B"
+msgstr " 'பி' ஐ ஒன்றாகச் சேர்."
+
+#: directorymergewindow.cpp:1817
+msgid "Merge to A & B"
+msgstr "A & B ஐ ஒன்றாகச் சேர்."
+
+#: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993
+msgid "Delete (if exists)"
+msgstr "நீக்கு."
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+#: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869
+msgid "Merge"
+msgstr "ஒன்றாகச் சேர்."
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+msgid "Merge (manual)"
+msgstr "ஒன்றாகச் சேர்."
+
+#: directorymergewindow.cpp:1824
+msgid "Error: Conflicting File Types"
+msgstr "பிழை: குழப்ப கோப்பு வகைகள்"
+
+#: directorymergewindow.cpp:1825
+msgid "Error: Changed and Deleted"
+msgstr ""
+
+#: directorymergewindow.cpp:1826
+msgid "Error: Dates are equal but files are not."
+msgstr "பிழை: தேதிகள் சமம் ஆனால் கோப்புகள் இல்லை."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906
+msgid "This operation is currently not possible."
+msgstr "இந்த இயக்கம் தற்போது சாத்தியமில்லை."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174
+msgid "Operation Not Possible"
+msgstr "இயக்கம் சாதியமில்லை"
+
+#: directorymergewindow.cpp:1945
+msgid ""
+"This should never happen: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"If you know how to reproduce this, please contact the program author."
+msgstr ""
+"இது எப்போதும் நிகழக்கூடாது: \n"
+"\n"
+"ஒன்றுசேர் விளைவு சேகரிக்கப்பட்டது: m_pMFI=0\n"
+"\n"
+"இதை மறு ஆக்கம் செய்ய தெரிந்தால், நிரல் எழுதியவரை அணுகவும்."
+
+#: directorymergewindow.cpp:1945
+msgid "Program Error"
+msgstr "நிரல் பிழை"
+
+#: directorymergewindow.cpp:1956
+msgid "An error occurred while copying.\n"
+msgstr "நகலெடுக்கும்போது பிழை ஏற்பட்டுள்ளது.\n"
+
+#: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025
+#: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105
+#: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123
+#: directorymergewindow.cpp:2374
+#, fuzzy
+#| msgid "Error."
+msgid "Error"
+msgstr "பிழை."
+
+#: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375
+msgid "Merge Error"
+msgstr "ஒன்றுசேர் பிழை"
+
+#: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380
+msgid "Error."
+msgstr "பிழை."
+
+#: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272
+#: directorymergewindow.cpp:2312
+msgid "Done."
+msgstr "முடிந்த."
+
+#: directorymergewindow.cpp:1990
+msgid "Not saved."
+msgstr "கோப்பு"
+
+#: directorymergewindow.cpp:2025
+msgid "Unknown merge operation. (This must never happen!)"
+msgstr "தெரியாத ஒன்றுசேர் இயக்கம்.( இது ஒருபோதும் நிகழக்கூடாது)"
+
+#: directorymergewindow.cpp:2057
+msgid "Unknown merge operation."
+msgstr "தெரியாத ஒன்றுசேர் இயக்கம்."
+
+#: directorymergewindow.cpp:2072
+msgid ""
+"The merge is about to begin.\n"
+"\n"
+"Choose \"Do it\" if you have read the instructions and know what you are "
+"doing.\n"
+"Choosing \"Simulate it\" will tell you what would happen.\n"
+"\n"
+"Be aware that this program still has beta status and there is NO WARRANTY "
+"whatsoever! Make backups of your vital data!"
+msgstr ""
+"ஒன்றுசேர்ப்பு தொடங்கப்பட உள்ளது.\n"
+"\n"
+"நீங்கள் நெறிமுறைகளைப் படித்து என்ன செய்கிறீர்கள் என்பதை அறிந்தால், \"இதை செய்க\" என்பதை "
+"தேர்ந்தெடுக்க.\n"
+"\"இதை போன்று நட\" என்பதை தேர்வு செய்தால் நிகழவிருப்பதை கூரும்.\n"
+"\n"
+"இந்த நிரல் இன்னும் பீடா நிலையில் தான் உள்ளது என்பதை கவனத்தில் கொள்க; மேலும் இதற்கு எந்தவித "
+"உத்திரவாதமும் கிடையாது! தங்களது இன்றியமையாத தகவல்களுக்கு பின்னணி "
+"அமைக்க!                             "
+
+#: directorymergewindow.cpp:2077
+msgid "Starting Merge"
+msgstr "ஒன்று சேர்ப்பைத் துவக்குதல்"
+
+#: directorymergewindow.cpp:2078
+msgid "Do It"
+msgstr "இதை செய்க"
+
+#: directorymergewindow.cpp:2079
+msgid "Simulate It"
+msgstr "இதை போன்று நட"
+
+#: directorymergewindow.cpp:2105
+msgid ""
+"The highlighted item has a different type in the different directories. "
+"Select what to do."
+msgstr ""
+"பலவிதமான அடைவுகளில் பலவகையாக தனிப்படுத்தப்பட்ட விவரம் உள்ளது. எதை செய்வதென்பதை "
+"தேர்ந்தெடுக்க."
+
+#: directorymergewindow.cpp:2114
+msgid ""
+"The modification dates of the file are equal but the files are not. Select "
+"what to do."
+msgstr ""
+"கோப்புகளின் திருத்திய தேதிகள் ஒன்றாக உள்ளது, ஆனால் கோப்புகள் இல்லை. எதை செய்வதென்பதை "
+"தேர்ந்தெடுக்க. "
+
+#: directorymergewindow.cpp:2123
+#, fuzzy
+#| msgid ""
+#| "The highlighted item has a different type in the different directories. "
+#| "Select what to do."
+msgid ""
+"The highlighted item was changed in one directory and deleted in the other. "
+"Select what to do."
+msgstr ""
+"பலவிதமான அடைவுகளில் பலவகையாக தனிப்படுத்தப்பட்ட விவரம் உள்ளது. எதை செய்வதென்பதை "
+"தேர்ந்தெடுக்க."
+
+#: directorymergewindow.cpp:2174
+msgid ""
+"This operation is currently not possible because directory merge is "
+"currently running."
+msgstr ""
+"இந்த செயற்பாடு தற்போது சாத்தியமில்லை ஏனென்றால் அடைவு ஒற்றினை தற்போது "
+"இயங்கிக்கொண்டிருக்கின்றது"
+
+#: directorymergewindow.cpp:2234
+msgid ""
+"There was an error in the last step.\n"
+"Do you want to continue with the item that caused the error or do you want "
+"to skip this item?"
+msgstr ""
+"கடைசி அடியில் பிழை இருந்தது.\n"
+"இந்த பிழையை ஏற்படுத்திய விவரத்துடன் தொடர விரும்புகிறீர்களா அல்லது அதை தவிர்க்க "
+"விரும்புகிறீர்களா?"
+
+#: directorymergewindow.cpp:2236
+msgid "Continue merge after an error"
+msgstr "பிழைக்குப் பிறகு ஒன்று சேர்த்தலை தொடர்க"
+
+#: directorymergewindow.cpp:2237
+msgid "Continue With Last Item"
+msgstr "கடைசி விவரத்துடன் தொடர்க"
+
+#: directorymergewindow.cpp:2238
+msgid "Skip Item"
+msgstr "விவரத்தை தவிர்க்க"
+
+#: directorymergewindow.cpp:2272
+msgid "Skipped."
+msgstr "தவிர்த்தது."
+
+#: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493
+msgid "In progress..."
+msgstr "செயல்பாட்டில் உள்ளது..."
+
+#: directorymergewindow.cpp:2327
+msgid "Merge operation complete."
+msgstr "ஒன்றுசேர் இயக்கம் முடிந்தது"
+
+#: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330
+msgid "Merge Complete"
+msgstr "ஒன்றுசேர்ப்பு முடிந்தது"
+
+#: directorymergewindow.cpp:2340
+msgid ""
+"Simulated merge complete: Check if you agree with the proposed operations."
+msgstr ""
+"போலியான ஒன்றுசேர்ப்பு முடிந்தது: முன்மொழிந்த இயக்கங்களுடன் நீங்கள் ஒத்துப்போகிறீர்களா என்பதை "
+"சரிபார்க்கவும்."
+
+#: directorymergewindow.cpp:2374
+msgid "An error occurred. Press OK to see detailed information.\n"
+msgstr "பிழை ஏற்பட்டுள்ளது. விரிவான விவரங்களுக்கு சரி என்பதை அழுத்துக.\n"
+
+#: directorymergewindow.cpp:2406
+#, kde-format
+msgid "Error: While deleting %1: Creating backup failed."
+msgstr "பிழை: %1 நீக்கும்போது: பின்னணி உருவாக்கம் தோல்வியடைந்தது."
+
+#: directorymergewindow.cpp:2413
+#, kde-format
+msgid "delete directory recursively( %1 )"
+msgstr "அடைவு சூழ்நிலை நீக்கு நீக்கு(%1)"
+
+#: directorymergewindow.cpp:2415
+#, kde-format
+msgid "delete( %1 )"
+msgstr "நீக்கு( %1 )"
+
+#: directorymergewindow.cpp:2430
+msgid "Error: delete dir operation failed while trying to read the directory."
+msgstr "பிழை: அடைவை படிக்கும்போது நீக்க இயலவில்லை."
+
+#: directorymergewindow.cpp:2449
+#, kde-format
+msgid "Error: rmdir( %1 ) operation failed."
+msgstr " rmdir( %1 } பிழை: இயக்க இயலவில்லை"
+
+#: directorymergewindow.cpp:2459
+msgid "Error: delete operation failed."
+msgstr "பிழை: நீக்கும் இயக்கம் தோல்வியடைந்தது."
+
+#: directorymergewindow.cpp:2485
+#, kde-format
+msgid "manual merge( %1, %2, %3 -> %4)"
+msgstr "கைமுறை ஒன்றினை(%1, %2,%3 -> %4)"
+
+#: directorymergewindow.cpp:2488
+msgid ""
+"     Note: After a manual merge the user should continue by pressing F7."
+msgstr "குறிப்பு:  கையேடு ஒன்றினையின் பிறகு உபயோகிப்பவர் F7 வழியாக தொடர வேண்டும்."
+
+#: directorymergewindow.cpp:2513
+#, kde-format
+msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed."
+msgstr "பிழை:நகல்( %1 -> %2 ) தோல்வி அடைந்தது. இருக்கும் சேரிடம் நீக்கம் தோல்வி அடைந்தது"
+
+#: directorymergewindow.cpp:2522
+#, kde-format
+msgid "copyLink( %1 -> %2 )"
+msgstr "நகல் இணை( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2533
+msgid "Error: copyLink failed: Remote links are not yet supported."
+msgstr "பிழை:தொடர்புப் படியெடு தோல்வியடைந்தது: தூரத் தொடர்பு இன்னும் ஆதரிக்கப்படவில்லை"
+
+#: directorymergewindow.cpp:2539
+msgid "Error: copyLink failed."
+msgstr "பிழை: நகல் இணை தோல்வியடைந்தது."
+
+#: directorymergewindow.cpp:2564
+#, kde-format
+msgid "copy( %1 -> %2 )"
+msgstr "நகல்( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2590
+#, kde-format
+msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination."
+msgstr "மறுபெயரிடும் போது பிழை( %1 -> %2 ): தற்போதுள்ள சேருமிடத்தை நீக்க இயலாது."
+
+#: directorymergewindow.cpp:2596
+#, kde-format
+msgid "rename( %1 -> %2 )"
+msgstr "மறுபெயர்( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2605
+msgid "Error: Rename failed."
+msgstr "பிழை: மறுபெயர் தோல்வி அடைந்தது."
+
+#: directorymergewindow.cpp:2623
+#, kde-format
+msgid "Error during makeDir of %1. Cannot delete existing file."
+msgstr "%1அடைவை உருவாக்கும் போது பிழை: தற்போதைய கோப்பினை நீக்க இயலாது."
+
+#: directorymergewindow.cpp:2639
+#, kde-format
+msgid "makeDir( %1 )"
+msgstr "( %1 )அடைவை உருவாக்கு"
+
+#: directorymergewindow.cpp:2649
+msgid "Error while creating directory."
+msgstr "அடைவை உருவாக்கும் போது பிழை"
+
+#: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784
+msgid "Dest"
+msgstr "சேருமிடம்"
+
+#: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709
+msgid "Dir"
+msgstr "அடைவு"
+
+#: directorymergewindow.cpp:2678
+msgid "Type"
+msgstr "விதம்"
+
+#: directorymergewindow.cpp:2678
+msgid "Size"
+msgstr "அளவு"
+
+#: directorymergewindow.cpp:2679
+msgid "Attr"
+msgstr "தன்மை"
+
+#: directorymergewindow.cpp:2679
+msgid "Last Modification"
+msgstr "கடைசி திருத்தம்"
+
+#: directorymergewindow.cpp:2679
+msgid "Link-Destination"
+msgstr "இணை-சேருமிடம்"
+
+#: directorymergewindow.cpp:2709 difftextwindow.cpp:401
+#, fuzzy
+#| msgid "File..."
+msgid "File"
+msgstr "கோப்பு"
+
+#: directorymergewindow.cpp:2726
+msgid "not available"
+msgstr "கிடைக்கவில்லை"
+
+#: directorymergewindow.cpp:2746
+msgid "A (Dest): "
+msgstr "A (சேருமிடம்): "
+
+#: directorymergewindow.cpp:2749
+msgid "A (Base): "
+msgstr "A (அடித்தளம்):"
+
+#: directorymergewindow.cpp:2755
+msgid "B (Dest): "
+msgstr "B (சேருமிடம்): "
+
+#: directorymergewindow.cpp:2763
+msgid "C (Dest): "
+msgstr "C (சேருமிடம்):"
+
+#: directorymergewindow.cpp:2769
+msgid "Dest: "
+msgstr "சேருமிடம்: "
+
+#: directorymergewindow.cpp:2836
+#, fuzzy
+msgid "Save Directory Merge State As..."
+msgstr "அடைவுச் சேர்க்கை"
+
+#: directorymergewindow.cpp:2959
+msgid "Start/Continue Directory Merge"
+msgstr "அடைவை சேர்க்கத் துவங்கு"
+
+#: directorymergewindow.cpp:2960
+msgid "Run Operation for Current Item"
+msgstr "நிகழ் உருப்படிக்காக செயற்பாடு இயங்கு"
+
+#: directorymergewindow.cpp:2961
+msgid "Compare Selected File"
+msgstr "தேர்ந்தெடுத்த கோப்பினை ஒப்பிடு"
+
+#: directorymergewindow.cpp:2962
+msgid "Merge Current File"
+msgstr "தற்போதைய கோப்பினை ஒன்றுசேர்"
+
+#: directorymergewindow.cpp:2962
+#, fuzzy
+#| msgid "Merge"
+msgid ""
+"Merge\n"
+"File"
+msgstr "ஒன்றாகச் சேர்."
+
+#: directorymergewindow.cpp:2963
+msgid "Fold All Subdirs"
+msgstr "அனைத்து உபஅடைவுகளையும் மடி"
+
+#: directorymergewindow.cpp:2964
+msgid "Unfold All Subdirs"
+msgstr "அனைத்து உபஅடைவுகளையும் பிரி"
+
+#: directorymergewindow.cpp:2968
+msgid "Choose A for All Items"
+msgstr "எல்லா விவரங்களுக்கும் Aவைத் தேர்ந்தெடு"
+
+#: directorymergewindow.cpp:2969
+msgid "Choose B for All Items"
+msgstr "எல்லா விவரங்களுக்கும் Bவைத் தேர்ந்தெடு"
+
+#: directorymergewindow.cpp:2970
+msgid "Choose C for All Items"
+msgstr "எல்லா விவரங்களுக்கும் Cவைத் தேர்ந்தெடு"
+
+#: directorymergewindow.cpp:2971
+msgid "Auto-Choose Operation for All Items"
+msgstr "எல்லா விவரங்களுக்கும் தானியக்கத்தேர்வு"
+
+#: directorymergewindow.cpp:2972
+msgid "No Operation for All Items"
+msgstr "எல்லா விவரங்களுக்கும் இயக்கமில்லை"
+
+#: directorymergewindow.cpp:2977
+msgid "Show Identical Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2977
+msgid ""
+"Identical\n"
+"Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2978
+#, fuzzy
+msgid "Show Different Files"
+msgstr "வேறு விதமான கோப்புகளின் எண்ணிக்கை:"
+
+#: directorymergewindow.cpp:2979
+msgid "Show Files only in A"
+msgstr ""
+
+#: directorymergewindow.cpp:2979
+msgid ""
+"Files\n"
+"only in A"
+msgstr ""
+
+#: directorymergewindow.cpp:2980
+msgid "Show Files only in B"
+msgstr ""
+
+#: directorymergewindow.cpp:2980
+msgid ""
+"Files\n"
+"only in B"
+msgstr ""
+
+#: directorymergewindow.cpp:2981
+msgid "Show Files only in C"
+msgstr ""
+
+#: directorymergewindow.cpp:2981
+msgid ""
+"Files\n"
+"only in C"
+msgstr ""
+
+#: directorymergewindow.cpp:2985
+#, fuzzy
+msgid "Compare Explicitly Selected Files"
+msgstr "தேர்ந்தெடுத்த கோப்பினை ஒப்பிடு"
+
+#: directorymergewindow.cpp:2986
+#, fuzzy
+msgid "Merge Explicitly Selected Files"
+msgstr "தேர்ந்தெடுத்த கோப்பினை ஒப்பிடு"
+
+#: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995
+msgid "Do Nothing"
+msgstr "ஒன்றும் செய்யாதே"
+
+#: directorymergewindow.cpp:2989
+msgid "A"
+msgstr "A"
+
+#: directorymergewindow.cpp:2990
+msgid "B"
+msgstr "B"
+
+#: directorymergewindow.cpp:2991
+msgid "C"
+msgstr "C"
+
+#: directorymergewindow.cpp:3000
+#, fuzzy
+msgid "Delete A && B"
+msgstr "A & Bஐ நீக்கு "
+
+#: directorymergewindow.cpp:3003
+#, fuzzy
+msgid "Merge to A && B"
+msgstr "A & B ஐ ஒன்றாகச் சேர்."
+
+#: main.cpp:74 main.cpp:76
+msgid "Ignored. (User defined.)"
+msgstr ""
+
+#: main.cpp:162
+#, fuzzy
+#| msgid "KDiff3"
+msgid "kdiff3"
+msgstr "KDiff3"
+
+#: main.cpp:164
+msgid "Tool for Comparison and Merge of Files and Directories"
+msgstr ""
+
+#: main.cpp:165
+msgid "(c) 2002-2011 Joachim Eibl"
+msgstr ""
+
+#: main.cpp:172 kdiff3_part.cpp:303
+msgid "Joachim Eibl"
+msgstr ""
+
+#: main.cpp:173
+msgid "Eike Sauer"
+msgstr ""
+
+#: main.cpp:173
+msgid "Bugfixes, Debian package maintainer"
+msgstr ""
+
+#: main.cpp:174
+msgid "Sebastien Fricker"
+msgstr ""
+
+#: main.cpp:174
+msgid "Windows installer"
+msgstr ""
+
+#: main.cpp:175
+msgid "Stephan Binner"
+msgstr ""
+
+#: main.cpp:175
+msgid "i18n-help"
+msgstr ""
+
+#: main.cpp:176
+msgid "Stefan Partheymueller"
+msgstr ""
+
+#: main.cpp:176
+#, fuzzy
+#| msgid "From Clipboard"
+msgid "Clipboard-patch"
+msgstr "கிளிப் போர்டிலிருந்து."
+
+#: main.cpp:177
+msgid "David Faure"
+msgstr ""
+
+#: main.cpp:177
+msgid "KIO-Help"
+msgstr ""
+
+#: main.cpp:178
+msgid "Bernd Gehrmann"
+msgstr ""
+
+#: main.cpp:178
+msgid "Class CvsIgnoreList from Cervisia"
+msgstr ""
+
+#: main.cpp:179
+msgid "Andre Woebbeking"
+msgstr ""
+
+#: main.cpp:179
+msgid "Class StringMatcher"
+msgstr ""
+
+#: main.cpp:180
+msgid "Michael Denio"
+msgstr ""
+
+#: main.cpp:180
+#, fuzzy
+#| msgid "Directory Comparison Status"
+msgid "Directory Equality-Coloring patch"
+msgstr "அடைவு ஒப்பிடும் நிலை"
+
+#: main.cpp:181
+msgid "Manfred Koehler"
+msgstr ""
+
+#: main.cpp:181
+msgid "Fix for slow startup on Windows"
+msgstr ""
+
+#: main.cpp:182
+#, fuzzy
+#| msgid "Merge Error"
+msgid "Sergey Zorin"
+msgstr "ஒன்றுசேர் பிழை"
+
+#: main.cpp:182
+msgid "Diff Ext for Windows"
+msgstr ""
+
+#: main.cpp:183
+msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+msgstr ""
+
+#: main.cpp:183
+msgid "GNU-Diffutils"
+msgstr ""
+
+#: main.cpp:184
+msgid "Tino Boellsterling, Timothy Mee"
+msgstr ""
+
+#: main.cpp:184
+msgid "Intensive test, use and feedback"
+msgstr ""
+
+#: main.cpp:185
+msgid "Michael Schmidt"
+msgstr ""
+
+#: main.cpp:185
+msgid "Mac support"
+msgstr ""
+
+#: main.cpp:186
+msgid "Valentin Rusu"
+msgstr ""
+
+#: main.cpp:186 main.cpp:187
+#, fuzzy
+#| msgid "Do Nothing"
+msgid "KDE4 porting"
+msgstr "ஒன்றும் செய்யாதே"
+
+#: main.cpp:187
+msgid "Albert Astals Cid"
+msgstr ""
+
+#: main.cpp:188
+msgid "Silvan Scherrer"
+msgstr ""
+
+#: main.cpp:188
+msgid "OS2 port"
+msgstr ""
+
+#: main.cpp:190
+msgid "+ Many thanks to those who reported bugs and contributed ideas!"
+msgstr "+ Many thanks to those who reported bugs and contributed ideas!"
+
+#: main.cpp:196
+msgid "Merge the input."
+msgstr "உள்ளீட்டை ஒன்று சேர்."
+
+#: main.cpp:197
+msgid "Explicit base file. For compatibility with certain tools."
+msgstr "தெளிவான அடித்தளக் கோப்பினை சில கருவிகளுடன் பொருத்துவதற்கு"
+
+#: main.cpp:198
+msgid "Output file. Implies -m. E.g.: -o newfile.txt"
+msgstr "வெளியீடு கோப்பு"
+
+#: main.cpp:199
+msgid "Output file, again. (For compatibility with certain tools.)"
+msgstr "மறுபடியும் கோப்பினை வெளியீடு(சில கருவிகளுடன் பொருத்துவதற்கு)"
+
+#: main.cpp:200
+msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)"
+msgstr "எல்லா குழப்பங்களையும் தானாகவே நீங்குமானால் GUI தேவையில்லை"
+
+#: main.cpp:201
+msgid "Don't solve conflicts automatically. (For compatibility...)"
+msgstr "தாமாகவே தீராத குழப்பங்கள் (For compatibility...)"
+
+#: main.cpp:202
+msgid "Visible name replacement for input file 1 (base)."
+msgstr "Visible name replacement for input file 1 (base)."
+
+#: main.cpp:203
+msgid "Visible name replacement for input file 2."
+msgstr "Visible name replacement for input file 2."
+
+#: main.cpp:204
+msgid "Visible name replacement for input file 3."
+msgstr "Visible name replacement for input file 3."
+
+#: main.cpp:205
+msgid "Alternative visible name replacement. Supply this once for every input."
+msgstr ""
+"Alternative visible name replacement. Supply this once for every input."
+
+#: main.cpp:206
+msgid ""
+"Override a config setting. Use once for every setting. E.g.: --cs "
+"\"AutoAdvance=1\""
+msgstr ""
+
+#: main.cpp:207
+msgid "Show list of config settings and current values."
+msgstr ""
+
+#: main.cpp:208
+#, fuzzy
+msgid "Use a different config file."
+msgstr "வேறு விதமான கோப்புகளின் எண்ணிக்கை:"
+
+#: main.cpp:211
+msgid "file1 to open (base, if not specified via --base)"
+msgstr "கோப்பு1 யை திற(அடித்தளம் அல்லது via அடித்தளம்)"
+
+#: main.cpp:212
+msgid "file2 to open"
+msgstr "கோப்பு2 திற"
+
+#: main.cpp:213
+msgid "file3 to open"
+msgstr "கோப்பு 3ன்றை திற"
+
+#: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976
+#: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002
+#: mergeresultwindow.cpp:1014
+#, fuzzy, kde-format
+msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)"
+msgstr "இன்னும் தீர்க்கப்படாத குழப்பங்களின் எண்ணிகை: %1"
+
+#: mergeresultwindow.cpp:303
+msgid ""
+"The output has been modified.\n"
+"If you continue your changes will be lost."
+msgstr "வெளீயிடு மாற்றப்பட்டுள்ளது. நீங்கள் தொடர்ந்தால் மாற்றங்களை இழந்து விடுவீர்கள்"
+
+#: mergeresultwindow.cpp:834 pdiff.cpp:532
+msgid "All input files are binary equal."
+msgstr "அனைத்து உள்ளிடு கோப்புகளும் இருநிலை சமம்"
+
+#: mergeresultwindow.cpp:836
+msgid "All input files contain the same text."
+msgstr "அனைத்து உள்ளீட்டுக் கோப்புகளும் ஒரே உரையைக் கொண்டன."
+
+#: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840
+#: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540
+#, fuzzy, kde-format
+msgid "Files %1 and %2 are binary equal.\n"
+msgstr "கோப்புகள் B மற்றும் C இருநிலை சமம் உடையன.\n"
+
+#: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841
+#: mergeresultwindow.cpp:843
+#, fuzzy, kde-format
+msgid "Files %1 and %2 have equal text.\n"
+msgstr "கோப்புகள் A மற்றும் B சம உரை உடையன.\n"
+
+#: mergeresultwindow.cpp:849
+msgid "Total number of conflicts: "
+msgstr "மொத்த குழப்பங்களின் எண்ணிக்கை:"
+
+#: mergeresultwindow.cpp:850
+msgid ""
+"\n"
+"Nr of automatically solved conflicts: "
+msgstr ""
+"\n"
+"தாமாகவே தீர்ந்த குழப்பங்களின் எண்ணிக்கை"
+
+#: mergeresultwindow.cpp:851
+msgid ""
+"\n"
+"Nr of unsolved conflicts: "
+msgstr ""
+"\n"
+"தீர்க்கப்படாத குழப்பங்களின் எண்ணிக்கை"
+
+#: mergeresultwindow.cpp:853
+msgid "Conflicts"
+msgstr "குழப்பங்கள்"
+
+#: mergeresultwindow.cpp:1728
+msgid "<No src line>"
+msgstr "<No src line>"
+
+#: mergeresultwindow.cpp:1736
+#, fuzzy
+msgid "<Merge Conflict (Whitespace only)>"
+msgstr "<ஒன்றுசேர் குழப்பம்>"
+
+#: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517
+msgid "<Merge Conflict>"
+msgstr "<ஒன்றுசேர் குழப்பம்>"
+
+#: mergeresultwindow.cpp:2725
+msgid ""
+"Not all conflicts are solved yet.\n"
+"File not saved.\n"
+msgstr ""
+"அனைத்து குழப்பங்களும் இன்னும் தீரவில்லை.\n"
+"கோப்பினை சேமிக்கவில்லை \n"
+
+#: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736
+msgid "Conflicts Left"
+msgstr "குழப்பமான இடது"
+
+#: mergeresultwindow.cpp:2734
+msgid ""
+"There is a line end style conflict. Please choose the line end style "
+"manually.\n"
+"File not saved.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:2748
+msgid ""
+"\n"
+"\n"
+"Creating backup failed. File not saved."
+msgstr ""
+
+#: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792
+msgid "File Save Error"
+msgstr "கோப்பின சேமிப்பு பிழை"
+
+#: mergeresultwindow.cpp:2792
+msgid "Error while writing."
+msgstr "எழுதும் பொழுது பிழை"
+
+#: mergeresultwindow.cpp:3122
+msgid "Output"
+msgstr " வெளியீடு"
+
+#: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314
+msgid "[Modified]"
+msgstr "[திருத்தப்பட்டது]"
+
+#: mergeresultwindow.cpp:3141
+msgid "Encoding for saving"
+msgstr ""
+
+#: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737
+#: optiondialog.cpp:762
+#, fuzzy
+msgid "Line end style:"
+msgstr "வரிகளின் பாணி தாள்"
+
+#: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767
+msgid "Unix"
+msgstr ""
+
+#: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737
+msgid "DOS"
+msgstr ""
+
+#: mergeresultwindow.cpp:3229
+#, fuzzy
+#| msgid "Conflicts"
+msgid "Conflict"
+msgstr "குழப்பங்கள்"
+
+#: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263
+#: mergeresultwindow.cpp:3265
+msgid "Codec from"
+msgstr ""
+
+#: kdiff3_part.cpp:157 kdiff3_part.cpp:234
+msgid "Couldn't find files for comparison."
+msgstr "ஒப்பிடுதலுக்கு கோப்புகள் கிடைக்கவில்லை."
+
+#: kdiff3_part.cpp:302
+msgid "KDiff3Part"
+msgstr "KDiff3Part"
+
+#: fileaccess.cpp:612
+msgid ""
+"While trying to make a backup, deleting an older backup failed. \n"
+"Filename: "
+msgstr ""
+"ஒரு பின்கோப்பினை உருவாக்க முயற்சிக்கும்போது, பழைய பின்கோப்பினை நீக்க முடியவில்லை.\n"
+"கோப்புப் பெயர்கள்:"
+
+#: fileaccess.cpp:619
+msgid ""
+"While trying to make a backup, renaming failed. \n"
+"Filenames: "
+msgstr ""
+"ஒரு பின்கோப்பினை உருவாக்க முயற்சிக்கும் போது, பெயர் மாற்றம் செய்யப்படவில்லை.\n"
+"கோப்புப் பெயர்கள்:"
+
+#: fileaccess.cpp:643
+#, kde-format
+msgid "Getting file status: %1"
+msgstr "கோப்பு நிலைமை வாங்கு: %1"
+
+#: fileaccess.cpp:686
+#, kde-format
+msgid "Reading file: %1"
+msgstr "கோப்புகளை படித்தல்: %1"
+
+#: fileaccess.cpp:723
+#, kde-format
+msgid "Writing file: %1"
+msgstr "எழுதும் கோப்பு: %1"
+
+#: fileaccess.cpp:751
+msgid "Out of memory"
+msgstr "நினைவில் இல்லை"
+
+#: fileaccess.cpp:786
+#, kde-format
+msgid "Making directory: %1"
+msgstr "அடைவு அமை: %1"
+
+#: fileaccess.cpp:806
+#, kde-format
+msgid "Removing directory: %1"
+msgstr "அடைவு அகற்று: %1"
+
+#: fileaccess.cpp:821
+#, kde-format
+msgid "Removing file: %1"
+msgstr "அழித்தல் கோப்பு:%1"
+
+#: fileaccess.cpp:837
+#, kde-format
+msgid "Creating symbolic link: %1 -> %2"
+msgstr "குறியீட்டு இணைப்பு உருவாக்குதல்:  %1 -> %2"
+
+#: fileaccess.cpp:864
+#, kde-format
+msgid "Renaming file: %1 -> %2"
+msgstr "மறுபெயர்:( %1 -> %2 )"
+
+#: fileaccess.cpp:897
+#, kde-format
+msgid "Copying file: %1 -> %2"
+msgstr "கோப்பு நகலெடுத்தல்: %1 -> %2 "
+
+#: fileaccess.cpp:911
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for reading failed. Filename: "
+"%1"
+msgstr ""
+"கோப்புப் படிவின் போது பிழை ஏற்பட்டுள்ளது. படிப்பதற்கான கோப்புத் திறக்கப்படவில்லை.கோப்பின் "
+"பெயர்:%1"
+
+#: fileaccess.cpp:917
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for writing failed. Filename: "
+"%1"
+msgstr ""
+"கோப்புப் படிவின் போது பிழை ஏற்பட்டுள்ளது. எழுதுவதற்கான கோப்புத் திறக்கப்படவில்லை. கோப்பின் "
+"பெயர்:%1"
+
+#: fileaccess.cpp:932
+#, kde-format
+msgid "Error during file copy operation: Reading failed. Filename: %1"
+msgstr ""
+"கோப்புப் படிவின் போது பிழை ஏற்பட்டுள்ளது கோப்பினை படிக்க இயலவில்லை.கோப்பின் பெயர்:%1"
+
+#: fileaccess.cpp:941
+#, kde-format
+msgid "Error during file copy operation: Writing failed. Filename: %1"
+msgstr "கோப்புப் படிவின்போது பிழை ஏற்பட்டுள்ளது. கோப்பில் எழுத இயலவில்லை.கோப்பின் பெயர்:%1"
+
+#: fileaccess.cpp:1231
+msgid "Reading directory: "
+msgstr "அடைவை படித்தல்:"
+
+#: fileaccess.cpp:1355
+#, kde-format
+msgid "Listing directory: %1"
+msgstr "அடைவை பட்டியலிடல்: %1"
+
+#: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396
+msgid "&Cancel"
+msgstr ""
+
+#: difftextwindow.cpp:403
+#, fuzzy
+#| msgid "Link: "
+msgid "Line"
+msgstr "இணைப்பு."
+
+#: difftextwindow.cpp:405
+#, fuzzy
+#| msgid "not available"
+msgid "Line not available"
+msgstr "கிடைக்கவில்லை"
+
+#: difftextwindow.cpp:1703 difftextwindow.cpp:1736
+msgid "Encoding:"
+msgstr ""
+
+#: difftextwindow.cpp:1759 kdiff3.cpp:831
+#, fuzzy
+msgid "Top line"
+msgstr "மேல் வரி %1."
+
+#: difftextwindow.cpp:1769
+msgid "End"
+msgstr "முடிவு"
+
+#: kdiff3.cpp:169
+#, fuzzy
+msgid "Current Configuration:"
+msgstr "நடப்பு உருப்படி இசைவு செயற்பாடு"
+
+#: kdiff3.cpp:174
+#, fuzzy
+msgid "Config Option Error:"
+msgstr "கோப்பு திறப்பில் பிழை"
+
+#: kdiff3.cpp:219
+msgid "Option --auto used, but no output file specified."
+msgstr "தேர்வு தானே உபயோகிக்கப்பட்டுள்ளது ஆனால் வெளியீட்டுக் கோப்பு குறிப்பிடப்படவில்லை"
+
+#: kdiff3.cpp:369
+msgid "Option --auto ignored for directory comparison."
+msgstr "அடைவு ஒப்பீட்டுக்காக தேர்வு தானே மறுக்கப்பட்டுள்ளது"
+
+#: kdiff3.cpp:405
+msgid "Saving failed."
+msgstr "சேகரிப்பு தோல்வியடைந்தது."
+
+#: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214
+msgid "Opening of these files failed:"
+msgstr "இந்த கோப்புகளின் திறப்பு தோல்வியடைந்தது:"
+
+#: kdiff3.cpp:449
+msgid "File Open Error"
+msgstr "கோப்பு திறப்பில் பிழை"
+
+#: kdiff3.cpp:477
+msgid "Opens documents for comparison..."
+msgstr "ஒப்பிடுதலுக்கு ஆவணங்களைத் திறக்க..."
+
+#: kdiff3.cpp:479
+#, fuzzy
+#| msgid "Ready."
+msgid "Reload"
+msgstr "தயார்."
+
+#: kdiff3.cpp:482
+msgid "Saves the merge result. All conflicts must be solved!"
+msgstr "ஒன்றுசேர் முடிவை சேகரி. அனைத்து குழப்பங்களும் தீர வேண்டும்."
+
+#: kdiff3.cpp:484
+msgid "Saves the current document as..."
+msgstr "தற்போதைய ஆவணத்தை ....வாக சேமி "
+
+#: kdiff3.cpp:487
+msgid "Print the differences"
+msgstr ""
+
+#: kdiff3.cpp:490
+msgid "Quits the application"
+msgstr "பயன்பாட்டை முறிக்க"
+
+#: kdiff3.cpp:492
+msgid "Cuts the selected section and puts it to the clipboard"
+msgstr "தேர்வு செய்த பகுதியை எடுத்து  கிளிப்போர்டில் செலுத்துகிறது"
+
+#: kdiff3.cpp:494
+msgid "Copies the selected section to the clipboard"
+msgstr "தேர்வு செய்த பகுதியை கிளிப் போர்டை படி செய்கிறது."
+
+#: kdiff3.cpp:496
+#, fuzzy
+#| msgid "Pastes the clipboard contents to actual position"
+msgid "Pastes the clipboard contents to current position"
+msgstr "கிளிப்போர்டின் உள்ளடக்கங்களை உரிய இடத்தில் சேர்க்கிறது"
+
+#: kdiff3.cpp:498
+msgid "Select everything in current window"
+msgstr ""
+
+#: kdiff3.cpp:500
+msgid "Search for a string"
+msgstr "தொடர்ச்சிகளை தேடு"
+
+#: kdiff3.cpp:502
+msgid "Search again for the string"
+msgstr "சரத்தை மீண்டும் தேடு"
+
+#: kdiff3.cpp:507
+msgid "Enables/disables the statusbar"
+msgstr "நிலைப்பட்டியை செயல்படுத்து/நீக்கு "
+
+#: kdiff3.cpp:511
+msgid "Configure KDiff3..."
+msgstr "KDiff3யை அமை"
+
+#: kdiff3.cpp:532
+msgid "Go to Current Delta"
+msgstr "தற்போதைய டெல்டாவிற்குச் செல்க"
+
+#: kdiff3.cpp:532
+#, fuzzy
+#| msgid "Go to Current Delta"
+msgid ""
+"Current\n"
+"Delta"
+msgstr "தற்போதைய டெல்டாவிற்குச் செல்க"
+
+#: kdiff3.cpp:534
+msgid "Go to First Delta"
+msgstr "முதல் டெல்டாவிற்குச் செல்க"
+
+#: kdiff3.cpp:534
+#, fuzzy
+#| msgid "Go to First Delta"
+msgid ""
+"First\n"
+"Delta"
+msgstr "முதல் டெல்டாவிற்குச் செல்க"
+
+#: kdiff3.cpp:536
+msgid "Go to Last Delta"
+msgstr "கடைசி டெல்டாவிற்குச் செல்க"
+
+#: kdiff3.cpp:536
+#, fuzzy
+#| msgid "Go to Last Delta"
+msgid ""
+"Last\n"
+"Delta"
+msgstr "கடைசி டெல்டாவிற்குச் செல்க"
+
+#: kdiff3.cpp:538
+msgid "(Skips white space differences when \"Show White Space\" is disabled.)"
+msgstr ""
+
+#: kdiff3.cpp:539
+msgid ""
+"(Does not skip white space differences even when \"Show White Space\" is "
+"disabled.)"
+msgstr ""
+
+#: kdiff3.cpp:540
+msgid "Go to Previous Delta"
+msgstr "முந்தைய டெல்டாவிற்குச் செல்க"
+
+#: kdiff3.cpp:540
+#, fuzzy
+#| msgid "Go to Previous Delta"
+msgid ""
+"Prev\n"
+"Delta"
+msgstr "முந்தைய டெல்டாவிற்குச் செல்க"
+
+#: kdiff3.cpp:542
+msgid "Go to Next Delta"
+msgstr "அடுத்த டெல்டாவிற்குச் செல்க"
+
+#: kdiff3.cpp:542
+#, fuzzy
+#| msgid "Go to Next Delta"
+msgid ""
+"Next\n"
+"Delta"
+msgstr "அடுத்த டெல்டாவிற்குச் செல்க"
+
+#: kdiff3.cpp:544
+msgid "Go to Previous Conflict"
+msgstr "முந்தைய குழப்பத்திற்குச் செல்க"
+
+#: kdiff3.cpp:544
+#, fuzzy
+#| msgid "Conflicts"
+msgid ""
+"Prev\n"
+"Conflict"
+msgstr "குழப்பங்கள்"
+
+#: kdiff3.cpp:546
+msgid "Go to Next Conflict"
+msgstr "அடுத்த குழப்பத்திற்குச் செல்க"
+
+#: kdiff3.cpp:546
+#, fuzzy
+#| msgid "Go to Next Conflict"
+msgid ""
+"Next\n"
+"Conflict"
+msgstr "அடுத்த குழப்பத்திற்குச் செல்க"
+
+#: kdiff3.cpp:548
+msgid "Go to Previous Unsolved Conflict"
+msgstr "முந்தைய தீர்க்காத குழப்பத்திற்குச் செல்க"
+
+#: kdiff3.cpp:548
+#, fuzzy
+#| msgid "Unsolved"
+msgid ""
+"Prev\n"
+"Unsolved"
+msgstr "Unsolved"
+
+#: kdiff3.cpp:550
+msgid "Go to Next Unsolved Conflict"
+msgstr "அடுத்த தீர்க்காத குழப்பத்திற்குச் செல்க"
+
+#: kdiff3.cpp:550
+#, fuzzy
+#| msgid "Unsolved"
+msgid ""
+"Next\n"
+"Unsolved"
+msgstr "Unsolved"
+
+#: kdiff3.cpp:552
+msgid "Select Line(s) From A"
+msgstr "Aவிலிருந்து வரி(களை) தேர்ந்தெடு"
+
+#: kdiff3.cpp:552
+msgid ""
+"Choose\n"
+"A"
+msgstr ""
+
+#: kdiff3.cpp:553
+msgid "Select Line(s) From B"
+msgstr "Bவிலிருந்து வரி(களை) தேர்ந்தெடு"
+
+#: kdiff3.cpp:553
+msgid ""
+"Choose\n"
+"B"
+msgstr ""
+
+#: kdiff3.cpp:554
+msgid "Select Line(s) From C"
+msgstr "Cவிலிருந்து வரி(களை) தேர்ந்தெடு"
+
+#: kdiff3.cpp:554
+msgid ""
+"Choose\n"
+"C"
+msgstr ""
+
+#: kdiff3.cpp:555
+msgid "Automatically Go to Next Unsolved Conflict After Source Selection"
+msgstr "மூலத்தை தேர்வு செய்த பிறகு தானாகவே அடுத்த தீர்க்கப்படாத குழப்பதற்கு செல் "
+
+#: kdiff3.cpp:555
+#, fuzzy
+msgid ""
+"Auto\n"
+"Next"
+msgstr "தானாகவே தேர்ந்தெடுக்கப்பட்ட படிவு"
+
+#: kdiff3.cpp:557
+msgid "Show Space && Tabulator Characters for Differences"
+msgstr "இடைவெளியை காட்டி மற்றும் வேறுபாட்டிற்காக பட்டியலிடுவான் எழுத்துக்கள்"
+
+#: kdiff3.cpp:557
+msgid ""
+"White\n"
+"Characters"
+msgstr ""
+
+#: kdiff3.cpp:558
+msgid "Show White Space"
+msgstr "வெள்ளை இடத்தை காட்டும்"
+
+#: kdiff3.cpp:558
+msgid ""
+"White\n"
+"Deltas"
+msgstr ""
+
+#: kdiff3.cpp:560
+msgid "Show Line Numbers"
+msgstr "வரி எண்களை காட்டு"
+
+#: kdiff3.cpp:560
+#, fuzzy
+#| msgid "Show Line Numbers"
+msgid ""
+"Line\n"
+"Numbers"
+msgstr "வரி எண்களை காட்டு"
+
+#: kdiff3.cpp:561
+msgid "Choose A Everywhere"
+msgstr "எல்லா இடத்திலும் Aவைத் தேர்ந்தெடு"
+
+#: kdiff3.cpp:562
+msgid "Choose B Everywhere"
+msgstr "எல்லா இடத்திலும் Bவைத் தேர்ந்தெடு"
+
+#: kdiff3.cpp:563
+msgid "Choose C Everywhere"
+msgstr "எல்லா இடத்திலும் Cவைத் தேர்ந்தெடு"
+
+#: kdiff3.cpp:564
+#, fuzzy
+msgid "Choose A for All Unsolved Conflicts"
+msgstr "அனைத்து தீர்வற்ற முரணிற்கு A-வை தேர்ந்தெடுக்கவும்"
+
+#: kdiff3.cpp:565
+#, fuzzy
+msgid "Choose B for All Unsolved Conflicts"
+msgstr "அனைத்து தீர்வற்ற முரணிற்கு B-யை தேர்ந்தெடுக்கவும்"
+
+#: kdiff3.cpp:566
+#, fuzzy
+msgid "Choose C for All Unsolved Conflicts"
+msgstr "அனைத்து தீர்வற்ற முரணிற்கு C-யை தேர்ந்தெடுக்கவும்"
+
+#: kdiff3.cpp:567
+#, fuzzy
+msgid "Choose A for All Unsolved Whitespace Conflicts"
+msgstr "அனைத்து தீர்வற்ற வெள்ளை இடம் முரணிற்கு A-வை தேர்ந்தெடுக்கவும்"
+
+#: kdiff3.cpp:568
+#, fuzzy
+msgid "Choose B for All Unsolved Whitespace Conflicts"
+msgstr "அனைத்து தீர்வற்ற வெள்ளை இடம் முரணிற்கு B-யை தேர்ந்தெடுக்கவும்"
+
+#: kdiff3.cpp:569
+#, fuzzy
+msgid "Choose C for All Unsolved Whitespace Conflicts"
+msgstr "அனைத்து தீர்வற்ற வெள்ளை இடம் முரணிற்கு C-யை தேர்ந்தெடுக்கவும்"
+
+#: kdiff3.cpp:570
+msgid "Automatically Solve Simple Conflicts"
+msgstr "தானாகவே எளிய குழப்பங்களை தீர்க்க."
+
+#: kdiff3.cpp:571
+msgid "Set Deltas to Conflicts"
+msgstr " Delta வை குழப்பத்திற்கு அமை"
+
+#: kdiff3.cpp:572
+msgid "Run Regular Expression Auto Merge"
+msgstr ""
+
+#: kdiff3.cpp:573
+#, fuzzy
+msgid "Automatically Solve History Conflicts"
+msgstr "தானாகவே எளிய குழப்பங்களை தீர்க்க."
+
+#: kdiff3.cpp:574
+msgid "Split Diff At Selection"
+msgstr ""
+
+#: kdiff3.cpp:575
+#, fuzzy
+msgid "Join Selected Diffs"
+msgstr "தேர்ந்தெடுத்த கோப்பினை ஒப்பிடு"
+
+#: kdiff3.cpp:577
+msgid "Show Window A"
+msgstr "A சாளரத்தைக் காட்டு"
+
+#: kdiff3.cpp:578
+msgid "Show Window B"
+msgstr "B சாளரத்தைக் காட்டு"
+
+#: kdiff3.cpp:579
+msgid "Show Window C"
+msgstr "C சாளரத்தைக் காட்டு"
+
+#: kdiff3.cpp:580 kdiff3.cpp:591
+msgid "Focus Next Window"
+msgstr "அடுத்த சாளரத்தை நோக்கு"
+
+#: kdiff3.cpp:582
+msgid "Normal Overview"
+msgstr "Normal Overview"
+
+#: kdiff3.cpp:583
+msgid "A vs. B Overview"
+msgstr "A vs. B Overview"
+
+#: kdiff3.cpp:584
+msgid "A vs. C Overview"
+msgstr "A vs. C Overview"
+
+#: kdiff3.cpp:585
+msgid "B vs. C Overview"
+msgstr "B vs. C Overview"
+
+#: kdiff3.cpp:586
+msgid "Word Wrap Diff Windows"
+msgstr "Word Wrap Diff Windows"
+
+#: kdiff3.cpp:587
+msgid "Add Manual Diff Alignment"
+msgstr ""
+
+#: kdiff3.cpp:588
+msgid "Clear All Manual Diff Alignments"
+msgstr ""
+
+#: kdiff3.cpp:593
+msgid "Focus Prev Window"
+msgstr "முந்தைய சாளரத்தை நோக்கு"
+
+#: kdiff3.cpp:594
+msgid "Toggle Split Orientation"
+msgstr "பிரிப்பு திசையை மாற்று"
+
+#: kdiff3.cpp:596
+msgid "Dir && Text Split Screen View"
+msgstr "அடைவு மற்றும் உரையின் பிளவின் திரைப்பார்வை"
+
+#: kdiff3.cpp:598
+msgid "Toggle Between Dir && Text View"
+msgstr "அடைவுக்கும் உரை பார்வைக்கும் இடையே மாற்றுக"
+
+#: kdiff3.cpp:654 pdiff.cpp:1812
+msgid "The merge result hasn't been saved."
+msgstr "ஒன்று சேர் முடிவு சேகரிக்கப்படவில்லை."
+
+#: kdiff3.cpp:656
+msgid "Save && Quit"
+msgstr "சேகரித்து முடி"
+
+#: kdiff3.cpp:657
+msgid "Quit Without Saving"
+msgstr "சேகரிக்காமல் மூடு"
+
+#: kdiff3.cpp:665 pdiff.cpp:1823
+msgid "Saving the merge result failed."
+msgstr "ஒன்றுசேர் முடிவை சேகரித்தல் தோல்வியடைந்தது."
+
+#: kdiff3.cpp:676 pdiff.cpp:1078
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort?"
+msgstr "நீங்கள் தற்போது அடைவுகளை சேர்த்துக் கொண்டிருக்கிறீர்கள். நிறுத்த விரும்புகிறீர்களா?"
+
+#: kdiff3.cpp:701
+msgid "Saving file..."
+msgstr "கோப்பு சேகரித்தல்..."
+
+#: kdiff3.cpp:718
+msgid "Saving file with a new filename..."
+msgstr "புதிய கோப்புப்பெயருடன் கோப்பினை சேகரித்தல்..."
+
+#: kdiff3.cpp:781
+#, fuzzy
+msgid "Printing not implemented."
+msgstr "ஒன்றுசேர் இயக்கம் முடிந்தது"
+
+#: kdiff3.cpp:815
+#, fuzzy
+msgid "Printing..."
+msgstr "வெளியேறுதல்..."
+
+#: kdiff3.cpp:956
+#, fuzzy
+#| msgid "Select Another Font"
+msgid "Selection"
+msgstr "மற்றொரு எழுத்துருவை  தேர்தெடு"
+
+#: kdiff3.cpp:982
+#, fuzzy
+msgid "Printing completed."
+msgstr "ஒன்றுசேர் இயக்கம் முடிந்தது"
+
+#: kdiff3.cpp:986
+#, fuzzy
+msgid "Printing aborted."
+msgstr "ஒன்றுசேர் இயக்கம் முடிந்தது"
+
+#: kdiff3.cpp:993
+msgid "Exiting..."
+msgstr "வெளியேறுதல்..."
+
+#: kdiff3.cpp:1006
+msgid "Toggling toolbar..."
+msgstr "கருவிப்பட்டி மாற்றப்படுகறது"
+
+#: kdiff3.cpp:1027
+msgid "Toggle the statusbar..."
+msgstr "நிலைப்பட்டியை மாற்று"
+
+#: smalldialogs.cpp:58
+msgid "A (Base):"
+msgstr "A (அடிப்படை)"
+
+#: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99
+#: smalldialogs.cpp:142
+msgid "File..."
+msgstr "கோப்பு"
+
+#: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101
+#: smalldialogs.cpp:144
+msgid "Dir..."
+msgstr "அடைவு"
+
+#: smalldialogs.cpp:93
+msgid "C (Optional):"
+msgstr "C (விருப்பங்கள்)"
+
+#: smalldialogs.cpp:116
+msgid "Swap/Copy Names ..."
+msgstr ""
+
+#: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123
+#, kde-format
+msgid "Swap %1<->%2"
+msgstr ""
+
+#: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126
+#, kde-format
+msgid "Copy %1->Output"
+msgstr ""
+
+#: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129
+#, kde-format
+msgid "Swap %1<->Output"
+msgstr ""
+
+#: smalldialogs.cpp:136
+msgid "Output (optional):"
+msgstr "வெளீயிடு (விருப்பங்கள்)"
+
+#: smalldialogs.cpp:168
+msgid "Configure..."
+msgstr "அமை"
+
+#: smalldialogs.cpp:174
+msgid "&OK"
+msgstr ""
+
+#: smalldialogs.cpp:362
+#, fuzzy
+msgid "Search text:"
+msgstr "உரையைத் தேடு:"
+
+#: smalldialogs.cpp:369
+msgid "Case sensitive"
+msgstr "எழுத்து வகை உணரக்கூடிய"
+
+#: smalldialogs.cpp:372
+msgid "Search A"
+msgstr "Aவைத் தேடு"
+
+#: smalldialogs.cpp:377
+msgid "Search B"
+msgstr "Bவைத் தேடு"
+
+#: smalldialogs.cpp:382
+msgid "Search C"
+msgstr "Cவைத் தேடு"
+
+#: smalldialogs.cpp:387
+msgid "Search output"
+msgstr "வெளியீட்டைத் தேடு"
+
+#: smalldialogs.cpp:392
+msgid "&Search"
+msgstr "தேடு"
+
+#: smalldialogs.cpp:409
+msgid "Regular Expression Tester"
+msgstr ""
+
+#: smalldialogs.cpp:414 optiondialog.cpp:936
+msgid "Auto merge regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:422
+msgid "Example auto merge line:"
+msgstr ""
+
+#: smalldialogs.cpp:424
+msgid "To test auto merge, copy a line as used in your files."
+msgstr ""
+
+#: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494
+msgid "Match result:"
+msgstr ""
+
+#: smalldialogs.cpp:441 optiondialog.cpp:962
+msgid "History start regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:449
+msgid "Example history start line (with leading comment):"
+msgstr ""
+
+#: smalldialogs.cpp:451
+msgid ""
+"Copy a history start line as used in your files,\n"
+"including the leading comment."
+msgstr ""
+
+#: smalldialogs.cpp:469 optiondialog.cpp:972
+msgid "History entry start regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:477
+msgid "History sort key order:"
+msgstr ""
+
+#: smalldialogs.cpp:485
+msgid "Example history entry start line (without leading comment):"
+msgstr ""
+
+#: smalldialogs.cpp:487
+msgid ""
+"Copy a history entry start line as used in your files,\n"
+"but omit the leading comment."
+msgstr ""
+
+#: smalldialogs.cpp:501
+msgid "Sort key result:"
+msgstr ""
+
+#: smalldialogs.cpp:508
+msgid "OK"
+msgstr ""
+
+#: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583
+msgid "Match success."
+msgstr ""
+
+#: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589
+#, fuzzy
+msgid "Match failed."
+msgstr "சேகரிப்பு தோல்வியடைந்தது."
+
+#: smalldialogs.cpp:574
+msgid "Opening and closing parentheses do not match in regular expression."
+msgstr ""
+
+#: optiondialog.cpp:367
+msgid "Unicode, 8 bit"
+msgstr ""
+
+#: optiondialog.cpp:368
+msgid "Unicode"
+msgstr ""
+
+#: optiondialog.cpp:369
+msgid "Latin1"
+msgstr ""
+
+#: optiondialog.cpp:388
+msgid "Change this if non-ASCII characters are not displayed correctly."
+msgstr "இல்லா-ஆஸ்கி-எழுத்துக்கள் சரியாக வெளிகாட்டவில்லை என்றால் இதை மாற்றுக"
+
+#: optiondialog.cpp:465
+#, fuzzy
+#| msgid "Configure..."
+msgid "Configure"
+msgstr "அமை"
+
+#: optiondialog.cpp:531
+msgid "Font"
+msgstr ""
+
+#: optiondialog.cpp:532
+msgid "Editor & Diff Output Font"
+msgstr "திருத்துபவரும் வித்தியாசமான வெளியீட்டு எழுத்துக்களும்"
+
+#: optiondialog.cpp:556
+msgid "Italic font for deltas"
+msgstr "deltaவிற்கான இத்தாலிய எழுத்துரு"
+
+#: optiondialog.cpp:559
+msgid ""
+"Selects the italic version of the font for differences.\n"
+"If the font doesn't support italic characters, then this does nothing."
+msgstr ""
+"வித்தியாசங்களுக்காக இத்தாலிய பதிவை தேர்ந்தெடுக்கவும்.\n"
+"If the font doesn't support italic characters, then this does nothing."
+
+#: optiondialog.cpp:568
+msgid "Color"
+msgstr "வர்ணம்"
+
+#: optiondialog.cpp:569
+#, fuzzy
+msgid "Colors Settings"
+msgstr "இதர அமைப்புகளை உள்ளடக்கியது"
+
+#: optiondialog.cpp:588
+msgid "Editor and Diff Views:"
+msgstr ""
+
+#: optiondialog.cpp:596
+msgid "Foreground color:"
+msgstr "முன்னணி நிறம்"
+
+#: optiondialog.cpp:603
+msgid "Background color:"
+msgstr "பின்னணி நிறம்"
+
+#: optiondialog.cpp:612
+msgid "Diff background color:"
+msgstr "வேறுபட்ட பின்னணி நிறம்"
+
+#: optiondialog.cpp:620
+msgid "Color A:"
+msgstr "வர்ணம் A:"
+
+#: optiondialog.cpp:628
+msgid "Color B:"
+msgstr "வர்ணம் B:"
+
+#: optiondialog.cpp:636
+msgid "Color C:"
+msgstr "வர்ணம் C:"
+
+#: optiondialog.cpp:643
+msgid "Conflict color:"
+msgstr "குழப்பமான நிறம்"
+
+#: optiondialog.cpp:651
+msgid "Current range background color:"
+msgstr "பின்னணி நிறத்தின் தற்போதைய வரம்பு "
+
+#: optiondialog.cpp:659
+msgid "Current range diff background color:"
+msgstr "பின்னணி நிறத்தின் வேறுபட்ட தற்போதைய வரம்பு "
+
+#: optiondialog.cpp:666
+msgid "Color for manually aligned difference ranges:"
+msgstr ""
+
+#: optiondialog.cpp:672
+#, fuzzy
+msgid "Directory Comparison View:"
+msgstr "அடைவு ஒப்பிடும் நிலை"
+
+#: optiondialog.cpp:678
+msgid "Newest file color:"
+msgstr ""
+
+#: optiondialog.cpp:682
+msgid ""
+"Changing this color will only be effective when starting the next directory "
+"comparison."
+msgstr ""
+
+#: optiondialog.cpp:687
+msgid "Oldest file color:"
+msgstr ""
+
+#: optiondialog.cpp:695
+msgid "Middle age file color:"
+msgstr ""
+
+#: optiondialog.cpp:703
+msgid "Color for missing files:"
+msgstr ""
+
+#: optiondialog.cpp:717
+msgid "Editor"
+msgstr "திருத்தியவர்"
+
+#: optiondialog.cpp:718
+#, fuzzy
+msgid "Editor Behavior"
+msgstr "திருத்துபவரின் செயல்பாடு"
+
+#: optiondialog.cpp:732
+msgid "Tab inserts spaces"
+msgstr "தத்தல் இடைவெளியை சொருகும்"
+
+#: optiondialog.cpp:735
+#, fuzzy
+#| msgid ""
+#| "On: Pressing tab generates the appropriate number of spaces.\n"
+#| "Off: A Tab-character will be inserted."
+msgid ""
+"On: Pressing tab generates the appropriate number of spaces.\n"
+"Off: A tab character will be inserted."
+msgstr ""
+"On:தத்தலை அழுத்தும் போது தேவையான இடைவெளி உருவாகிறது, \n"
+"Off:ஒர் தத்தல் எழுத்து சொருகப்படும்"
+
+#: optiondialog.cpp:741
+msgid "Tab size:"
+msgstr "Tab அளவு"
+
+#: optiondialog.cpp:747
+msgid "Auto indentation"
+msgstr "தானியக்க உள்ளடக்கம்"
+
+#: optiondialog.cpp:750
+msgid "On: The indentation of the previous line is used for a new line.\n"
+msgstr "முந்தைய வரியில் பயன்படுத்தப்பட்ட நகர்ப்பு புதிய வரியிலும் பயன்படுத்தப்படுகிறது\n"
+
+#: optiondialog.cpp:754
+msgid "Auto copy selection"
+msgstr "தானாகவே தேர்ந்தெடுக்கப்பட்ட படிவு"
+
+#: optiondialog.cpp:757
+msgid ""
+"On: Any selection is immediately written to the clipboard.\n"
+"Off: You must explicitely copy e.g. via Ctrl-C."
+msgstr ""
+"எந்த ஒரு தேர்வையும் உடனடியாக கிளிப் போர்டுக்கு எழுதவும்.\n"
+"நீங்கள் வெளிப்படையாக படிவு செய்"
+
+#: optiondialog.cpp:768
+#, fuzzy
+#| msgid "&Window"
+msgid "Dos/Windows"
+msgstr "சாளரங்கள்"
+
+#: optiondialog.cpp:769
+#, fuzzy
+msgid "Autodetect"
+msgstr "தானாகவே தேர்ந்தெடுக்கப்பட்ட படிவு"
+
+#: optiondialog.cpp:772
+#, fuzzy
+msgid ""
+"Sets the line endings for when an edited file is saved.\n"
+"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A"
+msgstr ""
+"கோட்டின் முடிவை அமைத்து தொகுப்புக்கோப்பில் சேமிDOS/விண்டோஸ்: CR+LF;யுனிக்ஸ்:மற்றும் "
+"CR=0D, LF=0A"
+
+#: optiondialog.cpp:784
+#, fuzzy
+msgid "Diff"
+msgstr "KDiff3"
+
+#: optiondialog.cpp:785
+#, fuzzy
+msgid "Diff Settings"
+msgstr "வேறுபாடு & சேர்த்திடு அமைப்புகள்"
+
+#: optiondialog.cpp:809
+#, fuzzy
+msgid "Treat as white space."
+msgstr "C/C++  குறிப்புரைகளை வெள்ளை இடம் போல உபசரி."
+
+#: optiondialog.cpp:811
+msgid "Ignore numbers"
+msgstr "சொற்களை தவிர்"
+
+#: optiondialog.cpp:814
+msgid ""
+"Ignore number characters during line matching phase. (Similar to Ignore "
+"white space.)\n"
+"Might help to compare files with numeric data."
+msgstr "வரி பொருத்துதலின் போது எண் எழுத்துக்களை நிராகரி."
+
+#: optiondialog.cpp:819
+#, fuzzy
+msgid "Ignore C/C++ comments"
+msgstr "C/C++  குறிப்புரைகளை புறக்கணி"
+
+#: optiondialog.cpp:821
+msgid "Treat C/C++ comments like white space."
+msgstr "C/C++  குறிப்புரைகளை வெள்ளை இடம் போல உபசரி."
+
+#: optiondialog.cpp:825
+msgid "Ignore case"
+msgstr "Ignore case"
+
+#: optiondialog.cpp:828
+msgid "Treat case differences like white space changes. ('a'<=>'A')"
+msgstr "Treat case differences like white space changes. ('a'<=>'A')"
+
+#: optiondialog.cpp:832
+msgid "Preprocessor command:"
+msgstr "முன் செயலாக்க கட்டளை"
+
+#: optiondialog.cpp:836
+msgid "User defined pre-processing. (See the docs for details.)"
+msgstr "உபயோகிப்பாளரால் அறுதியிடப்பட்ட முன்-செயலாக்கி"
+
+#: optiondialog.cpp:839
+msgid "Line-matching preprocessor command:"
+msgstr "வரி-பொருத்து முன்-செயலாக்கி கட்டளை"
+
+#: optiondialog.cpp:843
+msgid ""
+"This pre-processor is only used during line matching.\n"
+"(See the docs for details.)"
+msgstr "முன்-செயலாக்கி வரி-பொருத்துதலின் போது பயன்ப்படுத்தப்படுகிறது"
+
+#: optiondialog.cpp:846
+msgid "Try hard (slower)"
+msgstr "கடினமாக முயற்சி(மெதுவாக)"
+
+#: optiondialog.cpp:849
+msgid ""
+"Enables the --minimal option for the external diff.\n"
+"The analysis of big files will be much slower."
+msgstr ""
+"வெளி வேற்றுமைக்கான --குறைந்த விருப்பத்தை செயல்படுத்துகிறது.\n"
+"பெரிய கோப்புகளின் பகுப்பாய்வு மெதுவாக இருக்கும்."
+
+#: optiondialog.cpp:854
+msgid "Align B and C for 3 input files"
+msgstr ""
+
+#: optiondialog.cpp:857
+msgid ""
+"Try to align B and C when comparing or merging three input files.\n"
+"Not recommended for merging because merge might get more complicated.\n"
+"(Default is off.)"
+msgstr ""
+
+#: optiondialog.cpp:870
+#, fuzzy
+msgid "Merge Settings"
+msgstr "வேறுபாடு & சேர்த்திடு அமைப்புகள்"
+
+#: optiondialog.cpp:885
+msgid "Auto advance delay (ms):"
+msgstr "தானாக முன்னேறிய தாமதம் (ms):"
+
+#: optiondialog.cpp:890
+msgid ""
+"When in Auto-Advance mode the result of the current selection is shown \n"
+"for the specified time, before jumping to the next conflict. Range: 0-2000 ms"
+msgstr ""
+"தற்போதைய தேர்ந்தெடுப்பின் முடிவை தானாக - முன்னேறும் அமைப்பில்.\n"
+"குறிப்பிட்ட கால இடைவெளியில், அடுத்த சிக்கலுக்கு முன் தெரிந்துகொள்ளலாம்."
+
+#: optiondialog.cpp:895
+#, fuzzy
+#| msgid "Show Window A"
+msgid "Show info dialogs"
+msgstr "A சாளரத்தைக் காட்டு"
+
+#: optiondialog.cpp:897
+msgid "Show a dialog with information about the number of conflicts."
+msgstr ""
+
+#: optiondialog.cpp:900
+msgid "White space 2-file merge default:"
+msgstr "வெள்ளை இடம் 2-கோப்பு ஒன்றிணை முன்னிருப்பு:"
+
+#: optiondialog.cpp:904 optiondialog.cpp:917
+#, fuzzy
+msgid "Manual Choice"
+msgstr "கையேடு விருப்பம்"
+
+#: optiondialog.cpp:908 optiondialog.cpp:922
+msgid ""
+"Allow the merge algorithm to automatically select an input for white-space-"
+"only changes."
+msgstr ""
+"வெள்ளை-இடம்-மாற்றங்களுக்காக தானாக தேர்ந்தெடுக்கும் உள்ளீட்டிற்க்கு ஒன்றிணை படிமுறையை "
+"அனுமதிக்கும்."
+
+#: optiondialog.cpp:913
+msgid "White space 3-file merge default:"
+msgstr "வெள்ளை இடம் 3-கோப்பு ஒன்றிணை முன்னிருப்பு:"
+
+#: optiondialog.cpp:927
+msgid "Automatic Merge Regular Expression"
+msgstr ""
+
+#: optiondialog.cpp:940
+msgid ""
+"Regular expression for lines where KDiff3 should automatically choose one "
+"source.\n"
+"When a line with a conflict matches the regular expression then\n"
+"- if available - C, otherwise B will be chosen."
+msgstr ""
+
+#: optiondialog.cpp:946
+msgid "Run regular expression auto merge on merge start"
+msgstr ""
+
+#: optiondialog.cpp:948
+msgid ""
+"Run the merge for auto merge regular expressions\n"
+"immediately when a merge starts.\n"
+msgstr ""
+
+#: optiondialog.cpp:953
+msgid "Version Control History Merging"
+msgstr ""
+
+#: optiondialog.cpp:966
+msgid ""
+"Regular expression for the start of the version control history entry.\n"
+"Usually this line contains the \"$Log$\" keyword.\n"
+"Default value: \".*\\$Log.*\\$.*\""
+msgstr ""
+
+#: optiondialog.cpp:984
+msgid ""
+"A version control history entry consists of several lines.\n"
+"Specify the regular expression to detect the first line (without the leading "
+"comment).\n"
+"Use parentheses to group the keys you want to use for sorting.\n"
+"If left empty, then KDiff3 assumes that empty lines separate history "
+"entries.\n"
+"See the documentation for details."
+msgstr ""
+
+#: optiondialog.cpp:992
+msgid "History merge sorting"
+msgstr ""
+
+#: optiondialog.cpp:994
+msgid "Sort version control history by a key."
+msgstr ""
+
+#: optiondialog.cpp:1004
+msgid "History entry start sort key order:"
+msgstr ""
+
+#: optiondialog.cpp:1008
+msgid ""
+"Each pair of parentheses used in the regular expression for the history "
+"start entry\n"
+"groups a key that can be used for sorting.\n"
+"Specify the list of keys (that are numbered in order of occurrence\n"
+"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n"
+"If left empty, then no sorting will be done.\n"
+"See the documentation for details."
+msgstr ""
+
+#: optiondialog.cpp:1019
+msgid "Merge version control history on merge start"
+msgstr ""
+
+#: optiondialog.cpp:1021
+msgid "Run version control history automerge on merge start."
+msgstr ""
+
+#: optiondialog.cpp:1025
+#, fuzzy
+msgid "Max number of history entries:"
+msgstr "உப அடைவுகளின் எண்ணிக்கை:"
+
+#: optiondialog.cpp:1028
+msgid "Cut off after specified number. Use -1 for infinite number of entries."
+msgstr ""
+
+#: optiondialog.cpp:1032
+msgid "Test your regular expressions"
+msgstr ""
+
+#: optiondialog.cpp:1037
+msgid "Irrelevant merge command:"
+msgstr ""
+
+#: optiondialog.cpp:1041
+msgid ""
+"If specified this script is run after automerge\n"
+"when no other relevant changes were detected.\n"
+"Called with the parameters: filename1 filename2 filename3"
+msgstr ""
+
+#: optiondialog.cpp:1047
+msgid "Auto save and quit on merge without conflicts"
+msgstr ""
+
+#: optiondialog.cpp:1050
+msgid ""
+"If KDiff3 was started for a file-merge from the command line and all\n"
+"conflicts are solvable without user interaction then automatically save and "
+"quit.\n"
+"(Similar to command line option \"--auto\".)"
+msgstr ""
+
+#: optiondialog.cpp:1061 optiondialog.cpp:1062
+#, fuzzy
+#| msgid "&Directory"
+msgid "Directory"
+msgstr "அடைவு"
+
+#: optiondialog.cpp:1075
+msgid "Recursive directories"
+msgstr "திரும்ப நிகழும் அடைவுகள்"
+
+#: optiondialog.cpp:1077
+msgid "Whether to analyze subdirectories or not."
+msgstr "உபஅடைவுகளை பரிசோதிக்க வேண்டுமா?"
+
+#: optiondialog.cpp:1079
+msgid "File pattern(s):"
+msgstr "கோப்பு வடிவங்கள்:"
+
+#: optiondialog.cpp:1084
+msgid ""
+"Pattern(s) of files to be analyzed. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"பரிசோதனையிலிருந்து வெளியேற்றப்பட வேண்டிய கோப்புகளின் வடிவங்கள்.Wildcards ';' "
+"உபயோகித்து பல்வேறு வடிவங்களை குறிப்பிடலாம்"
+
+#: optiondialog.cpp:1090
+msgid "File-anti-pattern(s):"
+msgstr "வடிவற்ற கோப்பு"
+
+#: optiondialog.cpp:1095
+msgid ""
+"Pattern(s) of files to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"பரிசோதனையிலிருந்து வெளியேற்றப்பட வேண்டிய கோப்புகளின் வடிவங்கள்.Wildcards ';' "
+"உபயோகித்து பல்வேறு வடிவங்களை குறிப்பிடலாம்"
+
+#: optiondialog.cpp:1101
+msgid "Dir-anti-pattern(s):"
+msgstr "வடிவற்ற அடைவு"
+
+#: optiondialog.cpp:1106
+msgid ""
+"Pattern(s) of directories to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"பரிசோதனையிலிருந்து வெளியேற்றப்பட வேண்டிய கோப்புகளின் வடிவங்கள்.Wildcards ';' "
+"உபயோகித்து பல்வேறு வடிவங்களை குறிப்பிடலாம்"
+
+#: optiondialog.cpp:1112
+msgid "Use .cvsignore"
+msgstr ".cvsignore உபயோகி"
+
+#: optiondialog.cpp:1115
+#, fuzzy
+#| msgid ""
+#| "Extends the antipattern to anything that would be ignored by CVS.\n"
+#| "Via local \".cvsignore\"-files this can be directory specific."
+msgid ""
+"Extends the antipattern to anything that would be ignored by CVS.\n"
+"Via local \".cvsignore\" files this can be directory specific."
+msgstr ""
+"Extends the antipattern to anything that would be ignored by CVS.\n"
+"Via local \".cvsignore\"-files this can be directory specific."
+
+#: optiondialog.cpp:1120
+msgid "Find hidden files and directories"
+msgstr "மறைந்த கோப்புகளையும் அடைவுகளையும் தேடு"
+
+#: optiondialog.cpp:1123
+msgid "Finds files and directories with the hidden attribute."
+msgstr "கோப்புகளையும் அடைவுகளையும் மறைந்த குணங்களுடன் தேர்ந்தெடு "
+
+#: optiondialog.cpp:1125
+msgid "Finds files and directories starting with '.'."
+msgstr "'.'. தொடங்கும் கோப்புகளும் அடைவுகளும் தேடு"
+
+#: optiondialog.cpp:1129
+msgid "Follow file links"
+msgstr "கோப்பு இணைப்பை பின்பற்று"
+
+#: optiondialog.cpp:1132
+msgid ""
+"On: Compare the file the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+"கோப்பினை இணைப்பு குறியோடு ஒப்பிடு.\n"
+" இணைப்பை ஒப்பிடு"
+
+#: optiondialog.cpp:1137
+msgid "Follow directory links"
+msgstr "அடைவை இணைப்பை பின்பற்று"
+
+#: optiondialog.cpp:1140
+msgid ""
+"On: Compare the directory the link points to.\n"
+"Off: Compare the links."
+msgstr "On:அடைவை இணைப்பு குறியோடு ஒப்பிடுOff இணைப்பை ஒப்பிடு"
+
+#: optiondialog.cpp:1156
+msgid "Case sensitive filename comparison"
+msgstr ""
+
+#: optiondialog.cpp:1159
+msgid ""
+"The directory comparison will compare files or directories when their names "
+"match.\n"
+"Set this option if the case of the names must match. (Default for Windows is "
+"off, otherwise on.)"
+msgstr ""
+
+#: optiondialog.cpp:1163
+msgid "File Comparison Mode"
+msgstr "File Comparison Mode"
+
+#: optiondialog.cpp:1169
+#, fuzzy
+msgid "Binary comparison"
+msgstr "Binary Comparison"
+
+#: optiondialog.cpp:1170
+msgid "Binary comparison of each file. (Default)"
+msgstr "Binary comparison of each file. (Default)"
+
+#: optiondialog.cpp:1173
+#, fuzzy
+msgid "Full analysis"
+msgstr "Full Analysis"
+
+#: optiondialog.cpp:1174
+msgid ""
+"Do a full analysis and show statistics information in extra columns.\n"
+"(Slower than a binary comparison, much slower for binary files.)"
+msgstr ""
+"Do a full analysis and show statistics information in extra columns.\n"
+"(Slower than a binary comparison, much slower for binary files.)"
+
+#: optiondialog.cpp:1178
+#, fuzzy
+msgid "Trust the size and modification date (unsafe)"
+msgstr "மாற்றிய தேதியை நம்பு(பாதுகாப்பில்லை)"
+
+#: optiondialog.cpp:1179
+#, fuzzy
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"Files with equal contents but different modification dates will appear as "
+"different.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"மாற்றிய தேதியும் கோப்பு நீளமும் சமமாக  இருந்தால் எல்லா கோப்புகளும் சமம் என எண்ணலாம். இது "
+"பெரிய அடைவுகளுக்கு அல்லது மெதுவான இணைப்புகளுக்கு உதவும்"
+
+#: optiondialog.cpp:1184
+#, fuzzy
+msgid ""
+"Trust the size and date, but use binary comparison if date does not match "
+"(unsafe)"
+msgstr "மாற்றிய தேதியை நம்பு(பாதுகாப்பில்லை)"
+
+#: optiondialog.cpp:1185
+#, fuzzy
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"If the dates are not equal but the sizes are, use binary comparison.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"மாற்றிய தேதியும் கோப்பு நீளமும் சமமாக  இருந்தால் எல்லா கோப்புகளும் சமம் என எண்ணலாம். இது "
+"பெரிய அடைவுகளுக்கு அல்லது மெதுவான இணைப்புகளுக்கு உதவும்"
+
+#: optiondialog.cpp:1190
+msgid "Trust the size (unsafe)"
+msgstr "அளவை உறுதிபடுத்து(பாதுகாப்பில்லை)"
+
+#: optiondialog.cpp:1191
+msgid ""
+"Assume that files are equal if their file lengths are equal.\n"
+"Useful for big directories or slow networks when the date is modified during "
+"download."
+msgstr ""
+"மாற்றிய தேதியும் கோப்பு நீளமும் சமமாக இருந்தால் எல்லா கோப்புகளும் சமம் என எண்ணலாம். இது "
+"பெரிய அடைவுகளுக்கு அல்லது மெதுவான இணைப்புகளுக்கு உதவும்."
+
+#: optiondialog.cpp:1199
+msgid "Synchronize directories"
+msgstr "ஒத்தியக்கு அடைவை"
+
+#: optiondialog.cpp:1202
+msgid ""
+"Offers to store files in both directories so that\n"
+"both directories are the same afterwards.\n"
+"Works only when comparing two directories without specifying a destination."
+msgstr ""
+"இரண்டு அடைவிலும் கோப்புகளை சேமிப்பதற்கு அனுமதிப்பதால், இரண்டு அடைவுகளும் பின்னர் "
+"ஒன்றாகவே இருக்கும் .இரண்டு அடைவுகளையும் சேருமிடம் குறிப்பிடாமல் ஒத்திடும் பொழுதுதான் "
+"வேலை செய்யும்."
+
+#: optiondialog.cpp:1208
+#, fuzzy
+msgid "White space differences considered equal"
+msgstr "வெள்ளை இடம் 3-கோப்பு ஒன்றிணை முன்னிருப்பு:"
+
+#: optiondialog.cpp:1211
+msgid ""
+"If files differ only by white space consider them equal.\n"
+"This is only active when full analysis is chosen."
+msgstr ""
+
+#: optiondialog.cpp:1217
+msgid "Copy newer instead of merging (unsafe)"
+msgstr "ஒன்றாக சேர்ப்பதற்கு பதிலாக புதியவரை பதியெடு(பாதுகாப்பில்லை)"
+
+#: optiondialog.cpp:1220
+msgid ""
+"Don't look inside, just take the newer file.\n"
+"(Use this only if you know what you are doing!)\n"
+"Only effective when comparing two directories."
+msgstr ""
+"உள்ளே பார்க்காதே புதிய கோப்பினை மட்டும் எடு.(நீ செய்வது என்ன என்று தெரிந்தால் மட்டுமே இதை "
+"உபயோகப்படுத்து) இரண்டு அடைவுகளை ஒத்திடும் போது மட்டுமே விளைவுகள் ஏற்படும்"
+
+#: optiondialog.cpp:1225
+msgid "Backup files (.orig)"
+msgstr "பின்சேமிப்பு கோப்புகள்(.orig)"
+
+#: optiondialog.cpp:1228
+#, fuzzy
+#| msgid ""
+#| "When a file would be saved over an old file, then the old file\n"
+#| "will be renamed with a '.orig'-extension instead of being deleted."
+msgid ""
+"If a file would be saved over an old file, then the old file\n"
+"will be renamed with a '.orig' extension instead of being deleted."
+msgstr ""
+"பழைய கோப்பில் ஒரு கோப்பினை சேமிக்கும் பொழுது, பழைய கோப்பில் மூல நீட்டுதலுடன் பெயர் "
+"மாறும், நீக்கபடுவதற்கு பதிலாக. "
+
+#: optiondialog.cpp:1301 optiondialog.cpp:1302
+msgid "Regional Settings"
+msgstr "இதர அமைப்புகளை உள்ளடக்கியது"
+
+#: optiondialog.cpp:1402
+msgid "Language (restart required)"
+msgstr "மொழி "
+
+#: optiondialog.cpp:1445
+#, fuzzy
+#| msgid ""
+#| "Choose the language of the GUI-strings or \"Auto\".\n"
+#| "For a change of language to take place, quit and restart KDiff3."
+msgid ""
+"Choose the language of the GUI strings or \"Auto\".\n"
+"For a change of language to take place, quit and restart KDiff3."
+msgstr ""
+"கீழ்கண்ட மொழிகளில் GUI- எழுத்துக்களைத் தேர்ந்தெடு மொழிகளை மாற்ற KDiff3யை தேர்ந்தெடு"
+
+#: optiondialog.cpp:1463
+msgid "Use the same encoding for everything:"
+msgstr ""
+
+#: optiondialog.cpp:1466
+msgid ""
+"Enable this allows to change all encodings by changing the first only.\n"
+"Disable this if different individual settings are needed."
+msgstr ""
+
+#: optiondialog.cpp:1471
+#, fuzzy
+msgid "Note: Local Encoding is "
+msgstr "லொகல் குறிமுறையாக்கம் உபயோகி"
+
+#: optiondialog.cpp:1475
+msgid "File Encoding for A:"
+msgstr ""
+
+#: optiondialog.cpp:1481
+msgid ""
+"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n"
+"If the file is not Unicode then the selected encoding will be used as "
+"fallback.\n"
+"(Unicode detection depends on the first bytes of a file.)"
+msgstr ""
+
+#: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503
+msgid "Auto Detect Unicode"
+msgstr ""
+
+#: optiondialog.cpp:1490
+msgid "File Encoding for B:"
+msgstr ""
+
+#: optiondialog.cpp:1499
+msgid "File Encoding for C:"
+msgstr ""
+
+#: optiondialog.cpp:1508
+msgid "File Encoding for Merge Output and Saving:"
+msgstr ""
+
+#: optiondialog.cpp:1512
+#, fuzzy
+msgid "Auto Select"
+msgstr "தானாகவே தேர்ந்தெடுக்கப்பட்ட படிவு"
+
+#: optiondialog.cpp:1515
+msgid ""
+"If enabled then the encoding from the input files is used.\n"
+"In ambiguous cases a dialog will ask the user to choose the encoding for "
+"saving."
+msgstr ""
+
+#: optiondialog.cpp:1519
+msgid "File Encoding for Preprocessor Files:"
+msgstr ""
+
+#: optiondialog.cpp:1530
+msgid "Right To Left Language"
+msgstr ""
+
+#: optiondialog.cpp:1533
+msgid ""
+"Some languages are read from right to left.\n"
+"This setting will change the viewer and editor accordingly."
+msgstr ""
+
+#: optiondialog.cpp:1548
+#, fuzzy
+msgid "Integration"
+msgstr "இயக்கம்."
+
+#: optiondialog.cpp:1549
+#, fuzzy
+msgid "Integration Settings"
+msgstr "இதர அமைப்புகளை உள்ளடக்கியது"
+
+#: optiondialog.cpp:1563
+msgid "Command line options to ignore:"
+msgstr ""
+
+#: optiondialog.cpp:1568
+msgid ""
+"List of command line options that should be ignored when KDiff3 is used by "
+"other tools.\n"
+"Several values can be specified if separated via ';'\n"
+"This will suppress the \"Unknown option\" error."
+msgstr ""
+
+#: optiondialog.cpp:1575
+msgid "Quit also via Escape key"
+msgstr ""
+
+#: optiondialog.cpp:1578
+msgid ""
+"Fast method to exit.\n"
+"For those who are used to using the Escape key."
+msgstr ""
+
+#: optiondialog.cpp:1583
+msgid "Integrate with ClearCase"
+msgstr ""
+
+#: optiondialog.cpp:1586
+msgid ""
+"Integrate with Rational ClearCase from IBM.\n"
+"Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n"
+"(Only enabled when ClearCase \"bin\" directory is in the path.)"
+msgstr ""
+
+#: optiondialog.cpp:1592
+msgid "Remove ClearCase Integration"
+msgstr ""
+
+#: optiondialog.cpp:1595
+msgid ""
+"Restore the old \"map\" file from before doing the ClearCase integration."
+msgstr ""
+
+#: optiondialog.cpp:1680
+msgid "Incompatible Font"
+msgstr "கச்சிதமில்லாத எழுத்துரு"
+
+#: optiondialog.cpp:1681
+msgid "Continue at Own Risk"
+msgstr "உங்களுடைய சொந்த ஆபத்தில் தொடரவும்"
+
+#: optiondialog.cpp:1682
+msgid "Select Another Font"
+msgstr "மற்றொரு எழுத்துருவை  தேர்தெடு"
+
+#: optiondialog.cpp:1717
+msgid "This resets all options. Not only those of the current topic."
+msgstr "இது அனைத்து தேர்வுகளையும் மாற்றியமைக்கும். தற்பொழுதுள்ள தலைப்பு மட்டுமல்ல"
+
+#: pdiff.cpp:260
+msgid "PreprocessorCmd: "
+msgstr "முன் செயலாக்க கட்டளை:"
+
+#: pdiff.cpp:265
+msgid "The following option(s) you selected might change data:\n"
+msgstr "கீழ்கண்ட தேர்வுகளில் தரவை தேர்வுசெய்:\n"
+
+#: pdiff.cpp:266
+msgid ""
+"\n"
+"Most likely this is not wanted during a merge.\n"
+"Do you want to disable these settings or continue with these settings active?"
+msgstr ""
+"\n"
+"தேவை இல்லாத செல்கள்.\n"
+"இவற்றை முடக்க வேண்டுமா?"
+
+#: pdiff.cpp:268
+#, fuzzy
+msgid "Option Unsafe for Merging"
+msgstr "காப்பு இல்லாத தேர்வுகள் செல்கள்"
+
+#: pdiff.cpp:269
+#, fuzzy
+msgid "Use These Options During Merge"
+msgstr "செல்களில் தேர்வுகளை உபயோகப்படுத்து "
+
+#: pdiff.cpp:270
+#, fuzzy
+msgid "Disable Unsafe Options"
+msgstr "பாதுகாப்பு இல்லாத தேர்வுகளை முடக்கு"
+
+#: pdiff.cpp:300
+msgid "Loading A"
+msgstr "A   ஏற்றுதல்"
+
+#: pdiff.cpp:304
+msgid "Loading B"
+msgstr "  B  ஏற்றுதல்"
+
+#: pdiff.cpp:321 pdiff.cpp:347
+msgid "Diff: A <-> B"
+msgstr "வித்தியாசம்  A <-> B"
+
+#: pdiff.cpp:327 pdiff.cpp:372
+msgid "Linediff: A <-> B"
+msgstr "வரி வித்தியாசம் : A <->B"
+
+#: pdiff.cpp:338
+msgid "Loading C"
+msgstr " C ஏற்றுதல்"
+
+#: pdiff.cpp:350
+msgid "Diff: B <-> C"
+msgstr "வித்தியாசம்  B <-> C"
+
+#: pdiff.cpp:353
+msgid "Diff: A <-> C"
+msgstr "வித்தியாசம்  A <-> C"
+
+#: pdiff.cpp:375
+msgid "Linediff: B <-> C"
+msgstr "வரி வித்தியாசம்  B <-> C"
+
+#: pdiff.cpp:378
+msgid "Linediff: A <-> C"
+msgstr "வரி வித்தியாசம் : A <-> C"
+
+#: pdiff.cpp:534
+#, fuzzy
+msgid "All input files contain the same text, but are not binary equal."
+msgstr "அனைத்து உள்ளீட்டுக் கோப்புகளும் ஒரே உரையைக் கொண்டன."
+
+#: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541
+#, fuzzy, kde-format
+msgid "Files %1 and %2 have equal text, but are not binary equal. \n"
+msgstr "கோப்புகள் A மற்றும் B இருநிலை சமம் உடையன.\n"
+
+#: pdiff.cpp:551
+msgid ""
+"Some inputfiles don't seem to be pure textfiles.\n"
+"Note that the KDiff3-merge was not meant for binary data.\n"
+"Continue at your own risk."
+msgstr ""
+"Some inputfiles don't seem to be pure textfiles.\n"
+"Note that the KDiff3-merge was not meant for binary data.\n"
+"Continue at your own risk."
+
+#: pdiff.cpp:566
+#, kde-format
+msgid ""
+"Some input characters could not be converted to valid unicode.\n"
+"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n"
+"Don't save the result if unsure. Continue at your own risk.\n"
+"Affected input files are in %1."
+msgstr ""
+
+#: pdiff.cpp:1080
+msgid "Abort"
+msgstr "விடுதல்"
+
+#: pdiff.cpp:1087 pdiff.cpp:1175
+msgid "Opening files..."
+msgstr "திறந்த கோப்புகள்"
+
+#: pdiff.cpp:1152 pdiff.cpp:1223
+msgid "File open error"
+msgstr "கோப்பு திறப்பு பிழை"
+
+#: pdiff.cpp:1255
+msgid "Cutting selection..."
+msgstr "வெட்டுதலை தேர்ந்தெடு"
+
+#: pdiff.cpp:1276
+msgid "Copying selection to clipboard..."
+msgstr "தேர்ந்தெடுக்கப்பட்டதை கிளிப்போர்டிற்கு நகலெடுக்க"
+
+#: pdiff.cpp:1292
+msgid "Inserting clipboard contents..."
+msgstr "கிளிப்போர்டு உள்ளடக்கத்தை சொருகு"
+
+#: pdiff.cpp:1814
+msgid "Save && Continue"
+msgstr "சேமி தொடரு"
+
+#: pdiff.cpp:1815
+msgid "Continue Without Saving"
+msgstr "சேமிக்காமல் தொடரு"
+
+#: pdiff.cpp:2018
+msgid "Search complete."
+msgstr "தேடல் முடிவடைந்தது"
+
+#: pdiff.cpp:2018
+msgid "Search Complete"
+msgstr "தேடல் முடிவடைந்தது"
+
+#: pdiff.cpp:2252
+msgid "Nothing is selected in either diff input window."
+msgstr ""
+
+#: pdiff.cpp:2252
+#, fuzzy
+msgid "Error while adding manual diff range"
+msgstr "அடைவை உருவாக்கும் போது பிழை"
+
+#: kdiff3_shell.cpp:76
+#, fuzzy
+#| msgid ""
+#| "Could not find our part!\n"
+#| "This usually happens due to an installation problem. Please read the "
+#| "README-file in the source package for details."
+msgid ""
+"Could not initialize the KDiff3 part.\n"
+"This usually happens due to an installation problem. Please read the README-"
+"file in the source package for details."
+msgstr ""
+"உங்கள் பகுதியை காணவில்லை.\n"
+"நிறுவும் போது இப்படிப்பட்ட பிரச்சனை ஏற்படும் விவரங்களுக்கு README தொகுப்பைப் படிக்கவும்"
+
+#: rc.cpp:1
+msgctxt "NAME OF TRANSLATORS"
+msgid "Your names"
+msgstr ""
+
+#: rc.cpp:2
+msgctxt "EMAIL OF TRANSLATORS"
+msgid "Your emails"
+msgstr ""
+
+#. i18n: file: kdiff3_part.rc:4
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:5
+msgid "&KDiff3"
+msgstr "&KDiff3"
+
+#. i18n: file: kdiff3_part.rc:13
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:8
+msgid "Configure KDiff3"
+msgstr "அமை  KDiff3"
+
+#. i18n: file: kdiff3_part.rc:16
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:11
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#. i18n: file: kdiff3_shell.rc:106
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:38
+msgid "Main Toolbar"
+msgstr ""
+
+#~ msgid "Directory Merge"
+#~ msgstr "அடைவுச் சேர்க்கை"
+
+#~ msgid "C&ontinue"
+#~ msgstr "தொடர்தல்"
+
+#~ msgid ""
+#~ "_: NAME OF TRANSLATORS\n"
+#~ "Your names"
+#~ msgstr "prem"
+
+#~ msgid ""
+#~ "_: EMAIL OF TRANSLATORS\n"
+#~ "Your emails"
+#~ msgstr "prem4ever_1983@yahoo.com"
+
+#~ msgid "Enables/disables the toolbar"
+#~ msgstr "கருவிப்பட்டியை செயல்படுத்து/நீக்கு"
+
+#~ msgid "Files A and B are binary equal.\n"
+#~ msgstr "கோப்புகள் A மற்றும் B இருநிலை சமம் உடையன.\n"
+
+#~ msgid "Files A and C are binary equal.\n"
+#~ msgstr "கோப்புகள் A மற்றும் C இருநிலை சமம் உடையன.\n"
+
+#~ msgid "Files A and C have equal text. \n"
+#~ msgstr "கோப்புகள் A மற்றும் C சம உரை உடையன.\n"
+
+#~ msgid "Files B and C are binary equal.\n"
+#~ msgstr "கோப்புகள் B மற்றும் C இருநிலை சமம் உடையன.\n"
+
+#~ msgid "Files B and C have equal text. \n"
+#~ msgstr "கோப்புகள் B மற்றும் C சம உரை உடையன.\n"
+
+#~ msgid "Preserve carriage return"
+#~ msgstr " carriage return யை பராமரி"
+
+#~ msgid ""
+#~ "Show carriage return characters '\\r' if they exist.\n"
+#~ "Helps to compare files that were modified under different operating "
+#~ "systems."
+#~ msgstr "carriage return எழுத்துக்களை காட்டு"
+
+#, fuzzy
+#~ msgid "Diff and Merge"
+#~ msgstr "வேறுபாடு & சேர்த்திடு"
+
+#, fuzzy
+#~ msgid "Save Directory Merge State ..."
+#~ msgstr "அடைவுச் சேர்க்கை"
+
+#, fuzzy
+#~ msgid "Load Directory Merge State ..."
+#~ msgstr "அடைவுச் சேர்க்கை"
+
+#, fuzzy
+#~ msgid "Synchronize Directories"
+#~ msgstr "ஒத்தியக்கு அடைவை"
+
+#, fuzzy
+#~ msgid "Copy Newer Files Instead of Merging"
+#~ msgstr "ஒன்றாக சேர்ப்பதற்கு பதிலாக புதியவரை பதியெடு(பாதுகாப்பில்லை)"
+
+#~ msgid "List only deltas"
+#~ msgstr "மாற்றம் மட்டும் பட்டியலிடு"
+
+#~ msgid "Files and directories without change will not appear in the list."
+#~ msgstr "கோப்புகளும் அடைவுகளும் மாற்றப்படாமல் பட்டியலில் இடம் பெறாது"
+
+#, fuzzy
+#~ msgid "no selection"
+#~ msgstr "தானாகவே தேர்ந்தெடுக்கப்பட்ட படிவு"
+
+#, fuzzy
+#~ msgid "Manually match lines"
+#~ msgstr "கையேடு விருப்பம்"
+
+#~ msgid "Has no effect. For compatibility with certain tools."
+#~ msgstr "Has no effect. For compatibility with certain tools."
+
+#~ msgid "For compatibility with certain tools."
+#~ msgstr "சில கருவிகளுடன் பொருந்துதல்"
+
+#~ msgid "Colors in Editor & Diff Output"
+#~ msgstr "திருத்துபவரின் வண்ணமும் வித்தியாசமான வெளியீடு"
+
+#~ msgid "Text Diff and Merge Tool"
+#~ msgstr "உரை வேறுபாடு மற்றும் கருவி சேர்க்கை"
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "File not saved."
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "கோப்பினை சேமிக்கவில்லை"
+
+#~ msgid "Out of memory while preparing to save."
+#~ msgstr "சேமிக்கும் தறுவாயில் நினைவு தவறியது"
+
+#~ msgid "Delete (If Exists)"
+#~ msgstr "நீக்கு(இருந்தால்)"
+
+#~ msgid "Delete A and B"
+#~ msgstr "A மற்றும் B நீக்கு "
+
+#~ msgid "Merge to A and B"
+#~ msgstr " A மற்றும்Bக்கான ஒன்றிணை "
diff --git a/po/tg/CMakeLists.txt b/po/tg/CMakeLists.txt
new file mode 100644 (file)
index 0000000..7fd1cfc
--- /dev/null
@@ -0,0 +1,2 @@
+file(GLOB _po_files *.po)
+GETTEXT_PROCESS_PO_FILES(tg ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
diff --git a/po/tg/kdiff3.po b/po/tg/kdiff3.po
new file mode 100644 (file)
index 0000000..aead2a3
--- /dev/null
@@ -0,0 +1,3156 @@
+# translation of kdiff3.po to Tajik
+# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+# 2004, infoDev, a World Bank organization
+# 2004, Khujand Computer Technologies, Inc.
+# 2004, Youth Opportunities, NGO
+# Akmal Vatanshoev <akmal_49@hotmail.com>, 2004.
+# Akbar Vatanshoev <vatanshoevAkbar@hotmail.com>, 2004.
+# Victor Ibragimov <youth_opportunities@tajik.net>, 2004.
+# Victor Ibragimov <youth_opportunities@tajikngo.org>, 2005.
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2005-09-17 13:29+0500\n"
+"Last-Translator: Victor Ibragimov <youth_opportunities@tajikngo.org>\n"
+"Language-Team: Tajik\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.10\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: kreplacements/kreplacements.h:105
+#, fuzzy
+#| msgid "C&ontinue"
+msgid "Continue"
+msgstr "&Давом додан"
+
+#: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158
+#: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512
+msgid "Cancel"
+msgstr ""
+
+#: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631
+msgid "Quit"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339
+msgid "Ok"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715
+msgid "Help"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:185
+msgid "Defaults"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:4
+#. i18n: ectx: Menu (file)
+#: kreplacements/kreplacements.cpp:296 rc.cpp:14
+msgid "&File"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:297
+msgid "&Edit"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:7
+#. i18n: ectx: Menu (directory)
+#: kreplacements/kreplacements.cpp:298 rc.cpp:17
+#, fuzzy
+msgid "&Directory"
+msgstr "Хониши каталоги А"
+
+#. i18n: file: kdiff3_shell.rc:50
+#. i18n: ectx: Menu (movement)
+#: kreplacements/kreplacements.cpp:301 rc.cpp:26
+msgid "&Movement"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:61
+#. i18n: ectx: Menu (diff)
+#: kreplacements/kreplacements.cpp:302 rc.cpp:29
+msgid "D&iffview"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:73
+#. i18n: ectx: Menu (merge)
+#: kreplacements/kreplacements.cpp:303 rc.cpp:32
+#, fuzzy
+msgid "&Merge"
+msgstr "Пайваст кардан"
+
+#. i18n: file: kdiff3_shell.rc:95
+#. i18n: ectx: Menu (window)
+#: kreplacements/kreplacements.cpp:304 rc.cpp:35
+#, fuzzy
+msgid "&Window"
+msgstr "Нишон диҳед Тирезаи С-ро"
+
+#: kreplacements/kreplacements.cpp:305
+#, fuzzy
+msgid "&Settings"
+msgstr "Воситаи муқоиса ва якҷоя кардан"
+
+#: kreplacements/kreplacements.cpp:306
+msgid "&Help"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:353
+msgid "&About"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:369
+msgid "A&uthor"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:383
+msgid "&Thanks To"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:30
+#. i18n: ectx: Menu (dir_current_merge_menu)
+#: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497
+#: rc.cpp:20
+#, fuzzy
+msgid "Current Item Merge Operation"
+msgstr "Тағйироти ҳамаи якҷошавиҳо"
+
+#. i18n: file: kdiff3_shell.rc:38
+#. i18n: ectx: Menu (dir_current_sync_menu)
+#: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498
+#: rc.cpp:23
+msgid "Current Item Sync Operation"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:597
+#, fuzzy
+#| msgid "Operation"
+msgid "Open"
+msgstr "Амал"
+
+#: kreplacements/kreplacements.cpp:606
+#, fuzzy
+#| msgid "Solved"
+msgid "Save"
+msgstr "Иҷозат дода шуда"
+
+#: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720
+msgid "Save As..."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:623
+#, fuzzy
+msgid "Print..."
+msgstr "Баромад..."
+
+#: kreplacements/kreplacements.cpp:639
+msgid "Cut"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:647
+msgid "Copy"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:655
+msgid "Paste"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:663
+#, fuzzy
+#| msgid "Delete A"
+msgid "Select All"
+msgstr "Нест кардани А"
+
+#: kreplacements/kreplacements.cpp:671
+msgid "Show Toolbar"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:679
+msgid "Show &Status Bar"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:687
+#, fuzzy, kde-format
+msgid "&Configure %1..."
+msgstr "Танзимоти KDiff3..."
+
+#: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707
+msgid "About"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:722
+msgid "Find"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:730
+msgid "Find Next"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:750
+#, fuzzy
+msgid "Select Font"
+msgstr "Интихоб кунед Рах(ҳо)-ро Аз С"
+
+#: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676
+msgid ""
+"You selected a variable width font.\n"
+"\n"
+"Because this program doesn't handle variable width fonts\n"
+"correctly, you might experience problems while editing.\n"
+"\n"
+"Do you want to continue or do you want to select another font."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:792
+msgid "Incompatible font."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Continue at my own risk"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:793
+#, fuzzy
+msgid "Select another font"
+msgstr "Интихоб кунед Рах(ҳо)-ро Аз С"
+
+#: kreplacements/kreplacements.cpp:1134
+msgid "For more documentation, see the help-menu or the subdirectory doc."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1137
+#, fuzzy
+msgid "KDiff3-Usage"
+msgstr "KDiff3Part"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Ignore"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Exit"
+msgstr ""
+
+#: diff.cpp:251
+msgid "Writing clipboard data to temp file failed."
+msgstr "Дар силули мухобиротӣ навиштани таърих ва суръати файл."
+
+#: diff.cpp:255
+msgid "From Clipboard"
+msgstr "Аз буфери иваз"
+
+#: diff.cpp:471
+msgid "Expecting space after closing quotation mark."
+msgstr ""
+
+#: diff.cpp:474
+msgid "Not matching quotation marks."
+msgstr ""
+
+#: diff.cpp:496
+msgid "Unexpected quotation mark within argument."
+msgstr ""
+
+#: diff.cpp:503
+msgid "No program specified."
+msgstr ""
+
+#: diff.cpp:605
+#, kde-format
+msgid ""
+"Preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The preprocessing command will be disabled now."
+msgstr ""
+"Пеш-коркардкуни мумкин ,ки аз кор монд. Санҷед ин фармонро:\n"
+"\n"
+"  %1\n"
+"\n"
+"Фармони пеш-коркардкуни ҳоло аз кор мемонад."
+
+#: diff.cpp:653
+#, kde-format
+msgid ""
+"The line-matching-preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The line-matching-preprocessing command will be disabled now."
+msgstr ""
+"Хати-ҷамъ кунии- пешкоркардкуни мумкин нашуд.Санҷед ин фармонро:\n"
+"\n"
+"  %1\n"
+"\n"
+"\n"
+"Хати-ҷамъ кунии- пешкоркардкунии фармон ҳоло аз кор мемонад."
+
+#: diff.cpp:1776 diff.cpp:1790
+#, fuzzy
+#| msgid ""
+#| "Data loss error:\n"
+#| "If it is reproducable please contact the author.\n"
+msgid ""
+"Data loss error:\n"
+"If it is reproducible please contact the author.\n"
+msgstr ""
+"Маълумотҳои гумкарда:\n"
+"Агар ин зиёд карда шавад илтимос бо муаллиф алоқа кунед.\n"
+
+#: diff.cpp:1778 diff.cpp:1792
+msgid "Severe Internal Error"
+msgstr "Хатогии даруни"
+
+#: directorymergewindow.cpp:136
+msgid "Mix of links and normal files."
+msgstr "Мувофиқкунии ишораҳо бо файлҳои оддӣ."
+
+#: directorymergewindow.cpp:143
+msgid "Link: "
+msgstr "Алоқа: "
+
+#: directorymergewindow.cpp:151
+msgid "Size. "
+msgstr "Андоза. "
+
+#: directorymergewindow.cpp:164 directorymergewindow.cpp:174
+msgid "Date & Size: "
+msgstr "Таърихи рӯз ва андоза: "
+
+#: directorymergewindow.cpp:184 directorymergewindow.cpp:190
+#, kde-format
+msgid "Creating temp copy of %1 failed."
+msgstr "Наметавонам нусхаи яквақтаро эҷод кунам %1."
+
+#: directorymergewindow.cpp:201 directorymergewindow.cpp:209
+#, kde-format
+msgid "Opening %1 failed."
+msgstr "Кушодан %1 нашуд."
+
+#: directorymergewindow.cpp:213
+#, fuzzy
+msgid "Comparing file..."
+msgstr "Нигоҳ доштани файл ..."
+
+#: directorymergewindow.cpp:223 directorymergewindow.cpp:229
+#, kde-format
+msgid "Error reading from %1"
+msgstr "Хатогӣ дар вақти хониш аз %1"
+
+#: directorymergewindow.cpp:358
+msgid "Name"
+msgstr "Ном"
+
+#: directorymergewindow.cpp:358
+msgid "Operation"
+msgstr "Амал"
+
+#: directorymergewindow.cpp:358
+msgid "Status"
+msgstr "Вазъият"
+
+#: directorymergewindow.cpp:359
+msgid "Unsolved"
+msgstr "Иҷозат дода нашуд"
+
+#: directorymergewindow.cpp:359
+msgid "Solved"
+msgstr "Иҷозат дода шуда"
+
+#: directorymergewindow.cpp:359
+msgid "Nonwhite"
+msgstr "Сиёҳ"
+
+#: directorymergewindow.cpp:359
+msgid "White"
+msgstr "Сафед"
+
+#: directorymergewindow.cpp:388
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort "
+"the merge and rescan the directory?"
+msgstr ""
+"Ҳоло барнома дар тартиби якҷошавии каталогҳо кор мекунад. Оё шумо дар "
+"ҳақиқат мехоҳед, ки ҳамаи тағйиротҳоро нест кунед ва таркиби каталогро ан "
+"нав кунед?"
+
+#: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655
+#: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823
+msgid "Warning"
+msgstr ""
+
+#: directorymergewindow.cpp:390 directorymergewindow.cpp:2965
+msgid "Rescan"
+msgstr "Дигар кардан"
+
+#: directorymergewindow.cpp:391 pdiff.cpp:1081
+msgid "Continue Merging"
+msgstr "Давом додан"
+
+#: directorymergewindow.cpp:548
+msgid "Opening of directories failed:"
+msgstr "Наметавонам каталогҳоро кушоям:"
+
+#: directorymergewindow.cpp:551
+#, kde-format
+msgid "Dir A \"%1\" does not exist or is not a directory.\n"
+msgstr "Каталоги А \"%1\" вуҷуд надорад.\n"
+
+#: directorymergewindow.cpp:554
+#, kde-format
+msgid "Dir B \"%1\" does not exist or is not a directory.\n"
+msgstr "Каталоги В \"%1\" вуҷуд надорад.\n"
+
+#: directorymergewindow.cpp:557
+#, kde-format
+msgid "Dir C \"%1\" does not exist or is not a directory.\n"
+msgstr "Каталоги C \"%1\" вуҷуд надорад.\n"
+
+#: directorymergewindow.cpp:559
+msgid "Directory Open Error"
+msgstr "Хатогӣ дар вақти хониши каталог"
+
+#: directorymergewindow.cpp:567
+msgid ""
+"The destination directory must not be the same as A or B when three "
+"directories are merged.\n"
+"Check again before continuing."
+msgstr ""
+"Директорияи муаёянкуни бояд бошад мисли А ё В вақте,ки се директорияҳо якҷо "
+"шуданд.\n"
+"Санҷед бори дигар пеш аз давомкуни."
+
+#: directorymergewindow.cpp:569
+msgid "Parameter Warning"
+msgstr "Параметри нодуруст"
+
+#: directorymergewindow.cpp:574
+#, fuzzy
+msgid "Scanning directories..."
+msgstr "Мушоҳидакунии каталогҳо..."
+
+#: directorymergewindow.cpp:607
+msgid "Reading Directory A"
+msgstr "Хониши каталоги А"
+
+#: directorymergewindow.cpp:629
+msgid "Reading Directory B"
+msgstr "Хониши каталоги В"
+
+#: directorymergewindow.cpp:651
+msgid "Reading Directory C"
+msgstr "Хониши каталоги С"
+
+#: directorymergewindow.cpp:677
+msgid "Some subdirectories were not readable in"
+msgstr "Наметавонам баъзе зеркаталогҳоро хонам дар"
+
+#: directorymergewindow.cpp:682
+msgid "Check the permissions of the subdirectories."
+msgstr "Ҳуқуқҳои ин каталогҳоро тафтиш кунед."
+
+#: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737
+#: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233
+#: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328
+msgid "Ready."
+msgstr "Тайёр аст."
+
+#: directorymergewindow.cpp:735
+msgid "Directory Comparison Status"
+msgstr "Ҳолати муқоисакунии каталогҳо"
+
+#: directorymergewindow.cpp:736
+msgid "Number of subdirectories:"
+msgstr "Миқдори зеркаталогҳо:"
+
+#: directorymergewindow.cpp:737
+msgid "Number of equal files:"
+msgstr "Миқдори файлҳои якхела:"
+
+#: directorymergewindow.cpp:738
+msgid "Number of different files:"
+msgstr "Миқдори файлҳои ҳархела:"
+
+#: directorymergewindow.cpp:741
+msgid "Number of manual merges:"
+msgstr "Миқдори якҷошавии дастӣ:"
+
+#: directorymergewindow.cpp:912
+msgid "This affects all merge operations."
+msgstr "Ин ба ҳамаи якҷошавӣ таъсир мерасонад."
+
+#: directorymergewindow.cpp:913
+msgid "Changing All Merge Operations"
+msgstr "Тағйироти ҳамаи якҷошавиҳо"
+
+#: directorymergewindow.cpp:1312
+msgid "Processing "
+msgstr "Коркард "
+
+#: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742
+msgid "To do."
+msgstr "Кардан."
+
+#: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996
+msgid "Copy A to B"
+msgstr "Нусха кардан А ба В"
+
+#: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997
+msgid "Copy B to A"
+msgstr "Нусха кардан В ба А"
+
+#: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998
+msgid "Delete A"
+msgstr "Нест кардани А"
+
+#: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999
+msgid "Delete B"
+msgstr "Нест кардани В"
+
+#: directorymergewindow.cpp:1814
+msgid "Delete A & B"
+msgstr "Нест кардани А ва В"
+
+#: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001
+msgid "Merge to A"
+msgstr "Пайваст кардан ба A"
+
+#: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002
+msgid "Merge to B"
+msgstr "Пайваст кардан ба В"
+
+#: directorymergewindow.cpp:1817
+msgid "Merge to A & B"
+msgstr "Пайваст кардан ба A & В"
+
+#: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993
+msgid "Delete (if exists)"
+msgstr "Нест кардан (агар вуҷуд дорад)"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+#: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869
+msgid "Merge"
+msgstr "Пайваст кардан"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+msgid "Merge (manual)"
+msgstr "Пайваст кардан (дастӣ)"
+
+#: directorymergewindow.cpp:1824
+msgid "Error: Conflicting File Types"
+msgstr "Хатогӣ: Якҷоянашавандаи шакли файлҳо"
+
+#: directorymergewindow.cpp:1825
+msgid "Error: Changed and Deleted"
+msgstr ""
+
+#: directorymergewindow.cpp:1826
+msgid "Error: Dates are equal but files are not."
+msgstr "Хатогӣ: Вақт мувофиқ аст, лекин файлҳо нет."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906
+msgid "This operation is currently not possible."
+msgstr "Ҳоло номумкин аст."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174
+msgid "Operation Not Possible"
+msgstr "Пайваст кардан"
+
+#: directorymergewindow.cpp:1945
+msgid ""
+"This should never happen: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"If you know how to reproduce this, please contact the program author."
+msgstr ""
+"mergeResultSaved: m_pMFI=0\n"
+"Агар шумо сабабро донед, ба муаллиф муроҷиат кунед."
+
+#: directorymergewindow.cpp:1945
+msgid "Program Error"
+msgstr "Хатогии барнома"
+
+#: directorymergewindow.cpp:1956
+msgid "An error occurred while copying.\n"
+msgstr "Хатогии нусхакунӣ.\n"
+
+#: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025
+#: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105
+#: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123
+#: directorymergewindow.cpp:2374
+#, fuzzy
+#| msgid "Error."
+msgid "Error"
+msgstr "Хатогӣ."
+
+#: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375
+msgid "Merge Error"
+msgstr "Хатогии якҷояшавӣ"
+
+#: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380
+msgid "Error."
+msgstr "Хатогӣ."
+
+#: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272
+#: directorymergewindow.cpp:2312
+msgid "Done."
+msgstr "Тайёр аст."
+
+#: directorymergewindow.cpp:1990
+msgid "Not saved."
+msgstr "Захира нашуд."
+
+#: directorymergewindow.cpp:2025
+msgid "Unknown merge operation. (This must never happen!)"
+msgstr "Пайвастшавии номаълум"
+
+#: directorymergewindow.cpp:2057
+msgid "Unknown merge operation."
+msgstr "Пайвастшавии номаълум."
+
+#: directorymergewindow.cpp:2072
+msgid ""
+"The merge is about to begin.\n"
+"\n"
+"Choose \"Do it\" if you have read the instructions and know what you are "
+"doing.\n"
+"Choosing \"Simulate it\" will tell you what would happen.\n"
+"\n"
+"Be aware that this program still has beta status and there is NO WARRANTY "
+"whatsoever! Make backups of your vital data!"
+msgstr ""
+"Ҳоло якҷояшавӣ сар мешавад.\n"
+"\n"
+"Баъди хондани дастур, \"Ҳал кардан\"-ро пахш кунед.\n"
+"Барои нигоҳ кардани воқеа, \"Моделсозӣ\"-ро пахш кунед.\n"
+"\n"
+"Мо малиҳат медиҳем, ки доимо пеш аз якҷояшавӣ нусхаҳои захиравиро кунед!"
+
+#: directorymergewindow.cpp:2077
+msgid "Starting Merge"
+msgstr "Оғози якҷояшавӣ"
+
+#: directorymergewindow.cpp:2078
+msgid "Do It"
+msgstr "Ҳал кардан"
+
+#: directorymergewindow.cpp:2079
+msgid "Simulate It"
+msgstr "Моделсозӣ"
+
+#: directorymergewindow.cpp:2105
+msgid ""
+"The highlighted item has a different type in the different directories. "
+"Select what to do."
+msgstr ""
+"Файли интихобшуда дар ҳар каталог шкли гуногун дорад. Чӣ кор карданро "
+"интихоб кунед."
+
+#: directorymergewindow.cpp:2114
+msgid ""
+"The modification dates of the file are equal but the files are not. Select "
+"what to do."
+msgstr ""
+"Маълумотҳои охирини тағйироти файлҳо якхела ҳастанд, вале таркиб нест. Чӣ "
+"кор карданро интихоб кунед."
+
+#: directorymergewindow.cpp:2123
+#, fuzzy
+#| msgid ""
+#| "The highlighted item has a different type in the different directories. "
+#| "Select what to do."
+msgid ""
+"The highlighted item was changed in one directory and deleted in the other. "
+"Select what to do."
+msgstr ""
+"Файли интихобшуда дар ҳар каталог шкли гуногун дорад. Чӣ кор карданро "
+"интихоб кунед."
+
+#: directorymergewindow.cpp:2174
+msgid ""
+"This operation is currently not possible because directory merge is "
+"currently running."
+msgstr "Ҳоло якҷояшавии каталогҳо ҳал карда мешавад."
+
+#: directorymergewindow.cpp:2234
+msgid ""
+"There was an error in the last step.\n"
+"Do you want to continue with the item that caused the error or do you want "
+"to skip this item?"
+msgstr ""
+"Дар этапи ҷорӣ хатогие ба амал омад.\n"
+"Давом додан ё сар додан?"
+
+#: directorymergewindow.cpp:2236
+msgid "Continue merge after an error"
+msgstr "Давом додан баъди хатогӣ"
+
+#: directorymergewindow.cpp:2237
+msgid "Continue With Last Item"
+msgstr "Давом додан"
+
+#: directorymergewindow.cpp:2238
+msgid "Skip Item"
+msgstr "Сар додан"
+
+#: directorymergewindow.cpp:2272
+msgid "Skipped."
+msgstr "Са дода шуд."
+
+#: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493
+msgid "In progress..."
+msgstr "Кор рафта истодааст..."
+
+#: directorymergewindow.cpp:2327
+msgid "Merge operation complete."
+msgstr "Якҷояшавӣ ба анҷом расид."
+
+#: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330
+msgid "Merge Complete"
+msgstr "Якҷояшавӣ ба анҷом расид"
+
+#: directorymergewindow.cpp:2340
+msgid ""
+"Simulated merge complete: Check if you agree with the proposed operations."
+msgstr "Якҷояшавӣ ба анҷом расид. Оё шумо бо тағйиротҳои додашуда розӣ ҳастед?"
+
+#: directorymergewindow.cpp:2374
+msgid "An error occurred. Press OK to see detailed information.\n"
+msgstr "Хатогӣ ба амал омад. Барои ахбороти илова OK-ро пахш кунед.\n"
+
+#: directorymergewindow.cpp:2406
+#, kde-format
+msgid "Error: While deleting %1: Creating backup failed."
+msgstr "Хатогӣ: Наметавонам нусхаи захираро эҷод кунам %1."
+
+#: directorymergewindow.cpp:2413
+#, kde-format
+msgid "delete directory recursively( %1 )"
+msgstr "нест кардани каталог рекурсивӣ( %1 )"
+
+#: directorymergewindow.cpp:2415
+#, kde-format
+msgid "delete( %1 )"
+msgstr "нест кардан( %1 )"
+
+#: directorymergewindow.cpp:2430
+msgid "Error: delete dir operation failed while trying to read the directory."
+msgstr "Хатогӣ: наметавонам каталогро нест кунам."
+
+#: directorymergewindow.cpp:2449
+#, kde-format
+msgid "Error: rmdir( %1 ) operation failed."
+msgstr "Хатогӣ: хатогии rmdir( %1 )."
+
+#: directorymergewindow.cpp:2459
+msgid "Error: delete operation failed."
+msgstr "Хатогӣ: наметавонам нест кунам."
+
+#: directorymergewindow.cpp:2485
+#, kde-format
+msgid "manual merge( %1, %2, %3 -> %4)"
+msgstr "якҷояшавии дастӣ( %1, %2, %3 -> %4)"
+
+#: directorymergewindow.cpp:2488
+msgid ""
+"     Note: After a manual merge the user should continue by pressing F7."
+msgstr "     Қайд: Баъди анҷоми якҷояшавии дастӣ F7-ро пахш кунед."
+
+#: directorymergewindow.cpp:2513
+#, kde-format
+msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed."
+msgstr ""
+"Хатогӣ: наметавонам( %1 -> %2 ) нусха кунам. Нест кардани муайяни вуҷулшуда "
+"муяссар карда нашуд."
+
+#: directorymergewindow.cpp:2522
+#, kde-format
+msgid "copyLink( %1 -> %2 )"
+msgstr "бадарғаи нишонавӣ( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2533
+msgid "Error: copyLink failed: Remote links are not yet supported."
+msgstr "Хатогӣ: Бадарғаҳои нестшуда пуштибонӣ карда намешаванд."
+
+#: directorymergewindow.cpp:2539
+msgid "Error: copyLink failed."
+msgstr "Хатогӣ: наметавонам бадарғаро эҷод кунам."
+
+#: directorymergewindow.cpp:2564
+#, kde-format
+msgid "copy( %1 -> %2 )"
+msgstr "нусха кардани ( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2590
+#, kde-format
+msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination."
+msgstr ""
+"Хатогӣ дар вақти тағйири ном( %1 -> %2 ): Наметавонам муайяни вуҷудшударо "
+"нест кунам."
+
+#: directorymergewindow.cpp:2596
+#, kde-format
+msgid "rename( %1 -> %2 )"
+msgstr "тағйири ном( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2605
+msgid "Error: Rename failed."
+msgstr "Хатогӣ: Наметавонам тағйири номро кунам."
+
+#: directorymergewindow.cpp:2623
+#, kde-format
+msgid "Error during makeDir of %1. Cannot delete existing file."
+msgstr ""
+"Хатогӣ дар вақти эҷод кардани каталоги %1. Файли вуҷудшуда нест карда "
+"намешавад."
+
+#: directorymergewindow.cpp:2639
+#, kde-format
+msgid "makeDir( %1 )"
+msgstr "эҷоди каталог( %1 )"
+
+#: directorymergewindow.cpp:2649
+msgid "Error while creating directory."
+msgstr "Хатогӣ дар вақти эҷод кардани каталог."
+
+#: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784
+msgid "Dest"
+msgstr "Муайяншуда"
+
+#: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709
+msgid "Dir"
+msgstr "Каталог"
+
+#: directorymergewindow.cpp:2678
+msgid "Type"
+msgstr "Шакл"
+
+#: directorymergewindow.cpp:2678
+msgid "Size"
+msgstr "Андоза"
+
+#: directorymergewindow.cpp:2679
+msgid "Attr"
+msgstr "Хусусиятҳо"
+
+#: directorymergewindow.cpp:2679
+msgid "Last Modification"
+msgstr "Тағйироти охирон"
+
+#: directorymergewindow.cpp:2679
+msgid "Link-Destination"
+msgstr "Бадарғаи-объект"
+
+#: directorymergewindow.cpp:2709 difftextwindow.cpp:401
+msgid "File"
+msgstr ""
+
+#: directorymergewindow.cpp:2726
+msgid "not available"
+msgstr "дастрас нест"
+
+#: directorymergewindow.cpp:2746
+msgid "A (Dest): "
+msgstr "A (муайяншуда): "
+
+#: directorymergewindow.cpp:2749
+msgid "A (Base): "
+msgstr "A (баромад): "
+
+#: directorymergewindow.cpp:2755
+msgid "B (Dest): "
+msgstr "B (муайяншуда): "
+
+#: directorymergewindow.cpp:2763
+msgid "C (Dest): "
+msgstr "C (муайяншуда): "
+
+#: directorymergewindow.cpp:2769
+msgid "Dest: "
+msgstr "Муаяйншуда: "
+
+#: directorymergewindow.cpp:2836
+#, fuzzy
+msgid "Save Directory Merge State As..."
+msgstr "Хатогӣ дар вақти хониши каталог"
+
+#: directorymergewindow.cpp:2959
+msgid "Start/Continue Directory Merge"
+msgstr "Сар кардан/давом додани якҷояшаии каталогҳо"
+
+#: directorymergewindow.cpp:2960
+msgid "Run Operation for Current Item"
+msgstr "Ба кор даровардан барои нуқтаи ҷорӣ"
+
+#: directorymergewindow.cpp:2961
+msgid "Compare Selected File"
+msgstr "Муқоисаи файли интихобшуда"
+
+#: directorymergewindow.cpp:2962
+msgid "Merge Current File"
+msgstr "Якҷоя кардани файли ҷорӣ"
+
+#: directorymergewindow.cpp:2962
+#, fuzzy
+#| msgid "Merge"
+msgid ""
+"Merge\n"
+"File"
+msgstr "Пайваст кардан"
+
+#: directorymergewindow.cpp:2963
+msgid "Fold All Subdirs"
+msgstr "Дохили ҳамаи зеркаталогҳо"
+
+#: directorymergewindow.cpp:2964
+msgid "Unfold All Subdirs"
+msgstr "Дохилнашудаи ҳамаи зеркаталогҳо"
+
+#: directorymergewindow.cpp:2968
+msgid "Choose A for All Items"
+msgstr "Интихоби A барои ҳама"
+
+#: directorymergewindow.cpp:2969
+msgid "Choose B for All Items"
+msgstr "Интихоби B барои ҳама"
+
+#: directorymergewindow.cpp:2970
+msgid "Choose C for All Items"
+msgstr "Интихоби C барои ҳама"
+
+#: directorymergewindow.cpp:2971
+msgid "Auto-Choose Operation for All Items"
+msgstr "Худ-интихобкунии шакли амал барои ҳама"
+
+#: directorymergewindow.cpp:2972
+msgid "No Operation for All Items"
+msgstr "Гирифтани амалҳо барои ҳама"
+
+#: directorymergewindow.cpp:2977
+msgid "Show Identical Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2977
+msgid ""
+"Identical\n"
+"Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2978
+#, fuzzy
+msgid "Show Different Files"
+msgstr "Миқдори файлҳои ҳархела:"
+
+#: directorymergewindow.cpp:2979
+msgid "Show Files only in A"
+msgstr ""
+
+#: directorymergewindow.cpp:2979
+msgid ""
+"Files\n"
+"only in A"
+msgstr ""
+
+#: directorymergewindow.cpp:2980
+msgid "Show Files only in B"
+msgstr ""
+
+#: directorymergewindow.cpp:2980
+msgid ""
+"Files\n"
+"only in B"
+msgstr ""
+
+#: directorymergewindow.cpp:2981
+msgid "Show Files only in C"
+msgstr ""
+
+#: directorymergewindow.cpp:2981
+msgid ""
+"Files\n"
+"only in C"
+msgstr ""
+
+#: directorymergewindow.cpp:2985
+#, fuzzy
+msgid "Compare Explicitly Selected Files"
+msgstr "Муқоисаи файли интихобшуда"
+
+#: directorymergewindow.cpp:2986
+#, fuzzy
+msgid "Merge Explicitly Selected Files"
+msgstr "Муқоисаи файли интихобшуда"
+
+#: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995
+msgid "Do Nothing"
+msgstr "Ягон чиз"
+
+#: directorymergewindow.cpp:2989
+msgid "A"
+msgstr "A"
+
+#: directorymergewindow.cpp:2990
+msgid "B"
+msgstr "B"
+
+#: directorymergewindow.cpp:2991
+msgid "C"
+msgstr "C"
+
+#: directorymergewindow.cpp:3000
+#, fuzzy
+msgid "Delete A && B"
+msgstr "Нест кардани А ва В"
+
+#: directorymergewindow.cpp:3003
+#, fuzzy
+msgid "Merge to A && B"
+msgstr "Пайваст кардан ба A & В"
+
+#: main.cpp:74 main.cpp:76
+msgid "Ignored. (User defined.)"
+msgstr ""
+
+#: main.cpp:162
+#, fuzzy
+msgid "kdiff3"
+msgstr "KDiff3Part"
+
+#: main.cpp:164
+msgid "Tool for Comparison and Merge of Files and Directories"
+msgstr ""
+
+#: main.cpp:165
+msgid "(c) 2002-2011 Joachim Eibl"
+msgstr ""
+
+#: main.cpp:172 kdiff3_part.cpp:303
+msgid "Joachim Eibl"
+msgstr ""
+
+#: main.cpp:173
+msgid "Eike Sauer"
+msgstr ""
+
+#: main.cpp:173
+msgid "Bugfixes, Debian package maintainer"
+msgstr ""
+
+#: main.cpp:174
+msgid "Sebastien Fricker"
+msgstr ""
+
+#: main.cpp:174
+msgid "Windows installer"
+msgstr ""
+
+#: main.cpp:175
+msgid "Stephan Binner"
+msgstr ""
+
+#: main.cpp:175
+msgid "i18n-help"
+msgstr ""
+
+#: main.cpp:176
+msgid "Stefan Partheymueller"
+msgstr ""
+
+#: main.cpp:176
+#, fuzzy
+#| msgid "From Clipboard"
+msgid "Clipboard-patch"
+msgstr "Аз буфери иваз"
+
+#: main.cpp:177
+msgid "David Faure"
+msgstr ""
+
+#: main.cpp:177
+msgid "KIO-Help"
+msgstr ""
+
+#: main.cpp:178
+msgid "Bernd Gehrmann"
+msgstr ""
+
+#: main.cpp:178
+msgid "Class CvsIgnoreList from Cervisia"
+msgstr ""
+
+#: main.cpp:179
+msgid "Andre Woebbeking"
+msgstr ""
+
+#: main.cpp:179
+msgid "Class StringMatcher"
+msgstr ""
+
+#: main.cpp:180
+msgid "Michael Denio"
+msgstr ""
+
+#: main.cpp:180
+#, fuzzy
+#| msgid "Directory Comparison Status"
+msgid "Directory Equality-Coloring patch"
+msgstr "Ҳолати муқоисакунии каталогҳо"
+
+#: main.cpp:181
+msgid "Manfred Koehler"
+msgstr ""
+
+#: main.cpp:181
+msgid "Fix for slow startup on Windows"
+msgstr ""
+
+#: main.cpp:182
+#, fuzzy
+#| msgid "Merge Error"
+msgid "Sergey Zorin"
+msgstr "Хатогии якҷояшавӣ"
+
+#: main.cpp:182
+msgid "Diff Ext for Windows"
+msgstr ""
+
+#: main.cpp:183
+msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+msgstr ""
+
+#: main.cpp:183
+msgid "GNU-Diffutils"
+msgstr ""
+
+#: main.cpp:184
+msgid "Tino Boellsterling, Timothy Mee"
+msgstr ""
+
+#: main.cpp:184
+msgid "Intensive test, use and feedback"
+msgstr ""
+
+#: main.cpp:185
+msgid "Michael Schmidt"
+msgstr ""
+
+#: main.cpp:185
+msgid "Mac support"
+msgstr ""
+
+#: main.cpp:186
+msgid "Valentin Rusu"
+msgstr ""
+
+#: main.cpp:186 main.cpp:187
+#, fuzzy
+#| msgid "Do Nothing"
+msgid "KDE4 porting"
+msgstr "Ягон чиз"
+
+#: main.cpp:187
+msgid "Albert Astals Cid"
+msgstr ""
+
+#: main.cpp:188
+msgid "Silvan Scherrer"
+msgstr ""
+
+#: main.cpp:188
+msgid "OS2 port"
+msgstr ""
+
+#: main.cpp:190
+msgid "+ Many thanks to those who reported bugs and contributed ideas!"
+msgstr ""
+
+#: main.cpp:196
+msgid "Merge the input."
+msgstr "Якҷоя даровардан."
+
+#: main.cpp:197
+msgid "Explicit base file. For compatibility with certain tools."
+msgstr ""
+"Эзоҳ додани маълумоти файл.Барои мутобиқ будан бо асбобҳои муқаррар- шуда."
+
+#: main.cpp:198
+msgid "Output file. Implies -m. E.g.: -o newfile.txt"
+msgstr "Баромади файл.Тахмин кардани мавҷуд ҳамчун-m. Мисли: -o newfile.txt"
+
+#: main.cpp:199
+msgid "Output file, again. (For compatibility with certain tools.)"
+msgstr "Барориши файл.(Барои мутобиқ бо асбобҳои монанд.)"
+
+#: main.cpp:200
+msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)"
+msgstr ""
+
+#: main.cpp:201
+msgid "Don't solve conflicts automatically. (For compatibility...)"
+msgstr ""
+
+#: main.cpp:202
+msgid "Visible name replacement for input file 1 (base)."
+msgstr ""
+
+#: main.cpp:203
+msgid "Visible name replacement for input file 2."
+msgstr ""
+
+#: main.cpp:204
+msgid "Visible name replacement for input file 3."
+msgstr ""
+
+#: main.cpp:205
+msgid "Alternative visible name replacement. Supply this once for every input."
+msgstr ""
+
+#: main.cpp:206
+msgid ""
+"Override a config setting. Use once for every setting. E.g.: --cs "
+"\"AutoAdvance=1\""
+msgstr ""
+
+#: main.cpp:207
+msgid "Show list of config settings and current values."
+msgstr ""
+
+#: main.cpp:208
+#, fuzzy
+msgid "Use a different config file."
+msgstr "Миқдори файлҳои ҳархела:"
+
+#: main.cpp:211
+msgid "file1 to open (base, if not specified via --base)"
+msgstr ""
+
+#: main.cpp:212
+msgid "file2 to open"
+msgstr ""
+
+#: main.cpp:213
+msgid "file3 to open"
+msgstr ""
+
+#: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976
+#: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002
+#: mergeresultwindow.cpp:1014
+#, kde-format
+msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)"
+msgstr ""
+
+#: mergeresultwindow.cpp:303
+msgid ""
+"The output has been modified.\n"
+"If you continue your changes will be lost."
+msgstr ""
+
+#: mergeresultwindow.cpp:834 pdiff.cpp:532
+msgid "All input files are binary equal."
+msgstr ""
+
+#: mergeresultwindow.cpp:836
+msgid "All input files contain the same text."
+msgstr ""
+
+#: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840
+#: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540
+#, kde-format
+msgid "Files %1 and %2 are binary equal.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841
+#: mergeresultwindow.cpp:843
+#, kde-format
+msgid "Files %1 and %2 have equal text.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:849
+msgid "Total number of conflicts: "
+msgstr ""
+
+#: mergeresultwindow.cpp:850
+#, fuzzy
+msgid ""
+"\n"
+"Nr of automatically solved conflicts: "
+msgstr "Зуд ҳал мекунад ҷанҷолҳои оддиро"
+
+#: mergeresultwindow.cpp:851
+#, fuzzy
+msgid ""
+"\n"
+"Nr of unsolved conflicts: "
+msgstr "Равед ба Ҷанҷоли Дар пеш интизори Ҳалнашуда"
+
+#: mergeresultwindow.cpp:853
+msgid "Conflicts"
+msgstr ""
+
+#: mergeresultwindow.cpp:1728
+msgid "<No src line>"
+msgstr ""
+
+#: mergeresultwindow.cpp:1736
+#, fuzzy
+msgid "<Merge Conflict (Whitespace only)>"
+msgstr "Якҷояшавӣ ба анҷом расид"
+
+#: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517
+#, fuzzy
+msgid "<Merge Conflict>"
+msgstr "Якҷояшавӣ ба анҷом расид"
+
+#: mergeresultwindow.cpp:2725
+msgid ""
+"Not all conflicts are solved yet.\n"
+"File not saved.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736
+msgid "Conflicts Left"
+msgstr ""
+
+#: mergeresultwindow.cpp:2734
+msgid ""
+"There is a line end style conflict. Please choose the line end style "
+"manually.\n"
+"File not saved.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:2748
+msgid ""
+"\n"
+"\n"
+"Creating backup failed. File not saved."
+msgstr ""
+
+#: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792
+#, fuzzy
+msgid "File Save Error"
+msgstr "Хатогӣ дар кушодани файл"
+
+#: mergeresultwindow.cpp:2792
+#, fuzzy
+msgid "Error while writing."
+msgstr "Хатогӣ дар вақти эҷод кардани каталог."
+
+#: mergeresultwindow.cpp:3122
+msgid "Output"
+msgstr ""
+
+#: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314
+msgid "[Modified]"
+msgstr ""
+
+#: mergeresultwindow.cpp:3141
+msgid "Encoding for saving"
+msgstr ""
+
+#: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737
+#: optiondialog.cpp:762
+msgid "Line end style:"
+msgstr ""
+
+#: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767
+msgid "Unix"
+msgstr ""
+
+#: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737
+msgid "DOS"
+msgstr ""
+
+#: mergeresultwindow.cpp:3229
+#, fuzzy
+msgid "Conflict"
+msgstr "Якҷояшавӣ ба анҷом расид"
+
+#: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263
+#: mergeresultwindow.cpp:3265
+msgid "Codec from"
+msgstr ""
+
+#: kdiff3_part.cpp:157 kdiff3_part.cpp:234
+msgid "Couldn't find files for comparison."
+msgstr "Файл барои муқоиса ёфт нашуд."
+
+#: kdiff3_part.cpp:302
+msgid "KDiff3Part"
+msgstr "KDiff3Part"
+
+#: fileaccess.cpp:612
+msgid ""
+"While trying to make a backup, deleting an older backup failed. \n"
+"Filename: "
+msgstr ""
+"Наметавонам нусхаи кӯҳнаи захираро нест кунам. \n"
+"Номи файл: "
+
+#: fileaccess.cpp:619
+msgid ""
+"While trying to make a backup, renaming failed. \n"
+"Filenames: "
+msgstr ""
+"Наметавонам номгузориро ҳал кунам. \n"
+"Номи файлҳо: "
+
+#: fileaccess.cpp:643
+#, kde-format
+msgid "Getting file status: %1"
+msgstr "Гирифтани ҳолати файл: %1"
+
+#: fileaccess.cpp:686
+#, kde-format
+msgid "Reading file: %1"
+msgstr "Хониши файл: %1"
+
+#: fileaccess.cpp:723
+#, kde-format
+msgid "Writing file: %1"
+msgstr "Навишти файл: %1"
+
+#: fileaccess.cpp:751
+msgid "Out of memory"
+msgstr "Аз хотира"
+
+#: fileaccess.cpp:786
+#, kde-format
+msgid "Making directory: %1"
+msgstr "Эҷоди каталогҳо : %1"
+
+#: fileaccess.cpp:806
+#, kde-format
+msgid "Removing directory: %1"
+msgstr "Дур кардани директория: %1"
+
+#: fileaccess.cpp:821
+#, kde-format
+msgid "Removing file: %1"
+msgstr "Дур кардани файл: %1"
+
+#: fileaccess.cpp:837
+#, kde-format
+msgid "Creating symbolic link: %1 -> %2"
+msgstr "Сохтани пайвасти рамзӣ: %1-> %2"
+
+#: fileaccess.cpp:864
+#, kde-format
+msgid "Renaming file: %1 -> %2"
+msgstr "Аз нав номгузории файл: %1-> %2"
+
+#: fileaccess.cpp:897
+#, kde-format
+msgid "Copying file: %1 -> %2"
+msgstr "Нусха бардошатани: %1-> %2"
+
+#: fileaccess.cpp:911
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for reading failed. Filename: "
+"%1"
+msgstr ""
+"Хато дар вақти амалиёти нусхабардории файл: Кушодани файл барои хондан нашуд."
+"Номи Файл: %1"
+
+#: fileaccess.cpp:917
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for writing failed. Filename: "
+"%1"
+msgstr ""
+"Хато дар вақти амалиёти нусхабардории файл: Кушодани файл барои хондан нашуд."
+"Номи Файл: %1"
+
+#: fileaccess.cpp:932
+#, kde-format
+msgid "Error during file copy operation: Reading failed. Filename: %1"
+msgstr ""
+"Хато дар вақти амалиёти нусхабардории файл: Хондани нашуд.Номи Файл: %1"
+
+#: fileaccess.cpp:941
+#, kde-format
+msgid "Error during file copy operation: Writing failed. Filename: %1"
+msgstr ""
+"Хато дар вақти амалиёти нусхабардории файл: Навиштан нашуд.Номи Файл: %1"
+
+#: fileaccess.cpp:1231
+msgid "Reading directory: "
+msgstr "Хондани директория: "
+
+#: fileaccess.cpp:1355
+#, kde-format
+msgid "Listing directory: %1"
+msgstr "Нигоҳ кардани директория: %1"
+
+#: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396
+msgid "&Cancel"
+msgstr ""
+
+#: difftextwindow.cpp:403
+#, fuzzy
+#| msgid "Link: "
+msgid "Line"
+msgstr "Алоқа: "
+
+#: difftextwindow.cpp:405
+#, fuzzy
+#| msgid "not available"
+msgid "Line not available"
+msgstr "дастрас нест"
+
+#: difftextwindow.cpp:1703 difftextwindow.cpp:1736
+msgid "Encoding:"
+msgstr ""
+
+#: difftextwindow.cpp:1759 kdiff3.cpp:831
+#, fuzzy
+msgid "Top line"
+msgstr "Сатри яккум%1"
+
+#: difftextwindow.cpp:1769
+msgid "End"
+msgstr "Охир"
+
+#: kdiff3.cpp:169
+#, fuzzy
+msgid "Current Configuration:"
+msgstr "Тағйироти ҳамаи якҷошавиҳо"
+
+#: kdiff3.cpp:174
+#, fuzzy
+msgid "Config Option Error:"
+msgstr "Хатогӣ дар кушодани файл"
+
+#: kdiff3.cpp:219
+msgid "Option --auto used, but no output file specified."
+msgstr "Интихоб --худ истифода шуда, аммо ягон файли хуруҷ муайян карда нашуд."
+
+#: kdiff3.cpp:369
+msgid "Option --auto ignored for directory comparison."
+msgstr "Интихоб --худ аҳамият надиҳи барои муқоисаи директория."
+
+#: kdiff3.cpp:405
+msgid "Saving failed."
+msgstr "Нигоҳ куни нашуд."
+
+#: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214
+msgid "Opening of these files failed:"
+msgstr "Кушодани ин файлҳо нашуд:"
+
+#: kdiff3.cpp:449
+msgid "File Open Error"
+msgstr "Хатогӣ дар кушодани файл"
+
+#: kdiff3.cpp:477
+msgid "Opens documents for comparison..."
+msgstr "Мекушояд документҳоро барои муқоиса..."
+
+#: kdiff3.cpp:479
+#, fuzzy
+#| msgid "Ready."
+msgid "Reload"
+msgstr "Тайёр аст."
+
+#: kdiff3.cpp:482
+msgid "Saves the merge result. All conflicts must be solved!"
+msgstr ""
+"Нигоҳ медорад натиҷаи якҷошавиро. Ҳамаи ҷанҷолҳо бояд ҳал карда шаванд!"
+
+#: kdiff3.cpp:484
+msgid "Saves the current document as..."
+msgstr "Нигоҳ медорад документи ҷориро мисли..."
+
+#: kdiff3.cpp:487
+msgid "Print the differences"
+msgstr ""
+
+#: kdiff3.cpp:490
+msgid "Quits the application"
+msgstr "Маҳкам мекунад аризаро"
+
+#: kdiff3.cpp:492
+msgid "Cuts the selected section and puts it to the clipboard"
+msgstr "Мебурад қисми интихоб карда шударо ва меандозад онро ба клипборд"
+
+#: kdiff3.cpp:494
+msgid "Copies the selected section to the clipboard"
+msgstr "Нусха мебардорад қисми интихоб карда шударо ба клипборд"
+
+#: kdiff3.cpp:496
+#, fuzzy
+#| msgid "Pastes the clipboard contents to actual position"
+msgid "Pastes the clipboard contents to current position"
+msgstr "Мечаспонад таркиботҳои клибордро ба ҷойгиршавии амалӣ"
+
+#: kdiff3.cpp:498
+msgid "Select everything in current window"
+msgstr ""
+
+#: kdiff3.cpp:500
+msgid "Search for a string"
+msgstr "Ковтукови ришта"
+
+#: kdiff3.cpp:502
+msgid "Search again for the string"
+msgstr "Бори дигар ковтуков барои ришта"
+
+#: kdiff3.cpp:507
+msgid "Enables/disables the statusbar"
+msgstr "Пайраҳаи ҳолати фаъол/ғайри фаъолро созед"
+
+#: kdiff3.cpp:511
+msgid "Configure KDiff3..."
+msgstr "Танзимоти KDiff3..."
+
+#: kdiff3.cpp:532
+msgid "Go to Current Delta"
+msgstr "Равед ба Делтаи Ҷори"
+
+#: kdiff3.cpp:532
+#, fuzzy
+#| msgid "Go to Current Delta"
+msgid ""
+"Current\n"
+"Delta"
+msgstr "Равед ба Делтаи Ҷори"
+
+#: kdiff3.cpp:534
+msgid "Go to First Delta"
+msgstr "Равед ба Делтаи Аввала"
+
+#: kdiff3.cpp:534
+#, fuzzy
+#| msgid "Go to First Delta"
+msgid ""
+"First\n"
+"Delta"
+msgstr "Равед ба Делтаи Аввала"
+
+#: kdiff3.cpp:536
+msgid "Go to Last Delta"
+msgstr "Равед ба Делтаи Охирон"
+
+#: kdiff3.cpp:536
+#, fuzzy
+#| msgid "Go to Last Delta"
+msgid ""
+"Last\n"
+"Delta"
+msgstr "Равед ба Делтаи Охирон"
+
+#: kdiff3.cpp:538
+msgid "(Skips white space differences when \"Show White Space\" is disabled.)"
+msgstr ""
+
+#: kdiff3.cpp:539
+msgid ""
+"(Does not skip white space differences even when \"Show White Space\" is "
+"disabled.)"
+msgstr ""
+
+#: kdiff3.cpp:540
+msgid "Go to Previous Delta"
+msgstr "Равед ба Делтаи Пешангӣ"
+
+#: kdiff3.cpp:540
+#, fuzzy
+#| msgid "Go to Previous Delta"
+msgid ""
+"Prev\n"
+"Delta"
+msgstr "Равед ба Делтаи Пешангӣ"
+
+#: kdiff3.cpp:542
+msgid "Go to Next Delta"
+msgstr "Равед ба Делтаи Дар пеш интизор"
+
+#: kdiff3.cpp:542
+#, fuzzy
+#| msgid "Go to Next Delta"
+msgid ""
+"Next\n"
+"Delta"
+msgstr "Равед ба Делтаи Дар пеш интизор"
+
+#: kdiff3.cpp:544
+msgid "Go to Previous Conflict"
+msgstr "Равед ба Ҷанҷоли Пешангӣ"
+
+#: kdiff3.cpp:544
+#, fuzzy
+msgid ""
+"Prev\n"
+"Conflict"
+msgstr "Якҷояшавӣ ба анҷом расид"
+
+#: kdiff3.cpp:546
+msgid "Go to Next Conflict"
+msgstr "Равед ба Ҷанҷоли Дар пеш интизор "
+
+#: kdiff3.cpp:546
+#, fuzzy
+#| msgid "Go to Next Conflict"
+msgid ""
+"Next\n"
+"Conflict"
+msgstr "Равед ба Ҷанҷоли Дар пеш интизор "
+
+#: kdiff3.cpp:548
+msgid "Go to Previous Unsolved Conflict"
+msgstr "Равед ба Ҷанҷоли Пешангии Ҳалнашуда"
+
+#: kdiff3.cpp:548
+#, fuzzy
+#| msgid "Unsolved"
+msgid ""
+"Prev\n"
+"Unsolved"
+msgstr "Иҷозат дода нашуд"
+
+#: kdiff3.cpp:550
+msgid "Go to Next Unsolved Conflict"
+msgstr "Равед ба Ҷанҷоли Дар пеш интизори Ҳалнашуда"
+
+#: kdiff3.cpp:550
+#, fuzzy
+#| msgid "Unsolved"
+msgid ""
+"Next\n"
+"Unsolved"
+msgstr "Иҷозат дода нашуд"
+
+#: kdiff3.cpp:552
+msgid "Select Line(s) From A"
+msgstr "Интихоб кунед Рах(ҳо)-ро Аз А"
+
+#: kdiff3.cpp:552
+msgid ""
+"Choose\n"
+"A"
+msgstr ""
+
+#: kdiff3.cpp:553
+msgid "Select Line(s) From B"
+msgstr "Интихоб кунед Рах(ҳо)-ро Аз В"
+
+#: kdiff3.cpp:553
+msgid ""
+"Choose\n"
+"B"
+msgstr ""
+
+#: kdiff3.cpp:554
+msgid "Select Line(s) From C"
+msgstr "Интихоб кунед Рах(ҳо)-ро Аз С"
+
+#: kdiff3.cpp:554
+msgid ""
+"Choose\n"
+"C"
+msgstr ""
+
+#: kdiff3.cpp:555
+msgid "Automatically Go to Next Unsolved Conflict After Source Selection"
+msgstr "Зуд равед ба ҷанҷоли пешангии ҳалнашуда баъди интихоби сарчашма"
+
+#: kdiff3.cpp:555
+msgid ""
+"Auto\n"
+"Next"
+msgstr ""
+
+#: kdiff3.cpp:557
+msgid "Show Space && Tabulator Characters for Differences"
+msgstr "Нишон диҳед фосиларо && Феълҳои табулятори барои гуногуниҳо"
+
+#: kdiff3.cpp:557
+msgid ""
+"White\n"
+"Characters"
+msgstr ""
+
+#: kdiff3.cpp:558
+msgid "Show White Space"
+msgstr "Нишон диҳед фосиларо"
+
+#: kdiff3.cpp:558
+msgid ""
+"White\n"
+"Deltas"
+msgstr ""
+
+#: kdiff3.cpp:560
+msgid "Show Line Numbers"
+msgstr "Нишон диҳед рахи рақамҳоро"
+
+#: kdiff3.cpp:560
+#, fuzzy
+#| msgid "Show Line Numbers"
+msgid ""
+"Line\n"
+"Numbers"
+msgstr "Нишон диҳед рахи рақамҳоро"
+
+#: kdiff3.cpp:561
+msgid "Choose A Everywhere"
+msgstr "Интихоб кунед А-ро дар ҳамаҷой"
+
+#: kdiff3.cpp:562
+msgid "Choose B Everywhere"
+msgstr "Интихоб кунед В-ро дар ҳамаҷой"
+
+#: kdiff3.cpp:563
+msgid "Choose C Everywhere"
+msgstr "Интихоб кунед В-ро дар ҳамаҷой"
+
+#: kdiff3.cpp:564
+#, fuzzy
+msgid "Choose A for All Unsolved Conflicts"
+msgstr "Интихоб кунед А-ро барои ҳамаи ҷанҷолҳои ҳалнашуда"
+
+#: kdiff3.cpp:565
+#, fuzzy
+msgid "Choose B for All Unsolved Conflicts"
+msgstr "Интихоб кунед В-ро барои ҳамаи ҷанҷолҳои ҳалнашуда"
+
+#: kdiff3.cpp:566
+#, fuzzy
+msgid "Choose C for All Unsolved Conflicts"
+msgstr "Интихоб кунед С-ро барои ҳамаи ҷанҷолҳои ҳалнашуда"
+
+#: kdiff3.cpp:567
+#, fuzzy
+msgid "Choose A for All Unsolved Whitespace Conflicts"
+msgstr "Интихоб кунед А-ро барои фосилаи ҳамаи ҷанҷолҳои ҳалнашуда"
+
+#: kdiff3.cpp:568
+#, fuzzy
+msgid "Choose B for All Unsolved Whitespace Conflicts"
+msgstr "Интихоб кунед В-ро барои фосилаи ҳамаи ҷанҷолҳои ҳалнашуда"
+
+#: kdiff3.cpp:569
+#, fuzzy
+msgid "Choose C for All Unsolved Whitespace Conflicts"
+msgstr "Интихоб кунед С-ро барои фосилаи ҳамаи ҷанҷолҳои ҳалнашуда"
+
+#: kdiff3.cpp:570
+msgid "Automatically Solve Simple Conflicts"
+msgstr "Зуд ҳал мекунад ҷанҷолҳои оддиро"
+
+#: kdiff3.cpp:571
+msgid "Set Deltas to Conflicts"
+msgstr "Танзим кунед делтаҳоро ба ҷанҷолҳо"
+
+#: kdiff3.cpp:572
+msgid "Run Regular Expression Auto Merge"
+msgstr ""
+
+#: kdiff3.cpp:573
+#, fuzzy
+msgid "Automatically Solve History Conflicts"
+msgstr "Зуд ҳал мекунад ҷанҷолҳои оддиро"
+
+#: kdiff3.cpp:574
+msgid "Split Diff At Selection"
+msgstr ""
+
+#: kdiff3.cpp:575
+#, fuzzy
+msgid "Join Selected Diffs"
+msgstr "Муқоисаи файли интихобшуда"
+
+#: kdiff3.cpp:577
+msgid "Show Window A"
+msgstr "Нишон диҳед Тирезаи А-ро"
+
+#: kdiff3.cpp:578
+msgid "Show Window B"
+msgstr "Нишон диҳед Тирезаи В-ро"
+
+#: kdiff3.cpp:579
+msgid "Show Window C"
+msgstr "Нишон диҳед Тирезаи С-ро"
+
+#: kdiff3.cpp:580 kdiff3.cpp:591
+msgid "Focus Next Window"
+msgstr "Активация кардани дигар тиреза"
+
+#: kdiff3.cpp:582
+msgid "Normal Overview"
+msgstr "Оддӣ аз назар гузарондан"
+
+#: kdiff3.cpp:583
+msgid "A vs. B Overview"
+msgstr "Аз назар гузарондани A vs. B "
+
+#: kdiff3.cpp:584
+msgid "A vs. C Overview"
+msgstr "Аз назар гузарондани A vs. C"
+
+#: kdiff3.cpp:585
+msgid "B vs. C Overview"
+msgstr "Аз назар гузарондани B vs. C"
+
+#: kdiff3.cpp:586
+msgid "Word Wrap Diff Windows"
+msgstr "Калимаи печидаи тирезаҳои гуногун"
+
+#: kdiff3.cpp:587
+msgid "Add Manual Diff Alignment"
+msgstr ""
+
+#: kdiff3.cpp:588
+msgid "Clear All Manual Diff Alignments"
+msgstr ""
+
+#: kdiff3.cpp:593
+msgid "Focus Prev Window"
+msgstr "Активация кардани тирезаи гузашта"
+
+#: kdiff3.cpp:594
+msgid "Toggle Split Orientation"
+msgstr "Дигаркунӣ ва тақсимкунии ҷои исти худ"
+
+#: kdiff3.cpp:596
+msgid "Dir && Text Split Screen View"
+msgstr "аппп"
+
+#: kdiff3.cpp:598
+msgid "Toggle Between Dir && Text View"
+msgstr "Дигаркунӣ байни феҳристҳо && намоиши матн"
+
+#: kdiff3.cpp:654 pdiff.cpp:1812
+msgid "The merge result hasn't been saved."
+msgstr "Натиҷаи иттиҳодия нигоҳ надоштагӣ."
+
+#: kdiff3.cpp:656
+msgid "Save && Quit"
+msgstr "Нигоҳ доштан && баромадан"
+
+#: kdiff3.cpp:657
+msgid "Quit Without Saving"
+msgstr "Бе нигоҳдорӣ баромадан"
+
+#: kdiff3.cpp:665 pdiff.cpp:1823
+msgid "Saving the merge result failed."
+msgstr "Натиҷаи якҷоя кардан,нигоҳ дошта нашуд."
+
+#: kdiff3.cpp:676 pdiff.cpp:1078
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort?"
+msgstr "Якҷояшавии каталогро нигоҳ дорем.Оё,шумо дилпур мехоҳед, баровардан?"
+
+#: kdiff3.cpp:701
+msgid "Saving file..."
+msgstr "Нигоҳ доштани файл..."
+
+#: kdiff3.cpp:718
+msgid "Saving file with a new filename..."
+msgstr "Бо номи нав нигоҳ доштани файл..."
+
+#: kdiff3.cpp:781
+#, fuzzy
+msgid "Printing not implemented."
+msgstr "Якҷояшавӣ ба анҷом расид."
+
+#: kdiff3.cpp:815
+#, fuzzy
+msgid "Printing..."
+msgstr "Баромад..."
+
+#: kdiff3.cpp:956
+#, fuzzy
+msgid "Selection"
+msgstr "Интихоб кунед Рах(ҳо)-ро Аз С"
+
+#: kdiff3.cpp:982
+#, fuzzy
+msgid "Printing completed."
+msgstr "Якҷояшавӣ ба анҷом расид."
+
+#: kdiff3.cpp:986
+#, fuzzy
+msgid "Printing aborted."
+msgstr "Якҷояшавӣ ба анҷом расид."
+
+#: kdiff3.cpp:993
+msgid "Exiting..."
+msgstr "Баромад..."
+
+#: kdiff3.cpp:1006
+msgid "Toggling toolbar..."
+msgstr "Тасвир кардан/панели асбобҳои пинҳонӣ..."
+
+#: kdiff3.cpp:1027
+msgid "Toggle the statusbar..."
+msgstr "Тасвир кардан/вазъияти панели пинҳонӣ..."
+
+#: smalldialogs.cpp:58
+#, fuzzy
+msgid "A (Base):"
+msgstr "A (баромад): "
+
+#: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99
+#: smalldialogs.cpp:142
+msgid "File..."
+msgstr ""
+
+#: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101
+#: smalldialogs.cpp:144
+#, fuzzy
+msgid "Dir..."
+msgstr "Каталог"
+
+#: smalldialogs.cpp:93
+msgid "C (Optional):"
+msgstr ""
+
+#: smalldialogs.cpp:116
+msgid "Swap/Copy Names ..."
+msgstr ""
+
+#: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123
+#, kde-format
+msgid "Swap %1<->%2"
+msgstr ""
+
+#: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126
+#, kde-format
+msgid "Copy %1->Output"
+msgstr ""
+
+#: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129
+#, kde-format
+msgid "Swap %1<->Output"
+msgstr ""
+
+#: smalldialogs.cpp:136
+msgid "Output (optional):"
+msgstr ""
+
+#: smalldialogs.cpp:168
+#, fuzzy
+msgid "Configure..."
+msgstr "Танзимоти KDiff3..."
+
+#: smalldialogs.cpp:174
+msgid "&OK"
+msgstr ""
+
+#: smalldialogs.cpp:362
+#, fuzzy
+msgid "Search text:"
+msgstr "Пайдо кардан:"
+
+#: smalldialogs.cpp:369
+msgid "Case sensitive"
+msgstr "Ба ҳисоб гирифтани рӯйхат"
+
+#: smalldialogs.cpp:372
+msgid "Search A"
+msgstr "Ҷустуҷуи A"
+
+#: smalldialogs.cpp:377
+msgid "Search B"
+msgstr "Ҷустуҷуи B"
+
+#: smalldialogs.cpp:382
+msgid "Search C"
+msgstr "Ҷустуҷуи C"
+
+#: smalldialogs.cpp:387
+msgid "Search output"
+msgstr "Ҷустуҷу дар ҷамъбаст"
+
+#: smalldialogs.cpp:392
+msgid "&Search"
+msgstr "&Ҷустуҷӯ"
+
+#: smalldialogs.cpp:409
+msgid "Regular Expression Tester"
+msgstr ""
+
+#: smalldialogs.cpp:414 optiondialog.cpp:936
+msgid "Auto merge regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:422
+msgid "Example auto merge line:"
+msgstr ""
+
+#: smalldialogs.cpp:424
+msgid "To test auto merge, copy a line as used in your files."
+msgstr ""
+
+#: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494
+msgid "Match result:"
+msgstr ""
+
+#: smalldialogs.cpp:441 optiondialog.cpp:962
+msgid "History start regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:449
+msgid "Example history start line (with leading comment):"
+msgstr ""
+
+#: smalldialogs.cpp:451
+msgid ""
+"Copy a history start line as used in your files,\n"
+"including the leading comment."
+msgstr ""
+
+#: smalldialogs.cpp:469 optiondialog.cpp:972
+msgid "History entry start regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:477
+msgid "History sort key order:"
+msgstr ""
+
+#: smalldialogs.cpp:485
+msgid "Example history entry start line (without leading comment):"
+msgstr ""
+
+#: smalldialogs.cpp:487
+msgid ""
+"Copy a history entry start line as used in your files,\n"
+"but omit the leading comment."
+msgstr ""
+
+#: smalldialogs.cpp:501
+msgid "Sort key result:"
+msgstr ""
+
+#: smalldialogs.cpp:508
+msgid "OK"
+msgstr ""
+
+#: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583
+msgid "Match success."
+msgstr ""
+
+#: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589
+#, fuzzy
+msgid "Match failed."
+msgstr "Нигоҳ куни нашуд."
+
+#: smalldialogs.cpp:574
+msgid "Opening and closing parentheses do not match in regular expression."
+msgstr ""
+
+#: optiondialog.cpp:367
+msgid "Unicode, 8 bit"
+msgstr ""
+
+#: optiondialog.cpp:368
+msgid "Unicode"
+msgstr ""
+
+#: optiondialog.cpp:369
+msgid "Latin1"
+msgstr ""
+
+#: optiondialog.cpp:388
+msgid "Change this if non-ASCII characters are not displayed correctly."
+msgstr ""
+
+#: optiondialog.cpp:465
+#, fuzzy
+msgid "Configure"
+msgstr "Танзимоти KDiff3..."
+
+#: optiondialog.cpp:531
+msgid "Font"
+msgstr ""
+
+#: optiondialog.cpp:532
+msgid "Editor & Diff Output Font"
+msgstr ""
+
+#: optiondialog.cpp:556
+msgid "Italic font for deltas"
+msgstr ""
+
+#: optiondialog.cpp:559
+msgid ""
+"Selects the italic version of the font for differences.\n"
+"If the font doesn't support italic characters, then this does nothing."
+msgstr ""
+
+#: optiondialog.cpp:568
+msgid "Color"
+msgstr ""
+
+#: optiondialog.cpp:569
+msgid "Colors Settings"
+msgstr ""
+
+#: optiondialog.cpp:588
+msgid "Editor and Diff Views:"
+msgstr ""
+
+#: optiondialog.cpp:596
+msgid "Foreground color:"
+msgstr ""
+
+#: optiondialog.cpp:603
+msgid "Background color:"
+msgstr ""
+
+#: optiondialog.cpp:612
+msgid "Diff background color:"
+msgstr ""
+
+#: optiondialog.cpp:620
+msgid "Color A:"
+msgstr ""
+
+#: optiondialog.cpp:628
+msgid "Color B:"
+msgstr ""
+
+#: optiondialog.cpp:636
+msgid "Color C:"
+msgstr ""
+
+#: optiondialog.cpp:643
+msgid "Conflict color:"
+msgstr ""
+
+#: optiondialog.cpp:651
+msgid "Current range background color:"
+msgstr ""
+
+#: optiondialog.cpp:659
+msgid "Current range diff background color:"
+msgstr ""
+
+#: optiondialog.cpp:666
+msgid "Color for manually aligned difference ranges:"
+msgstr ""
+
+#: optiondialog.cpp:672
+#, fuzzy
+msgid "Directory Comparison View:"
+msgstr "Ҳолати муқоисакунии каталогҳо"
+
+#: optiondialog.cpp:678
+msgid "Newest file color:"
+msgstr ""
+
+#: optiondialog.cpp:682
+msgid ""
+"Changing this color will only be effective when starting the next directory "
+"comparison."
+msgstr ""
+
+#: optiondialog.cpp:687
+msgid "Oldest file color:"
+msgstr ""
+
+#: optiondialog.cpp:695
+msgid "Middle age file color:"
+msgstr ""
+
+#: optiondialog.cpp:703
+msgid "Color for missing files:"
+msgstr ""
+
+#: optiondialog.cpp:717
+msgid "Editor"
+msgstr ""
+
+#: optiondialog.cpp:718
+msgid "Editor Behavior"
+msgstr ""
+
+#: optiondialog.cpp:732
+msgid "Tab inserts spaces"
+msgstr ""
+
+#: optiondialog.cpp:735
+msgid ""
+"On: Pressing tab generates the appropriate number of spaces.\n"
+"Off: A tab character will be inserted."
+msgstr ""
+
+#: optiondialog.cpp:741
+msgid "Tab size:"
+msgstr ""
+
+#: optiondialog.cpp:747
+msgid "Auto indentation"
+msgstr ""
+
+#: optiondialog.cpp:750
+msgid "On: The indentation of the previous line is used for a new line.\n"
+msgstr ""
+
+#: optiondialog.cpp:754
+msgid "Auto copy selection"
+msgstr ""
+
+#: optiondialog.cpp:757
+msgid ""
+"On: Any selection is immediately written to the clipboard.\n"
+"Off: You must explicitely copy e.g. via Ctrl-C."
+msgstr ""
+
+#: optiondialog.cpp:768
+#, fuzzy
+msgid "Dos/Windows"
+msgstr "Нишон диҳед Тирезаи С-ро"
+
+#: optiondialog.cpp:769
+msgid "Autodetect"
+msgstr ""
+
+#: optiondialog.cpp:772
+msgid ""
+"Sets the line endings for when an edited file is saved.\n"
+"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A"
+msgstr ""
+
+#: optiondialog.cpp:784
+#, fuzzy
+msgid "Diff"
+msgstr "KDiff3Part"
+
+#: optiondialog.cpp:785
+#, fuzzy
+msgid "Diff Settings"
+msgstr "Воситаи муқоиса ва якҷоя кардан"
+
+#: optiondialog.cpp:809
+msgid "Treat as white space."
+msgstr ""
+
+#: optiondialog.cpp:811
+msgid "Ignore numbers"
+msgstr ""
+
+#: optiondialog.cpp:814
+msgid ""
+"Ignore number characters during line matching phase. (Similar to Ignore "
+"white space.)\n"
+"Might help to compare files with numeric data."
+msgstr ""
+
+#: optiondialog.cpp:819
+msgid "Ignore C/C++ comments"
+msgstr ""
+
+#: optiondialog.cpp:821
+msgid "Treat C/C++ comments like white space."
+msgstr ""
+
+#: optiondialog.cpp:825
+msgid "Ignore case"
+msgstr ""
+
+#: optiondialog.cpp:828
+msgid "Treat case differences like white space changes. ('a'<=>'A')"
+msgstr ""
+
+#: optiondialog.cpp:832
+msgid "Preprocessor command:"
+msgstr ""
+
+#: optiondialog.cpp:836
+msgid "User defined pre-processing. (See the docs for details.)"
+msgstr ""
+
+#: optiondialog.cpp:839
+msgid "Line-matching preprocessor command:"
+msgstr ""
+
+#: optiondialog.cpp:843
+msgid ""
+"This pre-processor is only used during line matching.\n"
+"(See the docs for details.)"
+msgstr ""
+
+#: optiondialog.cpp:846
+msgid "Try hard (slower)"
+msgstr ""
+
+#: optiondialog.cpp:849
+msgid ""
+"Enables the --minimal option for the external diff.\n"
+"The analysis of big files will be much slower."
+msgstr ""
+
+#: optiondialog.cpp:854
+msgid "Align B and C for 3 input files"
+msgstr ""
+
+#: optiondialog.cpp:857
+msgid ""
+"Try to align B and C when comparing or merging three input files.\n"
+"Not recommended for merging because merge might get more complicated.\n"
+"(Default is off.)"
+msgstr ""
+
+#: optiondialog.cpp:870
+#, fuzzy
+msgid "Merge Settings"
+msgstr "Воситаи муқоиса ва якҷоя кардан"
+
+#: optiondialog.cpp:885
+msgid "Auto advance delay (ms):"
+msgstr ""
+
+#: optiondialog.cpp:890
+msgid ""
+"When in Auto-Advance mode the result of the current selection is shown \n"
+"for the specified time, before jumping to the next conflict. Range: 0-2000 ms"
+msgstr ""
+
+#: optiondialog.cpp:895
+#, fuzzy
+#| msgid "Show Window A"
+msgid "Show info dialogs"
+msgstr "Нишон диҳед Тирезаи А-ро"
+
+#: optiondialog.cpp:897
+msgid "Show a dialog with information about the number of conflicts."
+msgstr ""
+
+#: optiondialog.cpp:900
+msgid "White space 2-file merge default:"
+msgstr ""
+
+#: optiondialog.cpp:904 optiondialog.cpp:917
+msgid "Manual Choice"
+msgstr ""
+
+#: optiondialog.cpp:908 optiondialog.cpp:922
+msgid ""
+"Allow the merge algorithm to automatically select an input for white-space-"
+"only changes."
+msgstr ""
+
+#: optiondialog.cpp:913
+msgid "White space 3-file merge default:"
+msgstr ""
+
+#: optiondialog.cpp:927
+msgid "Automatic Merge Regular Expression"
+msgstr ""
+
+#: optiondialog.cpp:940
+msgid ""
+"Regular expression for lines where KDiff3 should automatically choose one "
+"source.\n"
+"When a line with a conflict matches the regular expression then\n"
+"- if available - C, otherwise B will be chosen."
+msgstr ""
+
+#: optiondialog.cpp:946
+msgid "Run regular expression auto merge on merge start"
+msgstr ""
+
+#: optiondialog.cpp:948
+msgid ""
+"Run the merge for auto merge regular expressions\n"
+"immediately when a merge starts.\n"
+msgstr ""
+
+#: optiondialog.cpp:953
+msgid "Version Control History Merging"
+msgstr ""
+
+#: optiondialog.cpp:966
+msgid ""
+"Regular expression for the start of the version control history entry.\n"
+"Usually this line contains the \"$Log$\" keyword.\n"
+"Default value: \".*\\$Log.*\\$.*\""
+msgstr ""
+
+#: optiondialog.cpp:984
+msgid ""
+"A version control history entry consists of several lines.\n"
+"Specify the regular expression to detect the first line (without the leading "
+"comment).\n"
+"Use parentheses to group the keys you want to use for sorting.\n"
+"If left empty, then KDiff3 assumes that empty lines separate history "
+"entries.\n"
+"See the documentation for details."
+msgstr ""
+
+#: optiondialog.cpp:992
+msgid "History merge sorting"
+msgstr ""
+
+#: optiondialog.cpp:994
+msgid "Sort version control history by a key."
+msgstr ""
+
+#: optiondialog.cpp:1004
+msgid "History entry start sort key order:"
+msgstr ""
+
+#: optiondialog.cpp:1008
+msgid ""
+"Each pair of parentheses used in the regular expression for the history "
+"start entry\n"
+"groups a key that can be used for sorting.\n"
+"Specify the list of keys (that are numbered in order of occurrence\n"
+"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n"
+"If left empty, then no sorting will be done.\n"
+"See the documentation for details."
+msgstr ""
+
+#: optiondialog.cpp:1019
+msgid "Merge version control history on merge start"
+msgstr ""
+
+#: optiondialog.cpp:1021
+msgid "Run version control history automerge on merge start."
+msgstr ""
+
+#: optiondialog.cpp:1025
+#, fuzzy
+msgid "Max number of history entries:"
+msgstr "Миқдори зеркаталогҳо:"
+
+#: optiondialog.cpp:1028
+msgid "Cut off after specified number. Use -1 for infinite number of entries."
+msgstr ""
+
+#: optiondialog.cpp:1032
+msgid "Test your regular expressions"
+msgstr ""
+
+#: optiondialog.cpp:1037
+msgid "Irrelevant merge command:"
+msgstr ""
+
+#: optiondialog.cpp:1041
+msgid ""
+"If specified this script is run after automerge\n"
+"when no other relevant changes were detected.\n"
+"Called with the parameters: filename1 filename2 filename3"
+msgstr ""
+
+#: optiondialog.cpp:1047
+msgid "Auto save and quit on merge without conflicts"
+msgstr ""
+
+#: optiondialog.cpp:1050
+msgid ""
+"If KDiff3 was started for a file-merge from the command line and all\n"
+"conflicts are solvable without user interaction then automatically save and "
+"quit.\n"
+"(Similar to command line option \"--auto\".)"
+msgstr ""
+
+#: optiondialog.cpp:1061 optiondialog.cpp:1062
+#, fuzzy
+msgid "Directory"
+msgstr "Хониши каталоги А"
+
+#: optiondialog.cpp:1075
+#, fuzzy
+msgid "Recursive directories"
+msgstr "Мушоҳидакунии каталогҳо..."
+
+#: optiondialog.cpp:1077
+#, fuzzy
+msgid "Whether to analyze subdirectories or not."
+msgstr "Ҳуқуқҳои ин каталогҳоро тафтиш кунед."
+
+#: optiondialog.cpp:1079
+msgid "File pattern(s):"
+msgstr ""
+
+#: optiondialog.cpp:1084
+msgid ""
+"Pattern(s) of files to be analyzed. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1090
+msgid "File-anti-pattern(s):"
+msgstr ""
+
+#: optiondialog.cpp:1095
+msgid ""
+"Pattern(s) of files to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1101
+msgid "Dir-anti-pattern(s):"
+msgstr ""
+
+#: optiondialog.cpp:1106
+msgid ""
+"Pattern(s) of directories to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1112
+msgid "Use .cvsignore"
+msgstr ""
+
+#: optiondialog.cpp:1115
+msgid ""
+"Extends the antipattern to anything that would be ignored by CVS.\n"
+"Via local \".cvsignore\" files this can be directory specific."
+msgstr ""
+
+#: optiondialog.cpp:1120
+msgid "Find hidden files and directories"
+msgstr ""
+
+#: optiondialog.cpp:1123
+msgid "Finds files and directories with the hidden attribute."
+msgstr ""
+
+#: optiondialog.cpp:1125
+msgid "Finds files and directories starting with '.'."
+msgstr ""
+
+#: optiondialog.cpp:1129
+msgid "Follow file links"
+msgstr ""
+
+#: optiondialog.cpp:1132
+msgid ""
+"On: Compare the file the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+
+#: optiondialog.cpp:1137
+msgid "Follow directory links"
+msgstr ""
+
+#: optiondialog.cpp:1140
+msgid ""
+"On: Compare the directory the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+
+#: optiondialog.cpp:1156
+msgid "Case sensitive filename comparison"
+msgstr ""
+
+#: optiondialog.cpp:1159
+msgid ""
+"The directory comparison will compare files or directories when their names "
+"match.\n"
+"Set this option if the case of the names must match. (Default for Windows is "
+"off, otherwise on.)"
+msgstr ""
+
+#: optiondialog.cpp:1163
+msgid "File Comparison Mode"
+msgstr ""
+
+#: optiondialog.cpp:1169
+#, fuzzy
+msgid "Binary comparison"
+msgstr "Ҳолати муқоисакунии каталогҳо"
+
+#: optiondialog.cpp:1170
+msgid "Binary comparison of each file. (Default)"
+msgstr ""
+
+#: optiondialog.cpp:1173
+msgid "Full analysis"
+msgstr ""
+
+#: optiondialog.cpp:1174
+msgid ""
+"Do a full analysis and show statistics information in extra columns.\n"
+"(Slower than a binary comparison, much slower for binary files.)"
+msgstr ""
+
+#: optiondialog.cpp:1178
+msgid "Trust the size and modification date (unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1179
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"Files with equal contents but different modification dates will appear as "
+"different.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+
+#: optiondialog.cpp:1184
+msgid ""
+"Trust the size and date, but use binary comparison if date does not match "
+"(unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1185
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"If the dates are not equal but the sizes are, use binary comparison.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+
+#: optiondialog.cpp:1190
+msgid "Trust the size (unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1191
+msgid ""
+"Assume that files are equal if their file lengths are equal.\n"
+"Useful for big directories or slow networks when the date is modified during "
+"download."
+msgstr ""
+
+#: optiondialog.cpp:1199
+#, fuzzy
+msgid "Synchronize directories"
+msgstr "Мушоҳидакунии каталогҳо..."
+
+#: optiondialog.cpp:1202
+msgid ""
+"Offers to store files in both directories so that\n"
+"both directories are the same afterwards.\n"
+"Works only when comparing two directories without specifying a destination."
+msgstr ""
+
+#: optiondialog.cpp:1208
+msgid "White space differences considered equal"
+msgstr ""
+
+#: optiondialog.cpp:1211
+msgid ""
+"If files differ only by white space consider them equal.\n"
+"This is only active when full analysis is chosen."
+msgstr ""
+
+#: optiondialog.cpp:1217
+msgid "Copy newer instead of merging (unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1220
+msgid ""
+"Don't look inside, just take the newer file.\n"
+"(Use this only if you know what you are doing!)\n"
+"Only effective when comparing two directories."
+msgstr ""
+
+#: optiondialog.cpp:1225
+msgid "Backup files (.orig)"
+msgstr ""
+
+#: optiondialog.cpp:1228
+msgid ""
+"If a file would be saved over an old file, then the old file\n"
+"will be renamed with a '.orig' extension instead of being deleted."
+msgstr ""
+
+#: optiondialog.cpp:1301 optiondialog.cpp:1302
+msgid "Regional Settings"
+msgstr ""
+
+#: optiondialog.cpp:1402
+msgid "Language (restart required)"
+msgstr ""
+
+#: optiondialog.cpp:1445
+msgid ""
+"Choose the language of the GUI strings or \"Auto\".\n"
+"For a change of language to take place, quit and restart KDiff3."
+msgstr ""
+
+#: optiondialog.cpp:1463
+msgid "Use the same encoding for everything:"
+msgstr ""
+
+#: optiondialog.cpp:1466
+msgid ""
+"Enable this allows to change all encodings by changing the first only.\n"
+"Disable this if different individual settings are needed."
+msgstr ""
+
+#: optiondialog.cpp:1471
+msgid "Note: Local Encoding is "
+msgstr ""
+
+#: optiondialog.cpp:1475
+msgid "File Encoding for A:"
+msgstr ""
+
+#: optiondialog.cpp:1481
+msgid ""
+"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n"
+"If the file is not Unicode then the selected encoding will be used as "
+"fallback.\n"
+"(Unicode detection depends on the first bytes of a file.)"
+msgstr ""
+
+#: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503
+msgid "Auto Detect Unicode"
+msgstr ""
+
+#: optiondialog.cpp:1490
+msgid "File Encoding for B:"
+msgstr ""
+
+#: optiondialog.cpp:1499
+msgid "File Encoding for C:"
+msgstr ""
+
+#: optiondialog.cpp:1508
+msgid "File Encoding for Merge Output and Saving:"
+msgstr ""
+
+#: optiondialog.cpp:1512
+msgid "Auto Select"
+msgstr ""
+
+#: optiondialog.cpp:1515
+msgid ""
+"If enabled then the encoding from the input files is used.\n"
+"In ambiguous cases a dialog will ask the user to choose the encoding for "
+"saving."
+msgstr ""
+
+#: optiondialog.cpp:1519
+msgid "File Encoding for Preprocessor Files:"
+msgstr ""
+
+#: optiondialog.cpp:1530
+msgid "Right To Left Language"
+msgstr ""
+
+#: optiondialog.cpp:1533
+msgid ""
+"Some languages are read from right to left.\n"
+"This setting will change the viewer and editor accordingly."
+msgstr ""
+
+#: optiondialog.cpp:1548
+#, fuzzy
+msgid "Integration"
+msgstr "Амал"
+
+#: optiondialog.cpp:1549
+msgid "Integration Settings"
+msgstr ""
+
+#: optiondialog.cpp:1563
+msgid "Command line options to ignore:"
+msgstr ""
+
+#: optiondialog.cpp:1568
+msgid ""
+"List of command line options that should be ignored when KDiff3 is used by "
+"other tools.\n"
+"Several values can be specified if separated via ';'\n"
+"This will suppress the \"Unknown option\" error."
+msgstr ""
+
+#: optiondialog.cpp:1575
+msgid "Quit also via Escape key"
+msgstr ""
+
+#: optiondialog.cpp:1578
+msgid ""
+"Fast method to exit.\n"
+"For those who are used to using the Escape key."
+msgstr ""
+
+#: optiondialog.cpp:1583
+msgid "Integrate with ClearCase"
+msgstr ""
+
+#: optiondialog.cpp:1586
+msgid ""
+"Integrate with Rational ClearCase from IBM.\n"
+"Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n"
+"(Only enabled when ClearCase \"bin\" directory is in the path.)"
+msgstr ""
+
+#: optiondialog.cpp:1592
+msgid "Remove ClearCase Integration"
+msgstr ""
+
+#: optiondialog.cpp:1595
+msgid ""
+"Restore the old \"map\" file from before doing the ClearCase integration."
+msgstr ""
+
+#: optiondialog.cpp:1680
+msgid "Incompatible Font"
+msgstr ""
+
+#: optiondialog.cpp:1681
+msgid "Continue at Own Risk"
+msgstr ""
+
+#: optiondialog.cpp:1682
+#, fuzzy
+msgid "Select Another Font"
+msgstr "Интихоб кунед Рах(ҳо)-ро Аз С"
+
+#: optiondialog.cpp:1717
+msgid "This resets all options. Not only those of the current topic."
+msgstr ""
+
+#: pdiff.cpp:260
+msgid "PreprocessorCmd: "
+msgstr ""
+
+#: pdiff.cpp:265
+msgid "The following option(s) you selected might change data:\n"
+msgstr ""
+
+#: pdiff.cpp:266
+msgid ""
+"\n"
+"Most likely this is not wanted during a merge.\n"
+"Do you want to disable these settings or continue with these settings active?"
+msgstr ""
+
+#: pdiff.cpp:268
+msgid "Option Unsafe for Merging"
+msgstr ""
+
+#: pdiff.cpp:269
+msgid "Use These Options During Merge"
+msgstr ""
+
+#: pdiff.cpp:270
+msgid "Disable Unsafe Options"
+msgstr ""
+
+#: pdiff.cpp:300
+msgid "Loading A"
+msgstr ""
+
+#: pdiff.cpp:304
+msgid "Loading B"
+msgstr ""
+
+#: pdiff.cpp:321 pdiff.cpp:347
+msgid "Diff: A <-> B"
+msgstr ""
+
+#: pdiff.cpp:327 pdiff.cpp:372
+msgid "Linediff: A <-> B"
+msgstr ""
+
+#: pdiff.cpp:338
+msgid "Loading C"
+msgstr ""
+
+#: pdiff.cpp:350
+msgid "Diff: B <-> C"
+msgstr ""
+
+#: pdiff.cpp:353
+msgid "Diff: A <-> C"
+msgstr ""
+
+#: pdiff.cpp:375
+msgid "Linediff: B <-> C"
+msgstr ""
+
+#: pdiff.cpp:378
+msgid "Linediff: A <-> C"
+msgstr ""
+
+#: pdiff.cpp:534
+msgid "All input files contain the same text, but are not binary equal."
+msgstr ""
+
+#: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541
+#, kde-format
+msgid "Files %1 and %2 have equal text, but are not binary equal. \n"
+msgstr ""
+
+#: pdiff.cpp:551
+msgid ""
+"Some inputfiles don't seem to be pure textfiles.\n"
+"Note that the KDiff3-merge was not meant for binary data.\n"
+"Continue at your own risk."
+msgstr ""
+
+#: pdiff.cpp:566
+#, kde-format
+msgid ""
+"Some input characters could not be converted to valid unicode.\n"
+"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n"
+"Don't save the result if unsure. Continue at your own risk.\n"
+"Affected input files are in %1."
+msgstr ""
+
+#: pdiff.cpp:1080
+msgid "Abort"
+msgstr ""
+
+#: pdiff.cpp:1087 pdiff.cpp:1175
+#, fuzzy
+msgid "Opening files..."
+msgstr "Кушодан %1 нашуд."
+
+#: pdiff.cpp:1152 pdiff.cpp:1223
+#, fuzzy
+msgid "File open error"
+msgstr "Хатогӣ дар кушодани файл"
+
+#: pdiff.cpp:1255
+msgid "Cutting selection..."
+msgstr ""
+
+#: pdiff.cpp:1276
+#, fuzzy
+msgid "Copying selection to clipboard..."
+msgstr "Нусха мебардорад қисми интихоб карда шударо ба клипборд"
+
+#: pdiff.cpp:1292
+msgid "Inserting clipboard contents..."
+msgstr ""
+
+#: pdiff.cpp:1814
+#, fuzzy
+msgid "Save && Continue"
+msgstr "Нигоҳ доштан && баромадан"
+
+#: pdiff.cpp:1815
+#, fuzzy
+msgid "Continue Without Saving"
+msgstr "Бе нигоҳдорӣ баромадан"
+
+#: pdiff.cpp:2018
+#, fuzzy
+msgid "Search complete."
+msgstr "Ҷустуҷу дар ҷамъбаст"
+
+#: pdiff.cpp:2018
+#, fuzzy
+msgid "Search Complete"
+msgstr "Якҷояшавӣ ба анҷом расид"
+
+#: pdiff.cpp:2252
+msgid "Nothing is selected in either diff input window."
+msgstr ""
+
+#: pdiff.cpp:2252
+#, fuzzy
+msgid "Error while adding manual diff range"
+msgstr "Хатогӣ дар вақти эҷод кардани каталог."
+
+#: kdiff3_shell.cpp:76
+#, fuzzy
+#| msgid ""
+#| "Could not find our part!\n"
+#| "This usually happens due to an installation problem. Please read the "
+#| "README-file in the source package for details."
+msgid ""
+"Could not initialize the KDiff3 part.\n"
+"This usually happens due to an installation problem. Please read the README-"
+"file in the source package for details."
+msgstr ""
+"Қисми мо ёфт нашуд!\n"
+"Ин масъала одатан дар вақти аниқ рӯй медиҳад.Файли README-ро хонед, ҷой ва "
+"калидро ба тафсил баён кунед."
+
+#: rc.cpp:1
+msgctxt "NAME OF TRANSLATORS"
+msgid "Your names"
+msgstr ""
+
+#: rc.cpp:2
+msgctxt "EMAIL OF TRANSLATORS"
+msgid "Your emails"
+msgstr ""
+
+#. i18n: file: kdiff3_part.rc:4
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:5
+#, fuzzy
+msgid "&KDiff3"
+msgstr "KDiff3Part"
+
+#. i18n: file: kdiff3_part.rc:13
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:8
+#, fuzzy
+msgid "Configure KDiff3"
+msgstr "Танзимоти KDiff3..."
+
+#. i18n: file: kdiff3_part.rc:16
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:11
+#, fuzzy
+msgid "KDiff3"
+msgstr "KDiff3Part"
+
+#. i18n: file: kdiff3_shell.rc:106
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:38
+msgid "Main Toolbar"
+msgstr ""
+
+#, fuzzy
+#~ msgid "Directory Merge"
+#~ msgstr "Хатогӣ дар вақти хониши каталог"
+
+#~ msgid "C&ontinue"
+#~ msgstr "&Давом додан"
+
+#~ msgid ""
+#~ "_: NAME OF TRANSLATORS\n"
+#~ "Your names"
+#~ msgstr ""
+#~ "Tajik KDE Teams: Марина Колючева, Виктор Ибрагимов, Курбанова Гулноз "
+#~ "Акмал Ватаншоев, Эркинҷон Пулатов, Довудӣ Гулшод"
+
+#~ msgid ""
+#~ "_: EMAIL OF TRANSLATORS\n"
+#~ "Your emails"
+#~ msgstr "youth_opportunities@tajik.net erkin_pulatov@mail.ru"
+
+#~ msgid "Enables/disables the toolbar"
+#~ msgstr "Пайраҳаи асбоби фаъол/ғайри фаъолро созед"
+
+#, fuzzy
+#~ msgid "Diff and Merge"
+#~ msgstr "Воситаи муқоиса ва якҷоя кардан"
+
+#, fuzzy
+#~ msgid "Save Directory Merge State ..."
+#~ msgstr "Хатогӣ дар вақти хониши каталог"
+
+#, fuzzy
+#~ msgid "Load Directory Merge State ..."
+#~ msgstr "Хатогӣ дар вақти хониши каталог"
+
+#, fuzzy
+#~ msgid "Synchronize Directories"
+#~ msgstr "Мушоҳидакунии каталогҳо..."
+
+#, fuzzy
+#~ msgid "Has no effect. For compatibility with certain tools."
+#~ msgstr ""
+#~ "Эзоҳ додани маълумоти файл.Барои мутобиқ будан бо асбобҳои муқаррар- шуда."
+
+#, fuzzy
+#~ msgid "For compatibility with certain tools."
+#~ msgstr ""
+#~ "Эзоҳ додани маълумоти файл.Барои мутобиқ будан бо асбобҳои муқаррар- шуда."
diff --git a/po/tr/CMakeLists.txt b/po/tr/CMakeLists.txt
new file mode 100644 (file)
index 0000000..c1344c9
--- /dev/null
@@ -0,0 +1,2 @@
+file(GLOB _po_files *.po)
+GETTEXT_PROCESS_PO_FILES(tr ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
diff --git a/po/tr/kdiff3.po b/po/tr/kdiff3.po
new file mode 100644 (file)
index 0000000..103bb96
--- /dev/null
@@ -0,0 +1,3093 @@
+# translation of kdiff3.po to
+# translation of kdiff3.po to turkish
+# translation of kdiff3.po to Türkçe
+# Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
+#
+# Görkem Çetin <gorkem@kde.org>, 2003.
+# Engin ÇAĞATAY <engincagatay@yahoo.com>, 2004.
+# Adem Alp Yıldız <ademalp@kde.org.tr>, 2005.
+# Alper Şen <aalpersen@gmail.com>, 2005.
+# Alper Sen <aalpersen@gmail.com>, 2005.
+# Serdar Soytetir <tulliana@gmail.com>, 2008, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2009-09-24 01:46+0300\n"
+"Last-Translator: Serdar Soytetir <tulliana@gmail.com>\n"
+"Language-Team: Turkish <yerellestirme@kde.org.tr>\n"
+"Language: tr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 0.3\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: kreplacements/kreplacements.h:105
+msgid "Continue"
+msgstr "Devam Et"
+
+#: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158
+#: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512
+msgid "Cancel"
+msgstr "İptal"
+
+#: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631
+msgid "Quit"
+msgstr "Çık"
+
+#: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339
+msgid "Ok"
+msgstr "Tamam"
+
+#: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715
+msgid "Help"
+msgstr "Yardım"
+
+#: kreplacements/kreplacements.cpp:185
+msgid "Defaults"
+msgstr "Öntanımlılar"
+
+#. i18n: file: kdiff3_shell.rc:4
+#. i18n: ectx: Menu (file)
+#: kreplacements/kreplacements.cpp:296 rc.cpp:14
+msgid "&File"
+msgstr "&Dosya"
+
+#: kreplacements/kreplacements.cpp:297
+msgid "&Edit"
+msgstr "Dü&zen"
+
+#. i18n: file: kdiff3_shell.rc:7
+#. i18n: ectx: Menu (directory)
+#: kreplacements/kreplacements.cpp:298 rc.cpp:17
+msgid "&Directory"
+msgstr "&Dizin"
+
+#. i18n: file: kdiff3_shell.rc:50
+#. i18n: ectx: Menu (movement)
+#: kreplacements/kreplacements.cpp:301 rc.cpp:26
+msgid "&Movement"
+msgstr "&Hareket"
+
+#. i18n: file: kdiff3_shell.rc:61
+#. i18n: ectx: Menu (diff)
+#: kreplacements/kreplacements.cpp:302 rc.cpp:29
+msgid "D&iffview"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:73
+#. i18n: ectx: Menu (merge)
+#: kreplacements/kreplacements.cpp:303 rc.cpp:32
+msgid "&Merge"
+msgstr "&Birleştir"
+
+#. i18n: file: kdiff3_shell.rc:95
+#. i18n: ectx: Menu (window)
+#: kreplacements/kreplacements.cpp:304 rc.cpp:35
+msgid "&Window"
+msgstr "&Pencere"
+
+#: kreplacements/kreplacements.cpp:305
+msgid "&Settings"
+msgstr "&Ayarlar"
+
+#: kreplacements/kreplacements.cpp:306
+msgid "&Help"
+msgstr "&Yardım"
+
+#: kreplacements/kreplacements.cpp:353
+msgid "&About"
+msgstr "&Hakkında"
+
+#: kreplacements/kreplacements.cpp:369
+msgid "A&uthor"
+msgstr "&Yazar"
+
+#: kreplacements/kreplacements.cpp:383
+msgid "&Thanks To"
+msgstr "&Teşekkürler"
+
+#. i18n: file: kdiff3_shell.rc:30
+#. i18n: ectx: Menu (dir_current_merge_menu)
+#: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497
+#: rc.cpp:20
+msgid "Current Item Merge Operation"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:38
+#. i18n: ectx: Menu (dir_current_sync_menu)
+#: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498
+#: rc.cpp:23
+msgid "Current Item Sync Operation"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:597
+msgid "Open"
+msgstr "Aç"
+
+#: kreplacements/kreplacements.cpp:606
+msgid "Save"
+msgstr "Kaydet"
+
+#: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720
+msgid "Save As..."
+msgstr "Farklı Kaydet..."
+
+#: kreplacements/kreplacements.cpp:623
+msgid "Print..."
+msgstr "Yazdır..."
+
+#: kreplacements/kreplacements.cpp:639
+msgid "Cut"
+msgstr "Kes"
+
+#: kreplacements/kreplacements.cpp:647
+msgid "Copy"
+msgstr "Kopyala"
+
+#: kreplacements/kreplacements.cpp:655
+msgid "Paste"
+msgstr "Yapıştır"
+
+#: kreplacements/kreplacements.cpp:663
+msgid "Select All"
+msgstr "Tümünü Seç"
+
+#: kreplacements/kreplacements.cpp:671
+msgid "Show Toolbar"
+msgstr "Araç Çubuğunu Göster"
+
+#: kreplacements/kreplacements.cpp:679
+msgid "Show &Status Bar"
+msgstr "&Durum Çubuğunu Göster"
+
+#: kreplacements/kreplacements.cpp:687
+#, kde-format
+msgid "&Configure %1..."
+msgstr "%1 Uygulamasını &Yapılandır..."
+
+#: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707
+msgid "About"
+msgstr "Hakkında"
+
+#: kreplacements/kreplacements.cpp:722
+msgid "Find"
+msgstr "Bul"
+
+#: kreplacements/kreplacements.cpp:730
+msgid "Find Next"
+msgstr "Sonrakini Bul"
+
+#: kreplacements/kreplacements.cpp:750
+msgid "Select Font"
+msgstr "Yazı Tipi Seç"
+
+#: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676
+msgid ""
+"You selected a variable width font.\n"
+"\n"
+"Because this program doesn't handle variable width fonts\n"
+"correctly, you might experience problems while editing.\n"
+"\n"
+"Do you want to continue or do you want to select another font."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:792
+msgid "Incompatible font."
+msgstr "Uyumsuz yazı tipi."
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Continue at my own risk"
+msgstr "Riski göze alarak devam et"
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Select another font"
+msgstr "Başka bir yazı tipi seç"
+
+#: kreplacements/kreplacements.cpp:1134
+msgid "For more documentation, see the help-menu or the subdirectory doc."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "KDiff3-Usage"
+msgstr "KDiff3-Kullanımı"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Ignore"
+msgstr "Yoksay"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Exit"
+msgstr "Çık"
+
+#: diff.cpp:251
+msgid "Writing clipboard data to temp file failed."
+msgstr "Geçici dosyaya pano verisi yazma başarısız."
+
+#: diff.cpp:255
+msgid "From Clipboard"
+msgstr "Panodan"
+
+#: diff.cpp:471
+msgid "Expecting space after closing quotation mark."
+msgstr ""
+
+#: diff.cpp:474
+msgid "Not matching quotation marks."
+msgstr ""
+
+#: diff.cpp:496
+msgid "Unexpected quotation mark within argument."
+msgstr ""
+
+#: diff.cpp:503
+msgid "No program specified."
+msgstr ""
+
+#: diff.cpp:605
+#, kde-format
+msgid ""
+"Preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The preprocessing command will be disabled now."
+msgstr ""
+"Önişleme başarısız oldu. Şu komutu inceleyin:\n"
+"\n"
+"  %1\n"
+"\n"
+"Önişleme komutu artık devre dışı bırakılacak."
+
+#: diff.cpp:653
+#, kde-format
+msgid ""
+"The line-matching-preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The line-matching-preprocessing command will be disabled now."
+msgstr ""
+"Satır-eşleme-önişleme başarısız oldu. Şu komutu inceleyin:\n"
+"\n"
+"  %1\n"
+"\n"
+"Satır-eşleme-önişleme komutu devre dışı bırakılacak."
+
+#: diff.cpp:1776 diff.cpp:1790
+#, fuzzy
+#| msgid ""
+#| "Data loss error:\n"
+#| "If it is reproducable please contact the author.\n"
+msgid ""
+"Data loss error:\n"
+"If it is reproducible please contact the author.\n"
+msgstr ""
+"Veri kaybı hatası:\n"
+"Bu durum tekrarlanabilir bir durumsa lütfen yazarla iletişim kurun.\n"
+
+#: diff.cpp:1778 diff.cpp:1792
+msgid "Severe Internal Error"
+msgstr "Ciddi Dahili Hata"
+
+#: directorymergewindow.cpp:136
+msgid "Mix of links and normal files."
+msgstr "Bağların ve normal dosyaların karışımı."
+
+#: directorymergewindow.cpp:143
+msgid "Link: "
+msgstr "Bağ: "
+
+#: directorymergewindow.cpp:151
+msgid "Size. "
+msgstr "Boyut. "
+
+#: directorymergewindow.cpp:164 directorymergewindow.cpp:174
+msgid "Date & Size: "
+msgstr "Tarih & Boyut: "
+
+#: directorymergewindow.cpp:184 directorymergewindow.cpp:190
+#, kde-format
+msgid "Creating temp copy of %1 failed."
+msgstr "%1 dosyasının geçici kopyasının oluşturulmasında hata oluştu."
+
+#: directorymergewindow.cpp:201 directorymergewindow.cpp:209
+#, kde-format
+msgid "Opening %1 failed."
+msgstr "%1 açılamadı."
+
+#: directorymergewindow.cpp:213
+msgid "Comparing file..."
+msgstr "Dosya karşılaştırılıyor..."
+
+#: directorymergewindow.cpp:223 directorymergewindow.cpp:229
+#, kde-format
+msgid "Error reading from %1"
+msgstr "%1 konumundan okunamıyor"
+
+#: directorymergewindow.cpp:358
+msgid "Name"
+msgstr "İsim"
+
+#: directorymergewindow.cpp:358
+msgid "Operation"
+msgstr "İşlem"
+
+#: directorymergewindow.cpp:358
+msgid "Status"
+msgstr "Durum"
+
+#: directorymergewindow.cpp:359
+msgid "Unsolved"
+msgstr "Çözülmemiş"
+
+#: directorymergewindow.cpp:359
+msgid "Solved"
+msgstr "Çözülmüş"
+
+#: directorymergewindow.cpp:359
+msgid "Nonwhite"
+msgstr "Beyaz değil"
+
+#: directorymergewindow.cpp:359
+msgid "White"
+msgstr "Beyaz"
+
+#: directorymergewindow.cpp:388
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort "
+"the merge and rescan the directory?"
+msgstr ""
+"Şu anda bir dizin birleştirmesi yapıyorsunuz. Birleştirmeden çıkmak ve "
+"dizini yeniden taramak istediğinizden emin misiniz?"
+
+#: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655
+#: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823
+msgid "Warning"
+msgstr "Uyarı"
+
+#: directorymergewindow.cpp:390 directorymergewindow.cpp:2965
+msgid "Rescan"
+msgstr "Yeniden Tara"
+
+#: directorymergewindow.cpp:391 pdiff.cpp:1081
+msgid "Continue Merging"
+msgstr "Birleştirmeye Devam Et"
+
+#: directorymergewindow.cpp:548
+msgid "Opening of directories failed:"
+msgstr "Dizinler açılamadı:"
+
+#: directorymergewindow.cpp:551
+#, kde-format
+msgid "Dir A \"%1\" does not exist or is not a directory.\n"
+msgstr "A Dizini \"%1\" mevcut değil ya da bu bir dizin değil.\n"
+
+#: directorymergewindow.cpp:554
+#, kde-format
+msgid "Dir B \"%1\" does not exist or is not a directory.\n"
+msgstr "B Dizini \"%1\" mevcut değil ya da bu bir dizin değil.\n"
+
+#: directorymergewindow.cpp:557
+#, kde-format
+msgid "Dir C \"%1\" does not exist or is not a directory.\n"
+msgstr "C Dizini \"%1\" mevcut değil ya da bu bir dizin değil.\n"
+
+#: directorymergewindow.cpp:559
+msgid "Directory Open Error"
+msgstr "Dizin Açma Hatası"
+
+#: directorymergewindow.cpp:567
+msgid ""
+"The destination directory must not be the same as A or B when three "
+"directories are merged.\n"
+"Check again before continuing."
+msgstr ""
+"3 dizin birleştirilirken hedef dizin A ya da B ile aynı olmamalıdır.\n"
+"Devam etmeden önce kontrol ediniz."
+
+#: directorymergewindow.cpp:569
+msgid "Parameter Warning"
+msgstr "Parametre Uyarısı"
+
+#: directorymergewindow.cpp:574
+msgid "Scanning directories..."
+msgstr "Dizinler taranıyor..."
+
+#: directorymergewindow.cpp:607
+msgid "Reading Directory A"
+msgstr "A Dizini Okunuyor"
+
+#: directorymergewindow.cpp:629
+msgid "Reading Directory B"
+msgstr "B Dizini Okunuyor"
+
+#: directorymergewindow.cpp:651
+msgid "Reading Directory C"
+msgstr "C Dizini Okunuyor"
+
+#: directorymergewindow.cpp:677
+msgid "Some subdirectories were not readable in"
+msgstr "Bazı altdizinler okunabilir değildi"
+
+#: directorymergewindow.cpp:682
+msgid "Check the permissions of the subdirectories."
+msgstr "Altdizinlerin izinlerini kontrol ediniz."
+
+#: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737
+#: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233
+#: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328
+msgid "Ready."
+msgstr "Hazır."
+
+#: directorymergewindow.cpp:735
+msgid "Directory Comparison Status"
+msgstr "Dizin Karşılaştırma Durumu"
+
+#: directorymergewindow.cpp:736
+msgid "Number of subdirectories:"
+msgstr "Altdizinlerin sayısı:"
+
+#: directorymergewindow.cpp:737
+msgid "Number of equal files:"
+msgstr "Eşit dosyaların sayısı:"
+
+#: directorymergewindow.cpp:738
+msgid "Number of different files:"
+msgstr "Farklı dosyaların sayısı:"
+
+#: directorymergewindow.cpp:741
+msgid "Number of manual merges:"
+msgstr "El ile birleştirmelerin sayısı:"
+
+#: directorymergewindow.cpp:912
+msgid "This affects all merge operations."
+msgstr "Bu, tüm birleştirme işlemlerini etkiler."
+
+#: directorymergewindow.cpp:913
+msgid "Changing All Merge Operations"
+msgstr "Tüm Birleştirme İşlemleri Değiştiriliyor"
+
+#: directorymergewindow.cpp:1312
+msgid "Processing "
+msgstr "İşleniyor"
+
+#: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742
+msgid "To do."
+msgstr "Yapılacak."
+
+#: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996
+msgid "Copy A to B"
+msgstr "A'yı B'ye kopyala"
+
+#: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997
+msgid "Copy B to A"
+msgstr "B'yi A'ya kopyala"
+
+#: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998
+msgid "Delete A"
+msgstr "A'yı Sil"
+
+#: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999
+msgid "Delete B"
+msgstr "B'yi Sil"
+
+#: directorymergewindow.cpp:1814
+msgid "Delete A & B"
+msgstr "A ve B'yi Sil"
+
+#: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001
+msgid "Merge to A"
+msgstr "A ile Birleştir"
+
+#: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002
+msgid "Merge to B"
+msgstr "B ile Birleştir"
+
+#: directorymergewindow.cpp:1817
+msgid "Merge to A & B"
+msgstr "A ve B ile Birleştir"
+
+#: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993
+msgid "Delete (if exists)"
+msgstr "(varsa) Sil"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+#: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869
+msgid "Merge"
+msgstr "Birleştir"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+msgid "Merge (manual)"
+msgstr "Birleştir (el ile)"
+
+#: directorymergewindow.cpp:1824
+msgid "Error: Conflicting File Types"
+msgstr "Hata: Çakışan Dosya Türleri"
+
+#: directorymergewindow.cpp:1825
+msgid "Error: Changed and Deleted"
+msgstr ""
+
+#: directorymergewindow.cpp:1826
+msgid "Error: Dates are equal but files are not."
+msgstr "Hata: Tarihler aynı fakat dosyalar aynı değil."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906
+msgid "This operation is currently not possible."
+msgstr "Bu işlem şu anda yapılabilir değil."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174
+msgid "Operation Not Possible"
+msgstr "İşlem Yapılabilir Değil"
+
+#: directorymergewindow.cpp:1945
+msgid ""
+"This should never happen: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"If you know how to reproduce this, please contact the program author."
+msgstr ""
+"Bu, hiç oluşmamalı: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"Bu durumun nasıl tekrarlanacağını biliyorsanız, lütfen uygulamanın yazarıyla "
+"iletişime geçin."
+
+#: directorymergewindow.cpp:1945
+msgid "Program Error"
+msgstr "Uygulama Hatası"
+
+#: directorymergewindow.cpp:1956
+msgid "An error occurred while copying.\n"
+msgstr "Koplayanırken hata oluştu.\n"
+
+#: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025
+#: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105
+#: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123
+#: directorymergewindow.cpp:2374
+msgid "Error"
+msgstr "Hata"
+
+#: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375
+msgid "Merge Error"
+msgstr "Birleştirme Hatası"
+
+#: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380
+msgid "Error."
+msgstr "Hata."
+
+#: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272
+#: directorymergewindow.cpp:2312
+msgid "Done."
+msgstr "Tamamlandı."
+
+#: directorymergewindow.cpp:1990
+msgid "Not saved."
+msgstr "Kaydedilmedi."
+
+#: directorymergewindow.cpp:2025
+msgid "Unknown merge operation. (This must never happen!)"
+msgstr "Bilinmeyen birleştirme işlemi. (Bu, hiçbir zaman oluşmamalı!)"
+
+#: directorymergewindow.cpp:2057
+msgid "Unknown merge operation."
+msgstr "Bilinmeyen birleştirme işlemi."
+
+#: directorymergewindow.cpp:2072
+msgid ""
+"The merge is about to begin.\n"
+"\n"
+"Choose \"Do it\" if you have read the instructions and know what you are "
+"doing.\n"
+"Choosing \"Simulate it\" will tell you what would happen.\n"
+"\n"
+"Be aware that this program still has beta status and there is NO WARRANTY "
+"whatsoever! Make backups of your vital data!"
+msgstr ""
+"Birleştirme başlamak üzere.\n"
+"\n"
+"Açıklamaları okuduysanız ve ne yaptığınızı biliyorsanız \"Yap\"ı seçin.\n"
+"\"Dene\"yi seçmek size ne olabileceğini gösterir.\n"
+"\n"
+"Bu uygulama hala beta durumundadır ve ne olursa olsun hiçbir GARANTİSİ "
+"YOKTUR! Önemli verilerinizin yedeğini alın!!"
+
+#: directorymergewindow.cpp:2077
+msgid "Starting Merge"
+msgstr "Birleştirme Başlıyor"
+
+#: directorymergewindow.cpp:2078
+msgid "Do It"
+msgstr "Yap"
+
+#: directorymergewindow.cpp:2079
+msgid "Simulate It"
+msgstr "Dene"
+
+#: directorymergewindow.cpp:2105
+msgid ""
+"The highlighted item has a different type in the different directories. "
+"Select what to do."
+msgstr ""
+"Renklendirilmiş nesne, değişik dizinlerde değişik dosya türüne sahip. Ne "
+"yapılacağını seçiniz."
+
+#: directorymergewindow.cpp:2114
+msgid ""
+"The modification dates of the file are equal but the files are not. Select "
+"what to do."
+msgstr ""
+"Dosyaların değiştirilme tarihleri aynı fakat dosyalar aynı değil. Ne "
+"yapılacağını seçiniz."
+
+#: directorymergewindow.cpp:2123
+msgid ""
+"The highlighted item was changed in one directory and deleted in the other. "
+"Select what to do."
+msgstr ""
+
+#: directorymergewindow.cpp:2174
+msgid ""
+"This operation is currently not possible because directory merge is "
+"currently running."
+msgstr ""
+"Bu işlem şu anda yapılamaz çünkü dizin birleştirmesi hala devam ediyor."
+
+#: directorymergewindow.cpp:2234
+msgid ""
+"There was an error in the last step.\n"
+"Do you want to continue with the item that caused the error or do you want "
+"to skip this item?"
+msgstr ""
+"Son adımda bir hata oluştu.\n"
+"Hata oluşturan nesne ile devam etmek mi yoksa bu nesneyi atlamak mı "
+"istiyorsunuz?"
+
+#: directorymergewindow.cpp:2236
+msgid "Continue merge after an error"
+msgstr "Bir hatadan sonra birleştirmeye devam et"
+
+#: directorymergewindow.cpp:2237
+msgid "Continue With Last Item"
+msgstr "Son Nesne ile Devam Et"
+
+#: directorymergewindow.cpp:2238
+msgid "Skip Item"
+msgstr "Nesneyi Atla"
+
+#: directorymergewindow.cpp:2272
+msgid "Skipped."
+msgstr "Atlandı"
+
+#: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493
+msgid "In progress..."
+msgstr "Uygulanıyor..."
+
+#: directorymergewindow.cpp:2327
+msgid "Merge operation complete."
+msgstr "Birleştirme işlemi tamamlandı."
+
+#: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330
+msgid "Merge Complete"
+msgstr "Birleştirme Tamamlandı"
+
+#: directorymergewindow.cpp:2340
+msgid ""
+"Simulated merge complete: Check if you agree with the proposed operations."
+msgstr ""
+
+#: directorymergewindow.cpp:2374
+msgid "An error occurred. Press OK to see detailed information.\n"
+msgstr "Bir hata oluştu. Detaylı bilgi görmek için Tamam düğmesine basın.\n"
+
+#: directorymergewindow.cpp:2406
+#, kde-format
+msgid "Error: While deleting %1: Creating backup failed."
+msgstr "Hata: %1 silinirken oluştu: Yedek alınamadı."
+
+#: directorymergewindow.cpp:2413
+#, kde-format
+msgid "delete directory recursively( %1 )"
+msgstr "dizini özyinelemeli olarak sil( %1 )"
+
+#: directorymergewindow.cpp:2415
+#, kde-format
+msgid "delete( %1 )"
+msgstr "sil( %1 )"
+
+#: directorymergewindow.cpp:2430
+msgid "Error: delete dir operation failed while trying to read the directory."
+msgstr "Hata: dizin okunmaya çalışırken dizini silme işlemi başarısız oldu."
+
+#: directorymergewindow.cpp:2449
+#, kde-format
+msgid "Error: rmdir( %1 ) operation failed."
+msgstr "Hata: rmdir( %1 ) işlemi başarısız oldu."
+
+#: directorymergewindow.cpp:2459
+msgid "Error: delete operation failed."
+msgstr "Hata: silme işlemi başarısız oldu."
+
+#: directorymergewindow.cpp:2485
+#, kde-format
+msgid "manual merge( %1, %2, %3 -> %4)"
+msgstr "el ile birleştir( %1, %2, %3 -> %4)"
+
+#: directorymergewindow.cpp:2488
+msgid ""
+"     Note: After a manual merge the user should continue by pressing F7."
+msgstr ""
+"     Not: El ile birleştirmeden sonra kullanıcı F7 ile devam etmelidir."
+
+#: directorymergewindow.cpp:2513
+#, kde-format
+msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed."
+msgstr ""
+"Hata: kopyala( %1 -> %2) başarısız oldu. Mevcut hedefin silinmesi başarısız "
+"oldu."
+
+#: directorymergewindow.cpp:2522
+#, kde-format
+msgid "copyLink( %1 -> %2 )"
+msgstr "BağıKopyala( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2533
+msgid "Error: copyLink failed: Remote links are not yet supported."
+msgstr "Hata: BağıKopyala başarısız oldu: Uzak bağlar henüz desteklenmiyor."
+
+#: directorymergewindow.cpp:2539
+msgid "Error: copyLink failed."
+msgstr "Hata: BağıKopyala başarısız oldu."
+
+#: directorymergewindow.cpp:2564
+#, kde-format
+msgid "copy( %1 -> %2 )"
+msgstr "kopyala( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2590
+#, kde-format
+msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination."
+msgstr ""
+"Yeniden isimlendirilirken ( %1 -> %2 ) hata oluştu: Mevcut hedef silinemiyor."
+
+#: directorymergewindow.cpp:2596
+#, kde-format
+msgid "rename( %1 -> %2 )"
+msgstr "yeniden isimlendir( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2605
+msgid "Error: Rename failed."
+msgstr "Hata: Yeniden isimlendirme başarısız oldu."
+
+#: directorymergewindow.cpp:2623
+#, kde-format
+msgid "Error during makeDir of %1. Cannot delete existing file."
+msgstr "%1 klasörü oluşturulurken hata: Mevcut dosya silinemiyor."
+
+#: directorymergewindow.cpp:2639
+#, kde-format
+msgid "makeDir( %1 )"
+msgstr "dizin oluştur( %1 )"
+
+#: directorymergewindow.cpp:2649
+msgid "Error while creating directory."
+msgstr "Dizin oluşturulması sırasında hata oluştu."
+
+#: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784
+msgid "Dest"
+msgstr "Hedef"
+
+#: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709
+msgid "Dir"
+msgstr "Dizin"
+
+#: directorymergewindow.cpp:2678
+msgid "Type"
+msgstr "Tür"
+
+#: directorymergewindow.cpp:2678
+msgid "Size"
+msgstr "Boyut"
+
+#: directorymergewindow.cpp:2679
+msgid "Attr"
+msgstr "Özellikler"
+
+#: directorymergewindow.cpp:2679
+msgid "Last Modification"
+msgstr "Son Değiştirme"
+
+#: directorymergewindow.cpp:2679
+msgid "Link-Destination"
+msgstr "Bağ-Hedefi"
+
+#: directorymergewindow.cpp:2709 difftextwindow.cpp:401
+msgid "File"
+msgstr "Dosya"
+
+#: directorymergewindow.cpp:2726
+msgid "not available"
+msgstr "mümkün değil"
+
+#: directorymergewindow.cpp:2746
+msgid "A (Dest): "
+msgstr "A (Hedef):"
+
+#: directorymergewindow.cpp:2749
+msgid "A (Base): "
+msgstr "A (Temel): "
+
+#: directorymergewindow.cpp:2755
+msgid "B (Dest): "
+msgstr "B (Hedef): "
+
+#: directorymergewindow.cpp:2763
+msgid "C (Dest): "
+msgstr "C (Hedef): "
+
+#: directorymergewindow.cpp:2769
+msgid "Dest: "
+msgstr "Hedef: "
+
+#: directorymergewindow.cpp:2836
+msgid "Save Directory Merge State As..."
+msgstr "Dizin Birleştirme Durumunu Farklı Kaydet..."
+
+#: directorymergewindow.cpp:2959
+msgid "Start/Continue Directory Merge"
+msgstr "Dizin Birleştirmesini Başlat/Devam Et"
+
+#: directorymergewindow.cpp:2960
+msgid "Run Operation for Current Item"
+msgstr "Mevcut Nesne için İşlem Başlat"
+
+#: directorymergewindow.cpp:2961
+msgid "Compare Selected File"
+msgstr "Seçili Dosyayı Karşılaştır"
+
+#: directorymergewindow.cpp:2962
+msgid "Merge Current File"
+msgstr "Mevcut Dosyayı Birleştir"
+
+#: directorymergewindow.cpp:2962
+msgid ""
+"Merge\n"
+"File"
+msgstr ""
+"Birleştir\n"
+"Dosya"
+
+#: directorymergewindow.cpp:2963
+msgid "Fold All Subdirs"
+msgstr "Tüm Alt Dizinleri Kapat"
+
+#: directorymergewindow.cpp:2964
+msgid "Unfold All Subdirs"
+msgstr "Tüm Alt Dizinleri Aç"
+
+#: directorymergewindow.cpp:2968
+msgid "Choose A for All Items"
+msgstr "Tüm Nesneler için A'yı Seç"
+
+#: directorymergewindow.cpp:2969
+msgid "Choose B for All Items"
+msgstr "Tüm Nesneler için B'yi Seç"
+
+#: directorymergewindow.cpp:2970
+msgid "Choose C for All Items"
+msgstr "Tüm Nesneler için C'yi Seç"
+
+#: directorymergewindow.cpp:2971
+msgid "Auto-Choose Operation for All Items"
+msgstr "Tüm Nesneler için Atomatik-Seçim İşlemi"
+
+#: directorymergewindow.cpp:2972
+msgid "No Operation for All Items"
+msgstr "Tüm Nesneler için Hiçbir Seçim"
+
+#: directorymergewindow.cpp:2977
+msgid "Show Identical Files"
+msgstr "Özdeş Dosyaları Göster"
+
+#: directorymergewindow.cpp:2977
+msgid ""
+"Identical\n"
+"Files"
+msgstr ""
+"Özdeş\n"
+"Dosyalar"
+
+#: directorymergewindow.cpp:2978
+msgid "Show Different Files"
+msgstr "Farklı Dosyaları Göster"
+
+#: directorymergewindow.cpp:2979
+msgid "Show Files only in A"
+msgstr ""
+
+#: directorymergewindow.cpp:2979
+msgid ""
+"Files\n"
+"only in A"
+msgstr ""
+
+#: directorymergewindow.cpp:2980
+msgid "Show Files only in B"
+msgstr ""
+
+#: directorymergewindow.cpp:2980
+msgid ""
+"Files\n"
+"only in B"
+msgstr ""
+
+#: directorymergewindow.cpp:2981
+msgid "Show Files only in C"
+msgstr ""
+
+#: directorymergewindow.cpp:2981
+msgid ""
+"Files\n"
+"only in C"
+msgstr ""
+
+#: directorymergewindow.cpp:2985
+msgid "Compare Explicitly Selected Files"
+msgstr "Seçilen Dosyaları Karşılaştır"
+
+#: directorymergewindow.cpp:2986
+msgid "Merge Explicitly Selected Files"
+msgstr "Seçilen Dosyaları Birleştir"
+
+#: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995
+msgid "Do Nothing"
+msgstr "Bir Şey Yapma"
+
+#: directorymergewindow.cpp:2989
+msgid "A"
+msgstr "A"
+
+#: directorymergewindow.cpp:2990
+msgid "B"
+msgstr "B"
+
+#: directorymergewindow.cpp:2991
+msgid "C"
+msgstr "C"
+
+#: directorymergewindow.cpp:3000
+msgid "Delete A && B"
+msgstr "A && B'yi Sil"
+
+#: directorymergewindow.cpp:3003
+msgid "Merge to A && B"
+msgstr "A && B ile Birleştir"
+
+#: main.cpp:74 main.cpp:76
+msgid "Ignored. (User defined.)"
+msgstr ""
+
+#: main.cpp:162
+msgid "kdiff3"
+msgstr "kdiff3"
+
+#: main.cpp:164
+msgid "Tool for Comparison and Merge of Files and Directories"
+msgstr ""
+
+#: main.cpp:165
+#, fuzzy
+#| msgid "(c) 2002-2009 Joachim Eibl"
+msgid "(c) 2002-2011 Joachim Eibl"
+msgstr "(c) 2002-2009 Joachim Eibl"
+
+#: main.cpp:172 kdiff3_part.cpp:303
+msgid "Joachim Eibl"
+msgstr "Joachim Eibl"
+
+#: main.cpp:173
+msgid "Eike Sauer"
+msgstr "Eike Sauer"
+
+#: main.cpp:173
+msgid "Bugfixes, Debian package maintainer"
+msgstr ""
+
+#: main.cpp:174
+msgid "Sebastien Fricker"
+msgstr "Sebastien Fricker"
+
+#: main.cpp:174
+msgid "Windows installer"
+msgstr "Windows yükleyici"
+
+#: main.cpp:175
+msgid "Stephan Binner"
+msgstr "Stephan Binner"
+
+#: main.cpp:175
+msgid "i18n-help"
+msgstr "i18n-yardımı"
+
+#: main.cpp:176
+msgid "Stefan Partheymueller"
+msgstr "Stefan Partheymueller"
+
+#: main.cpp:176
+msgid "Clipboard-patch"
+msgstr "Pano-yaması"
+
+#: main.cpp:177
+msgid "David Faure"
+msgstr "David Faure"
+
+#: main.cpp:177
+msgid "KIO-Help"
+msgstr "KIO-Yardımı"
+
+#: main.cpp:178
+msgid "Bernd Gehrmann"
+msgstr "Bernd Gehrmann"
+
+#: main.cpp:178
+msgid "Class CvsIgnoreList from Cervisia"
+msgstr ""
+
+#: main.cpp:179
+msgid "Andre Woebbeking"
+msgstr "Andre Woebbeking"
+
+#: main.cpp:179
+msgid "Class StringMatcher"
+msgstr ""
+
+#: main.cpp:180
+msgid "Michael Denio"
+msgstr "Michael Denio"
+
+#: main.cpp:180
+msgid "Directory Equality-Coloring patch"
+msgstr "Dizin Denklik-Renklendirmesi yaması"
+
+#: main.cpp:181
+msgid "Manfred Koehler"
+msgstr "Manfred Koehler"
+
+#: main.cpp:181
+msgid "Fix for slow startup on Windows"
+msgstr ""
+
+#: main.cpp:182
+msgid "Sergey Zorin"
+msgstr "Sergey Zorin"
+
+#: main.cpp:182
+msgid "Diff Ext for Windows"
+msgstr ""
+
+#: main.cpp:183
+msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+
+#: main.cpp:183
+msgid "GNU-Diffutils"
+msgstr "GNU-Diffutils"
+
+#: main.cpp:184
+msgid "Tino Boellsterling, Timothy Mee"
+msgstr "Tino Boellsterling, Timothy Mee"
+
+#: main.cpp:184
+msgid "Intensive test, use and feedback"
+msgstr ""
+
+#: main.cpp:185
+msgid "Michael Schmidt"
+msgstr "Michael Schmidt"
+
+#: main.cpp:185
+msgid "Mac support"
+msgstr "Mac desteği"
+
+#: main.cpp:186
+msgid "Valentin Rusu"
+msgstr "Valentin Rusu"
+
+#: main.cpp:186 main.cpp:187
+msgid "KDE4 porting"
+msgstr "KDE4 geçişi"
+
+#: main.cpp:187
+msgid "Albert Astals Cid"
+msgstr "Albert Astals Cid"
+
+#: main.cpp:188
+msgid "Silvan Scherrer"
+msgstr ""
+
+#: main.cpp:188
+msgid "OS2 port"
+msgstr ""
+
+#: main.cpp:190
+msgid "+ Many thanks to those who reported bugs and contributed ideas!"
+msgstr ""
+
+#: main.cpp:196
+msgid "Merge the input."
+msgstr "Girdiyi birleştir."
+
+#: main.cpp:197
+msgid "Explicit base file. For compatibility with certain tools."
+msgstr ""
+
+#: main.cpp:198
+msgid "Output file. Implies -m. E.g.: -o newfile.txt"
+msgstr ""
+
+#: main.cpp:199
+msgid "Output file, again. (For compatibility with certain tools.)"
+msgstr ""
+
+#: main.cpp:200
+msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)"
+msgstr ""
+
+#: main.cpp:201
+msgid "Don't solve conflicts automatically. (For compatibility...)"
+msgstr "Çakışmaları otomatik çözme. (Uyumluluk için...)"
+
+#: main.cpp:202
+msgid "Visible name replacement for input file 1 (base)."
+msgstr ""
+
+#: main.cpp:203
+msgid "Visible name replacement for input file 2."
+msgstr ""
+
+#: main.cpp:204
+msgid "Visible name replacement for input file 3."
+msgstr ""
+
+#: main.cpp:205
+msgid "Alternative visible name replacement. Supply this once for every input."
+msgstr ""
+
+#: main.cpp:206
+msgid ""
+"Override a config setting. Use once for every setting. E.g.: --cs "
+"\"AutoAdvance=1\""
+msgstr ""
+
+#: main.cpp:207
+msgid "Show list of config settings and current values."
+msgstr ""
+
+#: main.cpp:208
+msgid "Use a different config file."
+msgstr "Farklı bir yapılandırma dosyası kullan."
+
+#: main.cpp:211
+msgid "file1 to open (base, if not specified via --base)"
+msgstr ""
+
+#: main.cpp:212
+msgid "file2 to open"
+msgstr "açılacak ikinci dosya"
+
+#: main.cpp:213
+msgid "file3 to open"
+msgstr "açılacak üçüncü dosya"
+
+#: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976
+#: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002
+#: mergeresultwindow.cpp:1014
+#, kde-format
+msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)"
+msgstr "Bekleyen çözülmeyen çakışmaların sayısı: %1 (%2 beyaz alan)"
+
+#: mergeresultwindow.cpp:303
+msgid ""
+"The output has been modified.\n"
+"If you continue your changes will be lost."
+msgstr ""
+"Çıktı üzerinde değişiklik yapıldı.\n"
+"Devam ederseniz değişiklikleri kaybedeceksiniz."
+
+#: mergeresultwindow.cpp:834 pdiff.cpp:532
+msgid "All input files are binary equal."
+msgstr ""
+
+#: mergeresultwindow.cpp:836
+msgid "All input files contain the same text."
+msgstr "Tüm girdi dosyaları aynı metni içeriyor."
+
+#: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840
+#: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540
+#, kde-format
+msgid "Files %1 and %2 are binary equal.\n"
+msgstr "%1 ve %2 dosyaları ikili olarak denk.\n"
+
+#: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841
+#: mergeresultwindow.cpp:843
+#, kde-format
+msgid "Files %1 and %2 have equal text.\n"
+msgstr "%1 ve %2 dosyaları aynı metne sahip. \n"
+
+#: mergeresultwindow.cpp:849
+msgid "Total number of conflicts: "
+msgstr "Toplam çakışma sayısı: "
+
+#: mergeresultwindow.cpp:850
+msgid ""
+"\n"
+"Nr of automatically solved conflicts: "
+msgstr ""
+"\n"
+"Otomatik çözülen çakışmaların sayısı: "
+
+#: mergeresultwindow.cpp:851
+msgid ""
+"\n"
+"Nr of unsolved conflicts: "
+msgstr ""
+"\n"
+"Çözülmeyen çakışmaların sayısı: "
+
+#: mergeresultwindow.cpp:853
+msgid "Conflicts"
+msgstr "Çakışmalar"
+
+#: mergeresultwindow.cpp:1728
+msgid "<No src line>"
+msgstr "<Kaynak Satır Yok>"
+
+#: mergeresultwindow.cpp:1736
+msgid "<Merge Conflict (Whitespace only)>"
+msgstr ""
+
+#: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517
+msgid "<Merge Conflict>"
+msgstr "<Birleştirme Çakışması>"
+
+#: mergeresultwindow.cpp:2725
+msgid ""
+"Not all conflicts are solved yet.\n"
+"File not saved.\n"
+msgstr ""
+"Daha tüm çakışmalar çözülmedi.\n"
+"Dosya kaydedilmedi.\n"
+
+#: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736
+msgid "Conflicts Left"
+msgstr "Çakışmalar Var"
+
+#: mergeresultwindow.cpp:2734
+msgid ""
+"There is a line end style conflict. Please choose the line end style "
+"manually.\n"
+"File not saved.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:2748
+msgid ""
+"\n"
+"\n"
+"Creating backup failed. File not saved."
+msgstr ""
+
+#: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792
+msgid "File Save Error"
+msgstr "Dosya Kaydetme Hatası"
+
+#: mergeresultwindow.cpp:2792
+msgid "Error while writing."
+msgstr "Yazılırken hata oluştu."
+
+#: mergeresultwindow.cpp:3122
+msgid "Output"
+msgstr "Çıktı"
+
+#: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314
+msgid "[Modified]"
+msgstr "[Değişiklik Yapıldı]"
+
+#: mergeresultwindow.cpp:3141
+msgid "Encoding for saving"
+msgstr "Kaydetme kodlaması"
+
+#: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737
+#: optiondialog.cpp:762
+msgid "Line end style:"
+msgstr "Satır ve biçim:"
+
+#: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767
+msgid "Unix"
+msgstr "Unix"
+
+#: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737
+msgid "DOS"
+msgstr "DOS"
+
+#: mergeresultwindow.cpp:3229
+msgid "Conflict"
+msgstr "Çakışma"
+
+#: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263
+#: mergeresultwindow.cpp:3265
+msgid "Codec from"
+msgstr ""
+
+#: kdiff3_part.cpp:157 kdiff3_part.cpp:234
+msgid "Couldn't find files for comparison."
+msgstr "Karşılaştırılacak dosya bulunamadı."
+
+#: kdiff3_part.cpp:302
+msgid "KDiff3Part"
+msgstr "KDiff3Part"
+
+#: fileaccess.cpp:612
+msgid ""
+"While trying to make a backup, deleting an older backup failed. \n"
+"Filename: "
+msgstr ""
+"Yedekleme yapılırken, eski bir yedeğin silinmesi başarısız oldu.\n"
+"Dosya adı: "
+
+#: fileaccess.cpp:619
+msgid ""
+"While trying to make a backup, renaming failed. \n"
+"Filenames: "
+msgstr ""
+"Yedekleme yapılırken, yeniden isimlendirme başarısız oldu.\n"
+"Dosya adları: "
+
+#: fileaccess.cpp:643
+#, kde-format
+msgid "Getting file status: %1"
+msgstr "Dosya durumu okunuyor: %1"
+
+#: fileaccess.cpp:686
+#, kde-format
+msgid "Reading file: %1"
+msgstr "Dosya okunuyor: %1"
+
+#: fileaccess.cpp:723
+#, kde-format
+msgid "Writing file: %1"
+msgstr "Dosya yazılıyor: %1"
+
+#: fileaccess.cpp:751
+msgid "Out of memory"
+msgstr "Hafıza yetersizliği"
+
+#: fileaccess.cpp:786
+#, kde-format
+msgid "Making directory: %1"
+msgstr "Dizin oluşturuluyor: %1"
+
+#: fileaccess.cpp:806
+#, kde-format
+msgid "Removing directory: %1"
+msgstr "Dizin siliniyor: %1"
+
+#: fileaccess.cpp:821
+#, kde-format
+msgid "Removing file: %1"
+msgstr "Dosya siliniyor: %1"
+
+#: fileaccess.cpp:837
+#, kde-format
+msgid "Creating symbolic link: %1 -> %2"
+msgstr "Sembolik bağ oluşturuluyor: %1 -> %2"
+
+#: fileaccess.cpp:864
+#, kde-format
+msgid "Renaming file: %1 -> %2"
+msgstr "Dosya yeniden isimlendiriliyor: %1 -> %2"
+
+#: fileaccess.cpp:897
+#, kde-format
+msgid "Copying file: %1 -> %2"
+msgstr "Dosya kopyalanıyor: %1 -> %2"
+
+#: fileaccess.cpp:911
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for reading failed. Filename: "
+"%1"
+msgstr ""
+"Dosya kopyalanırken hata oluştu: Dosya okunmak için açılamadı. Dosya adı: %1"
+
+#: fileaccess.cpp:917
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for writing failed. Filename: "
+"%1"
+msgstr ""
+"Dosya kopyalanırken hata oluştu: Dosya yazılmak için açılamadı. Dosya adı: %1"
+
+#: fileaccess.cpp:932
+#, kde-format
+msgid "Error during file copy operation: Reading failed. Filename: %1"
+msgstr "Dosya kopyalanırken hata oluştu: Okunamadı. Dosya adı: %1"
+
+#: fileaccess.cpp:941
+#, kde-format
+msgid "Error during file copy operation: Writing failed. Filename: %1"
+msgstr "Dosya kopyalanırken hata oluştu: Yazılamadı. Dosya adı: %1"
+
+#: fileaccess.cpp:1231
+msgid "Reading directory: "
+msgstr "Okuma dizini: "
+
+#: fileaccess.cpp:1355
+#, kde-format
+msgid "Listing directory: %1"
+msgstr "Listeleme dizini: %1"
+
+#: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396
+msgid "&Cancel"
+msgstr "&İptal"
+
+#: difftextwindow.cpp:403
+msgid "Line"
+msgstr "Satır"
+
+#: difftextwindow.cpp:405
+msgid "Line not available"
+msgstr "Satır kullanılabilir değil"
+
+#: difftextwindow.cpp:1703 difftextwindow.cpp:1736
+msgid "Encoding:"
+msgstr "Kodlama:"
+
+#: difftextwindow.cpp:1759 kdiff3.cpp:831
+msgid "Top line"
+msgstr "En üst satır"
+
+#: difftextwindow.cpp:1769
+msgid "End"
+msgstr "Son"
+
+#: kdiff3.cpp:169
+msgid "Current Configuration:"
+msgstr "Geçerli Yapılandırma:"
+
+#: kdiff3.cpp:174
+msgid "Config Option Error:"
+msgstr "Yapılandırma Seçeneği Hatası:"
+
+#: kdiff3.cpp:219
+msgid "Option --auto used, but no output file specified."
+msgstr "--auto seçeneği kullanıldı, fakat çıktı dosyası belirtilmedi."
+
+#: kdiff3.cpp:369
+msgid "Option --auto ignored for directory comparison."
+msgstr "--auto seçeneği dizin karşılaştırmasını reddetti."
+
+#: kdiff3.cpp:405
+msgid "Saving failed."
+msgstr "Kaydetme başarısız oldu."
+
+#: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214
+msgid "Opening of these files failed:"
+msgstr "Şu dosyaların açılması başarısız oldu:"
+
+#: kdiff3.cpp:449
+msgid "File Open Error"
+msgstr "Dosya Açma Hatası"
+
+#: kdiff3.cpp:477
+msgid "Opens documents for comparison..."
+msgstr "Karşılaştırmak için belge açar..."
+
+#: kdiff3.cpp:479
+msgid "Reload"
+msgstr "Yeniden Yükle"
+
+#: kdiff3.cpp:482
+msgid "Saves the merge result. All conflicts must be solved!"
+msgstr "Birleştirme sonuçlarını kaydeder. Tüm çakışmalar çözülmelidir!"
+
+#: kdiff3.cpp:484
+msgid "Saves the current document as..."
+msgstr "Mevcut belgeyi farklı kaydeder..."
+
+#: kdiff3.cpp:487
+msgid "Print the differences"
+msgstr "Farkları yazdır"
+
+#: kdiff3.cpp:490
+msgid "Quits the application"
+msgstr "Uygulamadan çıkar"
+
+#: kdiff3.cpp:492
+msgid "Cuts the selected section and puts it to the clipboard"
+msgstr "Seçili bölümü keser ve panoya koyar"
+
+#: kdiff3.cpp:494
+msgid "Copies the selected section to the clipboard"
+msgstr "Seçili bölümü panoya kopyalar"
+
+#: kdiff3.cpp:496
+#, fuzzy
+#| msgid "Pastes the clipboard contents to actual position"
+msgid "Pastes the clipboard contents to current position"
+msgstr "Pano içeriklerini mevcut alana yapıştırır"
+
+#: kdiff3.cpp:498
+msgid "Select everything in current window"
+msgstr "Geçerli penceredeki herşeyi seç"
+
+#: kdiff3.cpp:500
+msgid "Search for a string"
+msgstr "Bir satırı ara"
+
+#: kdiff3.cpp:502
+msgid "Search again for the string"
+msgstr "Satırı tekrar ara"
+
+#: kdiff3.cpp:507
+msgid "Enables/disables the statusbar"
+msgstr "Durum çubuğunu açar/kapatır"
+
+#: kdiff3.cpp:511
+msgid "Configure KDiff3..."
+msgstr "KDiff3 Uygulamasını Yapılandır..."
+
+#: kdiff3.cpp:532
+msgid "Go to Current Delta"
+msgstr "Mevcut Delta'ya Git"
+
+#: kdiff3.cpp:532
+msgid ""
+"Current\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:534
+msgid "Go to First Delta"
+msgstr "İlk Delta'ya Git"
+
+#: kdiff3.cpp:534
+msgid ""
+"First\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:536
+msgid "Go to Last Delta"
+msgstr "Son Delta'ya Git"
+
+#: kdiff3.cpp:536
+msgid ""
+"Last\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:538
+msgid "(Skips white space differences when \"Show White Space\" is disabled.)"
+msgstr ""
+"(\"Boşluk Karakterini Göster\" seçeneği kapalı iken boşluk farklarını göz "
+"ardı eder.)"
+
+#: kdiff3.cpp:539
+msgid ""
+"(Does not skip white space differences even when \"Show White Space\" is "
+"disabled.)"
+msgstr ""
+"(\"Boşluk Karakterini Göster\" seçeneği kapalı iken boşluk farklarını göz "
+"ardı etmez.)"
+
+#: kdiff3.cpp:540
+msgid "Go to Previous Delta"
+msgstr "Önceki Delta'ya Git"
+
+#: kdiff3.cpp:540
+msgid ""
+"Prev\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:542
+msgid "Go to Next Delta"
+msgstr "Sonraki Delta'ya Git"
+
+#: kdiff3.cpp:542
+msgid ""
+"Next\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:544
+msgid "Go to Previous Conflict"
+msgstr "Bir Önceki Çakışmaya Git"
+
+#: kdiff3.cpp:544
+msgid ""
+"Prev\n"
+"Conflict"
+msgstr ""
+"Önceki\n"
+"Çakışma"
+
+#: kdiff3.cpp:546
+msgid "Go to Next Conflict"
+msgstr "Bir Sonraki Çakışmaya Git"
+
+#: kdiff3.cpp:546
+msgid ""
+"Next\n"
+"Conflict"
+msgstr ""
+"Sonraki\n"
+"Çakışma"
+
+#: kdiff3.cpp:548
+msgid "Go to Previous Unsolved Conflict"
+msgstr "Bir Önceki Çözülmeyen Çakışmaya Git"
+
+#: kdiff3.cpp:548
+msgid ""
+"Prev\n"
+"Unsolved"
+msgstr ""
+"Önceki\n"
+"Çözümlenmemiş"
+
+#: kdiff3.cpp:550
+msgid "Go to Next Unsolved Conflict"
+msgstr "Bir Sonraki Çözülmeyen Çakışmaya Git"
+
+#: kdiff3.cpp:550
+msgid ""
+"Next\n"
+"Unsolved"
+msgstr ""
+"Sonraki\n"
+"Çözümlenmemiş"
+
+#: kdiff3.cpp:552
+msgid "Select Line(s) From A"
+msgstr "A'dan Satır(lar) Seç"
+
+#: kdiff3.cpp:552
+msgid ""
+"Choose\n"
+"A"
+msgstr ""
+"Seç\n"
+"A"
+
+#: kdiff3.cpp:553
+msgid "Select Line(s) From B"
+msgstr "B'den Satır(lar) Seç"
+
+#: kdiff3.cpp:553
+msgid ""
+"Choose\n"
+"B"
+msgstr ""
+"Seç\n"
+"B"
+
+#: kdiff3.cpp:554
+msgid "Select Line(s) From C"
+msgstr "C'den Satır(lar) Seç"
+
+#: kdiff3.cpp:554
+msgid ""
+"Choose\n"
+"C"
+msgstr ""
+"Seç\n"
+"C"
+
+#: kdiff3.cpp:555
+msgid "Automatically Go to Next Unsolved Conflict After Source Selection"
+msgstr ""
+"Kaynak Seçiminden Sonra Otomatik Olarak Bir Sonraki Çözülmeyen Çakışmaya Git"
+
+#: kdiff3.cpp:555
+msgid ""
+"Auto\n"
+"Next"
+msgstr ""
+"Otomatik\n"
+"Sonraki"
+
+#: kdiff3.cpp:557
+msgid "Show Space && Tabulator Characters for Differences"
+msgstr "Farklar için Boşluk && Sekme Karakterlerini Göster"
+
+#: kdiff3.cpp:557
+msgid ""
+"White\n"
+"Characters"
+msgstr ""
+"Beyaz\n"
+"Karakter"
+
+#: kdiff3.cpp:558
+msgid "Show White Space"
+msgstr "Boşluğu Göster"
+
+#: kdiff3.cpp:558
+msgid ""
+"White\n"
+"Deltas"
+msgstr ""
+
+#: kdiff3.cpp:560
+msgid "Show Line Numbers"
+msgstr "Satır Numaralarını Göster"
+
+#: kdiff3.cpp:560
+msgid ""
+"Line\n"
+"Numbers"
+msgstr ""
+"Satır\n"
+"Numaraları"
+
+#: kdiff3.cpp:561
+msgid "Choose A Everywhere"
+msgstr "A'yı Heryerde Seç"
+
+#: kdiff3.cpp:562
+msgid "Choose B Everywhere"
+msgstr "B'yi Heryerde Seç"
+
+#: kdiff3.cpp:563
+msgid "Choose C Everywhere"
+msgstr "C'yi Heryerde Seç"
+
+#: kdiff3.cpp:564
+msgid "Choose A for All Unsolved Conflicts"
+msgstr "Tüm Çözümlenmemiş Çakışmalar için A'yı Seç"
+
+#: kdiff3.cpp:565
+msgid "Choose B for All Unsolved Conflicts"
+msgstr "Tüm Çözümlenmemiş Çakışmalar için B'yi Seç"
+
+#: kdiff3.cpp:566
+msgid "Choose C for All Unsolved Conflicts"
+msgstr "Tüm Çözümlenmemiş Çakışmalar için C'yi Seç"
+
+#: kdiff3.cpp:567
+msgid "Choose A for All Unsolved Whitespace Conflicts"
+msgstr "Tüm Çözümlenmemiş Beyaz Alan Çakışmaları için A'yı Seç"
+
+#: kdiff3.cpp:568
+msgid "Choose B for All Unsolved Whitespace Conflicts"
+msgstr "Tüm Çözümlenmemiş Beyaz Alan Çakışmaları için B'yi Seç"
+
+#: kdiff3.cpp:569
+msgid "Choose C for All Unsolved Whitespace Conflicts"
+msgstr "Tüm Çözümlenmemiş Beyaz Alan Çakışmaları için C'yi Seç"
+
+#: kdiff3.cpp:570
+msgid "Automatically Solve Simple Conflicts"
+msgstr "Basit Çakışmaları Otomatik Olarak Çöz"
+
+#: kdiff3.cpp:571
+msgid "Set Deltas to Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:572
+msgid "Run Regular Expression Auto Merge"
+msgstr ""
+
+#: kdiff3.cpp:573
+msgid "Automatically Solve History Conflicts"
+msgstr "Geçmiş Çakışmalarını Otomatik Olarak Çözümle"
+
+#: kdiff3.cpp:574
+msgid "Split Diff At Selection"
+msgstr ""
+
+#: kdiff3.cpp:575
+msgid "Join Selected Diffs"
+msgstr ""
+
+#: kdiff3.cpp:577
+msgid "Show Window A"
+msgstr "A Penceresini Göster"
+
+#: kdiff3.cpp:578
+msgid "Show Window B"
+msgstr "B Penceresini Göster"
+
+#: kdiff3.cpp:579
+msgid "Show Window C"
+msgstr "C Penceresini Göster"
+
+#: kdiff3.cpp:580 kdiff3.cpp:591
+msgid "Focus Next Window"
+msgstr "Bir Sonraki Pencereye Odaklan"
+
+#: kdiff3.cpp:582
+msgid "Normal Overview"
+msgstr "Normal Öngörünüm"
+
+#: kdiff3.cpp:583
+msgid "A vs. B Overview"
+msgstr "A - B Karşılaştırılması Öngörünümü"
+
+#: kdiff3.cpp:584
+msgid "A vs. C Overview"
+msgstr "A - C Karşılaştırılması Öngörünümü"
+
+#: kdiff3.cpp:585
+msgid "B vs. C Overview"
+msgstr "B - C Karşılaştırılması Öngörünümü"
+
+#: kdiff3.cpp:586
+msgid "Word Wrap Diff Windows"
+msgstr ""
+
+#: kdiff3.cpp:587
+msgid "Add Manual Diff Alignment"
+msgstr ""
+
+#: kdiff3.cpp:588
+msgid "Clear All Manual Diff Alignments"
+msgstr ""
+
+#: kdiff3.cpp:593
+msgid "Focus Prev Window"
+msgstr "Bir Önceki Pencereye Odaklan"
+
+#: kdiff3.cpp:594
+msgid "Toggle Split Orientation"
+msgstr ""
+
+#: kdiff3.cpp:596
+msgid "Dir && Text Split Screen View"
+msgstr ""
+
+#: kdiff3.cpp:598
+msgid "Toggle Between Dir && Text View"
+msgstr ""
+
+#: kdiff3.cpp:654 pdiff.cpp:1812
+msgid "The merge result hasn't been saved."
+msgstr "Birleştirme sonucu kaydedilmedi."
+
+#: kdiff3.cpp:656
+msgid "Save && Quit"
+msgstr "Kaydet ve Çık"
+
+#: kdiff3.cpp:657
+msgid "Quit Without Saving"
+msgstr "Kaydetmeden Çık"
+
+#: kdiff3.cpp:665 pdiff.cpp:1823
+msgid "Saving the merge result failed."
+msgstr "Birleştirme sonucunun kaydedilmesi başarısız oldu."
+
+#: kdiff3.cpp:676 pdiff.cpp:1078
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort?"
+msgstr ""
+"Şu anda bir dizin birleştirmesi gerçekleştiriyorsunuz. Çıkmak istediğinizden "
+"emin misiniz?"
+
+#: kdiff3.cpp:701
+msgid "Saving file..."
+msgstr "Dosya kaydediliyor..."
+
+#: kdiff3.cpp:718
+msgid "Saving file with a new filename..."
+msgstr "Dosya yeni bir isimle kaydediliyor..."
+
+#: kdiff3.cpp:781
+#, fuzzy
+#| msgid "Printing completed."
+msgid "Printing not implemented."
+msgstr "Yazdırma işlemi tamamlandı."
+
+#: kdiff3.cpp:815
+msgid "Printing..."
+msgstr "Yazdırma..."
+
+#: kdiff3.cpp:956
+msgid "Selection"
+msgstr "Seçim"
+
+#: kdiff3.cpp:982
+msgid "Printing completed."
+msgstr "Yazdırma işlemi tamamlandı."
+
+#: kdiff3.cpp:986
+msgid "Printing aborted."
+msgstr "Yazdırma işlemi sonlandırıldı."
+
+#: kdiff3.cpp:993
+msgid "Exiting..."
+msgstr "Çıkılıyor..."
+
+#: kdiff3.cpp:1006
+msgid "Toggling toolbar..."
+msgstr "Araç çubuğu açılıyor/kapatılıyor..."
+
+#: kdiff3.cpp:1027
+msgid "Toggle the statusbar..."
+msgstr "Durum çubğunu göster/sakla..."
+
+#: smalldialogs.cpp:58
+msgid "A (Base):"
+msgstr "A (Temel):"
+
+#: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99
+#: smalldialogs.cpp:142
+msgid "File..."
+msgstr "Dosya..."
+
+#: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101
+#: smalldialogs.cpp:144
+msgid "Dir..."
+msgstr "Dizin..."
+
+#: smalldialogs.cpp:93
+msgid "C (Optional):"
+msgstr "C (İsteğe Bağlı):"
+
+#: smalldialogs.cpp:116
+msgid "Swap/Copy Names ..."
+msgstr ""
+
+#: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123
+#, kde-format
+msgid "Swap %1<->%2"
+msgstr "Takas yap %1<->%2"
+
+#: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126
+#, kde-format
+msgid "Copy %1->Output"
+msgstr "%1 Kopyala->Çıktı"
+
+#: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129
+#, kde-format
+msgid "Swap %1<->Output"
+msgstr "Takas yap %1<->Çıktı"
+
+#: smalldialogs.cpp:136
+msgid "Output (optional):"
+msgstr "Çıktı (İsteğe Bağlı):"
+
+#: smalldialogs.cpp:168
+msgid "Configure..."
+msgstr "Yapılandır..."
+
+#: smalldialogs.cpp:174
+msgid "&OK"
+msgstr "&Tamam"
+
+#: smalldialogs.cpp:362
+msgid "Search text:"
+msgstr "Aranacak metin:"
+
+#: smalldialogs.cpp:369
+msgid "Case sensitive"
+msgstr "Büyük ve küçük harfe duyarlı"
+
+#: smalldialogs.cpp:372
+msgid "Search A"
+msgstr "A'yı Ara"
+
+#: smalldialogs.cpp:377
+msgid "Search B"
+msgstr "B'yi Ara"
+
+#: smalldialogs.cpp:382
+msgid "Search C"
+msgstr "C'yi Ara"
+
+#: smalldialogs.cpp:387
+msgid "Search output"
+msgstr "Çıktıyı Ara"
+
+#: smalldialogs.cpp:392
+msgid "&Search"
+msgstr "&Ara"
+
+#: smalldialogs.cpp:409
+msgid "Regular Expression Tester"
+msgstr "Düzenli İfade Deneyici"
+
+#: smalldialogs.cpp:414 optiondialog.cpp:936
+msgid "Auto merge regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:422
+msgid "Example auto merge line:"
+msgstr "Örnek otomatik birleştirme satırı:"
+
+#: smalldialogs.cpp:424
+msgid "To test auto merge, copy a line as used in your files."
+msgstr ""
+
+#: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494
+msgid "Match result:"
+msgstr ""
+
+#: smalldialogs.cpp:441 optiondialog.cpp:962
+msgid "History start regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:449
+msgid "Example history start line (with leading comment):"
+msgstr ""
+
+#: smalldialogs.cpp:451
+msgid ""
+"Copy a history start line as used in your files,\n"
+"including the leading comment."
+msgstr ""
+
+#: smalldialogs.cpp:469 optiondialog.cpp:972
+msgid "History entry start regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:477
+msgid "History sort key order:"
+msgstr ""
+
+#: smalldialogs.cpp:485
+msgid "Example history entry start line (without leading comment):"
+msgstr ""
+
+#: smalldialogs.cpp:487
+msgid ""
+"Copy a history entry start line as used in your files,\n"
+"but omit the leading comment."
+msgstr ""
+
+#: smalldialogs.cpp:501
+msgid "Sort key result:"
+msgstr ""
+
+#: smalldialogs.cpp:508
+msgid "OK"
+msgstr "Tamam"
+
+#: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583
+msgid "Match success."
+msgstr "Eşleme başarılı oldu."
+
+#: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589
+msgid "Match failed."
+msgstr "Eşleme başarısız oldu."
+
+#: smalldialogs.cpp:574
+msgid "Opening and closing parentheses do not match in regular expression."
+msgstr ""
+
+#: optiondialog.cpp:367
+msgid "Unicode, 8 bit"
+msgstr "Unicode, 8 bit"
+
+#: optiondialog.cpp:368
+msgid "Unicode"
+msgstr "Unicode"
+
+#: optiondialog.cpp:369
+msgid "Latin1"
+msgstr "Latin1"
+
+#: optiondialog.cpp:388
+msgid "Change this if non-ASCII characters are not displayed correctly."
+msgstr ""
+
+#: optiondialog.cpp:465
+msgid "Configure"
+msgstr "Yapılandır"
+
+#: optiondialog.cpp:531
+msgid "Font"
+msgstr "Yazı Tipi"
+
+#: optiondialog.cpp:532
+msgid "Editor & Diff Output Font"
+msgstr "Düzenleyici ve Karşılaştırıcı Çıktısı Yazıtipi"
+
+#: optiondialog.cpp:556
+msgid "Italic font for deltas"
+msgstr ""
+
+#: optiondialog.cpp:559
+msgid ""
+"Selects the italic version of the font for differences.\n"
+"If the font doesn't support italic characters, then this does nothing."
+msgstr ""
+
+#: optiondialog.cpp:568
+msgid "Color"
+msgstr "Renk"
+
+#: optiondialog.cpp:569
+msgid "Colors Settings"
+msgstr "Renk Ayarları"
+
+#: optiondialog.cpp:588
+msgid "Editor and Diff Views:"
+msgstr "Düzenleyici ve Diff Görünümü:"
+
+#: optiondialog.cpp:596
+msgid "Foreground color:"
+msgstr "Önplan rengi:"
+
+#: optiondialog.cpp:603
+msgid "Background color:"
+msgstr "Arka alan rengi:"
+
+#: optiondialog.cpp:612
+msgid "Diff background color:"
+msgstr "Karşılaştırıcı arka alanı rengi:"
+
+#: optiondialog.cpp:620
+msgid "Color A:"
+msgstr "A'nın rengi:"
+
+#: optiondialog.cpp:628
+msgid "Color B:"
+msgstr "B'nin rengi:"
+
+#: optiondialog.cpp:636
+msgid "Color C:"
+msgstr "C'nin rengi:"
+
+#: optiondialog.cpp:643
+msgid "Conflict color:"
+msgstr "Çakışma rengi:"
+
+#: optiondialog.cpp:651
+msgid "Current range background color:"
+msgstr ""
+
+#: optiondialog.cpp:659
+msgid "Current range diff background color:"
+msgstr ""
+
+#: optiondialog.cpp:666
+msgid "Color for manually aligned difference ranges:"
+msgstr ""
+
+#: optiondialog.cpp:672
+msgid "Directory Comparison View:"
+msgstr "Dizin Karşılaştırma Görünümü:"
+
+#: optiondialog.cpp:678
+msgid "Newest file color:"
+msgstr "En yeni dosya rengi:"
+
+#: optiondialog.cpp:682
+msgid ""
+"Changing this color will only be effective when starting the next directory "
+"comparison."
+msgstr ""
+
+#: optiondialog.cpp:687
+msgid "Oldest file color:"
+msgstr "En eski dosya rengi:"
+
+#: optiondialog.cpp:695
+msgid "Middle age file color:"
+msgstr ""
+
+#: optiondialog.cpp:703
+msgid "Color for missing files:"
+msgstr "Kayıp dosyalar için renk:"
+
+#: optiondialog.cpp:717
+msgid "Editor"
+msgstr "Düzenleyici"
+
+#: optiondialog.cpp:718
+msgid "Editor Behavior"
+msgstr "Düzenleyici Davranışı"
+
+#: optiondialog.cpp:732
+msgid "Tab inserts spaces"
+msgstr "Tab tuşu boşluk yerleştirir"
+
+#: optiondialog.cpp:735
+msgid ""
+"On: Pressing tab generates the appropriate number of spaces.\n"
+"Off: A tab character will be inserted."
+msgstr ""
+
+#: optiondialog.cpp:741
+msgid "Tab size:"
+msgstr "Tab boyutu:"
+
+#: optiondialog.cpp:747
+msgid "Auto indentation"
+msgstr "Otomatik girintileme"
+
+#: optiondialog.cpp:750
+msgid "On: The indentation of the previous line is used for a new line.\n"
+msgstr ""
+
+#: optiondialog.cpp:754
+msgid "Auto copy selection"
+msgstr "Seçimi otomatik olarak kopyala"
+
+#: optiondialog.cpp:757
+msgid ""
+"On: Any selection is immediately written to the clipboard.\n"
+"Off: You must explicitely copy e.g. via Ctrl-C."
+msgstr ""
+
+#: optiondialog.cpp:768
+#, fuzzy
+#| msgid "&Window"
+msgid "Dos/Windows"
+msgstr "&Pencere"
+
+#: optiondialog.cpp:769
+#, fuzzy
+#| msgid "Auto Select"
+msgid "Autodetect"
+msgstr "Otomatik Seç"
+
+#: optiondialog.cpp:772
+msgid ""
+"Sets the line endings for when an edited file is saved.\n"
+"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A"
+msgstr ""
+
+#: optiondialog.cpp:784
+msgid "Diff"
+msgstr "Diff"
+
+#: optiondialog.cpp:785
+msgid "Diff Settings"
+msgstr "Diff Ayarları"
+
+#: optiondialog.cpp:809
+msgid "Treat as white space."
+msgstr "Beyaz alan olarak davran."
+
+#: optiondialog.cpp:811
+msgid "Ignore numbers"
+msgstr "Numaraları yoksay"
+
+#: optiondialog.cpp:814
+msgid ""
+"Ignore number characters during line matching phase. (Similar to Ignore "
+"white space.)\n"
+"Might help to compare files with numeric data."
+msgstr ""
+
+#: optiondialog.cpp:819
+msgid "Ignore C/C++ comments"
+msgstr "C/C++ yorumlarını yoksay"
+
+#: optiondialog.cpp:821
+msgid "Treat C/C++ comments like white space."
+msgstr "C/C++ yorumlarına boşluk olarak davran."
+
+#: optiondialog.cpp:825
+msgid "Ignore case"
+msgstr "Büyük/küçük harfleri dikkate alma"
+
+#: optiondialog.cpp:828
+msgid "Treat case differences like white space changes. ('a'<=>'A')"
+msgstr ""
+
+#: optiondialog.cpp:832
+msgid "Preprocessor command:"
+msgstr ""
+
+#: optiondialog.cpp:836
+msgid "User defined pre-processing. (See the docs for details.)"
+msgstr ""
+
+#: optiondialog.cpp:839
+msgid "Line-matching preprocessor command:"
+msgstr ""
+
+#: optiondialog.cpp:843
+msgid ""
+"This pre-processor is only used during line matching.\n"
+"(See the docs for details.)"
+msgstr ""
+
+#: optiondialog.cpp:846
+msgid "Try hard (slower)"
+msgstr ""
+
+#: optiondialog.cpp:849
+msgid ""
+"Enables the --minimal option for the external diff.\n"
+"The analysis of big files will be much slower."
+msgstr ""
+
+#: optiondialog.cpp:854
+msgid "Align B and C for 3 input files"
+msgstr ""
+
+#: optiondialog.cpp:857
+msgid ""
+"Try to align B and C when comparing or merging three input files.\n"
+"Not recommended for merging because merge might get more complicated.\n"
+"(Default is off.)"
+msgstr ""
+
+#: optiondialog.cpp:870
+msgid "Merge Settings"
+msgstr "Birleştirme Ayarları"
+
+#: optiondialog.cpp:885
+msgid "Auto advance delay (ms):"
+msgstr ""
+
+#: optiondialog.cpp:890
+msgid ""
+"When in Auto-Advance mode the result of the current selection is shown \n"
+"for the specified time, before jumping to the next conflict. Range: 0-2000 ms"
+msgstr ""
+
+#: optiondialog.cpp:895
+msgid "Show info dialogs"
+msgstr "Bilgi pencerelerini göster"
+
+#: optiondialog.cpp:897
+msgid "Show a dialog with information about the number of conflicts."
+msgstr ""
+
+#: optiondialog.cpp:900
+msgid "White space 2-file merge default:"
+msgstr ""
+
+#: optiondialog.cpp:904 optiondialog.cpp:917
+msgid "Manual Choice"
+msgstr "El ile Seçim"
+
+#: optiondialog.cpp:908 optiondialog.cpp:922
+msgid ""
+"Allow the merge algorithm to automatically select an input for white-space-"
+"only changes."
+msgstr ""
+
+#: optiondialog.cpp:913
+msgid "White space 3-file merge default:"
+msgstr ""
+
+#: optiondialog.cpp:927
+msgid "Automatic Merge Regular Expression"
+msgstr ""
+
+#: optiondialog.cpp:940
+msgid ""
+"Regular expression for lines where KDiff3 should automatically choose one "
+"source.\n"
+"When a line with a conflict matches the regular expression then\n"
+"- if available - C, otherwise B will be chosen."
+msgstr ""
+
+#: optiondialog.cpp:946
+msgid "Run regular expression auto merge on merge start"
+msgstr ""
+
+#: optiondialog.cpp:948
+msgid ""
+"Run the merge for auto merge regular expressions\n"
+"immediately when a merge starts.\n"
+msgstr ""
+
+#: optiondialog.cpp:953
+msgid "Version Control History Merging"
+msgstr ""
+
+#: optiondialog.cpp:966
+msgid ""
+"Regular expression for the start of the version control history entry.\n"
+"Usually this line contains the \"$Log$\" keyword.\n"
+"Default value: \".*\\$Log.*\\$.*\""
+msgstr ""
+
+#: optiondialog.cpp:984
+msgid ""
+"A version control history entry consists of several lines.\n"
+"Specify the regular expression to detect the first line (without the leading "
+"comment).\n"
+"Use parentheses to group the keys you want to use for sorting.\n"
+"If left empty, then KDiff3 assumes that empty lines separate history "
+"entries.\n"
+"See the documentation for details."
+msgstr ""
+
+#: optiondialog.cpp:992
+msgid "History merge sorting"
+msgstr ""
+
+#: optiondialog.cpp:994
+msgid "Sort version control history by a key."
+msgstr ""
+
+#: optiondialog.cpp:1004
+msgid "History entry start sort key order:"
+msgstr ""
+
+#: optiondialog.cpp:1008
+msgid ""
+"Each pair of parentheses used in the regular expression for the history "
+"start entry\n"
+"groups a key that can be used for sorting.\n"
+"Specify the list of keys (that are numbered in order of occurrence\n"
+"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n"
+"If left empty, then no sorting will be done.\n"
+"See the documentation for details."
+msgstr ""
+
+#: optiondialog.cpp:1019
+msgid "Merge version control history on merge start"
+msgstr ""
+
+#: optiondialog.cpp:1021
+msgid "Run version control history automerge on merge start."
+msgstr ""
+
+#: optiondialog.cpp:1025
+msgid "Max number of history entries:"
+msgstr "En fazla geçmiş girdisi sayısı:"
+
+#: optiondialog.cpp:1028
+msgid "Cut off after specified number. Use -1 for infinite number of entries."
+msgstr ""
+
+#: optiondialog.cpp:1032
+msgid "Test your regular expressions"
+msgstr "Düzenli ifadenizi test edin"
+
+#: optiondialog.cpp:1037
+msgid "Irrelevant merge command:"
+msgstr ""
+
+#: optiondialog.cpp:1041
+msgid ""
+"If specified this script is run after automerge\n"
+"when no other relevant changes were detected.\n"
+"Called with the parameters: filename1 filename2 filename3"
+msgstr ""
+
+#: optiondialog.cpp:1047
+msgid "Auto save and quit on merge without conflicts"
+msgstr ""
+
+#: optiondialog.cpp:1050
+msgid ""
+"If KDiff3 was started for a file-merge from the command line and all\n"
+"conflicts are solvable without user interaction then automatically save and "
+"quit.\n"
+"(Similar to command line option \"--auto\".)"
+msgstr ""
+
+#: optiondialog.cpp:1061 optiondialog.cpp:1062
+msgid "Directory"
+msgstr "Dizin"
+
+#: optiondialog.cpp:1075
+msgid "Recursive directories"
+msgstr "Özyinelemeli dizinler"
+
+#: optiondialog.cpp:1077
+msgid "Whether to analyze subdirectories or not."
+msgstr "Altdizinlerin analiz edilip edilmeyeceği."
+
+#: optiondialog.cpp:1079
+msgid "File pattern(s):"
+msgstr "Dosya Türleri:"
+
+#: optiondialog.cpp:1084
+msgid ""
+"Pattern(s) of files to be analyzed. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1090
+msgid "File-anti-pattern(s):"
+msgstr ""
+
+#: optiondialog.cpp:1095
+msgid ""
+"Pattern(s) of files to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1101
+msgid "Dir-anti-pattern(s):"
+msgstr ""
+
+#: optiondialog.cpp:1106
+msgid ""
+"Pattern(s) of directories to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1112
+msgid "Use .cvsignore"
+msgstr ".cvsignore kullan"
+
+#: optiondialog.cpp:1115
+msgid ""
+"Extends the antipattern to anything that would be ignored by CVS.\n"
+"Via local \".cvsignore\" files this can be directory specific."
+msgstr ""
+
+#: optiondialog.cpp:1120
+msgid "Find hidden files and directories"
+msgstr "Gizli dosya ve dizinleri bul"
+
+#: optiondialog.cpp:1123
+msgid "Finds files and directories with the hidden attribute."
+msgstr "Gizli özelliğine sahip tüm dosya ve dizinleri bulur."
+
+#: optiondialog.cpp:1125
+msgid "Finds files and directories starting with '.'."
+msgstr "'.' ile başlayan dosya ve dizinleri bulur."
+
+#: optiondialog.cpp:1129
+msgid "Follow file links"
+msgstr "Dosya bağlarını takip et"
+
+#: optiondialog.cpp:1132
+msgid ""
+"On: Compare the file the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+"Açık: Bağın işaret ettiği dosyayı karşılaştır.\n"
+"Kapalı: Bağları karşılaştır."
+
+#: optiondialog.cpp:1137
+msgid "Follow directory links"
+msgstr "Dizin bağlarını takip et"
+
+#: optiondialog.cpp:1140
+msgid ""
+"On: Compare the directory the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+"Açık: Bağın işaret ettiğin dizini karşılaştır.\n"
+"Kapalı: Bağları karşılaştır."
+
+#: optiondialog.cpp:1156
+msgid "Case sensitive filename comparison"
+msgstr "Büyük ve küçük harfe duyarlı karşılaştırma"
+
+#: optiondialog.cpp:1159
+msgid ""
+"The directory comparison will compare files or directories when their names "
+"match.\n"
+"Set this option if the case of the names must match. (Default for Windows is "
+"off, otherwise on.)"
+msgstr ""
+
+#: optiondialog.cpp:1163
+msgid "File Comparison Mode"
+msgstr "Dosya Karşılaştırma Kipi"
+
+#: optiondialog.cpp:1169
+msgid "Binary comparison"
+msgstr "İkili dosya karşılaştırması"
+
+#: optiondialog.cpp:1170
+msgid "Binary comparison of each file. (Default)"
+msgstr ""
+
+#: optiondialog.cpp:1173
+msgid "Full analysis"
+msgstr "Tam analiz"
+
+#: optiondialog.cpp:1174
+msgid ""
+"Do a full analysis and show statistics information in extra columns.\n"
+"(Slower than a binary comparison, much slower for binary files.)"
+msgstr ""
+
+#: optiondialog.cpp:1178
+msgid "Trust the size and modification date (unsafe)"
+msgstr "Değiştirilme tarihine ve boyutuna güven (güvenli değil)"
+
+#: optiondialog.cpp:1179
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"Files with equal contents but different modification dates will appear as "
+"different.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+
+#: optiondialog.cpp:1184
+msgid ""
+"Trust the size and date, but use binary comparison if date does not match "
+"(unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1185
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"If the dates are not equal but the sizes are, use binary comparison.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+
+#: optiondialog.cpp:1190
+msgid "Trust the size (unsafe)"
+msgstr "Boyuta güven (güvenilir değil)"
+
+#: optiondialog.cpp:1191
+msgid ""
+"Assume that files are equal if their file lengths are equal.\n"
+"Useful for big directories or slow networks when the date is modified during "
+"download."
+msgstr ""
+"Dosya uzunlukları eşitse dosyaların aynı olduğunu varsay.\n"
+"Tarih, indirme sırasında değiştirildiğinde büyük dizinler ve yavaş ağlar "
+"için kullanışlıdır."
+
+#: optiondialog.cpp:1199
+msgid "Synchronize directories"
+msgstr "Dizinleri eşzamanla"
+
+#: optiondialog.cpp:1202
+msgid ""
+"Offers to store files in both directories so that\n"
+"both directories are the same afterwards.\n"
+"Works only when comparing two directories without specifying a destination."
+msgstr ""
+
+#: optiondialog.cpp:1208
+msgid "White space differences considered equal"
+msgstr ""
+
+#: optiondialog.cpp:1211
+msgid ""
+"If files differ only by white space consider them equal.\n"
+"This is only active when full analysis is chosen."
+msgstr ""
+
+#: optiondialog.cpp:1217
+msgid "Copy newer instead of merging (unsafe)"
+msgstr "Birleştirmek yerine daha yeni olanı kopyala (güvenli değil)"
+
+#: optiondialog.cpp:1220
+msgid ""
+"Don't look inside, just take the newer file.\n"
+"(Use this only if you know what you are doing!)\n"
+"Only effective when comparing two directories."
+msgstr ""
+"İçeriğe bakma, sadece daha yeni olan dosyayı al.\n"
+"(Bu seçeneği sadece ne yaptığınızı biliyorsanız kullanın!)\n"
+"Sadece iki dizini karşılaştırırken etkilidir."
+
+#: optiondialog.cpp:1225
+msgid "Backup files (.orig)"
+msgstr "Dosyaları yedekle (.orig)"
+
+#: optiondialog.cpp:1228
+msgid ""
+"If a file would be saved over an old file, then the old file\n"
+"will be renamed with a '.orig' extension instead of being deleted."
+msgstr ""
+"Bir dosya eski bir dosyanın üzerine kaydedileceği zaman,\n"
+"eski dosya silinmek yerine '.orig' uzantısıyla kaydedilir."
+
+#: optiondialog.cpp:1301 optiondialog.cpp:1302
+msgid "Regional Settings"
+msgstr "Bölgesel Ayarlar"
+
+#: optiondialog.cpp:1402
+msgid "Language (restart required)"
+msgstr "Dil (yeniden başlatmak gerekir)"
+
+#: optiondialog.cpp:1445
+msgid ""
+"Choose the language of the GUI strings or \"Auto\".\n"
+"For a change of language to take place, quit and restart KDiff3."
+msgstr ""
+
+#: optiondialog.cpp:1463
+msgid "Use the same encoding for everything:"
+msgstr "Herşey için aynı kodlamayı kullan:"
+
+#: optiondialog.cpp:1466
+msgid ""
+"Enable this allows to change all encodings by changing the first only.\n"
+"Disable this if different individual settings are needed."
+msgstr ""
+
+#: optiondialog.cpp:1471
+msgid "Note: Local Encoding is "
+msgstr "Not: Yerel Kodlama "
+
+#: optiondialog.cpp:1475
+msgid "File Encoding for A:"
+msgstr "A için Dosya Kodlaması:"
+
+#: optiondialog.cpp:1481
+msgid ""
+"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n"
+"If the file is not Unicode then the selected encoding will be used as "
+"fallback.\n"
+"(Unicode detection depends on the first bytes of a file.)"
+msgstr ""
+
+#: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503
+msgid "Auto Detect Unicode"
+msgstr "Unicode Kodlamasını Otomatik olarak Bul"
+
+#: optiondialog.cpp:1490
+msgid "File Encoding for B:"
+msgstr "B için Dosya Kodlaması:"
+
+#: optiondialog.cpp:1499
+msgid "File Encoding for C:"
+msgstr "C için Dosya Kodlaması:"
+
+#: optiondialog.cpp:1508
+msgid "File Encoding for Merge Output and Saving:"
+msgstr ""
+
+#: optiondialog.cpp:1512
+msgid "Auto Select"
+msgstr "Otomatik Seç"
+
+#: optiondialog.cpp:1515
+msgid ""
+"If enabled then the encoding from the input files is used.\n"
+"In ambiguous cases a dialog will ask the user to choose the encoding for "
+"saving."
+msgstr ""
+
+#: optiondialog.cpp:1519
+msgid "File Encoding for Preprocessor Files:"
+msgstr ""
+
+#: optiondialog.cpp:1530
+msgid "Right To Left Language"
+msgstr "Sağdan Sola Yazılan Dil"
+
+#: optiondialog.cpp:1533
+msgid ""
+"Some languages are read from right to left.\n"
+"This setting will change the viewer and editor accordingly."
+msgstr ""
+
+#: optiondialog.cpp:1548
+msgid "Integration"
+msgstr "Bütünleşme"
+
+#: optiondialog.cpp:1549
+msgid "Integration Settings"
+msgstr "Bütünleşme Ayarları"
+
+#: optiondialog.cpp:1563
+msgid "Command line options to ignore:"
+msgstr ""
+
+#: optiondialog.cpp:1568
+msgid ""
+"List of command line options that should be ignored when KDiff3 is used by "
+"other tools.\n"
+"Several values can be specified if separated via ';'\n"
+"This will suppress the \"Unknown option\" error."
+msgstr ""
+
+#: optiondialog.cpp:1575
+msgid "Quit also via Escape key"
+msgstr "Esc tuşuyla da çık"
+
+#: optiondialog.cpp:1578
+msgid ""
+"Fast method to exit.\n"
+"For those who are used to using the Escape key."
+msgstr ""
+
+#: optiondialog.cpp:1583
+msgid "Integrate with ClearCase"
+msgstr ""
+
+#: optiondialog.cpp:1586
+msgid ""
+"Integrate with Rational ClearCase from IBM.\n"
+"Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n"
+"(Only enabled when ClearCase \"bin\" directory is in the path.)"
+msgstr ""
+
+#: optiondialog.cpp:1592
+msgid "Remove ClearCase Integration"
+msgstr ""
+
+#: optiondialog.cpp:1595
+msgid ""
+"Restore the old \"map\" file from before doing the ClearCase integration."
+msgstr ""
+
+#: optiondialog.cpp:1680
+msgid "Incompatible Font"
+msgstr "Uyumsuz Yazıtipi"
+
+#: optiondialog.cpp:1681
+msgid "Continue at Own Risk"
+msgstr "Riski Göze Alarak Devam Et"
+
+#: optiondialog.cpp:1682
+msgid "Select Another Font"
+msgstr "Başka Bir Yazıtipi Seç"
+
+#: optiondialog.cpp:1717
+msgid "This resets all options. Not only those of the current topic."
+msgstr "Bu, sadece bu bölümdekileri değil, tüm seçenekleri sıfırlar."
+
+#: pdiff.cpp:260
+msgid "PreprocessorCmd: "
+msgstr ""
+
+#: pdiff.cpp:265
+msgid "The following option(s) you selected might change data:\n"
+msgstr ""
+
+#: pdiff.cpp:266
+msgid ""
+"\n"
+"Most likely this is not wanted during a merge.\n"
+"Do you want to disable these settings or continue with these settings active?"
+msgstr ""
+
+#: pdiff.cpp:268
+msgid "Option Unsafe for Merging"
+msgstr ""
+
+#: pdiff.cpp:269
+msgid "Use These Options During Merge"
+msgstr ""
+
+#: pdiff.cpp:270
+msgid "Disable Unsafe Options"
+msgstr "Güvenli Olmayan Seçenekleri Pasifleştir"
+
+#: pdiff.cpp:300
+msgid "Loading A"
+msgstr "A yükleniyor"
+
+#: pdiff.cpp:304
+msgid "Loading B"
+msgstr "B Yükleniyor"
+
+#: pdiff.cpp:321 pdiff.cpp:347
+msgid "Diff: A <-> B"
+msgstr "Diff: A <-> B"
+
+#: pdiff.cpp:327 pdiff.cpp:372
+msgid "Linediff: A <-> B"
+msgstr ""
+
+#: pdiff.cpp:338
+msgid "Loading C"
+msgstr "C Yükleniyor"
+
+#: pdiff.cpp:350
+msgid "Diff: B <-> C"
+msgstr "Diff: B <-> C"
+
+#: pdiff.cpp:353
+msgid "Diff: A <-> C"
+msgstr "Diff: A <-> C"
+
+#: pdiff.cpp:375
+msgid "Linediff: B <-> C"
+msgstr ""
+
+#: pdiff.cpp:378
+msgid "Linediff: A <-> C"
+msgstr ""
+
+#: pdiff.cpp:534
+msgid "All input files contain the same text, but are not binary equal."
+msgstr ""
+
+#: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541
+#, kde-format
+msgid "Files %1 and %2 have equal text, but are not binary equal. \n"
+msgstr ""
+"%1 ve %2 dosyaları denk metinlere sahip ama ikili (binary) olarak denk "
+"değil.\n"
+
+#: pdiff.cpp:551
+msgid ""
+"Some inputfiles don't seem to be pure textfiles.\n"
+"Note that the KDiff3-merge was not meant for binary data.\n"
+"Continue at your own risk."
+msgstr ""
+
+#: pdiff.cpp:566
+#, kde-format
+msgid ""
+"Some input characters could not be converted to valid unicode.\n"
+"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n"
+"Don't save the result if unsure. Continue at your own risk.\n"
+"Affected input files are in %1."
+msgstr ""
+
+#: pdiff.cpp:1080
+msgid "Abort"
+msgstr "Çık"
+
+#: pdiff.cpp:1087 pdiff.cpp:1175
+msgid "Opening files..."
+msgstr "Dosyalar açılıyor..."
+
+#: pdiff.cpp:1152 pdiff.cpp:1223
+msgid "File open error"
+msgstr "Dosya açma hatası"
+
+#: pdiff.cpp:1255
+msgid "Cutting selection..."
+msgstr "Seçim kesiliyor..."
+
+#: pdiff.cpp:1276
+msgid "Copying selection to clipboard..."
+msgstr "Seçim panoya kopyalanıyor..."
+
+#: pdiff.cpp:1292
+msgid "Inserting clipboard contents..."
+msgstr "Pano içeriği yerleştiriliyor..."
+
+#: pdiff.cpp:1814
+msgid "Save && Continue"
+msgstr "Kaydet ve Devam Et"
+
+#: pdiff.cpp:1815
+msgid "Continue Without Saving"
+msgstr "Kaydetmeden Devam Et"
+
+#: pdiff.cpp:2018
+msgid "Search complete."
+msgstr "Arama tamamlandı."
+
+#: pdiff.cpp:2018
+msgid "Search Complete"
+msgstr "Arama Tamamlandı"
+
+#: pdiff.cpp:2252
+msgid "Nothing is selected in either diff input window."
+msgstr ""
+
+#: pdiff.cpp:2252
+msgid "Error while adding manual diff range"
+msgstr ""
+
+#: kdiff3_shell.cpp:76
+msgid ""
+"Could not initialize the KDiff3 part.\n"
+"This usually happens due to an installation problem. Please read the README-"
+"file in the source package for details."
+msgstr ""
+
+#: rc.cpp:1
+msgctxt "NAME OF TRANSLATORS"
+msgid "Your names"
+msgstr "Serdar Soytetir"
+
+#: rc.cpp:2
+msgctxt "EMAIL OF TRANSLATORS"
+msgid "Your emails"
+msgstr "tulliana@gmail.com"
+
+#. i18n: file: kdiff3_part.rc:4
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:5
+msgid "&KDiff3"
+msgstr "&KDiff3"
+
+#. i18n: file: kdiff3_part.rc:13
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:8
+msgid "Configure KDiff3"
+msgstr "KDiff3 Uygulamasını Yapılandır"
+
+#. i18n: file: kdiff3_part.rc:16
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:11
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#. i18n: file: kdiff3_shell.rc:106
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:38
+msgid "Main Toolbar"
+msgstr "Ana Araç Çubuğu"
+
+#~ msgid "Directory Merge"
+#~ msgstr "Dizin Birleştirmesi"
+
+#~ msgid "C&ontinue"
+#~ msgstr "D&evam Et"
+
+#~ msgid ""
+#~ "_: NAME OF TRANSLATORS\n"
+#~ "Your names"
+#~ msgstr "Görkem Çetin Engin ÇAĞATAY Alper Şen"
+
+#~ msgid ""
+#~ "_: EMAIL OF TRANSLATORS\n"
+#~ "Your emails"
+#~ msgstr "gorkem@kde.org engincagatay@yahoo.com aalpersen@gmail.com"
+
+#~ msgid "Enables/disables the toolbar"
+#~ msgstr "Araç çubuğunu açar/kapatır"
+
+#~ msgid "Files A and C have equal text. \n"
+#~ msgstr "A ve C dosyaları aynı metne sahip. \n"
+
+#~ msgid "Files B and C have equal text. \n"
+#~ msgstr "B ve C dosyaları aynı metne sahip. \n"
+
+#, fuzzy
+#~ msgid "Diff and Merge"
+#~ msgstr "Karşılaştırma ve Birleştirme"
+
+#, fuzzy
+#~ msgid "Save Directory Merge State ..."
+#~ msgstr "Dizin Birleştirmesi"
+
+#, fuzzy
+#~ msgid "Load Directory Merge State ..."
+#~ msgstr "Dizin Birleştirmesi"
+
+#, fuzzy
+#~ msgid "Synchronize Directories"
+#~ msgstr "Dizinler taranıyor..."
+
+#, fuzzy
+#~ msgid "Copy Newer Files Instead of Merging"
+#~ msgstr "Birleştirmek yerine daha yeni olanı kopyala (güvenli değil)"
+
+#, fuzzy
+#~ msgid "Manually match lines"
+#~ msgstr "El ile seçim"
+
+#, fuzzy
+#~ msgid "Has no effect. For compatibility with certain tools."
+#~ msgstr "Bazı araçlarla uyumluluk için."
+
+#~ msgid "For compatibility with certain tools."
+#~ msgstr "Bazı araçlarla uyumluluk için."
+
+#~ msgid "Colors in Editor & Diff Output"
+#~ msgstr "Düzenleyici ve Karşılaştırıcı Çıktısındaki Renkler"
diff --git a/po/tr/kdiff3plugin.po b/po/tr/kdiff3plugin.po
new file mode 100644 (file)
index 0000000..430f160
--- /dev/null
@@ -0,0 +1,101 @@
+# translation of kdiff3plugin.po to Turkish
+# Copyright (C) YEAR This_file_is_part_of_KDE
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Serdar Soytetir <tulliana@gmail.com>, 2008, 2009.
+# Muhammet Kara <muhammet.k@gmail.com>, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3plugin\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2009-04-09 13:56+0300\n"
+"Last-Translator: Muhammet Kara <muhammet.k@gmail.com>\n"
+"Language-Team: Turkish <yerellestirme@kde.org.tr>\n"
+"Language: tr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: kdiff3plugin.cpp:107
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#: kdiff3plugin.cpp:114
+#, kde-format
+msgid "Compare with %1"
+msgstr "%1 ile karşılaştır"
+
+#: kdiff3plugin.cpp:120
+#, kde-format
+msgid "Merge with %1"
+msgstr "%1 ile birleştir"
+
+#: kdiff3plugin.cpp:126
+#, kde-format
+msgid "Save '%1' for later"
+msgstr "'%1' dosyasını sonrası için kaydet"
+
+#: kdiff3plugin.cpp:132
+msgid "3-way merge with base"
+msgstr "Aslı ile 3-yollu birleştirme"
+
+#: kdiff3plugin.cpp:139
+msgid "Compare with ..."
+msgstr "Şununla karşılaştır ..."
+
+#: kdiff3plugin.cpp:149
+msgid "Clear list"
+msgstr "Listeyi temizle"
+
+#: kdiff3plugin.cpp:157
+msgid "Compare"
+msgstr "Karşılaştır"
+
+#: kdiff3plugin.cpp:163
+msgid "3 way comparison"
+msgstr "3 yollu karşılaştırma"
+
+#: kdiff3plugin.cpp:167
+msgid "About KDiff3 menu plugin ..."
+msgstr "KDiff3 menü eklentisi hakkında ..."
+
+#: kdiff3plugin.cpp:269
+msgid ""
+"KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+"KDiff3 Menü Eklentisi: Telif Hakkı (C) 2008 Joachim Eibl\n"
+"KDiff3 ana sayfası: http://kdiff3.sourceforge.net\n"
+"\n"
+
+#: kdiff3plugin.cpp:271
+msgid ""
+"Using the context menu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else, \"Save\" the first file for later, and "
+"it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With"
+"\" on the second file.\n"
+"For a 3-way merge first, \"Save\" the base file, then the branch to merge, "
+"and then \"3-way merge with base\" on the other branch which will be used as "
+"the destination.\n"
+"The same also applies to directory comparison and merge."
+msgstr ""
+"Bağlam menüsü uzantısının kullanımı:\n"
+"Seçilen iki dosyanın basit karşılaştırması için \"Karşılaştır\"ı seçin.\n"
+"Eğer diğer dosya başka bir yerdeyse, ilk dosyayı daha sonrası için \"Kaydedin"
+"\", böylece \"Karşılaştır ...\" alt menüsünde görünecektir. Sonra, "
+"\"Karşılaştır\"ı ikinci dosyada kullanın.\n"
+"3 yönlü bir birleştirme için önce, temel dosyayı, sonra birleştirilecek dalı "
+"\"Kaydedin\", ve sonra da hedef olarak kullanılacak diğer dalda \"temel "
+"dosyayla 3 yönlü birleştirme\" yapın.\n"
+"Aynı yöntem dizin karşılaştırma ve bireştirme için de geçerlidir."
+
+#: kdiff3plugin.cpp:279
+#, fuzzy
+#| msgid "About KDiff3 menu plugin ..."
+msgid "About KDiff3 Menu Plugin"
+msgstr "KDiff3 menü eklentisi hakkında ..."
diff --git a/po/ug/CMakeLists.txt b/po/ug/CMakeLists.txt
new file mode 100644 (file)
index 0000000..0d33e41
--- /dev/null
@@ -0,0 +1,2 @@
+file(GLOB _po_files *.po)
+GETTEXT_PROCESS_PO_FILES(ug ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
diff --git a/po/ug/kdiff3.po b/po/ug/kdiff3.po
new file mode 100644 (file)
index 0000000..c794fb2
--- /dev/null
@@ -0,0 +1,2913 @@
+# Uyghur translation for kdiff3.
+# Copyright (C) YEAR This_file_is_part_of_KDE
+# This file is distributed under the same license as the PACKAGE package.
+# Sahran <sahran.ug@gmail.com>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-05-09 19:00+0900\n"
+"Last-Translator: Sahran <sahran@live.com>\n"
+"Language-Team: Uyghur Computer Science Association <UKIJ@yahoogroups.com>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: kreplacements/kreplacements.h:105
+msgid "Continue"
+msgstr "داۋاملاشتۇر"
+
+#: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158
+#: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512
+msgid "Cancel"
+msgstr "ۋاز كەچ"
+
+#: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631
+msgid "Quit"
+msgstr "چېكىن"
+
+#: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339
+msgid "Ok"
+msgstr "Ok"
+
+#: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715
+msgid "Help"
+msgstr "ياردەم"
+
+#: kreplacements/kreplacements.cpp:185
+msgid "Defaults"
+msgstr "كۆڭۈلدىكى قىممەتلەر"
+
+#. i18n: file: kdiff3_shell.rc:4
+#. i18n: ectx: Menu (file)
+#: kreplacements/kreplacements.cpp:296 rc.cpp:14
+msgid "&File"
+msgstr "ھۆججەت(&F)"
+
+#: kreplacements/kreplacements.cpp:297
+msgid "&Edit"
+msgstr "تەھرىر(&E)"
+
+#. i18n: file: kdiff3_shell.rc:7
+#. i18n: ectx: Menu (directory)
+#: kreplacements/kreplacements.cpp:298 rc.cpp:17
+msgid "&Directory"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:50
+#. i18n: ectx: Menu (movement)
+#: kreplacements/kreplacements.cpp:301 rc.cpp:26
+msgid "&Movement"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:61
+#. i18n: ectx: Menu (diff)
+#: kreplacements/kreplacements.cpp:302 rc.cpp:29
+msgid "D&iffview"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:73
+#. i18n: ectx: Menu (merge)
+#: kreplacements/kreplacements.cpp:303 rc.cpp:32
+msgid "&Merge"
+msgstr "بىرلەشتۈر(&M)"
+
+#. i18n: file: kdiff3_shell.rc:95
+#. i18n: ectx: Menu (window)
+#: kreplacements/kreplacements.cpp:304 rc.cpp:35
+msgid "&Window"
+msgstr "كۆزنەك(&W)"
+
+#: kreplacements/kreplacements.cpp:305
+msgid "&Settings"
+msgstr "تەڭشەك(&S)"
+
+#: kreplacements/kreplacements.cpp:306
+msgid "&Help"
+msgstr "ياردەم(&H)"
+
+#: kreplacements/kreplacements.cpp:353
+msgid "&About"
+msgstr "ھەققىدە(&A)"
+
+#: kreplacements/kreplacements.cpp:369
+msgid "A&uthor"
+msgstr "ئاپتور(&U)"
+
+#: kreplacements/kreplacements.cpp:383
+msgid "&Thanks To"
+msgstr "تەشەككۈرلەر(&T)"
+
+#. i18n: file: kdiff3_shell.rc:30
+#. i18n: ectx: Menu (dir_current_merge_menu)
+#: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497
+#: rc.cpp:20
+msgid "Current Item Merge Operation"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:38
+#. i18n: ectx: Menu (dir_current_sync_menu)
+#: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498
+#: rc.cpp:23
+msgid "Current Item Sync Operation"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:597
+msgid "Open"
+msgstr "ئاچ"
+
+#: kreplacements/kreplacements.cpp:606
+msgid "Save"
+msgstr "ساقلا"
+
+#: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720
+msgid "Save As..."
+msgstr "باشقا ئاتتا ساقلا…"
+
+#: kreplacements/kreplacements.cpp:623
+msgid "Print..."
+msgstr "باس…"
+
+#: kreplacements/kreplacements.cpp:639
+msgid "Cut"
+msgstr "كەس"
+
+#: kreplacements/kreplacements.cpp:647
+msgid "Copy"
+msgstr "كۆچۈر"
+
+#: kreplacements/kreplacements.cpp:655
+msgid "Paste"
+msgstr "چاپلا"
+
+#: kreplacements/kreplacements.cpp:663
+msgid "Select All"
+msgstr "ھەممىنى تاللا"
+
+#: kreplacements/kreplacements.cpp:671
+msgid "Show Toolbar"
+msgstr "قورال بالداقنى كۆرسەت"
+
+#: kreplacements/kreplacements.cpp:679
+msgid "Show &Status Bar"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:687
+#, kde-format
+msgid "&Configure %1..."
+msgstr "%1 نى سەپلە(&C)…"
+
+#: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707
+msgid "About"
+msgstr "ھەققىدە"
+
+#: kreplacements/kreplacements.cpp:722
+msgid "Find"
+msgstr "ئىزدە"
+
+#: kreplacements/kreplacements.cpp:730
+msgid "Find Next"
+msgstr "كېيىنكىنى ئىزدە"
+
+#: kreplacements/kreplacements.cpp:750
+msgid "Select Font"
+msgstr "خەت نۇسخا تاللا"
+
+#: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676
+msgid ""
+"You selected a variable width font.\n"
+"\n"
+"Because this program doesn't handle variable width fonts\n"
+"correctly, you might experience problems while editing.\n"
+"\n"
+"Do you want to continue or do you want to select another font."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:792
+msgid "Incompatible font."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Continue at my own risk"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Select another font"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1134
+msgid "For more documentation, see the help-menu or the subdirectory doc."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "KDiff3-Usage"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Ignore"
+msgstr "پەرۋا قىلما"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Exit"
+msgstr "چېكىن"
+
+#: diff.cpp:251
+msgid "Writing clipboard data to temp file failed."
+msgstr ""
+
+#: diff.cpp:255
+msgid "From Clipboard"
+msgstr ""
+
+#: diff.cpp:471
+msgid "Expecting space after closing quotation mark."
+msgstr ""
+
+#: diff.cpp:474
+msgid "Not matching quotation marks."
+msgstr ""
+
+#: diff.cpp:496
+msgid "Unexpected quotation mark within argument."
+msgstr ""
+
+#: diff.cpp:503
+msgid "No program specified."
+msgstr ""
+
+#: diff.cpp:605
+#, kde-format
+msgid ""
+"Preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The preprocessing command will be disabled now."
+msgstr ""
+
+#: diff.cpp:653
+#, kde-format
+msgid ""
+"The line-matching-preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The line-matching-preprocessing command will be disabled now."
+msgstr ""
+
+#: diff.cpp:1776 diff.cpp:1790
+msgid ""
+"Data loss error:\n"
+"If it is reproducible please contact the author.\n"
+msgstr ""
+
+#: diff.cpp:1778 diff.cpp:1792
+msgid "Severe Internal Error"
+msgstr ""
+
+#: directorymergewindow.cpp:136
+msgid "Mix of links and normal files."
+msgstr ""
+
+#: directorymergewindow.cpp:143
+msgid "Link: "
+msgstr ""
+
+#: directorymergewindow.cpp:151
+msgid "Size. "
+msgstr ""
+
+#: directorymergewindow.cpp:164 directorymergewindow.cpp:174
+msgid "Date & Size: "
+msgstr ""
+
+#: directorymergewindow.cpp:184 directorymergewindow.cpp:190
+#, kde-format
+msgid "Creating temp copy of %1 failed."
+msgstr ""
+
+#: directorymergewindow.cpp:201 directorymergewindow.cpp:209
+#, kde-format
+msgid "Opening %1 failed."
+msgstr ""
+
+#: directorymergewindow.cpp:213
+msgid "Comparing file..."
+msgstr ""
+
+#: directorymergewindow.cpp:223 directorymergewindow.cpp:229
+#, kde-format
+msgid "Error reading from %1"
+msgstr ""
+
+#: directorymergewindow.cpp:358
+msgid "Name"
+msgstr "ئاتى"
+
+#: directorymergewindow.cpp:358
+msgid "Operation"
+msgstr "مەشغۇلات"
+
+#: directorymergewindow.cpp:358
+msgid "Status"
+msgstr "ھالەت"
+
+#: directorymergewindow.cpp:359
+msgid "Unsolved"
+msgstr ""
+
+#: directorymergewindow.cpp:359
+msgid "Solved"
+msgstr ""
+
+#: directorymergewindow.cpp:359
+msgid "Nonwhite"
+msgstr ""
+
+#: directorymergewindow.cpp:359
+msgid "White"
+msgstr "ئاق"
+
+#: directorymergewindow.cpp:388
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort "
+"the merge and rescan the directory?"
+msgstr ""
+
+#: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655
+#: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823
+msgid "Warning"
+msgstr "ئاگاھلاندۇرۇش"
+
+#: directorymergewindow.cpp:390 directorymergewindow.cpp:2965
+msgid "Rescan"
+msgstr ""
+
+#: directorymergewindow.cpp:391 pdiff.cpp:1081
+msgid "Continue Merging"
+msgstr ""
+
+#: directorymergewindow.cpp:548
+msgid "Opening of directories failed:"
+msgstr ""
+
+#: directorymergewindow.cpp:551
+#, kde-format
+msgid "Dir A \"%1\" does not exist or is not a directory.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:554
+#, kde-format
+msgid "Dir B \"%1\" does not exist or is not a directory.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:557
+#, kde-format
+msgid "Dir C \"%1\" does not exist or is not a directory.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:559
+msgid "Directory Open Error"
+msgstr ""
+
+#: directorymergewindow.cpp:567
+msgid ""
+"The destination directory must not be the same as A or B when three "
+"directories are merged.\n"
+"Check again before continuing."
+msgstr ""
+
+#: directorymergewindow.cpp:569
+msgid "Parameter Warning"
+msgstr ""
+
+#: directorymergewindow.cpp:574
+msgid "Scanning directories..."
+msgstr ""
+
+#: directorymergewindow.cpp:607
+msgid "Reading Directory A"
+msgstr ""
+
+#: directorymergewindow.cpp:629
+msgid "Reading Directory B"
+msgstr ""
+
+#: directorymergewindow.cpp:651
+msgid "Reading Directory C"
+msgstr ""
+
+#: directorymergewindow.cpp:677
+msgid "Some subdirectories were not readable in"
+msgstr ""
+
+#: directorymergewindow.cpp:682
+msgid "Check the permissions of the subdirectories."
+msgstr ""
+
+#: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737
+#: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233
+#: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328
+msgid "Ready."
+msgstr ""
+
+#: directorymergewindow.cpp:735
+msgid "Directory Comparison Status"
+msgstr ""
+
+#: directorymergewindow.cpp:736
+msgid "Number of subdirectories:"
+msgstr ""
+
+#: directorymergewindow.cpp:737
+msgid "Number of equal files:"
+msgstr ""
+
+#: directorymergewindow.cpp:738
+msgid "Number of different files:"
+msgstr ""
+
+#: directorymergewindow.cpp:741
+msgid "Number of manual merges:"
+msgstr ""
+
+#: directorymergewindow.cpp:912
+msgid "This affects all merge operations."
+msgstr ""
+
+#: directorymergewindow.cpp:913
+msgid "Changing All Merge Operations"
+msgstr ""
+
+#: directorymergewindow.cpp:1312
+msgid "Processing "
+msgstr "بىر تەرەپ قىلىۋاتىدۇ "
+
+#: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742
+msgid "To do."
+msgstr ""
+
+#: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996
+msgid "Copy A to B"
+msgstr ""
+
+#: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997
+msgid "Copy B to A"
+msgstr ""
+
+#: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998
+msgid "Delete A"
+msgstr ""
+
+#: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999
+msgid "Delete B"
+msgstr ""
+
+#: directorymergewindow.cpp:1814
+msgid "Delete A & B"
+msgstr ""
+
+#: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001
+msgid "Merge to A"
+msgstr ""
+
+#: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002
+msgid "Merge to B"
+msgstr ""
+
+#: directorymergewindow.cpp:1817
+msgid "Merge to A & B"
+msgstr ""
+
+#: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993
+msgid "Delete (if exists)"
+msgstr ""
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+#: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869
+msgid "Merge"
+msgstr "بىرىكتۈر"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+msgid "Merge (manual)"
+msgstr ""
+
+#: directorymergewindow.cpp:1824
+msgid "Error: Conflicting File Types"
+msgstr ""
+
+#: directorymergewindow.cpp:1825
+msgid "Error: Changed and Deleted"
+msgstr ""
+
+#: directorymergewindow.cpp:1826
+msgid "Error: Dates are equal but files are not."
+msgstr ""
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906
+msgid "This operation is currently not possible."
+msgstr ""
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174
+msgid "Operation Not Possible"
+msgstr ""
+
+#: directorymergewindow.cpp:1945
+msgid ""
+"This should never happen: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"If you know how to reproduce this, please contact the program author."
+msgstr ""
+
+#: directorymergewindow.cpp:1945
+msgid "Program Error"
+msgstr "پروگرامما خاتالىقى"
+
+#: directorymergewindow.cpp:1956
+msgid "An error occurred while copying.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025
+#: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105
+#: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123
+#: directorymergewindow.cpp:2374
+msgid "Error"
+msgstr "خاتالىق"
+
+#: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375
+msgid "Merge Error"
+msgstr ""
+
+#: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380
+msgid "Error."
+msgstr "خاتا."
+
+#: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272
+#: directorymergewindow.cpp:2312
+msgid "Done."
+msgstr "تامام."
+
+#: directorymergewindow.cpp:1990
+msgid "Not saved."
+msgstr ""
+
+#: directorymergewindow.cpp:2025
+msgid "Unknown merge operation. (This must never happen!)"
+msgstr ""
+
+#: directorymergewindow.cpp:2057
+msgid "Unknown merge operation."
+msgstr ""
+
+#: directorymergewindow.cpp:2072
+msgid ""
+"The merge is about to begin.\n"
+"\n"
+"Choose \"Do it\" if you have read the instructions and know what you are "
+"doing.\n"
+"Choosing \"Simulate it\" will tell you what would happen.\n"
+"\n"
+"Be aware that this program still has beta status and there is NO WARRANTY "
+"whatsoever! Make backups of your vital data!"
+msgstr ""
+
+#: directorymergewindow.cpp:2077
+msgid "Starting Merge"
+msgstr ""
+
+#: directorymergewindow.cpp:2078
+msgid "Do It"
+msgstr ""
+
+#: directorymergewindow.cpp:2079
+msgid "Simulate It"
+msgstr ""
+
+#: directorymergewindow.cpp:2105
+msgid ""
+"The highlighted item has a different type in the different directories. "
+"Select what to do."
+msgstr ""
+
+#: directorymergewindow.cpp:2114
+msgid ""
+"The modification dates of the file are equal but the files are not. Select "
+"what to do."
+msgstr ""
+
+#: directorymergewindow.cpp:2123
+msgid ""
+"The highlighted item was changed in one directory and deleted in the other. "
+"Select what to do."
+msgstr ""
+
+#: directorymergewindow.cpp:2174
+msgid ""
+"This operation is currently not possible because directory merge is "
+"currently running."
+msgstr ""
+
+#: directorymergewindow.cpp:2234
+msgid ""
+"There was an error in the last step.\n"
+"Do you want to continue with the item that caused the error or do you want "
+"to skip this item?"
+msgstr ""
+
+#: directorymergewindow.cpp:2236
+msgid "Continue merge after an error"
+msgstr ""
+
+#: directorymergewindow.cpp:2237
+msgid "Continue With Last Item"
+msgstr ""
+
+#: directorymergewindow.cpp:2238
+msgid "Skip Item"
+msgstr ""
+
+#: directorymergewindow.cpp:2272
+msgid "Skipped."
+msgstr ""
+
+#: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493
+msgid "In progress..."
+msgstr ""
+
+#: directorymergewindow.cpp:2327
+msgid "Merge operation complete."
+msgstr ""
+
+#: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330
+msgid "Merge Complete"
+msgstr ""
+
+#: directorymergewindow.cpp:2340
+msgid ""
+"Simulated merge complete: Check if you agree with the proposed operations."
+msgstr ""
+
+#: directorymergewindow.cpp:2374
+msgid "An error occurred. Press OK to see detailed information.\n"
+msgstr ""
+
+#: directorymergewindow.cpp:2406
+#, kde-format
+msgid "Error: While deleting %1: Creating backup failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2413
+#, kde-format
+msgid "delete directory recursively( %1 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2415
+#, kde-format
+msgid "delete( %1 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2430
+msgid "Error: delete dir operation failed while trying to read the directory."
+msgstr ""
+
+#: directorymergewindow.cpp:2449
+#, kde-format
+msgid "Error: rmdir( %1 ) operation failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2459
+msgid "Error: delete operation failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2485
+#, kde-format
+msgid "manual merge( %1, %2, %3 -> %4)"
+msgstr ""
+
+#: directorymergewindow.cpp:2488
+msgid ""
+"     Note: After a manual merge the user should continue by pressing F7."
+msgstr ""
+
+#: directorymergewindow.cpp:2513
+#, kde-format
+msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2522
+#, kde-format
+msgid "copyLink( %1 -> %2 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2533
+msgid "Error: copyLink failed: Remote links are not yet supported."
+msgstr ""
+
+#: directorymergewindow.cpp:2539
+msgid "Error: copyLink failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2564
+#, kde-format
+msgid "copy( %1 -> %2 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2590
+#, kde-format
+msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination."
+msgstr ""
+
+#: directorymergewindow.cpp:2596
+#, kde-format
+msgid "rename( %1 -> %2 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2605
+msgid "Error: Rename failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2623
+#, kde-format
+msgid "Error during makeDir of %1. Cannot delete existing file."
+msgstr ""
+
+#: directorymergewindow.cpp:2639
+#, kde-format
+msgid "makeDir( %1 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2649
+msgid "Error while creating directory."
+msgstr ""
+
+#: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784
+msgid "Dest"
+msgstr ""
+
+#: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709
+msgid "Dir"
+msgstr ""
+
+#: directorymergewindow.cpp:2678
+msgid "Type"
+msgstr "تىپى"
+
+#: directorymergewindow.cpp:2678
+msgid "Size"
+msgstr "چوڭلۇقى"
+
+#: directorymergewindow.cpp:2679
+msgid "Attr"
+msgstr ""
+
+#: directorymergewindow.cpp:2679
+msgid "Last Modification"
+msgstr ""
+
+#: directorymergewindow.cpp:2679
+msgid "Link-Destination"
+msgstr ""
+
+#: directorymergewindow.cpp:2709 difftextwindow.cpp:401
+msgid "File"
+msgstr "ھۆججەت"
+
+#: directorymergewindow.cpp:2726
+msgid "not available"
+msgstr "ئىشلەتكىلى بولمايدۇ"
+
+#: directorymergewindow.cpp:2746
+msgid "A (Dest): "
+msgstr ""
+
+#: directorymergewindow.cpp:2749
+msgid "A (Base): "
+msgstr ""
+
+#: directorymergewindow.cpp:2755
+msgid "B (Dest): "
+msgstr ""
+
+#: directorymergewindow.cpp:2763
+msgid "C (Dest): "
+msgstr ""
+
+#: directorymergewindow.cpp:2769
+msgid "Dest: "
+msgstr ""
+
+#: directorymergewindow.cpp:2836
+msgid "Save Directory Merge State As..."
+msgstr ""
+
+#: directorymergewindow.cpp:2959
+msgid "Start/Continue Directory Merge"
+msgstr ""
+
+#: directorymergewindow.cpp:2960
+msgid "Run Operation for Current Item"
+msgstr ""
+
+#: directorymergewindow.cpp:2961
+msgid "Compare Selected File"
+msgstr ""
+
+#: directorymergewindow.cpp:2962
+msgid "Merge Current File"
+msgstr ""
+
+#: directorymergewindow.cpp:2962
+msgid ""
+"Merge\n"
+"File"
+msgstr ""
+
+#: directorymergewindow.cpp:2963
+msgid "Fold All Subdirs"
+msgstr ""
+
+#: directorymergewindow.cpp:2964
+msgid "Unfold All Subdirs"
+msgstr ""
+
+#: directorymergewindow.cpp:2968
+msgid "Choose A for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2969
+msgid "Choose B for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2970
+msgid "Choose C for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2971
+msgid "Auto-Choose Operation for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2972
+msgid "No Operation for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2977
+msgid "Show Identical Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2977
+msgid ""
+"Identical\n"
+"Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2978
+msgid "Show Different Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2979
+msgid "Show Files only in A"
+msgstr ""
+
+#: directorymergewindow.cpp:2979
+msgid ""
+"Files\n"
+"only in A"
+msgstr ""
+
+#: directorymergewindow.cpp:2980
+msgid "Show Files only in B"
+msgstr ""
+
+#: directorymergewindow.cpp:2980
+msgid ""
+"Files\n"
+"only in B"
+msgstr ""
+
+#: directorymergewindow.cpp:2981
+msgid "Show Files only in C"
+msgstr ""
+
+#: directorymergewindow.cpp:2981
+msgid ""
+"Files\n"
+"only in C"
+msgstr ""
+
+#: directorymergewindow.cpp:2985
+msgid "Compare Explicitly Selected Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2986
+msgid "Merge Explicitly Selected Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995
+msgid "Do Nothing"
+msgstr "ھېچقانداق قىلما"
+
+#: directorymergewindow.cpp:2989
+msgid "A"
+msgstr "A"
+
+#: directorymergewindow.cpp:2990
+msgid "B"
+msgstr "B"
+
+#: directorymergewindow.cpp:2991
+msgid "C"
+msgstr "C"
+
+#: directorymergewindow.cpp:3000
+msgid "Delete A && B"
+msgstr ""
+
+#: directorymergewindow.cpp:3003
+msgid "Merge to A && B"
+msgstr ""
+
+#: main.cpp:74 main.cpp:76
+msgid "Ignored. (User defined.)"
+msgstr ""
+
+#: main.cpp:162
+msgid "kdiff3"
+msgstr ""
+
+#: main.cpp:164
+msgid "Tool for Comparison and Merge of Files and Directories"
+msgstr ""
+
+#: main.cpp:165
+msgid "(c) 2002-2011 Joachim Eibl"
+msgstr ""
+
+#: main.cpp:172 kdiff3_part.cpp:303
+msgid "Joachim Eibl"
+msgstr ""
+
+#: main.cpp:173
+msgid "Eike Sauer"
+msgstr ""
+
+#: main.cpp:173
+msgid "Bugfixes, Debian package maintainer"
+msgstr ""
+
+#: main.cpp:174
+msgid "Sebastien Fricker"
+msgstr ""
+
+#: main.cpp:174
+msgid "Windows installer"
+msgstr ""
+
+#: main.cpp:175
+msgid "Stephan Binner"
+msgstr "Stephan Binner"
+
+#: main.cpp:175
+msgid "i18n-help"
+msgstr ""
+
+#: main.cpp:176
+msgid "Stefan Partheymueller"
+msgstr ""
+
+#: main.cpp:176
+msgid "Clipboard-patch"
+msgstr ""
+
+#: main.cpp:177
+msgid "David Faure"
+msgstr "David Faure"
+
+#: main.cpp:177
+msgid "KIO-Help"
+msgstr ""
+
+#: main.cpp:178
+msgid "Bernd Gehrmann"
+msgstr "Bernd Gehrmann"
+
+#: main.cpp:178
+msgid "Class CvsIgnoreList from Cervisia"
+msgstr ""
+
+#: main.cpp:179
+msgid "Andre Woebbeking"
+msgstr ""
+
+#: main.cpp:179
+msgid "Class StringMatcher"
+msgstr ""
+
+#: main.cpp:180
+msgid "Michael Denio"
+msgstr ""
+
+#: main.cpp:180
+msgid "Directory Equality-Coloring patch"
+msgstr ""
+
+#: main.cpp:181
+msgid "Manfred Koehler"
+msgstr ""
+
+#: main.cpp:181
+msgid "Fix for slow startup on Windows"
+msgstr ""
+
+#: main.cpp:182
+msgid "Sergey Zorin"
+msgstr ""
+
+#: main.cpp:182
+msgid "Diff Ext for Windows"
+msgstr ""
+
+#: main.cpp:183
+msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+msgstr ""
+
+#: main.cpp:183
+msgid "GNU-Diffutils"
+msgstr ""
+
+#: main.cpp:184
+msgid "Tino Boellsterling, Timothy Mee"
+msgstr ""
+
+#: main.cpp:184
+msgid "Intensive test, use and feedback"
+msgstr ""
+
+#: main.cpp:185
+msgid "Michael Schmidt"
+msgstr ""
+
+#: main.cpp:185
+msgid "Mac support"
+msgstr ""
+
+#: main.cpp:186
+msgid "Valentin Rusu"
+msgstr ""
+
+#: main.cpp:186 main.cpp:187
+msgid "KDE4 porting"
+msgstr ""
+
+#: main.cpp:187
+msgid "Albert Astals Cid"
+msgstr "Albert Astals Cid"
+
+#: main.cpp:188
+msgid "Silvan Scherrer"
+msgstr ""
+
+#: main.cpp:188
+msgid "OS2 port"
+msgstr ""
+
+#: main.cpp:190
+msgid "+ Many thanks to those who reported bugs and contributed ideas!"
+msgstr ""
+
+#: main.cpp:196
+msgid "Merge the input."
+msgstr ""
+
+#: main.cpp:197
+msgid "Explicit base file. For compatibility with certain tools."
+msgstr ""
+
+#: main.cpp:198
+msgid "Output file. Implies -m. E.g.: -o newfile.txt"
+msgstr ""
+
+#: main.cpp:199
+msgid "Output file, again. (For compatibility with certain tools.)"
+msgstr ""
+
+#: main.cpp:200
+msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)"
+msgstr ""
+
+#: main.cpp:201
+msgid "Don't solve conflicts automatically. (For compatibility...)"
+msgstr ""
+
+#: main.cpp:202
+msgid "Visible name replacement for input file 1 (base)."
+msgstr ""
+
+#: main.cpp:203
+msgid "Visible name replacement for input file 2."
+msgstr ""
+
+#: main.cpp:204
+msgid "Visible name replacement for input file 3."
+msgstr ""
+
+#: main.cpp:205
+msgid "Alternative visible name replacement. Supply this once for every input."
+msgstr ""
+
+#: main.cpp:206
+msgid ""
+"Override a config setting. Use once for every setting. E.g.: --cs "
+"\"AutoAdvance=1\""
+msgstr ""
+
+#: main.cpp:207
+msgid "Show list of config settings and current values."
+msgstr ""
+
+#: main.cpp:208
+msgid "Use a different config file."
+msgstr ""
+
+#: main.cpp:211
+msgid "file1 to open (base, if not specified via --base)"
+msgstr ""
+
+#: main.cpp:212
+msgid "file2 to open"
+msgstr ""
+
+#: main.cpp:213
+msgid "file3 to open"
+msgstr ""
+
+#: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976
+#: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002
+#: mergeresultwindow.cpp:1014
+#, kde-format
+msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)"
+msgstr ""
+
+#: mergeresultwindow.cpp:303
+msgid ""
+"The output has been modified.\n"
+"If you continue your changes will be lost."
+msgstr ""
+
+#: mergeresultwindow.cpp:834 pdiff.cpp:532
+msgid "All input files are binary equal."
+msgstr ""
+
+#: mergeresultwindow.cpp:836
+msgid "All input files contain the same text."
+msgstr ""
+
+#: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840
+#: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540
+#, kde-format
+msgid "Files %1 and %2 are binary equal.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841
+#: mergeresultwindow.cpp:843
+#, kde-format
+msgid "Files %1 and %2 have equal text.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:849
+msgid "Total number of conflicts: "
+msgstr ""
+
+#: mergeresultwindow.cpp:850
+msgid ""
+"\n"
+"Nr of automatically solved conflicts: "
+msgstr ""
+
+#: mergeresultwindow.cpp:851
+msgid ""
+"\n"
+"Nr of unsolved conflicts: "
+msgstr ""
+
+#: mergeresultwindow.cpp:853
+msgid "Conflicts"
+msgstr "توقۇنۇشلار"
+
+#: mergeresultwindow.cpp:1728
+msgid "<No src line>"
+msgstr ""
+
+#: mergeresultwindow.cpp:1736
+msgid "<Merge Conflict (Whitespace only)>"
+msgstr ""
+
+#: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517
+msgid "<Merge Conflict>"
+msgstr ""
+
+#: mergeresultwindow.cpp:2725
+msgid ""
+"Not all conflicts are solved yet.\n"
+"File not saved.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736
+msgid "Conflicts Left"
+msgstr ""
+
+#: mergeresultwindow.cpp:2734
+msgid ""
+"There is a line end style conflict. Please choose the line end style "
+"manually.\n"
+"File not saved.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:2748
+msgid ""
+"\n"
+"\n"
+"Creating backup failed. File not saved."
+msgstr ""
+
+#: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792
+msgid "File Save Error"
+msgstr ""
+
+#: mergeresultwindow.cpp:2792
+msgid "Error while writing."
+msgstr ""
+
+#: mergeresultwindow.cpp:3122
+msgid "Output"
+msgstr "چىقار"
+
+#: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314
+msgid "[Modified]"
+msgstr ""
+
+#: mergeresultwindow.cpp:3141
+msgid "Encoding for saving"
+msgstr ""
+
+#: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737
+#: optiondialog.cpp:762
+msgid "Line end style:"
+msgstr ""
+
+#: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767
+msgid "Unix"
+msgstr ""
+
+#: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737
+msgid "DOS"
+msgstr "DOS"
+
+#: mergeresultwindow.cpp:3229
+msgid "Conflict"
+msgstr "توقۇنۇش"
+
+#: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263
+#: mergeresultwindow.cpp:3265
+msgid "Codec from"
+msgstr ""
+
+#: kdiff3_part.cpp:157 kdiff3_part.cpp:234
+msgid "Couldn't find files for comparison."
+msgstr ""
+
+#: kdiff3_part.cpp:302
+msgid "KDiff3Part"
+msgstr ""
+
+#: fileaccess.cpp:612
+msgid ""
+"While trying to make a backup, deleting an older backup failed. \n"
+"Filename: "
+msgstr ""
+
+#: fileaccess.cpp:619
+msgid ""
+"While trying to make a backup, renaming failed. \n"
+"Filenames: "
+msgstr ""
+
+#: fileaccess.cpp:643
+#, kde-format
+msgid "Getting file status: %1"
+msgstr ""
+
+#: fileaccess.cpp:686
+#, kde-format
+msgid "Reading file: %1"
+msgstr ""
+
+#: fileaccess.cpp:723
+#, kde-format
+msgid "Writing file: %1"
+msgstr ""
+
+#: fileaccess.cpp:751
+msgid "Out of memory"
+msgstr "ئەسلەك يېتىشمىدى"
+
+#: fileaccess.cpp:786
+#, kde-format
+msgid "Making directory: %1"
+msgstr ""
+
+#: fileaccess.cpp:806
+#, kde-format
+msgid "Removing directory: %1"
+msgstr ""
+
+#: fileaccess.cpp:821
+#, kde-format
+msgid "Removing file: %1"
+msgstr ""
+
+#: fileaccess.cpp:837
+#, kde-format
+msgid "Creating symbolic link: %1 -> %2"
+msgstr ""
+
+#: fileaccess.cpp:864
+#, kde-format
+msgid "Renaming file: %1 -> %2"
+msgstr ""
+
+#: fileaccess.cpp:897
+#, kde-format
+msgid "Copying file: %1 -> %2"
+msgstr ""
+
+#: fileaccess.cpp:911
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for reading failed. Filename: "
+"%1"
+msgstr ""
+
+#: fileaccess.cpp:917
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for writing failed. Filename: "
+"%1"
+msgstr ""
+
+#: fileaccess.cpp:932
+#, kde-format
+msgid "Error during file copy operation: Reading failed. Filename: %1"
+msgstr ""
+
+#: fileaccess.cpp:941
+#, kde-format
+msgid "Error during file copy operation: Writing failed. Filename: %1"
+msgstr ""
+
+#: fileaccess.cpp:1231
+msgid "Reading directory: "
+msgstr ""
+
+#: fileaccess.cpp:1355
+#, kde-format
+msgid "Listing directory: %1"
+msgstr ""
+
+#: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396
+msgid "&Cancel"
+msgstr "ۋاز كەچ(&C)"
+
+#: difftextwindow.cpp:403
+msgid "Line"
+msgstr "قۇر"
+
+#: difftextwindow.cpp:405
+msgid "Line not available"
+msgstr ""
+
+#: difftextwindow.cpp:1703 difftextwindow.cpp:1736
+msgid "Encoding:"
+msgstr "كودلاش:"
+
+#: difftextwindow.cpp:1759 kdiff3.cpp:831
+msgid "Top line"
+msgstr ""
+
+#: difftextwindow.cpp:1769
+msgid "End"
+msgstr "تامام"
+
+#: kdiff3.cpp:169
+msgid "Current Configuration:"
+msgstr ""
+
+#: kdiff3.cpp:174
+msgid "Config Option Error:"
+msgstr ""
+
+#: kdiff3.cpp:219
+msgid "Option --auto used, but no output file specified."
+msgstr ""
+
+#: kdiff3.cpp:369
+msgid "Option --auto ignored for directory comparison."
+msgstr ""
+
+#: kdiff3.cpp:405
+msgid "Saving failed."
+msgstr ""
+
+#: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214
+msgid "Opening of these files failed:"
+msgstr ""
+
+#: kdiff3.cpp:449
+msgid "File Open Error"
+msgstr ""
+
+#: kdiff3.cpp:477
+msgid "Opens documents for comparison..."
+msgstr ""
+
+#: kdiff3.cpp:479
+msgid "Reload"
+msgstr "قايتا يۈكلە"
+
+#: kdiff3.cpp:482
+msgid "Saves the merge result. All conflicts must be solved!"
+msgstr ""
+
+#: kdiff3.cpp:484
+msgid "Saves the current document as..."
+msgstr ""
+
+#: kdiff3.cpp:487
+msgid "Print the differences"
+msgstr ""
+
+#: kdiff3.cpp:490
+msgid "Quits the application"
+msgstr "پروگراممىدىن چېكىن"
+
+#: kdiff3.cpp:492
+msgid "Cuts the selected section and puts it to the clipboard"
+msgstr "تاللانغان بۆلەكنى كېسىپ چاپلاش تاختىسىغا كۆچۈرىدۇ"
+
+#: kdiff3.cpp:494
+msgid "Copies the selected section to the clipboard"
+msgstr "تاللانغان بۆلەكنى چاپلاش تاختىسىغا كۆچۈرىدۇ"
+
+#: kdiff3.cpp:496
+msgid "Pastes the clipboard contents to current position"
+msgstr ""
+
+#: kdiff3.cpp:498
+msgid "Select everything in current window"
+msgstr ""
+
+#: kdiff3.cpp:500
+msgid "Search for a string"
+msgstr "بىر ھەرپ-بەلگە ئىزدە"
+
+#: kdiff3.cpp:502
+msgid "Search again for the string"
+msgstr ""
+
+#: kdiff3.cpp:507
+msgid "Enables/disables the statusbar"
+msgstr ""
+
+#: kdiff3.cpp:511
+msgid "Configure KDiff3..."
+msgstr ""
+
+#: kdiff3.cpp:532
+msgid "Go to Current Delta"
+msgstr ""
+
+#: kdiff3.cpp:532
+msgid ""
+"Current\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:534
+msgid "Go to First Delta"
+msgstr ""
+
+#: kdiff3.cpp:534
+msgid ""
+"First\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:536
+msgid "Go to Last Delta"
+msgstr ""
+
+#: kdiff3.cpp:536
+msgid ""
+"Last\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:538
+msgid "(Skips white space differences when \"Show White Space\" is disabled.)"
+msgstr ""
+
+#: kdiff3.cpp:539
+msgid ""
+"(Does not skip white space differences even when \"Show White Space\" is "
+"disabled.)"
+msgstr ""
+
+#: kdiff3.cpp:540
+msgid "Go to Previous Delta"
+msgstr ""
+
+#: kdiff3.cpp:540
+msgid ""
+"Prev\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:542
+msgid "Go to Next Delta"
+msgstr ""
+
+#: kdiff3.cpp:542
+msgid ""
+"Next\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:544
+msgid "Go to Previous Conflict"
+msgstr ""
+
+#: kdiff3.cpp:544
+msgid ""
+"Prev\n"
+"Conflict"
+msgstr ""
+
+#: kdiff3.cpp:546
+msgid "Go to Next Conflict"
+msgstr ""
+
+#: kdiff3.cpp:546
+msgid ""
+"Next\n"
+"Conflict"
+msgstr ""
+
+#: kdiff3.cpp:548
+msgid "Go to Previous Unsolved Conflict"
+msgstr ""
+
+#: kdiff3.cpp:548
+msgid ""
+"Prev\n"
+"Unsolved"
+msgstr ""
+
+#: kdiff3.cpp:550
+msgid "Go to Next Unsolved Conflict"
+msgstr ""
+
+#: kdiff3.cpp:550
+msgid ""
+"Next\n"
+"Unsolved"
+msgstr ""
+
+#: kdiff3.cpp:552
+msgid "Select Line(s) From A"
+msgstr ""
+
+#: kdiff3.cpp:552
+msgid ""
+"Choose\n"
+"A"
+msgstr ""
+
+#: kdiff3.cpp:553
+msgid "Select Line(s) From B"
+msgstr ""
+
+#: kdiff3.cpp:553
+msgid ""
+"Choose\n"
+"B"
+msgstr ""
+
+#: kdiff3.cpp:554
+msgid "Select Line(s) From C"
+msgstr ""
+
+#: kdiff3.cpp:554
+msgid ""
+"Choose\n"
+"C"
+msgstr ""
+
+#: kdiff3.cpp:555
+msgid "Automatically Go to Next Unsolved Conflict After Source Selection"
+msgstr ""
+
+#: kdiff3.cpp:555
+msgid ""
+"Auto\n"
+"Next"
+msgstr ""
+
+#: kdiff3.cpp:557
+msgid "Show Space && Tabulator Characters for Differences"
+msgstr ""
+
+#: kdiff3.cpp:557
+msgid ""
+"White\n"
+"Characters"
+msgstr ""
+
+#: kdiff3.cpp:558
+msgid "Show White Space"
+msgstr ""
+
+#: kdiff3.cpp:558
+msgid ""
+"White\n"
+"Deltas"
+msgstr ""
+
+#: kdiff3.cpp:560
+msgid "Show Line Numbers"
+msgstr "قۇر نومۇرىنى كۆرسەت"
+
+#: kdiff3.cpp:560
+msgid ""
+"Line\n"
+"Numbers"
+msgstr ""
+
+#: kdiff3.cpp:561
+msgid "Choose A Everywhere"
+msgstr ""
+
+#: kdiff3.cpp:562
+msgid "Choose B Everywhere"
+msgstr ""
+
+#: kdiff3.cpp:563
+msgid "Choose C Everywhere"
+msgstr ""
+
+#: kdiff3.cpp:564
+msgid "Choose A for All Unsolved Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:565
+msgid "Choose B for All Unsolved Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:566
+msgid "Choose C for All Unsolved Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:567
+msgid "Choose A for All Unsolved Whitespace Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:568
+msgid "Choose B for All Unsolved Whitespace Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:569
+msgid "Choose C for All Unsolved Whitespace Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:570
+msgid "Automatically Solve Simple Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:571
+msgid "Set Deltas to Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:572
+msgid "Run Regular Expression Auto Merge"
+msgstr ""
+
+#: kdiff3.cpp:573
+msgid "Automatically Solve History Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:574
+msgid "Split Diff At Selection"
+msgstr ""
+
+#: kdiff3.cpp:575
+msgid "Join Selected Diffs"
+msgstr ""
+
+#: kdiff3.cpp:577
+msgid "Show Window A"
+msgstr ""
+
+#: kdiff3.cpp:578
+msgid "Show Window B"
+msgstr ""
+
+#: kdiff3.cpp:579
+msgid "Show Window C"
+msgstr ""
+
+#: kdiff3.cpp:580 kdiff3.cpp:591
+msgid "Focus Next Window"
+msgstr ""
+
+#: kdiff3.cpp:582
+msgid "Normal Overview"
+msgstr ""
+
+#: kdiff3.cpp:583
+msgid "A vs. B Overview"
+msgstr ""
+
+#: kdiff3.cpp:584
+msgid "A vs. C Overview"
+msgstr ""
+
+#: kdiff3.cpp:585
+msgid "B vs. C Overview"
+msgstr ""
+
+#: kdiff3.cpp:586
+msgid "Word Wrap Diff Windows"
+msgstr ""
+
+#: kdiff3.cpp:587
+msgid "Add Manual Diff Alignment"
+msgstr ""
+
+#: kdiff3.cpp:588
+msgid "Clear All Manual Diff Alignments"
+msgstr ""
+
+#: kdiff3.cpp:593
+msgid "Focus Prev Window"
+msgstr ""
+
+#: kdiff3.cpp:594
+msgid "Toggle Split Orientation"
+msgstr ""
+
+#: kdiff3.cpp:596
+msgid "Dir && Text Split Screen View"
+msgstr ""
+
+#: kdiff3.cpp:598
+msgid "Toggle Between Dir && Text View"
+msgstr ""
+
+#: kdiff3.cpp:654 pdiff.cpp:1812
+msgid "The merge result hasn't been saved."
+msgstr ""
+
+#: kdiff3.cpp:656
+msgid "Save && Quit"
+msgstr ""
+
+#: kdiff3.cpp:657
+msgid "Quit Without Saving"
+msgstr ""
+
+#: kdiff3.cpp:665 pdiff.cpp:1823
+msgid "Saving the merge result failed."
+msgstr ""
+
+#: kdiff3.cpp:676 pdiff.cpp:1078
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort?"
+msgstr ""
+
+#: kdiff3.cpp:701
+msgid "Saving file..."
+msgstr "ھۆججەت ساقلاۋاتىدۇ…"
+
+#: kdiff3.cpp:718
+msgid "Saving file with a new filename..."
+msgstr ""
+
+#: kdiff3.cpp:781
+msgid "Printing not implemented."
+msgstr ""
+
+#: kdiff3.cpp:815
+msgid "Printing..."
+msgstr "بېسىۋاتىدۇ…"
+
+#: kdiff3.cpp:956
+msgid "Selection"
+msgstr "تاللانما"
+
+#: kdiff3.cpp:982
+msgid "Printing completed."
+msgstr ""
+
+#: kdiff3.cpp:986
+msgid "Printing aborted."
+msgstr ""
+
+#: kdiff3.cpp:993
+msgid "Exiting..."
+msgstr "چېكىنىۋاتىدۇ…"
+
+#: kdiff3.cpp:1006
+msgid "Toggling toolbar..."
+msgstr ""
+
+#: kdiff3.cpp:1027
+msgid "Toggle the statusbar..."
+msgstr ""
+
+#: smalldialogs.cpp:58
+msgid "A (Base):"
+msgstr ""
+
+#: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99
+#: smalldialogs.cpp:142
+msgid "File..."
+msgstr "ھۆججەت …"
+
+#: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101
+#: smalldialogs.cpp:144
+msgid "Dir..."
+msgstr ""
+
+#: smalldialogs.cpp:93
+msgid "C (Optional):"
+msgstr ""
+
+#: smalldialogs.cpp:116
+msgid "Swap/Copy Names ..."
+msgstr ""
+
+#: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123
+#, kde-format
+msgid "Swap %1<->%2"
+msgstr ""
+
+#: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126
+#, kde-format
+msgid "Copy %1->Output"
+msgstr ""
+
+#: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129
+#, kde-format
+msgid "Swap %1<->Output"
+msgstr ""
+
+#: smalldialogs.cpp:136
+msgid "Output (optional):"
+msgstr ""
+
+#: smalldialogs.cpp:168
+msgid "Configure..."
+msgstr "سەپلە…"
+
+#: smalldialogs.cpp:174
+msgid "&OK"
+msgstr "جەزملە(&O)"
+
+#: smalldialogs.cpp:362
+msgid "Search text:"
+msgstr ""
+
+#: smalldialogs.cpp:369
+msgid "Case sensitive"
+msgstr "چوڭ كىچىك يېزىلىشنى پەرقلەندۈر"
+
+#: smalldialogs.cpp:372
+msgid "Search A"
+msgstr ""
+
+#: smalldialogs.cpp:377
+msgid "Search B"
+msgstr ""
+
+#: smalldialogs.cpp:382
+msgid "Search C"
+msgstr ""
+
+#: smalldialogs.cpp:387
+msgid "Search output"
+msgstr ""
+
+#: smalldialogs.cpp:392
+msgid "&Search"
+msgstr "ئىزدە(&S)"
+
+#: smalldialogs.cpp:409
+msgid "Regular Expression Tester"
+msgstr ""
+
+#: smalldialogs.cpp:414 optiondialog.cpp:936
+msgid "Auto merge regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:422
+msgid "Example auto merge line:"
+msgstr ""
+
+#: smalldialogs.cpp:424
+msgid "To test auto merge, copy a line as used in your files."
+msgstr ""
+
+#: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494
+msgid "Match result:"
+msgstr ""
+
+#: smalldialogs.cpp:441 optiondialog.cpp:962
+msgid "History start regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:449
+msgid "Example history start line (with leading comment):"
+msgstr ""
+
+#: smalldialogs.cpp:451
+msgid ""
+"Copy a history start line as used in your files,\n"
+"including the leading comment."
+msgstr ""
+
+#: smalldialogs.cpp:469 optiondialog.cpp:972
+msgid "History entry start regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:477
+msgid "History sort key order:"
+msgstr ""
+
+#: smalldialogs.cpp:485
+msgid "Example history entry start line (without leading comment):"
+msgstr ""
+
+#: smalldialogs.cpp:487
+msgid ""
+"Copy a history entry start line as used in your files,\n"
+"but omit the leading comment."
+msgstr ""
+
+#: smalldialogs.cpp:501
+msgid "Sort key result:"
+msgstr ""
+
+#: smalldialogs.cpp:508
+msgid "OK"
+msgstr "جەزملە"
+
+#: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583
+msgid "Match success."
+msgstr ""
+
+#: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589
+msgid "Match failed."
+msgstr ""
+
+#: smalldialogs.cpp:574
+msgid "Opening and closing parentheses do not match in regular expression."
+msgstr ""
+
+#: optiondialog.cpp:367
+msgid "Unicode, 8 bit"
+msgstr ""
+
+#: optiondialog.cpp:368
+msgid "Unicode"
+msgstr "يۇنىكود"
+
+#: optiondialog.cpp:369
+msgid "Latin1"
+msgstr "Latin1"
+
+#: optiondialog.cpp:388
+msgid "Change this if non-ASCII characters are not displayed correctly."
+msgstr ""
+
+#: optiondialog.cpp:465
+msgid "Configure"
+msgstr "سەپلە"
+
+#: optiondialog.cpp:531
+msgid "Font"
+msgstr "خەت نۇسخا"
+
+#: optiondialog.cpp:532
+msgid "Editor & Diff Output Font"
+msgstr ""
+
+#: optiondialog.cpp:556
+msgid "Italic font for deltas"
+msgstr ""
+
+#: optiondialog.cpp:559
+msgid ""
+"Selects the italic version of the font for differences.\n"
+"If the font doesn't support italic characters, then this does nothing."
+msgstr ""
+
+#: optiondialog.cpp:568
+msgid "Color"
+msgstr "رەڭ"
+
+#: optiondialog.cpp:569
+msgid "Colors Settings"
+msgstr ""
+
+#: optiondialog.cpp:588
+msgid "Editor and Diff Views:"
+msgstr ""
+
+#: optiondialog.cpp:596
+msgid "Foreground color:"
+msgstr "ئالدى رەڭگى:"
+
+#: optiondialog.cpp:603
+msgid "Background color:"
+msgstr "تەگلىك رەڭگى:"
+
+#: optiondialog.cpp:612
+msgid "Diff background color:"
+msgstr ""
+
+#: optiondialog.cpp:620
+msgid "Color A:"
+msgstr ""
+
+#: optiondialog.cpp:628
+msgid "Color B:"
+msgstr ""
+
+#: optiondialog.cpp:636
+msgid "Color C:"
+msgstr ""
+
+#: optiondialog.cpp:643
+msgid "Conflict color:"
+msgstr ""
+
+#: optiondialog.cpp:651
+msgid "Current range background color:"
+msgstr ""
+
+#: optiondialog.cpp:659
+msgid "Current range diff background color:"
+msgstr ""
+
+#: optiondialog.cpp:666
+msgid "Color for manually aligned difference ranges:"
+msgstr ""
+
+#: optiondialog.cpp:672
+msgid "Directory Comparison View:"
+msgstr ""
+
+#: optiondialog.cpp:678
+msgid "Newest file color:"
+msgstr ""
+
+#: optiondialog.cpp:682
+msgid ""
+"Changing this color will only be effective when starting the next directory "
+"comparison."
+msgstr ""
+
+#: optiondialog.cpp:687
+msgid "Oldest file color:"
+msgstr ""
+
+#: optiondialog.cpp:695
+msgid "Middle age file color:"
+msgstr ""
+
+#: optiondialog.cpp:703
+msgid "Color for missing files:"
+msgstr ""
+
+#: optiondialog.cpp:717
+msgid "Editor"
+msgstr "تەھرىرلىگۈچ"
+
+#: optiondialog.cpp:718
+msgid "Editor Behavior"
+msgstr ""
+
+#: optiondialog.cpp:732
+msgid "Tab inserts spaces"
+msgstr ""
+
+#: optiondialog.cpp:735
+msgid ""
+"On: Pressing tab generates the appropriate number of spaces.\n"
+"Off: A tab character will be inserted."
+msgstr ""
+
+#: optiondialog.cpp:741
+msgid "Tab size:"
+msgstr ""
+
+#: optiondialog.cpp:747
+msgid "Auto indentation"
+msgstr ""
+
+#: optiondialog.cpp:750
+msgid "On: The indentation of the previous line is used for a new line.\n"
+msgstr ""
+
+#: optiondialog.cpp:754
+msgid "Auto copy selection"
+msgstr ""
+
+#: optiondialog.cpp:757
+msgid ""
+"On: Any selection is immediately written to the clipboard.\n"
+"Off: You must explicitely copy e.g. via Ctrl-C."
+msgstr ""
+
+#: optiondialog.cpp:768
+msgid "Dos/Windows"
+msgstr ""
+
+#: optiondialog.cpp:769
+msgid "Autodetect"
+msgstr "ئۆزلۈكىدىن بايقا"
+
+#: optiondialog.cpp:772
+msgid ""
+"Sets the line endings for when an edited file is saved.\n"
+"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A"
+msgstr ""
+
+#: optiondialog.cpp:784
+msgid "Diff"
+msgstr "سېلىشتۇرۇش(Diff)"
+
+#: optiondialog.cpp:785
+msgid "Diff Settings"
+msgstr ""
+
+#: optiondialog.cpp:809
+msgid "Treat as white space."
+msgstr ""
+
+#: optiondialog.cpp:811
+msgid "Ignore numbers"
+msgstr ""
+
+#: optiondialog.cpp:814
+msgid ""
+"Ignore number characters during line matching phase. (Similar to Ignore "
+"white space.)\n"
+"Might help to compare files with numeric data."
+msgstr ""
+
+#: optiondialog.cpp:819
+msgid "Ignore C/C++ comments"
+msgstr ""
+
+#: optiondialog.cpp:821
+msgid "Treat C/C++ comments like white space."
+msgstr ""
+
+#: optiondialog.cpp:825
+msgid "Ignore case"
+msgstr ""
+
+#: optiondialog.cpp:828
+msgid "Treat case differences like white space changes. ('a'<=>'A')"
+msgstr ""
+
+#: optiondialog.cpp:832
+msgid "Preprocessor command:"
+msgstr ""
+
+#: optiondialog.cpp:836
+msgid "User defined pre-processing. (See the docs for details.)"
+msgstr ""
+
+#: optiondialog.cpp:839
+msgid "Line-matching preprocessor command:"
+msgstr ""
+
+#: optiondialog.cpp:843
+msgid ""
+"This pre-processor is only used during line matching.\n"
+"(See the docs for details.)"
+msgstr ""
+
+#: optiondialog.cpp:846
+msgid "Try hard (slower)"
+msgstr ""
+
+#: optiondialog.cpp:849
+msgid ""
+"Enables the --minimal option for the external diff.\n"
+"The analysis of big files will be much slower."
+msgstr ""
+
+#: optiondialog.cpp:854
+msgid "Align B and C for 3 input files"
+msgstr ""
+
+#: optiondialog.cpp:857
+msgid ""
+"Try to align B and C when comparing or merging three input files.\n"
+"Not recommended for merging because merge might get more complicated.\n"
+"(Default is off.)"
+msgstr ""
+
+#: optiondialog.cpp:870
+msgid "Merge Settings"
+msgstr ""
+
+#: optiondialog.cpp:885
+msgid "Auto advance delay (ms):"
+msgstr ""
+
+#: optiondialog.cpp:890
+msgid ""
+"When in Auto-Advance mode the result of the current selection is shown \n"
+"for the specified time, before jumping to the next conflict. Range: 0-2000 ms"
+msgstr ""
+
+#: optiondialog.cpp:895
+msgid "Show info dialogs"
+msgstr ""
+
+#: optiondialog.cpp:897
+msgid "Show a dialog with information about the number of conflicts."
+msgstr ""
+
+#: optiondialog.cpp:900
+msgid "White space 2-file merge default:"
+msgstr ""
+
+#: optiondialog.cpp:904 optiondialog.cpp:917
+msgid "Manual Choice"
+msgstr ""
+
+#: optiondialog.cpp:908 optiondialog.cpp:922
+msgid ""
+"Allow the merge algorithm to automatically select an input for white-space-"
+"only changes."
+msgstr ""
+
+#: optiondialog.cpp:913
+msgid "White space 3-file merge default:"
+msgstr ""
+
+#: optiondialog.cpp:927
+msgid "Automatic Merge Regular Expression"
+msgstr ""
+
+#: optiondialog.cpp:940
+msgid ""
+"Regular expression for lines where KDiff3 should automatically choose one "
+"source.\n"
+"When a line with a conflict matches the regular expression then\n"
+"- if available - C, otherwise B will be chosen."
+msgstr ""
+
+#: optiondialog.cpp:946
+msgid "Run regular expression auto merge on merge start"
+msgstr ""
+
+#: optiondialog.cpp:948
+msgid ""
+"Run the merge for auto merge regular expressions\n"
+"immediately when a merge starts.\n"
+msgstr ""
+
+#: optiondialog.cpp:953
+msgid "Version Control History Merging"
+msgstr ""
+
+#: optiondialog.cpp:966
+msgid ""
+"Regular expression for the start of the version control history entry.\n"
+"Usually this line contains the \"$Log$\" keyword.\n"
+"Default value: \".*\\$Log.*\\$.*\""
+msgstr ""
+
+#: optiondialog.cpp:984
+msgid ""
+"A version control history entry consists of several lines.\n"
+"Specify the regular expression to detect the first line (without the leading "
+"comment).\n"
+"Use parentheses to group the keys you want to use for sorting.\n"
+"If left empty, then KDiff3 assumes that empty lines separate history "
+"entries.\n"
+"See the documentation for details."
+msgstr ""
+
+#: optiondialog.cpp:992
+msgid "History merge sorting"
+msgstr ""
+
+#: optiondialog.cpp:994
+msgid "Sort version control history by a key."
+msgstr ""
+
+#: optiondialog.cpp:1004
+msgid "History entry start sort key order:"
+msgstr ""
+
+#: optiondialog.cpp:1008
+msgid ""
+"Each pair of parentheses used in the regular expression for the history "
+"start entry\n"
+"groups a key that can be used for sorting.\n"
+"Specify the list of keys (that are numbered in order of occurrence\n"
+"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n"
+"If left empty, then no sorting will be done.\n"
+"See the documentation for details."
+msgstr ""
+
+#: optiondialog.cpp:1019
+msgid "Merge version control history on merge start"
+msgstr ""
+
+#: optiondialog.cpp:1021
+msgid "Run version control history automerge on merge start."
+msgstr ""
+
+#: optiondialog.cpp:1025
+msgid "Max number of history entries:"
+msgstr ""
+
+#: optiondialog.cpp:1028
+msgid "Cut off after specified number. Use -1 for infinite number of entries."
+msgstr ""
+
+#: optiondialog.cpp:1032
+msgid "Test your regular expressions"
+msgstr ""
+
+#: optiondialog.cpp:1037
+msgid "Irrelevant merge command:"
+msgstr ""
+
+#: optiondialog.cpp:1041
+msgid ""
+"If specified this script is run after automerge\n"
+"when no other relevant changes were detected.\n"
+"Called with the parameters: filename1 filename2 filename3"
+msgstr ""
+
+#: optiondialog.cpp:1047
+msgid "Auto save and quit on merge without conflicts"
+msgstr ""
+
+#: optiondialog.cpp:1050
+msgid ""
+"If KDiff3 was started for a file-merge from the command line and all\n"
+"conflicts are solvable without user interaction then automatically save and "
+"quit.\n"
+"(Similar to command line option \"--auto\".)"
+msgstr ""
+
+#: optiondialog.cpp:1061 optiondialog.cpp:1062
+msgid "Directory"
+msgstr "مۇندەرىجە"
+
+#: optiondialog.cpp:1075
+msgid "Recursive directories"
+msgstr ""
+
+#: optiondialog.cpp:1077
+msgid "Whether to analyze subdirectories or not."
+msgstr ""
+
+#: optiondialog.cpp:1079
+msgid "File pattern(s):"
+msgstr ""
+
+#: optiondialog.cpp:1084
+msgid ""
+"Pattern(s) of files to be analyzed. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1090
+msgid "File-anti-pattern(s):"
+msgstr ""
+
+#: optiondialog.cpp:1095
+msgid ""
+"Pattern(s) of files to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1101
+msgid "Dir-anti-pattern(s):"
+msgstr ""
+
+#: optiondialog.cpp:1106
+msgid ""
+"Pattern(s) of directories to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1112
+msgid "Use .cvsignore"
+msgstr ""
+
+#: optiondialog.cpp:1115
+msgid ""
+"Extends the antipattern to anything that would be ignored by CVS.\n"
+"Via local \".cvsignore\" files this can be directory specific."
+msgstr ""
+
+#: optiondialog.cpp:1120
+msgid "Find hidden files and directories"
+msgstr ""
+
+#: optiondialog.cpp:1123
+msgid "Finds files and directories with the hidden attribute."
+msgstr ""
+
+#: optiondialog.cpp:1125
+msgid "Finds files and directories starting with '.'."
+msgstr ""
+
+#: optiondialog.cpp:1129
+msgid "Follow file links"
+msgstr ""
+
+#: optiondialog.cpp:1132
+msgid ""
+"On: Compare the file the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+
+#: optiondialog.cpp:1137
+msgid "Follow directory links"
+msgstr ""
+
+#: optiondialog.cpp:1140
+msgid ""
+"On: Compare the directory the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+
+#: optiondialog.cpp:1156
+msgid "Case sensitive filename comparison"
+msgstr ""
+
+#: optiondialog.cpp:1159
+msgid ""
+"The directory comparison will compare files or directories when their names "
+"match.\n"
+"Set this option if the case of the names must match. (Default for Windows is "
+"off, otherwise on.)"
+msgstr ""
+
+#: optiondialog.cpp:1163
+msgid "File Comparison Mode"
+msgstr ""
+
+#: optiondialog.cpp:1169
+msgid "Binary comparison"
+msgstr ""
+
+#: optiondialog.cpp:1170
+msgid "Binary comparison of each file. (Default)"
+msgstr ""
+
+#: optiondialog.cpp:1173
+msgid "Full analysis"
+msgstr ""
+
+#: optiondialog.cpp:1174
+msgid ""
+"Do a full analysis and show statistics information in extra columns.\n"
+"(Slower than a binary comparison, much slower for binary files.)"
+msgstr ""
+
+#: optiondialog.cpp:1178
+msgid "Trust the size and modification date (unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1179
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"Files with equal contents but different modification dates will appear as "
+"different.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+
+#: optiondialog.cpp:1184
+msgid ""
+"Trust the size and date, but use binary comparison if date does not match "
+"(unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1185
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"If the dates are not equal but the sizes are, use binary comparison.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+
+#: optiondialog.cpp:1190
+msgid "Trust the size (unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1191
+msgid ""
+"Assume that files are equal if their file lengths are equal.\n"
+"Useful for big directories or slow networks when the date is modified during "
+"download."
+msgstr ""
+
+#: optiondialog.cpp:1199
+msgid "Synchronize directories"
+msgstr ""
+
+#: optiondialog.cpp:1202
+msgid ""
+"Offers to store files in both directories so that\n"
+"both directories are the same afterwards.\n"
+"Works only when comparing two directories without specifying a destination."
+msgstr ""
+
+#: optiondialog.cpp:1208
+msgid "White space differences considered equal"
+msgstr ""
+
+#: optiondialog.cpp:1211
+msgid ""
+"If files differ only by white space consider them equal.\n"
+"This is only active when full analysis is chosen."
+msgstr ""
+
+#: optiondialog.cpp:1217
+msgid "Copy newer instead of merging (unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1220
+msgid ""
+"Don't look inside, just take the newer file.\n"
+"(Use this only if you know what you are doing!)\n"
+"Only effective when comparing two directories."
+msgstr ""
+
+#: optiondialog.cpp:1225
+msgid "Backup files (.orig)"
+msgstr ""
+
+#: optiondialog.cpp:1228
+msgid ""
+"If a file would be saved over an old file, then the old file\n"
+"will be renamed with a '.orig' extension instead of being deleted."
+msgstr ""
+
+#: optiondialog.cpp:1301 optiondialog.cpp:1302
+msgid "Regional Settings"
+msgstr ""
+
+#: optiondialog.cpp:1402
+msgid "Language (restart required)"
+msgstr ""
+
+#: optiondialog.cpp:1445
+msgid ""
+"Choose the language of the GUI strings or \"Auto\".\n"
+"For a change of language to take place, quit and restart KDiff3."
+msgstr ""
+
+#: optiondialog.cpp:1463
+msgid "Use the same encoding for everything:"
+msgstr ""
+
+#: optiondialog.cpp:1466
+msgid ""
+"Enable this allows to change all encodings by changing the first only.\n"
+"Disable this if different individual settings are needed."
+msgstr ""
+
+#: optiondialog.cpp:1471
+msgid "Note: Local Encoding is "
+msgstr ""
+
+#: optiondialog.cpp:1475
+msgid "File Encoding for A:"
+msgstr ""
+
+#: optiondialog.cpp:1481
+msgid ""
+"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n"
+"If the file is not Unicode then the selected encoding will be used as "
+"fallback.\n"
+"(Unicode detection depends on the first bytes of a file.)"
+msgstr ""
+
+#: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503
+msgid "Auto Detect Unicode"
+msgstr ""
+
+#: optiondialog.cpp:1490
+msgid "File Encoding for B:"
+msgstr ""
+
+#: optiondialog.cpp:1499
+msgid "File Encoding for C:"
+msgstr ""
+
+#: optiondialog.cpp:1508
+msgid "File Encoding for Merge Output and Saving:"
+msgstr ""
+
+#: optiondialog.cpp:1512
+msgid "Auto Select"
+msgstr "ئۆزلۈكىدىن تاللا"
+
+#: optiondialog.cpp:1515
+msgid ""
+"If enabled then the encoding from the input files is used.\n"
+"In ambiguous cases a dialog will ask the user to choose the encoding for "
+"saving."
+msgstr ""
+
+#: optiondialog.cpp:1519
+msgid "File Encoding for Preprocessor Files:"
+msgstr ""
+
+#: optiondialog.cpp:1530
+msgid "Right To Left Language"
+msgstr ""
+
+#: optiondialog.cpp:1533
+msgid ""
+"Some languages are read from right to left.\n"
+"This setting will change the viewer and editor accordingly."
+msgstr ""
+
+#: optiondialog.cpp:1548
+msgid "Integration"
+msgstr "توپلاشتۇرۇش"
+
+#: optiondialog.cpp:1549
+msgid "Integration Settings"
+msgstr ""
+
+#: optiondialog.cpp:1563
+msgid "Command line options to ignore:"
+msgstr ""
+
+#: optiondialog.cpp:1568
+msgid ""
+"List of command line options that should be ignored when KDiff3 is used by "
+"other tools.\n"
+"Several values can be specified if separated via ';'\n"
+"This will suppress the \"Unknown option\" error."
+msgstr ""
+
+#: optiondialog.cpp:1575
+msgid "Quit also via Escape key"
+msgstr ""
+
+#: optiondialog.cpp:1578
+msgid ""
+"Fast method to exit.\n"
+"For those who are used to using the Escape key."
+msgstr ""
+
+#: optiondialog.cpp:1583
+msgid "Integrate with ClearCase"
+msgstr ""
+
+#: optiondialog.cpp:1586
+msgid ""
+"Integrate with Rational ClearCase from IBM.\n"
+"Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n"
+"(Only enabled when ClearCase \"bin\" directory is in the path.)"
+msgstr ""
+
+#: optiondialog.cpp:1592
+msgid "Remove ClearCase Integration"
+msgstr ""
+
+#: optiondialog.cpp:1595
+msgid ""
+"Restore the old \"map\" file from before doing the ClearCase integration."
+msgstr ""
+
+#: optiondialog.cpp:1680
+msgid "Incompatible Font"
+msgstr ""
+
+#: optiondialog.cpp:1681
+msgid "Continue at Own Risk"
+msgstr ""
+
+#: optiondialog.cpp:1682
+msgid "Select Another Font"
+msgstr ""
+
+#: optiondialog.cpp:1717
+msgid "This resets all options. Not only those of the current topic."
+msgstr ""
+
+#: pdiff.cpp:260
+msgid "PreprocessorCmd: "
+msgstr ""
+
+#: pdiff.cpp:265
+msgid "The following option(s) you selected might change data:\n"
+msgstr ""
+
+#: pdiff.cpp:266
+msgid ""
+"\n"
+"Most likely this is not wanted during a merge.\n"
+"Do you want to disable these settings or continue with these settings active?"
+msgstr ""
+
+#: pdiff.cpp:268
+msgid "Option Unsafe for Merging"
+msgstr ""
+
+#: pdiff.cpp:269
+msgid "Use These Options During Merge"
+msgstr ""
+
+#: pdiff.cpp:270
+msgid "Disable Unsafe Options"
+msgstr ""
+
+#: pdiff.cpp:300
+msgid "Loading A"
+msgstr ""
+
+#: pdiff.cpp:304
+msgid "Loading B"
+msgstr ""
+
+#: pdiff.cpp:321 pdiff.cpp:347
+msgid "Diff: A <-> B"
+msgstr ""
+
+#: pdiff.cpp:327 pdiff.cpp:372
+msgid "Linediff: A <-> B"
+msgstr ""
+
+#: pdiff.cpp:338
+msgid "Loading C"
+msgstr ""
+
+#: pdiff.cpp:350
+msgid "Diff: B <-> C"
+msgstr ""
+
+#: pdiff.cpp:353
+msgid "Diff: A <-> C"
+msgstr ""
+
+#: pdiff.cpp:375
+msgid "Linediff: B <-> C"
+msgstr ""
+
+#: pdiff.cpp:378
+msgid "Linediff: A <-> C"
+msgstr ""
+
+#: pdiff.cpp:534
+msgid "All input files contain the same text, but are not binary equal."
+msgstr ""
+
+#: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541
+#, kde-format
+msgid "Files %1 and %2 have equal text, but are not binary equal. \n"
+msgstr ""
+
+#: pdiff.cpp:551
+msgid ""
+"Some inputfiles don't seem to be pure textfiles.\n"
+"Note that the KDiff3-merge was not meant for binary data.\n"
+"Continue at your own risk."
+msgstr ""
+
+#: pdiff.cpp:566
+#, kde-format
+msgid ""
+"Some input characters could not be converted to valid unicode.\n"
+"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n"
+"Don't save the result if unsure. Continue at your own risk.\n"
+"Affected input files are in %1."
+msgstr ""
+
+#: pdiff.cpp:1080
+msgid "Abort"
+msgstr "توختات"
+
+#: pdiff.cpp:1087 pdiff.cpp:1175
+msgid "Opening files..."
+msgstr ""
+
+#: pdiff.cpp:1152 pdiff.cpp:1223
+msgid "File open error"
+msgstr ""
+
+#: pdiff.cpp:1255
+msgid "Cutting selection..."
+msgstr "تاللانغاننى كېسىۋاتىدۇ…"
+
+#: pdiff.cpp:1276
+msgid "Copying selection to clipboard..."
+msgstr "تاللانغاننى چاپلاش تاختىسىغا كۆچۈرۈۋاتىدۇ"
+
+#: pdiff.cpp:1292
+msgid "Inserting clipboard contents..."
+msgstr "چاپلاش تاختىسى مەزمۇنلىرىنى قىستۇرۇۋاتىدۇ…"
+
+#: pdiff.cpp:1814
+msgid "Save && Continue"
+msgstr ""
+
+#: pdiff.cpp:1815
+msgid "Continue Without Saving"
+msgstr ""
+
+#: pdiff.cpp:2018
+msgid "Search complete."
+msgstr "ئىزدەش تاماملاندى."
+
+#: pdiff.cpp:2018
+msgid "Search Complete"
+msgstr ""
+
+#: pdiff.cpp:2252
+msgid "Nothing is selected in either diff input window."
+msgstr ""
+
+#: pdiff.cpp:2252
+msgid "Error while adding manual diff range"
+msgstr ""
+
+#: kdiff3_shell.cpp:76
+msgid ""
+"Could not initialize the KDiff3 part.\n"
+"This usually happens due to an installation problem. Please read the README-"
+"file in the source package for details."
+msgstr ""
+
+#: rc.cpp:1
+msgctxt "NAME OF TRANSLATORS"
+msgid "Your names"
+msgstr "ئابدۇقادىر ئابلىز, غەيرەت كەنجى"
+
+#: rc.cpp:2
+msgctxt "EMAIL OF TRANSLATORS"
+msgid "Your emails"
+msgstr "sahran.ug@gmail.com,  gheyret@gmail.com"
+
+#. i18n: file: kdiff3_part.rc:4
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:5
+msgid "&KDiff3"
+msgstr ""
+
+#. i18n: file: kdiff3_part.rc:13
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:8
+msgid "Configure KDiff3"
+msgstr ""
+
+#. i18n: file: kdiff3_part.rc:16
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:11
+msgid "KDiff3"
+msgstr ""
+
+#. i18n: file: kdiff3_shell.rc:106
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:38
+msgid "Main Toolbar"
+msgstr "ئاساسىي قورال بالداق"
diff --git a/po/ug/kdiff3plugin.po b/po/ug/kdiff3plugin.po
new file mode 100644 (file)
index 0000000..75ebb85
--- /dev/null
@@ -0,0 +1,85 @@
+# Uyghur translation for kdiff3plugin.
+# Copyright (C) YEAR This_file_is_part_of_KDE
+# This file is distributed under the same license as the PACKAGE package.
+# Sahran <sahran.ug@gmail.com>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3plugin\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-05-09 19:00+0900\n"
+"Last-Translator: Sahran <sahran@live.com>\n"
+"Language-Team: Uyghur Computer Science Association <UKIJ@yahoogroups.com>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: kdiff3plugin.cpp:107
+msgid "KDiff3"
+msgstr ""
+
+#: kdiff3plugin.cpp:114
+#, kde-format
+msgid "Compare with %1"
+msgstr ""
+
+#: kdiff3plugin.cpp:120
+#, kde-format
+msgid "Merge with %1"
+msgstr ""
+
+#: kdiff3plugin.cpp:126
+#, kde-format
+msgid "Save '%1' for later"
+msgstr ""
+
+#: kdiff3plugin.cpp:132
+msgid "3-way merge with base"
+msgstr ""
+
+#: kdiff3plugin.cpp:139
+msgid "Compare with ..."
+msgstr ""
+
+#: kdiff3plugin.cpp:149
+msgid "Clear list"
+msgstr ""
+
+#: kdiff3plugin.cpp:157
+msgid "Compare"
+msgstr "سېلىشتۇر"
+
+#: kdiff3plugin.cpp:163
+msgid "3 way comparison"
+msgstr ""
+
+#: kdiff3plugin.cpp:167
+msgid "About KDiff3 menu plugin ..."
+msgstr ""
+
+#: kdiff3plugin.cpp:269
+msgid ""
+"KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+
+#: kdiff3plugin.cpp:271
+msgid ""
+"Using the context menu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else, \"Save\" the first file for later, and "
+"it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With"
+"\" on the second file.\n"
+"For a 3-way merge first, \"Save\" the base file, then the branch to merge, "
+"and then \"3-way merge with base\" on the other branch which will be used as "
+"the destination.\n"
+"The same also applies to directory comparison and merge."
+msgstr ""
+
+#: kdiff3plugin.cpp:279
+msgid "About KDiff3 Menu Plugin"
+msgstr ""
diff --git a/po/uk/CMakeLists.txt b/po/uk/CMakeLists.txt
new file mode 100644 (file)
index 0000000..f0bb895
--- /dev/null
@@ -0,0 +1,2 @@
+file(GLOB _po_files *.po)
+GETTEXT_PROCESS_PO_FILES(uk ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
diff --git a/po/uk/kdiff3.po b/po/uk/kdiff3.po
new file mode 100644 (file)
index 0000000..be01f6c
--- /dev/null
@@ -0,0 +1,3206 @@
+# translation of kdiff3.po to Ukrainian
+# Translation of kdiff3.po to Ukrainian
+#
+# Ivan Petrouchtchak <fr.ivan@ukrainian-orthodox.org>, 2006, 2008.
+# Yuri Chornoivan <yurchor@ukr.net>, 2008, 2009, 2010, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-07-20 19:47+0300\n"
+"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
+"Language-Team: Ukrainian <translation@linux.org.ua>\n"
+"Language: uk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.2\n"
+"Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n"
+"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+
+#: kreplacements/kreplacements.h:105
+msgid "Continue"
+msgstr "Продовжити"
+
+#: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158
+#: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512
+msgid "Cancel"
+msgstr "Скасувати"
+
+#: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631
+msgid "Quit"
+msgstr "Вийти"
+
+#: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339
+msgid "Ok"
+msgstr "Гаразд"
+
+#: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715
+msgid "Help"
+msgstr "Довідка"
+
+#: kreplacements/kreplacements.cpp:185
+msgid "Defaults"
+msgstr "Типові значення"
+
+#. i18n: file: kdiff3_shell.rc:4
+#. i18n: ectx: Menu (file)
+#: kreplacements/kreplacements.cpp:296 rc.cpp:14
+msgid "&File"
+msgstr "&Файл"
+
+#: kreplacements/kreplacements.cpp:297
+msgid "&Edit"
+msgstr "З&міни"
+
+#. i18n: file: kdiff3_shell.rc:7
+#. i18n: ectx: Menu (directory)
+#: kreplacements/kreplacements.cpp:298 rc.cpp:17
+msgid "&Directory"
+msgstr "&Каталог"
+
+#. i18n: file: kdiff3_shell.rc:50
+#. i18n: ectx: Menu (movement)
+#: kreplacements/kreplacements.cpp:301 rc.cpp:26
+msgid "&Movement"
+msgstr "П&ересування"
+
+#. i18n: file: kdiff3_shell.rc:61
+#. i18n: ectx: Menu (diff)
+#: kreplacements/kreplacements.cpp:302 rc.cpp:29
+msgid "D&iffview"
+msgstr "D&iffview"
+
+#. i18n: file: kdiff3_shell.rc:73
+#. i18n: ectx: Menu (merge)
+#: kreplacements/kreplacements.cpp:303 rc.cpp:32
+msgid "&Merge"
+msgstr "&Об'єднання"
+
+#. i18n: file: kdiff3_shell.rc:95
+#. i18n: ectx: Menu (window)
+#: kreplacements/kreplacements.cpp:304 rc.cpp:35
+msgid "&Window"
+msgstr "&Вікно"
+
+#: kreplacements/kreplacements.cpp:305
+msgid "&Settings"
+msgstr "П&араметри"
+
+#: kreplacements/kreplacements.cpp:306
+msgid "&Help"
+msgstr "&Довідка"
+
+#: kreplacements/kreplacements.cpp:353
+msgid "&About"
+msgstr "&Інформація"
+
+#: kreplacements/kreplacements.cpp:369
+msgid "A&uthor"
+msgstr "А&втор"
+
+#: kreplacements/kreplacements.cpp:383
+msgid "&Thanks To"
+msgstr "&Подяка"
+
+#. i18n: file: kdiff3_shell.rc:30
+#. i18n: ectx: Menu (dir_current_merge_menu)
+#: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497
+#: rc.cpp:20
+msgid "Current Item Merge Operation"
+msgstr "Операція об’єднання для поточного елемента"
+
+#. i18n: file: kdiff3_shell.rc:38
+#. i18n: ectx: Menu (dir_current_sync_menu)
+#: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498
+#: rc.cpp:23
+msgid "Current Item Sync Operation"
+msgstr "Операція синхронізації для поточного елемента"
+
+#: kreplacements/kreplacements.cpp:597
+msgid "Open"
+msgstr "Відкрити"
+
+#: kreplacements/kreplacements.cpp:606
+msgid "Save"
+msgstr "Зберегти"
+
+#: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720
+msgid "Save As..."
+msgstr "Зберегти як..."
+
+#: kreplacements/kreplacements.cpp:623
+msgid "Print..."
+msgstr "Друк..."
+
+#: kreplacements/kreplacements.cpp:639
+msgid "Cut"
+msgstr "Вирізати"
+
+#: kreplacements/kreplacements.cpp:647
+msgid "Copy"
+msgstr "Копіювати"
+
+#: kreplacements/kreplacements.cpp:655
+msgid "Paste"
+msgstr "Вставити"
+
+#: kreplacements/kreplacements.cpp:663
+msgid "Select All"
+msgstr "Вибрати все"
+
+#: kreplacements/kreplacements.cpp:671
+msgid "Show Toolbar"
+msgstr "Показати пенал"
+
+#: kreplacements/kreplacements.cpp:679
+msgid "Show &Status Bar"
+msgstr "Показати рядок &стану"
+
+#: kreplacements/kreplacements.cpp:687
+#, kde-format
+msgid "&Configure %1..."
+msgstr "&Налаштувати %1..."
+
+#: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707
+msgid "About"
+msgstr "Про"
+
+#: kreplacements/kreplacements.cpp:722
+msgid "Find"
+msgstr "Знайти"
+
+#: kreplacements/kreplacements.cpp:730
+msgid "Find Next"
+msgstr "Знайти далі"
+
+#: kreplacements/kreplacements.cpp:750
+msgid "Select Font"
+msgstr "Вибрати шрифт"
+
+#: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676
+msgid ""
+"You selected a variable width font.\n"
+"\n"
+"Because this program doesn't handle variable width fonts\n"
+"correctly, you might experience problems while editing.\n"
+"\n"
+"Do you want to continue or do you want to select another font."
+msgstr ""
+"Ви обрали шрифт зі змінною шириною символів.\n"
+"\n"
+"Оскільки ця програма може показувати такі шрифти\n"
+"некоректно, у вас можуть бути проблеми з редагуванням.\n"
+"\n"
+"Бажаєте продовжити, чи оберете інший шрифт?"
+
+#: kreplacements/kreplacements.cpp:792
+msgid "Incompatible font."
+msgstr "Несумісний шрифт."
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Continue at my own risk"
+msgstr "Продовжувати, я все контролюю"
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Select another font"
+msgstr "Вибрати інший шрифт"
+
+#: kreplacements/kreplacements.cpp:1134
+msgid "For more documentation, see the help-menu or the subdirectory doc."
+msgstr ""
+"Докладнішу документацію можна переглянути у меню довідки або у підтеці doc."
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "KDiff3-Usage"
+msgstr "Використання Diff3"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Ignore"
+msgstr "Ігнорувати"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Exit"
+msgstr "Вийти"
+
+#: diff.cpp:251
+msgid "Writing clipboard data to temp file failed."
+msgstr "Помилка запису даних кишені у тимчасовий файл."
+
+#: diff.cpp:255
+msgid "From Clipboard"
+msgstr "З буфера обміну даними"
+
+#: diff.cpp:471
+msgid "Expecting space after closing quotation mark."
+msgstr "Після завершальних лапок мав бути пробіл."
+
+#: diff.cpp:474
+msgid "Not matching quotation marks."
+msgstr "Невідповідність лапок."
+
+#: diff.cpp:496
+msgid "Unexpected quotation mark within argument."
+msgstr "Неочікувані лапки у аргументі."
+
+#: diff.cpp:503
+msgid "No program specified."
+msgstr "Не вказано програму."
+
+#: diff.cpp:605
+#, kde-format
+msgid ""
+"Preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The preprocessing command will be disabled now."
+msgstr ""
+"Попередня обробка зазнала невдачі. Перевірте цю команду:\n"
+"\n"
+"  %1\n"
+"\n"
+"Зараз команду попередньої обробки буде вимкнено."
+
+#: diff.cpp:653
+#, kde-format
+msgid ""
+"The line-matching-preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The line-matching-preprocessing command will be disabled now."
+msgstr ""
+"Команда попередньої обробки відповідних рядків, скоріше за все, зазнала "
+"невдачі. Перевірте цю команду.\n"
+"\n"
+"  %1\n"
+"\n"
+"Команда попередньої обробки відповідних рядків зараз буде вимкнено."
+
+#: diff.cpp:1776 diff.cpp:1790
+msgid ""
+"Data loss error:\n"
+"If it is reproducible please contact the author.\n"
+msgstr ""
+"Помилка, пов’язана з втратою даних:\n"
+"Якщо цю помилку можна відтворити, зверніться до автора програми.\n"
+
+#: diff.cpp:1778 diff.cpp:1792
+msgid "Severe Internal Error"
+msgstr "Критична внутрішня помилка"
+
+#: directorymergewindow.cpp:136
+msgid "Mix of links and normal files."
+msgstr "Суміш посилань і звичайних файлів."
+
+#: directorymergewindow.cpp:143
+msgid "Link: "
+msgstr "Посилання: "
+
+#: directorymergewindow.cpp:151
+msgid "Size. "
+msgstr "Розмір. "
+
+#: directorymergewindow.cpp:164 directorymergewindow.cpp:174
+msgid "Date & Size: "
+msgstr "Дата і розмір: "
+
+#: directorymergewindow.cpp:184 directorymergewindow.cpp:190
+#, kde-format
+msgid "Creating temp copy of %1 failed."
+msgstr "Помилка створення тимчасової копії %1."
+
+#: directorymergewindow.cpp:201 directorymergewindow.cpp:209
+#, kde-format
+msgid "Opening %1 failed."
+msgstr "Помилка відкриття %1."
+
+#: directorymergewindow.cpp:213
+msgid "Comparing file..."
+msgstr "Порівняння файла..."
+
+#: directorymergewindow.cpp:223 directorymergewindow.cpp:229
+#, kde-format
+msgid "Error reading from %1"
+msgstr "Помилка читання з %1"
+
+#: directorymergewindow.cpp:358
+msgid "Name"
+msgstr "Назва"
+
+#: directorymergewindow.cpp:358
+msgid "Operation"
+msgstr "Дія"
+
+#: directorymergewindow.cpp:358
+msgid "Status"
+msgstr "Стан"
+
+#: directorymergewindow.cpp:359
+msgid "Unsolved"
+msgstr "Не розв'язано"
+
+#: directorymergewindow.cpp:359
+msgid "Solved"
+msgstr "Розв'язано"
+
+#: directorymergewindow.cpp:359
+msgid "Nonwhite"
+msgstr "Не-білий"
+
+#: directorymergewindow.cpp:359
+msgid "White"
+msgstr "Білий"
+
+#: directorymergewindow.cpp:388
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort "
+"the merge and rescan the directory?"
+msgstr ""
+"Зараз ви виконуєте об’єднання каталогів. Ви впевнені, що бажаєте перервати "
+"об’єднання і пересканувати каталог?"
+
+#: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655
+#: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823
+msgid "Warning"
+msgstr "Попередження"
+
+#: directorymergewindow.cpp:390 directorymergewindow.cpp:2965
+msgid "Rescan"
+msgstr "Пересканувати"
+
+#: directorymergewindow.cpp:391 pdiff.cpp:1081
+msgid "Continue Merging"
+msgstr "Продовжити об'єднання"
+
+#: directorymergewindow.cpp:548
+msgid "Opening of directories failed:"
+msgstr "Помилка відкриття каталогів:"
+
+#: directorymergewindow.cpp:551
+#, kde-format
+msgid "Dir A \"%1\" does not exist or is not a directory.\n"
+msgstr "Каталог А «%1» не існує або це не каталог.\n"
+
+#: directorymergewindow.cpp:554
+#, kde-format
+msgid "Dir B \"%1\" does not exist or is not a directory.\n"
+msgstr "Каталог В «%1» не існує або це не каталог.\n"
+
+#: directorymergewindow.cpp:557
+#, kde-format
+msgid "Dir C \"%1\" does not exist or is not a directory.\n"
+msgstr "Каталог С «%1» не існує або це не каталог.\n"
+
+#: directorymergewindow.cpp:559
+msgid "Directory Open Error"
+msgstr "Помилка відкриття каталогу"
+
+#: directorymergewindow.cpp:567
+msgid ""
+"The destination directory must not be the same as A or B when three "
+"directories are merged.\n"
+"Check again before continuing."
+msgstr ""
+"Каталог призначення повинен відрізнятися від A або B, якщо об’єднуються "
+"ієрархічні каталоги.\n"
+"Перевірте ще раз перш ніж продовжувати."
+
+#: directorymergewindow.cpp:569
+msgid "Parameter Warning"
+msgstr "Попередження про параметри"
+
+#: directorymergewindow.cpp:574
+msgid "Scanning directories..."
+msgstr "Сканування каталогів..."
+
+#: directorymergewindow.cpp:607
+msgid "Reading Directory A"
+msgstr "Читання каталогу A"
+
+#: directorymergewindow.cpp:629
+msgid "Reading Directory B"
+msgstr "Читання каталогу B"
+
+#: directorymergewindow.cpp:651
+msgid "Reading Directory C"
+msgstr "Читання каталогу C"
+
+#: directorymergewindow.cpp:677
+msgid "Some subdirectories were not readable in"
+msgstr "Деякі підтеки не придатні для читання у"
+
+#: directorymergewindow.cpp:682
+msgid "Check the permissions of the subdirectories."
+msgstr "Перевірте права доступу до підкаталогів."
+
+#: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737
+#: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233
+#: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328
+msgid "Ready."
+msgstr "Готово."
+
+#: directorymergewindow.cpp:735
+msgid "Directory Comparison Status"
+msgstr "Стан порівняння каталогів"
+
+#: directorymergewindow.cpp:736
+msgid "Number of subdirectories:"
+msgstr "Кількість підкаталогів:"
+
+#: directorymergewindow.cpp:737
+msgid "Number of equal files:"
+msgstr "Кількість однакових файлів:"
+
+#: directorymergewindow.cpp:738
+msgid "Number of different files:"
+msgstr "Кількість різних файлів:"
+
+#: directorymergewindow.cpp:741
+msgid "Number of manual merges:"
+msgstr "Кількість об’єднань вручну:"
+
+#: directorymergewindow.cpp:912
+msgid "This affects all merge operations."
+msgstr "Це торкнеться всіх операцій об’єднання."
+
+#: directorymergewindow.cpp:913
+msgid "Changing All Merge Operations"
+msgstr "Зміна всіх операцій об’єднання"
+
+#: directorymergewindow.cpp:1312
+msgid "Processing "
+msgstr "Обробка "
+
+#: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742
+msgid "To do."
+msgstr "Реалізувати."
+
+#: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996
+msgid "Copy A to B"
+msgstr "Копіювати A до B"
+
+#: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997
+msgid "Copy B to A"
+msgstr "Копіювати B до A"
+
+#: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998
+msgid "Delete A"
+msgstr "Вилучити A"
+
+#: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999
+msgid "Delete B"
+msgstr "Вилучити B"
+
+#: directorymergewindow.cpp:1814
+msgid "Delete A & B"
+msgstr "Вилучити A і B"
+
+#: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001
+msgid "Merge to A"
+msgstr "Об’єднати у A"
+
+#: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002
+msgid "Merge to B"
+msgstr "Об’єднати у B"
+
+#: directorymergewindow.cpp:1817
+msgid "Merge to A & B"
+msgstr "Об’єднати у A і B"
+
+#: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993
+msgid "Delete (if exists)"
+msgstr "Вилучити (якщо існує)"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+#: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869
+msgid "Merge"
+msgstr "Об'єднати"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+msgid "Merge (manual)"
+msgstr "Об’єднати (вручну)"
+
+#: directorymergewindow.cpp:1824
+msgid "Error: Conflicting File Types"
+msgstr "Помилка: Конфлікт типів файлів"
+
+#: directorymergewindow.cpp:1825
+msgid "Error: Changed and Deleted"
+msgstr "Помилка: змінено і вилучено"
+
+#: directorymergewindow.cpp:1826
+msgid "Error: Dates are equal but files are not."
+msgstr "Помилка: Дати однакові, а файли відрізняються."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906
+msgid "This operation is currently not possible."
+msgstr "Зараз ця операція неможлива."
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174
+msgid "Operation Not Possible"
+msgstr "Операція неможлива"
+
+#: directorymergewindow.cpp:1945
+msgid ""
+"This should never happen: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"If you know how to reproduce this, please contact the program author."
+msgstr ""
+"Цього не мало статися: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"Якщо вам відомо яким чином відтворити помилку, будь ласка, повідомте про неї "
+"авторів програми."
+
+#: directorymergewindow.cpp:1945
+msgid "Program Error"
+msgstr "Помилка програми"
+
+#: directorymergewindow.cpp:1956
+msgid "An error occurred while copying.\n"
+msgstr "Під час копіювання сталася помилка.\n"
+
+#: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025
+#: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105
+#: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123
+#: directorymergewindow.cpp:2374
+msgid "Error"
+msgstr "Помилка"
+
+#: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375
+msgid "Merge Error"
+msgstr "Помилка об’єднання"
+
+#: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380
+msgid "Error."
+msgstr "Помилка."
+
+#: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272
+#: directorymergewindow.cpp:2312
+msgid "Done."
+msgstr "Виконано."
+
+#: directorymergewindow.cpp:1990
+msgid "Not saved."
+msgstr "Не збережено."
+
+#: directorymergewindow.cpp:2025
+msgid "Unknown merge operation. (This must never happen!)"
+msgstr "Невідома операція об’єднання. (Цього не мало статися!)"
+
+#: directorymergewindow.cpp:2057
+msgid "Unknown merge operation."
+msgstr "Невідома операція об’єднання."
+
+#: directorymergewindow.cpp:2072
+msgid ""
+"The merge is about to begin.\n"
+"\n"
+"Choose \"Do it\" if you have read the instructions and know what you are "
+"doing.\n"
+"Choosing \"Simulate it\" will tell you what would happen.\n"
+"\n"
+"Be aware that this program still has beta status and there is NO WARRANTY "
+"whatsoever! Make backups of your vital data!"
+msgstr ""
+"Зараз розпочнеться об’єднання.\n"
+"\n"
+"Виберіть «Зробити це», якщо ви прочитали настанови і знаєте, що саме "
+"робите.\n"
+"Виберіть «Імітувати це», щоб побачити результати дії.\n"
+"\n"
+"Зауважте, що ця програма знаходиться у стані тестування і розробники НЕ "
+"МОЖУТЬ ГАРАНТУВАТИ нічого! Зробіть резервну копію важливих даних!"
+
+#: directorymergewindow.cpp:2077
+msgid "Starting Merge"
+msgstr "Запуск об’єднання"
+
+#: directorymergewindow.cpp:2078
+msgid "Do It"
+msgstr "Зробити"
+
+#: directorymergewindow.cpp:2079
+msgid "Simulate It"
+msgstr "Симулювати"
+
+#: directorymergewindow.cpp:2105
+msgid ""
+"The highlighted item has a different type in the different directories. "
+"Select what to do."
+msgstr ""
+"Підсвічений елемент має відмінний тип у різних каталогах. Виберіть потрібну "
+"дію."
+
+#: directorymergewindow.cpp:2114
+msgid ""
+"The modification dates of the file are equal but the files are not. Select "
+"what to do."
+msgstr "Дати змін файлів однакові, але файли — різні. Виберіть дію."
+
+#: directorymergewindow.cpp:2123
+msgid ""
+"The highlighted item was changed in one directory and deleted in the other. "
+"Select what to do."
+msgstr ""
+"Підсвічений елемент було змінено у одному з каталогів і вилучено у іншому. "
+"Оберіть належну дію."
+
+#: directorymergewindow.cpp:2174
+msgid ""
+"This operation is currently not possible because directory merge is "
+"currently running."
+msgstr "Ця дія зараз неможлива, оскільки виконується об’єднання каталогів."
+
+#: directorymergewindow.cpp:2234
+msgid ""
+"There was an error in the last step.\n"
+"Do you want to continue with the item that caused the error or do you want "
+"to skip this item?"
+msgstr ""
+"На останньому кроці сталася помилка.\n"
+"Бажаєте продовжити з елемента, що викликав помилку чи бажаєте пропустити цей "
+"елемент?"
+
+#: directorymergewindow.cpp:2236
+msgid "Continue merge after an error"
+msgstr "Продовжити об’єднання після помилки"
+
+#: directorymergewindow.cpp:2237
+msgid "Continue With Last Item"
+msgstr "Продовжити з останнього елемента"
+
+#: directorymergewindow.cpp:2238
+msgid "Skip Item"
+msgstr "Пропустити елемент"
+
+#: directorymergewindow.cpp:2272
+msgid "Skipped."
+msgstr "Пропущено."
+
+#: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493
+msgid "In progress..."
+msgstr "Виконання..."
+
+#: directorymergewindow.cpp:2327
+msgid "Merge operation complete."
+msgstr "Операцію об’єднання завершено."
+
+#: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330
+msgid "Merge Complete"
+msgstr "Об’єднання завершено"
+
+#: directorymergewindow.cpp:2340
+msgid ""
+"Simulated merge complete: Check if you agree with the proposed operations."
+msgstr ""
+"Імітацію об’єднання завершено: перевірте, чи згодні ви з запропонованими "
+"операціями."
+
+#: directorymergewindow.cpp:2374
+msgid "An error occurred. Press OK to see detailed information.\n"
+msgstr ""
+"Сталася помилка. Натисніть кнопку «Гаразд», щоб побачити докладнішу "
+"інформацію.\n"
+
+#: directorymergewindow.cpp:2406
+#, kde-format
+msgid "Error: While deleting %1: Creating backup failed."
+msgstr "Помилка: під час вилучення %1: невдала спроба створення резерву."
+
+#: directorymergewindow.cpp:2413
+#, kde-format
+msgid "delete directory recursively( %1 )"
+msgstr "рекурсивно вилучити каталог( %1 )"
+
+#: directorymergewindow.cpp:2415
+#, kde-format
+msgid "delete( %1 )"
+msgstr "delete( %1 )"
+
+#: directorymergewindow.cpp:2430
+msgid "Error: delete dir operation failed while trying to read the directory."
+msgstr ""
+"Помилка: невдача під час спроби виконання дії delete для теки на етапі "
+"читання теки."
+
+#: directorymergewindow.cpp:2449
+#, kde-format
+msgid "Error: rmdir( %1 ) operation failed."
+msgstr "Помилка: невдала спроба виконати rmdir( %1 )."
+
+#: directorymergewindow.cpp:2459
+msgid "Error: delete operation failed."
+msgstr "Помилка: дія вилучення зазнала невдачі."
+
+#: directorymergewindow.cpp:2485
+#, kde-format
+msgid "manual merge( %1, %2, %3 -> %4)"
+msgstr "manual merge( %1, %2, %3 -> %4)"
+
+#: directorymergewindow.cpp:2488
+msgid ""
+"     Note: After a manual merge the user should continue by pressing F7."
+msgstr ""
+"     Зауваження: Після завершення об’єднання вручу користувач може "
+"продовжити роботу натисканням F7."
+
+#: directorymergewindow.cpp:2513
+#, kde-format
+msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed."
+msgstr ""
+"Помилка: невдала спроба copy( %1 -> %2 ). Неможливо вилучити існуючий файл "
+"призначення."
+
+#: directorymergewindow.cpp:2522
+#, kde-format
+msgid "copyLink( %1 -> %2 )"
+msgstr "copyLink( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2533
+msgid "Error: copyLink failed: Remote links are not yet supported."
+msgstr ""
+"Помилка: невдала спроба copyLink: віддалені посилання ще не підтримуються."
+
+#: directorymergewindow.cpp:2539
+msgid "Error: copyLink failed."
+msgstr "Помилка: copyLink зазнала невдачі."
+
+#: directorymergewindow.cpp:2564
+#, kde-format
+msgid "copy( %1 -> %2 )"
+msgstr "copy( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2590
+#, kde-format
+msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination."
+msgstr ""
+"Помилка під час rename( %1 -> %2 ): Не вдалося вилучити існуюче призначення."
+
+#: directorymergewindow.cpp:2596
+#, kde-format
+msgid "rename( %1 -> %2 )"
+msgstr "rename( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2605
+msgid "Error: Rename failed."
+msgstr "Помилка: Перейменування зазнало невдачі."
+
+#: directorymergewindow.cpp:2623
+#, kde-format
+msgid "Error during makeDir of %1. Cannot delete existing file."
+msgstr ""
+"Помилка під час виконання makeDir %1. Не вдалося вилучити існуючий файл."
+
+#: directorymergewindow.cpp:2639
+#, kde-format
+msgid "makeDir( %1 )"
+msgstr "makeDir( %1 )"
+
+#: directorymergewindow.cpp:2649
+msgid "Error while creating directory."
+msgstr "Помилка створення каталогу."
+
+#: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784
+msgid "Dest"
+msgstr "Призн."
+
+#: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709
+msgid "Dir"
+msgstr "Каталог"
+
+#: directorymergewindow.cpp:2678
+msgid "Type"
+msgstr "Тип"
+
+#: directorymergewindow.cpp:2678
+msgid "Size"
+msgstr "Розмір"
+
+#: directorymergewindow.cpp:2679
+msgid "Attr"
+msgstr "Атриб."
+
+#: directorymergewindow.cpp:2679
+msgid "Last Modification"
+msgstr "Час останньої зміни"
+
+#: directorymergewindow.cpp:2679
+msgid "Link-Destination"
+msgstr "Призначення посилання"
+
+#: directorymergewindow.cpp:2709 difftextwindow.cpp:401
+msgid "File"
+msgstr "Файл"
+
+#: directorymergewindow.cpp:2726
+msgid "not available"
+msgstr "не доступне"
+
+#: directorymergewindow.cpp:2746
+msgid "A (Dest): "
+msgstr "A (Призн.): "
+
+#: directorymergewindow.cpp:2749
+msgid "A (Base): "
+msgstr "A (Основа): "
+
+#: directorymergewindow.cpp:2755
+msgid "B (Dest): "
+msgstr "B (Призн.): "
+
+#: directorymergewindow.cpp:2763
+msgid "C (Dest): "
+msgstr "C (Призн.): "
+
+#: directorymergewindow.cpp:2769
+msgid "Dest: "
+msgstr "Призн.:"
+
+#: directorymergewindow.cpp:2836
+msgid "Save Directory Merge State As..."
+msgstr "Зберегти режим об’єднання каталогів як..."
+
+#: directorymergewindow.cpp:2959
+msgid "Start/Continue Directory Merge"
+msgstr "Почати/Продовжити об’єднання каталогів"
+
+#: directorymergewindow.cpp:2960
+msgid "Run Operation for Current Item"
+msgstr "Виконати операцію для поточного елемента"
+
+#: directorymergewindow.cpp:2961
+msgid "Compare Selected File"
+msgstr "Порівняти вибраний файл"
+
+#: directorymergewindow.cpp:2962
+msgid "Merge Current File"
+msgstr "Об’єднати поточний файл"
+
+#: directorymergewindow.cpp:2962
+msgid ""
+"Merge\n"
+"File"
+msgstr ""
+"Об’єднати\n"
+"файл"
+
+#: directorymergewindow.cpp:2963
+msgid "Fold All Subdirs"
+msgstr "Згорнути всі підтеки"
+
+#: directorymergewindow.cpp:2964
+msgid "Unfold All Subdirs"
+msgstr "Розгорнути всі підтеки"
+
+#: directorymergewindow.cpp:2968
+msgid "Choose A for All Items"
+msgstr "Вибрати A для списку всіх елементів"
+
+#: directorymergewindow.cpp:2969
+msgid "Choose B for All Items"
+msgstr "Вибрати B для списку всіх елементів"
+
+#: directorymergewindow.cpp:2970
+msgid "Choose C for All Items"
+msgstr "Вибрати C для списку всіх елементів"
+
+#: directorymergewindow.cpp:2971
+msgid "Auto-Choose Operation for All Items"
+msgstr "Операція автовибору для всіх елементів"
+
+#: directorymergewindow.cpp:2972
+msgid "No Operation for All Items"
+msgstr "Нічого не робити з усіма елементами"
+
+#: directorymergewindow.cpp:2977
+msgid "Show Identical Files"
+msgstr "Показувати однакові файли"
+
+#: directorymergewindow.cpp:2977
+msgid ""
+"Identical\n"
+"Files"
+msgstr ""
+"Однакові\n"
+"файли"
+
+#: directorymergewindow.cpp:2978
+msgid "Show Different Files"
+msgstr "Показувати різні файли"
+
+#: directorymergewindow.cpp:2979
+msgid "Show Files only in A"
+msgstr "Показувати файли лише у A"
+
+#: directorymergewindow.cpp:2979
+msgid ""
+"Files\n"
+"only in A"
+msgstr ""
+"Файли\n"
+"лише у A"
+
+#: directorymergewindow.cpp:2980
+msgid "Show Files only in B"
+msgstr "Показувати файли лише у B"
+
+#: directorymergewindow.cpp:2980
+msgid ""
+"Files\n"
+"only in B"
+msgstr ""
+"Файли\n"
+"лише у B"
+
+#: directorymergewindow.cpp:2981
+msgid "Show Files only in C"
+msgstr "Показувати файли лише у C"
+
+#: directorymergewindow.cpp:2981
+msgid ""
+"Files\n"
+"only in C"
+msgstr ""
+"Файли\n"
+"лише у C"
+
+#: directorymergewindow.cpp:2985
+msgid "Compare Explicitly Selected Files"
+msgstr "Порівняти явно вибрані файли"
+
+#: directorymergewindow.cpp:2986
+msgid "Merge Explicitly Selected Files"
+msgstr "Об’єднати явно вибрані файли"
+
+#: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995
+msgid "Do Nothing"
+msgstr "Нічого не робити"
+
+#: directorymergewindow.cpp:2989
+msgid "A"
+msgstr "A"
+
+#: directorymergewindow.cpp:2990
+msgid "B"
+msgstr "B"
+
+#: directorymergewindow.cpp:2991
+msgid "C"
+msgstr "C"
+
+#: directorymergewindow.cpp:3000
+msgid "Delete A && B"
+msgstr "Вилучити A і B"
+
+#: directorymergewindow.cpp:3003
+msgid "Merge to A && B"
+msgstr "Об’єднати у A і B"
+
+#: main.cpp:74 main.cpp:76
+msgid "Ignored. (User defined.)"
+msgstr "Ігнорується (Визначається користувачем)."
+
+#: main.cpp:162
+msgid "kdiff3"
+msgstr "kdiff3"
+
+#: main.cpp:164
+msgid "Tool for Comparison and Merge of Files and Directories"
+msgstr "Інструмент для порівняння і злиття файлів і тек"
+
+#: main.cpp:165
+msgid "(c) 2002-2011 Joachim Eibl"
+msgstr "© 2002-2011 Joachim Eibl"
+
+#: main.cpp:172 kdiff3_part.cpp:303
+msgid "Joachim Eibl"
+msgstr "Joachim Eibl"
+
+#: main.cpp:173
+msgid "Eike Sauer"
+msgstr "Eike Sauer"
+
+#: main.cpp:173
+msgid "Bugfixes, Debian package maintainer"
+msgstr "Виправлення вад, супровідник пакунка для Debian"
+
+#: main.cpp:174
+msgid "Sebastien Fricker"
+msgstr "Sebastien Fricker"
+
+#: main.cpp:174
+msgid "Windows installer"
+msgstr "Встановлювач для Windows"
+
+#: main.cpp:175
+msgid "Stephan Binner"
+msgstr "Stephan Binner"
+
+#: main.cpp:175
+msgid "i18n-help"
+msgstr "i18n-довідка"
+
+#: main.cpp:176
+msgid "Stefan Partheymueller"
+msgstr "Stefan Partheymueller"
+
+#: main.cpp:176
+msgid "Clipboard-patch"
+msgstr "Латка для буфера"
+
+#: main.cpp:177
+msgid "David Faure"
+msgstr "David Faure"
+
+#: main.cpp:177
+msgid "KIO-Help"
+msgstr "KIO-довідка"
+
+#: main.cpp:178
+msgid "Bernd Gehrmann"
+msgstr "Bernd Gehrmann"
+
+#: main.cpp:178
+msgid "Class CvsIgnoreList from Cervisia"
+msgstr "Клас CvsIgnoreList з Cervisia"
+
+#: main.cpp:179
+msgid "Andre Woebbeking"
+msgstr "Andre Woebbeking"
+
+#: main.cpp:179
+msgid "Class StringMatcher"
+msgstr "Клас StringMatcher"
+
+#: main.cpp:180
+msgid "Michael Denio"
+msgstr "Michael Denio"
+
+#: main.cpp:180
+msgid "Directory Equality-Coloring patch"
+msgstr "Латка рівності каталогів-розфарбування"
+
+#: main.cpp:181
+msgid "Manfred Koehler"
+msgstr "Manfred Koehler"
+
+#: main.cpp:181
+msgid "Fix for slow startup on Windows"
+msgstr "Виправлення повільного запуску у Windows"
+
+#: main.cpp:182
+msgid "Sergey Zorin"
+msgstr "Sergey Zorin"
+
+#: main.cpp:182
+msgid "Diff Ext for Windows"
+msgstr "Розширення Diff для Windows"
+
+#: main.cpp:183
+msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+
+#: main.cpp:183
+msgid "GNU-Diffutils"
+msgstr "GNU-Diffutils"
+
+#: main.cpp:184
+msgid "Tino Boellsterling, Timothy Mee"
+msgstr "Tino Boellsterling, Timothy Mee"
+
+#: main.cpp:184
+msgid "Intensive test, use and feedback"
+msgstr "Інтенсивне тестування, використання і інформація про його результати"
+
+#: main.cpp:185
+msgid "Michael Schmidt"
+msgstr "Michael Schmidt"
+
+#: main.cpp:185
+msgid "Mac support"
+msgstr "Підтримка Mac"
+
+#: main.cpp:186
+msgid "Valentin Rusu"
+msgstr "Valentin Rusu"
+
+#: main.cpp:186 main.cpp:187
+msgid "KDE4 porting"
+msgstr "Портування до KDE4"
+
+#: main.cpp:187
+msgid "Albert Astals Cid"
+msgstr "Albert Astals Cid"
+
+#: main.cpp:188
+msgid "Silvan Scherrer"
+msgstr "Silvan Scherrer"
+
+#: main.cpp:188
+msgid "OS2 port"
+msgstr "Портування на OS/2"
+
+#: main.cpp:190
+msgid "+ Many thanks to those who reported bugs and contributed ideas!"
+msgstr "+ Велике спасибі всім, хто повідомляв про вади і пропонував ідеї!"
+
+#: main.cpp:196
+msgid "Merge the input."
+msgstr "Об'єднати вивід."
+
+#: main.cpp:197
+msgid "Explicit base file. For compatibility with certain tools."
+msgstr "Явно вказаний файл-основа. Для сумісності з деякими інструментами."
+
+#: main.cpp:198
+msgid "Output file. Implies -m. E.g.: -o newfile.txt"
+msgstr "Файл виводу. У разі наявності -m. Наприклад: -o newfile.txt"
+
+#: main.cpp:199
+msgid "Output file, again. (For compatibility with certain tools.)"
+msgstr "Файл виводу, ще раз. (Для сумісності з деякими інструментами.)"
+
+#: main.cpp:200
+msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)"
+msgstr ""
+"Без графічного інтерфейсу, якщо всі конфлікти розв’язуються автоматично. "
+"(Потрібно: -o файл)"
+
+#: main.cpp:201
+msgid "Don't solve conflicts automatically. (For compatibility...)"
+msgstr "Не розв’язувати конфлікти автоматично. (Для сумісності...)"
+
+#: main.cpp:202
+msgid "Visible name replacement for input file 1 (base)."
+msgstr "Заміна видимої назви для вхідного файла 1 (основи)."
+
+#: main.cpp:203
+msgid "Visible name replacement for input file 2."
+msgstr "Заміна видимої назви для вхідного файла 2."
+
+#: main.cpp:204
+msgid "Visible name replacement for input file 3."
+msgstr "Заміна видимої назви для вхідного файла 3."
+
+#: main.cpp:205
+msgid "Alternative visible name replacement. Supply this once for every input."
+msgstr ""
+"Альтернативна заміна видимої назви. Вкажіть один раз для кожного набору "
+"вхідних даних."
+
+#: main.cpp:206
+msgid ""
+"Override a config setting. Use once for every setting. E.g.: --cs "
+"\"AutoAdvance=1\""
+msgstr ""
+"Перевизначити параметр налаштування. Скористайтеся один раз для кожного "
+"параметра. Наприклад: --cs \"AutoAdvance=1\""
+
+#: main.cpp:207
+msgid "Show list of config settings and current values."
+msgstr "Показати список параметрів налаштування і поточні значення."
+
+#: main.cpp:208
+msgid "Use a different config file."
+msgstr "Використовувати інший файл налаштувань.."
+
+#: main.cpp:211
+msgid "file1 to open (base, if not specified via --base)"
+msgstr "файл1 для відкриття (основний, якщо не вказано інший за --base)"
+
+#: main.cpp:212
+msgid "file2 to open"
+msgstr "файл2 для відкриття"
+
+#: main.cpp:213
+msgid "file3 to open"
+msgstr "файл3 для відкриття"
+
+#: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976
+#: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002
+#: mergeresultwindow.cpp:1014
+#, kde-format
+msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)"
+msgstr "Кількість ще нерозв’язаних конфліктів: %1 (з яких %2 пробіли)"
+
+#: mergeresultwindow.cpp:303
+msgid ""
+"The output has been modified.\n"
+"If you continue your changes will be lost."
+msgstr ""
+"Вивід було змінено.\n"
+"Якщо ви продовжите, зміни буде втрачено."
+
+#: mergeresultwindow.cpp:834 pdiff.cpp:532
+msgid "All input files are binary equal."
+msgstr "Всі вхідні файли однакові."
+
+#: mergeresultwindow.cpp:836
+msgid "All input files contain the same text."
+msgstr "Всі вхідні файли містять однаковий текст."
+
+#: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840
+#: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540
+#, kde-format
+msgid "Files %1 and %2 are binary equal.\n"
+msgstr "Файли %1 і %2 двійково однакові.\n"
+
+#: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841
+#: mergeresultwindow.cpp:843
+#, kde-format
+msgid "Files %1 and %2 have equal text.\n"
+msgstr "Текст файлів %1 і %2 однаковий.\n"
+
+#: mergeresultwindow.cpp:849
+msgid "Total number of conflicts: "
+msgstr "Всього конфліктів: "
+
+#: mergeresultwindow.cpp:850
+msgid ""
+"\n"
+"Nr of automatically solved conflicts: "
+msgstr ""
+"\n"
+"К-ть автоматично розв’язаних конфліктів: "
+
+#: mergeresultwindow.cpp:851
+msgid ""
+"\n"
+"Nr of unsolved conflicts: "
+msgstr ""
+"\n"
+"К-ть нерозв’язаних конфліктів: "
+
+#: mergeresultwindow.cpp:853
+msgid "Conflicts"
+msgstr "Конфлікти"
+
+#: mergeresultwindow.cpp:1728
+msgid "<No src line>"
+msgstr "<Немає рядка джерела>"
+
+#: mergeresultwindow.cpp:1736
+msgid "<Merge Conflict (Whitespace only)>"
+msgstr "<Конфлікт об’єднання (Лише пробіл)>"
+
+#: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517
+msgid "<Merge Conflict>"
+msgstr "<Конфлікт об’єднання>"
+
+#: mergeresultwindow.cpp:2725
+msgid ""
+"Not all conflicts are solved yet.\n"
+"File not saved.\n"
+msgstr ""
+"Розв’язано не всі конфлікти.\n"
+"Файл не збережено.\n"
+
+#: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736
+msgid "Conflicts Left"
+msgstr "Залишилось конфліктів"
+
+#: mergeresultwindow.cpp:2734
+msgid ""
+"There is a line end style conflict. Please choose the line end style "
+"manually.\n"
+"File not saved.\n"
+msgstr ""
+"Виник конфлікт, пов’язаний з різними стилями завершення рядків. Будь ласка, "
+"оберіть потрібний стиль вручну.\n"
+"Файл не було збережено.\n"
+
+#: mergeresultwindow.cpp:2748
+msgid ""
+"\n"
+"\n"
+"Creating backup failed. File not saved."
+msgstr ""
+"\n"
+"\n"
+"Помилка створення резервної копії. Файл не збережено."
+
+#: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792
+msgid "File Save Error"
+msgstr "Помилка збереження файла"
+
+#: mergeresultwindow.cpp:2792
+msgid "Error while writing."
+msgstr "Помилка при записуванні."
+
+#: mergeresultwindow.cpp:3122
+msgid "Output"
+msgstr "Вивід"
+
+#: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314
+msgid "[Modified]"
+msgstr "[Змінено]"
+
+#: mergeresultwindow.cpp:3141
+msgid "Encoding for saving"
+msgstr "Кодування для збереження"
+
+#: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737
+#: optiondialog.cpp:762
+msgid "Line end style:"
+msgstr "Стиль кінців рядка:"
+
+#: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767
+msgid "Unix"
+msgstr "Unix"
+
+#: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737
+msgid "DOS"
+msgstr "DOS"
+
+#: mergeresultwindow.cpp:3229
+msgid "Conflict"
+msgstr "Конфлікт"
+
+#: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263
+#: mergeresultwindow.cpp:3265
+msgid "Codec from"
+msgstr "Кодек з"
+
+#: kdiff3_part.cpp:157 kdiff3_part.cpp:234
+msgid "Couldn't find files for comparison."
+msgstr "Не вдалося знайти файли для порівняння."
+
+#: kdiff3_part.cpp:302
+msgid "KDiff3Part"
+msgstr "KDiff3Part"
+
+#: fileaccess.cpp:612
+msgid ""
+"While trying to make a backup, deleting an older backup failed. \n"
+"Filename: "
+msgstr ""
+"Під час спроби резервного копіювання, не вдалося вилучити стару резервну "
+"копію. \n"
+"Назва файла: "
+
+#: fileaccess.cpp:619
+msgid ""
+"While trying to make a backup, renaming failed. \n"
+"Filenames: "
+msgstr ""
+"Під час спроби резервного копіювання, не вдалося перейменування. \n"
+"Назва файлів: "
+
+#: fileaccess.cpp:643
+#, kde-format
+msgid "Getting file status: %1"
+msgstr "Отримання стану файла: %1"
+
+#: fileaccess.cpp:686
+#, kde-format
+msgid "Reading file: %1"
+msgstr "Читання файла: %1"
+
+#: fileaccess.cpp:723
+#, kde-format
+msgid "Writing file: %1"
+msgstr "Запис файла: %1"
+
+#: fileaccess.cpp:751
+msgid "Out of memory"
+msgstr "Не вистачає пам'яті"
+
+#: fileaccess.cpp:786
+#, kde-format
+msgid "Making directory: %1"
+msgstr "Створення каталогу: %1."
+
+#: fileaccess.cpp:806
+#, kde-format
+msgid "Removing directory: %1"
+msgstr "Вилучення каталогу: %1."
+
+#: fileaccess.cpp:821
+#, kde-format
+msgid "Removing file: %1"
+msgstr "Вилучення файла: %1"
+
+#: fileaccess.cpp:837
+#, kde-format
+msgid "Creating symbolic link: %1 -> %2"
+msgstr "Створення символічного посилання: %1 -> %2"
+
+#: fileaccess.cpp:864
+#, kde-format
+msgid "Renaming file: %1 -> %2"
+msgstr "Перейменування файла: %1 -> %2"
+
+#: fileaccess.cpp:897
+#, kde-format
+msgid "Copying file: %1 -> %2"
+msgstr "Копіювання файла: %1 -> %2"
+
+#: fileaccess.cpp:911
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for reading failed. Filename: "
+"%1"
+msgstr ""
+"Помилка під час копіювання файла: не вдалося відкрити файл для читання. "
+"Назва файла: %1"
+
+#: fileaccess.cpp:917
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for writing failed. Filename: "
+"%1"
+msgstr ""
+"Помилка під час спроби копіювання файла: не вдалося відкрити файл для "
+"запису. Назва файла: %1"
+
+#: fileaccess.cpp:932
+#, kde-format
+msgid "Error during file copy operation: Reading failed. Filename: %1"
+msgstr "Помилка під час копіювання файла: неможливо прочитати. Назва файла: %1"
+
+#: fileaccess.cpp:941
+#, kde-format
+msgid "Error during file copy operation: Writing failed. Filename: %1"
+msgstr ""
+"Помилка під час операції копіювання: Невдала спроба запису. Назва файла: %1"
+
+#: fileaccess.cpp:1231
+msgid "Reading directory: "
+msgstr "Читання каталогу: "
+
+#: fileaccess.cpp:1355
+#, kde-format
+msgid "Listing directory: %1"
+msgstr "Побудова списку каталогу: %1"
+
+#: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396
+msgid "&Cancel"
+msgstr "&Скасувати"
+
+#: difftextwindow.cpp:403
+msgid "Line"
+msgstr "Рядок"
+
+#: difftextwindow.cpp:405
+msgid "Line not available"
+msgstr "Рядок недоступний"
+
+#: difftextwindow.cpp:1703 difftextwindow.cpp:1736
+msgid "Encoding:"
+msgstr "Кодування:"
+
+#: difftextwindow.cpp:1759 kdiff3.cpp:831
+msgid "Top line"
+msgstr "Верхній рядок"
+
+#: difftextwindow.cpp:1769
+msgid "End"
+msgstr "Кінець"
+
+#: kdiff3.cpp:169
+msgid "Current Configuration:"
+msgstr "Поточне налаштування:"
+
+#: kdiff3.cpp:174
+msgid "Config Option Error:"
+msgstr "Помилковий параметр налаштування:"
+
+#: kdiff3.cpp:219
+msgid "Option --auto used, but no output file specified."
+msgstr "Використано параметр --auto, але не вказано файла виводу."
+
+#: kdiff3.cpp:369
+msgid "Option --auto ignored for directory comparison."
+msgstr "Під час порівняння каталогів параметр --auto проігноровано."
+
+#: kdiff3.cpp:405
+msgid "Saving failed."
+msgstr "Помилка збереження."
+
+#: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214
+msgid "Opening of these files failed:"
+msgstr "Під час спроби відкриття цих файлів сталася помилка:"
+
+#: kdiff3.cpp:449
+msgid "File Open Error"
+msgstr "Помилка відкриття файла"
+
+#: kdiff3.cpp:477
+msgid "Opens documents for comparison..."
+msgstr "Відкриває документи для порівняння..."
+
+#: kdiff3.cpp:479
+msgid "Reload"
+msgstr "Перезавантажити"
+
+#: kdiff3.cpp:482
+msgid "Saves the merge result. All conflicts must be solved!"
+msgstr "Зберігає результат об’єднання. Всі конфлікти слід розв’язати!"
+
+#: kdiff3.cpp:484
+msgid "Saves the current document as..."
+msgstr "Зберігає поточний документ як..."
+
+#: kdiff3.cpp:487
+msgid "Print the differences"
+msgstr "Показати розбіжності"
+
+#: kdiff3.cpp:490
+msgid "Quits the application"
+msgstr "Закриває програму"
+
+#: kdiff3.cpp:492
+msgid "Cuts the selected section and puts it to the clipboard"
+msgstr "Вирізує вибране та кладе його у кишеню"
+
+#: kdiff3.cpp:494
+msgid "Copies the selected section to the clipboard"
+msgstr "Копіює вибране до кишені"
+
+#: kdiff3.cpp:496
+msgid "Pastes the clipboard contents to current position"
+msgstr "Вставляє вміст кишені в поточну позицію"
+
+#: kdiff3.cpp:498
+msgid "Select everything in current window"
+msgstr "Вибрати все у поточному вікні"
+
+#: kdiff3.cpp:500
+msgid "Search for a string"
+msgstr "Шукати рядок"
+
+#: kdiff3.cpp:502
+msgid "Search again for the string"
+msgstr "Шукати знову рядок"
+
+#: kdiff3.cpp:507
+msgid "Enables/disables the statusbar"
+msgstr "Вмикає/вимикає рядок стану"
+
+#: kdiff3.cpp:511
+msgid "Configure KDiff3..."
+msgstr "Налаштувати KDiff3..."
+
+#: kdiff3.cpp:532
+msgid "Go to Current Delta"
+msgstr "Перейти до поточної дельти"
+
+#: kdiff3.cpp:532
+msgid ""
+"Current\n"
+"Delta"
+msgstr ""
+"Поточна\n"
+"дельта"
+
+#: kdiff3.cpp:534
+msgid "Go to First Delta"
+msgstr "Перейти до першої дельти"
+
+#: kdiff3.cpp:534
+msgid ""
+"First\n"
+"Delta"
+msgstr ""
+"Перша\n"
+"дельта"
+
+#: kdiff3.cpp:536
+msgid "Go to Last Delta"
+msgstr "Перейти до останньої дельти"
+
+#: kdiff3.cpp:536
+msgid ""
+"Last\n"
+"Delta"
+msgstr ""
+"Остання\n"
+"дельта"
+
+#: kdiff3.cpp:538
+msgid "(Skips white space differences when \"Show White Space\" is disabled.)"
+msgstr "(Пропускає різниці у пробілах, якщо вимкнено «Показувати пробіли».)"
+
+#: kdiff3.cpp:539
+msgid ""
+"(Does not skip white space differences even when \"Show White Space\" is "
+"disabled.)"
+msgstr ""
+"(Не пропускати різниці у пробілах, навіть якщо вимкнено параметр «Показувати "
+"пробіли».)"
+
+#: kdiff3.cpp:540
+msgid "Go to Previous Delta"
+msgstr "Перейти до попередньої дельти"
+
+#: kdiff3.cpp:540
+msgid ""
+"Prev\n"
+"Delta"
+msgstr ""
+"Попередня\n"
+"дельта"
+
+#: kdiff3.cpp:542
+msgid "Go to Next Delta"
+msgstr "Перейти до наступної дельти"
+
+#: kdiff3.cpp:542
+msgid ""
+"Next\n"
+"Delta"
+msgstr ""
+"Наступна\n"
+"дельта"
+
+#: kdiff3.cpp:544
+msgid "Go to Previous Conflict"
+msgstr "Перейти до попереднього конфлікту"
+
+#: kdiff3.cpp:544
+msgid ""
+"Prev\n"
+"Conflict"
+msgstr ""
+"Попередній\n"
+"конфлікт"
+
+#: kdiff3.cpp:546
+msgid "Go to Next Conflict"
+msgstr "Перейти до наступного конфлікту"
+
+#: kdiff3.cpp:546
+msgid ""
+"Next\n"
+"Conflict"
+msgstr ""
+"Наступний\n"
+"конфлікт"
+
+#: kdiff3.cpp:548
+msgid "Go to Previous Unsolved Conflict"
+msgstr "Перейти до попереднього нерозв’язаного конфлікту"
+
+#: kdiff3.cpp:548
+msgid ""
+"Prev\n"
+"Unsolved"
+msgstr ""
+"Попередній\n"
+"нерозв’язаний"
+
+#: kdiff3.cpp:550
+msgid "Go to Next Unsolved Conflict"
+msgstr "Перейти до наступного нерозв’язаного конфлікту"
+
+#: kdiff3.cpp:550
+msgid ""
+"Next\n"
+"Unsolved"
+msgstr ""
+"Неступний\n"
+"нерозв’язаний"
+
+#: kdiff3.cpp:552
+msgid "Select Line(s) From A"
+msgstr "Виберіть рядки з A"
+
+#: kdiff3.cpp:552
+msgid ""
+"Choose\n"
+"A"
+msgstr ""
+"Вибрати\n"
+"A"
+
+#: kdiff3.cpp:553
+msgid "Select Line(s) From B"
+msgstr "Вибрати рядки з B"
+
+#: kdiff3.cpp:553
+msgid ""
+"Choose\n"
+"B"
+msgstr ""
+"Вибрати\n"
+"B"
+
+#: kdiff3.cpp:554
+msgid "Select Line(s) From C"
+msgstr "Вибрати рядки з C"
+
+#: kdiff3.cpp:554
+msgid ""
+"Choose\n"
+"C"
+msgstr ""
+"Вибрати\n"
+"C"
+
+#: kdiff3.cpp:555
+msgid "Automatically Go to Next Unsolved Conflict After Source Selection"
+msgstr "Автоматично перейти до наступного конфлікту за визначення джерела"
+
+#: kdiff3.cpp:555
+msgid ""
+"Auto\n"
+"Next"
+msgstr ""
+"Автоматично\n"
+"наступний"
+
+#: kdiff3.cpp:557
+msgid "Show Space && Tabulator Characters for Differences"
+msgstr "Показувати символи пробілів і табуляцій для різниць"
+
+#: kdiff3.cpp:557
+msgid ""
+"White\n"
+"Characters"
+msgstr ""
+"Символи-\n"
+"пробіли"
+
+#: kdiff3.cpp:558
+msgid "Show White Space"
+msgstr "Показувати пробіли"
+
+#: kdiff3.cpp:558
+msgid ""
+"White\n"
+"Deltas"
+msgstr ""
+"Пробіли-\n"
+"дельти"
+
+#: kdiff3.cpp:560
+msgid "Show Line Numbers"
+msgstr "Показувати номери рядків"
+
+#: kdiff3.cpp:560
+msgid ""
+"Line\n"
+"Numbers"
+msgstr ""
+"Номери\n"
+"рядків"
+
+#: kdiff3.cpp:561
+msgid "Choose A Everywhere"
+msgstr "Вибрати A всюди"
+
+#: kdiff3.cpp:562
+msgid "Choose B Everywhere"
+msgstr "Вибрати B всюди"
+
+#: kdiff3.cpp:563
+msgid "Choose C Everywhere"
+msgstr "Вибрати C всюди"
+
+#: kdiff3.cpp:564
+msgid "Choose A for All Unsolved Conflicts"
+msgstr "Вибрати A для всіх нерозв’язаних конфліктів"
+
+#: kdiff3.cpp:565
+msgid "Choose B for All Unsolved Conflicts"
+msgstr "Вибрати B для всіх нерозв’язаних конфліктів"
+
+#: kdiff3.cpp:566
+msgid "Choose C for All Unsolved Conflicts"
+msgstr "Вибрати C для всіх нерозв’язаних конфліктів"
+
+#: kdiff3.cpp:567
+msgid "Choose A for All Unsolved Whitespace Conflicts"
+msgstr "Вибрати A для всіх нерозв’язаних конфліктів пробілів"
+
+#: kdiff3.cpp:568
+msgid "Choose B for All Unsolved Whitespace Conflicts"
+msgstr "Вибрати B для всіх нерозв’язаних конфліктів пробілів"
+
+#: kdiff3.cpp:569
+msgid "Choose C for All Unsolved Whitespace Conflicts"
+msgstr "Вибрати C для всіх нерозв’язаних конфліктів пробілів"
+
+#: kdiff3.cpp:570
+msgid "Automatically Solve Simple Conflicts"
+msgstr "Автоматично розв’язувати прості конфлікти"
+
+#: kdiff3.cpp:571
+msgid "Set Deltas to Conflicts"
+msgstr "Застосувати різницю до конфліктів"
+
+#: kdiff3.cpp:572
+msgid "Run Regular Expression Auto Merge"
+msgstr "Запустити автооб’єднання за формальними виразами"
+
+#: kdiff3.cpp:573
+msgid "Automatically Solve History Conflicts"
+msgstr "Автоматично розв’язувати конфлікти у журналі"
+
+#: kdiff3.cpp:574
+msgid "Split Diff At Selection"
+msgstr "Розділити різницю на вибраному"
+
+#: kdiff3.cpp:575
+msgid "Join Selected Diffs"
+msgstr "Об’єднати вибрані різниці"
+
+#: kdiff3.cpp:577
+msgid "Show Window A"
+msgstr "Показати вікно A"
+
+#: kdiff3.cpp:578
+msgid "Show Window B"
+msgstr "Показати вікно B"
+
+#: kdiff3.cpp:579
+msgid "Show Window C"
+msgstr "Показати вікно C"
+
+#: kdiff3.cpp:580 kdiff3.cpp:591
+msgid "Focus Next Window"
+msgstr "Фокус до наступного вікна"
+
+#: kdiff3.cpp:582
+msgid "Normal Overview"
+msgstr "Звичайний огляд"
+
+#: kdiff3.cpp:583
+msgid "A vs. B Overview"
+msgstr "Перегляд A з B"
+
+#: kdiff3.cpp:584
+msgid "A vs. C Overview"
+msgstr "Перегляд A з C Overview"
+
+#: kdiff3.cpp:585
+msgid "B vs. C Overview"
+msgstr "Перегляд B з C"
+
+#: kdiff3.cpp:586
+msgid "Word Wrap Diff Windows"
+msgstr "Перенесення рядків у вікнах різниці"
+
+#: kdiff3.cpp:587
+msgid "Add Manual Diff Alignment"
+msgstr "Додати вирівнювання різниці вручну"
+
+#: kdiff3.cpp:588
+msgid "Clear All Manual Diff Alignments"
+msgstr "Очистити всі вирівнювання різниці вручну"
+
+#: kdiff3.cpp:593
+msgid "Focus Prev Window"
+msgstr "Фокус на попереднє вікно"
+
+#: kdiff3.cpp:594
+msgid "Toggle Split Orientation"
+msgstr "Перемкнути орієнтацію відокремлення"
+
+#: kdiff3.cpp:596
+msgid "Dir && Text Split Screen View"
+msgstr "Розділений перегляд тексту і тек"
+
+#: kdiff3.cpp:598
+msgid "Toggle Between Dir && Text View"
+msgstr "Перемкнутися між переглядом тексту і тек"
+
+#: kdiff3.cpp:654 pdiff.cpp:1812
+msgid "The merge result hasn't been saved."
+msgstr "Результат об’єднання не збережено."
+
+#: kdiff3.cpp:656
+msgid "Save && Quit"
+msgstr "Зберегти і вийти"
+
+#: kdiff3.cpp:657
+msgid "Quit Without Saving"
+msgstr "Вийти без збереження"
+
+#: kdiff3.cpp:665 pdiff.cpp:1823
+msgid "Saving the merge result failed."
+msgstr "Помилка під час збереження результатів об’єднання."
+
+#: kdiff3.cpp:676 pdiff.cpp:1078
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort?"
+msgstr ""
+"Зараз ви виконуєте об’єднання каталогів. Ви впевнені, що бажаєте перервати "
+"його?"
+
+#: kdiff3.cpp:701
+msgid "Saving file..."
+msgstr "Збереження файла..."
+
+#: kdiff3.cpp:718
+msgid "Saving file with a new filename..."
+msgstr "Файл зберігається з новою назвою..."
+
+#: kdiff3.cpp:781
+msgid "Printing not implemented."
+msgstr "Можливість друку не реалізовано."
+
+#: kdiff3.cpp:815
+msgid "Printing..."
+msgstr "Друк..."
+
+#: kdiff3.cpp:956
+msgid "Selection"
+msgstr "Вибір"
+
+#: kdiff3.cpp:982
+msgid "Printing completed."
+msgstr "Друк завершено."
+
+#: kdiff3.cpp:986
+msgid "Printing aborted."
+msgstr "Друк перервано."
+
+#: kdiff3.cpp:993
+msgid "Exiting..."
+msgstr "Вихід..."
+
+#: kdiff3.cpp:1006
+msgid "Toggling toolbar..."
+msgstr "Перемикання пенала..."
+
+#: kdiff3.cpp:1027
+msgid "Toggle the statusbar..."
+msgstr "Перемикання рядка стану..."
+
+#: smalldialogs.cpp:58
+msgid "A (Base):"
+msgstr "A (Основний):"
+
+#: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99
+#: smalldialogs.cpp:142
+msgid "File..."
+msgstr "Файл..."
+
+#: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101
+#: smalldialogs.cpp:144
+msgid "Dir..."
+msgstr "Каталог..."
+
+#: smalldialogs.cpp:93
+msgid "C (Optional):"
+msgstr "C (додатковий):"
+
+#: smalldialogs.cpp:116
+msgid "Swap/Copy Names ..."
+msgstr "Обміняти/Копіювати назви ..."
+
+#: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123
+#, kde-format
+msgid "Swap %1<->%2"
+msgstr "Обмін %1<->%2"
+
+#: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126
+#, kde-format
+msgid "Copy %1->Output"
+msgstr "Копія %1->Вивід"
+
+#: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129
+#, kde-format
+msgid "Swap %1<->Output"
+msgstr "Обмін %1<->Вивід"
+
+#: smalldialogs.cpp:136
+msgid "Output (optional):"
+msgstr "Вивід (не обов'язковий):"
+
+#: smalldialogs.cpp:168
+msgid "Configure..."
+msgstr "Налаштувати..."
+
+#: smalldialogs.cpp:174
+msgid "&OK"
+msgstr "&Гаразд"
+
+#: smalldialogs.cpp:362
+msgid "Search text:"
+msgstr "Знайти текст:"
+
+#: smalldialogs.cpp:369
+msgid "Case sensitive"
+msgstr "З врахуванням регістру"
+
+#: smalldialogs.cpp:372
+msgid "Search A"
+msgstr "Пошук в A"
+
+#: smalldialogs.cpp:377
+msgid "Search B"
+msgstr "Пошук в B"
+
+#: smalldialogs.cpp:382
+msgid "Search C"
+msgstr "Пошук в C"
+
+#: smalldialogs.cpp:387
+msgid "Search output"
+msgstr "Пошук у виводі"
+
+#: smalldialogs.cpp:392
+msgid "&Search"
+msgstr "&Пошук"
+
+#: smalldialogs.cpp:409
+msgid "Regular Expression Tester"
+msgstr "Тестування формальних виразів"
+
+#: smalldialogs.cpp:414 optiondialog.cpp:936
+msgid "Auto merge regular expression:"
+msgstr "Формальний вираз автооб’єднання:"
+
+#: smalldialogs.cpp:422
+msgid "Example auto merge line:"
+msgstr "Приклад рядка автооб’єднання:"
+
+#: smalldialogs.cpp:424
+msgid "To test auto merge, copy a line as used in your files."
+msgstr ""
+"Для перевірки автооб’єднання скопіюйте рядок у тому вигляді, у якому він "
+"використовується у ваших файлах."
+
+#: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494
+msgid "Match result:"
+msgstr "Результат пошуку:"
+
+#: smalldialogs.cpp:441 optiondialog.cpp:962
+msgid "History start regular expression:"
+msgstr "Початковий формальний вираз історії:"
+
+#: smalldialogs.cpp:449
+msgid "Example history start line (with leading comment):"
+msgstr "Приклад початкового рядка історії (з початковим коментарем):"
+
+#: smalldialogs.cpp:451
+msgid ""
+"Copy a history start line as used in your files,\n"
+"including the leading comment."
+msgstr ""
+"Копіюйте початковий рядок історії, у тому вигляді, як він використовується у "
+"ваших файлах,\n"
+"разом з початковим коментарем."
+
+#: smalldialogs.cpp:469 optiondialog.cpp:972
+msgid "History entry start regular expression:"
+msgstr "Початковий формальний вираз елемента історії:"
+
+#: smalldialogs.cpp:477
+msgid "History sort key order:"
+msgstr "Порядок ключів сортування історії:"
+
+#: smalldialogs.cpp:485
+msgid "Example history entry start line (without leading comment):"
+msgstr "Приклад початкового рядка запису історії (без початкового коментаря):"
+
+#: smalldialogs.cpp:487
+msgid ""
+"Copy a history entry start line as used in your files,\n"
+"but omit the leading comment."
+msgstr ""
+"Копіюйте початок рядка запису історії у тому вигляді, як він "
+"використовується у ваших файлах,\n"
+"але пропустити початковий коментар."
+
+#: smalldialogs.cpp:501
+msgid "Sort key result:"
+msgstr "Результат ключа впорядкування:"
+
+#: smalldialogs.cpp:508
+msgid "OK"
+msgstr "Гаразд"
+
+#: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583
+msgid "Match success."
+msgstr "Знайдено відповідник."
+
+#: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589
+msgid "Match failed."
+msgstr "Відповідників не знайдено."
+
+#: smalldialogs.cpp:574
+msgid "Opening and closing parentheses do not match in regular expression."
+msgstr "Кількість лівих і правих дужок у формальному виразі не збігаються."
+
+#: optiondialog.cpp:367
+msgid "Unicode, 8 bit"
+msgstr "Юнікод, 8 бітів"
+
+#: optiondialog.cpp:368
+msgid "Unicode"
+msgstr "Юнікод"
+
+#: optiondialog.cpp:369
+msgid "Latin1"
+msgstr "Latin1"
+
+#: optiondialog.cpp:388
+msgid "Change this if non-ASCII characters are not displayed correctly."
+msgstr ""
+"Змінити це, якщо символи, що не належать до ASCII не відображаються коректно."
+
+#: optiondialog.cpp:465
+msgid "Configure"
+msgstr "Налаштувати"
+
+#: optiondialog.cpp:531
+msgid "Font"
+msgstr "Шрифт"
+
+#: optiondialog.cpp:532
+msgid "Editor & Diff Output Font"
+msgstr "Вихідний шрифт редактора і різниці"
+
+#: optiondialog.cpp:556
+msgid "Italic font for deltas"
+msgstr "Курсив для різниці"
+
+#: optiondialog.cpp:559
+msgid ""
+"Selects the italic version of the font for differences.\n"
+"If the font doesn't support italic characters, then this does nothing."
+msgstr ""
+"Вибрати курсив для відображення шрифту різниці.\n"
+"Якщо шрифт не підтримує курсивні символи, нічого не значитиме."
+
+#: optiondialog.cpp:568
+msgid "Color"
+msgstr "Колір"
+
+#: optiondialog.cpp:569
+msgid "Colors Settings"
+msgstr "Параметри кольорів"
+
+#: optiondialog.cpp:588
+msgid "Editor and Diff Views:"
+msgstr "Вікна редактора і різниці:"
+
+#: optiondialog.cpp:596
+msgid "Foreground color:"
+msgstr "Колір тексту:"
+
+#: optiondialog.cpp:603
+msgid "Background color:"
+msgstr "Колір тла:"
+
+#: optiondialog.cpp:612
+msgid "Diff background color:"
+msgstr "Колір тла різниці:"
+
+#: optiondialog.cpp:620
+msgid "Color A:"
+msgstr "Колір A:"
+
+#: optiondialog.cpp:628
+msgid "Color B:"
+msgstr "Колір B:"
+
+#: optiondialog.cpp:636
+msgid "Color C:"
+msgstr "Колір C:"
+
+#: optiondialog.cpp:643
+msgid "Conflict color:"
+msgstr "Колір конфліктів:"
+
+#: optiondialog.cpp:651
+msgid "Current range background color:"
+msgstr "Колір тла поточного діапазону:"
+
+#: optiondialog.cpp:659
+msgid "Current range diff background color:"
+msgstr "Колір тла поточного діапазону різниці:"
+
+#: optiondialog.cpp:666
+msgid "Color for manually aligned difference ranges:"
+msgstr "Колір для діапазонів різниць вирівняних вручну:"
+
+#: optiondialog.cpp:672
+msgid "Directory Comparison View:"
+msgstr "Перегляд порівняння каталогів:"
+
+#: optiondialog.cpp:678
+msgid "Newest file color:"
+msgstr "Колір найновішого файла:"
+
+#: optiondialog.cpp:682
+msgid ""
+"Changing this color will only be effective when starting the next directory "
+"comparison."
+msgstr ""
+"Зміна цього кольору буде ефективною після початку нового порівняння "
+"каталогів."
+
+#: optiondialog.cpp:687
+msgid "Oldest file color:"
+msgstr "Колір найстарішого файла:"
+
+#: optiondialog.cpp:695
+msgid "Middle age file color:"
+msgstr "Колір файлів проміжного віку:"
+
+#: optiondialog.cpp:703
+msgid "Color for missing files:"
+msgstr "Колір відсутніх файлів:"
+
+#: optiondialog.cpp:717
+msgid "Editor"
+msgstr "Редактор"
+
+#: optiondialog.cpp:718
+msgid "Editor Behavior"
+msgstr "Режим роботи редактора"
+
+#: optiondialog.cpp:732
+msgid "Tab inserts spaces"
+msgstr "Використовувати пробіли замість табуляції"
+
+#: optiondialog.cpp:735
+msgid ""
+"On: Pressing tab generates the appropriate number of spaces.\n"
+"Off: A tab character will be inserted."
+msgstr ""
+"Увімкнено: Натискання клавіші табуляції вставить відповідну кількість "
+"пробілів.\n"
+"Вимкнено: Буде вставлено символ Tab."
+
+#: optiondialog.cpp:741
+msgid "Tab size:"
+msgstr "Розмір табуляції:"
+
+#: optiondialog.cpp:747
+msgid "Auto indentation"
+msgstr "Автовідступ"
+
+#: optiondialog.cpp:750
+msgid "On: The indentation of the previous line is used for a new line.\n"
+msgstr ""
+"Увімкнено: Відступ попереднього рядка буде використано для наступного.\n"
+
+#: optiondialog.cpp:754
+msgid "Auto copy selection"
+msgstr "Автоматичне копіювання позначеного"
+
+#: optiondialog.cpp:757
+msgid ""
+"On: Any selection is immediately written to the clipboard.\n"
+"Off: You must explicitely copy e.g. via Ctrl-C."
+msgstr ""
+"Увімкнено: Будь-яка вибрана область копіюється до кишені.\n"
+"Вимкнено: Явне проведення копіювання, наприклад за допомогою Ctrl-C."
+
+#: optiondialog.cpp:768
+msgid "Dos/Windows"
+msgstr "Dos/Windows"
+
+#: optiondialog.cpp:769
+msgid "Autodetect"
+msgstr "Автовибір"
+
+#: optiondialog.cpp:772
+msgid ""
+"Sets the line endings for when an edited file is saved.\n"
+"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A"
+msgstr ""
+"Встановлює стиль кінців рядка під час збереження файла.\n"
+"DOS/Windows: CR+LF; UNIX: LF; де CR=0D, LF=0A"
+
+#: optiondialog.cpp:784
+msgid "Diff"
+msgstr "Diff"
+
+#: optiondialog.cpp:785
+msgid "Diff Settings"
+msgstr "Параметри Diff"
+
+#: optiondialog.cpp:809
+msgid "Treat as white space."
+msgstr "Вважати пробілом."
+
+#: optiondialog.cpp:811
+msgid "Ignore numbers"
+msgstr "Ігнорувати числа"
+
+#: optiondialog.cpp:814
+msgid ""
+"Ignore number characters during line matching phase. (Similar to Ignore "
+"white space.)\n"
+"Might help to compare files with numeric data."
+msgstr ""
+"Ігнорувати цифри під час порівняння рядків. (Подібно до ігнорування "
+"пробілів.)\n"
+"Може допомогти для файлів з числовими даними."
+
+#: optiondialog.cpp:819
+msgid "Ignore C/C++ comments"
+msgstr "Ігнорувати коментарі C/C++"
+
+#: optiondialog.cpp:821
+msgid "Treat C/C++ comments like white space."
+msgstr "Вважати коментарі C/C++ пробілами."
+
+#: optiondialog.cpp:825
+msgid "Ignore case"
+msgstr "Без врахування регістру"
+
+#: optiondialog.cpp:828
+msgid "Treat case differences like white space changes. ('a'<=>'A')"
+msgstr "Вважати різницю у регістрі змінами у кількості пробілів. («а»<=>«А»)"
+
+#: optiondialog.cpp:832
+msgid "Preprocessor command:"
+msgstr "Команда препроцесора:"
+
+#: optiondialog.cpp:836
+msgid "User defined pre-processing. (See the docs for details.)"
+msgstr "Попередня обробка, визначена користувачем. (Подробиці у документації.)"
+
+#: optiondialog.cpp:839
+msgid "Line-matching preprocessor command:"
+msgstr "Команда відповідності рядків препроцесора:"
+
+#: optiondialog.cpp:843
+msgid ""
+"This pre-processor is only used during line matching.\n"
+"(See the docs for details.)"
+msgstr ""
+"Цей препроцесор використовується лише для порівняння рядків.\n"
+"(Подробиці у документації.)"
+
+#: optiondialog.cpp:846
+msgid "Try hard (slower)"
+msgstr "Агресивніше (повільніше)"
+
+#: optiondialog.cpp:849
+msgid ""
+"Enables the --minimal option for the external diff.\n"
+"The analysis of big files will be much slower."
+msgstr ""
+"Вмикає параметр --minimal для зовнішніх різниць.\n"
+"Аналіз великих файлів значно уповільнюється."
+
+#: optiondialog.cpp:854
+msgid "Align B and C for 3 input files"
+msgstr "Вирівняти B і C для 3 вхідних файлів"
+
+#: optiondialog.cpp:857
+msgid ""
+"Try to align B and C when comparing or merging three input files.\n"
+"Not recommended for merging because merge might get more complicated.\n"
+"(Default is off.)"
+msgstr ""
+"Спробувати вирівняти B і C під час порівняння або об’єднання трьох вхідних "
+"файлів.\n"
+"Не рекомендується для об’єднання, оскільки такі дії можуть його ускладнити.\n"
+"(Типово вимкнено.)"
+
+#: optiondialog.cpp:870
+msgid "Merge Settings"
+msgstr "Об’єднати параметри"
+
+#: optiondialog.cpp:885
+msgid "Auto advance delay (ms):"
+msgstr "Автоматичне продовження за (у мс):"
+
+#: optiondialog.cpp:890
+msgid ""
+"When in Auto-Advance mode the result of the current selection is shown \n"
+"for the specified time, before jumping to the next conflict. Range: 0-2000 ms"
+msgstr ""
+"У режимі автопродовження результат поточного вибору показується на \n"
+"вказаний проміжок часу перед переходом до наступного конфлікту. Діапазон: "
+"0-2000 мс"
+
+#: optiondialog.cpp:895
+msgid "Show info dialogs"
+msgstr "Показувати інформаційні вікна"
+
+#: optiondialog.cpp:897
+msgid "Show a dialog with information about the number of conflicts."
+msgstr "Показувати діалогове вікно з відомостями про кількість конфліктів."
+
+#: optiondialog.cpp:900
+msgid "White space 2-file merge default:"
+msgstr "Типове значення пробілів для об’єднання 2 файлів:"
+
+#: optiondialog.cpp:904 optiondialog.cpp:917
+msgid "Manual Choice"
+msgstr "Вибір вручну"
+
+#: optiondialog.cpp:908 optiondialog.cpp:922
+msgid ""
+"Allow the merge algorithm to automatically select an input for white-space-"
+"only changes."
+msgstr ""
+"Дозволити алгоритму об’єднання автоматично вибирати вхідне значення для змін "
+"у пробілах."
+
+#: optiondialog.cpp:913
+msgid "White space 3-file merge default:"
+msgstr "Типове значення пробілів для об’єднання 3 файлів:"
+
+#: optiondialog.cpp:927
+msgid "Automatic Merge Regular Expression"
+msgstr "Формальний вираз автоматичного об’єднання"
+
+#: optiondialog.cpp:940
+msgid ""
+"Regular expression for lines where KDiff3 should automatically choose one "
+"source.\n"
+"When a line with a conflict matches the regular expression then\n"
+"- if available - C, otherwise B will be chosen."
+msgstr ""
+"Формальний вираз для рядків, де KDiff3 має автоматично вибрати одне "
+"джерело.\n"
+"Якщо рядок з конфліктом відповідає формальному виразу, буде вибрано\n"
+"— якщо доступний — C, у іншому випадку — B."
+
+#: optiondialog.cpp:946
+msgid "Run regular expression auto merge on merge start"
+msgstr "Запустити автооб’єднання за формальними виразом на початку об’єднання"
+
+#: optiondialog.cpp:948
+msgid ""
+"Run the merge for auto merge regular expressions\n"
+"immediately when a merge starts.\n"
+msgstr ""
+"Запускати об’єднання для формальних виразів автоматично об’єднання\n"
+"одразу після запуску об’єднання.\n"
+
+#: optiondialog.cpp:953
+msgid "Version Control History Merging"
+msgstr "Об’єднання історії керування версіями"
+
+#: optiondialog.cpp:966
+msgid ""
+"Regular expression for the start of the version control history entry.\n"
+"Usually this line contains the \"$Log$\" keyword.\n"
+"Default value: \".*\\$Log.*\\$.*\""
+msgstr ""
+"Формальний вираз для початку запису історії керування версіями.\n"
+"Зазвичай, цей рядок містить ключове слово «$Log$».\n"
+"Типове значення: «.*\\$Log.*\\$.*»"
+
+#: optiondialog.cpp:984
+msgid ""
+"A version control history entry consists of several lines.\n"
+"Specify the regular expression to detect the first line (without the leading "
+"comment).\n"
+"Use parentheses to group the keys you want to use for sorting.\n"
+"If left empty, then KDiff3 assumes that empty lines separate history "
+"entries.\n"
+"See the documentation for details."
+msgstr ""
+"Запис історії керування версіями складається з декількох рядків.\n"
+"Вкажіть формальний вираз для визначення початкового рядка (без вступного "
+"коментаря).\n"
+"Для групування ключів, які ви бажаєте використати для сортування, "
+"скористайтеся дужками.\n"
+"Якщо залишити це поле порожнім, KDiff3 припустить, що записи історії "
+"відокремлюються порожніми рядками.\n"
+"Подробиці можна дізнатися з документації."
+
+#: optiondialog.cpp:992
+msgid "History merge sorting"
+msgstr "Впорядкування історії при об’єднанні"
+
+#: optiondialog.cpp:994
+msgid "Sort version control history by a key."
+msgstr "Впорядкувати історію керування версіями за ключем."
+
+#: optiondialog.cpp:1004
+msgid "History entry start sort key order:"
+msgstr "Порядок сортування початків записів за ключем:"
+
+#: optiondialog.cpp:1008
+msgid ""
+"Each pair of parentheses used in the regular expression for the history "
+"start entry\n"
+"groups a key that can be used for sorting.\n"
+"Specify the list of keys (that are numbered in order of occurrence\n"
+"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n"
+"If left empty, then no sorting will be done.\n"
+"See the documentation for details."
+msgstr ""
+"Кожна пара дужок, які використовуються у формальному виразі, містить\n"
+"ключ впорядкування записів історії.\n"
+"Вкажіть список ключів (пронумерованих у порядку появи,\n"
+"починаючи з 1), з використання роздільника «,» (наприклад «4,5,6,1,2,3,7»).\n"
+"Якщо залишити це поле порожнім, сортування не проводитиметься.\n"
+"Подробиці можна дізнатися з документації."
+
+#: optiondialog.cpp:1019
+msgid "Merge version control history on merge start"
+msgstr "Об’єднувати за журналом керування версіями на початку об’єднання"
+
+#: optiondialog.cpp:1021
+msgid "Run version control history automerge on merge start."
+msgstr "Запускати історію керування версіями на початку об’єднання."
+
+#: optiondialog.cpp:1025
+msgid "Max number of history entries:"
+msgstr "Макс. кількість записів у історії:"
+
+#: optiondialog.cpp:1028
+msgid "Cut off after specified number. Use -1 for infinite number of entries."
+msgstr ""
+"Обрізати після вказаного номера. Вкажіть -1, що визначити нескінченну "
+"кількість записів."
+
+#: optiondialog.cpp:1032
+msgid "Test your regular expressions"
+msgstr "Перевіряти ваші формальні вирази"
+
+#: optiondialog.cpp:1037
+msgid "Irrelevant merge command:"
+msgstr "Безвідносна команда об’єднання:"
+
+#: optiondialog.cpp:1041
+msgid ""
+"If specified this script is run after automerge\n"
+"when no other relevant changes were detected.\n"
+"Called with the parameters: filename1 filename2 filename3"
+msgstr ""
+"Якщо вказано цей параметр, відповідний скрипт буде запущено після\n"
+"автоматично об’єднання, якщо не виявлено інших пов’язаних змін.\n"
+"Викликають з параметрами: filename1 filename2 filename3"
+
+#: optiondialog.cpp:1047
+msgid "Auto save and quit on merge without conflicts"
+msgstr "Автоматично зберегти і вийти, якщо немає конфліктів"
+
+#: optiondialog.cpp:1050
+msgid ""
+"If KDiff3 was started for a file-merge from the command line and all\n"
+"conflicts are solvable without user interaction then automatically save and "
+"quit.\n"
+"(Similar to command line option \"--auto\".)"
+msgstr ""
+"Якщо KDiff3 було запущено для об’єднання файлів з командного рядка і всі\n"
+"конфлікти можна розв’язати без втручання користувача, автоматично зберегти "
+"файли і вийти.\n"
+"(Відповідає параметру командного рядка «--auto».)"
+
+#: optiondialog.cpp:1061 optiondialog.cpp:1062
+msgid "Directory"
+msgstr "Каталог"
+
+#: optiondialog.cpp:1075
+msgid "Recursive directories"
+msgstr "Рекурсивні каталоги"
+
+#: optiondialog.cpp:1077
+msgid "Whether to analyze subdirectories or not."
+msgstr "Чи аналізувати підкаталоги."
+
+#: optiondialog.cpp:1079
+msgid "File pattern(s):"
+msgstr "Шаблони файлів:"
+
+#: optiondialog.cpp:1084
+msgid ""
+"Pattern(s) of files to be analyzed. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Шаблон(и) файлів, які буде проаналізовано. \n"
+"Шаблони заміни: «*» і «?»\n"
+"Декілька шаблонів слід розділяти символом «;»"
+
+#: optiondialog.cpp:1090
+msgid "File-anti-pattern(s):"
+msgstr "Шаблон(и) виключення файлів:"
+
+#: optiondialog.cpp:1095
+msgid ""
+"Pattern(s) of files to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Шаблон(и) файлів, які буде виключено з аналізу. \n"
+"Шаблони заміни: «*» і «?»\n"
+"Декілька шаблонів слід розділяти символом «;»"
+
+#: optiondialog.cpp:1101
+msgid "Dir-anti-pattern(s):"
+msgstr "Шаблон(и) виключення тек:"
+
+#: optiondialog.cpp:1106
+msgid ""
+"Pattern(s) of directories to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"Шаблон(и) тек, які буде виключено з аналізу. \n"
+"Шаблони заміни: «*» і «?»\n"
+"Декілька шаблонів слід розділяти символом «;»"
+
+#: optiondialog.cpp:1112
+msgid "Use .cvsignore"
+msgstr "Використовувати .cvsignore"
+
+#: optiondialog.cpp:1115
+msgid ""
+"Extends the antipattern to anything that would be ignored by CVS.\n"
+"Via local \".cvsignore\" files this can be directory specific."
+msgstr ""
+"Розширює шаблон виключення до всього, що ігноруватиметься CVS.\n"
+"Залежить від локальних файлів «.cvsignore» у окремім каталозі."
+
+#: optiondialog.cpp:1120
+msgid "Find hidden files and directories"
+msgstr "Показувати приховані файли і теки"
+
+#: optiondialog.cpp:1123
+msgid "Finds files and directories with the hidden attribute."
+msgstr "Знаходить файли і каталоги з атрибутом «прихований»."
+
+#: optiondialog.cpp:1125
+msgid "Finds files and directories starting with '.'."
+msgstr "Знаходить файли і каталоги, назва яких починається з «.»."
+
+#: optiondialog.cpp:1129
+msgid "Follow file links"
+msgstr "Йти за посиланнями на файли"
+
+#: optiondialog.cpp:1132
+msgid ""
+"On: Compare the file the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+"Увімкнено: Порівнювати файли, на які вказує посилання.\n"
+"Вимкнено: Порівнювати самі посилання."
+
+#: optiondialog.cpp:1137
+msgid "Follow directory links"
+msgstr "Слідувати за посилання на каталоги"
+
+#: optiondialog.cpp:1140
+msgid ""
+"On: Compare the directory the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+"Увімкнено: Порівнювати каталоги, на які вказує посилання.\n"
+"Вимкнено: Порівнювати посилання."
+
+#: optiondialog.cpp:1156
+msgid "Case sensitive filename comparison"
+msgstr "Порівняння назв файлів з врахуванням регістру"
+
+#: optiondialog.cpp:1159
+msgid ""
+"The directory comparison will compare files or directories when their names "
+"match.\n"
+"Set this option if the case of the names must match. (Default for Windows is "
+"off, otherwise on.)"
+msgstr ""
+"Порівняння каталогів порівнюватиме файли і каталоги, якщо їхні назви "
+"збігаються.\n"
+"Встановіть цей параметр, якщо мають збігатися і регістри літер назв. (Типово "
+"вимкнено у Windows, у інших системах увімкнено.)"
+
+#: optiondialog.cpp:1163
+msgid "File Comparison Mode"
+msgstr "Режим порівняння файлів"
+
+#: optiondialog.cpp:1169
+msgid "Binary comparison"
+msgstr "Двійкове порівняння"
+
+#: optiondialog.cpp:1170
+msgid "Binary comparison of each file. (Default)"
+msgstr "Двійкове порівняння кожного файла. (Типове)"
+
+#: optiondialog.cpp:1173
+msgid "Full analysis"
+msgstr "Повний аналіз"
+
+#: optiondialog.cpp:1174
+msgid ""
+"Do a full analysis and show statistics information in extra columns.\n"
+"(Slower than a binary comparison, much slower for binary files.)"
+msgstr ""
+"Провести повний аналіз і показати статистичну інформацію у додаткових "
+"стовпчиках.\n"
+"(Повільніше за двійкове порівняння, набагато повільніше для двійкових "
+"файлів.)"
+
+#: optiondialog.cpp:1178
+msgid "Trust the size and modification date (unsafe)"
+msgstr "Довіряти розміру і даті зміни (небезпечно)"
+
+#: optiondialog.cpp:1179
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"Files with equal contents but different modification dates will appear as "
+"different.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"Припускати, що файли з однаковим розміром і часом зміни — однакові.\n"
+"Якщо вміст файлів однаковий, але дати зміни різні, вважати файли різними.\n"
+"Корисно для великих каталогів або повільних мереж."
+
+#: optiondialog.cpp:1184
+msgid ""
+"Trust the size and date, but use binary comparison if date does not match "
+"(unsafe)"
+msgstr ""
+"Довіряти розміру і даті, але використовувати двійкове порівняння за різниці "
+"дат (небезпечно)"
+
+#: optiondialog.cpp:1185
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"If the dates are not equal but the sizes are, use binary comparison.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"Припускати, що файли з однаковим розміром і часом зміни — однакові.\n"
+"Якщо розміри однакові, але дати різні, використовувати двійкове порівняння.\n"
+"Корисно для великих каталогів або повільних мереж."
+
+#: optiondialog.cpp:1190
+msgid "Trust the size (unsafe)"
+msgstr "Довіряти розміру (небезпечно)"
+
+#: optiondialog.cpp:1191
+msgid ""
+"Assume that files are equal if their file lengths are equal.\n"
+"Useful for big directories or slow networks when the date is modified during "
+"download."
+msgstr ""
+"Припускати, що файли однакові, якщо мають однаковий розмір.\n"
+"Корисно для великих каталогів або повільного зв’язку мережею, коли під час "
+"звантаження змінюється дата."
+
+#: optiondialog.cpp:1199
+msgid "Synchronize directories"
+msgstr "Синхронізувати теки."
+
+#: optiondialog.cpp:1202
+msgid ""
+"Offers to store files in both directories so that\n"
+"both directories are the same afterwards.\n"
+"Works only when comparing two directories without specifying a destination."
+msgstr ""
+"Пропонує зберігати файли у обох каталогах, отже,\n"
+"по завершенню обидва каталоги будуть однаковими.\n"
+"Працює, лише якщо порівнюються два каталоги без визначення призначення."
+
+#: optiondialog.cpp:1208
+msgid "White space differences considered equal"
+msgstr "Файли з різницею у пробілах — однакові"
+
+#: optiondialog.cpp:1211
+msgid ""
+"If files differ only by white space consider them equal.\n"
+"This is only active when full analysis is chosen."
+msgstr ""
+"Якщо файли відрізняються лише пробілами, вважати їх однаковими.\n"
+"Цей параметр активний, лише якщо вибрано повний аналіз."
+
+#: optiondialog.cpp:1217
+msgid "Copy newer instead of merging (unsafe)"
+msgstr "Копіювати новіший, замість об’єднання (небезпечно)"
+
+#: optiondialog.cpp:1220
+msgid ""
+"Don't look inside, just take the newer file.\n"
+"(Use this only if you know what you are doing!)\n"
+"Only effective when comparing two directories."
+msgstr ""
+"Не заглядати всередину — брати новіший файл.\n"
+"(Користуйтеся цим, лише якщо знаєте що робите!)\n"
+"Ефективно лише у разі порівняння двох каталогів."
+
+#: optiondialog.cpp:1225
+msgid "Backup files (.orig)"
+msgstr "Файли резерву (.orig)"
+
+#: optiondialog.cpp:1228
+msgid ""
+"If a file would be saved over an old file, then the old file\n"
+"will be renamed with a '.orig' extension instead of being deleted."
+msgstr ""
+"Якщо файл буде збережено замість старого файла, старий файл\n"
+"буде перейменовано на файл з суфіксом «.orig» замість вилучення."
+
+#: optiondialog.cpp:1301 optiondialog.cpp:1302
+msgid "Regional Settings"
+msgstr "Локалізація"
+
+#: optiondialog.cpp:1402
+msgid "Language (restart required)"
+msgstr "Мова (потрібний перезапуск)"
+
+#: optiondialog.cpp:1445
+msgid ""
+"Choose the language of the GUI strings or \"Auto\".\n"
+"For a change of language to take place, quit and restart KDiff3."
+msgstr ""
+"Виберіть мову рядків графічного інтерфейсу або «Авто».\n"
+"Щоб змінити мову програми, вийдіть з неї і знову запустіть KDiff3."
+
+#: optiondialog.cpp:1463
+msgid "Use the same encoding for everything:"
+msgstr "Використовувати однакове кодування для всього:"
+
+#: optiondialog.cpp:1466
+msgid ""
+"Enable this allows to change all encodings by changing the first only.\n"
+"Disable this if different individual settings are needed."
+msgstr ""
+"Увімкнення цього параметра надає змогу змінювати всі кодування зміною лише "
+"першого.\n"
+"Вимкніть його, якщо потрібні окремі параметри для кожної з частин."
+
+#: optiondialog.cpp:1471
+msgid "Note: Local Encoding is "
+msgstr "Зауваження: локальним кодуванням є "
+
+#: optiondialog.cpp:1475
+msgid "File Encoding for A:"
+msgstr "Кодування файла для A:"
+
+#: optiondialog.cpp:1481
+msgid ""
+"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n"
+"If the file is not Unicode then the selected encoding will be used as "
+"fallback.\n"
+"(Unicode detection depends on the first bytes of a file.)"
+msgstr ""
+"Якщо увімкнено Юнікод (UTF-16 або UTF-8) визначатиметься автоматично.\n"
+"Якщо файл не у Юнікоді, відбудеться повернення до вибраного кодування.\n"
+"(Визначення Юнікоду відбувається за першими байтами файла.)"
+
+#: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503
+msgid "Auto Detect Unicode"
+msgstr "Визначати Юнікод автоматично"
+
+#: optiondialog.cpp:1490
+msgid "File Encoding for B:"
+msgstr "Кодування файла для B:"
+
+#: optiondialog.cpp:1499
+msgid "File Encoding for C:"
+msgstr "Кодування файла для C:"
+
+#: optiondialog.cpp:1508
+msgid "File Encoding for Merge Output and Saving:"
+msgstr "Кодування файла для об’єднання і збереження:"
+
+#: optiondialog.cpp:1512
+msgid "Auto Select"
+msgstr "Автовибір"
+
+#: optiondialog.cpp:1515
+msgid ""
+"If enabled then the encoding from the input files is used.\n"
+"In ambiguous cases a dialog will ask the user to choose the encoding for "
+"saving."
+msgstr ""
+"Якщо параметр увімкнено, використовується кодування з вхідних файлів.\n"
+"У неоднозначних випадках користувача буде запитано про кодування для "
+"збереження файла."
+
+#: optiondialog.cpp:1519
+msgid "File Encoding for Preprocessor Files:"
+msgstr "Кодування файлів для файлів препроцесора:"
+
+#: optiondialog.cpp:1530
+msgid "Right To Left Language"
+msgstr "Мова з записом справа ліворуч"
+
+#: optiondialog.cpp:1533
+msgid ""
+"Some languages are read from right to left.\n"
+"This setting will change the viewer and editor accordingly."
+msgstr ""
+"Читання деякими мовами відбувається справа ліворуч.\n"
+"Цей параметр дозволяє відповідно змінити поведінку переглядача і редактора."
+
+#: optiondialog.cpp:1548
+msgid "Integration"
+msgstr "Інтеграція"
+
+#: optiondialog.cpp:1549
+msgid "Integration Settings"
+msgstr "Параметри інтеграції"
+
+#: optiondialog.cpp:1563
+msgid "Command line options to ignore:"
+msgstr "Ігнорувати параметри командного рядка:"
+
+#: optiondialog.cpp:1568
+msgid ""
+"List of command line options that should be ignored when KDiff3 is used by "
+"other tools.\n"
+"Several values can be specified if separated via ';'\n"
+"This will suppress the \"Unknown option\" error."
+msgstr ""
+"Список параметрів командного рядка, які слід ігнорувати, якщо KDiff3 "
+"використовується іншими інструментами.\n"
+"Декілька значень можна вказати відокремленням їх за допомогою «;»\n"
+"Таким чином можна позбутися повідомлень про «Невідомий параметр»."
+
+#: optiondialog.cpp:1575
+msgid "Quit also via Escape key"
+msgstr "Завершувати роботу за клавішею Escape"
+
+#: optiondialog.cpp:1578
+msgid ""
+"Fast method to exit.\n"
+"For those who are used to using the Escape key."
+msgstr ""
+"Швидкий спосіб завершення роботи.\n"
+"Для тих, хто звик користуватися клавішею Escape."
+
+#: optiondialog.cpp:1583
+msgid "Integrate with ClearCase"
+msgstr "Інтегрувати з ClearCase"
+
+#: optiondialog.cpp:1586
+msgid ""
+"Integrate with Rational ClearCase from IBM.\n"
+"Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n"
+"(Only enabled when ClearCase \"bin\" directory is in the path.)"
+msgstr ""
+"Інтегрувати з Rational ClearCase від IBM.\n"
+"Змінює файл «map» у підтеці ClearCase «lib/mgrs»\n"
+"(Доступне, лише якщо теку «bin»  ClearCase можна знайти.)"
+
+#: optiondialog.cpp:1592
+msgid "Remove ClearCase Integration"
+msgstr "Вилучити інтеграцію з ClearCase"
+
+#: optiondialog.cpp:1595
+msgid ""
+"Restore the old \"map\" file from before doing the ClearCase integration."
+msgstr ""
+"Відновити старий файл «map» від попередньої спроби інтеграції з Clearcase."
+
+#: optiondialog.cpp:1680
+msgid "Incompatible Font"
+msgstr "Несумісний шрифт"
+
+#: optiondialog.cpp:1681
+msgid "Continue at Own Risk"
+msgstr "Продовжити, я все контролюю"
+
+#: optiondialog.cpp:1682
+msgid "Select Another Font"
+msgstr "Вибрати інший шрифт"
+
+#: optiondialog.cpp:1717
+msgid "This resets all options. Not only those of the current topic."
+msgstr ""
+"Встановлює типові значення для всіх параметрів. Не лише тих, що у цьому "
+"розділі."
+
+#: pdiff.cpp:260
+msgid "PreprocessorCmd: "
+msgstr "PreprocessorCmd: "
+
+#: pdiff.cpp:265
+msgid "The following option(s) you selected might change data:\n"
+msgstr "Наступні параметри, які ви обрали, змінять дані:\n"
+
+#: pdiff.cpp:266
+msgid ""
+"\n"
+"Most likely this is not wanted during a merge.\n"
+"Do you want to disable these settings or continue with these settings active?"
+msgstr ""
+"\n"
+"Скоріше за все, ця поведінка небажана під час об’єднання.\n"
+"Ви бажаєте вимкнути ці параметри ви продовжувати з задіяними параметрами?"
+
+#: pdiff.cpp:268
+msgid "Option Unsafe for Merging"
+msgstr "Параметр небезпечний для об’єднання"
+
+#: pdiff.cpp:269
+msgid "Use These Options During Merge"
+msgstr "Використовувати ці параметри під час об’єднання"
+
+#: pdiff.cpp:270
+msgid "Disable Unsafe Options"
+msgstr "Вимкнути небезпечні параметри"
+
+#: pdiff.cpp:300
+msgid "Loading A"
+msgstr "Завантаження A"
+
+#: pdiff.cpp:304
+msgid "Loading B"
+msgstr "Завантаження B"
+
+#: pdiff.cpp:321 pdiff.cpp:347
+msgid "Diff: A <-> B"
+msgstr "Diff: A <-> B"
+
+#: pdiff.cpp:327 pdiff.cpp:372
+msgid "Linediff: A <-> B"
+msgstr "Linediff: A <-> B"
+
+#: pdiff.cpp:338
+msgid "Loading C"
+msgstr "Завантаження C"
+
+#: pdiff.cpp:350
+msgid "Diff: B <-> C"
+msgstr "Diff: B <-> C"
+
+#: pdiff.cpp:353
+msgid "Diff: A <-> C"
+msgstr "Diff: A <-> C"
+
+#: pdiff.cpp:375
+msgid "Linediff: B <-> C"
+msgstr "Linediff: B <-> C"
+
+#: pdiff.cpp:378
+msgid "Linediff: A <-> C"
+msgstr "Linediff: A <-> C"
+
+#: pdiff.cpp:534
+msgid "All input files contain the same text, but are not binary equal."
+msgstr ""
+"Всі вхідні файли містять однаковий текст, але не є двійково однаковими."
+
+#: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541
+#, kde-format
+msgid "Files %1 and %2 have equal text, but are not binary equal. \n"
+msgstr ""
+"Файли %1 і %2 містять однаковий текст, але не є двійково однаковими. \n"
+
+#: pdiff.cpp:551
+msgid ""
+"Some inputfiles don't seem to be pure textfiles.\n"
+"Note that the KDiff3-merge was not meant for binary data.\n"
+"Continue at your own risk."
+msgstr ""
+"Деякі з вхідних файлів не є суто текстовими файлами.\n"
+"Зауважте, що операцію об’єднання у KDiff3 не призначено для двійкових "
+"файлів.\n"
+"Продовжуйте, але можливі помилки."
+
+#: pdiff.cpp:566
+#, kde-format
+msgid ""
+"Some input characters could not be converted to valid unicode.\n"
+"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n"
+"Don't save the result if unsure. Continue at your own risk.\n"
+"Affected input files are in %1."
+msgstr ""
+"Деякі з символів вхідних даних не вдалося перетворити на символи Unicode.\n"
+"Ймовірно, вами використано помилковий кодек (наприклад UTF-8 для файлів з "
+"даними не у форматі UTF-8).\n"
+"Не зберігайте результат, якщо не певні. Відповідальність за наслідки дії "
+"лежить лише на вас.\n"
+"Файли вхідних даних, яких стосується це зауваження, зберігаються у %1."
+
+#: pdiff.cpp:1080
+msgid "Abort"
+msgstr "Перервати"
+
+#: pdiff.cpp:1087 pdiff.cpp:1175
+msgid "Opening files..."
+msgstr "Відкриття файлів..."
+
+#: pdiff.cpp:1152 pdiff.cpp:1223
+msgid "File open error"
+msgstr "Помилка відкриття файла"
+
+#: pdiff.cpp:1255
+msgid "Cutting selection..."
+msgstr "Вирізання вибраного..."
+
+#: pdiff.cpp:1276
+msgid "Copying selection to clipboard..."
+msgstr "Копіювання вибраного до кишені..."
+
+#: pdiff.cpp:1292
+msgid "Inserting clipboard contents..."
+msgstr "Вставлення вмісту кишені..."
+
+#: pdiff.cpp:1814
+msgid "Save && Continue"
+msgstr "Зберегти й продовжити"
+
+#: pdiff.cpp:1815
+msgid "Continue Without Saving"
+msgstr "Продовжити без збереження"
+
+#: pdiff.cpp:2018
+msgid "Search complete."
+msgstr "Пошук завершено."
+
+#: pdiff.cpp:2018
+msgid "Search Complete"
+msgstr "Пошук завершено"
+
+#: pdiff.cpp:2252
+msgid "Nothing is selected in either diff input window."
+msgstr "Нічого не позначено у жодному з вхідних вікон різниці."
+
+#: pdiff.cpp:2252
+msgid "Error while adding manual diff range"
+msgstr "Помилка під час додавання вручну діапазону diff"
+
+#: kdiff3_shell.cpp:76
+msgid ""
+"Could not initialize the KDiff3 part.\n"
+"This usually happens due to an installation problem. Please read the README-"
+"file in the source package for details."
+msgstr ""
+"Не вдалося ініціалізувати додатковий модуль KDiff3.\n"
+"Зазвичай, це є наслідком проблем зі встановленням. Будь ласка, прочитайте "
+"файл README у пакунку джерела, щоб дізнатися більше."
+
+#: rc.cpp:1
+msgctxt "NAME OF TRANSLATORS"
+msgid "Your names"
+msgstr "о. Іван Петрущак,Юрій Чорноіван"
+
+#: rc.cpp:2
+msgctxt "EMAIL OF TRANSLATORS"
+msgid "Your emails"
+msgstr "fr.ivan@ukrainian-orthodox.org,yurchor@ukr.net"
+
+#. i18n: file: kdiff3_part.rc:4
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:5
+msgid "&KDiff3"
+msgstr "&KDiff3"
+
+#. i18n: file: kdiff3_part.rc:13
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:8
+msgid "Configure KDiff3"
+msgstr "Налаштувати KDiff3"
+
+#. i18n: file: kdiff3_part.rc:16
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:11
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#. i18n: file: kdiff3_shell.rc:106
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:38
+msgid "Main Toolbar"
+msgstr "Головний пенал"
diff --git a/po/uk/kdiff3fileitemactionplugin.po b/po/uk/kdiff3fileitemactionplugin.po
new file mode 100644 (file)
index 0000000..31dabf1
--- /dev/null
@@ -0,0 +1,98 @@
+# Copyright (C) YEAR This_file_is_part_of_KDE
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Yuri Chornoivan <yurchor@ukr.net>, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-05-06 07:57+0300\n"
+"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
+"Language-Team: Ukrainian <kde-i18n-uk@kde.org>\n"
+"Language: uk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.2\n"
+"Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n"
+"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+
+#: kdiff3fileitemaction.cpp:94
+msgid "KDiff3 ..."
+msgstr "KDiff3…"
+
+#: kdiff3fileitemaction.cpp:125
+#, kde-format
+msgid "Compare with %1"
+msgstr "Порівняти з %1"
+
+#: kdiff3fileitemaction.cpp:131
+#, kde-format
+msgid "Merge with %1"
+msgstr "Об’єднати з %1"
+
+#: kdiff3fileitemaction.cpp:137
+#, kde-format
+msgid "Save '%1' for later"
+msgstr "Зберегти «%1» на потім"
+
+#: kdiff3fileitemaction.cpp:143
+msgid "3-way merge with base"
+msgstr "3-рівневе об’єднання за основою"
+
+#: kdiff3fileitemaction.cpp:150
+msgid "Compare with ..."
+msgstr "Порівняти з…"
+
+#: kdiff3fileitemaction.cpp:162
+msgid "Clear list"
+msgstr "Спорожнити список"
+
+#: kdiff3fileitemaction.cpp:170
+msgid "Compare"
+msgstr "Порівняти"
+
+#: kdiff3fileitemaction.cpp:176
+msgid "3 way comparison"
+msgstr "3-рівневе порівняння"
+
+#: kdiff3fileitemaction.cpp:180
+msgid "About KDiff3 menu plugin ..."
+msgstr "Про додаток меню KDiff3…"
+
+#: kdiff3fileitemaction.cpp:284
+msgid ""
+"KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+"Додаток дій з пунктами файлів KDiff3: ©Joachim Eibl, 2011\n"
+"Домашня сторінка KDiff3: http://kdiff3.sourceforge.net\n"
+"\n"
+
+#: kdiff3fileitemaction.cpp:286
+msgid ""
+"Using the contextmenu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else \"Save\" the first file for later. It "
+"will appear in the \"Compare With ...\" submenu. Then use \"Compare With\" "
+"on second file.\n"
+"For a 3-way merge first \"Save\" the base file, then the branch to merge and "
+"choose \"3-way merge with base\" on the other branch which will be used as "
+"destination.\n"
+"Same also applies to directory comparison and merge."
+msgstr ""
+"За допомогою додатка контекстного меню:\n"
+"Для простого порівняння двох вибраних файлів виберіть пункт «Порівняти».\n"
+"Якщо інший файл у якомусь іншому місці, «Збережіть» перший файл. У цьому "
+"разі він з’явиться у підменю «Порівняти з…». Потім скористайтеся пунктом "
+"«Порівняти з» для другого файла.\n"
+"Для 3-рівневого об’єднання спочатку «Збережіть» основний файл, потім варіант "
+"для об’єднання і оберіть «3-рівневе об’єднання за основою» на іншому "
+"варіанті файла, який буде використано як файл призначення об’єднання.\n"
+"Те саме стосується і порівняння з об’єднанням каталогів."
+
+#: kdiff3fileitemaction.cpp:294
+msgid "About KDiff3 File Item Action Plugin"
+msgstr "Про додаток дій з пунктами файлів KDiff3"
diff --git a/po/uk/kdiff3plugin.po b/po/uk/kdiff3plugin.po
new file mode 100644 (file)
index 0000000..c4cb94e
--- /dev/null
@@ -0,0 +1,99 @@
+# translation of kdiff3plugin.po to Ukrainian
+# Copyright (C) YEAR This_file_is_part_of_KDE
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Yuri Chornoivan <yurchor@ukr.net>, 2008, 2009, 2010, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3plugin\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-05-02 09:55+0300\n"
+"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
+"Language-Team: Ukrainian <translation@linux.org.ua>\n"
+"Language: uk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.2\n"
+"Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n"
+"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+
+#: kdiff3plugin.cpp:107
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#: kdiff3plugin.cpp:114
+#, kde-format
+msgid "Compare with %1"
+msgstr "Порівняти з %1"
+
+#: kdiff3plugin.cpp:120
+#, kde-format
+msgid "Merge with %1"
+msgstr "Об’єднати з %1"
+
+#: kdiff3plugin.cpp:126
+#, kde-format
+msgid "Save '%1' for later"
+msgstr "Зберегти «%1» на потім"
+
+#: kdiff3plugin.cpp:132
+msgid "3-way merge with base"
+msgstr "3-рівневе об’єднання за основою"
+
+#: kdiff3plugin.cpp:139
+msgid "Compare with ..."
+msgstr "Порівняти з..."
+
+#: kdiff3plugin.cpp:149
+msgid "Clear list"
+msgstr "Очистити список"
+
+#: kdiff3plugin.cpp:157
+msgid "Compare"
+msgstr "Порівняти"
+
+#: kdiff3plugin.cpp:163
+msgid "3 way comparison"
+msgstr "3-рівневе порівняння"
+
+#: kdiff3plugin.cpp:167
+msgid "About KDiff3 menu plugin ..."
+msgstr "Про додаток меню KDiff3..."
+
+#: kdiff3plugin.cpp:269
+msgid ""
+"KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+"Додаток меню KDiff3: © Joachim Eibl, 2008\n"
+"Домашня сторінка KDiff3: http://kdiff3.sourceforge.net\n"
+"\n"
+
+#: kdiff3plugin.cpp:271
+msgid ""
+"Using the context menu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else, \"Save\" the first file for later, and "
+"it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With"
+"\" on the second file.\n"
+"For a 3-way merge first, \"Save\" the base file, then the branch to merge, "
+"and then \"3-way merge with base\" on the other branch which will be used as "
+"the destination.\n"
+"The same also applies to directory comparison and merge."
+msgstr ""
+"За допомогою додатка контекстного меню:\n"
+"Для простого порівняння двох вибраних файлів виберіть пункт «Порівняти».\n"
+"Якщо інший файл у якомусь іншому місці, «Збережіть» перший файл. У цьому "
+"разі він з’явиться у підменю «Порівняти з...». Потім скористайтеся пунктом "
+"«Порівняти з» для другого файла.\n"
+"Для 3-рівневого об’єднання спочатку «Збережіть» основний файл, потім варіант "
+"для об’єднання і оберіть «3-рівневе об’єднання за основою» на іншому "
+"варіанті файла, який буде використано як файл призначення об’єднання.\n"
+"Те саме стосується і порівняння з об’єднанням каталогів."
+
+#: kdiff3plugin.cpp:279
+msgid "About KDiff3 Menu Plugin"
+msgstr "Про додаток меню KDiff3"
diff --git a/po/update_po_dir b/po/update_po_dir
new file mode 100644 (file)
index 0000000..5b0abb5
--- /dev/null
@@ -0,0 +1,119 @@
+# Copyright (C) 2008 by Joachim Eibl
+# Licence: GPL V2
+#   GNU GENERAL PUBLIC LICENSE, Version 2, June 1991
+#   This program is free software; you can redistribute it and/or modify
+#   it under the terms of the GNU General Public License as published by
+#   the Free Software Foundation; either version 2 of the License, or
+#   (at your option) any later version.
+#
+#   This program is distributed in the hope that it will be useful,
+#   but WITHOUT ANY WARRANTY; without even the implied warranty of
+#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#   GNU General Public License for more details.
+#
+#   You should have received a copy of the GNU General Public License
+#   along with this program; if not, write to the Free Software
+#   Foundation, Inc., 51 Franklin Steet, Fifth Floor, Boston, MA  02111-1307  USA
+#
+#   For details see file "COPYING".
+
+# update_po_dir: 
+# automatically fetch the most recent translations from the websvn.kde.org server
+# and update all files for translations
+# Requirements: wget, gettext-tools, qt3-devel-tools
+
+export getFiles=1
+export rmFiles=1
+
+while getopts ":g:r:" opt; do
+  case $opt in
+    g)
+      getFiles=$OPTARG
+      ;;
+    r)
+      rmFiles=$OPTARG
+      ;;
+    \?)
+      echo "Invalid option: -$OPTARG" >&2
+      ;;
+  esac
+done
+echo "Remove temp files: $rmFiles"
+echo "Get files: $getFiles"
+
+export LANG=en_US.UTF-8
+# extract extra strings
+xgettext --keyword=i18n --keyword=I18N_NOOP -C ../src-QT4/kreplacements/kreplacements.cpp -o kreplacements.pot
+sed -i /add_subdirectory/d CMakeLists.txt
+if [ $getFiles -eq 1 ]; then
+   wget http://websvn.kde.org/*checkout*/trunk/l10n-kde4/subdirs -O subdirs
+fi
+for i in `cat subdirs` ; do
+   # Many languages don't have translations so don't worry about errors too much.
+   if [ $getFiles -eq 1 ]; then
+      wget http://websvn.kde.org/*checkout*/trunk/l10n-kde4/$i/messages/extragear-utils/kdiff3.po -O $i.po
+      # if file exists and has size greater than zero
+      if [ $i != "x-test" -a -s $i.po ]; then
+         if [ -s $i.po ]; then
+            # if directory exists delete it recursively and recreate it
+            if [ -d $i ]; then
+               rm -R $i
+            fi
+            mkdir $i
+            mv $i.po $i/kdiff3.po
+         fi
+      fi
+      if [ -e $i.po ]; then
+         rm $i.po              # possibly empty file
+      fi
+   fi
+   if [ -s $i/kdiff3.po ]; then
+      echo $i
+      sed s/xx/$i/ CMakeLists_xx.txt >$i/CMakeLists.txt
+
+      if [ $getFiles -eq 1 ]; then
+         # Same for the kdiff3plugin.po-file
+         wget http://websvn.kde.org/*checkout*/trunk/l10n-kde4/$i/messages/extragear-utils/kdiff3plugin.po -O $i/kdiff3plugin.po
+         if [ ! -s $i/kdiff3plugin.po ]; then
+            rm $i/kdiff3plugin.po
+         fi
+
+         # Same for the kdiff3fileitemactionplugin.po-file
+         wget http://websvn.kde.org/*checkout*/trunk/l10n-kde4/$i/messages/extragear-utils/kdiff3fileitemactionplugin.po -O $i/kdiff3fileitemactionplugin.po
+         if [ ! -s $i/kdiff3fileitemactionplugin.po ]; then
+            rm $i/kdiff3fileitemactionplugin.po    
+         fi
+         
+         # Create qm-files
+         # The qm files are only needed for the qt-only version, not for the KDE-version.
+         wget http://websvn.kde.org/*checkout*/trunk/l10n-kde4/$i/messages/kdelibs/kdelibs4.po -O kdelibs_$i.po
+      fi
+
+      # (msgmerge and msgcat are from "gettext-tools"-package.)
+      msgmerge --no-fuzzy-matching kdelibs_$i.po kreplacements.pot >kreplacements_$i.po
+      msgcat --use-first $i/kdiff3.po kreplacements_$i.po >kdiff3_$i.po
+      # (msg2qm is from "qt3-devel-tools"-package.)
+      #/usr/lib/qt3/bin/msg2qm kdiff3_$i.po kdiff3_$i.qm
+      # lconvert is from qt4 (libqt4-devel)
+      sed -i "/#~/d;/#,/d" kdiff3_$i.po
+      lconvert -if po -of qm -o kdiff3_$i.qm kdiff3_$i.po
+      
+      if [ $rmFiles -eq 1 ]; then
+         rm kdelibs_$i.po kdiff3_$i.po kreplacements_$i.po
+      fi
+      echo add_subdirectory\($i\) >>CMakeLists.txt
+   fi
+done
+
+# Print some info
+echo Translated items per language:
+for i in `cat subdirs` ; do
+   if [ -s $i/kdiff3.po ]; then
+      echo $i `grep msgstr $i/kdiff3.po | grep -v \"\" | wc -l`
+   fi
+done
+
+if [ $rmFiles -eq 1 ]; then
+   rm subdirs
+   rm kreplacements.pot
+fi
diff --git a/po/zh_CN/CMakeLists.txt b/po/zh_CN/CMakeLists.txt
new file mode 100644 (file)
index 0000000..d1c85c8
--- /dev/null
@@ -0,0 +1,2 @@
+file(GLOB _po_files *.po)
+GETTEXT_PROCESS_PO_FILES(zh_CN ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
diff --git a/po/zh_CN/kdiff3.po b/po/zh_CN/kdiff3.po
new file mode 100644 (file)
index 0000000..39196c1
--- /dev/null
@@ -0,0 +1,3179 @@
+# Copyright (C) 2004 Free Software Foundation, Inc.
+#
+# zhu-zhy <sp_xym@hotmail.com>, 2004.
+# Mai Haohui <mhh@ricetons.com>, 2004.
+# Li Ang <lllaaa@gmail.com>, 2010.
+# Feng Chao <rainofchaos@gmail.com>, 2010, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-06-06 10:18+0800\n"
+"Last-Translator: Feng Chao <rainofchaos@gmail.com>\n"
+"Language-Team: Chinese Simplified <kde-china@kde.org>\n"
+"Language: zh_CNX-Generator: Lokalize 1.1\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Language: zh_CN\n"
+"X-Generator: Lokalize 1.2\n"
+
+#: kreplacements/kreplacements.h:105
+msgid "Continue"
+msgstr "继续"
+
+#: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158
+#: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512
+msgid "Cancel"
+msgstr "取消"
+
+#: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631
+msgid "Quit"
+msgstr "退出"
+
+#: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339
+msgid "Ok"
+msgstr "确定"
+
+#: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715
+msgid "Help"
+msgstr "帮助"
+
+#: kreplacements/kreplacements.cpp:185
+msgid "Defaults"
+msgstr "默认"
+
+#. i18n: file: kdiff3_shell.rc:4
+#. i18n: ectx: Menu (file)
+#: kreplacements/kreplacements.cpp:296 rc.cpp:14
+msgid "&File"
+msgstr "文件(&F)"
+
+#: kreplacements/kreplacements.cpp:297
+msgid "&Edit"
+msgstr "编辑(&E)"
+
+#. i18n: file: kdiff3_shell.rc:7
+#. i18n: ectx: Menu (directory)
+#: kreplacements/kreplacements.cpp:298 rc.cpp:17
+msgid "&Directory"
+msgstr "目录(&D)"
+
+#. i18n: file: kdiff3_shell.rc:50
+#. i18n: ectx: Menu (movement)
+#: kreplacements/kreplacements.cpp:301 rc.cpp:26
+msgid "&Movement"
+msgstr "移动(&M)"
+
+#. i18n: file: kdiff3_shell.rc:61
+#. i18n: ectx: Menu (diff)
+#: kreplacements/kreplacements.cpp:302 rc.cpp:29
+msgid "D&iffview"
+msgstr "查看 Diff(&I)"
+
+#. i18n: file: kdiff3_shell.rc:73
+#. i18n: ectx: Menu (merge)
+#: kreplacements/kreplacements.cpp:303 rc.cpp:32
+msgid "&Merge"
+msgstr "合并(&M)"
+
+#. i18n: file: kdiff3_shell.rc:95
+#. i18n: ectx: Menu (window)
+#: kreplacements/kreplacements.cpp:304 rc.cpp:35
+msgid "&Window"
+msgstr "窗口(&W)"
+
+#: kreplacements/kreplacements.cpp:305
+msgid "&Settings"
+msgstr "设置(&S)"
+
+#: kreplacements/kreplacements.cpp:306
+msgid "&Help"
+msgstr "帮助(&H)"
+
+#: kreplacements/kreplacements.cpp:353
+msgid "&About"
+msgstr "关于(&A)"
+
+#: kreplacements/kreplacements.cpp:369
+msgid "A&uthor"
+msgstr "作者(&U)"
+
+#: kreplacements/kreplacements.cpp:383
+msgid "&Thanks To"
+msgstr "感谢(&T)"
+
+#. i18n: file: kdiff3_shell.rc:30
+#. i18n: ectx: Menu (dir_current_merge_menu)
+#: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497
+#: rc.cpp:20
+msgid "Current Item Merge Operation"
+msgstr "当前项目合并操作"
+
+#. i18n: file: kdiff3_shell.rc:38
+#. i18n: ectx: Menu (dir_current_sync_menu)
+#: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498
+#: rc.cpp:23
+msgid "Current Item Sync Operation"
+msgstr "当前项目同步操作"
+
+#: kreplacements/kreplacements.cpp:597
+msgid "Open"
+msgstr "打开"
+
+#: kreplacements/kreplacements.cpp:606
+msgid "Save"
+msgstr "保存"
+
+#: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720
+msgid "Save As..."
+msgstr "另存为..."
+
+#: kreplacements/kreplacements.cpp:623
+msgid "Print..."
+msgstr "打印..."
+
+#: kreplacements/kreplacements.cpp:639
+msgid "Cut"
+msgstr "剪切"
+
+#: kreplacements/kreplacements.cpp:647
+msgid "Copy"
+msgstr "复制"
+
+#: kreplacements/kreplacements.cpp:655
+msgid "Paste"
+msgstr "粘贴"
+
+#: kreplacements/kreplacements.cpp:663
+msgid "Select All"
+msgstr "全选"
+
+#: kreplacements/kreplacements.cpp:671
+msgid "Show Toolbar"
+msgstr "显示工具栏"
+
+#: kreplacements/kreplacements.cpp:679
+msgid "Show &Status Bar"
+msgstr "显示状态栏(&S)"
+
+#: kreplacements/kreplacements.cpp:687
+#, kde-format
+msgid "&Configure %1..."
+msgstr "配置 %1(&C)..."
+
+#: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707
+msgid "About"
+msgstr "关于"
+
+#: kreplacements/kreplacements.cpp:722
+msgid "Find"
+msgstr "查找"
+
+#: kreplacements/kreplacements.cpp:730
+msgid "Find Next"
+msgstr "查找下一个"
+
+#: kreplacements/kreplacements.cpp:750
+msgid "Select Font"
+msgstr "选择字体"
+
+#: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676
+msgid ""
+"You selected a variable width font.\n"
+"\n"
+"Because this program doesn't handle variable width fonts\n"
+"correctly, you might experience problems while editing.\n"
+"\n"
+"Do you want to continue or do you want to select another font."
+msgstr ""
+"您选择了一个可变宽度字体。\n"
+"\n"
+"因为此程序不能正确处理可变宽度字体\n"
+"您可能在编辑时遇到问题。\n"
+"\n"
+"您要继续,还是另选一种字体。"
+
+#: kreplacements/kreplacements.cpp:792
+msgid "Incompatible font."
+msgstr "不兼容字体"
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Continue at my own risk"
+msgstr "自愿冒险继续"
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Select another font"
+msgstr "选择另一种字体"
+
+#: kreplacements/kreplacements.cpp:1134
+msgid "For more documentation, see the help-menu or the subdirectory doc."
+msgstr "需更多文档,请见帮助菜单或doc目录。"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "KDiff3-Usage"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Ignore"
+msgstr "忽略"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Exit"
+msgstr "退出"
+
+#: diff.cpp:251
+msgid "Writing clipboard data to temp file failed."
+msgstr "将剪贴板数据写入临时文件失败。"
+
+#: diff.cpp:255
+msgid "From Clipboard"
+msgstr "从剪贴板"
+
+#: diff.cpp:471
+msgid "Expecting space after closing quotation mark."
+msgstr ""
+
+#: diff.cpp:474
+msgid "Not matching quotation marks."
+msgstr ""
+
+#: diff.cpp:496
+msgid "Unexpected quotation mark within argument."
+msgstr ""
+
+#: diff.cpp:503
+msgid "No program specified."
+msgstr ""
+
+#: diff.cpp:605
+#, kde-format
+msgid ""
+"Preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The preprocessing command will be disabled now."
+msgstr ""
+"预处理可能失败了。请检查这个命令:\n"
+"\n"
+"  %1\n"
+"\n"
+"现在预处理命令会被禁用。"
+
+#: diff.cpp:653
+#, kde-format
+msgid ""
+"The line-matching-preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The line-matching-preprocessing command will be disabled now."
+msgstr ""
+"行匹配处理可能失败。请检查这个命令:\n"
+"\n"
+"  %1\n"
+"\n"
+"现在行匹配处理命令会被禁用。"
+
+#: diff.cpp:1776 diff.cpp:1790
+msgid ""
+"Data loss error:\n"
+"If it is reproducible please contact the author.\n"
+msgstr ""
+"数据丢失错误:\n"
+"如果它是可复现的,请联系作者。\n"
+
+#: diff.cpp:1778 diff.cpp:1792
+msgid "Severe Internal Error"
+msgstr "严重内部错误"
+
+#: directorymergewindow.cpp:136
+msgid "Mix of links and normal files."
+msgstr "链接和普通文件混合"
+
+#: directorymergewindow.cpp:143
+msgid "Link: "
+msgstr "链接:"
+
+#: directorymergewindow.cpp:151
+msgid "Size. "
+msgstr "大小。"
+
+#: directorymergewindow.cpp:164 directorymergewindow.cpp:174
+msgid "Date & Size: "
+msgstr "日期和大小:"
+
+#: directorymergewindow.cpp:184 directorymergewindow.cpp:190
+#, kde-format
+msgid "Creating temp copy of %1 failed."
+msgstr "创建临时 %1 副本失败。"
+
+#: directorymergewindow.cpp:201 directorymergewindow.cpp:209
+#, kde-format
+msgid "Opening %1 failed."
+msgstr "打开 %1 失败。"
+
+#: directorymergewindow.cpp:213
+msgid "Comparing file..."
+msgstr "正在比较文件..."
+
+#: directorymergewindow.cpp:223 directorymergewindow.cpp:229
+#, kde-format
+msgid "Error reading from %1"
+msgstr "读取 %1 时错误"
+
+#: directorymergewindow.cpp:358
+msgid "Name"
+msgstr "名称"
+
+#: directorymergewindow.cpp:358
+msgid "Operation"
+msgstr "操作"
+
+#: directorymergewindow.cpp:358
+msgid "Status"
+msgstr "状态"
+
+#: directorymergewindow.cpp:359
+msgid "Unsolved"
+msgstr "未解决的"
+
+#: directorymergewindow.cpp:359
+msgid "Solved"
+msgstr "已解决的"
+
+#: directorymergewindow.cpp:359
+msgid "Nonwhite"
+msgstr "非空白"
+
+#: directorymergewindow.cpp:359
+msgid "White"
+msgstr "空白"
+
+#: directorymergewindow.cpp:388
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort "
+"the merge and rescan the directory?"
+msgstr "您当前正在合并目录。您确定要放弃合并,重新扫描目录吗?"
+
+#: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655
+#: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823
+msgid "Warning"
+msgstr "警告"
+
+#: directorymergewindow.cpp:390 directorymergewindow.cpp:2965
+msgid "Rescan"
+msgstr "重新扫描"
+
+#: directorymergewindow.cpp:391 pdiff.cpp:1081
+msgid "Continue Merging"
+msgstr "继续合并"
+
+#: directorymergewindow.cpp:548
+msgid "Opening of directories failed:"
+msgstr "打开目录失败:"
+
+#: directorymergewindow.cpp:551
+#, kde-format
+msgid "Dir A \"%1\" does not exist or is not a directory.\n"
+msgstr "目录 A “%1”不存在或者不是目录。\n"
+
+#: directorymergewindow.cpp:554
+#, kde-format
+msgid "Dir B \"%1\" does not exist or is not a directory.\n"
+msgstr "目录 B “%1”不存在或者不是目录。\n"
+
+#: directorymergewindow.cpp:557
+#, kde-format
+msgid "Dir C \"%1\" does not exist or is not a directory.\n"
+msgstr "目录 C “%1”不存在或者不是目录。\n"
+
+#: directorymergewindow.cpp:559
+msgid "Directory Open Error"
+msgstr "打开目录错误"
+
+#: directorymergewindow.cpp:567
+msgid ""
+"The destination directory must not be the same as A or B when three "
+"directories are merged.\n"
+"Check again before continuing."
+msgstr ""
+"当三个目录合并时,目标目录不能是 A 或者 B。\n"
+"在继续进行前,请再核对一遍。"
+
+#: directorymergewindow.cpp:569
+msgid "Parameter Warning"
+msgstr "参数警告"
+
+#: directorymergewindow.cpp:574
+msgid "Scanning directories..."
+msgstr "正在扫描目录..."
+
+#: directorymergewindow.cpp:607
+msgid "Reading Directory A"
+msgstr "读取目录 A"
+
+#: directorymergewindow.cpp:629
+msgid "Reading Directory B"
+msgstr "读取目录 B"
+
+#: directorymergewindow.cpp:651
+msgid "Reading Directory C"
+msgstr "读取目录 C"
+
+#: directorymergewindow.cpp:677
+msgid "Some subdirectories were not readable in"
+msgstr "不能进入读取一些子目录"
+
+#: directorymergewindow.cpp:682
+msgid "Check the permissions of the subdirectories."
+msgstr "检查子目录权限。"
+
+#: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737
+#: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233
+#: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328
+msgid "Ready."
+msgstr "就绪。"
+
+#: directorymergewindow.cpp:735
+msgid "Directory Comparison Status"
+msgstr "目录比较状态"
+
+#: directorymergewindow.cpp:736
+msgid "Number of subdirectories:"
+msgstr "子目录数:"
+
+#: directorymergewindow.cpp:737
+msgid "Number of equal files:"
+msgstr "相同文件数:"
+
+#: directorymergewindow.cpp:738
+msgid "Number of different files:"
+msgstr "不同文件数:"
+
+#: directorymergewindow.cpp:741
+msgid "Number of manual merges:"
+msgstr "手动合并数:"
+
+#: directorymergewindow.cpp:912
+msgid "This affects all merge operations."
+msgstr "这将影响全部合并操作。"
+
+#: directorymergewindow.cpp:913
+msgid "Changing All Merge Operations"
+msgstr "更改全部合并操作"
+
+#: directorymergewindow.cpp:1312
+msgid "Processing "
+msgstr "处理 "
+
+#: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742
+msgid "To do."
+msgstr "执行。"
+
+#: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996
+msgid "Copy A to B"
+msgstr "复制 A 到 B"
+
+#: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997
+msgid "Copy B to A"
+msgstr "复制 B 到 A"
+
+#: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998
+msgid "Delete A"
+msgstr "删除 A"
+
+#: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999
+msgid "Delete B"
+msgstr "删除 B"
+
+#: directorymergewindow.cpp:1814
+msgid "Delete A & B"
+msgstr "删除 A 和 B"
+
+#: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001
+msgid "Merge to A"
+msgstr "合并到 A"
+
+#: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002
+msgid "Merge to B"
+msgstr "合并到 B"
+
+#: directorymergewindow.cpp:1817
+msgid "Merge to A & B"
+msgstr "合并到 A 和 B"
+
+#: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993
+msgid "Delete (if exists)"
+msgstr "删除(如果存在)"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+#: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869
+msgid "Merge"
+msgstr "合并"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+msgid "Merge (manual)"
+msgstr "合并(手动)"
+
+#: directorymergewindow.cpp:1824
+msgid "Error: Conflicting File Types"
+msgstr "错误:文件类型冲突"
+
+#: directorymergewindow.cpp:1825
+msgid "Error: Changed and Deleted"
+msgstr "错误:变化并删除"
+
+#: directorymergewindow.cpp:1826
+msgid "Error: Dates are equal but files are not."
+msgstr "错误:日期相同但是文件不同。"
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906
+msgid "This operation is currently not possible."
+msgstr "现在不能执行此操作。"
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174
+msgid "Operation Not Possible"
+msgstr "操作不可行"
+
+#: directorymergewindow.cpp:1945
+msgid ""
+"This should never happen: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"If you know how to reproduce this, please contact the program author."
+msgstr ""
+"此情况不应再发生:\n"
+"\n"
+"合并结果保存:m_pMFI=0\n"
+"\n"
+"如果您知道如何重现错误,请联系程序作者。"
+
+#: directorymergewindow.cpp:1945
+msgid "Program Error"
+msgstr "程序错误"
+
+#: directorymergewindow.cpp:1956
+msgid "An error occurred while copying.\n"
+msgstr "复制时发生错误。\n"
+
+#: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025
+#: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105
+#: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123
+#: directorymergewindow.cpp:2374
+msgid "Error"
+msgstr "错误"
+
+#: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375
+msgid "Merge Error"
+msgstr "合并错误"
+
+#: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380
+msgid "Error."
+msgstr "错误。"
+
+#: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272
+#: directorymergewindow.cpp:2312
+msgid "Done."
+msgstr "完成。"
+
+#: directorymergewindow.cpp:1990
+msgid "Not saved."
+msgstr "未保存。"
+
+#: directorymergewindow.cpp:2025
+msgid "Unknown merge operation. (This must never happen!)"
+msgstr "未知合并操作。(绝不可以发生!)"
+
+#: directorymergewindow.cpp:2057
+msgid "Unknown merge operation."
+msgstr "未知合并操作。"
+
+#: directorymergewindow.cpp:2072
+msgid ""
+"The merge is about to begin.\n"
+"\n"
+"Choose \"Do it\" if you have read the instructions and know what you are "
+"doing.\n"
+"Choosing \"Simulate it\" will tell you what would happen.\n"
+"\n"
+"Be aware that this program still has beta status and there is NO WARRANTY "
+"whatsoever! Make backups of your vital data!"
+msgstr ""
+"合并将开始。\n"
+"\n"
+"选择“执行”如果您已经阅读了指南并知道您在做什么。\n"
+"选择“模拟”将告诉您将发生什么。\n"
+"\n"
+"注意此程序依然处于 beta 状态,没有任何保证!备份您的重要数据!"
+
+#: directorymergewindow.cpp:2077
+msgid "Starting Merge"
+msgstr "开始合并"
+
+#: directorymergewindow.cpp:2078
+msgid "Do It"
+msgstr "执行"
+
+#: directorymergewindow.cpp:2079
+msgid "Simulate It"
+msgstr "模拟"
+
+#: directorymergewindow.cpp:2105
+msgid ""
+"The highlighted item has a different type in the different directories. "
+"Select what to do."
+msgstr "高亮的项目在不同的目录有不同类型。选择做什么。"
+
+#: directorymergewindow.cpp:2114
+msgid ""
+"The modification dates of the file are equal but the files are not. Select "
+"what to do."
+msgstr "文件的修改日期相同但是文件不同。选择做什么。"
+
+#: directorymergewindow.cpp:2123
+msgid ""
+"The highlighted item was changed in one directory and deleted in the other. "
+"Select what to do."
+msgstr "高亮的项目在一个目录被修改,在另一个目录被删除。请选择如何处理。"
+
+#: directorymergewindow.cpp:2174
+msgid ""
+"This operation is currently not possible because directory merge is "
+"currently running."
+msgstr "此操作当前不可行,因为目录合并正在运行。"
+
+#: directorymergewindow.cpp:2234
+msgid ""
+"There was an error in the last step.\n"
+"Do you want to continue with the item that caused the error or do you want "
+"to skip this item?"
+msgstr ""
+"最后一步有错误。\n"
+"您要继续进行导致错误的项目还是跳过该项?"
+
+#: directorymergewindow.cpp:2236
+msgid "Continue merge after an error"
+msgstr "出错后继续合并"
+
+#: directorymergewindow.cpp:2237
+msgid "Continue With Last Item"
+msgstr "继续进行上一项"
+
+#: directorymergewindow.cpp:2238
+msgid "Skip Item"
+msgstr "跳过项目"
+
+#: directorymergewindow.cpp:2272
+msgid "Skipped."
+msgstr "已跳过。"
+
+#: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493
+msgid "In progress..."
+msgstr "进行中..."
+
+#: directorymergewindow.cpp:2327
+msgid "Merge operation complete."
+msgstr "合并操作完成。"
+
+#: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330
+msgid "Merge Complete"
+msgstr "合并完成"
+
+#: directorymergewindow.cpp:2340
+msgid ""
+"Simulated merge complete: Check if you agree with the proposed operations."
+msgstr "模拟合并完成:核对您是否赞同被提议的操作。"
+
+#: directorymergewindow.cpp:2374
+msgid "An error occurred. Press OK to see detailed information.\n"
+msgstr "错误发生。按 OK 看详细信息。\n"
+
+#: directorymergewindow.cpp:2406
+#, kde-format
+msgid "Error: While deleting %1: Creating backup failed."
+msgstr "错误:在删除 %1 时:创建备份失败。"
+
+#: directorymergewindow.cpp:2413
+#, kde-format
+msgid "delete directory recursively( %1 )"
+msgstr "递归删除目录( %1 )"
+
+#: directorymergewindow.cpp:2415
+#, kde-format
+msgid "delete( %1 )"
+msgstr "删除( %1 )"
+
+#: directorymergewindow.cpp:2430
+msgid "Error: delete dir operation failed while trying to read the directory."
+msgstr "错误:在试图读取目录时删除目录操作失败。"
+
+#: directorymergewindow.cpp:2449
+#, kde-format
+msgid "Error: rmdir( %1 ) operation failed."
+msgstr "错误:rmdir( %1 )操作失败。"
+
+#: directorymergewindow.cpp:2459
+msgid "Error: delete operation failed."
+msgstr "错误:删除操作失败。"
+
+#: directorymergewindow.cpp:2485
+#, kde-format
+msgid "manual merge( %1, %2, %3 -> %4)"
+msgstr "手动合并( %1,%2,%3 -> %4)"
+
+#: directorymergewindow.cpp:2488
+msgid ""
+"     Note: After a manual merge the user should continue by pressing F7."
+msgstr "     注意:在手动合并之后用户应该按 F7 继续。"
+
+#: directorymergewindow.cpp:2513
+#, kde-format
+msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed."
+msgstr "错误:复制( %1 -> %2 )失败。删除现存目标失败。"
+
+#: directorymergewindow.cpp:2522
+#, kde-format
+msgid "copyLink( %1 -> %2 )"
+msgstr "复制链接( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2533
+msgid "Error: copyLink failed: Remote links are not yet supported."
+msgstr "错误:复制链接失败:远程链接尚未支持。"
+
+#: directorymergewindow.cpp:2539
+msgid "Error: copyLink failed."
+msgstr "错误:复制链接失败。"
+
+#: directorymergewindow.cpp:2564
+#, kde-format
+msgid "copy( %1 -> %2 )"
+msgstr "复制(  %1 -> %2 )"
+
+#: directorymergewindow.cpp:2590
+#, kde-format
+msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination."
+msgstr "重命名( %1 -> %2 )错误:无法删除现存目标。"
+
+#: directorymergewindow.cpp:2596
+#, kde-format
+msgid "rename( %1 -> %2 )"
+msgstr "重命名( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2605
+msgid "Error: Rename failed."
+msgstr "错误:重命名失败。"
+
+#: directorymergewindow.cpp:2623
+#, kde-format
+msgid "Error during makeDir of %1. Cannot delete existing file."
+msgstr "建立目录 %1 出错。无法删除现存文件。"
+
+#: directorymergewindow.cpp:2639
+#, kde-format
+msgid "makeDir( %1 )"
+msgstr "建立目录( %1 )"
+
+#: directorymergewindow.cpp:2649
+msgid "Error while creating directory."
+msgstr "创建目录时出错。"
+
+#: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784
+msgid "Dest"
+msgstr "目标"
+
+#: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709
+msgid "Dir"
+msgstr "目录"
+
+#: directorymergewindow.cpp:2678
+msgid "Type"
+msgstr "类型"
+
+#: directorymergewindow.cpp:2678
+msgid "Size"
+msgstr "大小"
+
+#: directorymergewindow.cpp:2679
+msgid "Attr"
+msgstr "属性"
+
+#: directorymergewindow.cpp:2679
+msgid "Last Modification"
+msgstr "上次修改"
+
+#: directorymergewindow.cpp:2679
+msgid "Link-Destination"
+msgstr "链接目标"
+
+#: directorymergewindow.cpp:2709 difftextwindow.cpp:401
+msgid "File"
+msgstr "文件"
+
+#: directorymergewindow.cpp:2726
+msgid "not available"
+msgstr "不可用"
+
+#: directorymergewindow.cpp:2746
+msgid "A (Dest): "
+msgstr "A (目标):"
+
+#: directorymergewindow.cpp:2749
+msgid "A (Base): "
+msgstr "A 基准"
+
+#: directorymergewindow.cpp:2755
+msgid "B (Dest): "
+msgstr "B (目标):"
+
+#: directorymergewindow.cpp:2763
+msgid "C (Dest): "
+msgstr "C (目标):"
+
+#: directorymergewindow.cpp:2769
+msgid "Dest: "
+msgstr "目标:"
+
+#: directorymergewindow.cpp:2836
+msgid "Save Directory Merge State As..."
+msgstr "另存目录合并状态..."
+
+#: directorymergewindow.cpp:2959
+msgid "Start/Continue Directory Merge"
+msgstr "开始/继续目录合并"
+
+#: directorymergewindow.cpp:2960
+msgid "Run Operation for Current Item"
+msgstr "开始当前项目操作"
+
+#: directorymergewindow.cpp:2961
+msgid "Compare Selected File"
+msgstr "比较所选文件"
+
+#: directorymergewindow.cpp:2962
+msgid "Merge Current File"
+msgstr "合并当前文件"
+
+#: directorymergewindow.cpp:2962
+msgid ""
+"Merge\n"
+"File"
+msgstr "合并文件"
+
+#: directorymergewindow.cpp:2963
+msgid "Fold All Subdirs"
+msgstr "折叠全部子文件夹"
+
+#: directorymergewindow.cpp:2964
+msgid "Unfold All Subdirs"
+msgstr "打开全部子文件夹"
+
+#: directorymergewindow.cpp:2968
+msgid "Choose A for All Items"
+msgstr "选择 A 的全部项目"
+
+#: directorymergewindow.cpp:2969
+msgid "Choose B for All Items"
+msgstr "选择 B 的全部项目"
+
+#: directorymergewindow.cpp:2970
+msgid "Choose C for All Items"
+msgstr "选择 C 的全部项目"
+
+#: directorymergewindow.cpp:2971
+msgid "Auto-Choose Operation for All Items"
+msgstr "为全部项目自动选择操作"
+
+#: directorymergewindow.cpp:2972
+msgid "No Operation for All Items"
+msgstr "全部项目无操作"
+
+#: directorymergewindow.cpp:2977
+msgid "Show Identical Files"
+msgstr "显示相同的文件"
+
+#: directorymergewindow.cpp:2977
+msgid ""
+"Identical\n"
+"Files"
+msgstr ""
+"相同\n"
+"文件"
+
+#: directorymergewindow.cpp:2978
+msgid "Show Different Files"
+msgstr "显示不同的文件:"
+
+#: directorymergewindow.cpp:2979
+msgid "Show Files only in A"
+msgstr "显示只在A中有的文件"
+
+#: directorymergewindow.cpp:2979
+msgid ""
+"Files\n"
+"only in A"
+msgstr ""
+"只在\n"
+"A中文件"
+
+#: directorymergewindow.cpp:2980
+msgid "Show Files only in B"
+msgstr "显示只在B中有的文件"
+
+#: directorymergewindow.cpp:2980
+msgid ""
+"Files\n"
+"only in B"
+msgstr ""
+"只在\n"
+"B中文件"
+
+#: directorymergewindow.cpp:2981
+msgid "Show Files only in C"
+msgstr "显示只在C中有的文件"
+
+#: directorymergewindow.cpp:2981
+msgid ""
+"Files\n"
+"only in C"
+msgstr ""
+"只在\n"
+"C中文件"
+
+#: directorymergewindow.cpp:2985
+msgid "Compare Explicitly Selected Files"
+msgstr "比较所选文件"
+
+#: directorymergewindow.cpp:2986
+msgid "Merge Explicitly Selected Files"
+msgstr "合并所选文件"
+
+#: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995
+msgid "Do Nothing"
+msgstr "什么也不做"
+
+#: directorymergewindow.cpp:2989
+msgid "A"
+msgstr "A"
+
+#: directorymergewindow.cpp:2990
+msgid "B"
+msgstr "B"
+
+#: directorymergewindow.cpp:2991
+msgid "C"
+msgstr "C"
+
+#: directorymergewindow.cpp:3000
+msgid "Delete A && B"
+msgstr "删除 A 和 B"
+
+#: directorymergewindow.cpp:3003
+msgid "Merge to A && B"
+msgstr "合并到 A 和 B"
+
+#: main.cpp:74 main.cpp:76
+msgid "Ignored. (User defined.)"
+msgstr "忽略。(用户自定义的。)"
+
+#: main.cpp:162
+msgid "kdiff3"
+msgstr "KDiff3"
+
+#: main.cpp:164
+msgid "Tool for Comparison and Merge of Files and Directories"
+msgstr "比较及合并文件和目录的工具"
+
+#: main.cpp:165
+msgid "(c) 2002-2011 Joachim Eibl"
+msgstr ""
+
+#: main.cpp:172 kdiff3_part.cpp:303
+msgid "Joachim Eibl"
+msgstr ""
+
+#: main.cpp:173
+msgid "Eike Sauer"
+msgstr ""
+
+#: main.cpp:173
+msgid "Bugfixes, Debian package maintainer"
+msgstr ""
+
+#: main.cpp:174
+msgid "Sebastien Fricker"
+msgstr ""
+
+#: main.cpp:174
+msgid "Windows installer"
+msgstr ""
+
+#: main.cpp:175
+msgid "Stephan Binner"
+msgstr "Stephan Binner"
+
+#: main.cpp:175
+msgid "i18n-help"
+msgstr ""
+
+#: main.cpp:176
+msgid "Stefan Partheymueller"
+msgstr ""
+
+#: main.cpp:176
+#, fuzzy
+#| msgid "From Clipboard"
+msgid "Clipboard-patch"
+msgstr "从剪贴板"
+
+#: main.cpp:177
+msgid "David Faure"
+msgstr "David Faure"
+
+#: main.cpp:177
+msgid "KIO-Help"
+msgstr ""
+
+#: main.cpp:178
+msgid "Bernd Gehrmann"
+msgstr "Bernd Gehrmann"
+
+#: main.cpp:178
+msgid "Class CvsIgnoreList from Cervisia"
+msgstr ""
+
+#: main.cpp:179
+msgid "Andre Woebbeking"
+msgstr ""
+
+#: main.cpp:179
+msgid "Class StringMatcher"
+msgstr ""
+
+#: main.cpp:180
+msgid "Michael Denio"
+msgstr ""
+
+#: main.cpp:180
+msgid "Directory Equality-Coloring patch"
+msgstr ""
+
+#: main.cpp:181
+msgid "Manfred Koehler"
+msgstr ""
+
+#: main.cpp:181
+msgid "Fix for slow startup on Windows"
+msgstr ""
+
+#: main.cpp:182
+msgid "Sergey Zorin"
+msgstr ""
+
+#: main.cpp:182
+msgid "Diff Ext for Windows"
+msgstr ""
+
+#: main.cpp:183
+msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+msgstr ""
+
+#: main.cpp:183
+msgid "GNU-Diffutils"
+msgstr ""
+
+#: main.cpp:184
+msgid "Tino Boellsterling, Timothy Mee"
+msgstr ""
+
+#: main.cpp:184
+msgid "Intensive test, use and feedback"
+msgstr ""
+
+#: main.cpp:185
+msgid "Michael Schmidt"
+msgstr ""
+
+#: main.cpp:185
+msgid "Mac support"
+msgstr ""
+
+#: main.cpp:186
+msgid "Valentin Rusu"
+msgstr "Valentin Rusu"
+
+#: main.cpp:186 main.cpp:187
+msgid "KDE4 porting"
+msgstr "KDE4 移植"
+
+#: main.cpp:187
+msgid "Albert Astals Cid"
+msgstr "Albert Astals Cid"
+
+#: main.cpp:188
+msgid "Silvan Scherrer"
+msgstr ""
+
+#: main.cpp:188
+msgid "OS2 port"
+msgstr ""
+
+#: main.cpp:190
+msgid "+ Many thanks to those who reported bugs and contributed ideas!"
+msgstr "+ 十分感谢报告错误和贡献想法的人们!"
+
+#: main.cpp:196
+msgid "Merge the input."
+msgstr "合并输入。"
+
+#: main.cpp:197
+msgid "Explicit base file. For compatibility with certain tools."
+msgstr "明确基准文件,以便与某些工具兼容。"
+
+#: main.cpp:198
+msgid "Output file. Implies -m. E.g.: -o newfile.txt"
+msgstr "输出文件。Implies -m。例如:-o newfile.txt"
+
+#: main.cpp:199
+msgid "Output file, again. (For compatibility with certain tools.)"
+msgstr "再次输出文件。(为与某些工具兼容。)"
+
+#: main.cpp:200
+msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)"
+msgstr "如果全部冲突自动解决无图形用户界面。(需要 -o file)"
+
+#: main.cpp:201
+msgid "Don't solve conflicts automatically. (For compatibility...)"
+msgstr "不自动解决冲突。(为了兼容性...)"
+
+#: main.cpp:202
+msgid "Visible name replacement for input file 1 (base)."
+msgstr "为输入文件1(基准文件)做的可见名替换。"
+
+#: main.cpp:203
+msgid "Visible name replacement for input file 2."
+msgstr "为输入文件2做的可见名替换。"
+
+#: main.cpp:204
+msgid "Visible name replacement for input file 3."
+msgstr "为输入文件3做的可见名替换。"
+
+#: main.cpp:205
+msgid "Alternative visible name replacement. Supply this once for every input."
+msgstr "候选可见名替换。每次输入提供。"
+
+#: main.cpp:206
+msgid ""
+"Override a config setting. Use once for every setting. E.g.: --cs "
+"\"AutoAdvance=1\""
+msgstr ""
+
+#: main.cpp:207
+#, fuzzy
+msgid "Show list of config settings and current values."
+msgstr "显示配置及值。"
+
+#: main.cpp:208
+#, fuzzy
+msgid "Use a different config file."
+msgstr "使用不同的配置文件。"
+
+#: main.cpp:211
+msgid "file1 to open (base, if not specified via --base)"
+msgstr "要打开的文件(基准文件,如果未通过 --base 指定)"
+
+#: main.cpp:212
+msgid "file2 to open"
+msgstr "要打开的文件 2"
+
+#: main.cpp:213
+msgid "file3 to open"
+msgstr "要打开的文件 3"
+
+#: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976
+#: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002
+#: mergeresultwindow.cpp:1014
+#, kde-format
+msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)"
+msgstr "还未解决的冲突数目:%1(其中 %2 项为空白字符)"
+
+#: mergeresultwindow.cpp:303
+msgid ""
+"The output has been modified.\n"
+"If you continue your changes will be lost."
+msgstr ""
+"已修改输出。\n"
+"如果您继续您的更改将丢失。"
+
+#: mergeresultwindow.cpp:834 pdiff.cpp:532
+msgid "All input files are binary equal."
+msgstr "全部输入文件二进制数据相同。"
+
+#: mergeresultwindow.cpp:836
+msgid "All input files contain the same text."
+msgstr "全部输入文件包含相同文本。"
+
+#: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840
+#: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540
+#, kde-format
+msgid "Files %1 and %2 are binary equal.\n"
+msgstr "文件 %1 和 %2 二进制数据相同。\n"
+
+#: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841
+#: mergeresultwindow.cpp:843
+#, kde-format
+msgid "Files %1 and %2 have equal text.\n"
+msgstr "文件%1和%2文本相同。\n"
+
+#: mergeresultwindow.cpp:849
+msgid "Total number of conflicts: "
+msgstr "冲突总数:"
+
+#: mergeresultwindow.cpp:850
+msgid ""
+"\n"
+"Nr of automatically solved conflicts: "
+msgstr ""
+"\n"
+"自动解决的冲突数目:"
+
+#: mergeresultwindow.cpp:851
+msgid ""
+"\n"
+"Nr of unsolved conflicts: "
+msgstr ""
+"\n"
+"未解决冲突数目:"
+
+#: mergeresultwindow.cpp:853
+msgid "Conflicts"
+msgstr "冲突"
+
+#: mergeresultwindow.cpp:1728
+msgid "<No src line>"
+msgstr "<无源行>"
+
+#: mergeresultwindow.cpp:1736
+msgid "<Merge Conflict (Whitespace only)>"
+msgstr "<合并冲突(只有空白字符)>"
+
+#: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517
+msgid "<Merge Conflict>"
+msgstr "<合并冲突>"
+
+#: mergeresultwindow.cpp:2725
+msgid ""
+"Not all conflicts are solved yet.\n"
+"File not saved.\n"
+msgstr ""
+"尚未解决全部冲突。\n"
+"文件未保存。\n"
+
+#: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736
+msgid "Conflicts Left"
+msgstr "遗留的冲突"
+
+#: mergeresultwindow.cpp:2734
+#, fuzzy
+msgid ""
+"There is a line end style conflict. Please choose the line end style "
+"manually.\n"
+"File not saved.\n"
+msgstr ""
+"有一处行尾风格冲突。请手动选择行尾风格。\n"
+"文件未保存。"
+
+#: mergeresultwindow.cpp:2748
+msgid ""
+"\n"
+"\n"
+"Creating backup failed. File not saved."
+msgstr ""
+"\n"
+"\n"
+"创建备份失败。文件未保存。"
+
+#: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792
+msgid "File Save Error"
+msgstr "保存文件错误"
+
+#: mergeresultwindow.cpp:2792
+msgid "Error while writing."
+msgstr "写入时出错。"
+
+#: mergeresultwindow.cpp:3122
+msgid "Output"
+msgstr "输出"
+
+#: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314
+msgid "[Modified]"
+msgstr "[已修改]"
+
+#: mergeresultwindow.cpp:3141
+msgid "Encoding for saving"
+msgstr "保存用的文件编码:"
+
+#: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737
+#: optiondialog.cpp:762
+msgid "Line end style:"
+msgstr "行尾风格:"
+
+#: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767
+msgid "Unix"
+msgstr "UNIX"
+
+#: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737
+msgid "DOS"
+msgstr "DOS"
+
+#: mergeresultwindow.cpp:3229
+msgid "Conflict"
+msgstr "冲突"
+
+#: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263
+#: mergeresultwindow.cpp:3265
+msgid "Codec from"
+msgstr ""
+
+#: kdiff3_part.cpp:157 kdiff3_part.cpp:234
+msgid "Couldn't find files for comparison."
+msgstr "无法找到文件比较。"
+
+#: kdiff3_part.cpp:302
+msgid "KDiff3Part"
+msgstr "KDiff3Part"
+
+#: fileaccess.cpp:612
+msgid ""
+"While trying to make a backup, deleting an older backup failed. \n"
+"Filename: "
+msgstr ""
+"试图做备份时,删除旧备份失败。\n"
+"文件名:"
+
+#: fileaccess.cpp:619
+msgid ""
+"While trying to make a backup, renaming failed. \n"
+"Filenames: "
+msgstr ""
+"试图备份时,重命名失败。\n"
+"文件名:"
+
+#: fileaccess.cpp:643
+#, kde-format
+msgid "Getting file status: %1"
+msgstr "获取文件状态:%1"
+
+#: fileaccess.cpp:686
+#, kde-format
+msgid "Reading file: %1"
+msgstr "读取文件:%1"
+
+#: fileaccess.cpp:723
+#, kde-format
+msgid "Writing file: %1"
+msgstr "写入文件:%1"
+
+#: fileaccess.cpp:751
+msgid "Out of memory"
+msgstr "内存溢出"
+
+#: fileaccess.cpp:786
+#, kde-format
+msgid "Making directory: %1"
+msgstr "建立目录:%1"
+
+#: fileaccess.cpp:806
+#, kde-format
+msgid "Removing directory: %1"
+msgstr "删除目录:%1"
+
+#: fileaccess.cpp:821
+#, kde-format
+msgid "Removing file: %1"
+msgstr "删除文件:%1"
+
+#: fileaccess.cpp:837
+#, kde-format
+msgid "Creating symbolic link: %1 -> %2"
+msgstr "创建符号链接:%1 -> %2"
+
+#: fileaccess.cpp:864
+#, kde-format
+msgid "Renaming file: %1 -> %2"
+msgstr "重命名文件:%1 -> %2"
+
+#: fileaccess.cpp:897
+#, kde-format
+msgid "Copying file: %1 -> %2"
+msgstr "复制文件:%1 -> %2"
+
+#: fileaccess.cpp:911
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for reading failed. Filename: "
+"%1"
+msgstr "文件复制操作出错:打开文件读取失败。文件名:%1"
+
+#: fileaccess.cpp:917
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for writing failed. Filename: "
+"%1"
+msgstr "文件复制操作出错:打开文件写入失败。文件名:%1"
+
+#: fileaccess.cpp:932
+#, kde-format
+msgid "Error during file copy operation: Reading failed. Filename: %1"
+msgstr "文件复制操作出错:读取失败。文件名:%1"
+
+#: fileaccess.cpp:941
+#, kde-format
+msgid "Error during file copy operation: Writing failed. Filename: %1"
+msgstr "文件复制操作出错:写入失败。文件名:%1"
+
+#: fileaccess.cpp:1231
+msgid "Reading directory: "
+msgstr "读取目录:"
+
+#: fileaccess.cpp:1355
+#, kde-format
+msgid "Listing directory: %1"
+msgstr "目录列表:%1"
+
+#: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396
+msgid "&Cancel"
+msgstr "取消(&C)"
+
+#: difftextwindow.cpp:403
+msgid "Line"
+msgstr "行"
+
+#: difftextwindow.cpp:405
+#, fuzzy
+#| msgid "not available"
+msgid "Line not available"
+msgstr "不可用"
+
+#: difftextwindow.cpp:1703 difftextwindow.cpp:1736
+msgid "Encoding:"
+msgstr "编码:"
+
+#: difftextwindow.cpp:1759 kdiff3.cpp:831
+msgid "Top line"
+msgstr "顶端行数"
+
+#: difftextwindow.cpp:1769
+msgid "End"
+msgstr "末尾"
+
+#: kdiff3.cpp:169
+msgid "Current Configuration:"
+msgstr "当前配置:"
+
+#: kdiff3.cpp:174
+msgid "Config Option Error:"
+msgstr "配置选项错误:"
+
+#: kdiff3.cpp:219
+msgid "Option --auto used, but no output file specified."
+msgstr "选项 -- 自动使用,但没有指定输出文件。"
+
+#: kdiff3.cpp:369
+msgid "Option --auto ignored for directory comparison."
+msgstr "选项 -- 自动忽略目录比较。"
+
+#: kdiff3.cpp:405
+msgid "Saving failed."
+msgstr "保存失败。"
+
+#: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214
+msgid "Opening of these files failed:"
+msgstr "打开以下文件失败:"
+
+#: kdiff3.cpp:449
+msgid "File Open Error"
+msgstr "文件打开出错"
+
+#: kdiff3.cpp:477
+msgid "Opens documents for comparison..."
+msgstr "打开文档比较..."
+
+#: kdiff3.cpp:479
+msgid "Reload"
+msgstr "重新装入"
+
+#: kdiff3.cpp:482
+msgid "Saves the merge result. All conflicts must be solved!"
+msgstr "保存合并结果。必须解决全部冲突!"
+
+#: kdiff3.cpp:484
+msgid "Saves the current document as..."
+msgstr "保存当前文档为..."
+
+#: kdiff3.cpp:487
+msgid "Print the differences"
+msgstr "打印差异"
+
+#: kdiff3.cpp:490
+msgid "Quits the application"
+msgstr "退出程序"
+
+#: kdiff3.cpp:492
+msgid "Cuts the selected section and puts it to the clipboard"
+msgstr "剪切所选节,将其放入剪贴板"
+
+#: kdiff3.cpp:494
+msgid "Copies the selected section to the clipboard"
+msgstr "复制所选节至剪贴板"
+
+#: kdiff3.cpp:496
+#, fuzzy
+#| msgid "Pastes the clipboard contents to actual position"
+msgid "Pastes the clipboard contents to current position"
+msgstr "粘贴剪贴板内容到实际位置"
+
+#: kdiff3.cpp:498
+msgid "Select everything in current window"
+msgstr "选则当前窗口的所有内容"
+
+#: kdiff3.cpp:500
+msgid "Search for a string"
+msgstr "搜索字符串"
+
+#: kdiff3.cpp:502
+msgid "Search again for the string"
+msgstr "再次搜索该字符串"
+
+#: kdiff3.cpp:507
+msgid "Enables/disables the statusbar"
+msgstr "启用/禁止状态栏"
+
+#: kdiff3.cpp:511
+msgid "Configure KDiff3..."
+msgstr "配置 KDiff3..."
+
+#: kdiff3.cpp:532
+msgid "Go to Current Delta"
+msgstr "到当前 Delta"
+
+#: kdiff3.cpp:532
+msgid ""
+"Current\n"
+"Delta"
+msgstr ""
+"当前\n"
+"差异"
+
+#: kdiff3.cpp:534
+msgid "Go to First Delta"
+msgstr "到第一个 Delta"
+
+#: kdiff3.cpp:534
+msgid ""
+"First\n"
+"Delta"
+msgstr "首个差异"
+
+#: kdiff3.cpp:536
+msgid "Go to Last Delta"
+msgstr "到最后一个 Delta"
+
+#: kdiff3.cpp:536
+msgid ""
+"Last\n"
+"Delta"
+msgstr ""
+"最后\n"
+"差异"
+
+#: kdiff3.cpp:538
+msgid "(Skips white space differences when \"Show White Space\" is disabled.)"
+msgstr "(禁用“显示空白字符”时跳过空白差异。)"
+
+#: kdiff3.cpp:539
+msgid ""
+"(Does not skip white space differences even when \"Show White Space\" is "
+"disabled.)"
+msgstr "(禁用“显示空白字符”时也不跳过空白差异。)"
+
+#: kdiff3.cpp:540
+msgid "Go to Previous Delta"
+msgstr "到上一个 Delta"
+
+#: kdiff3.cpp:540
+#, fuzzy
+#| msgid "Go to Previous Delta"
+msgid ""
+"Prev\n"
+"Delta"
+msgstr "到上一个 Delta"
+
+#: kdiff3.cpp:542
+msgid "Go to Next Delta"
+msgstr "到下一个 Delta"
+
+#: kdiff3.cpp:542
+#, fuzzy
+#| msgid "Go to Next Delta"
+msgid ""
+"Next\n"
+"Delta"
+msgstr "到下一个 Delta"
+
+#: kdiff3.cpp:544
+msgid "Go to Previous Conflict"
+msgstr "到上一个冲突"
+
+#: kdiff3.cpp:544
+msgid ""
+"Prev\n"
+"Conflict"
+msgstr "上一个冲突"
+
+#: kdiff3.cpp:546
+msgid "Go to Next Conflict"
+msgstr "到下一个冲突"
+
+#: kdiff3.cpp:546
+msgid ""
+"Next\n"
+"Conflict"
+msgstr "下一个冲突"
+
+#: kdiff3.cpp:548
+msgid "Go to Previous Unsolved Conflict"
+msgstr "到上一个未解决冲突"
+
+#: kdiff3.cpp:548
+msgid ""
+"Prev\n"
+"Unsolved"
+msgstr "上一个未解决的"
+
+#: kdiff3.cpp:550
+msgid "Go to Next Unsolved Conflict"
+msgstr "到下一个未解决冲突"
+
+#: kdiff3.cpp:550
+msgid ""
+"Next\n"
+"Unsolved"
+msgstr "下一个未解决的"
+
+#: kdiff3.cpp:552
+msgid "Select Line(s) From A"
+msgstr "从 A 选择 行"
+
+#: kdiff3.cpp:552
+msgid ""
+"Choose\n"
+"A"
+msgstr ""
+"选择\n"
+"A"
+
+#: kdiff3.cpp:553
+msgid "Select Line(s) From B"
+msgstr "从 B 选择行"
+
+#: kdiff3.cpp:553
+msgid ""
+"Choose\n"
+"B"
+msgstr ""
+"选择\n"
+"B"
+
+#: kdiff3.cpp:554
+msgid "Select Line(s) From C"
+msgstr "从 C 选择行"
+
+#: kdiff3.cpp:554
+msgid ""
+"Choose\n"
+"C"
+msgstr ""
+"选择\n"
+"C"
+
+#: kdiff3.cpp:555
+msgid "Automatically Go to Next Unsolved Conflict After Source Selection"
+msgstr "源码选择后自动到下一个未解决冲突"
+
+#: kdiff3.cpp:555
+msgid ""
+"Auto\n"
+"Next"
+msgstr ""
+"自动\n"
+"下一个"
+
+#: kdiff3.cpp:557
+msgid "Show Space && Tabulator Characters for Differences"
+msgstr "显示间距和制表符的不同"
+
+#: kdiff3.cpp:557
+msgid ""
+"White\n"
+"Characters"
+msgstr ""
+"空白\n"
+"字符"
+
+#: kdiff3.cpp:558
+msgid "Show White Space"
+msgstr "显示空白字符"
+
+#: kdiff3.cpp:558
+msgid ""
+"White\n"
+"Deltas"
+msgstr ""
+
+#: kdiff3.cpp:560
+msgid "Show Line Numbers"
+msgstr "显示行号"
+
+#: kdiff3.cpp:560
+msgid ""
+"Line\n"
+"Numbers"
+msgstr "行数"
+
+#: kdiff3.cpp:561
+msgid "Choose A Everywhere"
+msgstr "总是选择 A"
+
+#: kdiff3.cpp:562
+msgid "Choose B Everywhere"
+msgstr "总是选择 B"
+
+#: kdiff3.cpp:563
+msgid "Choose C Everywhere"
+msgstr "总是选择 C"
+
+#: kdiff3.cpp:564
+msgid "Choose A for All Unsolved Conflicts"
+msgstr "所有未解决冲突均选择 A"
+
+#: kdiff3.cpp:565
+msgid "Choose B for All Unsolved Conflicts"
+msgstr "所有未解决冲突均选择 B"
+
+#: kdiff3.cpp:566
+msgid "Choose C for All Unsolved Conflicts"
+msgstr "所有未解决冲突均选择 C"
+
+#: kdiff3.cpp:567
+msgid "Choose A for All Unsolved Whitespace Conflicts"
+msgstr "所有未解决空白字符冲突均选择 A"
+
+#: kdiff3.cpp:568
+msgid "Choose B for All Unsolved Whitespace Conflicts"
+msgstr "所有未解决空白字符冲突均选择 B"
+
+#: kdiff3.cpp:569
+msgid "Choose C for All Unsolved Whitespace Conflicts"
+msgstr "所有未解决空白字符冲突均选择 C"
+
+#: kdiff3.cpp:570
+msgid "Automatically Solve Simple Conflicts"
+msgstr "自动解决简单冲突"
+
+#: kdiff3.cpp:571
+msgid "Set Deltas to Conflicts"
+msgstr "设置 Delta 为冲突"
+
+#: kdiff3.cpp:572
+msgid "Run Regular Expression Auto Merge"
+msgstr "进行正则表达式自动合并"
+
+#: kdiff3.cpp:573
+msgid "Automatically Solve History Conflicts"
+msgstr "自动解决历史冲突"
+
+#: kdiff3.cpp:574
+msgid "Split Diff At Selection"
+msgstr ""
+
+#: kdiff3.cpp:575
+msgid "Join Selected Diffs"
+msgstr "合并所选差异"
+
+#: kdiff3.cpp:577
+msgid "Show Window A"
+msgstr "显示窗口 A"
+
+#: kdiff3.cpp:578
+msgid "Show Window B"
+msgstr "显示窗口 B"
+
+#: kdiff3.cpp:579
+msgid "Show Window C"
+msgstr "显示窗口 C"
+
+#: kdiff3.cpp:580 kdiff3.cpp:591
+msgid "Focus Next Window"
+msgstr "聚焦于下一个窗口"
+
+#: kdiff3.cpp:582
+msgid "Normal Overview"
+msgstr "普通概览"
+
+#: kdiff3.cpp:583
+msgid "A vs. B Overview"
+msgstr "A 和 B 概览"
+
+#: kdiff3.cpp:584
+msgid "A vs. C Overview"
+msgstr "A 和 C 概览"
+
+#: kdiff3.cpp:585
+msgid "B vs. C Overview"
+msgstr "B 和 C 概览"
+
+#: kdiff3.cpp:586
+msgid "Word Wrap Diff Windows"
+msgstr "在 Diff 窗口自动换行"
+
+#: kdiff3.cpp:587
+msgid "Add Manual Diff Alignment"
+msgstr "添加手工对齐"
+
+#: kdiff3.cpp:588
+msgid "Clear All Manual Diff Alignments"
+msgstr "清除所有的手工对齐"
+
+#: kdiff3.cpp:593
+msgid "Focus Prev Window"
+msgstr "聚焦于上一个窗口"
+
+#: kdiff3.cpp:594
+msgid "Toggle Split Orientation"
+msgstr "切换分隔方向"
+
+#: kdiff3.cpp:596
+msgid "Dir && Text Split Screen View"
+msgstr "目录和文本分屏视图"
+
+#: kdiff3.cpp:598
+msgid "Toggle Between Dir && Text View"
+msgstr "切换目录和文本视图"
+
+#: kdiff3.cpp:654 pdiff.cpp:1812
+msgid "The merge result hasn't been saved."
+msgstr "合并结果未保存。"
+
+#: kdiff3.cpp:656
+msgid "Save && Quit"
+msgstr "保存并退出"
+
+#: kdiff3.cpp:657
+msgid "Quit Without Saving"
+msgstr "退出不保存"
+
+#: kdiff3.cpp:665 pdiff.cpp:1823
+msgid "Saving the merge result failed."
+msgstr "保存合并结果失败。"
+
+#: kdiff3.cpp:676 pdiff.cpp:1078
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort?"
+msgstr "您当前正在合并目录。您确认要放弃吗?"
+
+#: kdiff3.cpp:701
+msgid "Saving file..."
+msgstr "正在保存文件..."
+
+#: kdiff3.cpp:718
+msgid "Saving file with a new filename..."
+msgstr "正在用新文件名保存文件..."
+
+#: kdiff3.cpp:781
+#, fuzzy
+#| msgid "Printing completed."
+msgid "Printing not implemented."
+msgstr "打印完成。"
+
+#: kdiff3.cpp:815
+#, fuzzy
+msgid "Printing..."
+msgstr "正在打印..."
+
+#: kdiff3.cpp:956
+msgid "Selection"
+msgstr "选择"
+
+#: kdiff3.cpp:982
+msgid "Printing completed."
+msgstr "打印完成。"
+
+#: kdiff3.cpp:986
+msgid "Printing aborted."
+msgstr "打印中止。"
+
+#: kdiff3.cpp:993
+msgid "Exiting..."
+msgstr "正在退出..."
+
+#: kdiff3.cpp:1006
+msgid "Toggling toolbar..."
+msgstr "切换工具栏..."
+
+#: kdiff3.cpp:1027
+msgid "Toggle the statusbar..."
+msgstr "切换状态栏..."
+
+#: smalldialogs.cpp:58
+msgid "A (Base):"
+msgstr "A (基准文件):"
+
+#: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99
+#: smalldialogs.cpp:142
+msgid "File..."
+msgstr "文件..."
+
+#: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101
+#: smalldialogs.cpp:144
+msgid "Dir..."
+msgstr "目录..."
+
+#: smalldialogs.cpp:93
+msgid "C (Optional):"
+msgstr "C (可选):"
+
+#: smalldialogs.cpp:116
+msgid "Swap/Copy Names ..."
+msgstr "交换/复制文件名..."
+
+#: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123
+#, kde-format
+msgid "Swap %1<->%2"
+msgstr "交换 %1<->%2"
+
+#: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126
+#, kde-format
+msgid "Copy %1->Output"
+msgstr "复制 %1->输出"
+
+#: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129
+#, kde-format
+msgid "Swap %1<->Output"
+msgstr "交换 %1<->输出"
+
+#: smalldialogs.cpp:136
+msgid "Output (optional):"
+msgstr "输出(可选):"
+
+#: smalldialogs.cpp:168
+msgid "Configure..."
+msgstr "配置..."
+
+#: smalldialogs.cpp:174
+msgid "&OK"
+msgstr "确定(&O)"
+
+#: smalldialogs.cpp:362
+msgid "Search text:"
+msgstr "搜索文本:"
+
+#: smalldialogs.cpp:369
+msgid "Case sensitive"
+msgstr "区分大小写"
+
+#: smalldialogs.cpp:372
+msgid "Search A"
+msgstr "搜索 A"
+
+#: smalldialogs.cpp:377
+msgid "Search B"
+msgstr "搜索 B"
+
+#: smalldialogs.cpp:382
+msgid "Search C"
+msgstr "搜索 C"
+
+#: smalldialogs.cpp:387
+msgid "Search output"
+msgstr "搜索输出"
+
+#: smalldialogs.cpp:392
+msgid "&Search"
+msgstr "搜索(&S)"
+
+#: smalldialogs.cpp:409
+msgid "Regular Expression Tester"
+msgstr "正则表达式测试器"
+
+#: smalldialogs.cpp:414 optiondialog.cpp:936
+msgid "Auto merge regular expression:"
+msgstr "自动合并正则表达式:"
+
+#: smalldialogs.cpp:422
+msgid "Example auto merge line:"
+msgstr ""
+
+#: smalldialogs.cpp:424
+msgid "To test auto merge, copy a line as used in your files."
+msgstr ""
+
+#: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494
+msgid "Match result:"
+msgstr "匹配结果:"
+
+#: smalldialogs.cpp:441 optiondialog.cpp:962
+#, fuzzy
+msgid "History start regular expression:"
+msgstr "历史记录起始正则表达式:"
+
+#: smalldialogs.cpp:449
+msgid "Example history start line (with leading comment):"
+msgstr ""
+
+#: smalldialogs.cpp:451
+msgid ""
+"Copy a history start line as used in your files,\n"
+"including the leading comment."
+msgstr ""
+
+#: smalldialogs.cpp:469 optiondialog.cpp:972
+#, fuzzy
+msgid "History entry start regular expression:"
+msgstr "历史记录条目起始正则表达式:"
+
+#: smalldialogs.cpp:477
+msgid "History sort key order:"
+msgstr ""
+
+#: smalldialogs.cpp:485
+msgid "Example history entry start line (without leading comment):"
+msgstr ""
+
+#: smalldialogs.cpp:487
+msgid ""
+"Copy a history entry start line as used in your files,\n"
+"but omit the leading comment."
+msgstr ""
+
+#: smalldialogs.cpp:501
+msgid "Sort key result:"
+msgstr "排序结果:"
+
+#: smalldialogs.cpp:508
+msgid "OK"
+msgstr "确定"
+
+#: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583
+msgid "Match success."
+msgstr ""
+
+#: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589
+msgid "Match failed."
+msgstr "匹配失败。"
+
+#: smalldialogs.cpp:574
+msgid "Opening and closing parentheses do not match in regular expression."
+msgstr ""
+
+#: optiondialog.cpp:367
+msgid "Unicode, 8 bit"
+msgstr "8 位 Unicode"
+
+#: optiondialog.cpp:368
+msgid "Unicode"
+msgstr "Unicode"
+
+#: optiondialog.cpp:369
+msgid "Latin1"
+msgstr "Latin1"
+
+#: optiondialog.cpp:388
+msgid "Change this if non-ASCII characters are not displayed correctly."
+msgstr "如果非 ASCII 字符不能正确显示,请更改此选项。"
+
+#: optiondialog.cpp:465
+msgid "Configure"
+msgstr "配置"
+
+#: optiondialog.cpp:531
+msgid "Font"
+msgstr "字体"
+
+#: optiondialog.cpp:532
+msgid "Editor & Diff Output Font"
+msgstr "编辑器和 Diff 输出字体"
+
+#: optiondialog.cpp:556
+msgid "Italic font for deltas"
+msgstr "delta 使用斜体字"
+
+#: optiondialog.cpp:559
+msgid ""
+"Selects the italic version of the font for differences.\n"
+"If the font doesn't support italic characters, then this does nothing."
+msgstr ""
+"选择斜体字表示差别。\n"
+"如果字体不支持斜体,那么这个选项无效。"
+
+#: optiondialog.cpp:568
+msgid "Color"
+msgstr "颜色"
+
+#: optiondialog.cpp:569
+msgid "Colors Settings"
+msgstr "颜色设置"
+
+#: optiondialog.cpp:588
+msgid "Editor and Diff Views:"
+msgstr "编辑器和Diff视图:"
+
+#: optiondialog.cpp:596
+msgid "Foreground color:"
+msgstr "前景颜色:"
+
+#: optiondialog.cpp:603
+msgid "Background color:"
+msgstr "背景颜色:"
+
+#: optiondialog.cpp:612
+msgid "Diff background color:"
+msgstr "Diff 背景颜色:"
+
+#: optiondialog.cpp:620
+msgid "Color A:"
+msgstr "颜色 A:"
+
+#: optiondialog.cpp:628
+msgid "Color B:"
+msgstr "颜色 B:"
+
+#: optiondialog.cpp:636
+msgid "Color C:"
+msgstr "颜色 C:"
+
+#: optiondialog.cpp:643
+msgid "Conflict color:"
+msgstr "冲突颜色:"
+
+#: optiondialog.cpp:651
+msgid "Current range background color:"
+msgstr "当前范围背景颜色:"
+
+#: optiondialog.cpp:659
+msgid "Current range diff background color:"
+msgstr "当前范围差别背景颜色:"
+
+#: optiondialog.cpp:666
+msgid "Color for manually aligned difference ranges:"
+msgstr "手工对其区域颜色:"
+
+#: optiondialog.cpp:672
+msgid "Directory Comparison View:"
+msgstr "目录比较视图:"
+
+#: optiondialog.cpp:678
+msgid "Newest file color:"
+msgstr "最新文件的颜色"
+
+#: optiondialog.cpp:682
+#, fuzzy
+msgid ""
+"Changing this color will only be effective when starting the next directory "
+"comparison."
+msgstr "修改此颜色将在下次目录比较时生效。"
+
+#: optiondialog.cpp:687
+msgid "Oldest file color:"
+msgstr "最老文件的颜色:"
+
+#: optiondialog.cpp:695
+msgid "Middle age file color:"
+msgstr "中等文件的颜色:"
+
+#: optiondialog.cpp:703
+msgid "Color for missing files:"
+msgstr "缺失文件的颜色:"
+
+#: optiondialog.cpp:717
+msgid "Editor"
+msgstr "编辑器"
+
+#: optiondialog.cpp:718
+msgid "Editor Behavior"
+msgstr "编辑器行为"
+
+#: optiondialog.cpp:732
+msgid "Tab inserts spaces"
+msgstr "制表符插入空格"
+
+#: optiondialog.cpp:735
+msgid ""
+"On: Pressing tab generates the appropriate number of spaces.\n"
+"Off: A tab character will be inserted."
+msgstr ""
+"打开:按下 Tab 则生成相应数量的空格。\n"
+"关闭:将插入一个制表符。"
+
+#: optiondialog.cpp:741
+msgid "Tab size:"
+msgstr "制表符大小:"
+
+#: optiondialog.cpp:747
+msgid "Auto indentation"
+msgstr "自动缩进"
+
+#: optiondialog.cpp:750
+msgid "On: The indentation of the previous line is used for a new line.\n"
+msgstr "打开:使用前一行的缩进于新一行。\n"
+
+#: optiondialog.cpp:754
+msgid "Auto copy selection"
+msgstr "自动复制选择"
+
+#: optiondialog.cpp:757
+msgid ""
+"On: Any selection is immediately written to the clipboard.\n"
+"Off: You must explicitely copy e.g. via Ctrl-C."
+msgstr ""
+"打开:任何选择将被自动写入剪贴板。\n"
+"关闭:您必须明确复制内容,如通过 Ctrl-C。"
+
+#: optiondialog.cpp:768
+#, fuzzy
+#| msgid "&Window"
+msgid "Dos/Windows"
+msgstr "窗口(&W)"
+
+#: optiondialog.cpp:769
+#, fuzzy
+#| msgid "Auto Select"
+msgid "Autodetect"
+msgstr "自动选择"
+
+#: optiondialog.cpp:772
+msgid ""
+"Sets the line endings for when an edited file is saved.\n"
+"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A"
+msgstr ""
+"设置保存文件的行尾。\n"
+"DOS/Windows:CR+LF;Unix:LF;而 CR=0D,LF=0A"
+
+#: optiondialog.cpp:784
+msgid "Diff"
+msgstr "Diff"
+
+#: optiondialog.cpp:785
+msgid "Diff Settings"
+msgstr "Diff 设置"
+
+#: optiondialog.cpp:809
+msgid "Treat as white space."
+msgstr "按空白字符处理。"
+
+#: optiondialog.cpp:811
+msgid "Ignore numbers"
+msgstr "忽略数字"
+
+#: optiondialog.cpp:814
+msgid ""
+"Ignore number characters during line matching phase. (Similar to Ignore "
+"white space.)\n"
+"Might help to compare files with numeric data."
+msgstr ""
+"在行匹配阶段,忽略数字字符。(与忽略空白字符相似。)\n"
+"可能帮助比较带数值数据的文件。"
+
+#: optiondialog.cpp:819
+msgid "Ignore C/C++ comments"
+msgstr "忽略 C/C++ 注解"
+
+#: optiondialog.cpp:821
+#, fuzzy
+msgid "Treat C/C++ comments like white space."
+msgstr "C/C++ 注解按空白字符处理。"
+
+#: optiondialog.cpp:825
+msgid "Ignore case"
+msgstr "忽略大小写"
+
+#: optiondialog.cpp:828
+#, fuzzy
+msgid "Treat case differences like white space changes. ('a'<=>'A')"
+msgstr "将大小写变化当成空白字符更改。(“a”<=>“A”)"
+
+#: optiondialog.cpp:832
+msgid "Preprocessor command:"
+msgstr "预处理程序命令:"
+
+#: optiondialog.cpp:836
+msgid "User defined pre-processing. (See the docs for details.)"
+msgstr "用户定义预处理。(详细内容见文档。)"
+
+#: optiondialog.cpp:839
+msgid "Line-matching preprocessor command:"
+msgstr "行匹配预处理命令:"
+
+#: optiondialog.cpp:843
+msgid ""
+"This pre-processor is only used during line matching.\n"
+"(See the docs for details.)"
+msgstr ""
+"此预处理仅在行匹配时使用。\n"
+"(详细内容见文档。)"
+
+#: optiondialog.cpp:846
+msgid "Try hard (slower)"
+msgstr "尽量仔细(较慢)"
+
+#: optiondialog.cpp:849
+msgid ""
+"Enables the --minimal option for the external diff.\n"
+"The analysis of big files will be much slower."
+msgstr ""
+"为外部 diff 程序启用 --minimal 选项。\n"
+"大文件的分析会慢得多。"
+
+#: optiondialog.cpp:854
+msgid "Align B and C for 3 input files"
+msgstr "三方比较时对齐B和C"
+
+#: optiondialog.cpp:857
+#, fuzzy
+msgid ""
+"Try to align B and C when comparing or merging three input files.\n"
+"Not recommended for merging because merge might get more complicated.\n"
+"(Default is off.)"
+msgstr ""
+"进行三方比较或合并时尝试对齐B与C。\n"
+"合并时不推荐,因为会导致情况更复杂。\n"
+"(默认关闭)"
+
+#: optiondialog.cpp:870
+msgid "Merge Settings"
+msgstr "合并设置"
+
+#: optiondialog.cpp:885
+msgid "Auto advance delay (ms):"
+msgstr "自动前进延迟(毫秒):"
+
+#: optiondialog.cpp:890
+msgid ""
+"When in Auto-Advance mode the result of the current selection is shown \n"
+"for the specified time, before jumping to the next conflict. Range: 0-2000 ms"
+msgstr ""
+"在自动前进模式,当前选择结果显示一定时间,才会跳到下一个冲突。范围:0-2000 毫"
+"秒"
+
+#: optiondialog.cpp:895
+msgid "Show info dialogs"
+msgstr "显示信息对话框"
+
+#: optiondialog.cpp:897
+msgid "Show a dialog with information about the number of conflicts."
+msgstr "显示冲突数量对话框"
+
+#: optiondialog.cpp:900
+msgid "White space 2-file merge default:"
+msgstr "2 文件合并默认空白字符:"
+
+#: optiondialog.cpp:904 optiondialog.cpp:917
+msgid "Manual Choice"
+msgstr "手动选择"
+
+#: optiondialog.cpp:908 optiondialog.cpp:922
+msgid ""
+"Allow the merge algorithm to automatically select an input for white-space-"
+"only changes."
+msgstr "允许合并算法为仅有空白字符变化自动选择输入。"
+
+#: optiondialog.cpp:913
+msgid "White space 3-file merge default:"
+msgstr "默认 3 文件合并空白字符:"
+
+#: optiondialog.cpp:927
+msgid "Automatic Merge Regular Expression"
+msgstr "自动化合并正则表达式"
+
+#: optiondialog.cpp:940
+msgid ""
+"Regular expression for lines where KDiff3 should automatically choose one "
+"source.\n"
+"When a line with a conflict matches the regular expression then\n"
+"- if available - C, otherwise B will be chosen."
+msgstr ""
+
+#: optiondialog.cpp:946
+#, fuzzy
+msgid "Run regular expression auto merge on merge start"
+msgstr "合并开始时进行正则表达式自动合并"
+
+#: optiondialog.cpp:948
+msgid ""
+"Run the merge for auto merge regular expressions\n"
+"immediately when a merge starts.\n"
+msgstr ""
+
+#: optiondialog.cpp:953
+msgid "Version Control History Merging"
+msgstr "版本控制历史合并"
+
+#: optiondialog.cpp:966
+msgid ""
+"Regular expression for the start of the version control history entry.\n"
+"Usually this line contains the \"$Log$\" keyword.\n"
+"Default value: \".*\\$Log.*\\$.*\""
+msgstr ""
+
+#: optiondialog.cpp:984
+msgid ""
+"A version control history entry consists of several lines.\n"
+"Specify the regular expression to detect the first line (without the leading "
+"comment).\n"
+"Use parentheses to group the keys you want to use for sorting.\n"
+"If left empty, then KDiff3 assumes that empty lines separate history "
+"entries.\n"
+"See the documentation for details."
+msgstr ""
+
+#: optiondialog.cpp:992
+msgid "History merge sorting"
+msgstr "历史合并排序"
+
+#: optiondialog.cpp:994
+msgid "Sort version control history by a key."
+msgstr ""
+
+#: optiondialog.cpp:1004
+msgid "History entry start sort key order:"
+msgstr ""
+
+#: optiondialog.cpp:1008
+msgid ""
+"Each pair of parentheses used in the regular expression for the history "
+"start entry\n"
+"groups a key that can be used for sorting.\n"
+"Specify the list of keys (that are numbered in order of occurrence\n"
+"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n"
+"If left empty, then no sorting will be done.\n"
+"See the documentation for details."
+msgstr ""
+
+#: optiondialog.cpp:1019
+#, fuzzy
+msgid "Merge version control history on merge start"
+msgstr "开始合并时进行版本控制历史合并"
+
+#: optiondialog.cpp:1021
+msgid "Run version control history automerge on merge start."
+msgstr ""
+
+#: optiondialog.cpp:1025
+msgid "Max number of history entries:"
+msgstr "最大历史记录数:"
+
+#: optiondialog.cpp:1028
+msgid "Cut off after specified number. Use -1 for infinite number of entries."
+msgstr ""
+
+#: optiondialog.cpp:1032
+msgid "Test your regular expressions"
+msgstr "测试正则表达式"
+
+#: optiondialog.cpp:1037
+msgid "Irrelevant merge command:"
+msgstr ""
+
+#: optiondialog.cpp:1041
+msgid ""
+"If specified this script is run after automerge\n"
+"when no other relevant changes were detected.\n"
+"Called with the parameters: filename1 filename2 filename3"
+msgstr ""
+
+#: optiondialog.cpp:1047
+msgid "Auto save and quit on merge without conflicts"
+msgstr "合并无冲突时自动保存并退出"
+
+#: optiondialog.cpp:1050
+msgid ""
+"If KDiff3 was started for a file-merge from the command line and all\n"
+"conflicts are solvable without user interaction then automatically save and "
+"quit.\n"
+"(Similar to command line option \"--auto\".)"
+msgstr ""
+
+#: optiondialog.cpp:1061 optiondialog.cpp:1062
+msgid "Directory"
+msgstr "目录"
+
+#: optiondialog.cpp:1075
+msgid "Recursive directories"
+msgstr "包含子目录"
+
+#: optiondialog.cpp:1077
+msgid "Whether to analyze subdirectories or not."
+msgstr "是否分析子目录。"
+
+#: optiondialog.cpp:1079
+msgid "File pattern(s):"
+msgstr "文件模式:"
+
+#: optiondialog.cpp:1084
+msgid ""
+"Pattern(s) of files to be analyzed. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"要分析的文件模式。\n"
+"通配符:“*”和“?”\n"
+"几个模式可以使用分隔符:“;”指定"
+
+#: optiondialog.cpp:1090
+msgid "File-anti-pattern(s):"
+msgstr "排除文件模式:"
+
+#: optiondialog.cpp:1095
+msgid ""
+"Pattern(s) of files to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"排除分析的文件模式。\n"
+"通配符:“*”和“?”\n"
+"几个模式可以使用分隔符:“;”指定"
+
+#: optiondialog.cpp:1101
+msgid "Dir-anti-pattern(s):"
+msgstr "排除目录模式:"
+
+#: optiondialog.cpp:1106
+msgid ""
+"Pattern(s) of directories to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+"排除分析的目录模式。\n"
+"通配符:“*”和“?”\n"
+"几个模式可以使用分隔符:“;”指定"
+
+#: optiondialog.cpp:1112
+msgid "Use .cvsignore"
+msgstr "使用 .cvsignore"
+
+#: optiondialog.cpp:1115
+#, fuzzy
+#| msgid ""
+#| "Extends the antipattern to anything that would be ignored by CVS.\n"
+#| "Via local \".cvsignore\"-files this can be directory specific."
+msgid ""
+"Extends the antipattern to anything that would be ignored by CVS.\n"
+"Via local \".cvsignore\" files this can be directory specific."
+msgstr ""
+"扩展排除模式至任何被 CVS 忽略的类型。\n"
+"通过本地“.cvsignore”文件,可以指定目录。"
+
+#: optiondialog.cpp:1120
+msgid "Find hidden files and directories"
+msgstr "查找隐藏目录和文件"
+
+#: optiondialog.cpp:1123
+msgid "Finds files and directories with the hidden attribute."
+msgstr "查找具有隐藏属性的文件和目录。"
+
+#: optiondialog.cpp:1125
+msgid "Finds files and directories starting with '.'."
+msgstr "查找以“.”开头的文件和目录。"
+
+#: optiondialog.cpp:1129
+msgid "Follow file links"
+msgstr "追踪文件链接"
+
+#: optiondialog.cpp:1132
+msgid ""
+"On: Compare the file the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+"打开:比较链接指向的文件。\n"
+"关闭:比较链接。"
+
+#: optiondialog.cpp:1137
+msgid "Follow directory links"
+msgstr "追踪目录链接"
+
+#: optiondialog.cpp:1140
+msgid ""
+"On: Compare the directory the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+"打开:比较链接指向的目录。\n"
+"关闭:比较链接。"
+
+#: optiondialog.cpp:1156
+msgid "Case sensitive filename comparison"
+msgstr "文件名区分大小写"
+
+#: optiondialog.cpp:1159
+#, fuzzy
+msgid ""
+"The directory comparison will compare files or directories when their names "
+"match.\n"
+"Set this option if the case of the names must match. (Default for Windows is "
+"off, otherwise on.)"
+msgstr ""
+"目录比较将比较名字相同的文件或目录。\n"
+"设置此选项如果文件名大小写敏感。(Windows上默认关闭,其他操作系统默认设置。)"
+
+#: optiondialog.cpp:1163
+msgid "File Comparison Mode"
+msgstr "文件比较模式"
+
+#: optiondialog.cpp:1169
+msgid "Binary comparison"
+msgstr "二进制比较"
+
+#: optiondialog.cpp:1170
+msgid "Binary comparison of each file. (Default)"
+msgstr "用二进制比较模式比较每个文件。(默认)"
+
+#: optiondialog.cpp:1173
+msgid "Full analysis"
+msgstr "完全分析"
+
+#: optiondialog.cpp:1174
+msgid ""
+"Do a full analysis and show statistics information in extra columns.\n"
+"(Slower than a binary comparison, much slower for binary files.)"
+msgstr ""
+"进行完全分析并且在额外的列里显示统计信息。\n"
+"(比较二进制比较模式慢,比较二进制文件更慢。)"
+
+#: optiondialog.cpp:1178
+msgid "Trust the size and modification date (unsafe)"
+msgstr "信任修改日期(不安全)"
+
+#: optiondialog.cpp:1179
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"Files with equal contents but different modification dates will appear as "
+"different.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"如果修改日期和文件长度相同,则认为文件相同。\n"
+"具有相同内容但修改日期不同的文件将被视作不同。\n"
+"对于大目录或较慢的网络有用。"
+
+#: optiondialog.cpp:1184
+msgid ""
+"Trust the size and date, but use binary comparison if date does not match "
+"(unsafe)"
+msgstr "信任文件大小及修改日期,但日期不相同时使用二进制比较(不安全)"
+
+#: optiondialog.cpp:1185
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"If the dates are not equal but the sizes are, use binary comparison.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+"如果修改日期和文件长度相同,则认为文件相同。\n"
+"如果修改日期不相同而文件长度相同,则使用二进制比较。\n"
+"对于大目录或较慢的网络有用。"
+
+#: optiondialog.cpp:1190
+msgid "Trust the size (unsafe)"
+msgstr "信任大小(不安全)"
+
+#: optiondialog.cpp:1191
+msgid ""
+"Assume that files are equal if their file lengths are equal.\n"
+"Useful for big directories or slow networks when the date is modified during "
+"download."
+msgstr ""
+"如果文件长度相同则认为文件相同。\n"
+"当下载过程中日期被修改时,对于大目录或较慢网络有用。"
+
+#: optiondialog.cpp:1199
+msgid "Synchronize directories"
+msgstr "同步目录"
+
+#: optiondialog.cpp:1202
+msgid ""
+"Offers to store files in both directories so that\n"
+"both directories are the same afterwards.\n"
+"Works only when comparing two directories without specifying a destination."
+msgstr ""
+"为了以后目录相同,提供在两个目录里存储文件。\n"
+"仅在比较两个目录并未指定目标目录时有效。"
+
+#: optiondialog.cpp:1208
+msgid "White space differences considered equal"
+msgstr "认为相同的空白字符数"
+
+#: optiondialog.cpp:1211
+msgid ""
+"If files differ only by white space consider them equal.\n"
+"This is only active when full analysis is chosen."
+msgstr ""
+"如果文件只在空白字符上有差异,则认为它们相同。\n"
+"仅当选择完全比较时此选项才激活。"
+
+#: optiondialog.cpp:1217
+msgid "Copy newer instead of merging (unsafe)"
+msgstr "复制较新而不合并(不安全)"
+
+#: optiondialog.cpp:1220
+msgid ""
+"Don't look inside, just take the newer file.\n"
+"(Use this only if you know what you are doing!)\n"
+"Only effective when comparing two directories."
+msgstr ""
+"不进入查看,仅取较新的文件。\n"
+"(如果您知道自己在做什么再选此项!)\n"
+"仅在比较两个目录时有效。"
+
+#: optiondialog.cpp:1225
+msgid "Backup files (.orig)"
+msgstr "备份文件(.orig)"
+
+#: optiondialog.cpp:1228
+msgid ""
+"If a file would be saved over an old file, then the old file\n"
+"will be renamed with a '.orig' extension instead of being deleted."
+msgstr ""
+"保存文件会覆盖旧文件时,旧文件将被重命名为“.orig”扩展名,而不是被删除。"
+
+#: optiondialog.cpp:1301 optiondialog.cpp:1302
+msgid "Regional Settings"
+msgstr "区域设置"
+
+#: optiondialog.cpp:1402
+msgid "Language (restart required)"
+msgstr "语言(需要重启)"
+
+#: optiondialog.cpp:1445
+msgid ""
+"Choose the language of the GUI strings or \"Auto\".\n"
+"For a change of language to take place, quit and restart KDiff3."
+msgstr ""
+"选择 GUI 的语言或者选择“自动”。\n"
+"要让更改生效,请退出并重启 KDiff3。"
+
+#: optiondialog.cpp:1463
+msgid "Use the same encoding for everything:"
+msgstr "所有文件使用同一编码:"
+
+#: optiondialog.cpp:1466
+msgid ""
+"Enable this allows to change all encodings by changing the first only.\n"
+"Disable this if different individual settings are needed."
+msgstr ""
+"启用此选项将使得只更改第一个编码设置即可更改全部文件的编码。\n"
+"如果需要为每个文件设置不同的编码,请禁用此选项。"
+
+#: optiondialog.cpp:1471
+msgid "Note: Local Encoding is "
+msgstr "注意:本地编码为"
+
+#: optiondialog.cpp:1475
+msgid "File Encoding for A:"
+msgstr "A 的文件编码:"
+
+#: optiondialog.cpp:1481
+msgid ""
+"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n"
+"If the file is not Unicode then the selected encoding will be used as "
+"fallback.\n"
+"(Unicode detection depends on the first bytes of a file.)"
+msgstr ""
+
+#: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503
+msgid "Auto Detect Unicode"
+msgstr "自动检测Unicode"
+
+#: optiondialog.cpp:1490
+msgid "File Encoding for B:"
+msgstr "B 的文件编码:"
+
+#: optiondialog.cpp:1499
+msgid "File Encoding for C:"
+msgstr "C 的文件编码:"
+
+#: optiondialog.cpp:1508
+msgid "File Encoding for Merge Output and Saving:"
+msgstr "合并输出和保存的文件编码:"
+
+#: optiondialog.cpp:1512
+msgid "Auto Select"
+msgstr "自动选择"
+
+#: optiondialog.cpp:1515
+msgid ""
+"If enabled then the encoding from the input files is used.\n"
+"In ambiguous cases a dialog will ask the user to choose the encoding for "
+"saving."
+msgstr ""
+
+#: optiondialog.cpp:1519
+msgid "File Encoding for Preprocessor Files:"
+msgstr "预处理文件的文件编码:"
+
+#: optiondialog.cpp:1530
+msgid "Right To Left Language"
+msgstr "从右至左语言"
+
+#: optiondialog.cpp:1533
+msgid ""
+"Some languages are read from right to left.\n"
+"This setting will change the viewer and editor accordingly."
+msgstr ""
+"某些语言是从右到左书写的。\n"
+"此设置将更改查看器和编辑器的设置。"
+
+#: optiondialog.cpp:1548
+msgid "Integration"
+msgstr "集成"
+
+#: optiondialog.cpp:1549
+msgid "Integration Settings"
+msgstr "集成设置"
+
+#: optiondialog.cpp:1563
+msgid "Command line options to ignore:"
+msgstr "需要忽略的命令行选项:"
+
+#: optiondialog.cpp:1568
+#, fuzzy
+msgid ""
+"List of command line options that should be ignored when KDiff3 is used by "
+"other tools.\n"
+"Several values can be specified if separated via ';'\n"
+"This will suppress the \"Unknown option\" error."
+msgstr ""
+"当KDiff3被其他工具使用时需要忽略的命令行选项。\n"
+"多个选项请用“;\"分隔。这可以避免出现未知参数的错误。"
+
+#: optiondialog.cpp:1575
+msgid "Quit also via Escape key"
+msgstr "可以用ESC键退出"
+
+#: optiondialog.cpp:1578
+msgid ""
+"Fast method to exit.\n"
+"For those who are used to using the Escape key."
+msgstr ""
+"快速退出方法。\n"
+"给那些习惯使用ESC键退出的人使用。"
+
+#: optiondialog.cpp:1583
+msgid "Integrate with ClearCase"
+msgstr "集成到 ClearCase"
+
+#: optiondialog.cpp:1586
+msgid ""
+"Integrate with Rational ClearCase from IBM.\n"
+"Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n"
+"(Only enabled when ClearCase \"bin\" directory is in the path.)"
+msgstr ""
+"集成到IBM Rational ClearCase。修改ClearCase “lib/mgrs”下的“map”文件(仅当"
+"ClearCase的“bin”目录在访问路径中时才可以使能)"
+
+#: optiondialog.cpp:1592
+msgid "Remove ClearCase Integration"
+msgstr "取消与 ClearCase 的集成"
+
+#: optiondialog.cpp:1595
+msgid ""
+"Restore the old \"map\" file from before doing the ClearCase integration."
+msgstr "集成到 ClearCase 之前恢复老的“map”文件。"
+
+#: optiondialog.cpp:1680
+msgid "Incompatible Font"
+msgstr "不兼容字体"
+
+#: optiondialog.cpp:1681
+msgid "Continue at Own Risk"
+msgstr "自愿冒险继续"
+
+#: optiondialog.cpp:1682
+msgid "Select Another Font"
+msgstr "选择另一种字体"
+
+#: optiondialog.cpp:1717
+msgid "This resets all options. Not only those of the current topic."
+msgstr "这将重置全部选项,而不仅是当前主题的选项。"
+
+#: pdiff.cpp:260
+msgid "PreprocessorCmd: "
+msgstr "预处理程序命令:"
+
+#: pdiff.cpp:265
+msgid "The following option(s) you selected might change data:\n"
+msgstr "你所选的以下选项可能会更改数据:\n"
+
+#: pdiff.cpp:266
+msgid ""
+"\n"
+"Most likely this is not wanted during a merge.\n"
+"Do you want to disable these settings or continue with these settings active?"
+msgstr ""
+"\n"
+"大多数情况下合并应该不会用到这些选项。\n"
+"您想禁用这些设置还是继续激活这些设置?"
+
+#: pdiff.cpp:268
+msgid "Option Unsafe for Merging"
+msgstr "合并时会造成不安全的选项"
+
+#: pdiff.cpp:269
+msgid "Use These Options During Merge"
+msgstr "在合并时使用这些选项"
+
+#: pdiff.cpp:270
+msgid "Disable Unsafe Options"
+msgstr "禁用不安全的选项"
+
+#: pdiff.cpp:300
+msgid "Loading A"
+msgstr "加载 A"
+
+#: pdiff.cpp:304
+msgid "Loading B"
+msgstr "加载 B"
+
+#: pdiff.cpp:321 pdiff.cpp:347
+msgid "Diff: A <-> B"
+msgstr "Diff:A <-> B"
+
+#: pdiff.cpp:327 pdiff.cpp:372
+msgid "Linediff: A <-> B"
+msgstr "Linediff:A <-> B"
+
+#: pdiff.cpp:338
+msgid "Loading C"
+msgstr "加载 C"
+
+#: pdiff.cpp:350
+msgid "Diff: B <-> C"
+msgstr "Diff:B <-> C"
+
+#: pdiff.cpp:353
+msgid "Diff: A <-> C"
+msgstr "Diff:A <-> C"
+
+#: pdiff.cpp:375
+msgid "Linediff: B <-> C"
+msgstr "Linediff:B <-> C"
+
+#: pdiff.cpp:378
+msgid "Linediff: A <-> C"
+msgstr "Linediff:A <-> C"
+
+#: pdiff.cpp:534
+msgid "All input files contain the same text, but are not binary equal."
+msgstr "全部输入文件包含相同文本,但二进制不相同。"
+
+#: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541
+#, kde-format
+msgid "Files %1 and %2 have equal text, but are not binary equal. \n"
+msgstr "文件%1和%2文本相同,但二进制数据不相同。\n"
+
+#: pdiff.cpp:551
+msgid ""
+"Some inputfiles don't seem to be pure textfiles.\n"
+"Note that the KDiff3-merge was not meant for binary data.\n"
+"Continue at your own risk."
+msgstr ""
+"一些输入文件不是纯文本文件。\n"
+"注意 KDiff3-merge 不适用用于二进制数据。\n"
+"继续则需您自己承担风险。"
+
+#: pdiff.cpp:566
+#, kde-format
+msgid ""
+"Some input characters could not be converted to valid unicode.\n"
+"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n"
+"Don't save the result if unsure. Continue at your own risk.\n"
+"Affected input files are in %1."
+msgstr ""
+
+#: pdiff.cpp:1080
+msgid "Abort"
+msgstr "放弃"
+
+#: pdiff.cpp:1087 pdiff.cpp:1175
+msgid "Opening files..."
+msgstr "正在打开文件..."
+
+#: pdiff.cpp:1152 pdiff.cpp:1223
+msgid "File open error"
+msgstr "打开文件错误"
+
+#: pdiff.cpp:1255
+msgid "Cutting selection..."
+msgstr "剪切所选内容..."
+
+#: pdiff.cpp:1276
+msgid "Copying selection to clipboard..."
+msgstr "复制所选内容到剪贴板..."
+
+#: pdiff.cpp:1292
+msgid "Inserting clipboard contents..."
+msgstr "插入剪贴板内容..."
+
+#: pdiff.cpp:1814
+msgid "Save && Continue"
+msgstr "保存并继续"
+
+#: pdiff.cpp:1815
+msgid "Continue Without Saving"
+msgstr "不保存继续"
+
+#: pdiff.cpp:2018
+msgid "Search complete."
+msgstr "搜索完成。"
+
+#: pdiff.cpp:2018
+msgid "Search Complete"
+msgstr "搜索完成"
+
+#: pdiff.cpp:2252
+msgid "Nothing is selected in either diff input window."
+msgstr "未在任何 diff 输入窗口选择内容。"
+
+#: pdiff.cpp:2252
+msgid "Error while adding manual diff range"
+msgstr "添加手动 Diff 区域时出错"
+
+#: kdiff3_shell.cpp:76
+#, fuzzy
+#| msgid ""
+#| "Could not initialize the KDiff part.\n"
+#| "This usually happens due to an installation problem. Please read the "
+#| "README-file in the source package for details."
+msgid ""
+"Could not initialize the KDiff3 part.\n"
+"This usually happens due to an installation problem. Please read the README-"
+"file in the source package for details."
+msgstr ""
+"无法初始化 KDiff 组件!\n"
+"通常为安装错误。详细内容请阅读源码包内的 README 文件。"
+
+#: rc.cpp:1
+msgctxt "NAME OF TRANSLATORS"
+msgid "Your names"
+msgstr "KDE 中国"
+
+#: rc.cpp:2
+msgctxt "EMAIL OF TRANSLATORS"
+msgid "Your emails"
+msgstr "kde-china@kde.org"
+
+#. i18n: file: kdiff3_part.rc:4
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:5
+msgid "&KDiff3"
+msgstr "&KDiff3"
+
+#. i18n: file: kdiff3_part.rc:13
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:8
+msgid "Configure KDiff3"
+msgstr "配置 KDiff3"
+
+#. i18n: file: kdiff3_part.rc:16
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:11
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#. i18n: file: kdiff3_shell.rc:106
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:38
+msgid "Main Toolbar"
+msgstr "主工具栏"
+
+#~ msgid "Directory Merge"
+#~ msgstr "目录合并"
+
+#~ msgid ""
+#~ "_: NAME OF TRANSLATORS\n"
+#~ "Your names"
+#~ msgstr "开源软件国际化简体中文组(http://i18n.linux.net.cn)"
+
+#~ msgid ""
+#~ "_: EMAIL OF TRANSLATORS\n"
+#~ "Your emails"
+#~ msgstr "i18n-translation@list.linux.net.cn"
+
+#~ msgid "Enables/disables the toolbar"
+#~ msgstr "启用/禁止工具栏"
+
+#~ msgid "Files A and B are binary equal.\n"
+#~ msgstr "文件 A 和 B 二进制数据相同。\n"
+
+#~ msgid "Files A and C are binary equal.\n"
+#~ msgstr "文件 A 和 C 二进制数据相同。\n"
+
+#~ msgid "Files A and C have equal text. \n"
+#~ msgstr "文件 A 和 C 文本相同。\n"
+
+#~ msgid "Files B and C are binary equal.\n"
+#~ msgstr "文件 B 和 C 二进制数据相同。\n"
+
+#~ msgid "Files B and C have equal text. \n"
+#~ msgstr "文件 B 和 C 文本相同。\n"
+
+#~ msgid "Preserve carriage return"
+#~ msgstr "保留回车"
+
+#~ msgid ""
+#~ "Show carriage return characters '\\r' if they exist.\n"
+#~ "Helps to compare files that were modified under different operating "
+#~ "systems."
+#~ msgstr ""
+#~ "如果存在,显示回车字符“\\r”。\n"
+#~ "这个选项帮助比较在不同操作系统下修改的文件。"
+
+#~ msgid "Diff and Merge"
+#~ msgstr "Diff 和 Merge"
+
+#~ msgid "Save Directory Merge State ..."
+#~ msgstr "目录合并"
+
+#~ msgid "Load Directory Merge State ..."
+#~ msgstr "目录合并"
+
+#~ msgid "Synchronize Directories"
+#~ msgstr "同步目录"
+
+#~ msgid "Copy Newer Files Instead of Merging"
+#~ msgstr "复制较新而不合并(不安全)"
+
+#~ msgid "List only deltas"
+#~ msgstr "仅列出 delta"
+
+#~ msgid "Files and directories without change will not appear in the list."
+#~ msgstr "未更改的文件和目录不会在列表显示。"
+
+#~ msgid "no selection"
+#~ msgstr "自动复制选择"
+
+#~ msgid "Manually match lines"
+#~ msgstr "手动选择"
+
+#~ msgid "Has no effect. For compatibility with certain tools."
+#~ msgstr "没有效果。为与某些工具兼容而设。"
+
+#~ msgid "For compatibility with certain tools."
+#~ msgstr "为与某些工具兼容。"
+
+#~ msgid "Colors in Editor & Diff Output"
+#~ msgstr "编辑器和 Diff 输出颜色"
diff --git a/po/zh_CN/kdiff3plugin.po b/po/zh_CN/kdiff3plugin.po
new file mode 100644 (file)
index 0000000..dfe854d
--- /dev/null
@@ -0,0 +1,94 @@
+# translation of kdiff3plugin.po to 简体中文
+# Copyright (C) 2004, 2008 Free Software Foundation, Inc.
+#
+# zhu-zhy <sp_xym@hotmail.com>, 2004.
+# Mai Haohui <mhh@ricetons.com>, 2004.
+# Ni Hui <shuizhuyuanluo@126.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3plugin\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2008-12-27 18:08+0800\n"
+"Last-Translator: Ni Hui <shuizhuyuanluo@126.com>\n"
+"Language-Team: 简体中文 <kde-china@kde.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: kdiff3plugin.cpp:107
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#: kdiff3plugin.cpp:114
+#, kde-format
+msgid "Compare with %1"
+msgstr ""
+
+#: kdiff3plugin.cpp:120
+#, fuzzy, kde-format
+msgid "Merge with %1"
+msgstr "合并到 A"
+
+#: kdiff3plugin.cpp:126
+#, kde-format
+msgid "Save '%1' for later"
+msgstr ""
+
+#: kdiff3plugin.cpp:132
+msgid "3-way merge with base"
+msgstr ""
+
+#: kdiff3plugin.cpp:139
+#, fuzzy
+msgid "Compare with ..."
+msgstr "正在比较文件..."
+
+#: kdiff3plugin.cpp:149
+msgid "Clear list"
+msgstr "清除列表"
+
+#: kdiff3plugin.cpp:157
+msgid "Compare"
+msgstr "比较"
+
+#: kdiff3plugin.cpp:163
+#, fuzzy
+msgid "3 way comparison"
+msgstr "二进制比较"
+
+#: kdiff3plugin.cpp:167
+msgid "About KDiff3 menu plugin ..."
+msgstr "关于 KDiff3 菜单插件..."
+
+#: kdiff3plugin.cpp:269
+msgid ""
+"KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+"KDiff3 菜单插件:Copyright (C) 2008 Joachim Eibl\n"
+"KDiff3 主页:http://kdiff3.sourceforge.net\n"
+"\n"
+
+#: kdiff3plugin.cpp:271
+msgid ""
+"Using the context menu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else, \"Save\" the first file for later, and "
+"it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With"
+"\" on the second file.\n"
+"For a 3-way merge first, \"Save\" the base file, then the branch to merge, "
+"and then \"3-way merge with base\" on the other branch which will be used as "
+"the destination.\n"
+"The same also applies to directory comparison and merge."
+msgstr ""
+
+#: kdiff3plugin.cpp:279
+#, fuzzy
+#| msgid "About KDiff3 menu plugin ..."
+msgid "About KDiff3 Menu Plugin"
+msgstr "关于 KDiff3 菜单插件..."
diff --git a/po/zh_TW/CMakeLists.txt b/po/zh_TW/CMakeLists.txt
new file mode 100644 (file)
index 0000000..e26a305
--- /dev/null
@@ -0,0 +1,2 @@
+file(GLOB _po_files *.po)
+GETTEXT_PROCESS_PO_FILES(zh_TW ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
diff --git a/po/zh_TW/kdiff3.po b/po/zh_TW/kdiff3.po
new file mode 100644 (file)
index 0000000..5e1de3e
--- /dev/null
@@ -0,0 +1,2940 @@
+# Copyright (C) YEAR This_file_is_part_of_KDE
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Frank Weng (a.k.a. Franklin) <franklin at goodhorse dot idv dot tw>, 2009.
+# Franklin Weng <franklin@mail.everfocus.com.tw>, 2010.
+# Franklin Weng <franklin@goodhorse.idv.tw>, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-05-12 11:19+0800\n"
+"Last-Translator: Franklin Weng <franklin@goodhorse.idv.tw>\n"
+"Language-Team: Chinese Traditional <zh-l10n@linux.org.tw>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.1\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: kreplacements/kreplacements.h:105
+msgid "Continue"
+msgstr "繼續"
+
+#: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158
+#: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512
+msgid "Cancel"
+msgstr "取消"
+
+#: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631
+msgid "Quit"
+msgstr "離開"
+
+#: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339
+msgid "Ok"
+msgstr "確定"
+
+#: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715
+msgid "Help"
+msgstr "說明"
+
+#: kreplacements/kreplacements.cpp:185
+msgid "Defaults"
+msgstr "預設值"
+
+#. i18n: file: kdiff3_shell.rc:4
+#. i18n: ectx: Menu (file)
+#: kreplacements/kreplacements.cpp:296 rc.cpp:14
+msgid "&File"
+msgstr "檔案(&F)"
+
+#: kreplacements/kreplacements.cpp:297
+msgid "&Edit"
+msgstr "編輯(&E)"
+
+#. i18n: file: kdiff3_shell.rc:7
+#. i18n: ectx: Menu (directory)
+#: kreplacements/kreplacements.cpp:298 rc.cpp:17
+msgid "&Directory"
+msgstr "目錄(&D)"
+
+#. i18n: file: kdiff3_shell.rc:50
+#. i18n: ectx: Menu (movement)
+#: kreplacements/kreplacements.cpp:301 rc.cpp:26
+msgid "&Movement"
+msgstr "移動(&M)"
+
+#. i18n: file: kdiff3_shell.rc:61
+#. i18n: ectx: Menu (diff)
+#: kreplacements/kreplacements.cpp:302 rc.cpp:29
+msgid "D&iffview"
+msgstr "差異檢視(&I)"
+
+#. i18n: file: kdiff3_shell.rc:73
+#. i18n: ectx: Menu (merge)
+#: kreplacements/kreplacements.cpp:303 rc.cpp:32
+msgid "&Merge"
+msgstr "合併(&M)"
+
+#. i18n: file: kdiff3_shell.rc:95
+#. i18n: ectx: Menu (window)
+#: kreplacements/kreplacements.cpp:304 rc.cpp:35
+msgid "&Window"
+msgstr "視窗(&W)"
+
+#: kreplacements/kreplacements.cpp:305
+msgid "&Settings"
+msgstr "設定(&S)"
+
+#: kreplacements/kreplacements.cpp:306
+msgid "&Help"
+msgstr "說明(&H)"
+
+#: kreplacements/kreplacements.cpp:353
+msgid "&About"
+msgstr "關於(&A)"
+
+#: kreplacements/kreplacements.cpp:369
+msgid "A&uthor"
+msgstr "作者(&U)"
+
+#: kreplacements/kreplacements.cpp:383
+msgid "&Thanks To"
+msgstr "感謝(&T)"
+
+#. i18n: file: kdiff3_shell.rc:30
+#. i18n: ectx: Menu (dir_current_merge_menu)
+#: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497
+#: rc.cpp:20
+msgid "Current Item Merge Operation"
+msgstr "目前項目合併操作"
+
+#. i18n: file: kdiff3_shell.rc:38
+#. i18n: ectx: Menu (dir_current_sync_menu)
+#: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498
+#: rc.cpp:23
+msgid "Current Item Sync Operation"
+msgstr "目前項目同步操作"
+
+#: kreplacements/kreplacements.cpp:597
+msgid "Open"
+msgstr "開啟"
+
+#: kreplacements/kreplacements.cpp:606
+msgid "Save"
+msgstr "儲存"
+
+#: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720
+msgid "Save As..."
+msgstr "另存新檔..."
+
+#: kreplacements/kreplacements.cpp:623
+msgid "Print..."
+msgstr "列印..."
+
+#: kreplacements/kreplacements.cpp:639
+msgid "Cut"
+msgstr "剪下"
+
+#: kreplacements/kreplacements.cpp:647
+msgid "Copy"
+msgstr "複製"
+
+#: kreplacements/kreplacements.cpp:655
+msgid "Paste"
+msgstr "貼上"
+
+#: kreplacements/kreplacements.cpp:663
+msgid "Select All"
+msgstr "全部選擇"
+
+#: kreplacements/kreplacements.cpp:671
+msgid "Show Toolbar"
+msgstr "顯示工具列"
+
+#: kreplacements/kreplacements.cpp:679
+msgid "Show &Status Bar"
+msgstr "顯示狀態列(&S)"
+
+#: kreplacements/kreplacements.cpp:687
+#, kde-format
+msgid "&Configure %1..."
+msgstr "設定 %1(&C)..."
+
+#: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707
+msgid "About"
+msgstr "關於"
+
+#: kreplacements/kreplacements.cpp:722
+msgid "Find"
+msgstr "尋找"
+
+#: kreplacements/kreplacements.cpp:730
+msgid "Find Next"
+msgstr "尋找下一個"
+
+#: kreplacements/kreplacements.cpp:750
+msgid "Select Font"
+msgstr "選擇字型"
+
+#: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676
+msgid ""
+"You selected a variable width font.\n"
+"\n"
+"Because this program doesn't handle variable width fonts\n"
+"correctly, you might experience problems while editing.\n"
+"\n"
+"Do you want to continue or do you want to select another font."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:792
+msgid "Incompatible font."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Continue at my own risk"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:793
+msgid "Select another font"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1134
+msgid "For more documentation, see the help-menu or the subdirectory doc."
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "KDiff3-Usage"
+msgstr ""
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Ignore"
+msgstr "忽略"
+
+#: kreplacements/kreplacements.cpp:1137
+msgid "Exit"
+msgstr "離開"
+
+#: diff.cpp:251
+msgid "Writing clipboard data to temp file failed."
+msgstr ""
+
+#: diff.cpp:255
+msgid "From Clipboard"
+msgstr "從剪貼簿"
+
+#: diff.cpp:471
+msgid "Expecting space after closing quotation mark."
+msgstr ""
+
+#: diff.cpp:474
+msgid "Not matching quotation marks."
+msgstr ""
+
+#: diff.cpp:496
+msgid "Unexpected quotation mark within argument."
+msgstr ""
+
+#: diff.cpp:503
+msgid "No program specified."
+msgstr ""
+
+#: diff.cpp:605
+#, kde-format
+msgid ""
+"Preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The preprocessing command will be disabled now."
+msgstr ""
+
+#: diff.cpp:653
+#, kde-format
+msgid ""
+"The line-matching-preprocessing possibly failed. Check this command:\n"
+"\n"
+"  %1\n"
+"\n"
+"The line-matching-preprocessing command will be disabled now."
+msgstr ""
+
+#: diff.cpp:1776 diff.cpp:1790
+msgid ""
+"Data loss error:\n"
+"If it is reproducible please contact the author.\n"
+msgstr ""
+"資料遺失錯誤:\n"
+"如果這個問題可重複發生,請與作者聯繫。\n"
+
+#: diff.cpp:1778 diff.cpp:1792
+msgid "Severe Internal Error"
+msgstr "嚴重內部錯誤"
+
+#: directorymergewindow.cpp:136
+msgid "Mix of links and normal files."
+msgstr "連結與一般檔案混合。"
+
+#: directorymergewindow.cpp:143
+msgid "Link: "
+msgstr "連結:"
+
+#: directorymergewindow.cpp:151
+msgid "Size. "
+msgstr "大小。"
+
+#: directorymergewindow.cpp:164 directorymergewindow.cpp:174
+msgid "Date & Size: "
+msgstr "日期與大小:"
+
+#: directorymergewindow.cpp:184 directorymergewindow.cpp:190
+#, kde-format
+msgid "Creating temp copy of %1 failed."
+msgstr "建立 %1 的暫存複本失敗。"
+
+#: directorymergewindow.cpp:201 directorymergewindow.cpp:209
+#, kde-format
+msgid "Opening %1 failed."
+msgstr "開啟 %1 失敗。"
+
+#: directorymergewindow.cpp:213
+msgid "Comparing file..."
+msgstr "比較檔案中..."
+
+#: directorymergewindow.cpp:223 directorymergewindow.cpp:229
+#, kde-format
+msgid "Error reading from %1"
+msgstr "從 %1 讀取時發生錯誤"
+
+#: directorymergewindow.cpp:358
+msgid "Name"
+msgstr "名稱"
+
+#: directorymergewindow.cpp:358
+msgid "Operation"
+msgstr "操作"
+
+#: directorymergewindow.cpp:358
+msgid "Status"
+msgstr "狀態"
+
+#: directorymergewindow.cpp:359
+msgid "Unsolved"
+msgstr "未解決"
+
+#: directorymergewindow.cpp:359
+msgid "Solved"
+msgstr "已解決"
+
+#: directorymergewindow.cpp:359
+msgid "Nonwhite"
+msgstr "非白"
+
+#: directorymergewindow.cpp:359
+msgid "White"
+msgstr "白"
+
+#: directorymergewindow.cpp:388
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort "
+"the merge and rescan the directory?"
+msgstr ""
+
+#: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655
+#: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823
+msgid "Warning"
+msgstr "警告"
+
+#: directorymergewindow.cpp:390 directorymergewindow.cpp:2965
+msgid "Rescan"
+msgstr "重新掃描"
+
+#: directorymergewindow.cpp:391 pdiff.cpp:1081
+msgid "Continue Merging"
+msgstr "繼續合併"
+
+#: directorymergewindow.cpp:548
+msgid "Opening of directories failed:"
+msgstr "開啟目錄失敗:"
+
+#: directorymergewindow.cpp:551
+#, kde-format
+msgid "Dir A \"%1\" does not exist or is not a directory.\n"
+msgstr "目錄 A \"%1\" 不存在,或不是目錄。\n"
+
+#: directorymergewindow.cpp:554
+#, kde-format
+msgid "Dir B \"%1\" does not exist or is not a directory.\n"
+msgstr "目錄 B \"%1\" 不存在,或不是目錄。\n"
+
+#: directorymergewindow.cpp:557
+#, kde-format
+msgid "Dir C \"%1\" does not exist or is not a directory.\n"
+msgstr "目錄 C \"%1\" 不存在,或不是目錄。\n"
+
+#: directorymergewindow.cpp:559
+msgid "Directory Open Error"
+msgstr "目錄開啟時發生錯誤"
+
+#: directorymergewindow.cpp:567
+msgid ""
+"The destination directory must not be the same as A or B when three "
+"directories are merged.\n"
+"Check again before continuing."
+msgstr ""
+
+#: directorymergewindow.cpp:569
+msgid "Parameter Warning"
+msgstr "參數警告"
+
+#: directorymergewindow.cpp:574
+msgid "Scanning directories..."
+msgstr "掃描目錄中..."
+
+#: directorymergewindow.cpp:607
+msgid "Reading Directory A"
+msgstr "讀取目錄 A 中"
+
+#: directorymergewindow.cpp:629
+msgid "Reading Directory B"
+msgstr "讀取目錄 B 中"
+
+#: directorymergewindow.cpp:651
+msgid "Reading Directory C"
+msgstr "讀取目錄 C 中"
+
+#: directorymergewindow.cpp:677
+msgid "Some subdirectories were not readable in"
+msgstr "此目錄裡的某些子目錄無法讀取:"
+
+#: directorymergewindow.cpp:682
+msgid "Check the permissions of the subdirectories."
+msgstr "請檢查子目錄的權限。"
+
+#: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737
+#: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233
+#: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328
+msgid "Ready."
+msgstr "已就緒。"
+
+#: directorymergewindow.cpp:735
+msgid "Directory Comparison Status"
+msgstr "目錄比較狀態"
+
+#: directorymergewindow.cpp:736
+msgid "Number of subdirectories:"
+msgstr "子目錄數量:"
+
+#: directorymergewindow.cpp:737
+msgid "Number of equal files:"
+msgstr "相同檔案數量:"
+
+#: directorymergewindow.cpp:738
+msgid "Number of different files:"
+msgstr "不同檔案數量:"
+
+#: directorymergewindow.cpp:741
+msgid "Number of manual merges:"
+msgstr "手動合併數量:"
+
+#: directorymergewindow.cpp:912
+msgid "This affects all merge operations."
+msgstr "這會影響所有的合併操作。"
+
+#: directorymergewindow.cpp:913
+msgid "Changing All Merge Operations"
+msgstr "變更所有合併操作"
+
+#: directorymergewindow.cpp:1312
+msgid "Processing "
+msgstr "處理中"
+
+#: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742
+msgid "To do."
+msgstr "待辦。"
+
+#: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996
+msgid "Copy A to B"
+msgstr "將 A 複製到 B"
+
+#: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997
+msgid "Copy B to A"
+msgstr "將 B 複製到 A"
+
+#: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998
+msgid "Delete A"
+msgstr "刪除 A"
+
+#: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999
+msgid "Delete B"
+msgstr "刪除 B"
+
+#: directorymergewindow.cpp:1814
+msgid "Delete A & B"
+msgstr "刪除 A 與 B"
+
+#: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001
+msgid "Merge to A"
+msgstr "合併到 A"
+
+#: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002
+msgid "Merge to B"
+msgstr "合併到 B"
+
+#: directorymergewindow.cpp:1817
+msgid "Merge to A & B"
+msgstr "合併到 A 與 B"
+
+#: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993
+msgid "Delete (if exists)"
+msgstr "刪除(若存在)"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+#: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869
+msgid "Merge"
+msgstr "合併"
+
+#: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823
+msgid "Merge (manual)"
+msgstr "合併(手動)"
+
+#: directorymergewindow.cpp:1824
+msgid "Error: Conflicting File Types"
+msgstr "錯誤:衝突的檔案型態"
+
+#: directorymergewindow.cpp:1825
+msgid "Error: Changed and Deleted"
+msgstr "錯誤:已變更與刪除"
+
+#: directorymergewindow.cpp:1826
+msgid "Error: Dates are equal but files are not."
+msgstr "錯誤:日期相同,但檔案不同。"
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906
+msgid "This operation is currently not possible."
+msgstr "此操作目前無法運作。"
+
+#: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881
+#: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174
+msgid "Operation Not Possible"
+msgstr "無法進行操作"
+
+#: directorymergewindow.cpp:1945
+msgid ""
+"This should never happen: \n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"If you know how to reproduce this, please contact the program author."
+msgstr ""
+"這個錯誤不應發生:\n"
+"\n"
+"mergeResultSaved: m_pMFI=0\n"
+"\n"
+"若是您知道怎麼重現此錯誤,請與程式作者聯繫。"
+
+#: directorymergewindow.cpp:1945
+msgid "Program Error"
+msgstr "程式錯誤"
+
+#: directorymergewindow.cpp:1956
+msgid "An error occurred while copying.\n"
+msgstr "複製時發生錯誤。\n"
+
+#: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025
+#: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105
+#: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123
+#: directorymergewindow.cpp:2374
+msgid "Error"
+msgstr "錯誤"
+
+#: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375
+msgid "Merge Error"
+msgstr "合併錯誤"
+
+#: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380
+msgid "Error."
+msgstr "錯誤。"
+
+#: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272
+#: directorymergewindow.cpp:2312
+msgid "Done."
+msgstr "完成。"
+
+#: directorymergewindow.cpp:1990
+msgid "Not saved."
+msgstr "未儲存。"
+
+#: directorymergewindow.cpp:2025
+msgid "Unknown merge operation. (This must never happen!)"
+msgstr "未知的合併操作。(此問題不應該發生!)"
+
+#: directorymergewindow.cpp:2057
+msgid "Unknown merge operation."
+msgstr "未知的合併操作。"
+
+#: directorymergewindow.cpp:2072
+msgid ""
+"The merge is about to begin.\n"
+"\n"
+"Choose \"Do it\" if you have read the instructions and know what you are "
+"doing.\n"
+"Choosing \"Simulate it\" will tell you what would happen.\n"
+"\n"
+"Be aware that this program still has beta status and there is NO WARRANTY "
+"whatsoever! Make backups of your vital data!"
+msgstr ""
+"準備開始合併。\n"
+"\n"
+"若是您已經讀完說明並知道自己在做什麼,就選擇「做吧!」\n"
+"您也可以先選擇「先模擬一次」來看看結果。\n"
+"\n"
+"要注意,這個程式仍然在測試階段,不保證結果是否有問題。請先備份您的重要資料!"
+
+#: directorymergewindow.cpp:2077
+msgid "Starting Merge"
+msgstr "開始合併"
+
+#: directorymergewindow.cpp:2078
+msgid "Do It"
+msgstr "做吧!"
+
+#: directorymergewindow.cpp:2079
+msgid "Simulate It"
+msgstr "先模擬一次"
+
+#: directorymergewindow.cpp:2105
+msgid ""
+"The highlighted item has a different type in the different directories. "
+"Select what to do."
+msgstr ""
+
+#: directorymergewindow.cpp:2114
+msgid ""
+"The modification dates of the file are equal but the files are not. Select "
+"what to do."
+msgstr ""
+
+#: directorymergewindow.cpp:2123
+msgid ""
+"The highlighted item was changed in one directory and deleted in the other. "
+"Select what to do."
+msgstr ""
+
+#: directorymergewindow.cpp:2174
+msgid ""
+"This operation is currently not possible because directory merge is "
+"currently running."
+msgstr ""
+
+#: directorymergewindow.cpp:2234
+msgid ""
+"There was an error in the last step.\n"
+"Do you want to continue with the item that caused the error or do you want "
+"to skip this item?"
+msgstr ""
+
+#: directorymergewindow.cpp:2236
+msgid "Continue merge after an error"
+msgstr "在錯誤之後繼續合併"
+
+#: directorymergewindow.cpp:2237
+msgid "Continue With Last Item"
+msgstr "繼續上一個項目"
+
+#: directorymergewindow.cpp:2238
+msgid "Skip Item"
+msgstr "跳過項目"
+
+#: directorymergewindow.cpp:2272
+msgid "Skipped."
+msgstr "已跳過。"
+
+#: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493
+msgid "In progress..."
+msgstr "進行中..."
+
+#: directorymergewindow.cpp:2327
+msgid "Merge operation complete."
+msgstr "合併操作完成。"
+
+#: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330
+msgid "Merge Complete"
+msgstr "合併完成"
+
+#: directorymergewindow.cpp:2340
+msgid ""
+"Simulated merge complete: Check if you agree with the proposed operations."
+msgstr "模擬合併完成:請檢查是否同意此合併結果。"
+
+#: directorymergewindow.cpp:2374
+msgid "An error occurred. Press OK to see detailed information.\n"
+msgstr "發生錯誤。按「確定」看詳細資訊。\n"
+
+#: directorymergewindow.cpp:2406
+#, kde-format
+msgid "Error: While deleting %1: Creating backup failed."
+msgstr "錯誤:刪除 %1 時建立備份失敗。"
+
+#: directorymergewindow.cpp:2413
+#, kde-format
+msgid "delete directory recursively( %1 )"
+msgstr "遞迴刪除目錄(%1)"
+
+#: directorymergewindow.cpp:2415
+#, kde-format
+msgid "delete( %1 )"
+msgstr "刪除(%1)"
+
+#: directorymergewindow.cpp:2430
+msgid "Error: delete dir operation failed while trying to read the directory."
+msgstr ""
+
+#: directorymergewindow.cpp:2449
+#, kde-format
+msgid "Error: rmdir( %1 ) operation failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2459
+msgid "Error: delete operation failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2485
+#, kde-format
+msgid "manual merge( %1, %2, %3 -> %4)"
+msgstr ""
+
+#: directorymergewindow.cpp:2488
+msgid ""
+"     Note: After a manual merge the user should continue by pressing F7."
+msgstr ""
+
+#: directorymergewindow.cpp:2513
+#, kde-format
+msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2522
+#, kde-format
+msgid "copyLink( %1 -> %2 )"
+msgstr "複製連結( %1 -> %2 )"
+
+#: directorymergewindow.cpp:2533
+msgid "Error: copyLink failed: Remote links are not yet supported."
+msgstr "錯誤:複製連結失敗。尚未支援遠端連結。"
+
+#: directorymergewindow.cpp:2539
+msgid "Error: copyLink failed."
+msgstr "錯誤:複製連結失敗。"
+
+#: directorymergewindow.cpp:2564
+#, kde-format
+msgid "copy( %1 -> %2 )"
+msgstr "複製(%1 -> %2)"
+
+#: directorymergewindow.cpp:2590
+#, kde-format
+msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination."
+msgstr ""
+
+#: directorymergewindow.cpp:2596
+#, kde-format
+msgid "rename( %1 -> %2 )"
+msgstr "重新命名(%1->%2)"
+
+#: directorymergewindow.cpp:2605
+msgid "Error: Rename failed."
+msgstr ""
+
+#: directorymergewindow.cpp:2623
+#, kde-format
+msgid "Error during makeDir of %1. Cannot delete existing file."
+msgstr ""
+
+#: directorymergewindow.cpp:2639
+#, kde-format
+msgid "makeDir( %1 )"
+msgstr ""
+
+#: directorymergewindow.cpp:2649
+msgid "Error while creating directory."
+msgstr ""
+
+#: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784
+msgid "Dest"
+msgstr "目標"
+
+#: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709
+msgid "Dir"
+msgstr "方向"
+
+#: directorymergewindow.cpp:2678
+msgid "Type"
+msgstr "型態"
+
+#: directorymergewindow.cpp:2678
+msgid "Size"
+msgstr "大小"
+
+#: directorymergewindow.cpp:2679
+msgid "Attr"
+msgstr "屬性"
+
+#: directorymergewindow.cpp:2679
+msgid "Last Modification"
+msgstr "上次變更"
+
+#: directorymergewindow.cpp:2679
+msgid "Link-Destination"
+msgstr "連結目標"
+
+#: directorymergewindow.cpp:2709 difftextwindow.cpp:401
+msgid "File"
+msgstr "檔案"
+
+#: directorymergewindow.cpp:2726
+msgid "not available"
+msgstr "無"
+
+#: directorymergewindow.cpp:2746
+msgid "A (Dest): "
+msgstr "A(目標):"
+
+#: directorymergewindow.cpp:2749
+msgid "A (Base): "
+msgstr "A(基底):"
+
+#: directorymergewindow.cpp:2755
+msgid "B (Dest): "
+msgstr "B(目標):"
+
+#: directorymergewindow.cpp:2763
+msgid "C (Dest): "
+msgstr "C(目標):"
+
+#: directorymergewindow.cpp:2769
+msgid "Dest: "
+msgstr "目標:"
+
+#: directorymergewindow.cpp:2836
+msgid "Save Directory Merge State As..."
+msgstr ""
+
+#: directorymergewindow.cpp:2959
+msgid "Start/Continue Directory Merge"
+msgstr ""
+
+#: directorymergewindow.cpp:2960
+msgid "Run Operation for Current Item"
+msgstr ""
+
+#: directorymergewindow.cpp:2961
+msgid "Compare Selected File"
+msgstr ""
+
+#: directorymergewindow.cpp:2962
+msgid "Merge Current File"
+msgstr ""
+
+#: directorymergewindow.cpp:2962
+msgid ""
+"Merge\n"
+"File"
+msgstr ""
+
+#: directorymergewindow.cpp:2963
+msgid "Fold All Subdirs"
+msgstr ""
+
+#: directorymergewindow.cpp:2964
+msgid "Unfold All Subdirs"
+msgstr ""
+
+#: directorymergewindow.cpp:2968
+msgid "Choose A for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2969
+msgid "Choose B for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2970
+msgid "Choose C for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2971
+msgid "Auto-Choose Operation for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2972
+msgid "No Operation for All Items"
+msgstr ""
+
+#: directorymergewindow.cpp:2977
+msgid "Show Identical Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2977
+msgid ""
+"Identical\n"
+"Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2978
+msgid "Show Different Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2979
+msgid "Show Files only in A"
+msgstr ""
+
+#: directorymergewindow.cpp:2979
+msgid ""
+"Files\n"
+"only in A"
+msgstr ""
+
+#: directorymergewindow.cpp:2980
+msgid "Show Files only in B"
+msgstr ""
+
+#: directorymergewindow.cpp:2980
+msgid ""
+"Files\n"
+"only in B"
+msgstr ""
+
+#: directorymergewindow.cpp:2981
+msgid "Show Files only in C"
+msgstr ""
+
+#: directorymergewindow.cpp:2981
+msgid ""
+"Files\n"
+"only in C"
+msgstr ""
+
+#: directorymergewindow.cpp:2985
+msgid "Compare Explicitly Selected Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2986
+msgid "Merge Explicitly Selected Files"
+msgstr ""
+
+#: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995
+msgid "Do Nothing"
+msgstr "不做任何事"
+
+#: directorymergewindow.cpp:2989
+msgid "A"
+msgstr "A"
+
+#: directorymergewindow.cpp:2990
+msgid "B"
+msgstr "B"
+
+#: directorymergewindow.cpp:2991
+msgid "C"
+msgstr "C"
+
+#: directorymergewindow.cpp:3000
+msgid "Delete A && B"
+msgstr "刪除 A 與 B"
+
+#: directorymergewindow.cpp:3003
+msgid "Merge to A && B"
+msgstr "合併到 A 與 B"
+
+#: main.cpp:74 main.cpp:76
+msgid "Ignored. (User defined.)"
+msgstr "已忽略。(使用者定義)"
+
+#: main.cpp:162
+msgid "kdiff3"
+msgstr "kdiff3"
+
+#: main.cpp:164
+msgid "Tool for Comparison and Merge of Files and Directories"
+msgstr ""
+
+#: main.cpp:165
+#, fuzzy
+#| msgid "(c) 2002-2009 Joachim Eibl"
+msgid "(c) 2002-2011 Joachim Eibl"
+msgstr "(c) 2002-2009 Joachim Eibl"
+
+#: main.cpp:172 kdiff3_part.cpp:303
+msgid "Joachim Eibl"
+msgstr "Joachim Eibl"
+
+#: main.cpp:173
+msgid "Eike Sauer"
+msgstr "Eike Sauer"
+
+#: main.cpp:173
+msgid "Bugfixes, Debian package maintainer"
+msgstr "修正錯誤,Debian 套件維護"
+
+#: main.cpp:174
+msgid "Sebastien Fricker"
+msgstr "Sebastien Fricker"
+
+#: main.cpp:174
+msgid "Windows installer"
+msgstr "Windows 安裝器"
+
+#: main.cpp:175
+msgid "Stephan Binner"
+msgstr "Stephan Binner"
+
+#: main.cpp:175
+msgid "i18n-help"
+msgstr "協助國際化"
+
+#: main.cpp:176
+msgid "Stefan Partheymueller"
+msgstr "Stefan Partheymueller"
+
+#: main.cpp:176
+msgid "Clipboard-patch"
+msgstr "剪貼簿修補"
+
+#: main.cpp:177
+msgid "David Faure"
+msgstr "David Faure"
+
+#: main.cpp:177
+msgid "KIO-Help"
+msgstr "KIO-協助"
+
+#: main.cpp:178
+msgid "Bernd Gehrmann"
+msgstr "Bernd Gehrmann"
+
+#: main.cpp:178
+msgid "Class CvsIgnoreList from Cervisia"
+msgstr "從 Cervisia 提供 Class CvsIgnoreList"
+
+#: main.cpp:179
+msgid "Andre Woebbeking"
+msgstr "Andre Woebbeking"
+
+#: main.cpp:179
+msgid "Class StringMatcher"
+msgstr "Class StringMatcher"
+
+#: main.cpp:180
+msgid "Michael Denio"
+msgstr "Michael Denio"
+
+#: main.cpp:180
+msgid "Directory Equality-Coloring patch"
+msgstr "目錄比對顏色修補"
+
+#: main.cpp:181
+msgid "Manfred Koehler"
+msgstr "Manfred Koehler"
+
+#: main.cpp:181
+msgid "Fix for slow startup on Windows"
+msgstr "修正 Windows 下啟動緩慢的問題"
+
+#: main.cpp:182
+msgid "Sergey Zorin"
+msgstr "Sergey Zorin"
+
+#: main.cpp:182
+msgid "Diff Ext for Windows"
+msgstr "Windows 的差異延伸"
+
+#: main.cpp:183
+msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"
+
+#: main.cpp:183
+msgid "GNU-Diffutils"
+msgstr "GNU 差異比對工具"
+
+#: main.cpp:184
+msgid "Tino Boellsterling, Timothy Mee"
+msgstr "Tino Boellsterling, Timothy Mee"
+
+#: main.cpp:184
+msgid "Intensive test, use and feedback"
+msgstr "測試、使用與回饋"
+
+#: main.cpp:185
+msgid "Michael Schmidt"
+msgstr "Michael Schmidt"
+
+#: main.cpp:185
+msgid "Mac support"
+msgstr "Mac 支援"
+
+#: main.cpp:186
+msgid "Valentin Rusu"
+msgstr "Valentin Rusu"
+
+#: main.cpp:186 main.cpp:187
+msgid "KDE4 porting"
+msgstr "KDE4 移植"
+
+#: main.cpp:187
+msgid "Albert Astals Cid"
+msgstr "Albert Astals Cid"
+
+#: main.cpp:188
+msgid "Silvan Scherrer"
+msgstr ""
+
+#: main.cpp:188
+msgid "OS2 port"
+msgstr ""
+
+#: main.cpp:190
+msgid "+ Many thanks to those who reported bugs and contributed ideas!"
+msgstr "並且感謝許多回報錯誤與貢獻主意的朋友們。"
+
+#: main.cpp:196
+msgid "Merge the input."
+msgstr "合併輸入。"
+
+#: main.cpp:197
+msgid "Explicit base file. For compatibility with certain tools."
+msgstr ""
+
+#: main.cpp:198
+msgid "Output file. Implies -m. E.g.: -o newfile.txt"
+msgstr ""
+
+#: main.cpp:199
+msgid "Output file, again. (For compatibility with certain tools.)"
+msgstr ""
+
+#: main.cpp:200
+msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)"
+msgstr ""
+
+#: main.cpp:201
+msgid "Don't solve conflicts automatically. (For compatibility...)"
+msgstr ""
+
+#: main.cpp:202
+msgid "Visible name replacement for input file 1 (base)."
+msgstr ""
+
+#: main.cpp:203
+msgid "Visible name replacement for input file 2."
+msgstr ""
+
+#: main.cpp:204
+msgid "Visible name replacement for input file 3."
+msgstr ""
+
+#: main.cpp:205
+msgid "Alternative visible name replacement. Supply this once for every input."
+msgstr ""
+
+#: main.cpp:206
+msgid ""
+"Override a config setting. Use once for every setting. E.g.: --cs "
+"\"AutoAdvance=1\""
+msgstr ""
+
+#: main.cpp:207
+msgid "Show list of config settings and current values."
+msgstr ""
+
+#: main.cpp:208
+msgid "Use a different config file."
+msgstr ""
+
+#: main.cpp:211
+msgid "file1 to open (base, if not specified via --base)"
+msgstr "要開啟的檔案 1(若未指定 --base 則以此為基底)"
+
+#: main.cpp:212
+msgid "file2 to open"
+msgstr "要開啟的檔案 2"
+
+#: main.cpp:213
+msgid "file3 to open"
+msgstr "要開啟的檔案 3"
+
+#: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976
+#: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002
+#: mergeresultwindow.cpp:1014
+#, kde-format
+msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)"
+msgstr ""
+
+#: mergeresultwindow.cpp:303
+msgid ""
+"The output has been modified.\n"
+"If you continue your changes will be lost."
+msgstr ""
+"輸出已被變更。\n"
+"若您繼續,您的變更將會遺失。"
+
+#: mergeresultwindow.cpp:834 pdiff.cpp:532
+msgid "All input files are binary equal."
+msgstr "所有輸入檔都有相同的內容。"
+
+#: mergeresultwindow.cpp:836
+msgid "All input files contain the same text."
+msgstr "所有輸入檔都有相同的文字內容。"
+
+#: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840
+#: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540
+#, kde-format
+msgid "Files %1 and %2 are binary equal.\n"
+msgstr "檔案 %1 與 %2 內容完全相同。\n"
+
+#: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841
+#: mergeresultwindow.cpp:843
+#, kde-format
+msgid "Files %1 and %2 have equal text.\n"
+msgstr "檔案 %1 與 %2 內容文字完全相同。\n"
+
+#: mergeresultwindow.cpp:849
+msgid "Total number of conflicts: "
+msgstr "總衝突數:"
+
+#: mergeresultwindow.cpp:850
+msgid ""
+"\n"
+"Nr of automatically solved conflicts: "
+msgstr ""
+"\n"
+"自動解決衝突數:"
+
+#: mergeresultwindow.cpp:851
+msgid ""
+"\n"
+"Nr of unsolved conflicts: "
+msgstr ""
+"\n"
+"未解決衝突數:"
+
+#: mergeresultwindow.cpp:853
+msgid "Conflicts"
+msgstr "衝突"
+
+#: mergeresultwindow.cpp:1728
+msgid "<No src line>"
+msgstr ""
+
+#: mergeresultwindow.cpp:1736
+msgid "<Merge Conflict (Whitespace only)>"
+msgstr ""
+
+#: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517
+msgid "<Merge Conflict>"
+msgstr ""
+
+#: mergeresultwindow.cpp:2725
+msgid ""
+"Not all conflicts are solved yet.\n"
+"File not saved.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736
+msgid "Conflicts Left"
+msgstr ""
+
+#: mergeresultwindow.cpp:2734
+msgid ""
+"There is a line end style conflict. Please choose the line end style "
+"manually.\n"
+"File not saved.\n"
+msgstr ""
+
+#: mergeresultwindow.cpp:2748
+msgid ""
+"\n"
+"\n"
+"Creating backup failed. File not saved."
+msgstr ""
+
+#: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792
+msgid "File Save Error"
+msgstr "檔案儲存錯誤"
+
+#: mergeresultwindow.cpp:2792
+msgid "Error while writing."
+msgstr ""
+
+#: mergeresultwindow.cpp:3122
+msgid "Output"
+msgstr "輸出"
+
+#: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314
+msgid "[Modified]"
+msgstr "[已修改]"
+
+#: mergeresultwindow.cpp:3141
+msgid "Encoding for saving"
+msgstr "儲存的編碼"
+
+#: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737
+#: optiondialog.cpp:762
+msgid "Line end style:"
+msgstr "行結尾樣式:"
+
+#: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767
+msgid "Unix"
+msgstr "Unix"
+
+#: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737
+msgid "DOS"
+msgstr "DOS"
+
+#: mergeresultwindow.cpp:3229
+msgid "Conflict"
+msgstr "衝突"
+
+#: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263
+#: mergeresultwindow.cpp:3265
+msgid "Codec from"
+msgstr "編解碼器"
+
+#: kdiff3_part.cpp:157 kdiff3_part.cpp:234
+msgid "Couldn't find files for comparison."
+msgstr "找不到要比較的檔案。"
+
+#: kdiff3_part.cpp:302
+msgid "KDiff3Part"
+msgstr "KDiff3Part"
+
+#: fileaccess.cpp:612
+msgid ""
+"While trying to make a backup, deleting an older backup failed. \n"
+"Filename: "
+msgstr ""
+
+#: fileaccess.cpp:619
+msgid ""
+"While trying to make a backup, renaming failed. \n"
+"Filenames: "
+msgstr ""
+
+#: fileaccess.cpp:643
+#, kde-format
+msgid "Getting file status: %1"
+msgstr ""
+
+#: fileaccess.cpp:686
+#, kde-format
+msgid "Reading file: %1"
+msgstr "正在讀取檔案:%1"
+
+#: fileaccess.cpp:723
+#, kde-format
+msgid "Writing file: %1"
+msgstr "正在寫入檔案:%1"
+
+#: fileaccess.cpp:751
+msgid "Out of memory"
+msgstr "記憶體不足"
+
+#: fileaccess.cpp:786
+#, kde-format
+msgid "Making directory: %1"
+msgstr "產生目錄中:%1"
+
+#: fileaccess.cpp:806
+#, kde-format
+msgid "Removing directory: %1"
+msgstr "移除目錄中:%1"
+
+#: fileaccess.cpp:821
+#, kde-format
+msgid "Removing file: %1"
+msgstr "移除檔案中:%1"
+
+#: fileaccess.cpp:837
+#, kde-format
+msgid "Creating symbolic link: %1 -> %2"
+msgstr "建立符號連結中:%1 -> %2"
+
+#: fileaccess.cpp:864
+#, kde-format
+msgid "Renaming file: %1 -> %2"
+msgstr "重新命名檔案中:%1 -> %2"
+
+#: fileaccess.cpp:897
+#, kde-format
+msgid "Copying file: %1 -> %2"
+msgstr "正在複製檔案中:%1 -> %2"
+
+#: fileaccess.cpp:911
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for reading failed. Filename: "
+"%1"
+msgstr ""
+
+#: fileaccess.cpp:917
+#, kde-format
+msgid ""
+"Error during file copy operation: Opening file for writing failed. Filename: "
+"%1"
+msgstr ""
+
+#: fileaccess.cpp:932
+#, kde-format
+msgid "Error during file copy operation: Reading failed. Filename: %1"
+msgstr ""
+
+#: fileaccess.cpp:941
+#, kde-format
+msgid "Error during file copy operation: Writing failed. Filename: %1"
+msgstr ""
+
+#: fileaccess.cpp:1231
+msgid "Reading directory: "
+msgstr ""
+
+#: fileaccess.cpp:1355
+#, kde-format
+msgid "Listing directory: %1"
+msgstr ""
+
+#: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396
+msgid "&Cancel"
+msgstr "取消(&C)"
+
+#: difftextwindow.cpp:403
+msgid "Line"
+msgstr "行號"
+
+#: difftextwindow.cpp:405
+msgid "Line not available"
+msgstr "無法取得行號"
+
+#: difftextwindow.cpp:1703 difftextwindow.cpp:1736
+msgid "Encoding:"
+msgstr "編碼:"
+
+#: difftextwindow.cpp:1759 kdiff3.cpp:831
+msgid "Top line"
+msgstr "頂端行"
+
+#: difftextwindow.cpp:1769
+msgid "End"
+msgstr "結束"
+
+#: kdiff3.cpp:169
+msgid "Current Configuration:"
+msgstr "目前設定:"
+
+#: kdiff3.cpp:174
+msgid "Config Option Error:"
+msgstr ""
+
+#: kdiff3.cpp:219
+msgid "Option --auto used, but no output file specified."
+msgstr ""
+
+#: kdiff3.cpp:369
+msgid "Option --auto ignored for directory comparison."
+msgstr ""
+
+#: kdiff3.cpp:405
+msgid "Saving failed."
+msgstr "儲存失敗。"
+
+#: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214
+msgid "Opening of these files failed:"
+msgstr "開啟這些檔案失敗:"
+
+#: kdiff3.cpp:449
+msgid "File Open Error"
+msgstr "檔案開啟失敗"
+
+#: kdiff3.cpp:477
+msgid "Opens documents for comparison..."
+msgstr "開啟要比較的文件..."
+
+#: kdiff3.cpp:479
+msgid "Reload"
+msgstr "重新載入"
+
+#: kdiff3.cpp:482
+msgid "Saves the merge result. All conflicts must be solved!"
+msgstr ""
+
+#: kdiff3.cpp:484
+msgid "Saves the current document as..."
+msgstr ""
+
+#: kdiff3.cpp:487
+msgid "Print the differences"
+msgstr ""
+
+#: kdiff3.cpp:490
+msgid "Quits the application"
+msgstr "離開應用程式"
+
+#: kdiff3.cpp:492
+msgid "Cuts the selected section and puts it to the clipboard"
+msgstr "剪下所選取的部分並放到剪貼簿"
+
+#: kdiff3.cpp:494
+msgid "Copies the selected section to the clipboard"
+msgstr "複製所選取的部分並放到剪貼簿"
+
+#: kdiff3.cpp:496
+#, fuzzy
+#| msgid "Pastes the clipboard contents to actual position"
+msgid "Pastes the clipboard contents to current position"
+msgstr "貼上剪貼簿內容到目前位置"
+
+#: kdiff3.cpp:498
+msgid "Select everything in current window"
+msgstr ""
+
+#: kdiff3.cpp:500
+msgid "Search for a string"
+msgstr ""
+
+#: kdiff3.cpp:502
+msgid "Search again for the string"
+msgstr ""
+
+#: kdiff3.cpp:507
+msgid "Enables/disables the statusbar"
+msgstr "啟動/關閉狀態列"
+
+#: kdiff3.cpp:511
+msgid "Configure KDiff3..."
+msgstr ""
+
+#: kdiff3.cpp:532
+msgid "Go to Current Delta"
+msgstr ""
+
+#: kdiff3.cpp:532
+msgid ""
+"Current\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:534
+msgid "Go to First Delta"
+msgstr ""
+
+#: kdiff3.cpp:534
+msgid ""
+"First\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:536
+msgid "Go to Last Delta"
+msgstr ""
+
+#: kdiff3.cpp:536
+msgid ""
+"Last\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:538
+msgid "(Skips white space differences when \"Show White Space\" is disabled.)"
+msgstr ""
+
+#: kdiff3.cpp:539
+msgid ""
+"(Does not skip white space differences even when \"Show White Space\" is "
+"disabled.)"
+msgstr ""
+
+#: kdiff3.cpp:540
+msgid "Go to Previous Delta"
+msgstr ""
+
+#: kdiff3.cpp:540
+msgid ""
+"Prev\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:542
+msgid "Go to Next Delta"
+msgstr ""
+
+#: kdiff3.cpp:542
+msgid ""
+"Next\n"
+"Delta"
+msgstr ""
+
+#: kdiff3.cpp:544
+msgid "Go to Previous Conflict"
+msgstr ""
+
+#: kdiff3.cpp:544
+msgid ""
+"Prev\n"
+"Conflict"
+msgstr ""
+
+#: kdiff3.cpp:546
+msgid "Go to Next Conflict"
+msgstr ""
+
+#: kdiff3.cpp:546
+msgid ""
+"Next\n"
+"Conflict"
+msgstr ""
+
+#: kdiff3.cpp:548
+msgid "Go to Previous Unsolved Conflict"
+msgstr ""
+
+#: kdiff3.cpp:548
+msgid ""
+"Prev\n"
+"Unsolved"
+msgstr ""
+
+#: kdiff3.cpp:550
+msgid "Go to Next Unsolved Conflict"
+msgstr ""
+
+#: kdiff3.cpp:550
+msgid ""
+"Next\n"
+"Unsolved"
+msgstr ""
+
+#: kdiff3.cpp:552
+msgid "Select Line(s) From A"
+msgstr ""
+
+#: kdiff3.cpp:552
+msgid ""
+"Choose\n"
+"A"
+msgstr ""
+
+#: kdiff3.cpp:553
+msgid "Select Line(s) From B"
+msgstr ""
+
+#: kdiff3.cpp:553
+msgid ""
+"Choose\n"
+"B"
+msgstr ""
+
+#: kdiff3.cpp:554
+msgid "Select Line(s) From C"
+msgstr ""
+
+#: kdiff3.cpp:554
+msgid ""
+"Choose\n"
+"C"
+msgstr ""
+
+#: kdiff3.cpp:555
+msgid "Automatically Go to Next Unsolved Conflict After Source Selection"
+msgstr ""
+
+#: kdiff3.cpp:555
+msgid ""
+"Auto\n"
+"Next"
+msgstr ""
+
+#: kdiff3.cpp:557
+msgid "Show Space && Tabulator Characters for Differences"
+msgstr ""
+
+#: kdiff3.cpp:557
+msgid ""
+"White\n"
+"Characters"
+msgstr ""
+
+#: kdiff3.cpp:558
+msgid "Show White Space"
+msgstr ""
+
+#: kdiff3.cpp:558
+msgid ""
+"White\n"
+"Deltas"
+msgstr ""
+
+#: kdiff3.cpp:560
+msgid "Show Line Numbers"
+msgstr "顯示行號"
+
+#: kdiff3.cpp:560
+msgid ""
+"Line\n"
+"Numbers"
+msgstr ""
+
+#: kdiff3.cpp:561
+msgid "Choose A Everywhere"
+msgstr ""
+
+#: kdiff3.cpp:562
+msgid "Choose B Everywhere"
+msgstr ""
+
+#: kdiff3.cpp:563
+msgid "Choose C Everywhere"
+msgstr ""
+
+#: kdiff3.cpp:564
+msgid "Choose A for All Unsolved Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:565
+msgid "Choose B for All Unsolved Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:566
+msgid "Choose C for All Unsolved Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:567
+msgid "Choose A for All Unsolved Whitespace Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:568
+msgid "Choose B for All Unsolved Whitespace Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:569
+msgid "Choose C for All Unsolved Whitespace Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:570
+msgid "Automatically Solve Simple Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:571
+msgid "Set Deltas to Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:572
+msgid "Run Regular Expression Auto Merge"
+msgstr ""
+
+#: kdiff3.cpp:573
+msgid "Automatically Solve History Conflicts"
+msgstr ""
+
+#: kdiff3.cpp:574
+msgid "Split Diff At Selection"
+msgstr ""
+
+#: kdiff3.cpp:575
+msgid "Join Selected Diffs"
+msgstr ""
+
+#: kdiff3.cpp:577
+msgid "Show Window A"
+msgstr ""
+
+#: kdiff3.cpp:578
+msgid "Show Window B"
+msgstr ""
+
+#: kdiff3.cpp:579
+msgid "Show Window C"
+msgstr ""
+
+#: kdiff3.cpp:580 kdiff3.cpp:591
+msgid "Focus Next Window"
+msgstr ""
+
+#: kdiff3.cpp:582
+msgid "Normal Overview"
+msgstr ""
+
+#: kdiff3.cpp:583
+msgid "A vs. B Overview"
+msgstr ""
+
+#: kdiff3.cpp:584
+msgid "A vs. C Overview"
+msgstr ""
+
+#: kdiff3.cpp:585
+msgid "B vs. C Overview"
+msgstr ""
+
+#: kdiff3.cpp:586
+msgid "Word Wrap Diff Windows"
+msgstr ""
+
+#: kdiff3.cpp:587
+msgid "Add Manual Diff Alignment"
+msgstr ""
+
+#: kdiff3.cpp:588
+msgid "Clear All Manual Diff Alignments"
+msgstr ""
+
+#: kdiff3.cpp:593
+msgid "Focus Prev Window"
+msgstr ""
+
+#: kdiff3.cpp:594
+msgid "Toggle Split Orientation"
+msgstr ""
+
+#: kdiff3.cpp:596
+msgid "Dir && Text Split Screen View"
+msgstr ""
+
+#: kdiff3.cpp:598
+msgid "Toggle Between Dir && Text View"
+msgstr ""
+
+#: kdiff3.cpp:654 pdiff.cpp:1812
+msgid "The merge result hasn't been saved."
+msgstr ""
+
+#: kdiff3.cpp:656
+msgid "Save && Quit"
+msgstr ""
+
+#: kdiff3.cpp:657
+msgid "Quit Without Saving"
+msgstr "離開但不儲存"
+
+#: kdiff3.cpp:665 pdiff.cpp:1823
+msgid "Saving the merge result failed."
+msgstr ""
+
+#: kdiff3.cpp:676 pdiff.cpp:1078
+msgid ""
+"You are currently doing a directory merge. Are you sure, you want to abort?"
+msgstr ""
+
+#: kdiff3.cpp:701
+msgid "Saving file..."
+msgstr "正在儲存檔案..."
+
+#: kdiff3.cpp:718
+msgid "Saving file with a new filename..."
+msgstr "正在用新檔名儲存檔案..."
+
+#: kdiff3.cpp:781
+msgid "Printing not implemented."
+msgstr ""
+
+#: kdiff3.cpp:815
+msgid "Printing..."
+msgstr "正在列印..."
+
+#: kdiff3.cpp:956
+msgid "Selection"
+msgstr "選擇"
+
+#: kdiff3.cpp:982
+msgid "Printing completed."
+msgstr ""
+
+#: kdiff3.cpp:986
+msgid "Printing aborted."
+msgstr ""
+
+#: kdiff3.cpp:993
+msgid "Exiting..."
+msgstr "正在離開..."
+
+#: kdiff3.cpp:1006
+msgid "Toggling toolbar..."
+msgstr "切換工具列..."
+
+#: kdiff3.cpp:1027
+msgid "Toggle the statusbar..."
+msgstr "切換狀態列..."
+
+#: smalldialogs.cpp:58
+msgid "A (Base):"
+msgstr ""
+
+#: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99
+#: smalldialogs.cpp:142
+msgid "File..."
+msgstr "檔案..."
+
+#: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101
+#: smalldialogs.cpp:144
+msgid "Dir..."
+msgstr "方向..."
+
+#: smalldialogs.cpp:93
+msgid "C (Optional):"
+msgstr "C (選擇性):"
+
+#: smalldialogs.cpp:116
+msgid "Swap/Copy Names ..."
+msgstr ""
+
+#: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123
+#, kde-format
+msgid "Swap %1<->%2"
+msgstr "交換 %1<->%2"
+
+#: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126
+#, kde-format
+msgid "Copy %1->Output"
+msgstr "複製 %1 -> 輸出"
+
+#: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129
+#, kde-format
+msgid "Swap %1<->Output"
+msgstr "交換 %1 <-> 輸出"
+
+#: smalldialogs.cpp:136
+msgid "Output (optional):"
+msgstr "輸出 (選擇性):"
+
+#: smalldialogs.cpp:168
+msgid "Configure..."
+msgstr "設定..."
+
+#: smalldialogs.cpp:174
+msgid "&OK"
+msgstr "確定(&O)"
+
+#: smalldialogs.cpp:362
+msgid "Search text:"
+msgstr "搜尋文字:"
+
+#: smalldialogs.cpp:369
+msgid "Case sensitive"
+msgstr "區分大小寫"
+
+#: smalldialogs.cpp:372
+msgid "Search A"
+msgstr "搜尋 A"
+
+#: smalldialogs.cpp:377
+msgid "Search B"
+msgstr "搜尋 B"
+
+#: smalldialogs.cpp:382
+msgid "Search C"
+msgstr "搜尋 C"
+
+#: smalldialogs.cpp:387
+msgid "Search output"
+msgstr "搜尋輸出"
+
+#: smalldialogs.cpp:392
+msgid "&Search"
+msgstr "搜尋(&S)"
+
+#: smalldialogs.cpp:409
+msgid "Regular Expression Tester"
+msgstr "正規表示式測試器"
+
+#: smalldialogs.cpp:414 optiondialog.cpp:936
+msgid "Auto merge regular expression:"
+msgstr "自動合併正規表示式:"
+
+#: smalldialogs.cpp:422
+msgid "Example auto merge line:"
+msgstr ""
+
+#: smalldialogs.cpp:424
+msgid "To test auto merge, copy a line as used in your files."
+msgstr ""
+
+#: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494
+msgid "Match result:"
+msgstr ""
+
+#: smalldialogs.cpp:441 optiondialog.cpp:962
+msgid "History start regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:449
+msgid "Example history start line (with leading comment):"
+msgstr ""
+
+#: smalldialogs.cpp:451
+msgid ""
+"Copy a history start line as used in your files,\n"
+"including the leading comment."
+msgstr ""
+
+#: smalldialogs.cpp:469 optiondialog.cpp:972
+msgid "History entry start regular expression:"
+msgstr ""
+
+#: smalldialogs.cpp:477
+msgid "History sort key order:"
+msgstr ""
+
+#: smalldialogs.cpp:485
+msgid "Example history entry start line (without leading comment):"
+msgstr ""
+
+#: smalldialogs.cpp:487
+msgid ""
+"Copy a history entry start line as used in your files,\n"
+"but omit the leading comment."
+msgstr ""
+
+#: smalldialogs.cpp:501
+msgid "Sort key result:"
+msgstr ""
+
+#: smalldialogs.cpp:508
+msgid "OK"
+msgstr "確定"
+
+#: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583
+msgid "Match success."
+msgstr ""
+
+#: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589
+msgid "Match failed."
+msgstr ""
+
+#: smalldialogs.cpp:574
+msgid "Opening and closing parentheses do not match in regular expression."
+msgstr ""
+
+#: optiondialog.cpp:367
+msgid "Unicode, 8 bit"
+msgstr ""
+
+#: optiondialog.cpp:368
+msgid "Unicode"
+msgstr "萬國碼"
+
+#: optiondialog.cpp:369
+msgid "Latin1"
+msgstr "Latin1"
+
+#: optiondialog.cpp:388
+msgid "Change this if non-ASCII characters are not displayed correctly."
+msgstr ""
+
+#: optiondialog.cpp:465
+msgid "Configure"
+msgstr "設定"
+
+#: optiondialog.cpp:531
+msgid "Font"
+msgstr "字型"
+
+#: optiondialog.cpp:532
+msgid "Editor & Diff Output Font"
+msgstr ""
+
+#: optiondialog.cpp:556
+msgid "Italic font for deltas"
+msgstr ""
+
+#: optiondialog.cpp:559
+msgid ""
+"Selects the italic version of the font for differences.\n"
+"If the font doesn't support italic characters, then this does nothing."
+msgstr ""
+
+#: optiondialog.cpp:568
+msgid "Color"
+msgstr "顏色"
+
+#: optiondialog.cpp:569
+msgid "Colors Settings"
+msgstr ""
+
+#: optiondialog.cpp:588
+msgid "Editor and Diff Views:"
+msgstr ""
+
+#: optiondialog.cpp:596
+msgid "Foreground color:"
+msgstr "前景顏色:"
+
+#: optiondialog.cpp:603
+msgid "Background color:"
+msgstr "背景顏色:"
+
+#: optiondialog.cpp:612
+msgid "Diff background color:"
+msgstr ""
+
+#: optiondialog.cpp:620
+msgid "Color A:"
+msgstr ""
+
+#: optiondialog.cpp:628
+msgid "Color B:"
+msgstr ""
+
+#: optiondialog.cpp:636
+msgid "Color C:"
+msgstr ""
+
+#: optiondialog.cpp:643
+msgid "Conflict color:"
+msgstr ""
+
+#: optiondialog.cpp:651
+msgid "Current range background color:"
+msgstr ""
+
+#: optiondialog.cpp:659
+msgid "Current range diff background color:"
+msgstr ""
+
+#: optiondialog.cpp:666
+msgid "Color for manually aligned difference ranges:"
+msgstr ""
+
+#: optiondialog.cpp:672
+msgid "Directory Comparison View:"
+msgstr ""
+
+#: optiondialog.cpp:678
+msgid "Newest file color:"
+msgstr ""
+
+#: optiondialog.cpp:682
+msgid ""
+"Changing this color will only be effective when starting the next directory "
+"comparison."
+msgstr ""
+
+#: optiondialog.cpp:687
+msgid "Oldest file color:"
+msgstr ""
+
+#: optiondialog.cpp:695
+msgid "Middle age file color:"
+msgstr ""
+
+#: optiondialog.cpp:703
+msgid "Color for missing files:"
+msgstr ""
+
+#: optiondialog.cpp:717
+msgid "Editor"
+msgstr "編輯器"
+
+#: optiondialog.cpp:718
+msgid "Editor Behavior"
+msgstr ""
+
+#: optiondialog.cpp:732
+msgid "Tab inserts spaces"
+msgstr ""
+
+#: optiondialog.cpp:735
+msgid ""
+"On: Pressing tab generates the appropriate number of spaces.\n"
+"Off: A tab character will be inserted."
+msgstr ""
+
+#: optiondialog.cpp:741
+msgid "Tab size:"
+msgstr "定位字元寬度:"
+
+#: optiondialog.cpp:747
+msgid "Auto indentation"
+msgstr ""
+
+#: optiondialog.cpp:750
+msgid "On: The indentation of the previous line is used for a new line.\n"
+msgstr ""
+
+#: optiondialog.cpp:754
+msgid "Auto copy selection"
+msgstr ""
+
+#: optiondialog.cpp:757
+msgid ""
+"On: Any selection is immediately written to the clipboard.\n"
+"Off: You must explicitely copy e.g. via Ctrl-C."
+msgstr ""
+
+#: optiondialog.cpp:768
+#, fuzzy
+#| msgid "&Window"
+msgid "Dos/Windows"
+msgstr "視窗(&W)"
+
+#: optiondialog.cpp:769
+msgid "Autodetect"
+msgstr ""
+
+#: optiondialog.cpp:772
+msgid ""
+"Sets the line endings for when an edited file is saved.\n"
+"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A"
+msgstr ""
+
+#: optiondialog.cpp:784
+msgid "Diff"
+msgstr "比較"
+
+#: optiondialog.cpp:785
+msgid "Diff Settings"
+msgstr "Diff 設定"
+
+#: optiondialog.cpp:809
+msgid "Treat as white space."
+msgstr ""
+
+#: optiondialog.cpp:811
+msgid "Ignore numbers"
+msgstr ""
+
+#: optiondialog.cpp:814
+msgid ""
+"Ignore number characters during line matching phase. (Similar to Ignore "
+"white space.)\n"
+"Might help to compare files with numeric data."
+msgstr ""
+
+#: optiondialog.cpp:819
+msgid "Ignore C/C++ comments"
+msgstr ""
+
+#: optiondialog.cpp:821
+msgid "Treat C/C++ comments like white space."
+msgstr ""
+
+#: optiondialog.cpp:825
+msgid "Ignore case"
+msgstr ""
+
+#: optiondialog.cpp:828
+msgid "Treat case differences like white space changes. ('a'<=>'A')"
+msgstr ""
+
+#: optiondialog.cpp:832
+msgid "Preprocessor command:"
+msgstr ""
+
+#: optiondialog.cpp:836
+msgid "User defined pre-processing. (See the docs for details.)"
+msgstr ""
+
+#: optiondialog.cpp:839
+msgid "Line-matching preprocessor command:"
+msgstr ""
+
+#: optiondialog.cpp:843
+msgid ""
+"This pre-processor is only used during line matching.\n"
+"(See the docs for details.)"
+msgstr ""
+
+#: optiondialog.cpp:846
+msgid "Try hard (slower)"
+msgstr ""
+
+#: optiondialog.cpp:849
+msgid ""
+"Enables the --minimal option for the external diff.\n"
+"The analysis of big files will be much slower."
+msgstr ""
+
+#: optiondialog.cpp:854
+msgid "Align B and C for 3 input files"
+msgstr ""
+
+#: optiondialog.cpp:857
+msgid ""
+"Try to align B and C when comparing or merging three input files.\n"
+"Not recommended for merging because merge might get more complicated.\n"
+"(Default is off.)"
+msgstr ""
+
+#: optiondialog.cpp:870
+msgid "Merge Settings"
+msgstr ""
+
+#: optiondialog.cpp:885
+msgid "Auto advance delay (ms):"
+msgstr ""
+
+#: optiondialog.cpp:890
+msgid ""
+"When in Auto-Advance mode the result of the current selection is shown \n"
+"for the specified time, before jumping to the next conflict. Range: 0-2000 ms"
+msgstr ""
+
+#: optiondialog.cpp:895
+msgid "Show info dialogs"
+msgstr ""
+
+#: optiondialog.cpp:897
+msgid "Show a dialog with information about the number of conflicts."
+msgstr ""
+
+#: optiondialog.cpp:900
+msgid "White space 2-file merge default:"
+msgstr ""
+
+#: optiondialog.cpp:904 optiondialog.cpp:917
+msgid "Manual Choice"
+msgstr ""
+
+#: optiondialog.cpp:908 optiondialog.cpp:922
+msgid ""
+"Allow the merge algorithm to automatically select an input for white-space-"
+"only changes."
+msgstr ""
+
+#: optiondialog.cpp:913
+msgid "White space 3-file merge default:"
+msgstr ""
+
+#: optiondialog.cpp:927
+msgid "Automatic Merge Regular Expression"
+msgstr ""
+
+#: optiondialog.cpp:940
+msgid ""
+"Regular expression for lines where KDiff3 should automatically choose one "
+"source.\n"
+"When a line with a conflict matches the regular expression then\n"
+"- if available - C, otherwise B will be chosen."
+msgstr ""
+
+#: optiondialog.cpp:946
+msgid "Run regular expression auto merge on merge start"
+msgstr ""
+
+#: optiondialog.cpp:948
+msgid ""
+"Run the merge for auto merge regular expressions\n"
+"immediately when a merge starts.\n"
+msgstr ""
+
+#: optiondialog.cpp:953
+msgid "Version Control History Merging"
+msgstr ""
+
+#: optiondialog.cpp:966
+msgid ""
+"Regular expression for the start of the version control history entry.\n"
+"Usually this line contains the \"$Log$\" keyword.\n"
+"Default value: \".*\\$Log.*\\$.*\""
+msgstr ""
+
+#: optiondialog.cpp:984
+msgid ""
+"A version control history entry consists of several lines.\n"
+"Specify the regular expression to detect the first line (without the leading "
+"comment).\n"
+"Use parentheses to group the keys you want to use for sorting.\n"
+"If left empty, then KDiff3 assumes that empty lines separate history "
+"entries.\n"
+"See the documentation for details."
+msgstr ""
+
+#: optiondialog.cpp:992
+msgid "History merge sorting"
+msgstr ""
+
+#: optiondialog.cpp:994
+msgid "Sort version control history by a key."
+msgstr ""
+
+#: optiondialog.cpp:1004
+msgid "History entry start sort key order:"
+msgstr ""
+
+#: optiondialog.cpp:1008
+msgid ""
+"Each pair of parentheses used in the regular expression for the history "
+"start entry\n"
+"groups a key that can be used for sorting.\n"
+"Specify the list of keys (that are numbered in order of occurrence\n"
+"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n"
+"If left empty, then no sorting will be done.\n"
+"See the documentation for details."
+msgstr ""
+
+#: optiondialog.cpp:1019
+msgid "Merge version control history on merge start"
+msgstr ""
+
+#: optiondialog.cpp:1021
+msgid "Run version control history automerge on merge start."
+msgstr ""
+
+#: optiondialog.cpp:1025
+msgid "Max number of history entries:"
+msgstr ""
+
+#: optiondialog.cpp:1028
+msgid "Cut off after specified number. Use -1 for infinite number of entries."
+msgstr ""
+
+#: optiondialog.cpp:1032
+msgid "Test your regular expressions"
+msgstr ""
+
+#: optiondialog.cpp:1037
+msgid "Irrelevant merge command:"
+msgstr ""
+
+#: optiondialog.cpp:1041
+msgid ""
+"If specified this script is run after automerge\n"
+"when no other relevant changes were detected.\n"
+"Called with the parameters: filename1 filename2 filename3"
+msgstr ""
+
+#: optiondialog.cpp:1047
+msgid "Auto save and quit on merge without conflicts"
+msgstr ""
+
+#: optiondialog.cpp:1050
+msgid ""
+"If KDiff3 was started for a file-merge from the command line and all\n"
+"conflicts are solvable without user interaction then automatically save and "
+"quit.\n"
+"(Similar to command line option \"--auto\".)"
+msgstr ""
+
+#: optiondialog.cpp:1061 optiondialog.cpp:1062
+msgid "Directory"
+msgstr "目錄"
+
+#: optiondialog.cpp:1075
+msgid "Recursive directories"
+msgstr ""
+
+#: optiondialog.cpp:1077
+msgid "Whether to analyze subdirectories or not."
+msgstr ""
+
+#: optiondialog.cpp:1079
+msgid "File pattern(s):"
+msgstr ""
+
+#: optiondialog.cpp:1084
+msgid ""
+"Pattern(s) of files to be analyzed. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1090
+msgid "File-anti-pattern(s):"
+msgstr ""
+
+#: optiondialog.cpp:1095
+msgid ""
+"Pattern(s) of files to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1101
+msgid "Dir-anti-pattern(s):"
+msgstr ""
+
+#: optiondialog.cpp:1106
+msgid ""
+"Pattern(s) of directories to be excluded from analysis. \n"
+"Wildcards: '*' and '?'\n"
+"Several Patterns can be specified by using the separator: ';'"
+msgstr ""
+
+#: optiondialog.cpp:1112
+msgid "Use .cvsignore"
+msgstr ""
+
+#: optiondialog.cpp:1115
+msgid ""
+"Extends the antipattern to anything that would be ignored by CVS.\n"
+"Via local \".cvsignore\" files this can be directory specific."
+msgstr ""
+
+#: optiondialog.cpp:1120
+msgid "Find hidden files and directories"
+msgstr ""
+
+#: optiondialog.cpp:1123
+msgid "Finds files and directories with the hidden attribute."
+msgstr ""
+
+#: optiondialog.cpp:1125
+msgid "Finds files and directories starting with '.'."
+msgstr ""
+
+#: optiondialog.cpp:1129
+msgid "Follow file links"
+msgstr ""
+
+#: optiondialog.cpp:1132
+msgid ""
+"On: Compare the file the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+
+#: optiondialog.cpp:1137
+msgid "Follow directory links"
+msgstr ""
+
+#: optiondialog.cpp:1140
+msgid ""
+"On: Compare the directory the link points to.\n"
+"Off: Compare the links."
+msgstr ""
+
+#: optiondialog.cpp:1156
+msgid "Case sensitive filename comparison"
+msgstr ""
+
+#: optiondialog.cpp:1159
+msgid ""
+"The directory comparison will compare files or directories when their names "
+"match.\n"
+"Set this option if the case of the names must match. (Default for Windows is "
+"off, otherwise on.)"
+msgstr ""
+
+#: optiondialog.cpp:1163
+msgid "File Comparison Mode"
+msgstr ""
+
+#: optiondialog.cpp:1169
+msgid "Binary comparison"
+msgstr ""
+
+#: optiondialog.cpp:1170
+msgid "Binary comparison of each file. (Default)"
+msgstr ""
+
+#: optiondialog.cpp:1173
+msgid "Full analysis"
+msgstr ""
+
+#: optiondialog.cpp:1174
+msgid ""
+"Do a full analysis and show statistics information in extra columns.\n"
+"(Slower than a binary comparison, much slower for binary files.)"
+msgstr ""
+
+#: optiondialog.cpp:1178
+msgid "Trust the size and modification date (unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1179
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"Files with equal contents but different modification dates will appear as "
+"different.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+
+#: optiondialog.cpp:1184
+msgid ""
+"Trust the size and date, but use binary comparison if date does not match "
+"(unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1185
+msgid ""
+"Assume that files are equal if the modification date and file length are "
+"equal.\n"
+"If the dates are not equal but the sizes are, use binary comparison.\n"
+"Useful for big directories or slow networks."
+msgstr ""
+
+#: optiondialog.cpp:1190
+msgid "Trust the size (unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1191
+msgid ""
+"Assume that files are equal if their file lengths are equal.\n"
+"Useful for big directories or slow networks when the date is modified during "
+"download."
+msgstr ""
+
+#: optiondialog.cpp:1199
+msgid "Synchronize directories"
+msgstr ""
+
+#: optiondialog.cpp:1202
+msgid ""
+"Offers to store files in both directories so that\n"
+"both directories are the same afterwards.\n"
+"Works only when comparing two directories without specifying a destination."
+msgstr ""
+
+#: optiondialog.cpp:1208
+msgid "White space differences considered equal"
+msgstr ""
+
+#: optiondialog.cpp:1211
+msgid ""
+"If files differ only by white space consider them equal.\n"
+"This is only active when full analysis is chosen."
+msgstr ""
+
+#: optiondialog.cpp:1217
+msgid "Copy newer instead of merging (unsafe)"
+msgstr ""
+
+#: optiondialog.cpp:1220
+msgid ""
+"Don't look inside, just take the newer file.\n"
+"(Use this only if you know what you are doing!)\n"
+"Only effective when comparing two directories."
+msgstr ""
+
+#: optiondialog.cpp:1225
+msgid "Backup files (.orig)"
+msgstr ""
+
+#: optiondialog.cpp:1228
+msgid ""
+"If a file would be saved over an old file, then the old file\n"
+"will be renamed with a '.orig' extension instead of being deleted."
+msgstr ""
+
+#: optiondialog.cpp:1301 optiondialog.cpp:1302
+msgid "Regional Settings"
+msgstr "區域設定"
+
+#: optiondialog.cpp:1402
+msgid "Language (restart required)"
+msgstr ""
+
+#: optiondialog.cpp:1445
+msgid ""
+"Choose the language of the GUI strings or \"Auto\".\n"
+"For a change of language to take place, quit and restart KDiff3."
+msgstr ""
+
+#: optiondialog.cpp:1463
+msgid "Use the same encoding for everything:"
+msgstr ""
+
+#: optiondialog.cpp:1466
+msgid ""
+"Enable this allows to change all encodings by changing the first only.\n"
+"Disable this if different individual settings are needed."
+msgstr ""
+
+#: optiondialog.cpp:1471
+msgid "Note: Local Encoding is "
+msgstr ""
+
+#: optiondialog.cpp:1475
+msgid "File Encoding for A:"
+msgstr ""
+
+#: optiondialog.cpp:1481
+msgid ""
+"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n"
+"If the file is not Unicode then the selected encoding will be used as "
+"fallback.\n"
+"(Unicode detection depends on the first bytes of a file.)"
+msgstr ""
+
+#: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503
+msgid "Auto Detect Unicode"
+msgstr ""
+
+#: optiondialog.cpp:1490
+msgid "File Encoding for B:"
+msgstr ""
+
+#: optiondialog.cpp:1499
+msgid "File Encoding for C:"
+msgstr ""
+
+#: optiondialog.cpp:1508
+msgid "File Encoding for Merge Output and Saving:"
+msgstr ""
+
+#: optiondialog.cpp:1512
+msgid "Auto Select"
+msgstr ""
+
+#: optiondialog.cpp:1515
+msgid ""
+"If enabled then the encoding from the input files is used.\n"
+"In ambiguous cases a dialog will ask the user to choose the encoding for "
+"saving."
+msgstr ""
+
+#: optiondialog.cpp:1519
+msgid "File Encoding for Preprocessor Files:"
+msgstr ""
+
+#: optiondialog.cpp:1530
+msgid "Right To Left Language"
+msgstr ""
+
+#: optiondialog.cpp:1533
+msgid ""
+"Some languages are read from right to left.\n"
+"This setting will change the viewer and editor accordingly."
+msgstr ""
+
+#: optiondialog.cpp:1548
+msgid "Integration"
+msgstr "整合"
+
+#: optiondialog.cpp:1549
+msgid "Integration Settings"
+msgstr ""
+
+#: optiondialog.cpp:1563
+msgid "Command line options to ignore:"
+msgstr ""
+
+#: optiondialog.cpp:1568
+msgid ""
+"List of command line options that should be ignored when KDiff3 is used by "
+"other tools.\n"
+"Several values can be specified if separated via ';'\n"
+"This will suppress the \"Unknown option\" error."
+msgstr ""
+
+#: optiondialog.cpp:1575
+msgid "Quit also via Escape key"
+msgstr ""
+
+#: optiondialog.cpp:1578
+msgid ""
+"Fast method to exit.\n"
+"For those who are used to using the Escape key."
+msgstr ""
+
+#: optiondialog.cpp:1583
+msgid "Integrate with ClearCase"
+msgstr ""
+
+#: optiondialog.cpp:1586
+msgid ""
+"Integrate with Rational ClearCase from IBM.\n"
+"Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n"
+"(Only enabled when ClearCase \"bin\" directory is in the path.)"
+msgstr ""
+
+#: optiondialog.cpp:1592
+msgid "Remove ClearCase Integration"
+msgstr ""
+
+#: optiondialog.cpp:1595
+msgid ""
+"Restore the old \"map\" file from before doing the ClearCase integration."
+msgstr ""
+
+#: optiondialog.cpp:1680
+msgid "Incompatible Font"
+msgstr ""
+
+#: optiondialog.cpp:1681
+msgid "Continue at Own Risk"
+msgstr ""
+
+#: optiondialog.cpp:1682
+msgid "Select Another Font"
+msgstr ""
+
+#: optiondialog.cpp:1717
+msgid "This resets all options. Not only those of the current topic."
+msgstr ""
+
+#: pdiff.cpp:260
+msgid "PreprocessorCmd: "
+msgstr ""
+
+#: pdiff.cpp:265
+msgid "The following option(s) you selected might change data:\n"
+msgstr ""
+
+#: pdiff.cpp:266
+msgid ""
+"\n"
+"Most likely this is not wanted during a merge.\n"
+"Do you want to disable these settings or continue with these settings active?"
+msgstr ""
+
+#: pdiff.cpp:268
+msgid "Option Unsafe for Merging"
+msgstr ""
+
+#: pdiff.cpp:269
+msgid "Use These Options During Merge"
+msgstr ""
+
+#: pdiff.cpp:270
+msgid "Disable Unsafe Options"
+msgstr ""
+
+#: pdiff.cpp:300
+msgid "Loading A"
+msgstr "載入 A 中"
+
+#: pdiff.cpp:304
+msgid "Loading B"
+msgstr "載入 B 中"
+
+#: pdiff.cpp:321 pdiff.cpp:347
+msgid "Diff: A <-> B"
+msgstr ""
+
+#: pdiff.cpp:327 pdiff.cpp:372
+msgid "Linediff: A <-> B"
+msgstr ""
+
+#: pdiff.cpp:338
+msgid "Loading C"
+msgstr "載入 C 中"
+
+#: pdiff.cpp:350
+msgid "Diff: B <-> C"
+msgstr ""
+
+#: pdiff.cpp:353
+msgid "Diff: A <-> C"
+msgstr ""
+
+#: pdiff.cpp:375
+msgid "Linediff: B <-> C"
+msgstr ""
+
+#: pdiff.cpp:378
+msgid "Linediff: A <-> C"
+msgstr ""
+
+#: pdiff.cpp:534
+msgid "All input files contain the same text, but are not binary equal."
+msgstr "所有輸入檔都有相同的文字內容,但檔案內容卻不完全相同。"
+
+#: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541
+#, kde-format
+msgid "Files %1 and %2 have equal text, but are not binary equal. \n"
+msgstr "檔案 %1 與 %2 內容文字完全相同,但檔案內容不完全相同。\n"
+
+#: pdiff.cpp:551
+msgid ""
+"Some inputfiles don't seem to be pure textfiles.\n"
+"Note that the KDiff3-merge was not meant for binary data.\n"
+"Continue at your own risk."
+msgstr ""
+
+#: pdiff.cpp:566
+#, kde-format
+msgid ""
+"Some input characters could not be converted to valid unicode.\n"
+"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n"
+"Don't save the result if unsure. Continue at your own risk.\n"
+"Affected input files are in %1."
+msgstr ""
+
+#: pdiff.cpp:1080
+msgid "Abort"
+msgstr "中止"
+
+#: pdiff.cpp:1087 pdiff.cpp:1175
+msgid "Opening files..."
+msgstr "開啟檔案中..."
+
+#: pdiff.cpp:1152 pdiff.cpp:1223
+msgid "File open error"
+msgstr "檔案開啟失敗"
+
+#: pdiff.cpp:1255
+msgid "Cutting selection..."
+msgstr "正在剪下所選取的項目..."
+
+#: pdiff.cpp:1276
+msgid "Copying selection to clipboard..."
+msgstr "正在複製所選取的項目到剪貼簿..."
+
+#: pdiff.cpp:1292
+msgid "Inserting clipboard contents..."
+msgstr "正在插入剪貼簿內容..."
+
+#: pdiff.cpp:1814
+msgid "Save && Continue"
+msgstr "儲存並繼續"
+
+#: pdiff.cpp:1815
+msgid "Continue Without Saving"
+msgstr "不儲存但繼續"
+
+#: pdiff.cpp:2018
+msgid "Search complete."
+msgstr "搜尋完成。"
+
+#: pdiff.cpp:2018
+msgid "Search Complete"
+msgstr "搜尋完成"
+
+#: pdiff.cpp:2252
+msgid "Nothing is selected in either diff input window."
+msgstr ""
+
+#: pdiff.cpp:2252
+msgid "Error while adding manual diff range"
+msgstr "新增手動比對範圍時發生錯誤"
+
+#: kdiff3_shell.cpp:76
+msgid ""
+"Could not initialize the KDiff3 part.\n"
+"This usually happens due to an installation problem. Please read the README-"
+"file in the source package for details."
+msgstr ""
+
+#: rc.cpp:1
+msgctxt "NAME OF TRANSLATORS"
+msgid "Your names"
+msgstr "Frank Weng (a.k.a. Franklin)"
+
+#: rc.cpp:2
+msgctxt "EMAIL OF TRANSLATORS"
+msgid "Your emails"
+msgstr "franklin at goodhorse dot idv dot tw"
+
+#. i18n: file: kdiff3_part.rc:4
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:5
+msgid "&KDiff3"
+msgstr "KDiff3(&K)"
+
+#. i18n: file: kdiff3_part.rc:13
+#. i18n: ectx: Menu (movement)
+#: rc.cpp:8
+msgid "Configure KDiff3"
+msgstr "設定 KDiff3"
+
+#. i18n: file: kdiff3_part.rc:16
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:11
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#. i18n: file: kdiff3_shell.rc:106
+#. i18n: ectx: ToolBar (mainToolBar)
+#: rc.cpp:38
+msgid "Main Toolbar"
+msgstr "主工具列"
diff --git a/po/zh_TW/kdiff3fileitemactionplugin.po b/po/zh_TW/kdiff3fileitemactionplugin.po
new file mode 100644 (file)
index 0000000..2b74f26
--- /dev/null
@@ -0,0 +1,95 @@
+# Copyright (C) YEAR This_file_is_part_of_KDE
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Franklin Weng <franklin@goodhorse.idv.tw>, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-05-12 11:15+0800\n"
+"Last-Translator: Franklin Weng <franklin@goodhorse.idv.tw>\n"
+"Language-Team: Chinese Traditional <zh-l10n@linux.org.tw>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.1\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: kdiff3fileitemaction.cpp:94
+msgid "KDiff3 ..."
+msgstr "KDiff3"
+
+#: kdiff3fileitemaction.cpp:125
+#, kde-format
+msgid "Compare with %1"
+msgstr "與 %1 比對"
+
+#: kdiff3fileitemaction.cpp:131
+#, kde-format
+msgid "Merge with %1"
+msgstr "與 %1 合併"
+
+#: kdiff3fileitemaction.cpp:137
+#, kde-format
+msgid "Save '%1' for later"
+msgstr "先儲存 %1"
+
+#: kdiff3fileitemaction.cpp:143
+msgid "3-way merge with base"
+msgstr "與基底做三方合併"
+
+#: kdiff3fileitemaction.cpp:150
+msgid "Compare with ..."
+msgstr "比較對象..."
+
+#: kdiff3fileitemaction.cpp:162
+msgid "Clear list"
+msgstr "清除清單"
+
+#: kdiff3fileitemaction.cpp:170
+msgid "Compare"
+msgstr "比較"
+
+#: kdiff3fileitemaction.cpp:176
+msgid "3 way comparison"
+msgstr "三方比對"
+
+#: kdiff3fileitemaction.cpp:180
+msgid "About KDiff3 menu plugin ..."
+msgstr "關於 KDiff3 選單外掛程式..."
+
+#: kdiff3fileitemaction.cpp:284
+msgid ""
+"KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+"KDiff3 檔案項目動作外掛程式:Copyright (C) 2011 Joachim Eibl\n"
+"KDiff3 首頁:http://kdiff3.sourceforge.net\n"
+"\n"
+
+#: kdiff3fileitemaction.cpp:286
+msgid ""
+"Using the contextmenu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else \"Save\" the first file for later. It "
+"will appear in the \"Compare With ...\" submenu. Then use \"Compare With\" "
+"on second file.\n"
+"For a 3-way merge first \"Save\" the base file, then the branch to merge and "
+"choose \"3-way merge with base\" on the other branch which will be used as "
+"destination.\n"
+"Same also applies to directory comparison and merge."
+msgstr ""
+"使用內文選單延伸:\n"
+"選擇「比較」簡單比較兩個選取的檔案。\n"
+"若是另一個檔案在別處,請先「儲存」第一個檔案稍後使用,然後它會出現「比較對"
+"象:」的子選單。再用它選擇第二個檔案。\n"
+"要做三方的合併,先儲存基底檔,然後是要合併的分支,然後在做為目標的分支中選擇"
+"「三方與基底合併」。\n"
+"這些延伸對目錄的比較與合併也有效。"
+
+#: kdiff3fileitemaction.cpp:294
+msgid "About KDiff3 File Item Action Plugin"
+msgstr "關於 KDiff3 檔案項目動作外掛程式"
diff --git a/po/zh_TW/kdiff3plugin.po b/po/zh_TW/kdiff3plugin.po
new file mode 100644 (file)
index 0000000..21f9b20
--- /dev/null
@@ -0,0 +1,96 @@
+# Copyright (C) YEAR This_file_is_part_of_KDE
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Frank Weng (a.k.a. Franklin) <franklin at goodhorse dot idv dot tw>, 2009.
+# Franklin Weng <franklin@goodhorse.idv.tw>, 2010, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: kdiff3plugin\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2011-08-02 05:07+0200\n"
+"PO-Revision-Date: 2011-05-12 11:15+0800\n"
+"Last-Translator: Franklin Weng <franklin@goodhorse.idv.tw>\n"
+"Language-Team: Chinese Traditional <zh-l10n@linux.org.tw>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.1\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: kdiff3plugin.cpp:107
+msgid "KDiff3"
+msgstr "KDiff3"
+
+#: kdiff3plugin.cpp:114
+#, kde-format
+msgid "Compare with %1"
+msgstr "與 %1 比較"
+
+#: kdiff3plugin.cpp:120
+#, kde-format
+msgid "Merge with %1"
+msgstr "與 %1 合併"
+
+#: kdiff3plugin.cpp:126
+#, kde-format
+msgid "Save '%1' for later"
+msgstr "將 %1 儲存起來備用"
+
+#: kdiff3plugin.cpp:132
+msgid "3-way merge with base"
+msgstr "三方與基底合併"
+
+#: kdiff3plugin.cpp:139
+msgid "Compare with ..."
+msgstr "比較對象:"
+
+#: kdiff3plugin.cpp:149
+msgid "Clear list"
+msgstr "清除清單"
+
+#: kdiff3plugin.cpp:157
+msgid "Compare"
+msgstr "比較"
+
+#: kdiff3plugin.cpp:163
+msgid "3 way comparison"
+msgstr "三方比較"
+
+#: kdiff3plugin.cpp:167
+msgid "About KDiff3 menu plugin ..."
+msgstr "關於 KDiff3 選單外掛程式"
+
+#: kdiff3plugin.cpp:269
+msgid ""
+"KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n"
+"KDiff3 homepage: http://kdiff3.sourceforge.net\n"
+"\n"
+msgstr ""
+"KDiff3 選單外掛程式:Copyright (C) 2008 Joachim Eibl\n"
+"KDiffe 首頁:http://kdiff3.sourceforge.net\n"
+"\n"
+
+#: kdiff3plugin.cpp:271
+msgid ""
+"Using the context menu extension:\n"
+"For simple comparison of two selected files choose \"Compare\".\n"
+"If the other file is somewhere else, \"Save\" the first file for later, and "
+"it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With"
+"\" on the second file.\n"
+"For a 3-way merge first, \"Save\" the base file, then the branch to merge, "
+"and then \"3-way merge with base\" on the other branch which will be used as "
+"the destination.\n"
+"The same also applies to directory comparison and merge."
+msgstr ""
+"使用內文選單延伸:\n"
+"選擇「比較」簡單比較兩個選取的檔案。\n"
+"若是另一個檔案在別處,請先「儲存」第一個檔案稍後使用,然後它會出現「比較對"
+"象:」的子選單。再用它選擇第二個檔案。\n"
+"要做三方的合併,先儲存基底檔,然後是要合併的分支,然後在做為目標的分支中選擇"
+"「三方與基底合併」。\n"
+"這些延伸對目錄的比較與合併也有效。"
+
+#: kdiff3plugin.cpp:279
+msgid "About KDiff3 Menu Plugin"
+msgstr "關於 KDiff3 選單外掛程式"
diff --git a/src-QT4/CMakeLists.txt b/src-QT4/CMakeLists.txt
new file mode 100644 (file)
index 0000000..8c7569d
--- /dev/null
@@ -0,0 +1,58 @@
+
+
+#add_definitions(-DQT3_SUPPORT -DQT3_SUPPORT_WARNINGS)
+
+
+########### kdiff3 KPart ###############
+
+set(kdiff3part_PART_SRCS 
+   kdiff3_part.cpp 
+   kdiff3.cpp 
+   directorymergewindow.cpp 
+   merger.cpp 
+   pdiff.cpp 
+   difftextwindow.cpp 
+   diff.cpp 
+   optiondialog.cpp 
+   mergeresultwindow.cpp 
+   fileaccess.cpp 
+   gnudiff_analyze.cpp 
+   gnudiff_io.cpp 
+   gnudiff_xmalloc.cpp 
+   common.cpp 
+   smalldialogs.cpp 
+   progress.cpp )
+
+#kde4_add_plugin(kdiff3part WITH_PREFIX ${kdiff3part_PART_SRCS})
+
+#set_target_properties(kdiff3part PROPERTIES DEFINE_SYMBOL KDIFF3_PART)
+
+#target_link_libraries(kdiff3part  ${KDE4_KPARTS_LIBS} ${QT_QT3SUPPORT_LIBRARY})
+
+#install(TARGETS kdiff3part DESTINATION ${PLUGIN_INSTALL_DIR} )
+
+########### kdiff3 executable ###############
+
+set(kdiff3_SRCS 
+   main.cpp 
+   kdiff3_shell.cpp
+   ${kdiff3part_PART_SRCS}
+    )
+
+kde4_add_executable(kdiff3 ${kdiff3_SRCS})
+
+target_link_libraries(kdiff3  ${KDE4_KPARTS_LIBS} ${QT_QT3SUPPORT_LIBRARY} )
+
+install(TARGETS kdiff3 ${INSTALL_TARGETS_DEFAULT_ARGS})
+
+
+########### install files ###############
+
+install( FILES  kdiff3part.desktop DESTINATION ${SERVICES_INSTALL_DIR} )
+install( FILES  kdiff3_part.rc DESTINATION ${DATA_INSTALL_DIR}/kdiff3part )
+install( FILES  kdiff3_shell.rc DESTINATION ${DATA_INSTALL_DIR}/kdiff3 )
+install( PROGRAMS  kdiff3.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} )
+
+kde4_install_icons( ${ICON_INSTALL_DIR} )
+
+
diff --git a/src-QT4/ccInstHelper.cpp b/src-QT4/ccInstHelper.cpp
new file mode 100644 (file)
index 0000000..179b4f5
--- /dev/null
@@ -0,0 +1,332 @@
+// uninstallHelper.cpp : Defines the entry point for the console application.
+//
+#include <string>
+#include <vector>
+#include <list>
+#include <windows.h>
+#include <string.h>
+#include <io.h>
+
+//#define __stdcall
+
+#ifndef KREPLACEMENTS_H
+// For compilation download the NSIS source package and modify the following
+// line to point to the exdll.h-file
+#include "C:/Programme/NSIS/Contrib/ExDll/exdll.h"
+#endif
+
+struct ReplacementItem
+{ const char* fileType; const char* operationType; };
+
+ReplacementItem g_replacementTable[] = {
+   {"text_file_delta",   "xcompare"},
+   {"text_file_delta",   "xmerge"},
+   {"whole_copy",        "xcompare"},
+   {"whole_copy",        "xmerge"},
+   {"z_text_file_delta", "xcompare"},
+   {"z_text_file_delta", "xmerge"},
+   {"z_whole_copy",      "xcompare"},
+   {"z_whole_copy",      "xmerge"},
+   {"_xml",              "xcompare"},
+   {"_xml",              "xmerge"},
+   {"_xml2",             "xcompare"},
+   {"_xml2",             "xmerge"},
+   {"_rftdef",           "xcompare"},
+   {"_rftmap",           "xcompare"},
+   {"_rftvp",            "xcompare"},
+   {"_xtools",           "xcompare"},
+   {0,0}
+};
+
+struct LineItem
+{
+   std::string fileType;
+   std::string opType;
+   std::string command;
+   std::string fileOpPart;
+};
+
+// Return true if successful, else false
+bool readAndParseMapFile( const std::string& filename, std::list<LineItem>& lineItemList )
+{
+   // Read file
+   FILE* pFile = fopen( filename.c_str(), "r" );
+   if (pFile)
+   {
+      fseek(pFile,0,SEEK_END);
+      int size = ftell(pFile);
+      fseek(pFile,0,SEEK_SET);
+      std::vector<char> buf( size );
+      fread( &buf[0], 1, size, pFile );
+      fclose( pFile );
+
+      // Replace strings
+      int lineStartPos=0;
+      int wordInLine = 0;
+      LineItem lineItem;
+      for( int i=0; i<size; )
+      {
+         if( buf[i] == '\n' || buf[i] == '\r' )
+         {
+            ++i;
+            wordInLine = 0;
+            lineStartPos = i;
+            continue;
+         }
+         if( buf[i] == ' ' || buf[i] == '\t' )
+         {
+            ++i;
+            continue;
+         }
+         else
+         {
+            int wordStartPos = i;
+            if (wordInLine<2)
+            {
+               while ( i<size && !( buf[i] == ' ' || buf[i] == '\t' ) )
+                  ++i;
+
+               std::string word( &buf[wordStartPos], i-wordStartPos );
+               if (wordInLine==0)
+                  lineItem.fileType = word;
+               else
+                  lineItem.opType = word;
+               ++wordInLine;
+            }
+            else
+            {
+               lineItem.fileOpPart = std::string( &buf[lineStartPos], i-lineStartPos );
+               while ( i<size && !( buf[i] == '\n' || buf[i] == '\r' ) )
+                  ++i;
+
+               std::string word( &buf[wordStartPos], i-wordStartPos );
+               lineItem.command = word;
+               lineItemList.push_back( lineItem );
+            }
+         }
+      }
+   }
+   else
+   {
+      return false;
+   }
+   return true;
+}
+
+bool writeMapFile( const std::string& filename, const std::list<LineItem>& lineItemList )
+{
+   FILE* pFile = fopen( filename.c_str(), "w" );
+   if (pFile)
+   {
+      std::list<LineItem>::const_iterator i = lineItemList.begin();
+      for( ; i!=lineItemList.end(); ++i )
+      {
+         const LineItem& li = *i;
+         fprintf( pFile, "%s%s\n", li.fileOpPart.c_str(), li.command.c_str() );
+      }
+      fclose( pFile );
+   }
+   else
+   {
+      return false;
+   }
+   return true;
+}
+
+std::string toUpper( const std::string& s )
+{
+   std::string s2 = s;
+
+   for( unsigned int i=0; i<s.length(); ++i )
+   {
+      s2[i] = toupper( s2[i] );
+   }
+   return s2;
+}
+
+int integrateWithClearCase( const char* subCommand, const char* kdiff3CommandPath )
+{
+   std::string installCommand = subCommand; // "install" or "uninstall" or "existsClearCase"
+   std::string kdiff3Command  = kdiff3CommandPath;
+
+   /*
+   std::wstring installCommand = subCommand; // "install" or "uninstall"
+   std::wstring wKDiff3Command  = kdiff3CommandPath;
+   std::string kdiff3Command;
+   kdiff3Command.reserve( wKDiff3Command.length()+1 );
+   kdiff3Command.resize( wKDiff3Command.length() );
+   BOOL bUsedDefaultChar = FALSE;
+   int successLen = WideCharToMultiByte(  CP_ACP, 0, 
+      wKDiff3Command.c_str(), int(wKDiff3Command.length()),
+      &kdiff3Command[0], int(kdiff3Command.length()), 0, &bUsedDefaultChar );
+
+   if ( successLen != kdiff3Command.length() || bUsedDefaultChar )
+   {
+      std::cerr << "KDiff3 command contains characters that don't map to ansi code page.\n"
+          "Aborting clearcase installation.\n"
+          "Try to install KDiff3 in another path that doesn't require special characters.\n";
+      return -1;
+   }
+   */
+
+   // Try to locate cleartool, the clearcase tool in the path
+   char buffer[1000];
+   char* pLastPart = 0;
+   int len = SearchPathA(0, "cleartool.exe", 0, sizeof(buffer)/sizeof(buffer[0]), 
+                         buffer, &pLastPart );
+   if ( len>0 && len+1<int(sizeof(buffer)/sizeof(buffer[0])) && pLastPart )
+   {
+      pLastPart[-1] = 0;
+      pLastPart = strrchr( buffer, '\\' ); // cd up (because cleartool.exe is in bin subdir)
+      if ( pLastPart )
+         pLastPart[1]=0;
+
+      std::string path( buffer );
+      path += "lib\\mgrs\\map";
+      std::string bakName = path + ".preKDiff3Install";
+      
+      if ( installCommand == "existsClearCase") 
+      {
+         return 1;
+      }
+      else if ( installCommand == "install") 
+      {
+         std::list<LineItem> lineItemList;
+         bool bSuccess = readAndParseMapFile( path, lineItemList );
+         if ( !bSuccess )
+         {
+            fprintf(stderr, "Error reading original map file.\n");
+            return -1;
+         }
+
+         // Create backup
+         if ( access( bakName.c_str(), 0 )!=0 ) // Create backup only if not exists yet
+         {
+            if ( rename( path.c_str(), bakName.c_str() ) )
+            {
+               fprintf(stderr, "Error renaming original map file.\n");
+               return -1;
+            }
+         }
+
+         std::list<LineItem>::iterator i = lineItemList.begin();
+         for( ; i!=lineItemList.end(); ++i )
+         {
+            LineItem& li = *i;
+            for (int j=0;;++j)
+            {
+               ReplacementItem& ri = g_replacementTable[j];
+               if ( ri.fileType==0 || ri.operationType==0 )
+                  break;
+               if ( li.fileType == ri.fileType && li.opType == ri.operationType )
+               {
+                  li.command = kdiff3Command.c_str();
+                  break;
+               }
+            }
+         }
+
+         bSuccess = writeMapFile( path, lineItemList );
+         if ( !bSuccess )
+         {
+            if ( rename( bakName.c_str(), path.c_str() ) )
+               fprintf(stderr, "Error writing new map file, restoring old file also failed.\n");
+            else
+               fprintf(stderr, "Error writing new map file, old file restored.\n");
+
+            return -1;
+         }
+      }
+      else if ( installCommand == "uninstall" )
+      {
+         std::list<LineItem> lineItemList;
+         bool bSuccess = readAndParseMapFile( path, lineItemList );
+         if ( !bSuccess )
+         {
+            fprintf(stderr, "Error reading original map file\n.");
+            return -1;
+         }
+
+         std::list<LineItem> lineItemListBak;
+         bSuccess = readAndParseMapFile( bakName, lineItemListBak );
+         if ( !bSuccess )
+         {
+            fprintf(stderr, "Error reading backup map file.\n");
+            return -1;
+         }
+
+         std::list<LineItem>::iterator i = lineItemList.begin();
+         for( ; i!=lineItemList.end(); ++i )
+         {
+            LineItem& li = *i;
+            if ((int)toUpper(li.command).find("KDIFF3")>=0)
+            {
+               std::list<LineItem>::const_iterator j = lineItemListBak.begin();
+               for (;j!=lineItemListBak.end();++j)
+               {
+                  const LineItem& bi = *j;  // backup iterator
+                  if ( li.fileType == bi.fileType && li.opType == bi.opType )
+                  {
+                     li.command = bi.command;
+                     break;
+                  }
+               }
+            }
+         }
+
+         bSuccess = writeMapFile( path, lineItemList );
+         if ( !bSuccess )
+         {
+            fprintf(stderr, "Error writing map file.");
+            return -1;
+         }
+      }
+   }
+   return 0;
+}
+
+#ifndef KREPLACEMENTS_H
+
+extern "C"
+void __declspec(dllexport) nsisPlugin(HWND hwndParent, int string_size, 
+                                      char *variables, stack_t **stacktop,
+                                      extra_parameters *extra)
+{
+   //g_hwndParent=hwndParent;
+
+   EXDLL_INIT();
+   {
+      std::string param1( g_stringsize, ' ' );
+      int retVal = popstring( &param1[0] );
+      if ( retVal == 0 )
+      {
+         std::string param2( g_stringsize, ' ' );
+         retVal = popstring( &param2[0] );
+         if ( retVal == 0 )
+            install( param1.c_str(), param2.c_str() );
+         return;
+      }
+      fprintf(stderr, "Not enough parameters.\n");
+   }
+}
+
+#endif
+/*
+int _tmain(int argc, _TCHAR* argv[])
+{
+   if ( argc<3 ) 
+   {
+      std::cout << "This program is needed to install/uninstall KDiff3 for clearcase.\n"
+                   "It tries to patch the map file (clearcase-subdir\\lib\\mgrs\\map)\n"
+                   "Usage 1: ccInstHelper install pathToKdiff3.exe\n"
+                   "Usage 2: ccInstHelper uninstall pathToKdiff3.exe\n"
+                   "Backups of the original map files are created in the dir of the map file.\n";
+   }
+   else
+   {
+      return install( argv[1], argv[2] );
+   }
+   
+   return 0;
+}
+*/
diff --git a/src-QT4/common.cpp b/src-QT4/common.cpp
new file mode 100644 (file)
index 0000000..4f1e980
--- /dev/null
@@ -0,0 +1,349 @@
+/***************************************************************************
+ *   Copyright (C) 2004-2007 by Joachim Eibl                               *
+ *   joachim.eibl at gmx.de                                                   *
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ *   This program is distributed in the hope that it will be useful,       *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
+ *   GNU General Public License for more details.                          *
+ *                                                                         *
+ *   You should have received a copy of the GNU General Public License     *
+ *   along with this program; if not, write to the                         *
+ *   Free Software Foundation, Inc.,                                       *
+ *   51 Franklin Steet, Fifth Floor, Boston, MA 02110-1301, USA.           *
+ ***************************************************************************/
+
+#include "common.h"
+#include <map>
+#include <qfont.h>
+#include <QColor>
+#include <QSize>
+#include <qpoint.h>
+#include <QStringList>
+#include <QTextStream>
+
+ValueMap::ValueMap()
+{
+}
+
+ValueMap::~ValueMap()
+{
+}
+
+void ValueMap::save( QTextStream& ts )
+{
+   std::map<QString,QString>::iterator i;
+   for( i=m_map.begin(); i!=m_map.end(); ++i)
+   {
+      QString key = i->first;
+      QString val = i->second;
+      ts << key << "=" << val << "\n";
+   }
+}
+
+QString ValueMap::getAsString()
+{
+   QString result;
+   std::map<QString,QString>::iterator i;
+   for( i=m_map.begin(); i!=m_map.end(); ++i)
+   {
+      QString key = i->first;
+      QString val = i->second;
+      result += key + "=" + val + "\n";
+   }
+   return result;
+}
+
+void ValueMap::load( QTextStream& ts )
+{
+   while ( !ts.atEnd() )
+   {                                 // until end of file...      
+      QString s = ts.readLine();         // line of text excluding '\n'
+      int pos = s.indexOf('=');
+      if( pos > 0 )                     // seems not to have a tag
+      {
+         QString key = s.left(pos);
+         QString val = s.mid(pos+1);
+         m_map[key] = val;
+      }
+   }
+}
+/*
+void ValueMap::load( const QString& s )
+{
+   int pos=0;
+   while ( pos<(int)s.length() )
+   {                                 // until end of file...
+      int pos2 = s.find('=', pos);
+      int pos3 = s.find('\n', pos2 );
+      if (pos3<0)
+         pos3=s.length();
+      if( pos2 > 0 )                     // seems not to have a tag
+      {
+         QString key = s.mid(pos, pos2-pos);
+         QString val = s.mid(pos2+1, pos3-pos2-1);
+         m_map[key] = val;
+      }
+      pos = pos3;
+   }
+}
+*/
+
+// safeStringJoin and safeStringSplit allow to convert a stringlist into a string and back
+// safely, even if the individual strings in the list contain the separator character.
+QString safeStringJoin(const QStringList& sl, char sepChar, char metaChar )
+{
+   // Join the strings in the list, using the separator ','
+   // If a string contains the separator character, it will be replaced with "\,".
+   // Any occurances of "\" (one backslash) will be replaced with "\\" (2 backslashes)
+   
+   assert(sepChar!=metaChar);
+   
+   QString sep;
+   sep += sepChar;
+   QString meta;
+   meta += metaChar;   
+   
+   QString safeString;
+   
+   QStringList::const_iterator i;
+   for (i=sl.begin(); i!=sl.end(); ++i)
+   {
+      QString s = *i;
+      s.replace(meta, meta+meta);   //  "\" -> "\\"
+      s.replace(sep, meta+sep);     //  "," -> "\,"
+      if ( i==sl.begin() )
+         safeString = s;
+      else
+         safeString += sep + s;
+   }
+   return safeString;
+}
+
+// Split a string that was joined with safeStringJoin
+QStringList safeStringSplit(const QString& s, char sepChar, char metaChar )
+{
+   assert(sepChar!=metaChar);
+   QStringList sl;
+   // Miniparser
+   int i=0;
+   int len=s.length();
+   QString b;
+   for(i=0;i<len;++i)
+   {
+      if      ( i+1<len && s[i]==metaChar && s[i+1]==metaChar ){ b+=metaChar; ++i; }
+      else if ( i+1<len && s[i]==metaChar && s[i+1]==sepChar ){ b+=sepChar; ++i; }
+      else if ( s[i]==sepChar )  // real separator
+      {
+         sl.push_back(b);
+         b="";
+      }
+      else { b+=s[i]; }
+   }
+   if ( !b.isEmpty() )
+      sl.push_back(b);
+
+   return sl;
+}
+
+
+
+static QString numStr(int n)
+{
+   QString s;
+   s.setNum( n );
+   return s;
+}
+
+static QString subSection( const QString& s, int idx, char sep )
+{
+   int pos=0;
+   while( idx>0 )
+   {
+      pos = s.indexOf( sep, pos );
+      --idx;
+      if (pos<0) break;
+      ++pos;
+   }
+   if ( pos>=0 )
+   {
+      int pos2 = s.indexOf( sep, pos );
+      if ( pos2>0 )
+         return s.mid(pos, pos2-pos);
+      else
+         return s.mid(pos);
+   }
+
+   return "";
+}
+
+static int num( QString& s, int idx )
+{
+   return subSection( s, idx, ',').toInt();
+}
+
+void ValueMap::writeEntry(const QString& k, const QFont& v )
+{
+   m_map[k] = v.family() + "," + QString::number(v.pointSize()) + "," + (v.bold() ? "bold" : "normal");
+}
+
+void ValueMap::writeEntry(const QString& k, const QColor& v )
+{
+   m_map[k] = numStr(v.red()) + "," + numStr(v.green()) + "," + numStr(v.blue());
+}
+
+void ValueMap::writeEntry(const QString& k, const QSize& v )
+{
+   m_map[k] = numStr(v.width()) + "," + numStr(v.height());
+}
+
+void ValueMap::writeEntry(const QString& k, const QPoint& v )
+{
+   m_map[k] = numStr(v.x()) + "," + numStr(v.y());
+}
+
+void ValueMap::writeEntry(const QString& k, int v )
+{
+   m_map[k] = numStr(v);
+}
+
+void ValueMap::writeEntry(const QString& k, bool v )
+{
+   m_map[k] = numStr(v);
+}
+
+void ValueMap::writeEntry(const QString& k, const QString& v )
+{
+   m_map[k] = v;
+}
+
+void ValueMap::writeEntry(const QString& k, const char* v )
+{
+   m_map[k] = v;
+}
+
+void ValueMap::writeEntry(const QString& k, const QStringList& v, char separator )
+{
+   m_map[k] = safeStringJoin(v, separator);
+}
+
+
+QFont ValueMap::readFontEntry(const QString& k, const QFont* defaultVal )
+{
+   QFont f = *defaultVal;
+   std::map<QString,QString>::iterator i = m_map.find( k );
+   if ( i!=m_map.end() )
+   {
+      f.setFamily( subSection( i->second, 0, ',' ) );
+      f.setPointSize( subSection( i->second, 1, ',' ).toInt() );
+      f.setBold( subSection( i->second, 2, ',' )=="bold" );
+   }
+   return f;
+}
+
+QColor ValueMap::readColorEntry(const QString& k, const QColor* defaultVal )
+{
+   QColor c= *defaultVal;
+   std::map<QString,QString>::iterator i = m_map.find( k );
+   if ( i!=m_map.end() )
+   {
+      QString s = i->second;
+      c = QColor( num(s,0),num(s,1),num(s,2) );
+   }
+
+   return c;
+}
+
+QSize ValueMap::readSizeEntry(const QString& k, const QSize* defaultVal )
+{
+   QSize size = defaultVal ? *defaultVal : QSize(600,400);
+   std::map<QString,QString>::iterator i = m_map.find( k );
+   if ( i!=m_map.end() )
+   {
+
+      QString s = i->second;
+      size = QSize( num(s,0),num(s,1) );
+   }
+
+   return size;
+}
+
+QPoint ValueMap::readPointEntry(const QString& k, const QPoint* defaultVal)
+{
+   QPoint point = defaultVal ? *defaultVal : QPoint(0,0);
+   std::map<QString,QString>::iterator i = m_map.find( k );
+   if ( i!=m_map.end() )
+   {
+      QString s = i->second;
+      point = QPoint( num(s,0),num(s,1) );
+   }
+
+   return point;
+}
+
+bool ValueMap::readBoolEntry(const QString& k, bool bDefault )
+{
+   bool b = bDefault;
+   std::map<QString,QString>::iterator i = m_map.find( k );
+   if ( i!=m_map.end() )
+   {
+      QString s = i->second;
+      b = (bool)num(s,0);
+   }
+
+   return b;
+}
+
+int ValueMap::readNumEntry(const QString& k, int iDefault )
+{
+   int ival = iDefault;
+   std::map<QString,QString>::iterator i = m_map.find( k );
+   if ( i!=m_map.end() )
+   {
+      QString s = i->second;
+      ival = num(s,0);
+   }
+
+   return ival;
+}
+
+QString ValueMap::readStringEntry(const QString& k, const QString& sDefault )
+{
+   QString sval = sDefault;
+   std::map<QString,QString>::iterator i = m_map.find( k );
+   if ( i!=m_map.end() )
+   {
+      sval = i->second;
+   }
+
+   return sval;
+}
+
+QStringList ValueMap::readListEntry(const QString& k, const QStringList& defaultVal, char separator )
+{
+   QStringList strList;
+
+   std::map<QString,QString>::iterator i = m_map.find( k );
+   if ( i!=m_map.end() )
+   {
+      strList = safeStringSplit( i->second, separator );
+      return strList;
+   }
+   else
+      return defaultVal;
+}
+
+QString     ValueMap::readEntry (const QString& s, const QString& defaultVal ) { return readStringEntry(s, defaultVal); }
+QString     ValueMap::readEntry (const QString& s, const char* defaultVal ) { return readStringEntry(s, QString::fromLatin1(defaultVal) ); }
+QFont       ValueMap::readEntry (const QString& s, const QFont& defaultVal ){ return readFontEntry(s,&defaultVal); }
+QColor      ValueMap::readEntry(const QString& s, const QColor defaultVal ){ return readColorEntry(s,&defaultVal); }
+QSize       ValueMap::readEntry (const QString& s, const QSize defaultVal ){ return readSizeEntry(s,&defaultVal); }
+QPoint      ValueMap::readEntry(const QString& s, const QPoint defaultVal ){ return readPointEntry(s,&defaultVal); }
+bool        ValueMap::readEntry (const QString& s, bool bDefault ){ return readBoolEntry(s,bDefault); }
+int         ValueMap::readEntry  (const QString& s, int iDefault ){ return readNumEntry(s,iDefault); }
+QStringList ValueMap::readEntry (const QString& s, const QStringList& defaultVal, char separator ){ return readListEntry(s,defaultVal,separator); }
diff --git a/src-QT4/common.h b/src-QT4/common.h
new file mode 100644 (file)
index 0000000..c0c394c
--- /dev/null
@@ -0,0 +1,134 @@
+/***************************************************************************
+                          common.h  -  Things that are needed often
+                             -------------------
+    begin                : Mon Mar 18 2002
+    copyright            : (C) 2002-2007 by Joachim Eibl
+    email                : joachim.eibl at gmx.de
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#ifndef _COMMON_H
+#define _COMMON_H
+
+#include <assert.h>
+#include <QAtomicInt>
+
+
+template< class T >
+T min2( T x, T y )
+{
+   return x<y ? x : y;
+}
+template< class T >
+T max2( T x, T y )
+{
+   return x>y ? x : y;
+}
+
+typedef unsigned char UINT8;
+typedef unsigned short UINT16;
+typedef unsigned int UINT32;
+
+
+template <class T>
+T min3( T d1, T d2, T d3 )
+{
+   if ( d1 < d2  &&  d1 < d3 ) return d1;
+   if ( d2 < d3 ) return d2;
+   return d3;
+}
+
+template <class T>
+T max3( T d1, T d2, T d3 )
+{
+
+   if ( d1 > d2  &&  d1 > d3 ) return d1;
+
+
+   if ( d2 > d3 ) return d2;
+   return d3;
+
+}
+
+template <class T>
+T minMaxLimiter( T d, T minimum, T maximum )
+{
+   assert(minimum<=maximum);
+   if ( d < minimum ) return minimum;
+   if ( d > maximum ) return maximum;
+   return d;
+}
+
+inline int getAtomic(QAtomicInt& ai)
+{
+#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0))
+   return ai.load();
+#else
+   return ai;
+#endif
+}
+
+#include <map>
+#include <QString>
+class QFont;
+class QColor;
+class QSize;
+class QPoint;
+class QStringList;
+class QTextStream;
+
+class ValueMap
+{
+private:
+   std::map<QString,QString> m_map;
+public:
+   ValueMap();
+   virtual ~ValueMap();
+
+   void save( QTextStream& ts );
+   void load( QTextStream& ts );
+   QString getAsString();
+   // void load( const QString& s );
+
+   virtual void writeEntry(const QString&, const QFont& );
+   virtual void writeEntry(const QString&, const QColor& );
+   virtual void writeEntry(const QString&, const QSize& );
+   virtual void writeEntry(const QString&, const QPoint& );
+   virtual void writeEntry(const QString&, int );
+   virtual void writeEntry(const QString&, bool );
+   virtual void writeEntry(const QString&, const QStringList&, char separator='|' );
+   virtual void writeEntry(const QString&, const QString& );
+   virtual void writeEntry(const QString&, const char* );
+
+   virtual QFont       readFontEntry (const QString&, const QFont* defaultVal );
+   virtual QColor      readColorEntry(const QString&, const QColor* defaultVal );
+   virtual QSize       readSizeEntry (const QString&, const QSize* defaultVal );
+   virtual QPoint      readPointEntry(const QString&, const QPoint* defaultVal );
+   virtual bool        readBoolEntry (const QString&, bool bDefault );
+   virtual int         readNumEntry  (const QString&, int iDefault );
+   virtual QStringList readListEntry (const QString&, const QStringList& defaultVal, char separator='|' );
+   virtual QString     readStringEntry(const QString&, const QString& );
+
+   QString     readEntry (const QString& s, const QString& defaultVal );
+   QString     readEntry (const QString& s, const char* defaultVal );
+   QFont       readEntry (const QString& s, const QFont& defaultVal );
+   QColor      readEntry(const QString& s, const QColor defaultVal );
+   QSize       readEntry (const QString& s, const QSize defaultVal );
+   QPoint      readEntry(const QString& s, const QPoint defaultVal );
+   bool        readEntry (const QString& s, bool bDefault );
+   int         readEntry  (const QString& s, int iDefault );
+   QStringList readEntry (const QString& s, const QStringList& defaultVal, char separator='|' );
+};
+
+QStringList safeStringSplit(const QString& s, char sepChar=',', char metaChar='\\' );
+QString safeStringJoin(const QStringList& sl, char sepChar=',', char metaChar='\\' );
+
+#endif
diff --git a/src-QT4/diff.cpp b/src-QT4/diff.cpp
new file mode 100644 (file)
index 0000000..8653be5
--- /dev/null
@@ -0,0 +1,2335 @@
+/***************************************************************************
+                          diff.cpp  -  description
+                             -------------------
+    begin                : Mon Mar 18 2002
+    copyright            : (C) 2002-2007 by Joachim Eibl
+    email                : joachim.eibl at gmx.de
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+#include "stable.h"
+
+#include <cstdlib>
+
+#include "diff.h"
+#include "fileaccess.h"
+#include "gnudiff_diff.h"
+#include "options.h"
+#include "progress.h"
+
+#include <kmessagebox.h>
+#include <klocale.h>
+
+#include <QFileInfo>
+#include <QDir>
+#include <QTextCodec>
+#include <QTextStream>
+#include <QProcess>
+
+#include <map>
+#include <assert.h>
+#include <ctype.h>
+//using namespace std;
+
+
+int LineData::width(int tabSize) const
+{
+   int w=0;
+   int j=0;
+   for( int i=0; i<size; ++i )
+   {
+      if ( pLine[i]=='\t' )
+      {
+         for(j %= tabSize; j<tabSize; ++j)
+            ++w;
+         j=0;
+      }
+      else
+      {
+         ++w;
+         ++j;
+      }
+   }
+   return w;
+}
+
+
+// The bStrict flag is true during the test where a nonmatching area ends.
+// Then the equal()-function requires that the match has more than 2 nonwhite characters.
+// This is to avoid matches on trivial lines (e.g. with white space only).
+// This choice is good for C/C++.
+bool equal( const LineData& l1, const LineData& l2, bool bStrict )
+{
+   if ( l1.pLine==0 || l2.pLine==0) return false;
+
+   if ( bStrict && g_bIgnoreTrivialMatches )//&& (l1.occurances>=5 || l2.occurances>=5) )
+      return false;
+
+   // Ignore white space diff
+   const QChar* p1 = l1.pLine;
+   const QChar* p1End = p1 + l1.size;
+
+   const QChar* p2 = l2.pLine;
+   const QChar* p2End = p2 + l2.size;
+
+   if ( g_bIgnoreWhiteSpace )
+   {
+      int nonWhite = 0;
+      for(;;)
+      {
+         while( isWhite( *p1 ) && p1!=p1End ) ++p1;
+         while( isWhite( *p2 ) && p2!=p2End ) ++p2;
+
+         if ( p1 == p1End  &&  p2 == p2End )
+         {
+            if ( bStrict && g_bIgnoreTrivialMatches )
+            {  // Then equality is not enough
+               return nonWhite>2;
+            }
+            else  // equality is enough
+               return true;
+         }
+         else if ( p1 == p1End || p2 == p2End )
+            return false;
+
+         if( *p1 != *p2 )
+            return false;
+         ++p1;
+         ++p2;
+         ++nonWhite;
+      }
+   }
+
+   else
+   {
+      if ( l1.size==l2.size && memcmp(p1, p2, l1.size)==0)
+         return true;
+      else
+         return false;
+   }
+}
+
+
+static bool isLineOrBufEnd( const QChar* p, int i, int size )
+{
+   return 
+      i>=size        // End of file
+      || isEndOfLine(p[i])  // Normal end of line
+
+      // No support for Mac-end of line yet, because incompatible with GNU-diff-routines.      
+      // || ( p[i]=='\r' && (i>=size-1 || p[i+1]!='\n') 
+      //                 && (i==0        || p[i-1]!='\n') )  // Special case: '\r' without '\n'
+      ;
+}
+
+
+/* Features of class SourceData:
+- Read a file (from the given URL) or accept data via a string.
+- Allocate and free buffers as necessary.
+- Run a preprocessor, when specified.
+- Run the line-matching preprocessor, when specified.
+- Run other preprocessing steps: Uppercase, ignore comments,
+                                 remove carriage return, ignore numbers.
+
+Order of operation:
+ 1. If data was given via a string then save it to a temp file. (see setData())
+ 2. If the specified file is nonlocal (URL) copy it to a temp file.
+ 3. If a preprocessor was specified, run the input file through it.
+ 4. Read the output of the preprocessor.
+ 5. If Uppercase was specified: Turn the read data to uppercase.
+ 6. Write the result to a temp file.
+ 7. If a line-matching preprocessor was specified, run the temp file through it.
+ 8. Read the output of the line-matching preprocessor.
+ 9. If ignore numbers was specified, strip the LMPP-output of all numbers.
+10. If ignore comments was specified, strip the LMPP-output of comments.
+
+Optimizations: Skip unneeded steps.
+*/
+
+SourceData::SourceData()
+{
+   m_pOptions = 0;
+   reset();
+}
+
+SourceData::~SourceData()
+{
+   reset();
+}
+
+void SourceData::reset()
+{
+   m_pEncoding = 0;   
+   m_fileAccess = FileAccess();
+   m_normalData.reset();
+   m_lmppData.reset();
+   if ( !m_tempInputFileName.isEmpty() )
+   {
+      FileAccess::removeFile( m_tempInputFileName );
+      m_tempInputFileName = "";
+   }
+}
+
+void SourceData::setFilename( const QString& filename )
+{
+   if (filename.isEmpty())
+   {
+      reset();
+   }
+   else
+   {
+      FileAccess fa( filename );
+      setFileAccess( fa );
+   }
+}
+
+bool SourceData::isEmpty() 
+{ 
+   return getFilename().isEmpty(); 
+}
+
+bool SourceData::hasData() 
+{ 
+   return m_normalData.m_pBuf != 0;
+}
+
+bool SourceData::isValid()
+{
+   return isEmpty() || hasData();
+}
+
+void SourceData::setOptions( Options* pOptions )
+{
+   m_pOptions = pOptions;
+}
+
+QString SourceData::getFilename()
+{
+   return m_fileAccess.absoluteFilePath();
+}
+
+QString SourceData::getAliasName()
+{
+   return m_aliasName.isEmpty() ? m_fileAccess.prettyAbsPath() : m_aliasName;
+}
+
+void SourceData::setAliasName( const QString& name )
+{
+   m_aliasName = name;
+}
+
+void SourceData::setFileAccess( const FileAccess& fileAccess )
+{
+   m_fileAccess = fileAccess;
+   m_aliasName = QString();
+   if ( !m_tempInputFileName.isEmpty() )
+   {
+      FileAccess::removeFile( m_tempInputFileName );
+      m_tempInputFileName = "";
+   }
+}
+void SourceData::setEncoding(QTextCodec* pEncoding)
+{
+    m_pEncoding = pEncoding;
+}
+
+QStringList SourceData::setData( const QString& data )
+{
+   QStringList errors;
+
+   // Create a temp file for preprocessing:
+   if ( m_tempInputFileName.isEmpty() )
+   {
+      m_tempInputFileName = FileAccess::tempFileName();
+   }
+
+   FileAccess f( m_tempInputFileName );
+   QByteArray ba = QTextCodec::codecForName("UTF-8")->fromUnicode(data);
+   bool bSuccess = f.writeFile( ba.constData(), ba.length() );
+   if ( !bSuccess )
+   {
+      errors.append( i18n("Writing clipboard data to temp file failed.") );
+   }
+   else
+   {
+      m_aliasName = i18n("From Clipboard");
+      m_fileAccess = FileAccess("");  // Effect: m_fileAccess.isValid() is false
+   }
+
+   return errors;
+}
+
+const LineData* SourceData::getLineDataForDiff() const
+{
+   if ( m_lmppData.m_pBuf==0 )
+      return m_normalData.m_v.size()>0 ? &m_normalData.m_v[0] : 0;
+   else
+      return m_lmppData.m_v.size()>0   ? &m_lmppData.m_v[0]   : 0;
+}
+
+const LineData* SourceData::getLineDataForDisplay() const
+{
+   return m_normalData.m_v.size()>0 ? &m_normalData.m_v[0] : 0;
+}
+
+int  SourceData::getSizeLines() const
+{
+   return m_normalData.m_vSize;
+}
+
+int SourceData::getSizeBytes() const
+{
+   return m_normalData.m_size;
+}
+
+const char* SourceData::getBuf() const
+{
+   return m_normalData.m_pBuf;
+}
+
+const QString& SourceData::getText() const
+{
+   return m_normalData.m_unicodeBuf;
+}
+
+bool SourceData::isText()
+{
+   return m_normalData.m_bIsText;
+}
+
+bool SourceData::isIncompleteConversion()
+{
+   return m_normalData.m_bIncompleteConversion;
+}
+
+bool SourceData::isFromBuffer()
+{
+   return !m_fileAccess.isValid();
+}
+
+
+bool SourceData::isBinaryEqualWith( const SourceData& other ) const
+{
+   return m_fileAccess.exists() && other.m_fileAccess.exists() &&
+          getSizeBytes() == other.getSizeBytes() && 
+          ( getSizeBytes()==0 || memcmp( getBuf(), other.getBuf(), getSizeBytes() )==0 );
+}
+
+void SourceData::FileData::reset()
+{
+   delete[] (char*)m_pBuf;
+   m_pBuf = 0;
+   m_v.clear();
+   m_size = 0;
+   m_vSize = 0;
+   m_bIsText = true;
+   m_bIncompleteConversion = false;
+   m_eLineEndStyle = eLineEndStyleUndefined;
+}
+
+bool SourceData::FileData::readFile( const QString& filename )
+{
+   reset();
+   if ( filename.isEmpty() )   { return true; }
+
+   FileAccess fa( filename );
+   m_size = fa.sizeForReading();
+   char* pBuf;
+   m_pBuf = pBuf = new char[m_size+100];  // Alloc 100 byte extra: Savety hack, not nice but does no harm.
+                                // Some extra bytes at the end of the buffer are needed by
+                                // the diff algorithm. See also GnuDiff::diff_2_files().
+   bool bSuccess = fa.readFile( pBuf, m_size );
+   if ( !bSuccess )
+   {
+      delete pBuf;
+      m_pBuf = 0;
+      m_size = 0;
+   }
+   return bSuccess;
+}
+
+bool SourceData::saveNormalDataAs( const QString& fileName )
+{
+   return m_normalData.writeFile( fileName );
+}
+
+bool SourceData::FileData::writeFile( const QString& filename )
+{
+   if ( filename.isEmpty() )   { return true; }
+
+   FileAccess fa( filename );
+   bool bSuccess = fa.writeFile(m_pBuf, m_size);
+   return bSuccess;
+}
+
+void SourceData::FileData::copyBufFrom( const FileData& src )
+{
+   reset();
+   char* pBuf;
+   m_size = src.m_size;
+   m_pBuf = pBuf = new char[m_size+100];
+   memcpy( pBuf, src.m_pBuf, m_size );
+}
+
+// Convert the input file from input encoding to output encoding and write it to the output file.
+static bool convertFileEncoding( const QString& fileNameIn, QTextCodec* pCodecIn,
+                                 const QString& fileNameOut, QTextCodec* pCodecOut )
+{
+   QFile in( fileNameIn );
+   if ( ! in.open(QIODevice::ReadOnly ) )
+      return false;
+   QTextStream inStream( &in );
+   inStream.setCodec( pCodecIn );
+   inStream.setAutoDetectUnicode( false );
+
+   QFile out( fileNameOut );
+   if ( ! out.open( QIODevice::WriteOnly ) )
+      return false;
+   QTextStream outStream( &out );
+   outStream.setCodec( pCodecOut );
+
+   QString data = inStream.readAll();
+   outStream << data;
+
+   return true;
+}
+
+static QTextCodec* getEncodingFromTag( const QByteArray& s, const QByteArray& encodingTag )
+{   
+   int encodingPos = s.indexOf( encodingTag );
+   if ( encodingPos>=0 )
+   {
+      int apostrophPos = s.indexOf( '"', encodingPos + encodingTag.length() );
+      int apostroph2Pos = s.indexOf( '\'', encodingPos + encodingTag.length() );
+      char apostroph = '"';
+      if ( apostroph2Pos>=0 && ( apostrophPos<0 || (apostrophPos>=0 && apostroph2Pos < apostrophPos) ) )
+      {
+         apostroph = '\'';
+         apostrophPos = apostroph2Pos;
+      }
+
+      int encodingEnd = s.indexOf( apostroph, apostrophPos+1 );
+      if ( encodingEnd>=0 ) // e.g.: <meta charset="utf-8"> or <?xml version="1.0" encoding="ISO-8859-1"?>
+      {
+         QByteArray encoding = s.mid( apostrophPos+1, encodingEnd - (apostrophPos + 1) );
+         return QTextCodec::codecForName( encoding );
+      }
+      else // e.g.: <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+      {
+         QByteArray encoding = s.mid( encodingPos+encodingTag.length(), apostrophPos - ( encodingPos+encodingTag.length() ) );
+         return QTextCodec::codecForName( encoding );
+      }
+   }
+   return 0;
+}
+
+static QTextCodec* detectEncoding( const char* buf, qint64 size, qint64& skipBytes )
+{
+   if (size>=2)
+   {
+      if (buf[0]=='\xFF' && buf[1]=='\xFE' )
+      {
+         skipBytes = 2;
+         return QTextCodec::codecForName( "UTF-16LE" );
+      }
+
+      if (buf[0]=='\xFE' && buf[1]=='\xFF' )
+      {
+         skipBytes = 2;
+         return QTextCodec::codecForName( "UTF-16BE" );
+      }
+   }
+   if (size>=3)
+   {
+      if (buf[0]=='\xEF' && buf[1]=='\xBB' && buf[2]=='\xBF' )
+      {
+         skipBytes = 3;
+         return QTextCodec::codecForName( "UTF-8-BOM" );
+      }
+   }
+   skipBytes = 0;
+   QByteArray s( buf, size );
+   int xmlHeaderPos = s.indexOf( "<?xml" );
+   if ( xmlHeaderPos >= 0 )
+   {
+      int xmlHeaderEnd = s.indexOf( "?>", xmlHeaderPos );
+      if ( xmlHeaderEnd>=0 )
+      {
+         QTextCodec* pCodec = getEncodingFromTag( s.mid( xmlHeaderPos, xmlHeaderEnd - xmlHeaderPos ), "encoding=" );
+         if (pCodec)
+            return pCodec;
+      }
+   }
+   else // HTML
+   {
+      int metaHeaderPos = s.indexOf( "<meta" );
+      while ( metaHeaderPos >= 0)
+      {
+         int metaHeaderEnd = s.indexOf( ">", metaHeaderPos );
+         if (metaHeaderEnd>=0)
+         {
+            QTextCodec* pCodec = getEncodingFromTag( s.mid( metaHeaderPos, metaHeaderEnd - metaHeaderPos ), "charset=" );
+            if (pCodec)
+               return pCodec;
+
+            metaHeaderPos = s.indexOf( "<meta", metaHeaderEnd );
+         }
+         else
+            break;
+      }
+   }
+   return 0;
+}
+
+QTextCodec* SourceData::detectEncoding( const QString& fileName, QTextCodec* pFallbackCodec )
+{
+   QFile f(fileName);
+   if ( f.open(QIODevice::ReadOnly) )
+   {
+      char buf[200];
+      qint64 size = f.read( buf, sizeof(buf) );
+      qint64 skipBytes = 0;
+      QTextCodec* pCodec = ::detectEncoding( buf, size, skipBytes );
+      if (pCodec)
+         return pCodec;
+   }
+   return pFallbackCodec;
+}
+
+/* Split the command line into arguments.
+ * Normally split at white space separators except when quoting with " or '.
+ * Backslash is treated as meta character within single quotes ' only.
+ * Detect parsing errors like unclosed quotes.
+ * The first item in the list will be the command itself.
+ * Returns the error reasor as string or an empty string on success.
+ * Eg. >"1" "2"<           => >1<, >2<
+ * Eg. >'\'\\'<            => >'\<   backslash is a meta character between single quotes
+ * Eg. > "\\" <            => >\\<   but not between double quotes
+ * Eg. >"c:\sed" 's/a/\' /g'<  => >c:\sed<, >s/a/' /g<
+ */
+static QString getArguments( QString cmd, QString& program, QStringList& args )
+{
+   program = QString();
+   args.clear();
+   for ( int i=0; i<cmd.length(); ++i )
+   {
+      while ( i<cmd.length() && cmd[i].isSpace() )
+      {
+         ++i;
+      }
+      if ( cmd[i]=='"' || cmd[i]=='\'' ) // argument beginning with a quote
+      {
+         QChar quoteChar = cmd[i];
+         ++i;
+         int argStart = i;
+         bool bSkip = false;
+         while ( i<cmd.length() && ( cmd[i]!=quoteChar || bSkip ) )
+         {
+            if ( bSkip )
+            {
+               bSkip = false;
+               if ( cmd[i]=='\\' || cmd[i]==quoteChar )
+               {
+                  cmd.remove( i-1, 1 );  // remove the backslash '\'
+                  continue;
+               }
+            }
+            else if ( cmd[i]=='\\' && quoteChar=='\'')
+               bSkip = true;
+            ++i;
+         }
+         if ( i<cmd.length() )
+         {
+            args << cmd.mid( argStart, i-argStart );
+            if ( i+1<cmd.length() && !cmd[i+1].isSpace() )
+               return i18n("Expecting space after closing apostroph.");
+         }
+         else
+            return i18n("Not matching apostrophs.");
+         continue;
+      }
+      else
+      {            
+         int argStart = i;
+         //bool bSkip = false;
+         while ( i<cmd.length() && ( !cmd[i].isSpace() /*|| bSkip*/ ) )
+         {
+            /*if ( bSkip )
+            {
+               bSkip = false;
+               if ( cmd[i]=='\\' || cmd[i]=='"' || cmd[i]=='\'' || cmd[i].isSpace() )
+               {
+                  cmd.remove( i-1, 1 );  // remove the backslash '\'
+                  continue;
+               }
+            }
+            else if ( cmd[i]=='\\' )
+               bSkip = true;
+            else */
+            if ( cmd[i]=='"' || cmd[i]=='\'' )
+               return i18n("Unexpected apostroph within argument.");
+            ++i;
+         }
+         args << cmd.mid( argStart, i-argStart );
+      }      
+   }
+   if ( args.isEmpty() )
+      return i18n("No program specified.");
+   else
+   {
+      program = args[0];
+      args.pop_front();
+      #ifdef WIN32
+      if ( program=="sed" )
+      {
+         QString prg = QCoreApplication::applicationDirPath() + "/bin/sed.exe"; // in subdir bin
+         if ( QFile::exists( prg ) )
+         {
+            program = prg;
+         }
+         else
+         {
+            prg = QCoreApplication::applicationDirPath() + "/sed.exe"; // in same dir
+            if ( QFile::exists( prg ) )
+            {
+               program = prg;
+            }
+         }
+      }
+      #endif 
+   }
+   return QString();
+}
+
+QStringList SourceData::readAndPreprocess( QTextCodec* pEncoding, bool bAutoDetectUnicode )
+{
+   m_pEncoding = pEncoding;
+   QString fileNameIn1;
+   QString fileNameOut1;
+   QString fileNameIn2;
+   QString fileNameOut2;
+   QStringList errors;
+
+   bool bTempFileFromClipboard = !m_fileAccess.isValid();
+
+   // Detect the input for the preprocessing operations
+   if ( !bTempFileFromClipboard )
+   {
+      if ( m_fileAccess.isLocal() )
+      {
+         fileNameIn1 = m_fileAccess.absoluteFilePath();
+      }
+      else    // File is not local: create a temporary local copy:
+      {
+         if ( m_tempInputFileName.isEmpty() )  { m_tempInputFileName = FileAccess::tempFileName(); }
+
+         m_fileAccess.copyFile(m_tempInputFileName);
+         fileNameIn1 = m_tempInputFileName;
+      }
+      if ( bAutoDetectUnicode )
+      {
+         m_pEncoding = detectEncoding( fileNameIn1, pEncoding );
+      }
+   }
+   else // The input was set via setData(), probably from clipboard.
+   {
+      fileNameIn1 = m_tempInputFileName;
+      m_pEncoding = QTextCodec::codecForName("UTF-8");
+   }
+   QTextCodec* pEncoding1 = m_pEncoding;
+   QTextCodec* pEncoding2 = m_pEncoding;
+
+   m_normalData.reset();
+   m_lmppData.reset();
+
+   FileAccess faIn(fileNameIn1);
+   int fileInSize = faIn.size();
+
+   if ( faIn.exists() ) // fileInSize > 0 )
+   {
+
+#if defined(_WIN32) || defined(Q_OS_OS2)
+      QString catCmd = "type";
+      fileNameIn1.replace( '/', "\\" );
+#else
+      QString catCmd = "cat";
+#endif
+
+      // Run the first preprocessor
+      if ( m_pOptions->m_PreProcessorCmd.isEmpty() )
+      {
+         // No preprocessing: Read the file directly:
+         m_normalData.readFile( fileNameIn1 );
+      }
+      else
+      {
+         QString fileNameInPP = fileNameIn1;
+
+         if ( pEncoding1 != m_pOptions->m_pEncodingPP )
+         {
+            // Before running the preprocessor convert to the format that the preprocessor expects.
+            fileNameInPP = FileAccess::tempFileName();
+            pEncoding1 = m_pOptions->m_pEncodingPP;
+            convertFileEncoding( fileNameIn1, pEncoding, fileNameInPP, pEncoding1 );
+         }
+
+         QString ppCmd = m_pOptions->m_PreProcessorCmd;
+         fileNameOut1 = FileAccess::tempFileName();
+
+         QProcess ppProcess;
+         ppProcess.setStandardInputFile( fileNameInPP );
+         ppProcess.setStandardOutputFile( fileNameOut1 );
+         QString program;
+         QStringList args;
+         QString errorReason = getArguments(ppCmd, program, args);
+         if ( errorReason.isEmpty() )
+         {
+            ppProcess.start( program, args );
+            ppProcess.waitForFinished(-1);
+         }
+         else
+            errorReason = "\n("+errorReason+")";
+         //QString cmd = catCmd + " \"" + fileNameInPP + "\" | " + ppCmd  + " >\"" + fileNameOut1+"\"";
+         //::system( encodeString(cmd) );
+         bool bSuccess = errorReason.isEmpty() && m_normalData.readFile( fileNameOut1 );
+         if ( fileInSize >0 && ( !bSuccess || m_normalData.m_size==0 ) )
+         {
+
+            errors.append(
+               i18n("Preprocessing possibly failed. Check this command:\n\n  %1"
+                  "\n\nThe preprocessing command will be disabled now."
+               ).arg(ppCmd) + errorReason );
+            m_pOptions->m_PreProcessorCmd = "";
+            m_normalData.readFile( fileNameIn1 );
+            pEncoding1 = m_pEncoding;
+         }
+         if (fileNameInPP != fileNameIn1)
+         {
+            FileAccess::removeTempFile( fileNameInPP );
+         }
+      }
+
+      // LineMatching Preprocessor
+      if ( ! m_pOptions->m_LineMatchingPreProcessorCmd.isEmpty() )
+      {
+         fileNameIn2 = fileNameOut1.isEmpty() ? fileNameIn1 : fileNameOut1;
+         QString fileNameInPP = fileNameIn2;
+         pEncoding2 = pEncoding1;
+         if ( pEncoding2 != m_pOptions->m_pEncodingPP )
+         {
+            // Before running the preprocessor convert to the format that the preprocessor expects.
+            fileNameInPP = FileAccess::tempFileName();
+            pEncoding2 = m_pOptions->m_pEncodingPP;
+            convertFileEncoding( fileNameIn2, pEncoding1, fileNameInPP, pEncoding2 );
+         }
+
+         QString ppCmd = m_pOptions->m_LineMatchingPreProcessorCmd;
+         fileNameOut2 = FileAccess::tempFileName();
+         QProcess ppProcess;
+         ppProcess.setStandardInputFile( fileNameInPP );
+         ppProcess.setStandardOutputFile( fileNameOut2 );
+         QString program;
+         QStringList args;
+         QString errorReason = getArguments(ppCmd, program, args);
+         if ( errorReason.isEmpty() )
+         {
+            ppProcess.start( program, args );
+            ppProcess.waitForFinished(-1);
+         }
+         else
+            errorReason = "\n("+errorReason+")";
+         //QString cmd = catCmd + " \"" + fileNameInPP + "\" | " + ppCmd  + " >\"" + fileNameOut2 + "\"";
+         //::system( encodeString(cmd) );
+         bool bSuccess = errorReason.isEmpty() && m_lmppData.readFile( fileNameOut2 );
+         if ( FileAccess(fileNameIn2).size()>0 && ( !bSuccess || m_lmppData.m_size==0 ) )
+         {
+            errors.append(
+               i18n("The line-matching-preprocessing possibly failed. Check this command:\n\n  %1"
+                    "\n\nThe line-matching-preprocessing command will be disabled now."
+                   ).arg(ppCmd) + errorReason );
+            m_pOptions->m_LineMatchingPreProcessorCmd = "";
+            m_lmppData.readFile( fileNameIn2 );
+         }
+         FileAccess::removeTempFile( fileNameOut2 );
+         if (fileNameInPP != fileNameIn2)
+         {
+            FileAccess::removeTempFile( fileNameInPP );
+         }
+      }
+      else if ( m_pOptions->m_bIgnoreComments || m_pOptions->m_bIgnoreCase )
+      {
+         // We need a copy of the normal data.
+         m_lmppData.copyBufFrom( m_normalData );
+      }
+      else
+      {  // We don't need any lmpp data at all.
+         m_lmppData.reset();
+      }
+   }
+
+   m_normalData.preprocess( m_pOptions->m_bPreserveCarriageReturn, pEncoding1 );
+   m_lmppData.preprocess( false, pEncoding2 );
+
+   if ( m_lmppData.m_vSize < m_normalData.m_vSize )
+   {
+      // This probably is the fault of the LMPP-Command, but not worth reporting.
+      m_lmppData.m_v.resize( m_normalData.m_vSize );
+      for(int i=m_lmppData.m_vSize; i<m_normalData.m_vSize; ++i )
+      {  // Set all empty lines to point to the end of the buffer.
+         m_lmppData.m_v[i].pLine = m_lmppData.m_unicodeBuf.unicode()+m_lmppData.m_unicodeBuf.length();
+      }
+
+      m_lmppData.m_vSize = m_normalData.m_vSize;
+   }
+
+   // Internal Preprocessing: Uppercase-conversion   
+   if ( m_pOptions->m_bIgnoreCase )
+   {
+      int i;
+      QChar* pBuf = const_cast<QChar*>(m_lmppData.m_unicodeBuf.unicode());
+      int ucSize = m_lmppData.m_unicodeBuf.length();
+      for(i=0; i<ucSize; ++i)
+      {
+         pBuf[i] = pBuf[i].toUpper();
+      }
+   }
+
+   // Ignore comments
+   if ( m_pOptions->m_bIgnoreComments )
+   {
+      m_lmppData.removeComments();
+      int vSize = min2(m_normalData.m_vSize, m_lmppData.m_vSize);
+      for(int i=0; i<vSize; ++i )
+      {
+         m_normalData.m_v[i].bContainsPureComment = m_lmppData.m_v[i].bContainsPureComment;
+      }
+   }
+
+   // Remove unneeded temporary files. (A temp file from clipboard must not be deleted.)
+   if ( !bTempFileFromClipboard && !m_tempInputFileName.isEmpty() )
+   {
+      FileAccess::removeTempFile( m_tempInputFileName );
+      m_tempInputFileName = "";
+   }
+
+   if ( !fileNameOut1.isEmpty() )
+   {
+      FileAccess::removeTempFile( fileNameOut1 );
+      fileNameOut1="";
+   }
+
+   return errors;
+}
+
+
+/** Prepare the linedata vector for every input line.*/
+void SourceData::FileData::preprocess( bool bPreserveCR, QTextCodec* pEncoding )
+{
+   //m_unicodeBuf = decodeString( m_pBuf, m_size, eEncoding );
+
+   qint64 i;
+   // detect line end style
+   QVector<e_LineEndStyle> vOrigDataLineEndStyle;
+   m_eLineEndStyle = eLineEndStyleUndefined;
+   for( i=0; i<m_size; ++i )
+   {
+      if ( m_pBuf[i]=='\r' )
+      {
+         if ( i+1<m_size && m_pBuf[i+1]=='\n' ) // not 16-bit unicode
+         {
+            vOrigDataLineEndStyle.push_back( eLineEndStyleDos );
+            ++i;
+         }
+         else if( i>0 && i+2<m_size && m_pBuf[i-1]=='\0' && m_pBuf[i+1]=='\0' && m_pBuf[i+2]=='\n' ) // 16-bit unicode
+         {
+            vOrigDataLineEndStyle.push_back( eLineEndStyleDos );
+            i+=2;
+         }
+         else // old mac line end style ?
+         {
+            vOrigDataLineEndStyle.push_back( eLineEndStyleUndefined );
+            const_cast<char*>(m_pBuf)[i]='\n'; // fix it in original data
+         }
+      }
+      else if ( m_pBuf[i]=='\n' )
+      {
+         vOrigDataLineEndStyle.push_back( eLineEndStyleUnix );
+      }
+   }
+
+   if ( ! vOrigDataLineEndStyle.isEmpty() )
+      m_eLineEndStyle = vOrigDataLineEndStyle[0];
+
+   qint64 skipBytes = 0;
+   QTextCodec* pCodec = ::detectEncoding( m_pBuf, m_size, skipBytes );
+   if ( pCodec != pEncoding )
+      skipBytes=0;
+
+   QByteArray ba = QByteArray::fromRawData( m_pBuf+skipBytes, m_size-skipBytes );
+   QTextStream ts( ba, QIODevice::ReadOnly | QIODevice::Text );
+   ts.setCodec( pEncoding);
+   ts.setAutoDetectUnicode( false );
+   m_unicodeBuf = ts.readAll();
+   ba.clear();
+
+   int ucSize = m_unicodeBuf.length();
+   const QChar* p = m_unicodeBuf.unicode();
+
+   m_bIsText = true;
+   int lines = 1;
+   m_bIncompleteConversion = false;
+   for( i=0; i<ucSize; ++i )
+   {
+      if ( i>=ucSize || p[i]=='\n' )
+      {
+         ++lines;
+      }
+      if ( p[i]=='\0' )
+      {
+         m_bIsText = false;
+      }
+      if ( p[i]==QChar::ReplacementCharacter )
+      {
+         m_bIncompleteConversion = true;
+      }
+   }
+
+   m_v.resize( lines+5 );
+   int lineIdx=0;
+   int lineLength=0;
+   bool bNonWhiteFound = false;
+   int whiteLength = 0;
+   for( i=0; i<=ucSize; ++i )
+   {
+      if ( i>=ucSize || p[i]=='\n' )
+      {
+         m_v[lineIdx].pLine = &p[ i-lineLength ];
+         while ( /*!bPreserveCR  &&*/  lineLength>0  &&  m_v[lineIdx].pLine[lineLength-1]=='\r'  )
+         {
+            --lineLength;
+         }
+         m_v[lineIdx].pFirstNonWhiteChar = m_v[lineIdx].pLine + min2(whiteLength,lineLength);
+         m_v[lineIdx].size = lineLength;
+         if ( lineIdx < vOrigDataLineEndStyle.count() && bPreserveCR && i<ucSize)
+         {
+            ++m_v[lineIdx].size;
+            const_cast<QChar*>(m_v[lineIdx].pLine)[lineLength] = '\r';
+            //switch ( vOrigDataLineEndStyle[lineIdx] )
+            //{
+            //case eLineEndStyleUnix: const_cast<QChar*>(m_v[lineIdx].pLine)[lineLength] = '\n'; break;
+            //case eLineEndStyleDos:  const_cast<QChar*>(m_v[lineIdx].pLine)[lineLength] = '\r'; break;
+            //case eLineEndStyleUndefined: const_cast<QChar*>(m_v[lineIdx].pLine)[lineLength] = '\x0b'; break;
+            //}
+         }
+         lineLength = 0;
+         bNonWhiteFound = false;
+         whiteLength = 0;
+         ++lineIdx;
+      }
+      else
+      {
+         ++lineLength;
+
+         if ( ! bNonWhiteFound && isWhite( p[i] ) )
+            ++whiteLength;
+         else
+            bNonWhiteFound = true;
+      }
+   }
+   assert( lineIdx == lines );
+
+   m_vSize = lines;
+}
+
+
+// Must not be entered, when within a comment.
+// Returns either at a newline-character p[i]=='\n' or when i==size.
+// A line that contains only comments is still "white".
+// Comments in white lines must remain, while comments in
+// non-white lines are overwritten with spaces.
+static void checkLineForComments(
+   QChar* p,   // pointer to start of buffer
+   int& i,    // index of current position (in, out)
+   int size,  // size of buffer
+   bool& bWhite,          // false if this line contains nonwhite characters (in, out)
+   bool& bCommentInLine,  // true if any comment is within this line (in, out)
+   bool& bStartsOpenComment  // true if the line ends within an comment (out)
+   )
+{
+   bStartsOpenComment = false;
+   for(; i<size; ++i )
+   {
+      // A single apostroph ' has prio over a double apostroph " (e.g. '"')
+      // (if not in a string)
+      if ( p[i]=='\'' )
+      {
+         bWhite = false;
+         ++i;
+         for( ; !isLineOrBufEnd(p,i,size) && p[i]!='\''; ++i)
+            ;
+         if (p[i]=='\'') ++i;
+      }
+
+      // Strings have priority over comments: e.g. "/* Not a comment, but a string. */"
+      else if ( p[i]=='"' )
+      {
+         bWhite = false;
+         ++i;
+         for( ; !isLineOrBufEnd(p,i,size) && !(p[i]=='"' && p[i-1]!='\\'); ++i)
+            ;
+         if (p[i]=='"') ++i;
+      }
+
+      // C++-comment
+      else if ( p[i]=='/' && i+1<size && p[i+1] =='/' )
+      {
+         int commentStart = i;
+         bCommentInLine = true;
+         i+=2;
+         for( ; !isLineOrBufEnd(p,i,size); ++i)
+            ;
+         if ( !bWhite )
+         {
+            memset( &p[commentStart], ' ', i-commentStart );
+         }
+         return;
+      }
+
+      // C-comment
+      else if ( p[i]=='/' && i+1<size && p[i+1] =='*' )
+      {
+         int commentStart = i;
+         bCommentInLine = true;
+         i+=2;
+         for( ; !isLineOrBufEnd(p,i,size); ++i)
+         {
+            if ( i+1<size && p[i]=='*' && p[i+1]=='/')  // end of the comment
+            {
+               i+=2;
+
+               // More comments in the line?
+               checkLineForComments( p, i, size, bWhite, bCommentInLine, bStartsOpenComment );
+               if ( !bWhite )
+               {
+                  memset( &p[commentStart], ' ', i-commentStart );
+               }
+               return;
+            }
+         }
+         bStartsOpenComment = true;
+         return;
+      }
+
+
+      if ( isLineOrBufEnd(p,i,size) )
+      {
+         return;
+      }
+      else if ( !p[i].isSpace() )
+      {
+         bWhite = false;
+      }
+   }
+}
+
+// Modifies the input data, and replaces C/C++ comments with whitespace
+// when the line contains other data too. If the line contains only
+// a comment or white data, remember this in the flag bContainsPureComment.
+void SourceData::FileData::removeComments()
+{
+   int line=0;
+   QChar* p = const_cast<QChar*>(m_unicodeBuf.unicode());
+   bool bWithinComment=false;
+   int size = m_unicodeBuf.length();
+   for(int i=0; i<size; ++i )
+   {
+//      std::cout << "2        " << std::string(&p[i], m_v[line].size) << std::endl;
+      bool bWhite = true;
+      bool bCommentInLine = false;
+
+      if ( bWithinComment )
+      {
+         int commentStart = i;
+         bCommentInLine = true;
+
+         for( ; !isLineOrBufEnd(p,i,size); ++i)
+         {
+            if ( i+1<size && p[i]=='*' && p[i+1]=='/')  // end of the comment
+            {
+               i+=2;
+
+               // More comments in the line?
+               checkLineForComments( p, i, size, bWhite, bCommentInLine, bWithinComment );
+               if ( !bWhite )
+               {
+                  memset( &p[commentStart], ' ', i-commentStart );
+               }
+               break;
+            }
+         }
+      }
+      else
+      {
+         checkLineForComments( p, i, size, bWhite, bCommentInLine, bWithinComment );
+      }
+
+      // end of line
+      assert( isLineOrBufEnd(p,i,size));
+      m_v[line].bContainsPureComment = bCommentInLine && bWhite;
+/*      std::cout << line << " : " <<
+       ( bCommentInLine ?  "c" : " " ) <<
+       ( bWhite ? "w " : "  ") <<
+       std::string(pLD[line].pLine, pLD[line].size) << std::endl;*/
+
+      ++line;
+   }
+}
+
+
+
+// First step
+void calcDiff3LineListUsingAB(
+   const DiffList* pDiffListAB,
+   Diff3LineList& d3ll
+   )
+{
+   // First make d3ll for AB (from pDiffListAB)
+
+   DiffList::const_iterator i=pDiffListAB->begin();
+   int lineA=0;
+   int lineB=0;
+   Diff d(0,0,0);
+
+   for(;;)
+   {
+      if ( d.nofEquals==0 && d.diff1==0 && d.diff2==0 )
+      {
+         if ( i!=pDiffListAB->end() )
+         {
+            d=*i;
+            ++i;
+         }
+         else
+            break;
+      }
+
+      Diff3Line d3l;
+      if( d.nofEquals>0 )
+      {
+         d3l.bAEqB = true;
+         d3l.lineA = lineA;
+         d3l.lineB = lineB;
+         --d.nofEquals;
+         ++lineA;
+         ++lineB;
+      }
+      else if ( d.diff1>0 && d.diff2>0 )
+      {
+         d3l.lineA = lineA;
+         d3l.lineB = lineB;
+         --d.diff1;
+         --d.diff2;
+         ++lineA;
+         ++lineB;
+      }
+      else if ( d.diff1>0 )
+      {
+         d3l.lineA = lineA;
+         --d.diff1;
+         ++lineA;
+      }
+      else if ( d.diff2>0 )
+      {
+         d3l.lineB = lineB;
+         --d.diff2;
+         ++lineB;
+      }
+      else if ( d.nofEquals < 0 )
+      {
+         assert(false);
+      }
+
+      d3ll.push_back( d3l );
+   }
+}
+
+
+// Second step
+void calcDiff3LineListUsingAC(
+   const DiffList* pDiffListAC,
+   Diff3LineList& d3ll
+   )
+{
+   ////////////////
+   // Now insert data from C using pDiffListAC
+
+   DiffList::const_iterator i=pDiffListAC->begin();
+   Diff3LineList::iterator i3 = d3ll.begin();
+   int lineA=0;
+   int lineC=0;
+   Diff d(0,0,0);
+
+   for(;;)
+   {
+      if ( d.nofEquals==0 && d.diff1==0 && d.diff2==0 )
+      {
+         if ( i!=pDiffListAC->end() )
+         {
+            d=*i;
+            ++i;
+         }
+         else
+            break;
+      }
+
+      Diff3Line d3l;
+      if( d.nofEquals>0 )
+      {
+         // Find the corresponding lineA
+         while( (*i3).lineA!=lineA )
+            ++i3;
+
+         (*i3).lineC = lineC;
+         (*i3).bAEqC = true;
+         (*i3).bBEqC = (*i3).bAEqB;
+
+         --d.nofEquals;
+         ++lineA;
+         ++lineC;
+         ++i3;
+      }
+      else if ( d.diff1>0 && d.diff2>0 )
+      {
+         d3l.lineC = lineC;
+         d3ll.insert( i3, d3l );
+         --d.diff1;
+         --d.diff2;
+         ++lineA;
+         ++lineC;
+      }
+      else if ( d.diff1>0 )
+      {
+         --d.diff1;
+         ++lineA;
+      }
+      else if ( d.diff2>0 )
+      {
+         d3l.lineC = lineC;
+         d3ll.insert( i3, d3l );
+         --d.diff2;
+         ++lineC;
+      }
+   }
+}
+
+// Third step
+void calcDiff3LineListUsingBC(
+   const DiffList* pDiffListBC,
+   Diff3LineList& d3ll
+   )
+{
+   ////////////////
+   // Now improve the position of data from C using pDiffListBC
+   // If a line from C equals a line from A then it is in the
+   // same Diff3Line already.
+   // If a line from C equals a line from B but not A, this
+   // information will be used here.
+
+   DiffList::const_iterator i=pDiffListBC->begin();
+   Diff3LineList::iterator i3b = d3ll.begin();
+   Diff3LineList::iterator i3c = d3ll.begin();
+   int lineB=0;
+   int lineC=0;
+   Diff d(0,0,0);
+
+   for(;;)
+   {
+      if ( d.nofEquals==0 && d.diff1==0 && d.diff2==0 )
+      {
+         if ( i!=pDiffListBC->end() )
+         {
+            d=*i;
+            ++i;
+         }
+         else
+            break;
+      }
+
+      Diff3Line d3l;
+      if( d.nofEquals>0 )
+      {
+         // Find the corresponding lineB and lineC
+         while( i3b!=d3ll.end() && (*i3b).lineB!=lineB )
+            ++i3b;
+
+         while( i3c!=d3ll.end() && (*i3c).lineC!=lineC )
+            ++i3c;
+
+         assert(i3b!=d3ll.end());
+         assert(i3c!=d3ll.end());
+
+         if ( i3b==i3c )
+         {
+            assert( (*i3b).lineC == lineC );
+            (*i3b).bBEqC = true;
+         }
+         else
+         {
+            // Is it possible to move this line up?
+            // Test if no other B's are used between i3c and i3b
+
+            // First test which is before: i3c or i3b ?
+            Diff3LineList::iterator i3c1 = i3c;
+            Diff3LineList::iterator i3b1 = i3b;
+            while( i3c1!=i3b  &&  i3b1!=i3c )
+            {
+               assert(i3b1!=d3ll.end() || i3c1!=d3ll.end());
+               if( i3c1!=d3ll.end() ) ++i3c1;
+               if( i3b1!=d3ll.end() ) ++i3b1;
+            }
+
+            if( i3c1==i3b  &&  !(*i3b).bAEqB ) // i3c before i3b
+            {
+               Diff3LineList::iterator i3 = i3c;
+               int nofDisturbingLines = 0;
+               while( i3 != i3b && i3!=d3ll.end() )
+               {
+                  if ( (*i3).lineB != -1 )
+                     ++nofDisturbingLines;
+                  ++i3;
+               }
+
+               if ( nofDisturbingLines>0 )//&& nofDisturbingLines < d.nofEquals*d.nofEquals+4 )
+               {
+                  // Move the disturbing lines up, out of sight.
+                  i3 = i3c;
+                  while( i3 != i3b )
+                  {
+                     if ( (*i3).lineB != -1 )
+                     {
+                        Diff3Line d3l;
+                        d3l.lineB = (*i3).lineB;
+                        (*i3).lineB = -1;
+                        (*i3).bAEqB = false;
+                        (*i3).bBEqC = false;
+                        d3ll.insert( i3c, d3l );
+                     }
+                     ++i3;
+                  }
+                  nofDisturbingLines=0;
+               }
+
+               if ( nofDisturbingLines == 0 )
+               {
+                  // Yes, the line from B can be moved.
+                  (*i3b).lineB = -1;   // This might leave an empty line: removed later.
+                  (*i3b).bAEqB = false;
+                  (*i3b).bAEqC = false;
+                  (*i3b).bBEqC = false;
+                  (*i3c).lineB = lineB;
+                  (*i3c).bBEqC = true;
+               }
+            }
+            else if( i3b1==i3c  &&  !(*i3c).bAEqC)
+            {
+               Diff3LineList::iterator i3 = i3b;
+               int nofDisturbingLines = 0;
+               while( i3 != i3c && i3!=d3ll.end() )
+               {
+                  if ( (*i3).lineC != -1 )
+                     ++nofDisturbingLines;
+                  ++i3;
+               }
+
+               if ( nofDisturbingLines>0 )//&& nofDisturbingLines < d.nofEquals*d.nofEquals+4 )
+               {
+                  // Move the disturbing lines up.
+                  i3 = i3b;
+                  while( i3 != i3c )
+                  {
+                     if ( (*i3).lineC != -1 )
+                     {
+                        Diff3Line d3l;
+                        d3l.lineC = (*i3).lineC;
+                        (*i3).lineC = -1;
+                        (*i3).bAEqC = false;
+                        (*i3).bBEqC = false;
+                        d3ll.insert( i3b, d3l );
+                     }
+                     ++i3;
+                  }
+                  nofDisturbingLines=0;
+               }
+
+               if ( nofDisturbingLines == 0 )
+               {
+                  // Yes, the line from C can be moved.
+                  (*i3c).lineC = -1;   // This might leave an empty line: removed later.
+                  (*i3c).bAEqC = false;
+                  (*i3c).bBEqC = false;
+                  (*i3b).lineC = lineC;
+                  (*i3b).bBEqC = true;
+               }
+            }
+         }
+
+         --d.nofEquals;
+         ++lineB;
+         ++lineC;
+         ++i3b;
+         ++i3c;
+      }
+      else if ( d.diff1>0 )
+      {
+         Diff3LineList::iterator i3 = i3b;
+         while( (*i3).lineB!=lineB )
+            ++i3;
+         if( i3 != i3b  &&  (*i3).bAEqB==false )
+         {
+            // Take B from this line and move it up as far as possible
+            d3l.lineB = lineB;
+            d3ll.insert( i3b, d3l );
+            (*i3).lineB = -1;
+         }
+         else
+         {
+            i3b=i3;
+         }
+         --d.diff1;
+         ++lineB;
+         ++i3b;
+
+         if( d.diff2>0 )
+         {
+            --d.diff2;
+            ++lineC;
+         }
+      }
+      else if ( d.diff2>0 )
+      {
+         --d.diff2;
+         ++lineC;
+      }
+   }
+/*
+   Diff3LineList::iterator it = d3ll.begin();
+   int li=0;
+   for( ; it!=d3ll.end(); ++it, ++li )
+   {
+      printf( "%4d %4d %4d %4d  A%c=B A%c=C B%c=C\n",
+         li, (*it).lineA, (*it).lineB, (*it).lineC,
+         (*it).bAEqB ? '=' : '!', (*it).bAEqC ? '=' : '!', (*it).bBEqC ? '=' : '!' );
+   }
+   printf("\n");*/
+}
+
+#ifdef _WIN32
+using ::equal;
+#endif
+
+// Test if the move would pass a barrier. Return true if not.
+static bool isValidMove( ManualDiffHelpList* pManualDiffHelpList, int line1, int line2, int winIdx1, int winIdx2 )
+{
+   if (line1>=0 && line2>=0)
+   {
+      ManualDiffHelpList::const_iterator i;
+      for( i = pManualDiffHelpList->begin(); i!=pManualDiffHelpList->end(); ++i )
+      {
+         const ManualDiffHelpEntry& mdhe = *i;
+
+         // Barrier
+         int l1 = winIdx1 == 1 ? mdhe.lineA1 : winIdx1==2 ? mdhe.lineB1 : mdhe.lineC1 ;
+         int l2 = winIdx2 == 1 ? mdhe.lineA1 : winIdx2==2 ? mdhe.lineB1 : mdhe.lineC1 ;
+
+         if ( l1>=0 && l2>=0 )
+         {
+            if ( (line1>=l1 && line2<l2) || (line1<l1 && line2>=l2) )
+               return false;
+            l1 = winIdx1 == 1 ? mdhe.lineA2 : winIdx1==2 ? mdhe.lineB2 : mdhe.lineC2 ;
+            l2 = winIdx2 == 1 ? mdhe.lineA2 : winIdx2==2 ? mdhe.lineB2 : mdhe.lineC2 ;
+            ++l1;
+            ++l2;
+            if ( (line1>=l1 && line2<l2) || (line1<l1 && line2>=l2) )
+               return false;
+         }
+      }
+   }
+   return true; // no barrier passed.
+}
+
+static bool runDiff( const LineData* p1, int size1, const LineData* p2, int size2, DiffList& diffList,
+                     Options *pOptions)
+{
+   ProgressProxy pp;
+   static GnuDiff gnuDiff;  // All values are initialized with zeros.
+
+   pp.setCurrent(0);
+
+   diffList.clear();
+   if ( p1[0].pLine==0 || p2[0].pLine==0 || size1==0 || size2==0 )
+   {
+      Diff d( 0,0,0);
+      if ( p1[0].pLine==0 && p2[0].pLine==0 && size1 == size2 )
+         d.nofEquals = size1;
+      else
+      {
+         d.diff1=size1;
+         d.diff2=size2;
+      }
+
+      diffList.push_back(d);
+   }
+   else
+   {
+      GnuDiff::comparison comparisonInput;
+      memset( &comparisonInput, 0, sizeof(comparisonInput) );
+      comparisonInput.parent = 0;
+      comparisonInput.file[0].buffer = p1[0].pLine;//ptr to buffer
+      comparisonInput.file[0].buffered = (p1[size1-1].pLine-p1[0].pLine+p1[size1-1].size); // size of buffer
+      comparisonInput.file[1].buffer = p2[0].pLine;//ptr to buffer
+      comparisonInput.file[1].buffered = (p2[size2-1].pLine-p2[0].pLine+p2[size2-1].size); // size of buffer
+
+      gnuDiff.ignore_white_space = GnuDiff::IGNORE_ALL_SPACE;  // I think nobody needs anything else ...
+      gnuDiff.bIgnoreWhiteSpace = true;
+      gnuDiff.bIgnoreNumbers    = pOptions->m_bIgnoreNumbers;
+      gnuDiff.minimal = pOptions->m_bTryHard;
+      gnuDiff.ignore_case = false;
+      GnuDiff::change* script = gnuDiff.diff_2_files( &comparisonInput );
+
+      int equalLinesAtStart =  comparisonInput.file[0].prefix_lines;
+      int currentLine1 = 0;
+      int currentLine2 = 0;
+      GnuDiff::change* p=0;
+      for (GnuDiff::change* e = script; e; e = p)
+      {
+         Diff d(0,0,0);
+         d.nofEquals = e->line0 - currentLine1;
+         assert( d.nofEquals == e->line1 - currentLine2 );
+         d.diff1 = e->deleted;
+         d.diff2 = e->inserted;
+         currentLine1 += d.nofEquals + d.diff1;
+         currentLine2 += d.nofEquals + d.diff2;
+         diffList.push_back(d);
+
+         p = e->link;
+         free (e);
+      }
+
+      if ( diffList.empty() )
+      {
+         Diff d(0,0,0);
+         d.nofEquals = min2(size1,size2);
+         d.diff1 = size1 - d.nofEquals;
+         d.diff2 = size2 - d.nofEquals;
+         diffList.push_back(d);
+/*         Diff d(0,0,0);
+         d.nofEquals = equalLinesAtStart;
+         if ( gnuDiff.files[0].missing_newline != gnuDiff.files[1].missing_newline )
+         {
+            d.diff1 = gnuDiff.files[0].missing_newline ? 0 : 1;
+            d.diff2 = gnuDiff.files[1].missing_newline ? 0 : 1;
+            ++d.nofEquals;
+         }
+         else if ( !gnuDiff.files[0].missing_newline )
+         {
+            ++d.nofEquals;
+         }
+         diffList.push_back(d);
+*/
+      }
+      else
+      {
+         diffList.front().nofEquals += equalLinesAtStart;   
+         currentLine1 += equalLinesAtStart;
+         currentLine2 += equalLinesAtStart;
+
+         int nofEquals = min2(size1-currentLine1,size2-currentLine2);
+         if ( nofEquals==0 )
+         {
+            diffList.back().diff1 += size1-currentLine1;
+            diffList.back().diff2 += size2-currentLine2;
+         }
+         else
+         {
+            Diff d( nofEquals,size1-currentLine1-nofEquals,size2-currentLine2-nofEquals);
+            diffList.push_back(d);
+         }
+
+         /*
+         if ( gnuDiff.files[0].missing_newline != gnuDiff.files[1].missing_newline )
+         {
+            diffList.back().diff1 += gnuDiff.files[0].missing_newline ? 0 : 1;
+            diffList.back().diff2 += gnuDiff.files[1].missing_newline ? 0 : 1;
+         }
+         else if ( !gnuDiff.files[0].missing_newline )
+         {
+            ++ diffList.back().nofEquals;
+         }
+         */
+      }
+   }
+
+#ifndef NDEBUG
+   // Verify difflist
+   {
+      int l1=0;
+      int l2=0;
+      DiffList::iterator i;
+      for( i = diffList.begin(); i!=diffList.end(); ++i )
+      {
+         l1+= i->nofEquals + i->diff1;
+         l2+= i->nofEquals + i->diff2;
+      }
+
+      //if( l1!=p1-p1start || l2!=p2-p2start )
+      if( l1!=size1 || l2!=size2 )
+         assert( false );
+   }
+#endif
+
+   pp.setCurrent(1.0);
+
+   return true;
+}
+
+bool runDiff( const LineData* p1, int size1, const LineData* p2, int size2, DiffList& diffList,
+              int winIdx1, int winIdx2,
+              ManualDiffHelpList *pManualDiffHelpList,
+              Options *pOptions)
+{
+   diffList.clear();
+   DiffList diffList2;
+
+   int l1begin = 0;
+   int l2begin = 0;
+   ManualDiffHelpList::const_iterator i;
+   for( i = pManualDiffHelpList->begin(); i!=pManualDiffHelpList->end(); ++i )
+   {
+      const ManualDiffHelpEntry& mdhe = *i;
+
+      int l1end = winIdx1 == 1 ? mdhe.lineA1 : winIdx1==2 ? mdhe.lineB1 : mdhe.lineC1 ;
+      int l2end = winIdx2 == 1 ? mdhe.lineA1 : winIdx2==2 ? mdhe.lineB1 : mdhe.lineC1 ;
+
+      if ( l1end>=0 && l2end>=0 )
+      {
+         runDiff( p1+l1begin, l1end-l1begin, p2+l2begin, l2end-l2begin, diffList2, pOptions);
+         diffList.splice( diffList.end(), diffList2 );
+         l1begin = l1end;
+         l2begin = l2end;
+
+         l1end = winIdx1 == 1 ? mdhe.lineA2 : winIdx1==2 ? mdhe.lineB2 : mdhe.lineC2 ;
+         l2end = winIdx2 == 1 ? mdhe.lineA2 : winIdx2==2 ? mdhe.lineB2 : mdhe.lineC2 ;
+
+         if ( l1end>=0 && l2end>=0 )
+         {
+            ++l1end; // point to line after last selected line
+            ++l2end;
+            runDiff( p1+l1begin, l1end-l1begin, p2+l2begin, l2end-l2begin, diffList2, pOptions);
+            diffList.splice( diffList.end(), diffList2 );
+            l1begin = l1end;
+            l2begin = l2end;
+         }
+      }
+   }
+   runDiff( p1+l1begin, size1-l1begin, p2+l2begin, size2-l2begin, diffList2, pOptions);
+   diffList.splice( diffList.end(), diffList2 );
+   return true;
+}
+
+void correctManualDiffAlignment( Diff3LineList& d3ll, ManualDiffHelpList* pManualDiffHelpList )
+{
+   if ( pManualDiffHelpList->empty() )
+      return;
+
+   // If a line appears unaligned in comparison to the manual alignment, correct this.
+
+   ManualDiffHelpList::iterator iMDHL;
+   for( iMDHL =  pManualDiffHelpList->begin(); iMDHL != pManualDiffHelpList->end(); ++iMDHL )
+   {
+      Diff3LineList::iterator i3 = d3ll.begin();
+      int missingWinIdx = 0;
+      int alignedSum = (iMDHL->lineA1<0?0:1) + (iMDHL->lineB1<0?0:1) + (iMDHL->lineC1<0?0:1);
+      if (alignedSum==2)
+      {
+         // If only A & B are aligned then let C rather be aligned with A
+         // If only A & C are aligned then let B rather be aligned with A
+         // If only B & C are aligned then let A rather be aligned with B
+         missingWinIdx = iMDHL->lineA1<0 ? 1 : (iMDHL->lineB1<0 ? 2 : 3 );
+      }
+      else if (alignedSum<=1)
+      {
+         return;
+      }
+
+      // At the first aligned line, move up the two other lines into new d3ls until the second input is aligned
+      // Then move up the third input until all three lines are aligned.
+      int wi=0;
+      for( ; i3!=d3ll.end(); ++i3 )
+      {
+         for ( wi=1; wi<=3; ++wi )
+         {
+            if ( i3->getLineInFile(wi) >= 0 && iMDHL->firstLine(wi) == i3->getLineInFile(wi) )
+               break;
+         }
+         if ( wi<=3 )
+            break;
+      }
+
+      if (wi>=1 && wi <= 3)
+      {
+         // Found manual alignment for one source
+         Diff3LineList::iterator iDest = i3;
+
+         // Move lines up until the next firstLine is found. Omit wi from move and search.
+         int wi2=0;
+         for( ; i3!=d3ll.end(); ++i3 )
+         {
+            for ( wi2=1; wi2<=3; ++wi2 )
+            {
+               if ( wi!=wi2 && i3->getLineInFile(wi2) >= 0 && iMDHL->firstLine(wi2) == i3->getLineInFile(wi2) )
+                  break;
+            }
+            if (wi2>3)
+            {  // Not yet found
+               // Move both others up
+               Diff3Line d3l;
+               // Move both up
+               if (wi==1) // Move B and C up
+               {
+                  d3l.bBEqC = i3->bBEqC;
+                  d3l.lineB = i3->lineB;
+                  d3l.lineC = i3->lineC;
+                  i3->lineB = -1;
+                  i3->lineC = -1;
+               }
+               if (wi==2) // Move A and C up
+               {
+                  d3l.bAEqC = i3->bAEqC;
+                  d3l.lineA = i3->lineA;
+                  d3l.lineC = i3->lineC;
+                  i3->lineA = -1;
+                  i3->lineC = -1;
+               }
+               if (wi==3) // Move A and B up
+               {
+                  d3l.bAEqB = i3->bAEqB;
+                  d3l.lineA = i3->lineA;
+                  d3l.lineB = i3->lineB;
+                  i3->lineA = -1;
+                  i3->lineB = -1;
+               }
+               i3->bAEqB = false;
+               i3->bAEqC = false;
+               i3->bBEqC = false;
+               d3ll.insert( iDest, d3l );
+            }
+            else 
+            {
+               // align the found line with the line we already have here
+               if ( i3 != iDest )
+               {
+                  if (wi2==1)
+                  {
+                     iDest->lineA = i3->lineA;
+                     i3->lineA = -1;
+                     i3->bAEqB = false;
+                     i3->bAEqC = false;                   
+                  }
+                  else if (wi2==2)
+                  {
+                     iDest->lineB = i3->lineB;
+                     i3->lineB = -1;
+                     i3->bAEqB = false;
+                     i3->bBEqC = false;                   
+                  }
+                  else if (wi2==3)
+                  {
+                     iDest->lineC = i3->lineC;
+                     i3->lineC = -1;
+                     i3->bBEqC = false;
+                     i3->bAEqC = false;                   
+                  }
+               }
+
+               if ( missingWinIdx!=0 )
+               {
+                  for( ; i3!=d3ll.end(); ++i3 )
+                  {
+                     int wi3 = missingWinIdx;
+                     if ( i3->getLineInFile(wi3) >= 0 )
+                     {
+                        // not found, move the line before iDest
+                        Diff3Line d3l;
+                        if ( wi3==1 )
+                        {
+                           if (i3->bAEqB)  // Stop moving lines up if one equal is found.
+                              break;
+                           d3l.lineA = i3->lineA;
+                           i3->lineA = -1;
+                           i3->bAEqB = false;
+                           i3->bAEqC = false;
+                        }
+                        if ( wi3==2 )
+                        {
+                           if (i3->bAEqB)
+                              break;
+                           d3l.lineB = i3->lineB;
+                           i3->lineB = -1;
+                           i3->bAEqB = false;
+                           i3->bBEqC = false;
+                        }
+                        if ( wi3==3 )
+                        {
+                           if (i3->bAEqC)
+                              break;
+                           d3l.lineC = i3->lineC;
+                           i3->lineC = -1;
+                           i3->bAEqC = false;
+                           i3->bBEqC = false;
+                        }
+                        d3ll.insert( iDest, d3l );
+                     }
+                  } // for(), searching for wi3
+               }
+               break;
+            }
+         } // for(), searching for wi2
+      } // if, wi found
+   } // for (iMDHL)
+}
+
+// Fourth step
+void calcDiff3LineListTrim(
+   Diff3LineList& d3ll, const LineData* pldA, const LineData* pldB, const LineData* pldC, ManualDiffHelpList* pManualDiffHelpList
+   )
+{
+   const Diff3Line d3l_empty;
+   d3ll.removeAll( d3l_empty );
+
+   Diff3LineList::iterator i3 = d3ll.begin();
+   Diff3LineList::iterator i3A = d3ll.begin();
+   Diff3LineList::iterator i3B = d3ll.begin();
+   Diff3LineList::iterator i3C = d3ll.begin();
+
+   int line=0;  // diff3line counters
+   int lineA=0; // 
+   int lineB=0;
+   int lineC=0;
+
+   ManualDiffHelpList::iterator iMDHL = pManualDiffHelpList->begin();
+   // The iterator i3 and the variable line look ahead.
+   // The iterators i3A, i3B, i3C and corresponding lineA, lineB and lineC stop at empty lines, if found.
+   // If possible, then the texts from the look ahead will be moved back to the empty places.
+
+   for( ; i3!=d3ll.end(); ++i3, ++line )
+   {
+      if ( iMDHL!=pManualDiffHelpList->end() )
+      {
+         if ( (i3->lineA >= 0 && i3->lineA==iMDHL->lineA1) || 
+              (i3->lineB >= 0 && i3->lineB==iMDHL->lineB1) || 
+              (i3->lineC >= 0 && i3->lineC==iMDHL->lineC1) )
+         {
+            i3A = i3;
+            i3B = i3;
+            i3C = i3;
+            lineA = line;
+            lineB = line;
+            lineC = line;
+            ++iMDHL;
+         }
+      }
+
+      if( line>lineA && (*i3).lineA != -1 && (*i3A).lineB!=-1 && (*i3A).bBEqC  &&
+          ::equal( pldA[(*i3).lineA], pldB[(*i3A).lineB], false ) &&
+          isValidMove( pManualDiffHelpList, (*i3).lineA, (*i3A).lineB, 1, 2 ) &&
+          isValidMove( pManualDiffHelpList, (*i3).lineA, (*i3A).lineC, 1, 3 ) )
+      {
+         // Empty space for A. A matches B and C in the empty line. Move it up.
+         (*i3A).lineA = (*i3).lineA;
+         (*i3A).bAEqB = true;
+         (*i3A).bAEqC = true;
+         (*i3).lineA = -1;
+         (*i3).bAEqB = false;
+         (*i3).bAEqC = false;
+         ++i3A;
+         ++lineA;
+      }
+
+      if( line>lineB && (*i3).lineB != -1 && (*i3B).lineA!=-1 && (*i3B).bAEqC  &&
+          ::equal( pldB[(*i3).lineB], pldA[(*i3B).lineA], false ) &&
+          isValidMove( pManualDiffHelpList, (*i3).lineB, (*i3B).lineA, 2, 1 ) &&
+          isValidMove( pManualDiffHelpList, (*i3).lineB, (*i3B).lineC, 2, 3 ) )
+      {
+         // Empty space for B. B matches A and C in the empty line. Move it up.
+         (*i3B).lineB = (*i3).lineB;
+         (*i3B).bAEqB = true;
+         (*i3B).bBEqC = true;
+         (*i3).lineB = -1;
+         (*i3).bAEqB = false;
+         (*i3).bBEqC = false;
+         ++i3B;
+         ++lineB;
+      }
+
+      if( line>lineC && (*i3).lineC != -1 && (*i3C).lineA!=-1 && (*i3C).bAEqB  &&
+          ::equal( pldC[(*i3).lineC], pldA[(*i3C).lineA], false )&&
+          isValidMove( pManualDiffHelpList, (*i3).lineC, (*i3C).lineA, 3, 1 ) &&
+          isValidMove( pManualDiffHelpList, (*i3).lineC, (*i3C).lineB, 3, 2 ) )
+      {
+         // Empty space for C. C matches A and B in the empty line. Move it up.
+         (*i3C).lineC = (*i3).lineC;
+         (*i3C).bAEqC = true;
+         (*i3C).bBEqC = true;
+         (*i3).lineC = -1;
+         (*i3).bAEqC = false;
+         (*i3).bBEqC = false;
+         ++i3C;
+         ++lineC;
+      }
+
+      if( line>lineA && (*i3).lineA != -1 && !(*i3).bAEqB && !(*i3).bAEqC && 
+          isValidMove( pManualDiffHelpList, (*i3).lineA, (*i3A).lineB, 1, 2 ) &&
+          isValidMove( pManualDiffHelpList, (*i3).lineA, (*i3A).lineC, 1, 3 ) )      {
+         // Empty space for A. A doesn't match B or C. Move it up.
+         (*i3A).lineA = (*i3).lineA;
+         (*i3).lineA = -1;
+         ++i3A;
+         ++lineA;
+      }
+
+      if( line>lineB && (*i3).lineB != -1 && !(*i3).bAEqB && !(*i3).bBEqC  &&
+          isValidMove( pManualDiffHelpList, (*i3).lineB, (*i3B).lineA, 2, 1 ) &&
+          isValidMove( pManualDiffHelpList, (*i3).lineB, (*i3B).lineC, 2, 3 ) )
+      {
+         // Empty space for B. B matches neither A nor C. Move B up.
+         (*i3B).lineB = (*i3).lineB;
+         (*i3).lineB = -1;
+         ++i3B;
+         ++lineB;
+      }
+
+      if( line>lineC && (*i3).lineC != -1 && !(*i3).bAEqC && !(*i3).bBEqC &&
+          isValidMove( pManualDiffHelpList, (*i3).lineC, (*i3C).lineA, 3, 1 ) &&
+          isValidMove( pManualDiffHelpList, (*i3).lineC, (*i3C).lineB, 3, 2 ) )
+      {
+         // Empty space for C. C matches neither A nor B. Move C up.
+         (*i3C).lineC = (*i3).lineC;
+         (*i3).lineC = -1;
+         ++i3C;
+         ++lineC;
+      }
+
+      if( line>lineA && line>lineB && (*i3).lineA != -1 && (*i3).bAEqB && !(*i3).bAEqC )
+      {
+         // Empty space for A and B. A matches B, but not C. Move A & B up.
+         Diff3LineList::iterator i = lineA > lineB ? i3A   : i3B;
+         int                     l = lineA > lineB ? lineA : lineB;
+
+         if ( isValidMove( pManualDiffHelpList, i->lineC, (*i3).lineA, 3, 1 ) &&
+              isValidMove( pManualDiffHelpList, i->lineC, (*i3).lineB, 3, 2 ) )
+         {
+            (*i).lineA = (*i3).lineA;
+            (*i).lineB = (*i3).lineB;
+            (*i).bAEqB = true;
+
+            (*i3).lineA = -1;
+            (*i3).lineB = -1;
+            (*i3).bAEqB = false;
+            i3A = i;
+            i3B = i;
+            ++i3A;
+            ++i3B;
+            lineA=l+1;
+            lineB=l+1;
+         }
+      }
+      else if( line>lineA && line>lineC && (*i3).lineA != -1 && (*i3).bAEqC && !(*i3).bAEqB )
+      {
+         // Empty space for A and C. A matches C, but not B. Move A & C up.
+         Diff3LineList::iterator i = lineA > lineC ? i3A   : i3C;
+         int                     l = lineA > lineC ? lineA : lineC;
+
+         if ( isValidMove( pManualDiffHelpList, i->lineB, (*i3).lineA, 2, 1 ) &&
+              isValidMove( pManualDiffHelpList, i->lineB, (*i3).lineC, 2, 3 ) )
+         {
+            (*i).lineA = (*i3).lineA;
+            (*i).lineC = (*i3).lineC;
+            (*i).bAEqC = true;
+
+            (*i3).lineA = -1;
+            (*i3).lineC = -1;
+            (*i3).bAEqC = false;
+            i3A = i;
+            i3C = i;
+            ++i3A;
+            ++i3C;
+            lineA=l+1;
+            lineC=l+1;
+         }
+      }
+      else if( line>lineB && line>lineC && (*i3).lineB != -1 && (*i3).bBEqC && !(*i3).bAEqC )
+      {
+         // Empty space for B and C. B matches C, but not A. Move B & C up.
+         Diff3LineList::iterator i = lineB > lineC ? i3B   : i3C;
+         int                     l = lineB > lineC ? lineB : lineC;
+
+         if ( isValidMove( pManualDiffHelpList, i->lineA, (*i3).lineB, 1, 2 ) &&
+              isValidMove( pManualDiffHelpList, i->lineA, (*i3).lineC, 1, 3 ) )
+         {
+            (*i).lineB = (*i3).lineB;
+            (*i).lineC = (*i3).lineC;
+            (*i).bBEqC = true;
+
+            (*i3).lineB = -1;
+            (*i3).lineC = -1;
+            (*i3).bBEqC = false;
+            i3B = i;
+            i3C = i;
+            ++i3B;
+            ++i3C;
+            lineB=l+1;
+            lineC=l+1;
+         }
+      }
+
+      if ( (*i3).lineA != -1 )
+      {
+         lineA = line+1;
+         i3A = i3;
+         ++i3A;
+      }
+      if ( (*i3).lineB != -1 )
+      {
+         lineB = line+1;
+         i3B = i3;
+         ++i3B;
+      }
+      if ( (*i3).lineC != -1 )
+      {
+         lineC = line+1;
+         i3C = i3;
+         ++i3C;
+      }
+   }
+
+   d3ll.removeAll( d3l_empty );
+
+/*
+
+   Diff3LineList::iterator it = d3ll.begin();
+   int li=0;
+   for( ; it!=d3ll.end(); ++it, ++li )
+   {
+      printf( "%4d %4d %4d %4d  A%c=B A%c=C B%c=C\n",
+         li, (*it).lineA, (*it).lineB, (*it).lineC,
+         (*it).bAEqB ? '=' : '!', (*it).bAEqC ? '=' : '!', (*it).bBEqC ? '=' : '!' );
+
+   }
+*/
+}
+
+void DiffBufferInfo::init( Diff3LineList* pD3ll, const Diff3LineVector* pD3lv,
+   const LineData* pldA, int sizeA, const LineData* pldB, int sizeB, const LineData* pldC, int sizeC )
+{
+   m_pDiff3LineList = pD3ll;
+   m_pDiff3LineVector = pD3lv;
+   m_pLineDataA = pldA;
+   m_pLineDataB = pldB;
+   m_pLineDataC = pldC;
+   m_sizeA = sizeA;
+   m_sizeB = sizeB;
+   m_sizeC = sizeC;
+   Diff3LineList::iterator i3 = pD3ll->begin();
+   for( ; i3!=pD3ll->end(); ++i3 )
+   {
+      i3->m_pDiffBufferInfo = this;
+   }
+}
+
+void calcWhiteDiff3Lines(
+   Diff3LineList& d3ll, const LineData* pldA, const LineData* pldB, const LineData* pldC
+   )
+{
+   Diff3LineList::iterator i3 = d3ll.begin();
+
+   for( ; i3!=d3ll.end(); ++i3 )
+   {
+      i3->bWhiteLineA = ( (*i3).lineA == -1  ||  pldA==0 ||  pldA[(*i3).lineA].whiteLine() || pldA[(*i3).lineA].bContainsPureComment );
+      i3->bWhiteLineB = ( (*i3).lineB == -1  ||  pldB==0 ||  pldB[(*i3).lineB].whiteLine() || pldB[(*i3).lineB].bContainsPureComment );
+      i3->bWhiteLineC = ( (*i3).lineC == -1  ||  pldC==0 ||  pldC[(*i3).lineC].whiteLine() || pldC[(*i3).lineC].bContainsPureComment );
+   }
+}
+
+inline bool equal( QChar c1, QChar c2, bool /*bStrict*/ )
+{
+   // If bStrict then white space doesn't match
+
+   //if ( bStrict &&  ( c1==' ' || c1=='\t' ) )
+   //   return false;
+
+   return c1==c2;
+}
+
+
+// My own diff-invention:
+template <class T>
+void calcDiff( const T* p1, int size1, const T* p2, int size2, DiffList& diffList, int match, int maxSearchRange )
+{
+   diffList.clear();
+
+   const T* p1start = p1;
+   const T* p2start = p2;
+   const T* p1end=p1+size1;
+   const T* p2end=p2+size2;
+   for(;;)
+   {
+      int nofEquals = 0;
+      while( p1!=p1end &&  p2!=p2end && equal(*p1, *p2, false) )
+      {
+         ++p1;
+         ++p2;
+         ++nofEquals;
+      }
+
+      bool bBestValid=false;
+      int bestI1=0;
+      int bestI2=0;
+      int i1=0;
+      int i2=0;
+      for( i1=0; ; ++i1 )
+      {
+         if ( &p1[i1]==p1end || ( bBestValid && i1>= bestI1+bestI2))
+         {
+            break;
+         }
+         for(i2=0;i2<maxSearchRange;++i2)
+         {
+            if( &p2[i2]==p2end ||  ( bBestValid && i1+i2>=bestI1+bestI2) )
+            {
+               break;
+            }
+            else if(  equal( p2[i2], p1[i1], true ) &&
+                      ( match==1 ||  abs(i1-i2)<3  || ( &p2[i2+1]==p2end  &&  &p1[i1+1]==p1end ) ||
+                         ( &p2[i2+1]!=p2end  &&  &p1[i1+1]!=p1end  && equal( p2[i2+1], p1[i1+1], false ))
+                      )
+                   )
+            {
+               if ( i1+i2 < bestI1+bestI2 || bBestValid==false )
+               {
+                  bestI1 = i1;
+                  bestI2 = i2;
+                  bBestValid = true;
+                  break;
+               }
+            }
+         }
+      }
+
+      // The match was found using the strict search. Go back if there are non-strict
+      // matches.
+      while( bestI1>=1 && bestI2>=1 && equal( p1[bestI1-1], p2[bestI2-1], false ) )
+      {
+         --bestI1;
+         --bestI2;
+      }
+
+
+      bool bEndReached = false;
+      if (bBestValid)
+      {
+         // continue somehow
+         Diff d(nofEquals, bestI1, bestI2);
+         diffList.push_back( d );
+
+         p1 += bestI1;
+         p2 += bestI2;
+      }
+      else
+      {
+         // Nothing else to match.
+         Diff d(nofEquals, p1end-p1, p2end-p2);
+         diffList.push_back( d );
+
+         bEndReached = true; //break;
+      }
+
+      // Sometimes the algorithm that chooses the first match unfortunately chooses
+      // a match where later actually equal parts don't match anymore.
+      // A different match could be achieved, if we start at the end.
+      // Do it, if it would be a better match.
+      int nofUnmatched = 0;
+      const T* pu1 = p1-1;
+      const T* pu2 = p2-1;
+      while ( pu1>=p1start && pu2>=p2start && equal( *pu1, *pu2, false ) )
+      {
+         ++nofUnmatched;
+         --pu1;
+         --pu2;
+      }
+
+      Diff d = diffList.back();
+      if ( nofUnmatched > 0 )
+      {
+         // We want to go backwards the nofUnmatched elements and redo
+         // the matching
+         d = diffList.back();
+         Diff origBack = d;
+         diffList.pop_back();
+
+         while (  nofUnmatched > 0 )
+         {
+            if ( d.diff1 > 0  &&  d.diff2 > 0 )
+            {
+               --d.diff1;
+               --d.diff2;
+               --nofUnmatched;
+            }
+            else if ( d.nofEquals > 0 )
+            {
+               --d.nofEquals;
+               --nofUnmatched;
+            }
+
+            if ( d.nofEquals==0 && (d.diff1==0 || d.diff2==0) &&  nofUnmatched>0 )
+            {
+               if ( diffList.empty() )
+                  break;
+               d.nofEquals += diffList.back().nofEquals;
+               d.diff1 += diffList.back().diff1;
+               d.diff2 += diffList.back().diff2;
+               diffList.pop_back();
+               bEndReached = false;
+            }
+         }
+
+         if ( bEndReached )
+            diffList.push_back( origBack );
+         else
+         {
+
+            p1 = pu1 + 1 + nofUnmatched;
+            p2 = pu2 + 1 + nofUnmatched;
+            diffList.push_back( d );
+         }
+      }
+      if ( bEndReached )
+         break;
+   }
+
+#ifndef NDEBUG
+   // Verify difflist
+   {
+      int l1=0;
+      int l2=0;
+      DiffList::iterator i;
+      for( i = diffList.begin(); i!=diffList.end(); ++i )
+      {
+         l1+= i->nofEquals + i->diff1;
+         l2+= i->nofEquals + i->diff2;
+      }
+
+      //if( l1!=p1-p1start || l2!=p2-p2start )
+      if( l1!=size1 || l2!=size2 )
+         assert( false );
+   }
+#endif
+}
+
+bool fineDiff(
+   Diff3LineList& diff3LineList,
+   int selector,
+   const LineData* v1,
+   const LineData* v2
+   )
+{
+   // Finetuning: Diff each line with deltas
+   ProgressProxy pp;
+   int maxSearchLength=500;
+   Diff3LineList::iterator i;
+   int k1=0;
+   int k2=0;
+   bool bTextsTotalEqual = true;
+   int listSize = diff3LineList.size();
+   pp.setMaxNofSteps( listSize );
+   int listIdx = 0;
+   for( i= diff3LineList.begin(); i!= diff3LineList.end(); ++i)
+   {
+      if      (selector==1){ k1=i->lineA; k2=i->lineB; }
+      else if (selector==2){ k1=i->lineB; k2=i->lineC; }
+      else if (selector==3){ k1=i->lineC; k2=i->lineA; }
+      else assert(false);
+      if( (k1==-1 && k2!=-1)  ||  (k1!=-1 && k2==-1) ) bTextsTotalEqual=false;
+      if( k1!=-1 && k2!=-1 )
+      {
+         if ( v1[k1].size != v2[k2].size || memcmp( v1[k1].pLine, v2[k2].pLine, v1[k1].size<<1)!=0 )
+         {
+            bTextsTotalEqual = false;
+            DiffList* pDiffList = new DiffList;
+            calcDiff( v1[k1].pLine, v1[k1].size, v2[k2].pLine, v2[k2].size, *pDiffList, 2, maxSearchLength );
+
+            // Optimize the diff list.
+            DiffList::iterator dli;
+            bool bUsefulFineDiff = false;
+            for( dli = pDiffList->begin(); dli!=pDiffList->end(); ++dli)
+            {
+               if( dli->nofEquals >= 4 )
+               {
+                  bUsefulFineDiff = true;
+                  break;
+               }
+            }
+
+            for( dli = pDiffList->begin(); dli!=pDiffList->end(); ++dli)
+            {
+               if( dli->nofEquals < 4  &&  (dli->diff1>0 || dli->diff2>0) 
+                  && !( bUsefulFineDiff && dli==pDiffList->begin() )
+               )
+               {
+                  dli->diff1 += dli->nofEquals;
+                  dli->diff2 += dli->nofEquals;
+                  dli->nofEquals = 0;
+               }
+            }
+
+            if      (selector==1){ delete (*i).pFineAB; (*i).pFineAB = pDiffList; }
+            else if (selector==2){ delete (*i).pFineBC; (*i).pFineBC = pDiffList; }
+            else if (selector==3){ delete (*i).pFineCA; (*i).pFineCA = pDiffList; }
+            else assert(false);
+         }
+
+         if ( (v1[k1].bContainsPureComment || v1[k1].whiteLine()) && (v2[k2].bContainsPureComment || v2[k2].whiteLine()))
+         {
+            if      (selector==1){ i->bAEqB = true; }
+            else if (selector==2){ i->bBEqC = true; }
+            else if (selector==3){ i->bAEqC = true; }
+            else assert(false);
+         }
+      }
+      ++listIdx;
+      pp.step();
+   }
+   return bTextsTotalEqual;
+}
+
+
+// Convert the list to a vector of pointers
+void calcDiff3LineVector( Diff3LineList& d3ll, Diff3LineVector& d3lv )
+{
+   d3lv.resize( d3ll.size() );
+   Diff3LineList::iterator i;
+   int j=0;
+   for( i= d3ll.begin(); i!= d3ll.end(); ++i, ++j)
+   {
+      d3lv[j] = &(*i);
+   }
+   assert( j==(int)d3lv.size() );
+}
+
+
diff --git a/src-QT4/diff.h b/src-QT4/diff.h
new file mode 100644 (file)
index 0000000..b3dc929
--- /dev/null
@@ -0,0 +1,471 @@
+/***************************************************************************
+                          diff.h  -  description
+                             -------------------
+    begin                : Mon Mar 18 2002
+    copyright            : (C) 2002-2007 by Joachim Eibl
+    email                : joachim.eibl at gmx.de
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#ifndef DIFF_H
+#define DIFF_H
+
+#include <QPainter>
+#include <QLinkedList>
+#include <QVector>
+#include <assert.h>
+#include "common.h"
+#include "fileaccess.h"
+#include "options.h"
+
+
+// Each range with matching elements is followed by a range with differences on either side.
+// Then again range of matching elements should follow.
+struct Diff
+{
+   int nofEquals;
+
+   int diff1;
+   int diff2;
+
+   Diff(int eq, int d1, int d2){nofEquals=eq; diff1=d1; diff2=d2; }
+};
+
+typedef std::list<Diff> DiffList;
+
+struct LineData
+{
+   const QChar* pLine;
+   const QChar* pFirstNonWhiteChar;
+   int size;
+
+   LineData(){ pLine=0; pFirstNonWhiteChar=0; size=0; /*occurances=0;*/ 
+               bContainsPureComment=false; }
+   int width(int tabSize) const;  // Calcs width considering tabs.
+   //int occurances;
+   bool whiteLine() const { return pFirstNonWhiteChar-pLine == size; }
+   bool bContainsPureComment;
+};
+
+class Diff3LineList;
+class Diff3LineVector;
+
+struct DiffBufferInfo
+{
+   const LineData* m_pLineDataA;
+   const LineData* m_pLineDataB;
+   const LineData* m_pLineDataC;
+   int m_sizeA;
+   int m_sizeB;
+   int m_sizeC;
+   const Diff3LineList* m_pDiff3LineList;
+   const Diff3LineVector* m_pDiff3LineVector;
+   void init( Diff3LineList* d3ll, const Diff3LineVector* d3lv,
+      const LineData* pldA, int sizeA, const LineData* pldB, int sizeB, const LineData* pldC, int sizeC );
+};
+
+struct Diff3Line
+{
+   int lineA;
+   int lineB;
+   int lineC;
+
+   bool bAEqC : 1;             // These are true if equal or only white-space changes exist.
+   bool bBEqC : 1;
+   bool bAEqB : 1;
+
+   bool bWhiteLineA : 1;
+   bool bWhiteLineB : 1;
+   bool bWhiteLineC : 1;
+
+   DiffList* pFineAB;          // These are 0 only if completely equal or if either source doesn't exist.
+   DiffList* pFineBC;
+   DiffList* pFineCA;
+
+   int linesNeededForDisplay; // Due to wordwrap
+   int sumLinesNeededForDisplay; // For fast conversion to m_diff3WrapLineVector
+
+   DiffBufferInfo* m_pDiffBufferInfo; // For convenience
+
+   Diff3Line()
+   {
+      lineA=-1; lineB=-1; lineC=-1;
+      bAEqC=false; bAEqB=false; bBEqC=false;
+      pFineAB=0; pFineBC=0; pFineCA=0;
+      linesNeededForDisplay=1;
+      sumLinesNeededForDisplay=0;
+      bWhiteLineA=false; bWhiteLineB=false; bWhiteLineC=false;
+      m_pDiffBufferInfo=0;
+   }
+
+   ~Diff3Line()
+   {
+      if (pFineAB!=0) delete pFineAB;
+      if (pFineBC!=0) delete pFineBC;
+      if (pFineCA!=0) delete pFineCA;
+      pFineAB=0; pFineBC=0; pFineCA=0;
+   }
+
+   bool operator==( const Diff3Line& d3l ) const
+   {
+      return lineA == d3l.lineA  &&  lineB == d3l.lineB  &&  lineC == d3l.lineC  
+         && bAEqB == d3l.bAEqB  && bAEqC == d3l.bAEqC  && bBEqC == d3l.bBEqC;
+   }
+
+   const LineData* getLineData( int src ) const
+   {
+      assert( m_pDiffBufferInfo!=0 );
+      if ( src == 1 && lineA >= 0 ) return &m_pDiffBufferInfo->m_pLineDataA[lineA];
+      if ( src == 2 && lineB >= 0 ) return &m_pDiffBufferInfo->m_pLineDataB[lineB];
+      if ( src == 3 && lineC >= 0 ) return &m_pDiffBufferInfo->m_pLineDataC[lineC];
+      return 0;
+   }
+   QString getString( int src ) const
+   {
+      const LineData* pld = getLineData(src);
+      if ( pld )
+         return QString( pld->pLine, pld->size);
+      else
+         return QString();
+   }
+   int getLineInFile( int src ) const
+   {
+      if ( src == 1 ) return lineA;
+      if ( src == 2 ) return lineB;
+      if ( src == 3 ) return lineC;
+      return -1;
+   }
+};
+
+
+class Diff3LineList : public QLinkedList<Diff3Line>
+{
+};
+class Diff3LineVector : public QVector<Diff3Line*>
+{
+};
+
+class Diff3WrapLine
+{
+public:
+   Diff3Line* pD3L;
+   int diff3LineIndex;
+   int wrapLineOffset;
+   int wrapLineLength;
+};
+
+typedef QVector<Diff3WrapLine> Diff3WrapLineVector;
+
+
+class TotalDiffStatus
+{
+public:
+   TotalDiffStatus(){ reset(); }
+   void reset() {bBinaryAEqC=false; bBinaryBEqC=false; bBinaryAEqB=false;
+                 bTextAEqC=false;   bTextBEqC=false;   bTextAEqB=false;
+                 nofUnsolvedConflicts=0; nofSolvedConflicts=0;
+                 nofWhitespaceConflicts=0;
+                }
+   bool bBinaryAEqC : 1;
+   bool bBinaryBEqC : 1;
+   bool bBinaryAEqB : 1;
+
+   bool bTextAEqC : 1;
+   bool bTextBEqC : 1;
+   bool bTextAEqB : 1;
+
+   int nofUnsolvedConflicts;
+   int nofSolvedConflicts;
+   int nofWhitespaceConflicts;
+};
+
+// Three corresponding ranges. (Minimum size of a valid range is one line.)
+class ManualDiffHelpEntry
+{
+public:
+   ManualDiffHelpEntry() { lineA1=-1; lineA2=-1; 
+                           lineB1=-1; lineB2=-1; 
+                           lineC1=-1; lineC2=-1; }
+   int lineA1;
+   int lineA2;
+   int lineB1;
+   int lineB2;
+   int lineC1;
+   int lineC2;
+   int& firstLine( int winIdx )
+   {
+      return winIdx==1 ? lineA1 : (winIdx==2 ? lineB1 : lineC1 );
+   }
+   int& lastLine( int winIdx )
+   {
+      return winIdx==1 ? lineA2 : (winIdx==2 ? lineB2 : lineC2 );
+   }
+   bool isLineInRange( int line, int winIdx )
+   {
+      return line>=0 && line>=firstLine(winIdx) && line<=lastLine(winIdx);
+   }
+   bool operator==(const ManualDiffHelpEntry& r) const
+   {
+      return lineA1 == r.lineA1   &&   lineB1 == r.lineB1   &&   lineC1 == r.lineC1  &&
+             lineA2 == r.lineA2   &&   lineB2 == r.lineB2   &&   lineC2 == r.lineC2;
+   }
+};
+
+// A list of corresponding ranges
+typedef std::list<ManualDiffHelpEntry> ManualDiffHelpList;
+
+void calcDiff3LineListUsingAB(
+   const DiffList* pDiffListAB,
+   Diff3LineList& d3ll
+   );
+
+void calcDiff3LineListUsingAC(
+   const DiffList* pDiffListBC,
+   Diff3LineList& d3ll
+   );
+
+void calcDiff3LineListUsingBC(
+   const DiffList* pDiffListBC,
+   Diff3LineList& d3ll
+   );
+
+void correctManualDiffAlignment( Diff3LineList& d3ll, ManualDiffHelpList* pManualDiffHelpList );
+
+class SourceData
+{
+public:
+   SourceData();
+   ~SourceData();
+
+   void setOptions( Options* pOptions );
+
+   int getSizeLines() const;
+   int getSizeBytes() const;
+   const char* getBuf() const;
+   const QString& getText() const;
+   const LineData* getLineDataForDisplay() const;
+   const LineData* getLineDataForDiff() const;
+
+   void setFilename(const QString& filename);
+   void setFileAccess( const FileAccess& fa );
+   void setEncoding(QTextCodec* pEncoding);
+   //FileAccess& getFileAccess();
+   QString getFilename();
+   void setAliasName(const QString& a);
+   QString getAliasName();
+   bool isEmpty();  // File was set
+   bool hasData();  // Data was readable
+   bool isText();   // is it pure text (vs. binary data)
+   bool isIncompleteConversion(); // true if some replacement characters were found
+   bool isFromBuffer();  // was it set via setData() (vs. setFileAccess() or setFilename())
+   QStringList setData( const QString& data );
+   bool isValid(); // Either no file is specified or reading was successful
+
+   // Returns a list of error messages if anything went wrong
+   QStringList readAndPreprocess(QTextCodec* pEncoding, bool bAutoDetectUnicode );
+   bool saveNormalDataAs( const QString& fileName );
+
+   bool isBinaryEqualWith( const SourceData& other ) const;
+
+   void reset();
+
+   QTextCodec* getEncoding() const { return m_pEncoding; }
+   e_LineEndStyle getLineEndStyle() const { return m_normalData.m_eLineEndStyle; }
+
+private:
+   QTextCodec* detectEncoding( const QString& fileName, QTextCodec* pFallbackCodec );
+   QString m_aliasName;
+   FileAccess m_fileAccess;
+   Options* m_pOptions;
+   QString m_tempInputFileName;
+
+   struct FileData
+   {
+      FileData(){ m_pBuf=0; m_size=0; m_vSize=0; m_bIsText=false; m_eLineEndStyle=eLineEndStyleUndefined; m_bIncompleteConversion=false;}
+      ~FileData(){ reset(); }
+      const char* m_pBuf;
+      int m_size;
+      int m_vSize; // Nr of lines in m_pBuf1 and size of m_v1, m_dv12 and m_dv13
+      QString m_unicodeBuf;
+      QVector<LineData> m_v;
+      bool m_bIsText;
+      bool m_bIncompleteConversion;
+      e_LineEndStyle m_eLineEndStyle;
+      bool readFile( const QString& filename );
+      bool writeFile( const QString& filename );
+      void preprocess(bool bPreserveCR, QTextCodec* pEncoding );
+      void reset();
+      void removeComments();
+      void copyBufFrom( const FileData& src );
+   };
+   FileData m_normalData;
+   FileData m_lmppData;  
+   QTextCodec* m_pEncoding; 
+};
+
+void calcDiff3LineListTrim( Diff3LineList& d3ll, const LineData* pldA, const LineData* pldB, const LineData* pldC, ManualDiffHelpList* pManualDiffHelpList );
+void calcWhiteDiff3Lines(   Diff3LineList& d3ll, const LineData* pldA, const LineData* pldB, const LineData* pldC );
+
+void calcDiff3LineVector( Diff3LineList& d3ll, Diff3LineVector& d3lv );
+
+
+
+class Selection
+{
+public:
+   Selection(){ reset(); oldLastLine=-1; lastLine=-1; oldFirstLine=-1; }
+   int firstLine;
+   int firstPos;
+   int lastLine;
+   int lastPos;
+   int oldLastLine;
+   int oldFirstLine;
+   bool bSelectionContainsData;
+   bool isEmpty() { return firstLine==-1 || (firstLine==lastLine && firstPos==lastPos) || bSelectionContainsData==false;}
+   void reset(){
+      oldFirstLine=firstLine;
+      oldLastLine =lastLine;
+      firstLine=-1;
+      lastLine=-1;
+      bSelectionContainsData = false;
+   }
+   void start( int l, int p ) { firstLine = l; firstPos = p; }
+   void end( int l, int p )  {
+      if ( oldLastLine == -1 )
+         oldLastLine = lastLine;
+      lastLine  = l;
+      lastPos  = p;
+   }
+   bool within( int l, int p );
+
+   bool lineWithin( int l );
+   int firstPosInLine(int l);
+   int lastPosInLine(int l);
+   int beginLine(){ 
+      if (firstLine<0 && lastLine<0) return -1;
+      return max2(0,min2(firstLine,lastLine)); 
+   }
+   int endLine(){ 
+      if (firstLine<0 && lastLine<0) return -1;
+      return max2(firstLine,lastLine); 
+   }
+   int beginPos() { return firstLine==lastLine ? min2(firstPos,lastPos) :
+                           firstLine<lastLine ? (firstLine<0?0:firstPos) : (lastLine<0?0:lastPos);  }
+   int endPos()   { return firstLine==lastLine ? max2(firstPos,lastPos) :
+                           firstLine<lastLine ? lastPos : firstPos;      }
+};
+
+
+// Helper class that swaps left and right for some commands.
+class MyPainter : public QPainter
+{
+   int m_factor;
+   int m_xOffset;
+   int m_fontWidth;
+public:
+   MyPainter(QPaintDevice* pd, bool bRTL, int width, int fontWidth) 
+   : QPainter(pd)
+   {
+      if (bRTL) 
+      {
+         m_fontWidth = fontWidth;
+         m_factor = -1;
+         m_xOffset = width-1;
+      }
+      else
+      {
+         m_fontWidth = 0;
+         m_factor = 1;
+         m_xOffset = 0;
+      }
+   }
+
+   void fillRect( int x, int y, int w, int h, const QBrush& b )
+   {
+      if (m_factor==1)
+         QPainter::fillRect( m_xOffset + x    , y, w, h, b );
+      else
+         QPainter::fillRect( m_xOffset - x - w, y, w, h, b );
+   }
+
+   void drawText( int x, int y, const QString& s, bool bAdapt=false )
+   {
+      Qt::LayoutDirection ld = (m_factor==1 || bAdapt == false) ? Qt::LeftToRight : Qt::RightToLeft;
+      //QPainter::setLayoutDirection( ld );
+      if ( ld==Qt::RightToLeft ) // Reverse the text
+      {
+         QString s2;
+         for( int i=s.length()-1; i>=0; --i )
+         {
+            s2 += s[i];
+         }
+         QPainter::drawText( m_xOffset-m_fontWidth*s.length() + m_factor*x, y, s2 );
+         return;
+      }
+      QPainter::drawText( m_xOffset-m_fontWidth*s.length() + m_factor*x, y, s );
+   }
+
+   void drawLine( int x1, int y1, int x2, int y2 )
+   {
+      QPainter::drawLine( m_xOffset + m_factor*x1, y1, m_xOffset + m_factor*x2, y2 );
+   }
+};
+
+bool runDiff( const LineData* p1, int size1, const LineData* p2, int size2, DiffList& diffList, int winIdx1, int winIdx2,
+              ManualDiffHelpList *pManualDiffHelpList, Options *pOptions);
+
+bool fineDiff(
+   Diff3LineList& diff3LineList,
+   int selector,
+   const LineData* v1,
+   const LineData* v2
+   );
+
+
+bool equal( const LineData& l1, const LineData& l2, bool bStrict );
+
+
+
+
+inline bool isWhite( QChar c )
+{
+   return c==' ' || c=='\t' ||  c=='\r';
+}
+
+/** Returns the number of equivalent spaces at position outPos.
+*/
+inline int tabber( int outPos, int tabSize )
+{
+   return tabSize - ( outPos % tabSize );
+}
+
+/** Returns a line number where the linerange [line, line+nofLines] can
+    be displayed best. If it fits into the currently visible range then
+    the returned value is the current firstLine.
+*/
+int getBestFirstLine( int line, int nofLines, int firstLine, int visibleLines );
+
+extern bool g_bIgnoreWhiteSpace;
+extern bool g_bIgnoreTrivialMatches;
+extern int g_bAutoSolve;
+
+// Cursor conversions that consider g_tabSize.
+int convertToPosInText( const QString& s, int posOnScreen, int tabSize );
+int convertToPosOnScreen( const QString& s, int posInText, int tabSize );
+
+enum e_CoordType { eFileCoords, eD3LLineCoords, eWrapCoords };
+
+void calcTokenPos( const QString&, int posOnScreen, int& pos1, int& pos2, int tabSize );
+
+QString calcHistorySortKey( const QString& keyOrder, QRegExp& matchedRegExpr, const QStringList& parenthesesGroupList );
+bool findParenthesesGroups( const QString& s, QStringList& sl );
+#endif
+
diff --git a/src-QT4/difftextwindow.cpp b/src-QT4/difftextwindow.cpp
new file mode 100644 (file)
index 0000000..7c334b8
--- /dev/null
@@ -0,0 +1,2144 @@
+/***************************************************************************
+                          difftextwindow.cpp  -  description
+                             -------------------
+    begin                : Mon Apr 8 2002
+    copyright            : (C) 2002-2007 by Joachim Eibl
+    email                : joachim.eibl at gmx.de
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#include "difftextwindow.h"
+#include "kdiff3.h"
+#include "merger.h"
+#include "options.h"
+
+#include <qnamespace.h>
+#include <QDragEnterEvent>
+#include <QDir>
+#include <QStatusBar>
+#include <QApplication>
+#include <QToolTip>
+#include <QLineEdit>
+#include <QLabel>
+#include <QPushButton>
+#include <QLayout>
+#include <QTextCodec>
+#include <QUrl>
+#include <QMenu>
+#include <QTextLayout>
+#include <QRunnable>
+#include <QThreadPool>
+#include <QMimeData>
+
+#include <klocale.h>
+#include <kfiledialog.h>
+
+#include <cmath>
+#include <cstdlib>
+#include <assert.h>
+
+static QAtomicInt s_runnableCount = 0;
+
+
+class DiffTextWindowData
+{
+public:
+   DiffTextWindowData( DiffTextWindow* p )
+   {
+      m_pDiffTextWindow = p;
+      m_bPaintingAllowed = false;
+      m_pLineData = 0;
+      m_size = 0;
+      m_bWordWrap = false;
+      m_delayedDrawTimer = 0;
+      m_pDiff3LineVector = 0;
+      m_pManualDiffHelpList = 0;
+      m_pOptions = 0;
+      m_fastSelectorLine1 = 0;
+      m_fastSelectorNofLines = 0;
+      m_bTriple = 0;
+      m_winIdx = 0;
+      m_firstLine = 0;
+      m_oldFirstLine = 0;
+      m_horizScrollOffset = 0;
+      m_lineNumberWidth = 0;
+      m_maxTextWidth = -1;
+      m_pStatusBar = 0;
+      m_scrollDeltaX = 0;
+      m_scrollDeltaY = 0;
+      m_bMyUpdate = false;
+      m_bSelectionInProgress = false;
+      m_pTextCodec = 0;
+      #if defined(_WIN32) || defined(Q_OS_OS2)
+      m_eLineEndStyle = eLineEndStyleDos;
+      #else
+      m_eLineEndStyle = eLineEndStyleUnix;
+      #endif
+   }
+   DiffTextWindow* m_pDiffTextWindow;
+   DiffTextWindowFrame* m_pDiffTextWindowFrame;
+   QTextCodec* m_pTextCodec;
+   e_LineEndStyle m_eLineEndStyle;
+
+   bool m_bPaintingAllowed;
+   const LineData* m_pLineData;
+   int m_size;
+   QString m_filename;
+   bool m_bWordWrap;
+   int m_delayedDrawTimer;
+
+   const Diff3LineVector* m_pDiff3LineVector;
+   Diff3WrapLineVector m_diff3WrapLineVector;
+   const ManualDiffHelpList* m_pManualDiffHelpList;
+
+   class WrapLineCacheData 
+   { 
+   public:
+      WrapLineCacheData() : m_d3LineIdx(0), m_textStart(0), m_textLength(0) {}
+      WrapLineCacheData( int d3LineIdx, int textStart, int textLength )
+      : m_d3LineIdx(d3LineIdx), m_textStart(textStart), m_textLength(textLength) {}
+      int m_d3LineIdx; int m_textStart; int m_textLength; 
+   };
+   QList< QVector<WrapLineCacheData> > m_wrapLineCacheList;
+
+   Options* m_pOptions;
+   QColor m_cThis;
+   QColor m_cDiff1;
+   QColor m_cDiff2;
+   QColor m_cDiffBoth;
+
+   int m_fastSelectorLine1;
+   int m_fastSelectorNofLines;
+
+   bool m_bTriple;
+   int m_winIdx;
+   int m_firstLine;
+   int m_oldFirstLine;
+   int m_horizScrollOffset;
+   int m_lineNumberWidth;
+   QAtomicInt m_maxTextWidth;
+
+   void getLineInfo(
+           const Diff3Line& d,
+           int& lineIdx,
+           DiffList*& pFineDiff1, DiffList*& pFineDiff2,   // return values
+           int& changed, int& changed2  );
+
+   QString getString( int d3lIdx );
+   QString getLineString( int line );
+
+   void writeLine(
+         MyPainter& p, const LineData* pld,
+         const DiffList* pLineDiff1, const DiffList* pLineDiff2, int line,
+         int whatChanged, int whatChanged2, int srcLineIdx,
+         int wrapLineOffset, int wrapLineLength, bool bWrapLine, const QRect& invalidRect, int deviceWidth
+         );
+
+   void draw( MyPainter& p, const QRect& invalidRect, int deviceWidth, int beginLine, int endLine );
+
+   QStatusBar* m_pStatusBar;
+
+   Selection m_selection;
+
+   int m_scrollDeltaX;
+   int m_scrollDeltaY;
+
+   bool m_bMyUpdate;
+   void myUpdate(int afterMilliSecs );
+
+   int leftInfoWidth() { return 4+m_lineNumberWidth; }   // Nr of information columns on left side
+   int convertLineOnScreenToLineInSource( int lineOnScreen, e_CoordType coordType, bool bFirstLine );
+
+   bool m_bSelectionInProgress;
+   QPoint m_lastKnownMousePos;
+   void prepareTextLayout( QTextLayout& textLayout, bool bFirstLine, int visibleTextWidth=-1 );
+};
+
+DiffTextWindow::DiffTextWindow(
+   DiffTextWindowFrame* pParent,
+   QStatusBar* pStatusBar,
+   Options* pOptions,
+   int winIdx
+   )
+   : QWidget(pParent)
+{
+   setObjectName(QString("DiffTextWindow%1").arg(winIdx));
+   setAttribute( Qt::WA_OpaquePaintEvent );
+   //setAttribute( Qt::WA_PaintOnScreen );
+
+   d = new DiffTextWindowData(this);
+   d->m_pDiffTextWindowFrame = pParent;
+   setFocusPolicy( Qt::ClickFocus );
+   setAcceptDrops( true );
+
+   d->m_pOptions = pOptions;
+   init( 0, 0, d->m_eLineEndStyle, 0, 0, 0, 0, false );
+
+   setMinimumSize(QSize(20,20));
+
+   d->m_pStatusBar = pStatusBar;
+   d->m_bPaintingAllowed = true;
+   d->m_bWordWrap = false;
+   d->m_winIdx = winIdx;
+
+   setFont(d->m_pOptions->m_font);
+}
+
+DiffTextWindow::~DiffTextWindow()
+{
+   delete d;
+}
+
+void DiffTextWindow::init(
+   const QString& filename,
+   QTextCodec* pTextCodec,
+   e_LineEndStyle eLineEndStyle,
+   const LineData* pLineData,
+   int size,
+   const Diff3LineVector* pDiff3LineVector,
+   const ManualDiffHelpList* pManualDiffHelpList,
+   bool bTriple
+   )
+{
+   d->m_filename = filename;
+   d->m_pLineData = pLineData;
+   d->m_size = size;
+   d->m_pDiff3LineVector = pDiff3LineVector;
+   d->m_diff3WrapLineVector.clear();
+   d->m_pManualDiffHelpList = pManualDiffHelpList;
+
+   d->m_firstLine = 0;
+   d->m_oldFirstLine = -1;
+   d->m_horizScrollOffset = 0;
+   d->m_bTriple = bTriple;
+   d->m_scrollDeltaX=0;
+   d->m_scrollDeltaY=0;
+   d->m_bMyUpdate = false;
+   d->m_fastSelectorLine1 = 0;
+   d->m_fastSelectorNofLines = 0;
+   d->m_lineNumberWidth = 0;
+   d->m_maxTextWidth = -1;
+   d->m_selection.reset();
+   d->m_selection.oldFirstLine = -1; // reset is not enough here.
+   d->m_selection.oldLastLine = -1;
+   d->m_selection.lastLine = -1;
+
+   d->m_pTextCodec = pTextCodec;
+   d->m_eLineEndStyle = eLineEndStyle;
+
+   update();
+   d->m_pDiffTextWindowFrame->init();
+}
+
+void DiffTextWindow::reset()
+{
+   d->m_pLineData=0;
+   d->m_size=0;
+   d->m_pDiff3LineVector=0;
+   d->m_filename="";
+   d->m_diff3WrapLineVector.clear();
+}
+
+void DiffTextWindow::setPaintingAllowed( bool bAllowPainting )
+{
+   if (d->m_bPaintingAllowed != bAllowPainting)
+   {
+      d->m_bPaintingAllowed = bAllowPainting;
+      if ( d->m_bPaintingAllowed ) update();
+      else reset();
+   }
+}
+
+void DiffTextWindow::dragEnterEvent( QDragEnterEvent* e )
+{
+   e->setAccepted( e->mimeData()->hasUrls() || e->mimeData()->hasText() );
+   // Note that the corresponding drop is handled in KDiff3App::eventFilter().
+}
+
+
+void DiffTextWindow::setFirstLine(int firstLine)
+{
+   int fontHeight = fontMetrics().lineSpacing();
+
+   int newFirstLine = max2(0,firstLine);
+
+   int deltaY = fontHeight * ( d->m_firstLine - newFirstLine );
+
+   d->m_firstLine = newFirstLine;
+
+   if ( d->m_bSelectionInProgress && d->m_selection.firstLine != -1 )
+   {
+      int line, pos;
+      convertToLinePos( d->m_lastKnownMousePos.x(), d->m_lastKnownMousePos.y(), line, pos );
+      d->m_selection.end( line, pos );
+      update();
+   }
+   else
+   {
+      QWidget::scroll( 0, deltaY );
+   }
+   d->m_pDiffTextWindowFrame->setFirstLine( d->m_firstLine );
+}
+
+int DiffTextWindow::getFirstLine()
+{
+   return d->m_firstLine;
+}
+
+void DiffTextWindow::setHorizScrollOffset(int horizScrollOffset)
+{
+   int fontWidth = fontMetrics().width('0');
+   int xOffset = d->leftInfoWidth() * fontWidth;
+
+   int deltaX = d->m_horizScrollOffset - qMax(0,horizScrollOffset);
+
+   d->m_horizScrollOffset = qMax(0,horizScrollOffset);
+
+   QRect r( xOffset, 0, width()-xOffset, height() );
+
+   if ( d->m_pOptions->m_bRightToLeftLanguage )
+   {
+      deltaX = -deltaX;
+      r = QRect( width()-xOffset-2, 0, -(width()-xOffset), height() ).normalized();
+   }
+
+   if ( d->m_bSelectionInProgress && d->m_selection.firstLine != -1 )
+   {
+      int line, pos;
+      convertToLinePos( d->m_lastKnownMousePos.x(), d->m_lastKnownMousePos.y(), line, pos );
+      d->m_selection.end( line, pos );
+      update();
+   }
+   else
+   {
+      QWidget::scroll( deltaX, 0, r );
+   }
+}
+
+int DiffTextWindow::getMaxTextWidth()
+{
+   if (d->m_bWordWrap)
+   {
+      return getVisibleTextAreaWidth();
+   }
+   else if ( getAtomic( d->m_maxTextWidth ) < 0 )
+   {
+      d->m_maxTextWidth = 0;
+      QFontMetrics fm( fontMetrics() );
+      QTextLayout textLayout(QString(), font(), this);
+      for (int i = 0; i< d->m_size; ++i)
+      {
+         textLayout.clearLayout();
+         textLayout.setText(d->getString(i));
+         d->prepareTextLayout( textLayout, true );
+         if ( textLayout.maximumWidth() > getAtomic( d->m_maxTextWidth ) )
+            d->m_maxTextWidth = textLayout.maximumWidth();
+      }
+   }
+   return getAtomic( d->m_maxTextWidth );
+}
+
+int DiffTextWindow::getNofLines()
+{
+   return d->m_bWordWrap ? d->m_diff3WrapLineVector.size() : 
+                        d->m_pDiff3LineVector->size();
+}
+
+
+int DiffTextWindow::convertLineToDiff3LineIdx( int line )
+{
+   if ( line>=0 && d->m_bWordWrap && d->m_diff3WrapLineVector.size()>0 )
+      return d->m_diff3WrapLineVector[ min2( line, (int)d->m_diff3WrapLineVector.size()-1 ) ].diff3LineIndex;
+   else
+      return line;
+}
+
+int DiffTextWindow::convertDiff3LineIdxToLine( int d3lIdx )
+{
+   if ( d->m_bWordWrap && d->m_pDiff3LineVector!=0 && d->m_pDiff3LineVector->size()>0 )
+      return (*d->m_pDiff3LineVector)[ min2( d3lIdx, (int)d->m_pDiff3LineVector->size()-1 ) ]->sumLinesNeededForDisplay;
+   else
+      return d3lIdx;
+}
+
+/** Returns a line number where the linerange [line, line+nofLines] can
+    be displayed best. If it fits into the currently visible range then
+    the returned value is the current firstLine.
+*/
+int getBestFirstLine( int line, int nofLines, int firstLine, int visibleLines )
+{
+   int newFirstLine = firstLine;
+   if ( line < firstLine  ||  line + nofLines + 2 > firstLine + visibleLines )
+   {
+      if ( nofLines > visibleLines || nofLines <= ( 2*visibleLines / 3 - 1)  )
+         newFirstLine = line - visibleLines/3;
+      else
+         newFirstLine = line - (visibleLines - nofLines);
+   }
+
+   return newFirstLine;
+}
+
+
+void DiffTextWindow::setFastSelectorRange( int line1, int nofLines )
+{
+   d->m_fastSelectorLine1 = line1;
+   d->m_fastSelectorNofLines = nofLines;
+   if ( isVisible() )
+   {
+      int newFirstLine = getBestFirstLine( 
+         convertDiff3LineIdxToLine(d->m_fastSelectorLine1), 
+         convertDiff3LineIdxToLine(d->m_fastSelectorLine1+d->m_fastSelectorNofLines)-convertDiff3LineIdxToLine(d->m_fastSelectorLine1), 
+         d->m_firstLine, 
+         getNofVisibleLines() 
+         );
+      if ( newFirstLine != d->m_firstLine )
+      {
+         scroll( 0, newFirstLine - d->m_firstLine );
+      }
+
+      update();
+   }
+}
+
+
+void DiffTextWindow::showStatusLine(int line )
+{
+   int d3lIdx = convertLineToDiff3LineIdx( line );
+   if( d->m_pDiff3LineVector!=0 && d3lIdx >= 0 && d3lIdx<(int)d->m_pDiff3LineVector->size() )
+   {
+      const Diff3Line* pD3l = (*d->m_pDiff3LineVector)[d3lIdx];
+      if ( pD3l != 0 )
+      {
+         int l = pD3l->getLineInFile( d->m_winIdx );
+
+         QString s = i18n("File") + " " + d->m_filename;
+         if ( l!=-1 )
+            s += ": " + i18n("Line") + " " + QString::number( l+1 );
+         else
+            s += ": " + i18n("Line not available");
+         if (d->m_pStatusBar!=0) d->m_pStatusBar->showMessage(s);
+
+         emit lineClicked( d->m_winIdx, l );
+      }
+   }
+}
+
+void DiffTextWindow::focusInEvent(QFocusEvent* e)
+{
+   emit gotFocus();
+   QWidget::focusInEvent(e);
+}
+
+void DiffTextWindow::mousePressEvent ( QMouseEvent* e )
+{
+   if ( e->button() == Qt::LeftButton )
+   {
+      int line;
+      int pos;
+      convertToLinePos( e->x(), e->y(), line, pos );
+
+      int fontWidth = fontMetrics().width('0');
+      int xOffset = d->leftInfoWidth() * fontWidth;
+
+      if ( (! d->m_pOptions->m_bRightToLeftLanguage && e->x() < xOffset )
+           || ( d->m_pOptions->m_bRightToLeftLanguage && e->x() > width() - xOffset ) )
+      {
+         emit setFastSelectorLine( convertLineToDiff3LineIdx(line) );
+         d->m_selection.firstLine = -1;     // Disable current d->m_selection
+      }
+      else
+      {  // Selection
+         resetSelection();
+         d->m_selection.start( line, pos );
+         d->m_selection.end( line, pos );
+         d->m_bSelectionInProgress = true;
+         d->m_lastKnownMousePos = e->pos();
+
+         showStatusLine( line );
+      }
+   }
+}
+
+bool isCTokenChar( QChar c )
+{
+   return (c=='_')  ||
+          ( c>='A' && c<='Z' ) || ( c>='a' && c<='z' ) ||
+          (c>='0' && c<='9');
+}
+
+/// Calculate where a token starts and ends, given the x-position on screen.
+void calcTokenPos( const QString& s, int posOnScreen, int& pos1, int& pos2, int tabSize )
+{
+   // Cursor conversions that consider g_tabSize
+   int pos = convertToPosInText( s, max2( 0, posOnScreen ), tabSize );
+   if ( pos>=(int)s.length() )
+   {
+      pos1=s.length();
+      pos2=s.length();
+      return;
+   }
+
+   pos1 = pos;
+   pos2 = pos+1;
+
+   if( isCTokenChar( s[pos1] ) )
+   {
+      while( pos1>=0 && isCTokenChar( s[pos1] ) )
+         --pos1;
+      ++pos1;
+
+      while( pos2<(int)s.length() && isCTokenChar( s[pos2] ) )
+         ++pos2;
+   }
+}
+
+void DiffTextWindow::mouseDoubleClickEvent( QMouseEvent* e )
+{
+   d->m_bSelectionInProgress = false;
+   d->m_lastKnownMousePos = e->pos();
+   if ( e->button() == Qt::LeftButton )
+   {
+      int line;
+      int pos;
+      convertToLinePos( e->x(), e->y(), line, pos );
+
+      // Get the string data of the current line
+      QString s;
+      if ( d->m_bWordWrap )
+      {
+         if ( line<0 || line >= (int)d->m_diff3WrapLineVector.size() )
+            return;
+         const Diff3WrapLine& d3wl = d->m_diff3WrapLineVector[line];
+         s = d->getString( d3wl.diff3LineIndex ).mid( d3wl.wrapLineOffset, d3wl.wrapLineLength );
+      }
+      else
+      {
+         if ( line<0 || line >= (int)d->m_pDiff3LineVector->size() )
+            return;
+         s = d->getString( line );
+      }
+
+      if ( ! s.isEmpty() )
+      {
+         int pos1, pos2;
+         calcTokenPos( s, pos, pos1, pos2, d->m_pOptions->m_tabSize );
+
+         resetSelection();
+         d->m_selection.start( line, convertToPosOnScreen( s, pos1, d->m_pOptions->m_tabSize ) );
+         d->m_selection.end( line, convertToPosOnScreen( s, pos2, d->m_pOptions->m_tabSize ) );
+         update();
+         // emit d->m_selectionEnd() happens in the mouseReleaseEvent.
+         showStatusLine( line );
+      }
+   }
+}
+
+void DiffTextWindow::mouseReleaseEvent ( QMouseEvent* e )
+{
+   d->m_bSelectionInProgress = false;
+   d->m_lastKnownMousePos = e->pos();
+   //if ( e->button() == LeftButton )
+   {
+      if (d->m_delayedDrawTimer)
+         killTimer(d->m_delayedDrawTimer);
+      d->m_delayedDrawTimer = 0;
+      if (d->m_selection.firstLine != -1 )
+      {
+         emit selectionEnd();
+      }
+   }
+   d->m_scrollDeltaX=0;
+   d->m_scrollDeltaY=0;
+}
+
+inline int sqr(int x){return x*x;}
+
+void DiffTextWindow::mouseMoveEvent ( QMouseEvent * e )
+{
+   int line;
+   int pos;
+   convertToLinePos( e->x(), e->y(), line, pos );
+   d->m_lastKnownMousePos = e->pos();
+
+   if (d->m_selection.firstLine != -1 )
+   {
+      d->m_selection.end( line, pos );
+
+      showStatusLine( line );
+
+      // Scroll because mouse moved out of the window
+      const QFontMetrics& fm = fontMetrics();
+      int fontWidth = fm.width('0');
+      int deltaX=0;
+      int deltaY=0;
+      if ( ! d->m_pOptions->m_bRightToLeftLanguage )
+      {
+         if ( e->x() < d->leftInfoWidth()*fontWidth )  deltaX = -1 - abs(e->x()-d->leftInfoWidth()*fontWidth)/fontWidth;
+         if ( e->x() > width()     )                   deltaX = +1 + abs(e->x()-width())/fontWidth;
+      }
+      else
+      {
+         if ( e->x() > width()-1-d->leftInfoWidth()*fontWidth ) deltaX=+1+ abs(e->x() - (width()-1-d->leftInfoWidth()*fontWidth)) / fontWidth;
+         if ( e->x() < fontWidth )                              deltaX=-1- abs(e->x()-fontWidth)/fontWidth;
+      }
+      if ( e->y() < 0 )          deltaY = -1 - sqr( e->y() ) / sqr(fm.lineSpacing());
+      if ( e->y() > height() )   deltaY = +1 + sqr( e->y() - height() ) / sqr(fm.lineSpacing());
+      if ( (deltaX != 0 && d->m_scrollDeltaX!=deltaX) || (deltaY!= 0 && d->m_scrollDeltaY!=deltaY) )
+      {
+         d->m_scrollDeltaX = deltaX;
+         d->m_scrollDeltaY = deltaY;
+         emit scroll( deltaX, deltaY );
+         if (d->m_delayedDrawTimer)
+            killTimer( d->m_delayedDrawTimer );
+         d->m_delayedDrawTimer = startTimer(50);
+      }
+      else
+      {
+         d->m_scrollDeltaX = deltaX;
+         d->m_scrollDeltaY = deltaY;
+         d->myUpdate(0);
+      }
+   }
+}
+
+
+void DiffTextWindowData::myUpdate(int afterMilliSecs)
+{
+   if (m_delayedDrawTimer)
+      m_pDiffTextWindow->killTimer( m_delayedDrawTimer );
+   m_bMyUpdate = true;
+   m_delayedDrawTimer = m_pDiffTextWindow->startTimer( afterMilliSecs );
+}
+
+void DiffTextWindow::timerEvent(QTimerEvent*)
+{
+   killTimer(d->m_delayedDrawTimer);
+   d->m_delayedDrawTimer = 0;
+
+   if ( d->m_bMyUpdate )
+   {
+      int fontHeight = fontMetrics().lineSpacing();
+
+      if ( d->m_selection.oldLastLine != -1 )
+      {
+         int lastLine;
+         int firstLine;
+         if ( d->m_selection.oldFirstLine != -1 )
+         {
+            firstLine = min3( d->m_selection.oldFirstLine, d->m_selection.lastLine, d->m_selection.oldLastLine );
+            lastLine = max3( d->m_selection.oldFirstLine, d->m_selection.lastLine, d->m_selection.oldLastLine );
+         }
+         else
+         {
+            firstLine = min2( d->m_selection.lastLine, d->m_selection.oldLastLine );
+            lastLine = max2( d->m_selection.lastLine, d->m_selection.oldLastLine );
+         }
+         int y1 = ( firstLine - d->m_firstLine ) * fontHeight;
+         int y2 = min2( height(), ( lastLine  - d->m_firstLine + 1 ) * fontHeight );
+
+         if ( y1<height() && y2>0 )
+         {
+            QRect invalidRect = QRect( 0, y1-1, width(), y2-y1+fontHeight);  // Some characters in exotic exceed the regular bottom.
+            update( invalidRect );
+         }
+      }
+
+      d->m_bMyUpdate = false;
+   }
+
+   if ( d->m_scrollDeltaX != 0 || d->m_scrollDeltaY != 0 )
+   {
+      d->m_selection.end( d->m_selection.lastLine + d->m_scrollDeltaY, d->m_selection.lastPos +  d->m_scrollDeltaX );
+      emit scroll( d->m_scrollDeltaX, d->m_scrollDeltaY );
+      killTimer(d->m_delayedDrawTimer);
+      d->m_delayedDrawTimer = startTimer(50);
+   }
+}
+
+void DiffTextWindow::resetSelection()
+{
+   d->m_selection.reset();
+   update();
+}
+
+void DiffTextWindow::convertToLinePos( int x, int y, int& line, int& pos )
+{
+   const QFontMetrics& fm = fontMetrics();
+   int fontHeight = fm.lineSpacing();
+
+   int yOffset = - d->m_firstLine * fontHeight;
+
+   line = ( y - yOffset ) / fontHeight;
+   if ( line >= 0 && (!d->m_pOptions->m_bWordWrap || line < d->m_diff3WrapLineVector.count()) )
+   {
+      QString s = d->getLineString( line );
+      QTextLayout textLayout( s, font(), this );
+      d->prepareTextLayout( textLayout, !d->m_pOptions->m_bWordWrap || d->m_diff3WrapLineVector[line].wrapLineOffset==0 );
+      pos = textLayout.lineAt(0).xToCursor( x - textLayout.position().x() );
+   }
+   else
+      pos = -1;
+}
+
+int Selection::firstPosInLine(int l)
+{
+   assert( firstLine != -1 );
+
+   int l1 = firstLine;
+   int l2 = lastLine;
+   int p1 = firstPos;
+   int p2 = lastPos;
+   if ( l1>l2 ){ std::swap(l1,l2); std::swap(p1,p2); }
+   if ( l1==l2 && p1>p2 ){ std::swap(p1,p2); }
+
+   if ( l==l1 )
+      return p1;
+   return 0;
+}
+
+int Selection::lastPosInLine(int l)
+{
+   assert( firstLine != -1 );
+
+   int l1 = firstLine;
+   int l2 = lastLine;
+   int p1 = firstPos;
+   int p2 = lastPos;
+
+   if ( l1>l2 ){ std::swap(l1,l2); std::swap(p1,p2); }
+   if ( l1==l2 && p1>p2 ){ std::swap(p1,p2); }
+
+   if ( l==l2 )
+      return p2;
+   return INT_MAX;
+}
+
+bool Selection::within( int l, int p )
+{
+   if ( firstLine == -1 ) return false;
+   int l1 = firstLine;
+   int l2 = lastLine;
+   int p1 = firstPos;
+   int p2 = lastPos;
+   if ( l1>l2 ){ std::swap(l1,l2); std::swap(p1,p2); }
+   if ( l1==l2 && p1>p2 ){ std::swap(p1,p2); }
+   if( l1 <= l && l <= l2 )
+   {
+      if ( l1==l2 )
+         return p>=p1 && p<p2;
+      if ( l==l1 )
+         return p>=p1;
+      if ( l==l2 )
+         return p<p2;
+      return true;
+   }
+   return false;
+}
+
+bool Selection::lineWithin( int l )
+{
+   if ( firstLine == -1 ) return false;
+   int l1 = firstLine;
+   int l2 = lastLine;
+
+   if ( l1>l2 ){ std::swap(l1,l2); }
+
+   return ( l1 <= l && l <= l2 );
+}
+
+
+class FormatRangeHelper
+{
+private:
+   QFont m_font;
+   QPen m_pen;
+   QColor m_background;
+   int m_currentPos;
+public:
+   QVector<QTextLayout::FormatRange> m_formatRanges;
+
+   FormatRangeHelper()
+   { 
+      m_pen = QColor(Qt::black);
+      m_background = QColor(Qt::white);
+      m_currentPos = 0;
+   }
+   void setFont( const QFont& f )
+   {
+      m_font = f;
+   }
+   void setPen( const QPen& pen )
+   {
+      m_pen = pen;
+   }
+   void setBackground( const QColor& background )
+   {
+      m_background = background;
+   }
+
+   void next()
+   {
+      if ( m_formatRanges.isEmpty()
+           || m_formatRanges.back().format.foreground().color() != m_pen.color()
+           || m_formatRanges.back().format.background().color() != m_background
+           )
+      {
+         QTextLayout::FormatRange fr;
+         fr.length = 1;
+         fr.start = m_currentPos;
+         fr.format.setForeground( m_pen.color() );
+         fr.format.setBackground( m_background );
+         m_formatRanges.append( fr );
+      }
+      else
+      {
+         ++m_formatRanges.back().length;
+      }
+      ++m_currentPos;
+   }
+};
+
+void DiffTextWindowData::prepareTextLayout( QTextLayout& textLayout, bool /*bFirstLine*/, int visibleTextWidth )
+{
+   QTextOption textOption;
+   textOption.setTabStop( QFontMetricsF(m_pDiffTextWindow->font()).width(' ') * m_pOptions->m_tabSize );
+   if ( m_pOptions->m_bShowWhiteSpaceCharacters )
+      textOption.setFlags( QTextOption::ShowTabsAndSpaces );
+   if ( m_pOptions->m_bRightToLeftLanguage )
+      textOption.setAlignment(Qt::AlignRight); // only relevant for multi line text layout
+   if ( visibleTextWidth>=0 )
+      textOption.setWrapMode( QTextOption::WrapAtWordBoundaryOrAnywhere );
+
+   textLayout.setTextOption( textOption );
+
+   if ( m_pOptions->m_bShowWhiteSpaceCharacters )
+   {
+      // This additional format is only necessary for the tab arrow
+      QList<QTextLayout::FormatRange> formats;
+      QTextLayout::FormatRange formatRange;
+      formatRange.start = 0;
+      formatRange.length = textLayout.text().length();
+      formatRange.format.setFont( m_pDiffTextWindow->font() );
+      formats.append( formatRange );
+      textLayout.setAdditionalFormats(formats);
+   }
+   textLayout.beginLayout();
+
+   int leading = m_pDiffTextWindow->fontMetrics().leading();
+   int height = 0;
+
+
+   int fontWidth = m_pDiffTextWindow->fontMetrics().width('0');
+   int xOffset = leftInfoWidth() * fontWidth - m_horizScrollOffset;
+   int textWidth = visibleTextWidth;
+   if ( textWidth<0 )
+      textWidth = m_pDiffTextWindow->width() - xOffset;
+
+   int indentation = 0;
+   while (1)
+   {
+      QTextLine line = textLayout.createLine();
+      if (!line.isValid())
+         break;
+
+      height += leading;
+      //if ( !bFirstLine )
+      //   indentation = m_pDiffTextWindow->fontMetrics().width(' ') * m_pOptions->m_tabSize;
+      if ( visibleTextWidth>=0 )
+      {
+         line.setLineWidth( visibleTextWidth -indentation );
+         line.setPosition(QPointF(indentation, height));
+         height += line.height();
+         //bFirstLine = false;
+      }
+      else // only one line
+      {
+         line.setPosition( QPointF(indentation, height));
+         break;
+      }
+   }
+
+   textLayout.endLayout();
+   if ( m_pOptions->m_bRightToLeftLanguage )
+      textLayout.setPosition( QPointF( textWidth - textLayout.maximumWidth(),0) );
+   else
+      textLayout.setPosition( QPointF( xOffset,0) );
+
+}
+
+void DiffTextWindowData::writeLine(
+   MyPainter& p,
+   const LineData* pld,
+   const DiffList* pLineDiff1,
+   const DiffList* pLineDiff2,
+   int line,
+   int whatChanged,
+   int whatChanged2,
+   int srcLineIdx,
+   int wrapLineOffset,
+   int wrapLineLength,
+   bool bWrapLine,
+   const QRect& invalidRect,
+   int deviceWidth
+   )
+{
+   QFont normalFont = p.font();
+   QFont diffFont = normalFont;
+   diffFont.setItalic( m_pOptions->m_bItalicForDeltas );
+   const QFontMetrics& fm = p.fontMetrics();
+   int fontHeight = fm.lineSpacing();
+   int fontAscent = fm.ascent();
+   int fontWidth = fm.width('0');
+
+   int xOffset = leftInfoWidth() * fontWidth - m_horizScrollOffset;
+   int yOffset = (line-m_firstLine) * fontHeight;
+
+   QRect lineRect( 0, yOffset, deviceWidth, fontHeight );
+   if ( ! invalidRect.intersects( lineRect ) )
+   {
+      return;
+   }
+
+   int fastSelectorLine1 = m_pDiffTextWindow->convertDiff3LineIdxToLine(m_fastSelectorLine1);
+   int fastSelectorLine2 = m_pDiffTextWindow->convertDiff3LineIdxToLine(m_fastSelectorLine1+m_fastSelectorNofLines)-1;
+
+   bool bFastSelectionRange = (line>=fastSelectorLine1 && line<= fastSelectorLine2 );
+   QColor bgColor = m_pOptions->m_bgColor;
+   QColor diffBgColor = m_pOptions->m_diffBgColor;
+
+   if ( bFastSelectionRange )
+   {
+      bgColor = m_pOptions->m_currentRangeBgColor;
+      diffBgColor = m_pOptions->m_currentRangeDiffBgColor;
+   }
+
+   if ( yOffset+fontHeight<invalidRect.top()  ||  invalidRect.bottom() < yOffset-fontHeight )
+      return;
+
+   int changed = whatChanged;
+   if ( pLineDiff1 != 0 ) changed |= 1;
+   if ( pLineDiff2 != 0 ) changed |= 2;
+
+   QColor c = m_pOptions->m_fgColor;
+   p.setPen(c);
+   if ( changed == 2 ) {
+      c = m_cDiff2;
+   } else if ( changed == 1 ) {
+      c = m_cDiff1;
+   } else if ( changed == 3 ) {
+      c = m_cDiffBoth;
+   }
+
+   if (pld!=0)
+   {
+      // First calculate the "changed" information for each character.
+      int i=0;
+      QString lineString( pld->pLine, pld->size );
+      if ( !lineString.isEmpty() )
+      {
+         switch ( lineString[lineString.length()-1].unicode() )
+         {
+         case '\n' : lineString[lineString.length()-1] = 0x00B6; break; // "Pilcrow", "paragraph mark"
+         case '\r' : lineString[lineString.length()-1] = 0x00A4; break; // Currency sign ;0x2761 "curved stem paragraph sign ornament"
+         //case '\0b' : lineString[lineString.length()-1] = 0x2756; break; // some other nice looking character
+         }
+      }
+      QVector<UINT8> charChanged( pld->size );
+      Merger merger( pLineDiff1, pLineDiff2 );
+      while( ! merger.isEndReached() &&  i<pld->size )
+      {
+         if ( i < pld->size )
+         {
+            charChanged[i] = merger.whatChanged();
+            ++i;
+         }
+         merger.next();
+      }
+
+      int outPos = 0;
+
+      int lineLength = m_bWordWrap ? wrapLineOffset+wrapLineLength : lineString.length();
+
+      FormatRangeHelper frh;
+
+      for( i=wrapLineOffset; i<lineLength; ++i )
+      {
+         QColor c = m_pOptions->m_fgColor;
+         int cchanged = charChanged[i] | whatChanged;
+
+         if ( cchanged == 2 ) {
+            c = m_cDiff2;
+         } else if ( cchanged == 1 ) {
+            c = m_cDiff1;
+         } else if ( cchanged == 3 ) {
+            c = m_cDiffBoth;
+         }
+
+         if ( c!=m_pOptions->m_fgColor && whatChanged2==0 && !m_pOptions->m_bShowWhiteSpace )
+         {
+            // The user doesn't want to see highlighted white space.
+            c = m_pOptions->m_fgColor;
+         }
+
+         //QRect outRect( xOffset + outPixelPos, yOffset, charWidth*spaces, fontHeight );
+         //if ( m_pOptions->m_bRightToLeftLanguage )
+         //   outRect = QRect( deviceWidth-1-(xOffset + outPixelPos), yOffset, -charWidth*spaces, fontHeight ).normalized();
+         //if ( invalidRect.intersects( outRect ) )
+         {
+            frh.setBackground( bgColor );
+            if( !m_selection.within( line, outPos ) )
+            {
+
+               if( c!=m_pOptions->m_fgColor )
+               {
+                  QColor lightc = diffBgColor;
+                  frh.setBackground(lightc);
+                  frh.setFont(diffFont);
+               }
+
+               frh.setPen( c );
+               frh.next();
+               frh.setFont(normalFont);
+            }
+            else
+            {
+               frh.setBackground(m_pDiffTextWindow->palette().highlight().color());
+               frh.setPen( m_pDiffTextWindow->palette().highlightedText().color() );
+               frh.next();
+
+               m_selection.bSelectionContainsData = true;
+            }
+         }
+
+         ++outPos;
+      } // end for
+
+      QTextLayout textLayout( lineString.mid( wrapLineOffset, lineLength-wrapLineOffset), m_pDiffTextWindow->font(), m_pDiffTextWindow );
+      prepareTextLayout( textLayout, !m_bWordWrap || wrapLineOffset==0 );
+      textLayout.draw ( &p, QPoint(0, yOffset), frh.m_formatRanges /*, const QRectF & clip = QRectF() */);
+   }
+
+   p.fillRect( 0, yOffset, leftInfoWidth()*fontWidth, fontHeight, m_pOptions->m_bgColor );
+
+   xOffset = (m_lineNumberWidth+2)*fontWidth;
+   int xLeft =   m_lineNumberWidth*fontWidth;
+   p.setPen( m_pOptions->m_fgColor );
+   if ( pld!=0 )
+   {
+      if ( m_pOptions->m_bShowLineNumbers && !bWrapLine )
+      {
+         QString num;
+         num.sprintf( "%0*d", m_lineNumberWidth, srcLineIdx+1);
+         p.drawText( 0, yOffset + fontAscent, num );
+         //p.drawLine( xLeft -1, yOffset, xLeft -1, yOffset+fontHeight-1 );
+      }
+      if ( !bWrapLine || wrapLineLength>0 )
+      {
+#if defined(__APPLE__) && (QT_VERSION < QT_VERSION_CHECK(5, 0, 0))
+         Qt::PenStyle wrapLinePenStyle = Qt::DashLine; // Qt::DotLine doesn't work on Mac (Qt4.8.6).
+#else
+         Qt::PenStyle wrapLinePenStyle = Qt::DotLine;
+#endif
+         p.setPen( QPen( m_pOptions->m_fgColor, 0, bWrapLine ? wrapLinePenStyle : Qt::SolidLine) );
+         p.drawLine( xOffset +1, yOffset, xOffset +1, yOffset+fontHeight-1 );
+         p.setPen( QPen( m_pOptions->m_fgColor, 0, Qt::SolidLine) );
+      }
+   }
+   if ( c!=m_pOptions->m_fgColor && whatChanged2==0 )//&& whatChanged==0 )
+   {
+      if ( m_pOptions->m_bShowWhiteSpace )
+      {
+         p.setBrushOrigin(0,0);
+         p.fillRect( xLeft, yOffset, fontWidth*2-1, fontHeight, QBrush(c,Qt::Dense5Pattern) );
+      }
+   }
+   else
+   {
+      p.fillRect( xLeft, yOffset, fontWidth*2-1, fontHeight, c==m_pOptions->m_fgColor ? bgColor : c );
+   }
+
+   if ( bFastSelectionRange )
+   {
+      p.fillRect( xOffset + fontWidth-1, yOffset, 3, fontHeight, m_pOptions->m_fgColor );
+   }
+
+   // Check if line needs a manual diff help mark
+   ManualDiffHelpList::const_iterator ci;
+   for( ci = m_pManualDiffHelpList->begin(); ci!=m_pManualDiffHelpList->end(); ++ci)
+   {
+      const ManualDiffHelpEntry& mdhe=*ci;
+      int rangeLine1 = -1;
+      int rangeLine2 = -1;
+      if (m_winIdx==1 ) { rangeLine1 = mdhe.lineA1; rangeLine2= mdhe.lineA2; }
+      if (m_winIdx==2 ) { rangeLine1 = mdhe.lineB1; rangeLine2= mdhe.lineB2; }
+      if (m_winIdx==3 ) { rangeLine1 = mdhe.lineC1; rangeLine2= mdhe.lineC2; }
+      if ( rangeLine1>=0 && rangeLine2>=0 && srcLineIdx >= rangeLine1 && srcLineIdx <= rangeLine2 )
+      {
+         p.fillRect( xOffset - fontWidth, yOffset, fontWidth-1, fontHeight, m_pOptions->m_manualHelpRangeColor );
+         break;
+      }
+   }
+}
+
+void DiffTextWindow::paintEvent( QPaintEvent* e )
+{
+   QRect invalidRect = e->rect();
+   if ( invalidRect.isEmpty() || ! d->m_bPaintingAllowed )
+      return;
+
+   if ( d->m_pDiff3LineVector==0  ||  ( d->m_diff3WrapLineVector.empty() && d->m_bWordWrap ) ) 
+   {
+      QPainter p(this);
+      p.fillRect( invalidRect, d->m_pOptions->m_bgColor );
+      return;
+   }
+   
+   bool bOldSelectionContainsData = d->m_selection.bSelectionContainsData;
+   d->m_selection.bSelectionContainsData = false;
+
+   int endLine = min2( d->m_firstLine + getNofVisibleLines()+2, getNofLines() );
+
+
+   MyPainter p( this, d->m_pOptions->m_bRightToLeftLanguage, width(), fontMetrics().width('0') );
+
+   p.setFont( font() );
+   p.QPainter::fillRect( invalidRect, d->m_pOptions->m_bgColor );
+
+   d->draw( p, invalidRect, width(), d->m_firstLine, endLine );
+   p.end();
+
+   d->m_oldFirstLine = d->m_firstLine;
+   d->m_selection.oldLastLine = -1;
+   if ( d->m_selection.oldFirstLine !=-1 )
+      d->m_selection.oldFirstLine = -1;
+
+   if( !bOldSelectionContainsData  &&  d->m_selection.bSelectionContainsData )
+      emit newSelection();
+}
+
+void DiffTextWindow::print( MyPainter& p, const QRect&, int firstLine, int nofLinesPerPage )
+{
+   if ( d->m_pDiff3LineVector==0 || ! d->m_bPaintingAllowed ||
+        ( d->m_diff3WrapLineVector.empty() && d->m_bWordWrap ) ) 
+      return;
+   resetSelection();
+   int oldFirstLine = d->m_firstLine;
+   d->m_firstLine = firstLine;
+   QRect invalidRect = QRect(0,0,1000000000,1000000000);
+   QColor bgColor = d->m_pOptions->m_bgColor;
+   d->m_pOptions->m_bgColor = Qt::white;
+   d->draw( p, invalidRect, p.window().width(), firstLine, min2(firstLine+nofLinesPerPage,getNofLines()) );
+   d->m_pOptions->m_bgColor = bgColor;
+   d->m_firstLine = oldFirstLine;
+}
+
+void DiffTextWindowData::draw( MyPainter& p, const QRect& invalidRect, int deviceWidth, int beginLine, int endLine )
+{
+   m_lineNumberWidth = m_pOptions->m_bShowLineNumbers ? (int)log10((double)qMax(m_size,1))+1 : 0;
+
+   if ( m_winIdx==1 )
+   {
+      m_cThis = m_pOptions->m_colorA;
+      m_cDiff1 = m_pOptions->m_colorB;
+      m_cDiff2 = m_pOptions->m_colorC;
+   }
+   if ( m_winIdx==2 )
+   {
+      m_cThis = m_pOptions->m_colorB;
+      m_cDiff1 = m_pOptions->m_colorC;
+      m_cDiff2 = m_pOptions->m_colorA;
+   }
+   if ( m_winIdx==3 )
+   {
+      m_cThis = m_pOptions->m_colorC;
+      m_cDiff1 = m_pOptions->m_colorA;
+      m_cDiff2 = m_pOptions->m_colorB;
+   }
+   m_cDiffBoth = m_pOptions->m_colorForConflict;  // Conflict color
+
+   p.setPen( m_cThis );
+
+   for ( int line = beginLine; line<endLine; ++line )
+   {
+      int wrapLineOffset=0;
+      int wrapLineLength=0;
+      const Diff3Line* d3l =0;
+      bool bWrapLine = false;
+      if (m_bWordWrap)
+      {
+         Diff3WrapLine& d3wl = m_diff3WrapLineVector[line];
+         wrapLineOffset = d3wl.wrapLineOffset;
+         wrapLineLength = d3wl.wrapLineLength;
+         d3l = d3wl.pD3L;
+         bWrapLine = line > 0 && m_diff3WrapLineVector[line-1].pD3L == d3l;
+      }
+      else
+      {
+         d3l = (*m_pDiff3LineVector)[line];
+      }
+      DiffList* pFineDiff1;
+      DiffList* pFineDiff2;
+      int changed=0;
+      int changed2=0;
+
+      int srcLineIdx=-1;
+      getLineInfo( *d3l, srcLineIdx, pFineDiff1, pFineDiff2, changed, changed2 );
+
+      writeLine(
+         p,                         // QPainter
+         srcLineIdx == -1 ? 0 : &m_pLineData[srcLineIdx],     // Text in this line
+         pFineDiff1,
+         pFineDiff2,
+         line,                      // Line on the screen
+         changed,
+         changed2,
+         srcLineIdx,
+         wrapLineOffset,
+         wrapLineLength,
+         bWrapLine,
+         invalidRect,
+         deviceWidth
+         );
+   }
+}
+
+QString DiffTextWindowData::getString( int d3lIdx )
+{
+   if ( d3lIdx<0 || d3lIdx>=(int)m_pDiff3LineVector->size() )
+      return QString();
+   const Diff3Line* d3l = (*m_pDiff3LineVector)[d3lIdx];
+   DiffList* pFineDiff1;
+   DiffList* pFineDiff2;
+   int changed=0;
+   int changed2=0;
+   int lineIdx;
+   getLineInfo( *d3l, lineIdx, pFineDiff1, pFineDiff2, changed, changed2 );
+
+   if (lineIdx==-1) return QString();
+   else
+   {
+      const LineData* ld = &m_pLineData[lineIdx];
+      return QString( ld->pLine, ld->size );
+   }
+   return QString();
+}
+
+QString DiffTextWindowData::getLineString( int line )
+{
+   if ( m_bWordWrap )
+   {
+      if ( line < m_diff3WrapLineVector.count() )
+      {
+         int d3LIdx = m_pDiffTextWindow->convertLineToDiff3LineIdx(line);
+         return getString( d3LIdx ).mid( m_diff3WrapLineVector[line].wrapLineOffset, m_diff3WrapLineVector[line].wrapLineLength );
+      }
+      else
+         return QString();
+   }
+   else
+   {
+      return getString( line );
+   }
+}
+
+void DiffTextWindowData::getLineInfo(
+   const Diff3Line& d3l,
+   int& lineIdx,
+   DiffList*& pFineDiff1, DiffList*& pFineDiff2,   // return values
+   int& changed, int& changed2
+   )
+{
+   changed=0;
+   changed2=0;
+   bool bAEqB = d3l.bAEqB || ( d3l.bWhiteLineA && d3l.bWhiteLineB );
+   bool bAEqC = d3l.bAEqC || ( d3l.bWhiteLineA && d3l.bWhiteLineC );
+   bool bBEqC = d3l.bBEqC || ( d3l.bWhiteLineB && d3l.bWhiteLineC );
+   if      ( m_winIdx == 1 ) {
+      lineIdx=d3l.lineA;
+      pFineDiff1=d3l.pFineAB;
+      pFineDiff2=d3l.pFineCA;
+      changed |= ((d3l.lineB==-1)!=(lineIdx==-1) ? 1 : 0) +
+                 ((d3l.lineC==-1)!=(lineIdx==-1) && m_bTriple ? 2 : 0);
+      changed2 |= ( bAEqB ? 0 : 1 ) + (bAEqC || !m_bTriple ? 0 : 2);
+   }
+   else if ( m_winIdx == 2 ) {
+      lineIdx=d3l.lineB;
+      pFineDiff1=d3l.pFineBC;
+      pFineDiff2=d3l.pFineAB;
+      changed |= ((d3l.lineC==-1)!=(lineIdx==-1) && m_bTriple ? 1 : 0) +
+                 ((d3l.lineA==-1)!=(lineIdx==-1) ? 2 : 0);
+      changed2 |= ( bBEqC || !m_bTriple ? 0 : 1 ) + (bAEqB ? 0 : 2);
+   }
+   else if ( m_winIdx == 3 ) {
+      lineIdx=d3l.lineC;
+      pFineDiff1=d3l.pFineCA;
+      pFineDiff2=d3l.pFineBC;
+      changed |= ((d3l.lineA==-1)!=(lineIdx==-1) ? 1 : 0) +
+                 ((d3l.lineB==-1)!=(lineIdx==-1) ? 2 : 0);
+      changed2 |= ( bAEqC ? 0 : 1 ) + (bBEqC ? 0 : 2);
+   }
+   else assert(false);
+}
+
+
+
+void DiffTextWindow::resizeEvent( QResizeEvent* e )
+{
+   QSize s = e->size();
+   QFontMetrics fm = fontMetrics();
+   int visibleLines = s.height()/fm.lineSpacing()-2;
+   int visibleColumns = s.width()/fm.width('0') - d->leftInfoWidth();
+   if (e->size().height() != e->oldSize().height())
+      emit resizeHeightChangedSignal(visibleLines);
+   if (e->size().width() != e->oldSize().width())
+      emit resizeWidthChangedSignal(visibleColumns);
+   QWidget::resizeEvent(e);
+}
+
+int DiffTextWindow::getNofVisibleLines()
+{
+   QFontMetrics fm = fontMetrics();
+   int fmh = fm.lineSpacing();
+   int h = height();
+   return h/fmh -1;
+}
+
+int DiffTextWindow::getVisibleTextAreaWidth()
+{
+   QFontMetrics fm = fontMetrics();
+   return width() - d->leftInfoWidth() * fm.width('0');
+}
+
+QString DiffTextWindow::getSelection()
+{
+   if ( d->m_pLineData==0 )
+      return QString();
+
+   QString selectionString;
+
+   int line=0;
+   int lineIdx=0;
+
+   int it;
+   int vectorSize = d->m_bWordWrap ? d->m_diff3WrapLineVector.size() : d->m_pDiff3LineVector->size();
+   for( it=0; it<vectorSize; ++it )
+   {
+      const Diff3Line* d3l = d->m_bWordWrap ? d->m_diff3WrapLineVector[it].pD3L : (*d->m_pDiff3LineVector)[it];
+      if      ( d->m_winIdx == 1 ) {    lineIdx=d3l->lineA;     }
+      else if ( d->m_winIdx == 2 ) {    lineIdx=d3l->lineB;     }
+      else if ( d->m_winIdx == 3 ) {    lineIdx=d3l->lineC;     }
+      else assert(false);
+
+      if( lineIdx != -1 )
+      {
+         const QChar* pLine = d->m_pLineData[lineIdx].pLine;
+         int size = d->m_pLineData[lineIdx].size;
+         QString lineString = QString( pLine, size );
+
+         if ( d->m_bWordWrap )
+         {
+            size = d->m_diff3WrapLineVector[it].wrapLineLength;
+            lineString = lineString.mid( d->m_diff3WrapLineVector[it].wrapLineOffset, size );
+         }
+
+         for( int i=0; i<size; ++i )
+         {
+            if( d->m_selection.within( line, i ) )
+            {
+               selectionString += lineString[i];
+            }
+         }
+
+         if( d->m_selection.within( line, size ) &&
+            !( d->m_bWordWrap && it+1<vectorSize && d3l == d->m_diff3WrapLineVector[it+1].pD3L ) 
+           )
+         {
+            #if defined(_WIN32) || defined(Q_OS_OS2)
+            selectionString += '\r';
+            #endif
+            selectionString += '\n';
+         }
+      }
+
+      ++line;
+   }
+
+   return selectionString;
+}
+
+bool DiffTextWindow::findString( const QString& s, int& d3vLine, int& posInLine, bool bDirDown, bool bCaseSensitive )
+{
+   int it = d3vLine;
+   int endIt = bDirDown ? (int)d->m_pDiff3LineVector->size() : -1;
+   int step =  bDirDown ? 1 : -1;
+   int startPos = posInLine;
+
+   for( ; it!=endIt; it+=step )
+   {
+      QString line = d->getString( it );
+      if ( !line.isEmpty() )
+      {
+         int pos = line.indexOf( s, startPos, bCaseSensitive ? Qt::CaseSensitive : Qt::CaseInsensitive );
+         if ( pos != -1 )
+         {
+            d3vLine = it;
+            posInLine = pos;
+            return true;
+         }
+
+         startPos = 0;
+      }
+   }
+   return false;
+}
+
+void DiffTextWindow::convertD3LCoordsToLineCoords( int d3LIdx, int d3LPos, int& line, int& pos )
+{
+   if( d->m_bWordWrap )
+   {
+      int wrapPos = d3LPos;
+      int wrapLine = convertDiff3LineIdxToLine(d3LIdx);
+      while ( wrapPos > d->m_diff3WrapLineVector[wrapLine].wrapLineLength )
+      {
+         wrapPos -= d->m_diff3WrapLineVector[wrapLine].wrapLineLength;
+         ++wrapLine;
+      }
+      pos = wrapPos;
+      line = wrapLine;
+   }
+   else
+   {
+      pos = d3LPos;
+      line = d3LIdx;
+   }
+}
+
+void DiffTextWindow::convertLineCoordsToD3LCoords( int line, int pos, int& d3LIdx, int& d3LPos )
+{
+   if( d->m_bWordWrap )
+   {
+      d3LPos = pos;
+      d3LIdx = convertLineToDiff3LineIdx( line );
+      int wrapLine = convertDiff3LineIdxToLine(d3LIdx); // First wrap line belonging to this d3LIdx
+      while ( wrapLine < line )
+      {
+         d3LPos += d->m_diff3WrapLineVector[wrapLine].wrapLineLength;
+         ++wrapLine;
+      }
+   }
+   else
+   {
+      d3LPos = pos;
+      d3LIdx = line;
+   }
+}
+
+
+void DiffTextWindow::setSelection( int firstLine, int startPos, int lastLine, int endPos, int& l, int& p )
+{
+   d->m_selection.reset();
+   if ( lastLine >= getNofLines() )
+   {
+      lastLine = getNofLines()-1;
+
+      const Diff3Line* d3l = (*d->m_pDiff3LineVector)[convertLineToDiff3LineIdx(lastLine)];
+      int line = -1;
+      if ( d->m_winIdx==1 ) line = d3l->lineA;
+      if ( d->m_winIdx==2 ) line = d3l->lineB;
+      if ( d->m_winIdx==3 ) line = d3l->lineC;
+      if (line>=0)
+         endPos = d->m_pLineData[line].width( d->m_pOptions->m_tabSize);
+   }
+
+   if ( d->m_bWordWrap && d->m_pDiff3LineVector!=0 )
+   {
+      QString s1 = d->getString(firstLine);
+      int firstWrapLine = convertDiff3LineIdxToLine(firstLine);
+      int wrapStartPos = startPos;
+      while ( wrapStartPos > d->m_diff3WrapLineVector[firstWrapLine].wrapLineLength )
+      {
+         wrapStartPos -= d->m_diff3WrapLineVector[firstWrapLine].wrapLineLength;
+         s1 = s1.mid(d->m_diff3WrapLineVector[firstWrapLine].wrapLineLength);
+         ++firstWrapLine;
+      }
+
+      QString s2 = d->getString(lastLine);
+      int lastWrapLine = convertDiff3LineIdxToLine(lastLine);
+      int wrapEndPos = endPos;
+      while ( wrapEndPos > d->m_diff3WrapLineVector[lastWrapLine].wrapLineLength )
+      {
+         wrapEndPos -= d->m_diff3WrapLineVector[lastWrapLine].wrapLineLength;
+         s2 = s2.mid(d->m_diff3WrapLineVector[lastWrapLine].wrapLineLength);
+         ++lastWrapLine;
+      }
+
+      d->m_selection.start( firstWrapLine, convertToPosOnScreen( s1, wrapStartPos, d->m_pOptions->m_tabSize ) );
+      d->m_selection.end( lastWrapLine, convertToPosOnScreen( s2, wrapEndPos, d->m_pOptions->m_tabSize ) );
+      l=firstWrapLine;
+      p=wrapStartPos;
+   }
+   else
+   {
+      d->m_selection.start( firstLine, convertToPosOnScreen( d->getString(firstLine), startPos, d->m_pOptions->m_tabSize ) );
+      d->m_selection.end( lastLine, convertToPosOnScreen( d->getString(lastLine), endPos, d->m_pOptions->m_tabSize ) );
+      l=firstLine;
+      p=startPos;
+   }
+   update();
+}
+
+int DiffTextWindowData::convertLineOnScreenToLineInSource( int lineOnScreen, e_CoordType coordType, bool bFirstLine )
+{
+   int line=-1;
+   if (lineOnScreen>=0)
+   {
+      if (coordType==eWrapCoords) return lineOnScreen;
+      int d3lIdx = m_pDiffTextWindow->convertLineToDiff3LineIdx( lineOnScreen );
+      if ( !bFirstLine && d3lIdx >= (int)m_pDiff3LineVector->size() )
+         d3lIdx = m_pDiff3LineVector->size()-1;
+      if (coordType==eD3LLineCoords) return d3lIdx;
+      while ( line<0 && d3lIdx<(int)m_pDiff3LineVector->size() && d3lIdx>=0 )
+      {
+         const Diff3Line* d3l = (*m_pDiff3LineVector)[d3lIdx];
+         if ( m_winIdx==1 ) line = d3l->lineA;
+         if ( m_winIdx==2 ) line = d3l->lineB;
+         if ( m_winIdx==3 ) line = d3l->lineC;
+         if ( bFirstLine )
+            ++d3lIdx;
+         else
+            --d3lIdx;
+      }
+      if (coordType==eFileCoords) return line;
+   }
+   return line;
+}
+
+
+void DiffTextWindow::getSelectionRange( int* pFirstLine, int* pLastLine, e_CoordType coordType )
+{
+   if (pFirstLine)
+      *pFirstLine = d->convertLineOnScreenToLineInSource( d->m_selection.beginLine(), coordType, true );
+   if (pLastLine)
+      *pLastLine = d->convertLineOnScreenToLineInSource( d->m_selection.endLine(), coordType, false );
+}
+
+void DiffTextWindow::convertSelectionToD3LCoords()
+{
+   if ( d->m_pDiff3LineVector==0 || ! d->m_bPaintingAllowed || !isVisible() || d->m_selection.isEmpty() )
+   {
+      return;
+   }
+
+   // convert the d->m_selection to unwrapped coordinates: Later restore to new coords
+   int firstD3LIdx, firstD3LPos;
+   QString s = d->getLineString( d->m_selection.beginLine() );
+   int firstPosInText = convertToPosInText( s, d->m_selection.beginPos(), d->m_pOptions->m_tabSize );
+   convertLineCoordsToD3LCoords( d->m_selection.beginLine(), firstPosInText, firstD3LIdx, firstD3LPos );
+
+   int lastD3LIdx, lastD3LPos;
+   s = d->getLineString( d->m_selection.endLine() );
+   int lastPosInText = convertToPosInText( s, d->m_selection.endPos(), d->m_pOptions->m_tabSize );
+   convertLineCoordsToD3LCoords( d->m_selection.endLine(), lastPosInText, lastD3LIdx, lastD3LPos );
+
+   d->m_selection.start( firstD3LIdx, firstD3LPos );
+   d->m_selection.end( lastD3LIdx, lastD3LPos );
+}
+
+int s_maxNofRunnables = 0;
+
+class RecalcWordWrapRunnable : public QRunnable
+{
+   DiffTextWindow* m_pDTW;
+   DiffTextWindowData* m_pDTWData;
+   int m_visibleTextWidth;
+   int m_cacheIdx;
+public:
+   RecalcWordWrapRunnable( DiffTextWindow* p, DiffTextWindowData* pData, int visibleTextWidth, int cacheIdx ) 
+      : m_pDTW(p), m_pDTWData(pData), m_visibleTextWidth(visibleTextWidth), m_cacheIdx(cacheIdx)
+   {
+      setAutoDelete(true);
+      //++s_runnableCount; // in Qt>=5.3 only
+      s_runnableCount.fetchAndAddOrdered(1);
+   }
+   void run()
+   {
+      m_pDTW->recalcWordWrapHelper(0,m_visibleTextWidth,m_cacheIdx);
+      // int newValue = --s_runnableCount; // in Qt>=5.3 only
+      int newValue = s_runnableCount.fetchAndAddOrdered(-1) - 1;
+      g_pProgressDialog->setCurrent(s_maxNofRunnables - getAtomic( s_runnableCount ) );
+      if (newValue == 0)
+      {
+         QWidget* p = m_pDTW;
+         while (p )
+         {
+            p = p->parentWidget();
+            if (KDiff3App* pKDiff3App = dynamic_cast<KDiff3App*>(p))
+            {
+               QMetaObject::invokeMethod(pKDiff3App, "slotFinishRecalcWordWrap", Qt::QueuedConnection);
+               break;
+            }
+         }
+      }
+   }
+};
+
+static QList<QRunnable*> s_runnables;
+
+bool startRunnables()
+{
+   if ( s_runnables.count()==0 )
+   {
+      return false;
+   }
+   else
+   {
+      g_pProgressDialog->setStayHidden(true);
+      g_pProgressDialog->push();
+      g_pProgressDialog->setMaxNofSteps(s_runnables.count());
+      s_maxNofRunnables = s_runnables.count();
+      g_pProgressDialog->setCurrent(0);
+
+      for (int i = 0; i < s_runnables.count(); ++i)
+      {
+         QThreadPool::globalInstance()->start(s_runnables[i]);
+      }
+
+      s_runnables.clear();
+      return true;
+   }
+}
+
+static const int s_linesPerRunnable = 2000;
+
+void DiffTextWindow::recalcWordWrap( bool bWordWrap, int wrapLineVectorSize, int visibleTextWidth )
+{
+   if (d->m_pDiff3LineVector == 0 || !isVisible())
+   {
+      d->m_bWordWrap = bWordWrap;
+      if (!bWordWrap)  d->m_diff3WrapLineVector.resize( 0 );
+      return;
+   }
+
+   d->m_bWordWrap = bWordWrap;
+
+   if ( bWordWrap )
+   {
+      d->m_lineNumberWidth = d->m_pOptions->m_bShowLineNumbers ? (int)log10((double)qMax(d->m_size,1))+1 : 0;
+
+      d->m_diff3WrapLineVector.resize( wrapLineVectorSize );
+
+      if ( wrapLineVectorSize==0 )
+         d->m_wrapLineCacheList.clear();
+
+      if ( wrapLineVectorSize == 0 )
+      {
+         d->m_bPaintingAllowed = false;
+         for (int i = 0, j = 0; i<d->m_pDiff3LineVector->size(); i += s_linesPerRunnable, ++j)
+         //int i=0;
+         {
+            d->m_wrapLineCacheList.append(QVector<DiffTextWindowData::WrapLineCacheData>());
+            s_runnables.push_back( new RecalcWordWrapRunnable(this,d,visibleTextWidth,j) );
+         }
+         //recalcWordWrap( bWordWrap, wrapLineVectorSize, visibleTextWidth, 0 );
+      }
+      else
+      {
+         recalcWordWrapHelper( wrapLineVectorSize, visibleTextWidth, 0 );
+         d->m_bPaintingAllowed = true;
+      }
+   }
+   else
+   {
+      if (wrapLineVectorSize == 0 && getAtomic( d->m_maxTextWidth ) <0 )
+      {
+         d->m_diff3WrapLineVector.resize(0);
+         d->m_wrapLineCacheList.clear();
+         d->m_bPaintingAllowed = false;
+         for (int i = 0, j = 0; i < d->m_pDiff3LineVector->size(); i += s_linesPerRunnable, ++j)
+         {
+            s_runnables.push_back(new RecalcWordWrapRunnable(this, d, visibleTextWidth, j));
+         }
+      }
+      else
+      {
+         d->m_bPaintingAllowed = true;
+      }
+   }
+}
+
+void DiffTextWindow::recalcWordWrapHelper( int wrapLineVectorSize, int visibleTextWidth, int cacheListIdx )
+{
+   if ( d->m_bWordWrap )
+   {
+      if ( g_pProgressDialog->wasCancelled() )
+         return;
+      if (visibleTextWidth<0)
+         visibleTextWidth = getVisibleTextAreaWidth();
+      else
+         visibleTextWidth-= d->leftInfoWidth() * fontMetrics().width('0');
+      int i;
+      int wrapLineIdx = 0;
+      int size = d->m_pDiff3LineVector->size();
+      int firstD3LineIdx = wrapLineVectorSize > 0 ? 0 : cacheListIdx * s_linesPerRunnable;
+      int endIdx = wrapLineVectorSize > 0 ? size : qMin(firstD3LineIdx + s_linesPerRunnable, size);
+      QVector<DiffTextWindowData::WrapLineCacheData>& wrapLineCache = d->m_wrapLineCacheList[cacheListIdx];
+      int cacheListIdx2 = 0;
+      QTextLayout textLayout( QString(), font(), this);
+      for( i=firstD3LineIdx; i<endIdx; ++i )
+      {
+         if (g_pProgressDialog->wasCancelled())
+            return;
+
+         int linesNeeded = 0;
+         if ( wrapLineVectorSize==0 )
+         {
+            QString s = d->getString( i );
+            textLayout.clearLayout();
+            textLayout.setText( s );
+            d->prepareTextLayout( textLayout, true, visibleTextWidth );
+            linesNeeded = textLayout.lineCount();
+            for( int l=0; l<linesNeeded; ++l )
+            {
+               QTextLine line = textLayout.lineAt(l);
+               wrapLineCache.push_back( DiffTextWindowData::WrapLineCacheData(i,line.textStart(),line.textLength()) );
+            }
+         }
+         else if ( wrapLineVectorSize > 0 && cacheListIdx2 < d->m_wrapLineCacheList.count() )
+         {
+            DiffTextWindowData::WrapLineCacheData* pWrapLineCache = d->m_wrapLineCacheList[cacheListIdx2].data();
+            int cacheIdx = 0;
+            int clc = d->m_wrapLineCacheList.count()-1 ;
+            int cllc = d->m_wrapLineCacheList.last().count() ;
+            int curCount = d->m_wrapLineCacheList[cacheListIdx2].count()-1;
+            int l=0;
+            while( (cacheListIdx2 < clc
+               || ( cacheListIdx2 == clc && cacheIdx < cllc ) )
+               && pWrapLineCache->m_d3LineIdx<=i )
+            {
+               if ( pWrapLineCache->m_d3LineIdx==i )
+               {
+                  Diff3WrapLine* pDiff3WrapLine = &d->m_diff3WrapLineVector[ wrapLineIdx + l ];
+                  pDiff3WrapLine->wrapLineOffset = pWrapLineCache->m_textStart;
+                  pDiff3WrapLine->wrapLineLength = pWrapLineCache->m_textLength;
+                  ++l;
+               }
+               if (cacheIdx < curCount )
+               {
+                  ++cacheIdx;
+                  ++pWrapLineCache;
+               }
+               else
+               {
+                  ++cacheListIdx2;
+                  if (cacheListIdx2 >= d->m_wrapLineCacheList.count())
+                     break;
+                  pWrapLineCache = d->m_wrapLineCacheList[cacheListIdx2].data();
+                  curCount = d->m_wrapLineCacheList[cacheListIdx2].count();
+                  cacheIdx = 0;
+               }
+            }
+            linesNeeded = l;
+         }
+
+         Diff3Line& d3l = *(*d->m_pDiff3LineVector)[i];
+         if ( d3l.linesNeededForDisplay<linesNeeded )
+         {
+            assert(wrapLineVectorSize==0);
+            d3l.linesNeededForDisplay = linesNeeded;
+         }
+
+         if ( wrapLineVectorSize>0 )
+         {
+            int j;
+            for( j=0; j<d3l.linesNeededForDisplay; ++j, ++wrapLineIdx )
+            {
+               Diff3WrapLine& d3wl = d->m_diff3WrapLineVector[wrapLineIdx];
+               d3wl.diff3LineIndex = i;
+               d3wl.pD3L = (*d->m_pDiff3LineVector)[i];
+               if ( j>=linesNeeded )
+               {
+                  d3wl.wrapLineOffset=0;
+                  d3wl.wrapLineLength=0;
+               }
+            }
+         }
+      }
+
+      if ( wrapLineVectorSize>0 )
+      {
+         d->m_firstLine = min2( d->m_firstLine, wrapLineVectorSize-1 );
+         d->m_horizScrollOffset = 0;
+         d->m_pDiffTextWindowFrame->setFirstLine( d->m_firstLine );
+      }
+   }
+   else // no word wrap, just calc the maximum text width
+   {
+      if (g_pProgressDialog->wasCancelled())
+         return;
+      int size = d->m_pDiff3LineVector->size();
+      int firstD3LineIdx = cacheListIdx * s_linesPerRunnable;
+      int endIdx = qMin(firstD3LineIdx + s_linesPerRunnable, size);
+
+      int maxTextWidth = getAtomic( d->m_maxTextWidth ); // current value
+      QFontMetrics fm(fontMetrics());
+      QTextLayout textLayout(QString(), font(), this);
+      for (int i = firstD3LineIdx; i< endIdx; ++i)
+      {
+         if (g_pProgressDialog->wasCancelled())
+            return;
+         textLayout.clearLayout();
+         textLayout.setText(d->getString(i));
+         d->prepareTextLayout(textLayout, true);
+         if (textLayout.maximumWidth() > maxTextWidth)
+            maxTextWidth = textLayout.maximumWidth();
+      }
+
+      for (;;)
+      {
+         int prevMaxTextWidth = d->m_maxTextWidth.fetchAndStoreOrdered(maxTextWidth);
+         if (prevMaxTextWidth <= maxTextWidth)
+            break;
+         maxTextWidth = prevMaxTextWidth;
+      }
+   }
+
+   if ( !d->m_selection.isEmpty() && ( !d->m_bWordWrap || wrapLineVectorSize>0 ) )
+   {
+      // Assume unwrapped coordinates 
+      //( Why? ->Conversion to unwrapped coords happened a few lines above in this method. 
+      //  Also see KDiff3App::recalcWordWrap() on the role of wrapLineVectorSize)
+
+      // Wrap them now.
+
+      // convert the d->m_selection to unwrapped coordinates.
+      int firstLine, firstPos;
+      convertD3LCoordsToLineCoords( d->m_selection.beginLine(), d->m_selection.beginPos(), firstLine, firstPos );
+
+      int lastLine, lastPos;
+      convertD3LCoordsToLineCoords( d->m_selection.endLine(), d->m_selection.endPos(), lastLine, lastPos );
+
+      d->m_selection.start( firstLine, convertToPosOnScreen( d->getLineString( firstLine ), firstPos, d->m_pOptions->m_tabSize ) );
+      d->m_selection.end( lastLine, convertToPosOnScreen( d->getLineString( lastLine ),lastPos, d->m_pOptions->m_tabSize ) );
+   }
+}
+
+
+class DiffTextWindowFrameData
+{
+public:
+   DiffTextWindow* m_pDiffTextWindow;
+   QLineEdit* m_pFileSelection;
+   QPushButton* m_pBrowseButton;
+   Options*      m_pOptions;
+   QLabel*       m_pLabel;
+   QLabel*       m_pTopLine;
+   QLabel*       m_pEncoding;
+   QLabel*       m_pLineEndStyle;
+   QWidget*      m_pTopLineWidget;
+   int           m_winIdx;
+
+};
+
+DiffTextWindowFrame::DiffTextWindowFrame( QWidget* pParent, QStatusBar* pStatusBar, Options* pOptions, int winIdx, SourceData* psd)
+   : QWidget( pParent )
+{
+   d = new DiffTextWindowFrameData;
+   d->m_winIdx = winIdx;
+   setAutoFillBackground(true);
+   d->m_pOptions = pOptions;
+   d->m_pTopLineWidget = new QWidget(this);
+   d->m_pFileSelection = new QLineEdit(d->m_pTopLineWidget);
+   d->m_pBrowseButton = new QPushButton( "...",d->m_pTopLineWidget );
+   d->m_pBrowseButton->setFixedWidth( 30 );
+   connect(d->m_pBrowseButton,SIGNAL(clicked()), this, SLOT(slotBrowseButtonClicked()));
+   connect(d->m_pFileSelection,SIGNAL(returnPressed()), this, SLOT(slotReturnPressed()));
+
+   d->m_pLabel = new QLabel("A:",d->m_pTopLineWidget);
+   d->m_pTopLine = new QLabel(d->m_pTopLineWidget);
+   d->m_pDiffTextWindow = 0;
+   d->m_pDiffTextWindow = new DiffTextWindow( this, pStatusBar, pOptions, winIdx );
+
+   QVBoxLayout* pVTopLayout = new QVBoxLayout(d->m_pTopLineWidget);
+   pVTopLayout->setMargin(2);
+   pVTopLayout->setSpacing(0);
+   QHBoxLayout* pHL = new QHBoxLayout();
+   QHBoxLayout* pHL2 = new QHBoxLayout();
+   pVTopLayout->addLayout(pHL);
+   pVTopLayout->addLayout(pHL2);
+
+   // Upper line:
+   pHL->setMargin(0);
+   pHL->setSpacing(2);
+
+   pHL->addWidget( d->m_pLabel, 0 );
+   pHL->addWidget( d->m_pFileSelection, 1 );
+   pHL->addWidget( d->m_pBrowseButton, 0 );
+   pHL->addWidget( d->m_pTopLine, 0 );
+
+   // Lower line
+   pHL2->setMargin(0);
+   pHL2->setSpacing(2);
+   pHL2->addWidget( d->m_pTopLine, 0 );
+   d->m_pEncoding = new EncodingLabel(i18n("Encoding:"), this, psd, pOptions);
+
+   d->m_pLineEndStyle = new QLabel(i18n("Line end style:"));
+   pHL2->addWidget(d->m_pEncoding);
+   pHL2->addWidget(d->m_pLineEndStyle);
+
+   QVBoxLayout* pVL = new QVBoxLayout( this );
+   pVL->setMargin(0);
+   pVL->setSpacing(0);
+   pVL->addWidget( d->m_pTopLineWidget, 0 );
+   pVL->addWidget( d->m_pDiffTextWindow, 1 );
+
+   d->m_pDiffTextWindow->installEventFilter( this );
+   d->m_pFileSelection->installEventFilter( this );
+   d->m_pBrowseButton->installEventFilter( this );
+   init();
+}
+
+DiffTextWindowFrame::~DiffTextWindowFrame()
+{
+   delete d;
+}
+
+void DiffTextWindowFrame::init()
+{
+   DiffTextWindow* pDTW = d->m_pDiffTextWindow;
+   if ( pDTW )
+   {
+      QString s = QDir::toNativeSeparators( pDTW->d->m_filename );
+      d->m_pFileSelection->setText( s );
+      QString winId = pDTW->d->m_winIdx==1 ? 
+                             ( pDTW->d->m_bTriple?"A (Base)":"A") :
+                             ( pDTW->d->m_winIdx==2 ? "B" : "C" );
+      d->m_pLabel->setText( winId + ":" );
+      d->m_pEncoding->setText( i18n("Encoding:") + " " + (pDTW->d->m_pTextCodec!=0 ? pDTW->d->m_pTextCodec->name() : QString()) );
+      d->m_pLineEndStyle->setText( i18n("Line end style:") + " " + (pDTW->d->m_eLineEndStyle==eLineEndStyleDos ? i18n("DOS") : i18n("Unix")) );
+   }
+}
+
+// Search for the first visible line (search loop needed when no line exist for this file.)
+int DiffTextWindow::calcTopLineInFile( int firstLine )
+{
+   int l=-1;
+   for ( int i = convertLineToDiff3LineIdx(firstLine); i<(int)d->m_pDiff3LineVector->size(); ++i )
+   {
+      const Diff3Line* d3l = (*d->m_pDiff3LineVector)[i];
+      l = d3l->getLineInFile(d->m_winIdx);
+      if (l!=-1) break;
+   }
+   return l;
+}
+
+void DiffTextWindowFrame::setFirstLine( int firstLine )
+{
+   DiffTextWindow* pDTW = d->m_pDiffTextWindow;
+   if ( pDTW && pDTW->d->m_pDiff3LineVector )
+   {
+      QString s= i18n("Top line");
+      int lineNumberWidth = (int)log10((double)qMax(pDTW->d->m_size,1))+1;
+
+      int l=pDTW->calcTopLineInFile(firstLine);
+
+      int w = d->m_pTopLine->fontMetrics().width(
+            s+" "+QString().fill('0',lineNumberWidth));
+      d->m_pTopLine->setMinimumWidth( w );
+
+      if (l==-1)
+         s = i18n("End");
+      else
+         s += " " + QString::number( l+1 );
+
+      d->m_pTopLine->setText( s );
+      d->m_pTopLine->repaint();
+   }
+}
+
+DiffTextWindow* DiffTextWindowFrame::getDiffTextWindow()
+{
+   return d->m_pDiffTextWindow;
+}
+
+bool DiffTextWindowFrame::eventFilter( QObject* o, QEvent* e )
+{
+   DiffTextWindow* pDTW = d->m_pDiffTextWindow;
+   if ( e->type()==QEvent::FocusIn || e->type()==QEvent::FocusOut )
+   {
+      QColor c1 = d->m_pOptions->m_bgColor;
+      QColor c2;
+      if      ( d->m_winIdx==1 ) c2 = d->m_pOptions->m_colorA;
+      else if ( d->m_winIdx==2 ) c2 = d->m_pOptions->m_colorB;
+      else if ( d->m_winIdx==3 ) c2 = d->m_pOptions->m_colorC;
+
+      QPalette p = d->m_pTopLineWidget->palette();
+      if ( e->type()==QEvent::FocusOut )
+         std::swap(c1,c2);
+
+      p.setColor(QPalette::Window, c2);
+      setPalette( p );
+
+      p.setColor(QPalette::WindowText, c1);
+      d->m_pLabel->setPalette( p );
+      d->m_pTopLine->setPalette( p );
+      d->m_pEncoding->setPalette( p );
+      d->m_pLineEndStyle->setPalette( p );
+   }
+   if (o == d->m_pFileSelection && e->type()==QEvent::Drop)
+   {
+      QDropEvent* d = static_cast<QDropEvent*>(e);
+
+      if ( d->mimeData()->hasUrls() ) 
+      {
+         QList<QUrl> lst = d->mimeData()->urls();
+
+         if ( lst.count() > 0 )
+         {
+            static_cast<QLineEdit*>(o)->setText( lst[0].toString() );
+            static_cast<QLineEdit*>(o)->setFocus();
+            emit fileNameChanged( lst[0].toString(), pDTW->d->m_winIdx );
+            return true;
+         }
+      }
+   }
+
+   return false;
+}
+
+void DiffTextWindowFrame::slotReturnPressed()
+{
+   DiffTextWindow* pDTW = d->m_pDiffTextWindow;
+   if ( pDTW->d->m_filename != d->m_pFileSelection->text() )
+   {
+      emit fileNameChanged( d->m_pFileSelection->text(), pDTW->d->m_winIdx );
+   }
+}
+
+void DiffTextWindowFrame::slotBrowseButtonClicked()
+{
+    QString current = d->m_pFileSelection->text();
+
+    KUrl newURL = KFileDialog::getOpenUrl( current, 0, this);
+    if ( !newURL.isEmpty() )
+    {
+        DiffTextWindow* pDTW = d->m_pDiffTextWindow;
+        emit fileNameChanged( newURL.url(), pDTW->d->m_winIdx );
+    }
+}
+
+void DiffTextWindowFrame::sendEncodingChangedSignal(QTextCodec* c)
+{
+    emit encodingChanged(c);
+}
+
+EncodingLabel::EncodingLabel( const QString & text, DiffTextWindowFrame* pDiffTextWindowFrame, SourceData * pSD, Options* pOptions)
+    : QLabel(text)
+{
+    m_pDiffTextWindowFrame = pDiffTextWindowFrame;
+    m_pOptions = pOptions;
+    m_pSourceData = pSD;
+    m_pContextEncodingMenu = 0;
+    setMouseTracking(true);
+}
+
+void EncodingLabel::mouseMoveEvent(QMouseEvent *)
+{
+    // When there is no data to display or it came from clipboard,
+    // we will be use UTF-8 only,
+    // in that case there is no possibility to change the encoding in the SourceData
+    // so, we should hide the HandCursor and display usual ArrowCursor
+    if (m_pSourceData->isFromBuffer()||m_pSourceData->isEmpty())
+        setCursor(QCursor(Qt::ArrowCursor));
+    else setCursor(QCursor(Qt::PointingHandCursor));
+}
+
+
+void EncodingLabel::mousePressEvent(QMouseEvent *)
+{    
+   if (!(m_pSourceData->isFromBuffer()||m_pSourceData->isEmpty()))
+   {
+      delete m_pContextEncodingMenu;
+      m_pContextEncodingMenu = new QMenu(this);
+      QMenu* pContextEncodingSubMenu = new QMenu(m_pContextEncodingMenu);
+
+      int currentTextCodecEnum = m_pSourceData->getEncoding()->mibEnum(); // the codec that will be checked in the context menu
+      QList<int> mibs = QTextCodec::availableMibs();
+      QList<int> codecEnumList;
+
+      // Adding "main" encodings
+      insertCodec( i18n("Unicode, 8 bit"),  QTextCodec::codecForName("UTF-8"), codecEnumList, m_pContextEncodingMenu, currentTextCodecEnum);
+      insertCodec( "", QTextCodec::codecForName("System"), codecEnumList, m_pContextEncodingMenu, currentTextCodecEnum);
+
+      // Adding recent encodings
+      if (m_pOptions!=0)
+      {
+         QStringList& recentEncodings = m_pOptions->m_recentEncodings;
+         foreach(QString s, recentEncodings)
+         {
+            insertCodec("", QTextCodec::codecForName(s.toLatin1()), codecEnumList, m_pContextEncodingMenu, currentTextCodecEnum);
+         }
+      }
+      // Submenu to add the rest of available encodings
+      pContextEncodingSubMenu->setTitle(i18n("Other"));
+      foreach(int i, mibs)
+      {
+         QTextCodec* c = QTextCodec::codecForMib(i);
+         if ( c!=0 ) 
+            insertCodec("", c, codecEnumList, pContextEncodingSubMenu, currentTextCodecEnum);
+      }
+
+      m_pContextEncodingMenu->addMenu(pContextEncodingSubMenu);
+
+      m_pContextEncodingMenu->exec(QCursor::pos());
+   }
+}
+
+void EncodingLabel::insertCodec( const QString& visibleCodecName, QTextCodec* pCodec, QList<int> &codecEnumList, QMenu* pMenu, int currentTextCodecEnum)
+{
+   int CodecMIBEnum = pCodec->mibEnum();
+   if ( pCodec!=0 && !codecEnumList.contains(CodecMIBEnum) )
+   {
+      QAction* pAction = new QAction( pMenu ); // menu takes ownership, so deleting the menu deletes the action too.
+      pAction->setText( visibleCodecName.isEmpty() ? QString(pCodec->name()) : visibleCodecName+" ("+pCodec->name()+")" );
+      pAction->setData(CodecMIBEnum);
+      pAction->setCheckable(true);
+      if (currentTextCodecEnum==CodecMIBEnum) 
+         pAction->setChecked(true);
+      pMenu->addAction(pAction);
+      connect(pAction, SIGNAL(triggered()), this, SLOT(slotEncodingChanged()));
+      codecEnumList.append(CodecMIBEnum);
+   }
+}
+
+void EncodingLabel::slotEncodingChanged()
+{
+   QAction *pAction = qobject_cast<QAction *>(sender());
+   if (pAction)
+   {
+      QTextCodec * pCodec = QTextCodec::codecForMib(pAction->data().toInt());
+      if (pCodec!=0)
+      {
+         QString s( pCodec->name() );
+         QStringList& recentEncodings = m_pOptions->m_recentEncodings;
+         if ( !recentEncodings.contains(s) && s!="UTF-8" && s!="System" )
+         {
+            int itemsToRemove = recentEncodings.size() - m_maxRecentEncodings + 1;
+            for (int i=0; i<itemsToRemove; ++i)
+            {
+               recentEncodings.removeFirst();
+            }
+            recentEncodings.append(s);
+         }
+      }
+      m_pDiffTextWindowFrame->sendEncodingChangedSignal(pCodec);
+   }
+}
diff --git a/src-QT4/difftextwindow.h b/src-QT4/difftextwindow.h
new file mode 100644 (file)
index 0000000..9a7d9cb
--- /dev/null
@@ -0,0 +1,166 @@
+/***************************************************************************
+                          difftextwindow.h  -  description
+                             -------------------
+    begin                : Mon Mar 18 2002
+    copyright            : (C) 2002-2007 by Joachim Eibl
+    email                : joachim.eibl at gmx.de
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#ifndef DIFFTEXTWINDOW_H
+#define DIFFTEXTWINDOW_H
+
+#include "diff.h"
+
+#include <QLabel>
+
+class QMenu;
+class QStatusBar;
+class Options;
+class DiffTextWindowData;
+class DiffTextWindowFrame;
+class EncodingLabel;
+
+class DiffTextWindow : public QWidget
+{
+   Q_OBJECT
+public:
+   DiffTextWindow(
+      DiffTextWindowFrame* pParent,
+      QStatusBar* pStatusBar,
+      Options* pOptions,
+
+      int winIdx
+      );
+   ~DiffTextWindow();
+   void init(
+      const QString& fileName,
+      QTextCodec* pCodec,
+      e_LineEndStyle eLineEndStyle,
+      const LineData* pLineData,
+      int size,
+      const Diff3LineVector* pDiff3LineVector,
+      const ManualDiffHelpList* pManualDiffHelpList,
+      bool bTriple
+      );
+   void reset();
+   void convertToLinePos( int x, int y, int& line, int& pos );
+
+   QString getSelection();
+   int getFirstLine();
+   int calcTopLineInFile( int firstLine );
+
+   int getMaxTextWidth();
+   int getNofLines();
+   int getNofVisibleLines();
+   int getVisibleTextAreaWidth();
+
+   int convertLineToDiff3LineIdx( int line );
+   int convertDiff3LineIdxToLine( int d3lIdx );
+
+   void convertD3LCoordsToLineCoords( int d3LIdx, int d3LPos, int& line, int& pos );
+   void convertLineCoordsToD3LCoords( int line, int pos, int& d3LIdx, int& d3LPos );
+
+   void convertSelectionToD3LCoords();
+
+   bool findString( const QString& s, int& d3vLine, int& posInLine, bool bDirDown, bool bCaseSensitive );
+   void setSelection( int firstLine, int startPos, int lastLine, int endPos, int& l, int& p );
+   void getSelectionRange( int* firstLine, int* lastLine, e_CoordType coordType );
+
+   void setPaintingAllowed( bool bAllowPainting );
+   void recalcWordWrap( bool bWordWrap, int wrapLineVectorSize, int nofVisibleColumns);
+   void recalcWordWrapHelper( int wrapLineVectorSize, int visibleTextWidth, int cacheListIdx);
+   void print( MyPainter& painter, const QRect& r, int firstLine, int nofLinesPerPage );
+signals:
+   void resizeHeightChangedSignal(int nofVisibleLines);
+   void resizeWidthChangedSignal(int nofVisibleColumns);
+   void scroll(int deltaX, int deltaY);
+   void newSelection();
+   void selectionEnd();
+   void setFastSelectorLine( int line );
+   void gotFocus();
+   void lineClicked( int winIdx, int line );
+
+public slots:
+   void setFirstLine( int line );
+   void setHorizScrollOffset( int horizScrollOffset );
+   void resetSelection();
+   void setFastSelectorRange( int line1, int nofLines );
+
+protected:
+   virtual void mousePressEvent ( QMouseEvent * );
+   virtual void mouseReleaseEvent ( QMouseEvent * );
+   virtual void mouseMoveEvent ( QMouseEvent * );
+   virtual void mouseDoubleClickEvent ( QMouseEvent * e );
+
+   virtual void paintEvent( QPaintEvent*  );
+   virtual void dragEnterEvent( QDragEnterEvent* e );
+   virtual void focusInEvent( QFocusEvent* e );
+
+   virtual void resizeEvent( QResizeEvent* );
+   virtual void timerEvent(QTimerEvent*);
+
+private:
+   DiffTextWindowData* d;
+   void showStatusLine( int line );
+   friend class DiffTextWindowFrame;
+};
+
+
+class DiffTextWindowFrameData;
+
+class DiffTextWindowFrame : public QWidget
+{
+   Q_OBJECT
+public:
+   DiffTextWindowFrame( QWidget* pParent, QStatusBar* pStatusBar, Options* pOptions, int winIdx, SourceData* psd);
+   ~DiffTextWindowFrame();
+   DiffTextWindow* getDiffTextWindow();
+   void init();
+   void setFirstLine(int firstLine);
+   void sendEncodingChangedSignal(QTextCodec* c);
+signals:
+   void fileNameChanged(const QString&, int);
+   void encodingChanged(QTextCodec*);
+protected:
+   bool eventFilter( QObject*, QEvent* );
+   //void paintEvent(QPaintEvent*);
+private slots:
+   void slotReturnPressed();
+   void slotBrowseButtonClicked();
+private:
+   DiffTextWindowFrameData* d;
+};
+
+class EncodingLabel : public QLabel
+{
+   Q_OBJECT
+public:
+   EncodingLabel( const QString & text, DiffTextWindowFrame* pDiffTextWindowFrame, SourceData* psd, Options* pOptions);
+protected:
+   void mouseMoveEvent(QMouseEvent *ev);
+   void mousePressEvent(QMouseEvent *ev);
+private slots:
+   void slotEncodingChanged();
+private:
+   DiffTextWindowFrame* m_pDiffTextWindowFrame; //To send "EncodingChanged" signal
+   QMenu* m_pContextEncodingMenu;
+   SourceData* m_pSourceData; //SourceData to get access to "isEmpty()" and "isFromBuffer()" functions
+   static const int m_maxRecentEncodings  = 5;
+   Options* m_pOptions;
+
+   void insertCodec( const QString& visibleCodecName, QTextCodec* pCodec, QList<int> &CodecEnumList, QMenu* pMenu, int currentTextCodecEnum);
+};
+
+bool startRunnables();
+
+#endif
+
diff --git a/src-QT4/directorymergewindow.cpp b/src-QT4/directorymergewindow.cpp
new file mode 100644 (file)
index 0000000..e21ff43
--- /dev/null
@@ -0,0 +1,3500 @@
+/***************************************************************************
+                          directorymergewindow.cpp
+                             -----------------
+    begin                : Sat Oct 19 2002
+    copyright            : (C) 2002-2011 by Joachim Eibl
+    email                : joachim.eibl at gmx.de
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+#include "stable.h"
+#include "directorymergewindow.h"
+#include "options.h"
+#include "progress.h"
+#include <vector>
+#include <map>
+
+#include <QDir>
+#include <QApplication>
+#include <QPixmap>
+#include <QImage>
+#include <QTextStream>
+#include <QKeyEvent>
+#include <QMenu>
+#include <QRegExp>
+#include <QMessageBox>
+#include <QLayout>
+#include <QLabel>
+#include <QSplitter>
+#include <QTextEdit>
+#include <QStyledItemDelegate>
+#include <QPushButton>
+#include <algorithm>
+
+#include <kmenu.h>
+#include <kaction.h>
+#include <kmessagebox.h>
+#include <kfiledialog.h>
+#include <kiconloader.h>
+#include <klocale.h>
+#include <ktoggleaction.h>
+
+#include <assert.h>
+//#include <konq_popupmenu.h>
+
+#include "guiutils.h"
+
+static bool conflictingFileTypes(MergeFileInfos& mfi);
+static QPixmap getOnePixmap( e_Age eAge, bool bLink, bool bDir );
+
+class StatusInfo : public QDialog
+{
+   QTextEdit* m_pTextEdit;
+public:
+   StatusInfo(QWidget* pParent) : QDialog( pParent )
+   {
+      QVBoxLayout* pVLayout = new QVBoxLayout( this );     
+      m_pTextEdit = new QTextEdit(this);
+      pVLayout->addWidget( m_pTextEdit );
+      setObjectName("StatusInfo");
+      setWindowFlags(Qt::Dialog);
+      m_pTextEdit->setWordWrapMode(QTextOption::NoWrap);
+      m_pTextEdit->setReadOnly(true);
+      QPushButton* pClose = new QPushButton(tr("Close"));
+      connect( pClose, SIGNAL(clicked()), this, SLOT(accept()));
+      pVLayout->addWidget(pClose);
+   }
+
+   bool isEmpty(){ 
+      return m_pTextEdit->toPlainText().isEmpty(); 
+   }
+
+   void addText(const QString& s )
+   {
+      m_pTextEdit->append(s);
+   }
+
+   void clear()
+   {
+      m_pTextEdit->clear();
+   }
+
+   void setVisible(bool bVisible)
+   {
+      if (bVisible)
+      {
+         m_pTextEdit->moveCursor ( QTextCursor::End );
+         m_pTextEdit->moveCursor ( QTextCursor::StartOfLine );
+         m_pTextEdit->ensureCursorVisible();
+      }
+
+      QDialog::setVisible(bVisible);
+      if ( bVisible )
+         setWindowState( windowState() | Qt::WindowMaximized );
+   }
+};
+
+
+class TempRemover
+{
+public:
+   TempRemover( const QString& origName, FileAccess& fa );
+   ~TempRemover();
+   QString name() { return m_name; }
+   bool success() { return m_bSuccess; }
+private:
+   QString m_name;
+   bool m_bTemp;
+   bool m_bSuccess;
+};
+TempRemover::TempRemover(const QString& origName, FileAccess& fa)
+{
+   if ( fa.isLocal() )
+   {
+      m_name = origName;
+      m_bTemp = false;
+      m_bSuccess = true;
+   }
+   else
+   {
+      m_name = FileAccess::tempFileName();
+      m_bSuccess = fa.copyFile( m_name );
+      m_bTemp = m_bSuccess;
+   }
+}
+TempRemover::~TempRemover()
+{
+   if ( m_bTemp && ! m_name.isEmpty() )
+      FileAccess::removeTempFile(m_name);
+}
+
+
+enum Columns
+{
+   s_NameCol = 0,
+   s_ACol = 1,
+   s_BCol = 2,
+   s_CCol = 3,
+   s_OpCol = 4,
+   s_OpStatusCol = 5,
+   s_UnsolvedCol = 6,    // Nr of unsolved conflicts (for 3 input files)
+   s_SolvedCol = 7,      // Nr of auto-solvable conflicts (for 3 input files)
+   s_NonWhiteCol = 8,    // Nr of nonwhite deltas (for 2 input files)
+   s_WhiteCol = 9        // Nr of white deltas (for 2 input files)
+};
+
+enum e_OperationStatus
+{
+   eOpStatusNone,
+   eOpStatusDone,
+   eOpStatusError,
+   eOpStatusSkipped,
+   eOpStatusNotSaved,
+   eOpStatusInProgress,
+   eOpStatusToDo
+};
+
+class MergeFileInfos
+{
+public:
+   MergeFileInfos()
+   { 
+      m_bEqualAB=false; m_bEqualAC=false; m_bEqualBC=false;
+      m_pParent=0;                                         
+      m_bOperationComplete=false; m_bSimOpComplete = false;
+      m_eMergeOperation=eNoOperation;
+      m_eOpStatus = eOpStatusNone;
+      m_ageA = eNotThere; m_ageB=eNotThere; m_ageC=eNotThere;
+      m_bConflictingAges=false; 
+      m_pFileInfoA = 0; m_pFileInfoB = 0; m_pFileInfoC = 0; 
+   }
+   ~MergeFileInfos()
+   {
+      //for( int i=0; i<m_children.count(); ++i )
+      //   delete m_children[i];
+      m_children.clear();
+   }
+   //bool operator>( const MergeFileInfos& );
+   QString subPath() const
+   {
+      return m_pFileInfoA && m_pFileInfoA->exists() ? m_pFileInfoA->filePath() :
+             m_pFileInfoB && m_pFileInfoB->exists() ? m_pFileInfoB->filePath() :
+             m_pFileInfoC && m_pFileInfoC->exists() ? m_pFileInfoC->filePath() :
+             QString("");
+   }
+   QString fileName() const
+   {
+      return m_pFileInfoA && m_pFileInfoA->exists() ? m_pFileInfoA->fileName() :
+             m_pFileInfoB && m_pFileInfoB->exists() ? m_pFileInfoB->fileName() :
+             m_pFileInfoC && m_pFileInfoC->exists() ? m_pFileInfoC->fileName() :
+             QString("");
+   }
+   bool dirA() const { return m_pFileInfoA ? m_pFileInfoA->isDir() : false; }
+   bool dirB() const { return m_pFileInfoB ? m_pFileInfoB->isDir() : false; }
+   bool dirC() const { return m_pFileInfoC ? m_pFileInfoC->isDir() : false; }
+   bool isLinkA() const { return m_pFileInfoA ? m_pFileInfoA->isSymLink() : false; }
+   bool isLinkB() const { return m_pFileInfoB ? m_pFileInfoB->isSymLink() : false; }
+   bool isLinkC() const { return m_pFileInfoC ? m_pFileInfoC->isSymLink() : false; }
+   bool existsInA() const { return m_pFileInfoA!=0; }
+   bool existsInB() const { return m_pFileInfoB!=0; }
+   bool existsInC() const { return m_pFileInfoC!=0; }
+   MergeFileInfos* m_pParent;
+   FileAccess*     m_pFileInfoA;
+   FileAccess*     m_pFileInfoB;
+   FileAccess*     m_pFileInfoC;
+   TotalDiffStatus m_totalDiffStatus;
+   QList<MergeFileInfos*> m_children;
+
+   e_MergeOperation m_eMergeOperation : 5;
+   e_OperationStatus m_eOpStatus : 4;
+
+   e_Age m_ageA                  : 3;
+   e_Age m_ageB                  : 3;
+   e_Age m_ageC                  : 3;
+
+   bool m_bOperationComplete     : 1;
+   bool m_bSimOpComplete         : 1;
+
+   bool m_bEqualAB               : 1;
+   bool m_bEqualAC               : 1;
+   bool m_bEqualBC               : 1;
+   bool m_bConflictingAges       : 1;       // Equal age but files are not!
+};
+
+static Qt::CaseSensitivity s_eCaseSensitivity = Qt::CaseSensitive;
+
+class DirectoryMergeWindow::Data : public QAbstractItemModel
+{
+public:
+   DirectoryMergeWindow* q;
+   Data( DirectoryMergeWindow* pDMW )
+   {
+      q = pDMW;
+      m_pOptions = 0;
+      m_pIconLoader = 0;
+      m_pDirectoryMergeInfo = 0;
+      m_bSimulatedMergeStarted=false;
+      m_bRealMergeStarted=false;
+      m_bError = false;
+      m_bSyncMode = false;
+      m_pStatusInfo = new StatusInfo(q);
+      m_pStatusInfo->hide();
+      m_bScanning = false;
+      m_bCaseSensitive = true;
+      m_bUnfoldSubdirs = false;
+      m_bSkipDirStatus = false;
+      m_pRoot = new MergeFileInfos;
+   }
+   ~Data()
+   {
+      delete m_pRoot;
+   }
+   // Implement QAbstractItemModel
+   QVariant    data ( const QModelIndex & index, int role = Qt::DisplayRole ) const;
+   //Qt::ItemFlags flags ( const QModelIndex & index ) const
+   QModelIndex parent ( const QModelIndex & index ) const
+   {
+      MergeFileInfos* pMFI = getMFI( index );
+      if ( pMFI == 0 || pMFI==m_pRoot || pMFI->m_pParent==m_pRoot )
+         return QModelIndex();
+      else
+      {
+         MergeFileInfos* pParentsParent = pMFI->m_pParent->m_pParent;
+         return createIndex( pParentsParent->m_children.indexOf(pMFI->m_pParent), 0, pMFI->m_pParent );
+      }
+   }
+   int rowCount ( const QModelIndex & parent = QModelIndex() ) const
+   {
+      MergeFileInfos* pParentMFI = getMFI( parent );
+      if ( pParentMFI!=0 )
+         return pParentMFI->m_children.count();
+      else
+         return m_pRoot->m_children.count();
+   }
+   int columnCount ( const QModelIndex & /*parent*/ ) const 
+   {
+      return 10;
+   }
+   QModelIndex index ( int row, int column, const QModelIndex & parent ) const
+   {
+      MergeFileInfos* pParentMFI = getMFI( parent );
+      if ( pParentMFI == 0 && row < m_pRoot->m_children.count() )
+         return createIndex( row, column, m_pRoot->m_children[row] );
+      else if ( pParentMFI != 0 && row < pParentMFI->m_children.count() )
+         return createIndex( row, column, pParentMFI->m_children[row] );
+      else
+         return QModelIndex();
+   }
+   QVariant    headerData ( int section, Qt::Orientation orientation, int role = Qt::DisplayRole ) const;
+   void sort( int column, Qt::SortOrder order );
+   // private data and helper methods
+   MergeFileInfos* getMFI( const QModelIndex& mi ) const
+   {
+      if ( mi.isValid() )
+         return (MergeFileInfos*)mi.internalPointer();
+      else
+         return 0;
+   }
+   MergeFileInfos* m_pRoot;
+
+   QString fullNameA( const MergeFileInfos& mfi )
+   { return mfi.existsInA() ? mfi.m_pFileInfoA->absoluteFilePath() : m_dirA.absoluteFilePath() + "/" + mfi.subPath(); }
+   QString fullNameB( const MergeFileInfos& mfi )
+   { return mfi.existsInB() ? mfi.m_pFileInfoB->absoluteFilePath() : m_dirB.absoluteFilePath() + "/" + mfi.subPath(); }
+   QString fullNameC( const MergeFileInfos& mfi )
+   { return mfi.existsInC() ? mfi.m_pFileInfoC->absoluteFilePath() : m_dirC.absoluteFilePath() + "/" + mfi.subPath(); }
+   QString fullNameDest( const MergeFileInfos& mfi )
+   { if       ( m_dirDestInternal.prettyAbsPath() == m_dirC.prettyAbsPath() ) return fullNameC(mfi);
+     else if ( m_dirDestInternal.prettyAbsPath() == m_dirB.prettyAbsPath() ) return fullNameB(mfi);
+     else return m_dirDestInternal.absoluteFilePath() + "/" + mfi.subPath(); 
+   }
+
+   FileAccess m_dirA;
+   FileAccess m_dirB;
+   FileAccess m_dirC;
+   FileAccess m_dirDest;
+   FileAccess m_dirDestInternal;
+   Options* m_pOptions;
+
+   void calcDirStatus( bool bThreeDirs, const QModelIndex& mi, 
+      int& nofFiles, int& nofDirs, int& nofEqualFiles, int& nofManualMerges );
+
+   void mergeContinue( bool bStart, bool bVerbose );
+
+   void prepareListView(ProgressProxy& pp);
+   void calcSuggestedOperation( const QModelIndex& mi, e_MergeOperation eDefaultOperation );
+   void setAllMergeOperations( e_MergeOperation eDefaultOperation );
+   friend class MergeFileInfos;
+
+   bool canContinue();
+   QModelIndex treeIterator( QModelIndex mi, bool bVisitChildren=true, bool bFindInvisible=false );
+   void prepareMergeStart( const QModelIndex& miBegin, const QModelIndex& miEnd, bool bVerbose );
+   bool executeMergeOperation( MergeFileInfos& mfi, bool& bSingleFileMerge );
+
+   void scanDirectory( const QString& dirName, t_DirectoryList& dirList );
+   void scanLocalDirectory( const QString& dirName, t_DirectoryList& dirList );
+   bool fastFileComparison( FileAccess& fi1, FileAccess& fi2,
+                            bool& bError, QString& status );
+   void compareFilesAndCalcAges( MergeFileInfos& mfi );
+
+   void setMergeOperation( const QModelIndex& mi, e_MergeOperation eMergeOp, bool bRecursive = true );
+   bool isDir( const QModelIndex& mi );
+   QString getFileName( const QModelIndex& mi );
+
+   bool copyFLD( const QString& srcName, const QString& destName );
+   bool deleteFLD( const QString& name, bool bCreateBackup );
+   bool makeDir( const QString& name, bool bQuiet=false );
+   bool renameFLD( const QString& srcName, const QString& destName );
+   bool mergeFLD( const QString& nameA,const QString& nameB,const QString& nameC,
+                  const QString& nameDest, bool& bSingleFileMerge );
+
+   t_DirectoryList m_dirListA;
+   t_DirectoryList m_dirListB;
+   t_DirectoryList m_dirListC;
+
+   QString m_dirMergeStateFilename;
+
+   class FileKey
+   {
+   public:
+      const FileAccess* m_pFA;
+      FileKey( const FileAccess& fa ) : m_pFA( &fa ){}
+
+      int getParents( const FileAccess* pFA, const FileAccess* v[] ) const
+      {
+         int s = 0;
+         for(s=0; pFA->parent() != 0 ; pFA=pFA->parent(), ++s )
+            v[s] = pFA ;
+         return s;
+      }
+
+      // This is essentially the same as 
+      // int r = filePath().compare( fa.filePath() )
+      // if ( r<0 ) return true;
+      // if ( r==0 ) return m_col < fa.m_col;
+      // return false;
+      bool operator< ( const FileKey& fk ) const
+      {
+         const FileAccess* v1[100];
+         const FileAccess* v2[100];
+         int v1Size = getParents(m_pFA, v1);
+         int v2Size = getParents(fk.m_pFA, v2);
+        
+         for( int i=0; i<v1Size && i<v2Size; ++i )
+         {
+            int r = v1[v1Size-i-1]->fileName().compare( v2[v2Size-i-1]->fileName(), s_eCaseSensitivity );
+            if (  r < 0  )
+               return true;
+            else if ( r > 0  )
+               return false;
+         }
+
+         if ( v1Size < v2Size )
+            return true;
+         return false;
+      }
+   };
+   typedef QMap<FileKey, MergeFileInfos> t_fileMergeMap;
+   t_fileMergeMap m_fileMergeMap;
+
+   bool m_bFollowDirLinks;
+   bool m_bFollowFileLinks;
+   bool m_bSimulatedMergeStarted;
+   bool m_bRealMergeStarted;
+   bool m_bError;
+   bool m_bSyncMode;
+   bool m_bDirectoryMerge; // if true, then merge is the default operation, otherwise it's diff.
+   bool m_bCaseSensitive;
+   bool m_bUnfoldSubdirs;
+   bool m_bSkipDirStatus;   
+   bool m_bScanning; // true while in init()
+
+   KIconLoader* m_pIconLoader;
+   DirectoryMergeInfo* m_pDirectoryMergeInfo;
+   StatusInfo* m_pStatusInfo;
+
+   typedef std::list< QModelIndex > MergeItemList; // linked list
+   MergeItemList m_mergeItemList;
+   MergeItemList::iterator m_currentIndexForOperation;
+
+   QModelIndex m_selection1Index;
+   QModelIndex m_selection2Index;
+   QModelIndex m_selection3Index;
+   void selectItemAndColumn( const QModelIndex& mi, bool bContextMenu);
+   friend class DirMergeItem;
+
+   KAction* m_pDirStartOperation;
+   KAction* m_pDirRunOperationForCurrentItem;
+   KAction* m_pDirCompareCurrent;
+   KAction* m_pDirMergeCurrent;
+   KAction* m_pDirRescan;
+   KAction* m_pDirChooseAEverywhere;
+   KAction* m_pDirChooseBEverywhere;
+   KAction* m_pDirChooseCEverywhere;
+   KAction* m_pDirAutoChoiceEverywhere;
+   KAction* m_pDirDoNothingEverywhere;
+   KAction* m_pDirFoldAll;
+   KAction* m_pDirUnfoldAll;
+
+   KToggleAction* m_pDirShowIdenticalFiles;
+   KToggleAction* m_pDirShowDifferentFiles;
+   KToggleAction* m_pDirShowFilesOnlyInA;
+   KToggleAction* m_pDirShowFilesOnlyInB;
+   KToggleAction* m_pDirShowFilesOnlyInC;
+
+   KToggleAction* m_pDirSynchronizeDirectories;
+   KToggleAction* m_pDirChooseNewerFiles;
+
+   KAction* m_pDirCompareExplicit;
+   KAction* m_pDirMergeExplicit;
+
+   KAction* m_pDirCurrentDoNothing;
+   KAction* m_pDirCurrentChooseA;
+   KAction* m_pDirCurrentChooseB;
+   KAction* m_pDirCurrentChooseC;
+   KAction* m_pDirCurrentMerge;
+   KAction* m_pDirCurrentDelete;
+
+   KAction* m_pDirCurrentSyncDoNothing;
+   KAction* m_pDirCurrentSyncCopyAToB;
+   KAction* m_pDirCurrentSyncCopyBToA;
+   KAction* m_pDirCurrentSyncDeleteA;
+   KAction* m_pDirCurrentSyncDeleteB;
+   KAction* m_pDirCurrentSyncDeleteAAndB;
+   KAction* m_pDirCurrentSyncMergeToA;
+   KAction* m_pDirCurrentSyncMergeToB;
+   KAction* m_pDirCurrentSyncMergeToAAndB;
+
+   KAction* m_pDirSaveMergeState;
+   KAction* m_pDirLoadMergeState;
+
+   bool init( FileAccess& dirA, FileAccess& dirB, FileAccess& dirC, FileAccess& dirDest, bool bDirectoryMerge, bool bReload );
+   void setOpStatus( const QModelIndex& mi, e_OperationStatus eOpStatus )
+   {
+      if ( MergeFileInfos* pMFI = getMFI(mi) )
+      {
+         pMFI->m_eOpStatus = eOpStatus;
+         emit dataChanged( mi, mi );
+      }
+   }
+};
+
+QVariant DirectoryMergeWindow::Data::data( const QModelIndex & index, int role ) const
+{
+   MergeFileInfos* pMFI = getMFI( index );
+   if ( pMFI )
+   {
+      if ( role == Qt::DisplayRole )
+      {
+         switch ( index.column() )
+         {
+         case s_NameCol:     return QFileInfo(pMFI->subPath()).fileName();
+         case s_ACol:        return "A";
+         case s_BCol:        return "B";
+         case s_CCol:        return "C";
+         //case s_OpCol:       return i18n("Operation");
+         //case s_OpStatusCol: return i18n("Status");
+         case s_UnsolvedCol: return i18n("Unsolved");
+         case s_SolvedCol:   return i18n("Solved");
+         case s_NonWhiteCol: return i18n("Nonwhite");
+         case s_WhiteCol:    return i18n("White");
+         //default :           return QVariant();
+         }
+
+         if ( s_OpCol == index.column() )
+         {            
+            bool bDir = pMFI->dirA() || pMFI->dirB() || pMFI->dirC();
+            switch( pMFI->m_eMergeOperation )
+            {
+            case eNoOperation:      return ""; break;
+            case eCopyAToB:         return i18n("Copy A to B");     break;
+            case eCopyBToA:         return i18n("Copy B to A");     break;
+            case eDeleteA:          return i18n("Delete A");        break;
+            case eDeleteB:          return i18n("Delete B");        break;
+            case eDeleteAB:         return i18n("Delete A & B");    break;
+            case eMergeToA:         return i18n("Merge to A");      break;
+            case eMergeToB:         return i18n("Merge to B");      break;
+            case eMergeToAB:        return i18n("Merge to A & B");  break;
+            case eCopyAToDest:      return "A";    break;
+            case eCopyBToDest:      return "B";    break;
+            case eCopyCToDest:      return "C";    break;
+            case eDeleteFromDest:   return i18n("Delete (if exists)");  break;
+            case eMergeABCToDest:   return bDir ? i18n("Merge") : i18n("Merge (manual)");    break;
+            case eMergeABToDest:    return bDir ? i18n("Merge") : i18n("Merge (manual)");    break;
+            case eConflictingFileTypes: return i18n("Error: Conflicting File Types");         break;
+            case eChangedAndDeleted: return i18n("Error: Changed and Deleted");               break;
+            case eConflictingAges:  return i18n("Error: Dates are equal but files are not."); break;
+            default:                assert(false); break;
+            }
+         }
+         if ( s_OpStatusCol == index.column() )
+         {
+            switch( pMFI->m_eOpStatus )
+            {
+            case eOpStatusNone: return "";
+            case eOpStatusDone: return i18n("Done");
+            case eOpStatusError: return i18n("Error");
+            case eOpStatusSkipped: return i18n("Skipped.");
+            case eOpStatusNotSaved:return i18n("Not saved.");
+            case eOpStatusInProgress: return i18n("In progress...");
+            case eOpStatusToDo: return i18n("To do.");
+            }
+         }
+      }
+      else if ( role == Qt::DecorationRole )
+      {
+         if ( s_NameCol == index.column() )
+         {
+            return getOnePixmap( eAgeEnd, pMFI->isLinkA() || pMFI->isLinkB() || pMFI->isLinkC(),
+                                 pMFI->dirA()  || pMFI->dirB()  || pMFI->dirC() );
+         }
+
+         if ( s_ACol == index.column() )
+         {
+            return getOnePixmap( pMFI->m_ageA, pMFI->isLinkA(), pMFI->dirA() );
+         }
+         if ( s_BCol == index.column() )
+         {
+            return getOnePixmap( pMFI->m_ageB, pMFI->isLinkB(), pMFI->dirB() );
+         }
+         if ( s_CCol == index.column() )
+         {
+            return getOnePixmap( pMFI->m_ageC, pMFI->isLinkC(), pMFI->dirC() );
+         }
+      }
+      else if ( role == Qt::TextAlignmentRole )
+      {
+         if ( s_UnsolvedCol == index.column() || s_SolvedCol == index.column() 
+            || s_NonWhiteCol == index.column() || s_WhiteCol == index.column() )
+            return Qt::AlignRight;
+      }
+   }
+   return QVariant();
+}
+
+QVariant DirectoryMergeWindow::Data::headerData ( int section, Qt::Orientation orientation, int role ) const
+{
+   if ( orientation == Qt::Horizontal && section>=0 && section<columnCount(QModelIndex()) && role==Qt::DisplayRole )
+   {
+      switch ( section )
+      {
+      case s_NameCol:     return i18n("Name");
+      case s_ACol:        return "A";
+      case s_BCol:        return "B";
+      case s_CCol:        return "C";
+      case s_OpCol:       return i18n("Operation");
+      case s_OpStatusCol: return i18n("Status");
+      case s_UnsolvedCol: return i18n("Unsolved");
+      case s_SolvedCol:   return i18n("Solved");
+      case s_NonWhiteCol: return i18n("Nonwhite");
+      case s_WhiteCol:    return i18n("White");
+      default :           return QVariant();
+      }
+   }
+   return QVariant();
+}
+
+// Previously  Q3ListViewItem::paintCell(p,cg,column,width,align);
+class DirectoryMergeWindow::DirMergeItemDelegate : public QStyledItemDelegate
+{
+   DirectoryMergeWindow* m_pDMW;
+   DirectoryMergeWindow::Data* d;
+public:
+   DirMergeItemDelegate(DirectoryMergeWindow* pParent) 
+      : QStyledItemDelegate(pParent), m_pDMW(pParent), d(pParent->d)
+   {
+   }
+   void paint( QPainter * p, const QStyleOptionViewItem & option, const QModelIndex & index ) const 
+   {
+      int column = index.column();
+      if (column == s_ACol || column == s_BCol || column == s_CCol )
+      {
+         QVariant value = index.data( Qt::DecorationRole );
+         QPixmap icon;
+         if ( value.isValid() ) 
+         {
+            if (value.type() == QVariant::Icon) 
+            {
+               icon = qvariant_cast<QIcon>(value).pixmap(16,16);
+               //icon = qvariant_cast<QIcon>(value);
+               //decorationRect = QRect(QPoint(0, 0), icon.actualSize(option.decorationSize, iconMode, iconState));
+            } 
+            else 
+            {
+               icon = qvariant_cast<QPixmap>(value);
+               //decorationRect = QRect(QPoint(0, 0), option.decorationSize).intersected(pixmap.rect());
+            }
+         }
+
+         int x = option.rect.left();
+         int y = option.rect.top();
+         //QPixmap icon = value.value<QPixmap>(); //pixmap(column);
+         if ( !icon.isNull() )
+         {
+            int yOffset = (sizeHint(option,index).height() - icon.height()) / 2;
+            p->drawPixmap( x+2, y+yOffset, icon );
+
+            int i = index==d->m_selection1Index ? 1 :
+                    index==d->m_selection2Index ? 2 :
+                    index==d->m_selection3Index ? 3 :
+                                                   0 ;
+            if ( i!=0 )
+            {
+               Options* pOpts = d->m_pOptions;
+               QColor c ( i==1 ? pOpts->m_colorA : i==2 ? pOpts->m_colorB : pOpts->m_colorC );
+               p->setPen( c );// highlight() );
+               p->drawRect( x+2, y+yOffset, icon.width(), icon.height());
+               p->setPen( QPen( c, 0, Qt::DotLine) );
+               p->drawRect( x+1, y+yOffset-1, icon.width()+2, icon.height()+2);
+               p->setPen( Qt::white );
+               QString s( QChar('A'+i-1) );
+               p->drawText( x+2 + (icon.width() - p->fontMetrics().width(s))/2,
+                           y+yOffset + (icon.height() + p->fontMetrics().ascent())/2-1,
+                           s );
+            }
+            else
+            {
+               p->setPen( m_pDMW->palette().background().color() );
+               p->drawRect( x+1, y+yOffset-1, icon.width()+2, icon.height()+2);
+            }
+            return;
+         }
+      }
+      QStyleOptionViewItem option2 = option;
+      if ( column>=s_UnsolvedCol )
+      {
+         option2.displayAlignment = Qt::AlignRight;
+      }
+      QStyledItemDelegate::paint( p, option2, index );
+   }
+   QSize sizeHint( const QStyleOptionViewItem & option, const QModelIndex & index ) const 
+   {
+      QSize sz = QStyledItemDelegate::sizeHint( option, index );
+      return sz.expandedTo( QSize(0,18) );
+   }
+};
+
+
+DirectoryMergeWindow::DirectoryMergeWindow( QWidget* pParent, Options* pOptions, KIconLoader* pIconLoader )
+   : QTreeView( pParent )
+{
+   d = new Data(this);
+   setModel( d );
+   setItemDelegate( new DirMergeItemDelegate(this) );
+   connect( this, SIGNAL(doubleClicked(const QModelIndex&)), this, SLOT(onDoubleClick(const QModelIndex&)));
+   connect( this, SIGNAL(expanded(const QModelIndex&)), this, SLOT(onExpanded()));
+
+   d->m_pOptions = pOptions;
+   d->m_pIconLoader = pIconLoader;
+
+   setSortingEnabled(true);
+}
+
+DirectoryMergeWindow::~DirectoryMergeWindow()
+{
+   delete d;
+}
+
+QString DirectoryMergeWindow::getDirNameA(){ return d->m_dirA.prettyAbsPath(); }
+QString DirectoryMergeWindow::getDirNameB(){ return d->m_dirB.prettyAbsPath(); }
+QString DirectoryMergeWindow::getDirNameC(){ return d->m_dirC.prettyAbsPath(); }
+QString DirectoryMergeWindow::getDirNameDest(){ return d->m_dirDest.prettyAbsPath(); }
+void DirectoryMergeWindow::setDirectoryMergeInfo(DirectoryMergeInfo* p){ d->m_pDirectoryMergeInfo=p; }
+bool DirectoryMergeWindow::isDirectoryMergeInProgress() { return d->m_bRealMergeStarted; }
+bool DirectoryMergeWindow::isSyncMode() { return d->m_bSyncMode; }
+bool DirectoryMergeWindow::isScanning() { return d->m_bScanning; }
+
+bool DirectoryMergeWindow::Data::fastFileComparison(
+   FileAccess& fi1, FileAccess& fi2,
+   bool& bError, QString& status )
+{
+   ProgressProxy pp;
+   status = "";
+   bool bEqual = false;
+   bError = true;
+
+   if ( !m_bFollowFileLinks )
+   {
+      if ( fi1.isSymLink() != fi2.isSymLink() )
+      {
+         status = i18n("Mix of links and normal files.");
+         return bEqual;
+      }
+      else if ( fi1.isSymLink() && fi2.isSymLink() )
+      {
+         bError = false;
+         bEqual = fi1.readLink() == fi2.readLink();
+         status = i18n("Link: ");
+         return bEqual;
+      }
+   }
+
+   if ( fi1.size()!=fi2.size() )
+   {
+      bEqual = false;
+      status = i18n("Size. ");
+      return bEqual;
+   }
+   else if ( m_pOptions->m_bDmTrustSize )
+   {
+      bEqual = true;
+      return bEqual;
+   }
+
+   if ( m_pOptions->m_bDmTrustDate )
+   {
+      bEqual = ( fi1.lastModified() == fi2.lastModified()  &&  fi1.size()==fi2.size() );
+      bError = false;
+      status = i18n("Date & Size: ");
+      return bEqual;
+   }
+
+   if ( m_pOptions->m_bDmTrustDateFallbackToBinary )
+   {
+      bEqual = ( fi1.lastModified() == fi2.lastModified()  &&  fi1.size()==fi2.size() );
+      if ( bEqual )
+      {
+         bError = false;
+         status = i18n("Date & Size: ");
+         return bEqual;
+      }
+   }
+
+   QString fileName1 = fi1.absoluteFilePath();
+   QString fileName2 = fi2.absoluteFilePath();
+   TempRemover tr1( fileName1, fi1 );
+   if ( !tr1.success() )
+   {
+      status = i18n("Creating temp copy of %1 failed.",fileName1);
+      return bEqual;
+   }
+   TempRemover tr2( fileName2, fi2 );
+   if ( !tr2.success() )
+   {
+      status = i18n("Creating temp copy of %1 failed.",fileName2);
+      return bEqual;
+   }
+
+   std::vector<char> buf1(100000);
+   std::vector<char> buf2(buf1.size());
+
+   QFile file1( tr1.name() );
+
+   if ( ! file1.open(QIODevice::ReadOnly) )
+   {
+      status = i18n("Opening %1 failed.",fileName1);
+      return bEqual;
+   }
+
+   QFile file2( tr2.name() );
+
+   if ( ! file2.open(QIODevice::ReadOnly) )
+   {
+      status = i18n("Opening %1 failed.",fileName2);
+      return bEqual;
+   }
+
+   pp.setInformation( i18n("Comparing file..."), 0, false );
+   typedef qint64 t_FileSize;
+   t_FileSize fullSize = file1.size();
+   t_FileSize sizeLeft = fullSize;
+
+   pp.setMaxNofSteps( fullSize / buf1.size() );
+
+   while( sizeLeft>0 && ! pp.wasCancelled() )
+   {
+      int len = min2( sizeLeft, (t_FileSize)buf1.size() );
+      if( len != file1.read( &buf1[0], len ) )
+      {
+         status = i18n("Error reading from %1",fileName1);
+         return bEqual;
+      }
+
+      if( len != file2.read( &buf2[0], len ) )
+      {
+         status = i18n("Error reading from %1",fileName2);
+         return bEqual;
+      }
+
+      if ( memcmp( &buf1[0], &buf2[0], len ) != 0 )
+      {
+         bError = false;
+         return bEqual;
+      }
+      sizeLeft-=len;
+      //pp.setCurrent(double(fullSize-sizeLeft)/fullSize, false );
+      pp.step();
+   }
+
+   // If the program really arrives here, then the files are really equal.
+   bError = false;
+   bEqual = true;
+   return bEqual;
+}
+
+int DirectoryMergeWindow::totalColumnWidth()
+{
+   int w=0;
+   for (int i=0; i<s_OpStatusCol; ++i)
+   {
+      w += columnWidth(i);
+   }
+   return w;
+}
+
+void DirectoryMergeWindow::reload()
+{
+   if ( isDirectoryMergeInProgress() )
+   {
+      int result = KMessageBox::warningYesNo(this,
+         i18n("You are currently doing a directory merge. Are you sure, you want to abort the merge and rescan the directory?"),
+         i18n("Warning"), 
+         KGuiItem( i18n("Rescan") ), 
+         KGuiItem( i18n("Continue Merging") ) );
+      if ( result!=KMessageBox::Yes )
+         return;
+   }
+
+   init( d->m_dirA, d->m_dirB, d->m_dirC, d->m_dirDest, d->m_bDirectoryMerge, true );
+}
+
+// Copy pm2 onto pm1, but preserve the alpha value from pm1 where pm2 is transparent.
+static QPixmap pixCombiner( const QPixmap* pm1, const QPixmap* pm2 )
+{
+   QImage img1 = pm1->toImage().convertToFormat(QImage::Format_ARGB32);
+   QImage img2 = pm2->toImage().convertToFormat(QImage::Format_ARGB32);
+
+   for (int y = 0; y < img1.height(); y++)
+   {
+      quint32 *line1 = reinterpret_cast<quint32 *>(img1.scanLine(y));
+      quint32 *line2 = reinterpret_cast<quint32 *>(img2.scanLine(y));
+      for (int x = 0; x < img1.width();  x++)
+      {
+         if ( qAlpha( line2[x] ) >0 )
+            line1[x] = (line2[x] | 0xff000000);
+      }
+   }
+   return QPixmap::fromImage(img1);
+}
+
+// like pixCombiner but let the pm1 color shine through
+static QPixmap pixCombiner2( const QPixmap* pm1, const QPixmap* pm2 )
+{
+   QPixmap pix=*pm1;
+   QPainter p(&pix);
+   p.setOpacity(0.5);
+   p.drawPixmap( 0,0,*pm2 );
+   p.end();
+
+   return pix;
+}
+
+void DirectoryMergeWindow::Data::calcDirStatus( bool bThreeDirs, const QModelIndex& mi, 
+   int& nofFiles, int& nofDirs, int& nofEqualFiles, int& nofManualMerges )
+{
+   MergeFileInfos* pMFI = getMFI(mi);
+   if ( pMFI->dirA() || pMFI->dirB() || pMFI->dirC() )
+   {
+      ++nofDirs;
+   }
+   else
+   {
+      ++nofFiles;
+      if ( pMFI->m_bEqualAB && (!bThreeDirs || pMFI->m_bEqualAC ))
+      {
+         ++nofEqualFiles;
+      }
+      else
+      {
+         if ( pMFI->m_eMergeOperation==eMergeABCToDest || pMFI->m_eMergeOperation==eMergeABToDest )
+            ++nofManualMerges;
+      }
+   }
+   for( int childIdx=0; childIdx<rowCount(mi); ++childIdx )
+      calcDirStatus( bThreeDirs, index(childIdx,0,mi), nofFiles, nofDirs, nofEqualFiles, nofManualMerges );
+}
+
+struct t_ItemInfo 
+{
+   bool bExpanded; 
+   bool bOperationComplete; 
+   QString status; 
+   e_MergeOperation eMergeOperation; 
+};
+
+bool DirectoryMergeWindow::init
+   (
+   FileAccess& dirA,
+   FileAccess& dirB,
+   FileAccess& dirC,
+   FileAccess& dirDest,
+   bool bDirectoryMerge,
+   bool bReload
+   )
+{
+   return d->init( dirA, dirB, dirC, dirDest, bDirectoryMerge, bReload );
+}
+
+bool DirectoryMergeWindow::Data::init
+   (
+   FileAccess& dirA,
+   FileAccess& dirB,
+   FileAccess& dirC,
+   FileAccess& dirDest,
+   bool bDirectoryMerge,
+   bool bReload
+   )
+{
+   if ( m_pOptions->m_bDmFullAnalysis )
+   {
+      // A full analysis uses the same ressources that a normal text-diff/merge uses.
+      // So make sure that the user saves his data first.
+      bool bCanContinue=false;
+      emit q->checkIfCanContinue( &bCanContinue );
+      if ( !bCanContinue )
+         return false;
+      emit q->startDiffMerge("","","","","","","",0);  // hide main window
+   }
+
+   q->show();
+   q->setUpdatesEnabled(true);
+
+   std::map<QString,t_ItemInfo> expandedDirsMap;
+
+   if ( bReload )
+   {
+      // Remember expanded items TODO
+      //QTreeWidgetItemIterator it( this );
+      //while ( *it )
+      //{
+      //   DirMergeItem* pDMI = static_cast<DirMergeItem*>( *it );
+      //   t_ItemInfo& ii = expandedDirsMap[ pDMI->m_pMFI->subPath() ];
+      //   ii.bExpanded = pDMI->isExpanded();
+      //   ii.bOperationComplete = pDMI->m_pMFI->m_bOperationComplete;
+      //   ii.status = pDMI->text( s_OpStatusCol );
+      //   ii.eMergeOperation = pDMI->m_pMFI->m_eMergeOperation;
+      //   ++it;
+      //}
+   }
+
+   ProgressProxy pp;
+   m_bFollowDirLinks = m_pOptions->m_bDmFollowDirLinks;
+   m_bFollowFileLinks = m_pOptions->m_bDmFollowFileLinks;
+   m_bSimulatedMergeStarted=false;
+   m_bRealMergeStarted=false;
+   m_bError=false;
+   m_bDirectoryMerge = bDirectoryMerge;
+   m_selection1Index = QModelIndex();
+   m_selection2Index = QModelIndex();
+   m_selection3Index = QModelIndex();
+   m_bCaseSensitive = m_pOptions->m_bDmCaseSensitiveFilenameComparison;
+   m_bUnfoldSubdirs = m_pOptions->m_bDmUnfoldSubdirs;
+   m_bSkipDirStatus = m_pOptions->m_bDmSkipDirStatus;
+
+   
+   beginResetModel();
+   m_pRoot->m_children.clear();
+   m_mergeItemList.clear();
+   endResetModel();
+   
+   m_currentIndexForOperation = m_mergeItemList.end();
+
+   m_dirA = dirA;
+   m_dirB = dirB;
+   m_dirC = dirC;
+   m_dirDest = dirDest;
+
+   if ( !bReload )
+   {
+      m_pDirShowIdenticalFiles->setChecked(true);
+      m_pDirShowDifferentFiles->setChecked(true);
+      m_pDirShowFilesOnlyInA->setChecked(true);
+      m_pDirShowFilesOnlyInB->setChecked(true);
+      m_pDirShowFilesOnlyInC->setChecked(true);
+   }
+
+   // Check if all input directories exist and are valid. The dest dir is not tested now.
+   // The test will happen only when we are going to write to it.
+   if ( !m_dirA.isDir() || !m_dirB.isDir() ||
+        (m_dirC.isValid() && !m_dirC.isDir()) )
+   {
+       QString text( i18n("Opening of directories failed:") );
+       text += "\n\n";
+       if ( !dirA.isDir() )
+       {  text += i18n("Dir A \"%1\" does not exist or is not a directory.\n",m_dirA.prettyAbsPath()); }
+
+       if ( !dirB.isDir() )
+       {  text += i18n("Dir B \"%1\" does not exist or is not a directory.\n",m_dirB.prettyAbsPath()); }
+
+       if ( m_dirC.isValid() && !m_dirC.isDir() )
+       {  text += i18n("Dir C \"%1\" does not exist or is not a directory.\n",m_dirC.prettyAbsPath()); }
+
+       KMessageBox::sorry( q, text, i18n("Directory Open Error") );
+       return false;
+   }
+
+   if ( m_dirC.isValid() &&
+        (m_dirDest.prettyAbsPath() == m_dirA.prettyAbsPath()  ||  m_dirDest.prettyAbsPath()==m_dirB.prettyAbsPath() ) )
+   {
+      KMessageBox::error(q,
+         i18n( "The destination directory must not be the same as A or B when "
+         "three directories are merged.\nCheck again before continuing."),
+         i18n("Parameter Warning"));
+      return false;
+   }
+
+   m_bScanning = true;
+   emit q->statusBarMessage(i18n("Scanning directories..."));
+
+   m_bSyncMode = m_pOptions->m_bDmSyncMode && !m_dirC.isValid() && !m_dirDest.isValid();
+
+   if ( m_dirDest.isValid() )
+      m_dirDestInternal = m_dirDest;
+   else
+      m_dirDestInternal = m_dirC.isValid() ? m_dirC : m_dirB;
+
+   QString origCurrentDirectory = QDir::currentPath();
+
+   m_fileMergeMap.clear();
+   s_eCaseSensitivity = m_bCaseSensitive ? Qt::CaseSensitive : Qt::CaseInsensitive;
+   t_DirectoryList::iterator i;
+
+   // calc how many directories will be read:
+   double nofScans = ( m_dirA.isValid() ? 1 : 0 )+( m_dirB.isValid() ? 1 : 0 )+( m_dirC.isValid() ? 1 : 0 );
+   int currentScan = 0;
+
+//TODO   setColumnWidthMode(s_UnsolvedCol, Q3ListView::Manual);
+//   setColumnWidthMode(s_SolvedCol,   Q3ListView::Manual);
+//   setColumnWidthMode(s_WhiteCol,    Q3ListView::Manual);
+//   setColumnWidthMode(s_NonWhiteCol, Q3ListView::Manual);
+   q->setColumnHidden( s_CCol,    !m_dirC.isValid() );
+   q->setColumnHidden( s_WhiteCol,    !m_pOptions->m_bDmFullAnalysis );
+   q->setColumnHidden( s_NonWhiteCol, !m_pOptions->m_bDmFullAnalysis );
+   q->setColumnHidden( s_UnsolvedCol, !m_pOptions->m_bDmFullAnalysis );
+   q->setColumnHidden( s_SolvedCol,   !( m_pOptions->m_bDmFullAnalysis && m_dirC.isValid() ) );
+
+   bool bListDirSuccessA = true;
+   bool bListDirSuccessB = true;
+   bool bListDirSuccessC = true;
+   m_dirListA.clear();
+   m_dirListB.clear();
+   m_dirListC.clear();
+   if ( m_dirA.isValid() )
+   {
+      pp.setInformation(i18n("Reading Directory A"));
+      pp.setSubRangeTransformation(currentScan/nofScans, (currentScan+1)/nofScans);
+      ++currentScan;
+
+      bListDirSuccessA = m_dirA.listDir( &m_dirListA,
+         m_pOptions->m_bDmRecursiveDirs, m_pOptions->m_bDmFindHidden,
+         m_pOptions->m_DmFilePattern, m_pOptions->m_DmFileAntiPattern,
+         m_pOptions->m_DmDirAntiPattern, m_pOptions->m_bDmFollowDirLinks,
+         m_pOptions->m_bDmUseCvsIgnore);
+
+      for (i=m_dirListA.begin(); i!=m_dirListA.end();++i )
+      {
+         MergeFileInfos& mfi = m_fileMergeMap[FileKey(*i)];
+         //std::cout <<i->filePath()<<std::endl;
+         mfi.m_pFileInfoA = &(*i);
+      }
+   }
+
+   if ( m_dirB.isValid() )
+   {
+      pp.setInformation(i18n("Reading Directory B"));
+      pp.setSubRangeTransformation(currentScan/nofScans, (currentScan+1)/nofScans);
+      ++currentScan;
+
+      bListDirSuccessB =  m_dirB.listDir( &m_dirListB,
+         m_pOptions->m_bDmRecursiveDirs, m_pOptions->m_bDmFindHidden,
+         m_pOptions->m_DmFilePattern, m_pOptions->m_DmFileAntiPattern,
+         m_pOptions->m_DmDirAntiPattern, m_pOptions->m_bDmFollowDirLinks,
+         m_pOptions->m_bDmUseCvsIgnore);
+
+      for (i=m_dirListB.begin(); i!=m_dirListB.end();++i )
+      {
+         MergeFileInfos& mfi = m_fileMergeMap[FileKey(*i)];
+         mfi.m_pFileInfoB = &(*i);
+         if ( mfi.m_pFileInfoA && mfi.m_pFileInfoA->fileName() == mfi.m_pFileInfoB->fileName() )
+            mfi.m_pFileInfoB->setSharedName(mfi.m_pFileInfoA->fileName()); // Reduce memory by sharing the name.
+      }
+   }
+
+   e_MergeOperation eDefaultMergeOp;
+   if ( m_dirC.isValid() )
+   {
+      pp.setInformation(i18n("Reading Directory C"));
+      pp.setSubRangeTransformation(currentScan/nofScans, (currentScan+1)/nofScans);
+      ++currentScan;
+
+      bListDirSuccessC = m_dirC.listDir( &m_dirListC,
+         m_pOptions->m_bDmRecursiveDirs, m_pOptions->m_bDmFindHidden,
+         m_pOptions->m_DmFilePattern, m_pOptions->m_DmFileAntiPattern,
+         m_pOptions->m_DmDirAntiPattern, m_pOptions->m_bDmFollowDirLinks,
+         m_pOptions->m_bDmUseCvsIgnore);
+
+      for (i=m_dirListC.begin(); i!=m_dirListC.end();++i )
+      {
+         MergeFileInfos& mfi = m_fileMergeMap[FileKey(*i)];
+         mfi.m_pFileInfoC = &(*i);
+      }
+
+      eDefaultMergeOp = eMergeABCToDest;
+   }
+   else
+      eDefaultMergeOp = m_bSyncMode ? eMergeToAB : eMergeABToDest;
+
+   bool bContinue = true;
+   if ( !bListDirSuccessA || !bListDirSuccessB || !bListDirSuccessC )
+   {
+      QString s = i18n("Some subdirectories were not readable in");
+      if ( !bListDirSuccessA )   s += "\nA: " + m_dirA.prettyAbsPath();
+      if ( !bListDirSuccessB )   s += "\nB: " + m_dirB.prettyAbsPath();
+      if ( !bListDirSuccessC )   s += "\nC: " + m_dirC.prettyAbsPath();
+      s+="\n";
+      s+= i18n("Check the permissions of the subdirectories.");
+      bContinue = KMessageBox::Continue == KMessageBox::warningContinueCancel( q, s );
+   }
+
+   if ( bContinue )
+   {
+      prepareListView(pp);
+
+      q->updateFileVisibilities();
+
+      for( int childIdx = 0; childIdx<rowCount(); ++childIdx )
+      {
+         QModelIndex mi = index( childIdx, 0, QModelIndex() );
+         calcSuggestedOperation( mi, eDefaultMergeOp );
+      }
+   }
+
+   q->sortByColumn(0,Qt::AscendingOrder);
+
+   for (int i=0;i<columnCount(QModelIndex());++i)
+      q->resizeColumnToContents(i);
+
+   // Try to improve the view a little bit.
+   QWidget* pParent = q->parentWidget();
+   QSplitter* pSplitter = static_cast<QSplitter*>(pParent);
+   if (pSplitter!=0)
+   {
+      QList<int> sizes = pSplitter->sizes();
+      int total = sizes[0] + sizes[1];
+      if ( total < 10 )
+         total = 100;
+      sizes[0]=total*6/10;
+      sizes[1]=total - sizes[0];
+      pSplitter->setSizes( sizes );
+   }
+
+   QDir::setCurrent(origCurrentDirectory);
+
+   m_bScanning = false;
+   emit q->statusBarMessage(i18n("Ready."));
+
+   if ( bContinue && !m_bSkipDirStatus )
+   {
+      // Generate a status report
+      int nofFiles=0;
+      int nofDirs=0;
+      int nofEqualFiles=0;
+      int nofManualMerges=0;
+//TODO
+      for( int childIdx = 0; childIdx<rowCount(); ++childIdx )
+         calcDirStatus( m_dirC.isValid(), index(childIdx,0,QModelIndex()),
+                        nofFiles, nofDirs, nofEqualFiles, nofManualMerges );
+
+      QString s;
+      s = i18n("Directory Comparison Status") + "\n\n" +
+          i18n("Number of subdirectories:") +" "+ QString::number(nofDirs)       + "\n"+
+          i18n("Number of equal files:")     +" "+ QString::number(nofEqualFiles) + "\n"+
+          i18n("Number of different files:") +" "+ QString::number(nofFiles-nofEqualFiles);
+
+      if ( m_dirC.isValid() )
+         s += "\n" + i18n("Number of manual merges:")   +" "+ QString::number(nofManualMerges);
+      KMessageBox::information( q, s );
+      //
+      //TODO
+      //if ( topLevelItemCount()>0 )
+      //{
+      //   topLevelItem(0)->setSelected(true);
+      //   setCurrentItem( topLevelItem(0) );
+      //}
+   }
+
+   if ( bReload )
+   {
+      // Remember expanded items
+      //TODO
+      //QTreeWidgetItemIterator it( this );
+      //while ( *it )
+      //{
+      //   DirMergeItem* pDMI = static_cast<DirMergeItem*>( *it );
+      //   std::map<QString,t_ItemInfo>::iterator i = expandedDirsMap.find( pDMI->m_pMFI->subPath() );
+      //   if ( i!=expandedDirsMap.end() )
+      //   {
+      //      t_ItemInfo& ii = i->second;
+      //      pDMI->setExpanded( ii.bExpanded );
+      //      //pDMI->m_pMFI->setMergeOperation( ii.eMergeOperation, false ); unsafe, might have changed
+      //      pDMI->m_pMFI->m_bOperationComplete = ii.bOperationComplete;
+      //      pDMI->setText( s_OpStatusCol, ii.status );
+      //   }
+      //   ++it;
+      //}
+   }
+   else if (m_bUnfoldSubdirs)
+   {
+      m_pDirUnfoldAll->trigger();
+   }
+
+   return true;
+}
+
+void DirectoryMergeWindow::onExpanded()
+{
+   resizeColumnToContents(s_NameCol);
+}
+
+
+void DirectoryMergeWindow::slotChooseAEverywhere(){ d->setAllMergeOperations( eCopyAToDest ); }
+
+void DirectoryMergeWindow::slotChooseBEverywhere(){ d->setAllMergeOperations( eCopyBToDest ); }
+
+void DirectoryMergeWindow::slotChooseCEverywhere(){ d->setAllMergeOperations( eCopyCToDest ); }
+
+void DirectoryMergeWindow::slotAutoChooseEverywhere()
+{
+   e_MergeOperation eDefaultMergeOp = d->m_dirC.isValid() ?  eMergeABCToDest :
+                                           d->m_bSyncMode ?  eMergeToAB      : eMergeABToDest;
+   d->setAllMergeOperations(eDefaultMergeOp );
+}
+
+void DirectoryMergeWindow::slotNoOpEverywhere(){ d->setAllMergeOperations(eNoOperation); }
+
+void DirectoryMergeWindow::slotFoldAllSubdirs()
+{
+   collapseAll();
+}
+
+void DirectoryMergeWindow::slotUnfoldAllSubdirs()
+{
+   expandAll();
+}
+
+// Merge current item (merge mode)
+void DirectoryMergeWindow::slotCurrentDoNothing() { d->setMergeOperation(currentIndex(), eNoOperation ); }
+void DirectoryMergeWindow::slotCurrentChooseA()   { d->setMergeOperation(currentIndex(), d->m_bSyncMode ? eCopyAToB : eCopyAToDest ); }
+void DirectoryMergeWindow::slotCurrentChooseB()   { d->setMergeOperation(currentIndex(), d->m_bSyncMode ? eCopyBToA : eCopyBToDest ); }
+void DirectoryMergeWindow::slotCurrentChooseC()   { d->setMergeOperation(currentIndex(), eCopyCToDest ); }
+void DirectoryMergeWindow::slotCurrentMerge()
+{
+   bool bThreeDirs = d->m_dirC.isValid();
+   d->setMergeOperation(currentIndex(), bThreeDirs ? eMergeABCToDest : eMergeABToDest );
+}
+void DirectoryMergeWindow::slotCurrentDelete()    { d->setMergeOperation(currentIndex(), eDeleteFromDest ); }
+// Sync current item
+void DirectoryMergeWindow::slotCurrentCopyAToB()     { d->setMergeOperation(currentIndex(), eCopyAToB ); }
+void DirectoryMergeWindow::slotCurrentCopyBToA()     { d->setMergeOperation(currentIndex(), eCopyBToA ); }
+void DirectoryMergeWindow::slotCurrentDeleteA()      { d->setMergeOperation(currentIndex(), eDeleteA );  }
+void DirectoryMergeWindow::slotCurrentDeleteB()      { d->setMergeOperation(currentIndex(), eDeleteB );  }
+void DirectoryMergeWindow::slotCurrentDeleteAAndB()  { d->setMergeOperation(currentIndex(), eDeleteAB ); }
+void DirectoryMergeWindow::slotCurrentMergeToA()     { d->setMergeOperation(currentIndex(), eMergeToA ); }
+void DirectoryMergeWindow::slotCurrentMergeToB()     { d->setMergeOperation(currentIndex(), eMergeToB ); }
+void DirectoryMergeWindow::slotCurrentMergeToAAndB() { d->setMergeOperation(currentIndex(), eMergeToAB ); }
+
+
+void DirectoryMergeWindow::keyPressEvent( QKeyEvent* e )
+{
+   if ( (e->QInputEvent::modifiers() & Qt::ControlModifier)!=0 )
+   {
+      bool bThreeDirs = d->m_dirC.isValid();
+      
+      MergeFileInfos* pMFI = d->getMFI( currentIndex() );
+
+      if ( pMFI==0 ) 
+         return;
+      bool bMergeMode = bThreeDirs || !d->m_bSyncMode;
+      bool bFTConflict = pMFI==0 ? false : conflictingFileTypes(*pMFI);
+
+      if ( bMergeMode )
+      {
+         switch(e->key())
+         {
+         case Qt::Key_1:      if(pMFI->existsInA()){ slotCurrentChooseA(); }  return;
+         case Qt::Key_2:      if(pMFI->existsInB()){ slotCurrentChooseB(); }  return;
+         case Qt::Key_3:      if(pMFI->existsInC()){ slotCurrentChooseC(); }  return;
+         case Qt::Key_Space:  slotCurrentDoNothing();                          return;
+         case Qt::Key_4:      if ( !bFTConflict )   { slotCurrentMerge();   }  return;
+         case Qt::Key_Delete: slotCurrentDelete();                             return;
+         default: break;
+         }
+      }
+      else
+      {
+         switch(e->key())
+         {
+         case Qt::Key_1:      if(pMFI->existsInA()){ slotCurrentCopyAToB(); }  return;
+         case Qt::Key_2:      if(pMFI->existsInB()){ slotCurrentCopyBToA(); }  return;
+         case Qt::Key_Space:  slotCurrentDoNothing();                           return;
+         case Qt::Key_4:      if ( !bFTConflict ) { slotCurrentMergeToAAndB(); }  return;
+         case Qt::Key_Delete: if( pMFI->existsInA() && pMFI->existsInB() ) slotCurrentDeleteAAndB();
+                          else if( pMFI->existsInA() ) slotCurrentDeleteA();
+                          else if( pMFI->existsInB() ) slotCurrentDeleteB();
+                          return;
+         default: break;
+         }
+      }
+   }
+   else if ( e->key()==Qt::Key_Return || e->key()==Qt::Key_Enter )
+   {
+      onDoubleClick( currentIndex() );
+      return;
+   }
+
+   QTreeView::keyPressEvent(e);
+}
+
+void DirectoryMergeWindow::focusInEvent(QFocusEvent*)
+{
+   updateAvailabilities();
+}
+void DirectoryMergeWindow::focusOutEvent(QFocusEvent*)
+{
+   updateAvailabilities();
+}
+
+void DirectoryMergeWindow::Data::setAllMergeOperations( e_MergeOperation eDefaultOperation )
+{
+   if ( KMessageBox::Yes == KMessageBox::warningYesNo(q,
+        i18n("This affects all merge operations."),
+        i18n("Changing All Merge Operations"),
+        KStandardGuiItem::cont(), 
+        KStandardGuiItem::cancel() ) )
+   {
+      for( int i=0; i<rowCount(); ++i )
+      {
+         calcSuggestedOperation( index(i,0,QModelIndex()) , eDefaultOperation );
+      }
+   }
+}
+
+
+void DirectoryMergeWindow::Data::compareFilesAndCalcAges( MergeFileInfos& mfi )
+{
+   std::map<QDateTime,int> dateMap;
+
+   if( mfi.existsInA() )
+   {
+      dateMap[ mfi.m_pFileInfoA->lastModified() ] = 0;
+   }
+   if( mfi.existsInB() )
+   {
+      dateMap[ mfi.m_pFileInfoB->lastModified() ] = 1;
+   }
+   if( mfi.existsInC() )
+   {
+      dateMap[ mfi.m_pFileInfoC->lastModified() ] = 2;
+   }
+
+   if ( m_pOptions->m_bDmFullAnalysis )
+   {
+      if( (mfi.existsInA() && mfi.dirA()) || (mfi.existsInB() && mfi.dirB()) || (mfi.existsInC() && mfi.dirC()) )
+      {
+         // If any input is a directory, don't start any comparison.
+         mfi.m_bEqualAB=mfi.existsInA() && mfi.existsInB();
+         mfi.m_bEqualAC=mfi.existsInA() && mfi.existsInC();
+         mfi.m_bEqualBC=mfi.existsInB() && mfi.existsInC();
+      }
+      else
+      {
+         emit q->startDiffMerge(
+            mfi.existsInA() ? mfi.m_pFileInfoA->absoluteFilePath() : QString(""),
+            mfi.existsInB() ? mfi.m_pFileInfoB->absoluteFilePath() : QString(""),
+            mfi.existsInC() ? mfi.m_pFileInfoC->absoluteFilePath() : QString(""),
+            "",
+            "","","",&mfi.m_totalDiffStatus
+            );
+         int nofNonwhiteConflicts = mfi.m_totalDiffStatus.nofUnsolvedConflicts + 
+            mfi.m_totalDiffStatus.nofSolvedConflicts - mfi.m_totalDiffStatus.nofWhitespaceConflicts;
+
+         if (m_pOptions->m_bDmWhiteSpaceEqual && nofNonwhiteConflicts == 0)
+         {
+            mfi.m_bEqualAB = mfi.existsInA() && mfi.existsInB();
+            mfi.m_bEqualAC = mfi.existsInA() && mfi.existsInC();
+            mfi.m_bEqualBC = mfi.existsInB() && mfi.existsInC();
+         }
+         else
+         {
+            mfi.m_bEqualAB = mfi.m_totalDiffStatus.bBinaryAEqB;
+            mfi.m_bEqualBC = mfi.m_totalDiffStatus.bBinaryBEqC;
+            mfi.m_bEqualAC = mfi.m_totalDiffStatus.bBinaryAEqC;
+         }
+      }
+   }
+   else
+   {
+      bool bError;
+      QString eqStatus;
+      if( mfi.existsInA() && mfi.existsInB() )
+      {
+         if( mfi.dirA() ) mfi.m_bEqualAB=true;
+         else mfi.m_bEqualAB = fastFileComparison( *mfi.m_pFileInfoA, *mfi.m_pFileInfoB, bError, eqStatus );
+      }
+      if( mfi.existsInA() && mfi.existsInC() )
+      {
+         if( mfi.dirA() ) mfi.m_bEqualAC=true;
+         else mfi.m_bEqualAC = fastFileComparison( *mfi.m_pFileInfoA, *mfi.m_pFileInfoC, bError, eqStatus );
+      }
+      if( mfi.existsInB() && mfi.existsInC() )
+      {
+         if (mfi.m_bEqualAB && mfi.m_bEqualAC)
+            mfi.m_bEqualBC = true;
+         else
+         {
+            if( mfi.dirB() ) mfi.m_bEqualBC=true;
+            else mfi.m_bEqualBC = fastFileComparison( *mfi.m_pFileInfoB, *mfi.m_pFileInfoC, bError, eqStatus );
+         }
+      }
+   }
+
+   if (mfi.isLinkA()!=mfi.isLinkB()) mfi.m_bEqualAB=false;
+   if (mfi.isLinkA()!=mfi.isLinkC()) mfi.m_bEqualAC=false;
+   if (mfi.isLinkB()!=mfi.isLinkC()) mfi.m_bEqualBC=false;
+
+   if (mfi.dirA()!=mfi.dirB()) mfi.m_bEqualAB=false;
+   if (mfi.dirA()!=mfi.dirC()) mfi.m_bEqualAC=false;
+   if (mfi.dirB()!=mfi.dirC()) mfi.m_bEqualBC=false;
+
+   assert(eNew==0 && eMiddle==1 && eOld==2);
+
+   // The map automatically sorts the keys.
+   int age = eNew;
+   std::map<QDateTime,int>::reverse_iterator i;
+   for( i=dateMap.rbegin(); i!=dateMap.rend(); ++i )
+   {
+      int n = i->second;
+      if ( n==0 && mfi.m_ageA==eNotThere )
+      {
+         mfi.m_ageA = (e_Age)age; ++age;
+         if ( mfi.m_bEqualAB ) { mfi.m_ageB = mfi.m_ageA; ++age; }
+         if ( mfi.m_bEqualAC ) { mfi.m_ageC = mfi.m_ageA; ++age; }
+      }
+      else if  ( n==1 && mfi.m_ageB==eNotThere )
+      {
+         mfi.m_ageB = (e_Age)age; ++age;
+         if ( mfi.m_bEqualAB ) { mfi.m_ageA = mfi.m_ageB; ++age; }
+         if ( mfi.m_bEqualBC ) { mfi.m_ageC = mfi.m_ageB; ++age; }
+      }
+      else if  ( n==2 && mfi.m_ageC==eNotThere)
+      {
+         mfi.m_ageC = (e_Age)age; ++age;
+         if ( mfi.m_bEqualAC ) { mfi.m_ageA = mfi.m_ageC; ++age; }
+         if ( mfi.m_bEqualBC ) { mfi.m_ageB = mfi.m_ageC; ++age; }
+      }
+   }
+
+   // The checks below are necessary when the dates of the file are equal but the
+   // files are not. One wouldn't expect this to happen, yet it happens sometimes.
+   if ( mfi.existsInC() && mfi.m_ageC==eNotThere )
+   {
+      mfi.m_ageC = (e_Age)age; ++age;
+      mfi.m_bConflictingAges = true;
+   }
+   if ( mfi.existsInB() && mfi.m_ageB==eNotThere )
+   {
+      mfi.m_ageB = (e_Age)age; ++age;
+      mfi.m_bConflictingAges = true;
+   }
+   if ( mfi.existsInA() && mfi.m_ageA==eNotThere )
+   {
+      mfi.m_ageA = (e_Age)age; ++age;
+      mfi.m_bConflictingAges = true;
+   }
+
+   if ( mfi.m_ageA != eOld  && mfi.m_ageB != eOld && mfi.m_ageC != eOld )
+   {
+      if (mfi.m_ageA == eMiddle) mfi.m_ageA = eOld;
+      if (mfi.m_ageB == eMiddle) mfi.m_ageB = eOld;
+      if (mfi.m_ageC == eMiddle) mfi.m_ageC = eOld;
+   }
+}
+
+static QPixmap* s_pm_dir;
+static QPixmap* s_pm_file;
+
+static QPixmap* pmNotThere;
+static QPixmap* pmNew;
+static QPixmap* pmOld;
+static QPixmap* pmMiddle;
+
+static QPixmap* pmLink;
+
+static QPixmap* pmDirLink;
+static QPixmap* pmFileLink;
+
+static QPixmap* pmNewLink;
+static QPixmap* pmOldLink;
+static QPixmap* pmMiddleLink;
+
+static QPixmap* pmNewDir;
+static QPixmap* pmMiddleDir;
+static QPixmap* pmOldDir;
+
+static QPixmap* pmNewDirLink;
+static QPixmap* pmMiddleDirLink;
+static QPixmap* pmOldDirLink;
+
+
+static QPixmap colorToPixmap(QColor c)
+{
+   QPixmap pm(16,16);
+   QPainter p(&pm);
+   p.setPen( Qt::black );
+   p.setBrush( c );
+   p.drawRect(0,0,pm.width(),pm.height());
+   return pm;
+}
+
+static void initPixmaps( QColor newest, QColor oldest, QColor middle, QColor notThere )
+{
+   if (pmNew==0)
+   {
+      pmNotThere = new QPixmap;
+      pmNew = new QPixmap;
+      pmOld = new QPixmap;
+      pmMiddle = new QPixmap;
+
+      #include "xpm/link_arrow.xpm"
+      pmLink = new QPixmap(link_arrow);
+
+      pmDirLink = new QPixmap;
+      pmFileLink = new QPixmap;
+
+      pmNewLink = new QPixmap;
+      pmOldLink = new QPixmap;
+      pmMiddleLink = new QPixmap;
+
+      pmNewDir = new QPixmap;
+      pmMiddleDir = new QPixmap;
+      pmOldDir = new QPixmap;
+
+      pmNewDirLink = new QPixmap;
+      pmMiddleDirLink = new QPixmap;
+      pmOldDirLink = new QPixmap;
+   }
+
+
+   *pmNotThere = colorToPixmap(notThere);
+   *pmNew = colorToPixmap(newest);
+   *pmOld = colorToPixmap(oldest);
+   *pmMiddle = colorToPixmap(middle);
+
+   *pmDirLink = pixCombiner( s_pm_dir, pmLink);
+   *pmFileLink = pixCombiner( s_pm_file, pmLink );
+
+   *pmNewLink = pixCombiner( pmNew, pmLink);
+   *pmOldLink = pixCombiner( pmOld, pmLink);
+   *pmMiddleLink = pixCombiner( pmMiddle, pmLink);
+
+   *pmNewDir = pixCombiner2( pmNew, s_pm_dir);
+   *pmMiddleDir = pixCombiner2( pmMiddle, s_pm_dir);
+   *pmOldDir = pixCombiner2( pmOld, s_pm_dir);
+
+   *pmNewDirLink = pixCombiner( pmNewDir, pmLink);
+   *pmMiddleDirLink = pixCombiner( pmMiddleDir, pmLink);
+   *pmOldDirLink = pixCombiner( pmOldDir, pmLink);
+}
+
+static QPixmap getOnePixmap( e_Age eAge, bool bLink, bool bDir )
+{
+   static QPixmap* ageToPm[]=       { pmNew,     pmMiddle,     pmOld,     pmNotThere, s_pm_file  };
+   static QPixmap* ageToPmLink[]=   { pmNewLink, pmMiddleLink, pmOldLink, pmNotThere, pmFileLink };
+   static QPixmap* ageToPmDir[]=    { pmNewDir,  pmMiddleDir,  pmOldDir,  pmNotThere, s_pm_dir   };
+   static QPixmap* ageToPmDirLink[]={ pmNewDirLink, pmMiddleDirLink, pmOldDirLink, pmNotThere, pmDirLink };
+
+   QPixmap** ppPm = bDir ? ( bLink ? ageToPmDirLink : ageToPmDir ):
+                           ( bLink ? ageToPmLink    : ageToPm    );
+
+   return *ppPm[eAge];
+}
+
+static void setPixmaps( MergeFileInfos& mfi, bool )
+{
+   if ( mfi.dirA()  || mfi.dirB()  || mfi.dirC() )
+   {
+      mfi.m_ageA=eNotThere;
+      mfi.m_ageB=eNotThere;
+      mfi.m_ageC=eNotThere;
+      int age = eNew;
+      if ( mfi.existsInC() )
+      {
+         mfi.m_ageC = (e_Age)age;
+         if (mfi.m_bEqualAC) mfi.m_ageA = (e_Age)age;
+         if (mfi.m_bEqualBC) mfi.m_ageB = (e_Age)age;
+         ++age;
+      }
+      if ( mfi.existsInB() && mfi.m_ageB==eNotThere )
+      {
+         mfi.m_ageB = (e_Age)age;
+         if (mfi.m_bEqualAB) mfi.m_ageA = (e_Age)age;
+         ++age;
+      }
+      if ( mfi.existsInA() && mfi.m_ageA==eNotThere )
+      {
+         mfi.m_ageA = (e_Age)age;
+      }
+      if ( mfi.m_ageA != eOld  && mfi.m_ageB != eOld && mfi.m_ageC != eOld )
+      {
+         if (mfi.m_ageA == eMiddle) mfi.m_ageA = eOld;
+         if (mfi.m_ageB == eMiddle) mfi.m_ageB = eOld;
+         if (mfi.m_ageC == eMiddle) mfi.m_ageC = eOld;
+      }
+   }
+}
+
+static QModelIndex nextSibling(const QModelIndex& mi)
+{
+   QModelIndex miParent = mi.parent();
+   int currentIdx = mi.row();
+   if ( currentIdx+1 < mi.model()->rowCount(miParent) ) 
+      return mi.model()->index(mi.row()+1,0,miParent); // next child of parent
+   return QModelIndex();
+}
+
+// Iterate through the complete tree. Start by specifying QListView::firstChild().
+QModelIndex DirectoryMergeWindow::Data::treeIterator( QModelIndex mi, bool bVisitChildren, bool bFindInvisible )
+{
+   if( mi.isValid() )
+   {
+      do
+      {
+         if ( bVisitChildren && mi.model()->rowCount(mi) != 0 )      
+            mi = mi.model()->index(0,0,mi);
+         else 
+         {
+            QModelIndex miNextSibling = nextSibling(mi);
+            if ( miNextSibling.isValid() )
+               mi = miNextSibling;
+            else
+            {
+               mi = mi.parent();
+               while ( mi.isValid() )
+               {
+                  QModelIndex miNextSibling = nextSibling(mi);
+                  if( miNextSibling.isValid() ) 
+                  { 
+                     mi = miNextSibling; 
+                     break; 
+                  }
+                  else
+                  { 
+                     mi = mi.parent();             
+                  }
+               }
+            }
+         }
+      }
+      while( mi.isValid() && q->isRowHidden(mi.row(),mi.parent()) && !bFindInvisible );
+   }
+   return mi;
+}
+
+void DirectoryMergeWindow::Data::prepareListView( ProgressProxy& pp )
+{
+   static bool bFirstTime = true;
+   if (bFirstTime)
+   {
+      #include "xpm/file.xpm"
+      #include "xpm/folder.xpm"
+      // FIXME specify correct icon loader group
+      s_pm_dir = new QPixmap( m_pIconLoader->loadIcon("folder", KIconLoader::NoGroup, KIconLoader::Small ) );
+      if (s_pm_dir->size()!=QSize(16,16))
+      {
+         delete s_pm_dir;
+         s_pm_dir = new QPixmap( folder_pm );
+      }
+      s_pm_file= new QPixmap( file_pm );
+      bFirstTime=false;
+   }
+
+//TODO   clear();
+   initPixmaps( m_pOptions->m_newestFileColor, m_pOptions->m_oldestFileColor,
+                m_pOptions->m_midAgeFileColor, m_pOptions->m_missingFileColor );
+
+   q->setRootIsDecorated( true );
+
+   bool bCheckC = m_dirC.isValid();
+
+   t_fileMergeMap::iterator j;
+   int nrOfFiles = m_fileMergeMap.size();
+   int currentIdx = 1;
+   QTime t;
+   t.start();
+   for( j=m_fileMergeMap.begin(); j!=m_fileMergeMap.end(); ++j )
+   {
+      MergeFileInfos& mfi = j.value();
+
+      // const QString& fileName = j->first;
+      const QString& fileName = mfi.subPath();
+
+      pp.setInformation(
+         i18n("Processing ") + QString::number(currentIdx) +" / "+ QString::number(nrOfFiles)
+         +"\n" + fileName, double(currentIdx) / nrOfFiles, false );
+      if ( pp.wasCancelled() ) break;
+      ++currentIdx;
+
+      // The comparisons and calculations for each file take place here.
+      compareFilesAndCalcAges( mfi );
+
+      // Get dirname from fileName: Search for "/" from end:
+      int pos = fileName.lastIndexOf('/');
+      QString dirPart;
+      QString filePart;
+      if (pos==-1)
+      {
+         // Top dir
+         filePart = fileName;
+      }
+      else
+      {
+         dirPart = fileName.left(pos);
+         filePart = fileName.mid(pos+1);
+      }
+      if ( dirPart.isEmpty() ) // Top level
+      {
+         m_pRoot->m_children.push_back(&mfi); //new DirMergeItem( this, filePart, &mfi );
+         mfi.m_pParent = m_pRoot;
+      }
+      else
+      {
+         FileAccess* pFA = mfi.m_pFileInfoA ? mfi.m_pFileInfoA : mfi.m_pFileInfoB ? mfi.m_pFileInfoB : mfi.m_pFileInfoC;
+         MergeFileInfos& dirMfi = pFA->parent() ? m_fileMergeMap[FileKey(*pFA->parent())] : *m_pRoot; // parent
+      
+         dirMfi.m_children.push_back(&mfi);//new DirMergeItem( dirMfi.m_pDMI, filePart, &mfi );
+         mfi.m_pParent = &dirMfi;
+
+      //   // Equality for parent dirs is set in updateFileVisibilities()
+      }
+
+      setPixmaps( mfi, bCheckC );
+   }
+   beginResetModel();
+   endResetModel();
+}
+
+static bool conflictingFileTypes(MergeFileInfos& mfi)
+{
+   // Now check if file/dir-types fit.
+   if ( mfi.isLinkA() || mfi.isLinkB() || mfi.isLinkC() )
+   {
+      if ( (mfi.existsInA() && ! mfi.isLinkA())  ||
+           (mfi.existsInB() && ! mfi.isLinkB())  ||
+           (mfi.existsInC() && ! mfi.isLinkC()) )
+      {
+         return true;
+      }
+   }
+
+   if ( mfi.dirA() || mfi.dirB() || mfi.dirC() )
+   {
+      if ( (mfi.existsInA() && ! mfi.dirA())  ||
+           (mfi.existsInB() && ! mfi.dirB())  ||
+           (mfi.existsInC() && ! mfi.dirC()) )
+      {
+         return true;
+      }
+   }
+   return false;
+}
+
+void DirectoryMergeWindow::Data::calcSuggestedOperation( const QModelIndex& mi, e_MergeOperation eDefaultMergeOp )
+{
+   MergeFileInfos* pMFI = getMFI(mi);
+   if ( pMFI==0 )
+      return;
+   MergeFileInfos& mfi = *pMFI;
+   bool bCheckC = m_dirC.isValid();
+   bool bCopyNewer = m_pOptions->m_bDmCopyNewer;
+   bool bOtherDest = !( (m_dirDestInternal.absoluteFilePath() == m_dirA.absoluteFilePath()) || 
+                        (m_dirDestInternal.absoluteFilePath() == m_dirB.absoluteFilePath()) ||
+                        (bCheckC && m_dirDestInternal.absoluteFilePath() == m_dirC.absoluteFilePath()) );
+                     
+
+   if ( eDefaultMergeOp == eMergeABCToDest && !bCheckC ) { eDefaultMergeOp = eMergeABToDest; }
+   if ( eDefaultMergeOp == eMergeToAB      &&  bCheckC ) { assert(false); }
+
+   if ( eDefaultMergeOp == eMergeToA || eDefaultMergeOp == eMergeToB ||
+        eDefaultMergeOp == eMergeABCToDest || eDefaultMergeOp == eMergeABToDest || eDefaultMergeOp == eMergeToAB )
+   {
+      if ( !bCheckC )
+      {
+         if ( mfi.m_bEqualAB )
+         {
+            setMergeOperation( mi, bOtherDest ? eCopyBToDest : eNoOperation );
+         }
+         else if ( mfi.existsInA() && mfi.existsInB() )
+         {
+            if ( !bCopyNewer || mfi.dirA() )
+               setMergeOperation( mi, eDefaultMergeOp );
+            else if (  bCopyNewer && mfi.m_bConflictingAges )
+            {
+               setMergeOperation( mi, eConflictingAges );
+            }
+            else
+            {
+               if ( mfi.m_ageA == eNew )
+                  setMergeOperation( mi, eDefaultMergeOp == eMergeToAB ?  eCopyAToB : eCopyAToDest );
+               else
+                  setMergeOperation( mi, eDefaultMergeOp == eMergeToAB ?  eCopyBToA : eCopyBToDest );
+            }
+         }
+         else if ( !mfi.existsInA() && mfi.existsInB() )
+         {
+            if ( eDefaultMergeOp==eMergeABToDest  ) setMergeOperation( mi, eCopyBToDest );
+            else if ( eDefaultMergeOp==eMergeToB )  setMergeOperation( mi, eNoOperation );
+            else                                    setMergeOperation( mi, eCopyBToA );
+         }
+         else if ( mfi.existsInA() && !mfi.existsInB() )
+         {
+            if ( eDefaultMergeOp==eMergeABToDest  ) setMergeOperation( mi, eCopyAToDest );
+            else if ( eDefaultMergeOp==eMergeToA )  setMergeOperation( mi, eNoOperation );
+            else                                    setMergeOperation( mi, eCopyAToB );
+         }
+         else //if ( !mfi.existsInA() && !mfi.existsInB() )
+         {
+            setMergeOperation( mi, eNoOperation ); assert(false);
+         }
+      }
+      else
+      {
+         if ( mfi.m_bEqualAB && mfi.m_bEqualAC )
+         {
+            setMergeOperation( mi, bOtherDest ? eCopyCToDest : eNoOperation );
+         }
+         else if ( mfi.existsInA() && mfi.existsInB() && mfi.existsInC())
+         {
+            if ( mfi.m_bEqualAB )
+               setMergeOperation( mi, eCopyCToDest );
+            else if ( mfi.m_bEqualAC )
+               setMergeOperation( mi, eCopyBToDest );
+            else if ( mfi.m_bEqualBC )
+               setMergeOperation( mi, eCopyCToDest );
+            else
+               setMergeOperation( mi, eMergeABCToDest );
+         }
+         else if ( mfi.existsInA() && mfi.existsInB() && !mfi.existsInC() )
+         {
+            if ( mfi.m_bEqualAB )
+               setMergeOperation( mi, eDeleteFromDest );
+            else
+               setMergeOperation( mi, eChangedAndDeleted );
+         }
+         else if ( mfi.existsInA() && !mfi.existsInB() && mfi.existsInC() )
+         {
+            if ( mfi.m_bEqualAC )
+               setMergeOperation( mi, eDeleteFromDest );
+            else
+               setMergeOperation( mi, eChangedAndDeleted );
+         }
+         else if ( !mfi.existsInA() && mfi.existsInB() && mfi.existsInC() )
+         {
+            if ( mfi.m_bEqualBC )
+               setMergeOperation( mi, eCopyCToDest );
+            else
+               setMergeOperation( mi, eMergeABCToDest );
+         }
+         else if ( !mfi.existsInA() && !mfi.existsInB() && mfi.existsInC() )
+         {
+            setMergeOperation( mi, eCopyCToDest );
+         }
+         else if ( !mfi.existsInA() && mfi.existsInB() && !mfi.existsInC() )
+         {
+            setMergeOperation( mi, eCopyBToDest );
+         }
+         else if ( mfi.existsInA() && !mfi.existsInB() && !mfi.existsInC())
+         {
+            setMergeOperation( mi, eDeleteFromDest );
+         }
+         else //if ( !mfi.existsInA() && !mfi.existsInB() && !mfi.existsInC() )
+         {
+            setMergeOperation( mi, eNoOperation ); assert(false);
+         }
+      }
+
+      // Now check if file/dir-types fit.
+      if ( conflictingFileTypes(mfi) )
+      {
+         setMergeOperation( mi, eConflictingFileTypes );
+      }
+   }
+   else
+   {
+      e_MergeOperation eMO = eDefaultMergeOp;
+      switch ( eDefaultMergeOp )
+      {
+      case eConflictingFileTypes:
+      case eChangedAndDeleted:
+      case eConflictingAges:
+      case eDeleteA:
+      case eDeleteB:
+      case eDeleteAB:
+      case eDeleteFromDest:
+      case eNoOperation: break;
+      case eCopyAToB:    if ( !mfi.existsInA() ) { eMO = eDeleteB; }        break;
+      case eCopyBToA:    if ( !mfi.existsInB() ) { eMO = eDeleteA; }        break;
+      case eCopyAToDest: if ( !mfi.existsInA() ) { eMO = eDeleteFromDest; } break;
+      case eCopyBToDest: if ( !mfi.existsInB() ) { eMO = eDeleteFromDest; } break;
+      case eCopyCToDest: if ( !mfi.existsInC() ) { eMO = eDeleteFromDest; } break;
+
+      case eMergeToA:
+      case eMergeToB:
+      case eMergeToAB:
+      case eMergeABCToDest:
+      case eMergeABToDest:
+      default:
+         assert(false);
+      }
+      setMergeOperation( mi, eMO );
+   }
+}
+
+void DirectoryMergeWindow::onDoubleClick( const QModelIndex& mi )
+{
+   if ( ! mi.isValid() ) 
+      return;
+
+   d->m_bSimulatedMergeStarted = false;
+   if ( d->m_bDirectoryMerge )
+      mergeCurrentFile();
+   else
+      compareCurrentFile();
+}
+
+void DirectoryMergeWindow::currentChanged ( const QModelIndex & current, const QModelIndex & previous )
+{
+   QTreeView::currentChanged( current, previous );
+   MergeFileInfos* pMFI = d->getMFI( current );
+   if ( pMFI==0 ) 
+      return;
+
+   d->m_pDirectoryMergeInfo->setInfo( d->m_dirA, d->m_dirB, d->m_dirC, d->m_dirDestInternal, *pMFI );
+}
+
+void DirectoryMergeWindow::mousePressEvent( QMouseEvent* e )
+{
+   QTreeView::mousePressEvent(e);
+   QModelIndex mi = indexAt( e->pos() );
+   int c = mi.column();
+   QPoint p = e->globalPos();
+   MergeFileInfos* pMFI = d->getMFI( mi );
+   if ( pMFI==0 )
+      return;
+   MergeFileInfos& mfi = *pMFI;
+
+   if ( c==s_OpCol )
+   {
+      bool bThreeDirs = d->m_dirC.isValid();
+
+      KMenu m(this);
+      if ( bThreeDirs )
+      {
+         m.addAction( d->m_pDirCurrentDoNothing );
+         int count=0;
+         if ( mfi.existsInA() ) { m.addAction( d->m_pDirCurrentChooseA ); ++count;  }
+         if ( mfi.existsInB() ) { m.addAction( d->m_pDirCurrentChooseB ); ++count;  }
+         if ( mfi.existsInC() ) { m.addAction( d->m_pDirCurrentChooseC ); ++count;  }
+         if ( !conflictingFileTypes(mfi) && count>1 ) m.addAction( d->m_pDirCurrentMerge );
+         m.addAction( d->m_pDirCurrentDelete );
+      }
+      else if ( d->m_bSyncMode )
+      {
+         m.addAction( d->m_pDirCurrentSyncDoNothing );
+         if ( mfi.existsInA() ) m.addAction( d->m_pDirCurrentSyncCopyAToB );
+         if ( mfi.existsInB() ) m.addAction( d->m_pDirCurrentSyncCopyBToA );
+         if ( mfi.existsInA() ) m.addAction( d->m_pDirCurrentSyncDeleteA );
+         if ( mfi.existsInB() ) m.addAction( d->m_pDirCurrentSyncDeleteB );
+         if ( mfi.existsInA() && mfi.existsInB() )
+         {
+            m.addAction( d->m_pDirCurrentSyncDeleteAAndB );
+            if ( !conflictingFileTypes(mfi))
+            {
+               m.addAction( d->m_pDirCurrentSyncMergeToA );
+               m.addAction( d->m_pDirCurrentSyncMergeToB );
+               m.addAction( d->m_pDirCurrentSyncMergeToAAndB );
+            }
+         }
+      }
+      else
+      {
+         m.addAction( d->m_pDirCurrentDoNothing );
+         if ( mfi.existsInA() ) { m.addAction( d->m_pDirCurrentChooseA ); }
+         if ( mfi.existsInB() ) { m.addAction( d->m_pDirCurrentChooseB ); }
+         if ( !conflictingFileTypes(mfi) && mfi.existsInA()  &&  mfi.existsInB() ) m.addAction( d->m_pDirCurrentMerge );
+         m.addAction( d->m_pDirCurrentDelete );
+      }
+
+      m.exec( p );
+   }
+   else if ( c == s_ACol || c==s_BCol || c==s_CCol )
+   {
+      QString itemPath;
+      if      ( c == s_ACol && mfi.existsInA() ){ itemPath = d->fullNameA(mfi); }
+      else if ( c == s_BCol && mfi.existsInB() ){ itemPath = d->fullNameB(mfi); }
+      else if ( c == s_CCol && mfi.existsInC() ){ itemPath = d->fullNameC(mfi); }
+
+      if (!itemPath.isEmpty())
+      {
+         d->selectItemAndColumn( mi, e->button()==Qt::RightButton );
+      }
+   }
+}
+
+void DirectoryMergeWindow::contextMenuEvent(QContextMenuEvent* e)
+{
+   QModelIndex mi = indexAt( e->pos() );
+   int c = mi.column();
+   QPoint p = e->globalPos();
+
+   MergeFileInfos* pMFI = d->getMFI(mi);
+   if (pMFI==0)
+      return;
+   if ( c == s_ACol || c==s_BCol || c==s_CCol )
+   {
+      QString itemPath;
+      if      ( c == s_ACol && pMFI->existsInA() ){ itemPath = d->fullNameA(*pMFI); }
+      else if ( c == s_BCol && pMFI->existsInB() ){ itemPath = d->fullNameB(*pMFI); }
+      else if ( c == s_CCol && pMFI->existsInC() ){ itemPath = d->fullNameC(*pMFI); }
+
+      if (!itemPath.isEmpty())
+      {
+         d->selectItemAndColumn(mi, true);
+         KMenu m(this);
+         m.addAction( d->m_pDirCompareExplicit );
+         m.addAction( d->m_pDirMergeExplicit );
+
+#ifndef _WIN32
+         m.exec( p );
+#else
+         void showShellContextMenu( const QString&, QPoint, QWidget*, QMenu* );
+         showShellContextMenu( itemPath, p, this, &m );
+#endif
+      }
+   }
+}
+
+QString DirectoryMergeWindow::Data::getFileName( const QModelIndex& mi )
+{
+   MergeFileInfos* pMFI = getMFI( mi );
+   if ( pMFI != 0 )
+   {
+      return mi.column() == s_ACol ? pMFI->m_pFileInfoA->absoluteFilePath() :
+             mi.column() == s_BCol ? pMFI->m_pFileInfoB->absoluteFilePath() :
+             mi.column() == s_CCol ? pMFI->m_pFileInfoC->absoluteFilePath() :
+             QString("");
+   }
+   return "";
+}
+
+bool DirectoryMergeWindow::Data::isDir( const QModelIndex& mi )
+{
+   MergeFileInfos* pMFI = getMFI( mi );
+   if ( pMFI != 0 )
+   {
+      return mi.column() == s_ACol ? pMFI->dirA() :
+             mi.column() == s_BCol ? pMFI->dirB() :
+                                     pMFI->dirC();
+   }
+   return false;
+}
+
+
+void DirectoryMergeWindow::Data::selectItemAndColumn(const QModelIndex& mi, bool bContextMenu)
+{
+   if ( bContextMenu && ( mi==m_selection1Index  ||  mi==m_selection2Index  ||  mi==m_selection3Index ) ) 
+      return;
+
+   QModelIndex old1=m_selection1Index;
+   QModelIndex old2=m_selection2Index;
+   QModelIndex old3=m_selection3Index;
+
+   bool bReset = false;
+
+   if ( m_selection1Index.isValid() )
+   {
+      if (isDir( m_selection1Index )!=isDir( mi ))
+         bReset = true;
+   }
+
+   if ( bReset || m_selection3Index.isValid() || mi==m_selection1Index || mi==m_selection2Index || mi==m_selection3Index )
+   {
+      // restart
+      m_selection1Index = QModelIndex();
+      m_selection2Index = QModelIndex();
+      m_selection3Index = QModelIndex();
+   }
+   else if ( !m_selection1Index.isValid() )
+   {
+      m_selection1Index = mi;
+      m_selection2Index = QModelIndex();
+      m_selection3Index = QModelIndex();
+   }
+   else if ( !m_selection2Index.isValid() )
+   {
+      m_selection2Index = mi;
+      m_selection3Index = QModelIndex();
+   }
+   else if ( !m_selection3Index.isValid() )
+   {
+      m_selection3Index = mi;
+   }
+   if (old1.isValid()) dataChanged( old1, old1 );
+   if (old2.isValid()) dataChanged( old2, old2 );
+   if (old3.isValid()) dataChanged( old3, old3 );
+   if (m_selection1Index.isValid()) dataChanged( m_selection1Index, m_selection1Index );
+   if (m_selection2Index.isValid()) dataChanged( m_selection2Index, m_selection2Index );
+   if (m_selection3Index.isValid()) dataChanged( m_selection3Index, m_selection3Index );
+   emit q->updateAvailabilities();
+}
+
+//TODO
+//void DirMergeItem::init(MergeFileInfos* pMFI)
+//{
+//   pMFI->m_pDMI = this;
+//   m_pMFI = pMFI;
+//   TotalDiffStatus& tds = pMFI->m_totalDiffStatus;
+//   if ( m_pMFI->dirA() || m_pMFI->dirB() || m_pMFI->dirC() )
+//   {
+//   }
+//   else
+//   {
+//      setText( s_UnsolvedCol, QString::number( tds.nofUnsolvedConflicts ) );
+//      setText( s_SolvedCol,   QString::number( tds.nofSolvedConflicts ) );
+//      setText( s_NonWhiteCol, QString::number( tds.nofUnsolvedConflicts + tds.nofSolvedConflicts - tds.nofWhitespaceConflicts ) );
+//      setText( s_WhiteCol,    QString::number( tds.nofWhitespaceConflicts ) );
+//   }
+//   setSizeHint( s_ACol, QSize(17,17) ); // Iconsize
+//   setSizeHint( s_BCol, QSize(17,17) ); // Iconsize
+//   setSizeHint( s_CCol, QSize(17,17) ); // Iconsize
+//}
+
+class MfiLessThan
+{
+   int m_sortColumn;
+public:
+   MfiLessThan( int sortColumn )
+   : m_sortColumn( sortColumn )
+   {
+   }
+   bool operator()( MergeFileInfos* pMFI1, MergeFileInfos* pMFI2 )
+   {
+      bool bDir1 =  pMFI1->dirA() || pMFI1->dirB() || pMFI1->dirC();
+      bool bDir2 =  pMFI2->dirA() || pMFI2->dirB() || pMFI2->dirC();
+      if ( bDir1 == bDir2 )
+      {
+         //if(col==s_UnsolvedCol || col==s_SolvedCol || col==s_NonWhiteCol || col==s_WhiteCol)
+         //   return text(col).toInt() > i.text(col).toInt();
+         //if ( s_sortColumn == s_NameCol )
+            return pMFI1->fileName().compare( pMFI2->fileName(), Qt::CaseInsensitive )<0;
+         //else
+         //   return QTreeWidgetItem::operator<(i);      
+      }
+      else
+         return bDir1;
+   }
+};
+
+static void sortHelper( MergeFileInfos* pMFI, int sortColumn, Qt::SortOrder order )
+{
+   qSort( pMFI->m_children.begin(), pMFI->m_children.end(), MfiLessThan(sortColumn) );
+   
+   if ( order == Qt::DescendingOrder )
+      std::reverse( pMFI->m_children.begin(), pMFI->m_children.end() );
+   
+   for( int i=0; i<pMFI->m_children.count(); ++i )
+      sortHelper( pMFI->m_children[i], sortColumn, order );
+}
+
+void DirectoryMergeWindow::Data::sort( int column, Qt::SortOrder order )
+{
+   beginResetModel();
+   sortHelper( m_pRoot, column, order );
+   endResetModel();
+}
+
+//
+//DirMergeItem::~DirMergeItem()
+//{
+//   m_pMFI->m_pDMI = 0;
+//}
+
+void DirectoryMergeWindow::Data::setMergeOperation( const QModelIndex& mi, e_MergeOperation eMOp, bool bRecursive )
+{
+   MergeFileInfos* pMFI = getMFI( mi );
+   if ( pMFI == 0 )
+      return;
+
+   MergeFileInfos& mfi = *pMFI;
+
+   if ( eMOp != mfi.m_eMergeOperation )
+   {
+      mfi.m_bOperationComplete = false;
+      setOpStatus( mi, eOpStatusNone );
+   }
+
+   mfi.m_eMergeOperation = eMOp;
+   QString s;
+   if ( bRecursive )
+   {
+      e_MergeOperation eChildrenMergeOp = mfi.m_eMergeOperation;
+      if ( eChildrenMergeOp == eConflictingFileTypes ) eChildrenMergeOp = eMergeABCToDest;
+      for( int childIdx=0; childIdx<mfi.m_children.count(); ++childIdx )
+      {
+         calcSuggestedOperation( index( childIdx, 0, mi ), eChildrenMergeOp );
+      }
+   }
+}
+
+void DirectoryMergeWindow::compareCurrentFile()
+{
+   if (!d->canContinue()) return;
+
+   if ( d->m_bRealMergeStarted )
+   {
+      KMessageBox::sorry(this,i18n("This operation is currently not possible."),i18n("Operation Not Possible"));
+      return;
+   }
+
+   if ( MergeFileInfos* pMFI = d->getMFI(currentIndex()) )
+   {
+      if ( !(pMFI->dirA() || pMFI->dirB() || pMFI->dirC()) )
+      {
+         emit startDiffMerge(
+            pMFI->existsInA() ? pMFI->m_pFileInfoA->absoluteFilePath() : QString(""),
+            pMFI->existsInB() ? pMFI->m_pFileInfoB->absoluteFilePath() : QString(""),
+            pMFI->existsInC() ? pMFI->m_pFileInfoC->absoluteFilePath() : QString(""),
+            "",
+            "","","",0
+            );
+      }
+   }
+   emit updateAvailabilities();
+}
+
+
+void DirectoryMergeWindow::slotCompareExplicitlySelectedFiles()
+{
+   if ( ! d->isDir(d->m_selection1Index) && !d->canContinue() ) return;
+
+   if ( d->m_bRealMergeStarted )
+   {
+      KMessageBox::sorry(this,i18n("This operation is currently not possible."),i18n("Operation Not Possible"));
+      return;
+   }
+
+   emit startDiffMerge(
+      d->getFileName( d->m_selection1Index ),
+      d->getFileName( d->m_selection2Index ),
+      d->getFileName( d->m_selection3Index ),
+      "",
+      "","","",0
+      );
+   d->m_selection1Index=QModelIndex();
+   d->m_selection2Index=QModelIndex();
+   d->m_selection3Index=QModelIndex();
+
+   emit updateAvailabilities();
+   update();
+}
+
+void DirectoryMergeWindow::slotMergeExplicitlySelectedFiles()
+{
+   if ( ! d->isDir(d->m_selection1Index) && !d->canContinue() ) return;
+
+   if ( d->m_bRealMergeStarted )
+   {
+      KMessageBox::sorry(this,i18n("This operation is currently not possible."),i18n("Operation Not Possible"));
+      return;
+   }
+
+   QString fn1 = d->getFileName( d->m_selection1Index );
+   QString fn2 = d->getFileName( d->m_selection2Index );
+   QString fn3 = d->getFileName( d->m_selection3Index );
+
+   emit startDiffMerge( fn1, fn2, fn3, 
+      fn3.isEmpty() ? fn2 : fn3,
+      "","","",0
+      );
+   d->m_selection1Index=QModelIndex();
+   d->m_selection2Index=QModelIndex();
+   d->m_selection3Index=QModelIndex();
+
+   emit updateAvailabilities();
+   update();
+}
+
+bool DirectoryMergeWindow::isFileSelected()
+{
+   if ( MergeFileInfos* pMFI = d->getMFI(currentIndex()) )
+   {
+      return ! (pMFI->dirA() || pMFI->dirB() || pMFI->dirC() || conflictingFileTypes(*pMFI) );
+   }
+   return false;
+}
+
+void DirectoryMergeWindow::mergeResultSaved(const QString& fileName)
+{
+   QModelIndex mi = (d->m_mergeItemList.empty() || d->m_currentIndexForOperation==d->m_mergeItemList.end() )
+                                               ? QModelIndex()
+                                               : *d->m_currentIndexForOperation;
+
+   MergeFileInfos* pMFI = d->getMFI(mi);
+   if ( pMFI==0 )
+   {
+      KMessageBox::error( this, i18n("This should never happen: \n\nmergeResultSaved: m_pMFI=0\n\nIf you know how to reproduce this, please contact the program author."),i18n("Program Error") );
+      return;
+   }
+   if ( fileName == d->fullNameDest(*pMFI) )
+   {
+      MergeFileInfos& mfi = *pMFI;
+      if ( mfi.m_eMergeOperation==eMergeToAB )
+      {
+         bool bSuccess = d->copyFLD( d->fullNameB(mfi), d->fullNameA(mfi) );
+         if (!bSuccess)
+         {
+            KMessageBox::error(this, i18n("An error occurred while copying.\n"), i18n("Error") );
+            d->m_pStatusInfo->setWindowTitle(i18n("Merge Error"));
+            d->m_pStatusInfo->exec();
+            //if ( m_pStatusInfo->firstChild()!=0 )
+            //   m_pStatusInfo->ensureItemVisible( m_pStatusInfo->last() );
+            d->m_bError = true;
+            d->setOpStatus( mi, eOpStatusError );
+            mfi.m_eMergeOperation = eCopyBToA;
+            return;
+         }
+      }
+      d->setOpStatus( mi, eOpStatusDone );
+      pMFI->m_bOperationComplete = true;
+      if ( d->m_mergeItemList.size()==1 )
+      {
+         d->m_mergeItemList.clear();
+         d->m_bRealMergeStarted=false;
+      }
+   }
+
+   emit updateAvailabilities();
+}
+
+bool DirectoryMergeWindow::Data::canContinue()
+{
+   bool bCanContinue=false;
+   q->checkIfCanContinue( &bCanContinue );
+   if ( bCanContinue && !m_bError )
+   {
+      QModelIndex mi = (m_mergeItemList.empty() || m_currentIndexForOperation==m_mergeItemList.end() ) ? QModelIndex() : *m_currentIndexForOperation;
+      MergeFileInfos* pMFI = getMFI(mi);
+      if ( pMFI  && ! pMFI->m_bOperationComplete )
+      {
+         setOpStatus( mi, eOpStatusNotSaved );
+         pMFI->m_bOperationComplete = true;
+         if ( m_mergeItemList.size()==1 )
+         {
+            m_mergeItemList.clear();
+            m_bRealMergeStarted=false;
+         }
+      }
+   }
+   return bCanContinue;
+}
+
+bool DirectoryMergeWindow::Data::executeMergeOperation( MergeFileInfos& mfi, bool& bSingleFileMerge )
+{
+   bool bCreateBackups = m_pOptions->m_bDmCreateBakFiles;
+   // First decide destname
+   QString destName;
+   switch( mfi.m_eMergeOperation )
+   {
+   case eNoOperation: break;
+   case eDeleteAB:    break;
+   case eMergeToAB:   // let the user save in B. In mergeResultSaved() the file will be copied to A.
+   case eMergeToB:
+   case eDeleteB:
+   case eCopyAToB:    destName = fullNameB(mfi); break;
+   case eMergeToA:
+   case eDeleteA:
+   case eCopyBToA:    destName = fullNameA(mfi); break;
+   case eMergeABToDest:
+   case eMergeABCToDest:
+   case eCopyAToDest:
+   case eCopyBToDest:
+   case eCopyCToDest:
+   case eDeleteFromDest: destName = fullNameDest(mfi); break;
+   default:
+      KMessageBox::error( q, i18n("Unknown merge operation. (This must never happen!)"), i18n("Error") );
+      assert(false);
+   }
+
+   bool bSuccess = false;
+   bSingleFileMerge = false;
+   switch( mfi.m_eMergeOperation )
+   {
+   case eNoOperation: bSuccess = true; break;
+   case eCopyAToDest:
+   case eCopyAToB:    bSuccess = copyFLD( fullNameA(mfi), destName ); break;
+   case eCopyBToDest:
+   case eCopyBToA:    bSuccess = copyFLD( fullNameB(mfi), destName ); break;
+   case eCopyCToDest: bSuccess = copyFLD( fullNameC(mfi), destName ); break;
+   case eDeleteFromDest:
+   case eDeleteA:
+   case eDeleteB:     bSuccess = deleteFLD( destName, bCreateBackups ); break;
+   case eDeleteAB:    bSuccess = deleteFLD( fullNameA(mfi), bCreateBackups ) &&
+                                 deleteFLD( fullNameB(mfi), bCreateBackups ); break;
+   case eMergeABToDest:
+   case eMergeToA:
+   case eMergeToAB:
+   case eMergeToB:      bSuccess = mergeFLD( fullNameA(mfi), fullNameB(mfi), "",
+                                             destName, bSingleFileMerge );
+                        break;
+   case eMergeABCToDest:bSuccess = mergeFLD(
+                                    mfi.existsInA() ? fullNameA(mfi) : QString(""),
+                                    mfi.existsInB() ? fullNameB(mfi) : QString(""),
+                                    mfi.existsInC() ? fullNameC(mfi) : QString(""),
+                                    destName, bSingleFileMerge );
+                        break;
+   default:
+      KMessageBox::error( q, i18n("Unknown merge operation."), i18n("Error") );
+      assert(false);
+   }
+
+   return bSuccess;
+}
+
+
+// Check if the merge can start, and prepare the m_mergeItemList which then contains all
+// items that must be merged.
+void DirectoryMergeWindow::Data::prepareMergeStart( const QModelIndex& miBegin, const QModelIndex& miEnd, bool bVerbose )
+{
+   if ( bVerbose )
+   {
+      int status = KMessageBox::warningYesNoCancel(q,
+         i18n("The merge is about to begin.\n\n"
+         "Choose \"Do it\" if you have read the instructions and know what you are doing.\n"
+         "Choosing \"Simulate it\" will tell you what would happen.\n\n"
+         "Be aware that this program still has beta status "
+         "and there is NO WARRANTY whatsoever! Make backups of your vital data!"),
+         i18n("Starting Merge"), 
+         KGuiItem( i18n("Do It") ), 
+         KGuiItem( i18n("Simulate It") ) );
+      if (status==KMessageBox::Yes)      m_bRealMergeStarted = true;
+      else if (status==KMessageBox::No ) m_bSimulatedMergeStarted = true;
+      else return;
+   }
+   else
+   {
+      m_bRealMergeStarted = true;
+   }
+
+   m_mergeItemList.clear();
+   if ( !miBegin.isValid() )
+      return;
+
+   for( QModelIndex mi = miBegin; mi!=miEnd; mi = treeIterator( mi ) )
+   {
+      MergeFileInfos* pMFI = getMFI( mi );
+      if ( pMFI && ! pMFI->m_bOperationComplete )
+      {
+         m_mergeItemList.push_back(mi);
+         QString errorText;
+         if (pMFI->m_eMergeOperation == eConflictingFileTypes )
+         {
+            errorText = i18n("The highlighted item has a different type in the different directories. Select what to do.");
+         }
+         if (pMFI->m_eMergeOperation == eConflictingAges )
+         {
+            errorText = i18n("The modification dates of the file are equal but the files are not. Select what to do.");
+         }
+         if (pMFI->m_eMergeOperation == eChangedAndDeleted )
+         {
+            errorText = i18n("The highlighted item was changed in one directory and deleted in the other. Select what to do.");
+         }
+         if ( !errorText.isEmpty() )
+         {
+            q->scrollTo( mi, QAbstractItemView::EnsureVisible );
+            q->setCurrentIndex( mi );
+            KMessageBox::error(q, errorText, i18n("Error"));
+            m_mergeItemList.clear();
+            m_bRealMergeStarted=false;
+            return;
+         }
+      }
+   }
+
+   m_currentIndexForOperation = m_mergeItemList.begin();
+   return;
+}
+
+void DirectoryMergeWindow::slotRunOperationForCurrentItem()
+{
+   if ( ! d->canContinue() ) return;
+
+   bool bVerbose = false;
+   if ( d->m_mergeItemList.empty() )
+   {
+      QModelIndex miBegin = currentIndex();
+      QModelIndex miEnd = d->treeIterator(miBegin,false,false); // find next visible sibling (no children)
+
+      d->prepareMergeStart( miBegin, miEnd, bVerbose );
+      d->mergeContinue(true, bVerbose);
+   }
+   else
+      d->mergeContinue(false, bVerbose);
+}
+
+void DirectoryMergeWindow::slotRunOperationForAllItems()
+{
+   if ( ! d->canContinue() ) return;
+
+   bool bVerbose = true;
+   if ( d->m_mergeItemList.empty() )
+   {
+      QModelIndex miBegin = d->rowCount()>0 ? d->index(0,0,QModelIndex()) : QModelIndex();
+
+      d->prepareMergeStart( miBegin, QModelIndex(), bVerbose );
+      d->mergeContinue(true, bVerbose);
+   }
+   else
+      d->mergeContinue(false, bVerbose);
+}
+
+void DirectoryMergeWindow::mergeCurrentFile()
+{
+   if (!d->canContinue()) return;
+
+   if ( d->m_bRealMergeStarted )
+   {
+      KMessageBox::sorry(this,i18n("This operation is currently not possible because directory merge is currently running."),i18n("Operation Not Possible"));
+      return;
+   }
+
+   if ( isFileSelected() )
+   {
+      MergeFileInfos* pMFI = d->getMFI( currentIndex() );
+      if ( pMFI != 0 )
+      {
+         MergeFileInfos& mfi = *pMFI;
+         d->m_mergeItemList.clear();
+         d->m_mergeItemList.push_back( currentIndex() );
+         d->m_currentIndexForOperation = d->m_mergeItemList.begin();
+         bool bDummy=false;
+         d->mergeFLD(
+            mfi.existsInA() ? mfi.m_pFileInfoA->absoluteFilePath() : QString(""),
+            mfi.existsInB() ? mfi.m_pFileInfoB->absoluteFilePath() : QString(""),
+            mfi.existsInC() ? mfi.m_pFileInfoC->absoluteFilePath() : QString(""),
+            d->fullNameDest(mfi),
+            bDummy
+            );
+      }
+   }
+   emit updateAvailabilities();
+}
+
+
+// When bStart is true then m_currentIndexForOperation must still be processed.
+// When bVerbose is true then a messagebox will tell when the merge is complete.
+void DirectoryMergeWindow::Data::mergeContinue(bool bStart, bool bVerbose)
+{
+   ProgressProxy pp;
+   if ( m_mergeItemList.empty() )
+      return;
+
+   int nrOfItems = 0;
+   int nrOfCompletedItems = 0;
+   int nrOfCompletedSimItems = 0;
+
+   // Count the number of completed items (for the progress bar).
+   for( MergeItemList::iterator i = m_mergeItemList.begin(); i!=m_mergeItemList.end(); ++i )
+   {
+      MergeFileInfos* pMFI = getMFI( *i );
+      ++nrOfItems;
+      if ( pMFI->m_bOperationComplete )
+         ++nrOfCompletedItems;
+      if ( pMFI->m_bSimOpComplete )
+         ++nrOfCompletedSimItems;
+   }
+
+   m_pStatusInfo->hide();
+   m_pStatusInfo->clear();
+
+   QModelIndex miCurrent = m_currentIndexForOperation==m_mergeItemList.end() ? QModelIndex() : *m_currentIndexForOperation;
+
+   bool bContinueWithCurrentItem = bStart;  // true for first item, else false
+   bool bSkipItem = false;
+   if ( !bStart && m_bError && miCurrent.isValid() )
+   {
+      int status = KMessageBox::warningYesNoCancel(q,
+         i18n("There was an error in the last step.\n"
+         "Do you want to continue with the item that caused the error or do you want to skip this item?"),
+         i18n("Continue merge after an error"), 
+         KGuiItem( i18n("Continue With Last Item") ), 
+         KGuiItem( i18n("Skip Item") ) );
+      if      (status==KMessageBox::Yes) bContinueWithCurrentItem = true;
+      else if (status==KMessageBox::No ) bSkipItem = true;
+      else return;
+      m_bError = false;
+   }
+
+   pp.setMaxNofSteps( nrOfItems );
+
+   bool bSuccess = true;
+   bool bSingleFileMerge = false;
+   bool bSim = m_bSimulatedMergeStarted;
+   while( bSuccess )
+   {
+      MergeFileInfos* pMFI = getMFI(miCurrent);
+      if ( pMFI==0 )
+      {
+         m_mergeItemList.clear();
+         m_bRealMergeStarted=false;
+         break;
+      }
+
+      if ( pMFI!=0 && !bContinueWithCurrentItem )
+      {
+         if ( bSim )
+         {
+            if( rowCount(miCurrent)==0 )
+            {
+               pMFI->m_bSimOpComplete = true;
+            }
+         }
+         else
+         {
+            if( rowCount( miCurrent )==0 )
+            {
+               if( !pMFI->m_bOperationComplete )
+               {
+                  setOpStatus( miCurrent, bSkipItem ? eOpStatusSkipped : eOpStatusDone );
+                  pMFI->m_bOperationComplete = true;
+                  bSkipItem = false;
+               }
+            }
+            else
+            {
+               setOpStatus( miCurrent, eOpStatusInProgress );
+            }
+         }
+      }
+
+      if ( ! bContinueWithCurrentItem )
+      {
+         // Depth first
+         QModelIndex miPrev = miCurrent;
+         ++m_currentIndexForOperation;
+         miCurrent = m_currentIndexForOperation==m_mergeItemList.end() ? QModelIndex() : *m_currentIndexForOperation;
+         if ( (!miCurrent.isValid() || miCurrent.parent()!=miPrev.parent()) && miPrev.parent().isValid() )
+         {
+            // Check if the parent may be set to "Done"
+            QModelIndex miParent = miPrev.parent();
+            bool bDone = true;
+            while ( bDone && miParent.isValid() )
+            {
+               for( int childIdx = 0; childIdx<rowCount(miParent); ++childIdx )
+               {
+                  MergeFileInfos* pMFI = getMFI( index(childIdx,0,miParent));
+                  if ( (!bSim && ! pMFI->m_bOperationComplete)   ||  (bSim && pMFI->m_bSimOpComplete) )
+                  {
+                     bDone=false;
+                     break;
+                  }
+               }
+               if ( bDone )
+               {
+                  MergeFileInfos* pMFI = getMFI(miParent);
+                  if (bSim)
+                     pMFI->m_bSimOpComplete = bDone;
+                  else
+                  {
+                     setOpStatus( miParent, eOpStatusDone );
+                     pMFI->m_bOperationComplete = bDone;
+                  }
+               }
+               miParent = miParent.parent();
+            }
+         }
+      }
+
+      if ( !miCurrent.isValid() ) // end?
+      {
+         if ( m_bRealMergeStarted )
+         {
+            if (bVerbose)
+            {
+               KMessageBox::information( q, i18n("Merge operation complete."), i18n("Merge Complete") );
+            }
+            m_bRealMergeStarted = false;
+            m_pStatusInfo->setWindowTitle(i18n("Merge Complete"));
+         }
+         if ( m_bSimulatedMergeStarted )
+         {
+            m_bSimulatedMergeStarted = false;
+            QModelIndex mi = rowCount()>0 ? index(0,0,QModelIndex()) : QModelIndex();
+            for( ; mi.isValid(); mi=treeIterator(mi) )
+            {
+               getMFI( mi )->m_bSimOpComplete = false;
+            }
+            m_pStatusInfo->setWindowTitle(i18n("Simulated merge complete: Check if you agree with the proposed operations."));
+            m_pStatusInfo->exec();
+         }
+         m_mergeItemList.clear();
+         m_bRealMergeStarted=false;
+         return;
+      }
+
+      MergeFileInfos& mfi = *getMFI(miCurrent);
+
+      pp.setInformation( mfi.subPath(),
+         bSim ? nrOfCompletedSimItems : nrOfCompletedItems,
+         false // bRedrawUpdate
+         );
+
+      bSuccess = executeMergeOperation( mfi, bSingleFileMerge );  // Here the real operation happens.
+
+      if ( bSuccess )
+      {
+         if(bSim) ++nrOfCompletedSimItems;
+         else     ++nrOfCompletedItems;
+         bContinueWithCurrentItem = false;
+      }
+
+      if( pp.wasCancelled() )
+         break;
+   }  // end while
+
+   //g_pProgressDialog->hide();
+
+   q->setCurrentIndex( miCurrent );
+   q->scrollTo( miCurrent, EnsureVisible );
+   if ( !bSuccess &&  !bSingleFileMerge )
+   {
+      KMessageBox::error(q, i18n("An error occurred. Press OK to see detailed information.\n"), i18n("Error") );
+      m_pStatusInfo->setWindowTitle(i18n("Merge Error"));
+      m_pStatusInfo->exec();
+      //if ( m_pStatusInfo->firstChild()!=0 )
+      //   m_pStatusInfo->ensureItemVisible( m_pStatusInfo->last() );
+      m_bError = true;
+      
+      setOpStatus( miCurrent, eOpStatusError );
+   }
+   else
+   {
+      m_bError = false;
+   }
+   emit q->updateAvailabilities();
+
+   if ( m_currentIndexForOperation==m_mergeItemList.end() )
+   {
+      m_mergeItemList.clear();
+      m_bRealMergeStarted=false;
+   }
+}
+
+bool DirectoryMergeWindow::Data::deleteFLD( const QString& name, bool bCreateBackup )
+{
+   FileAccess fi(name, true);
+   if ( !fi.exists() )
+      return true;
+
+   if ( bCreateBackup )
+   {
+      bool bSuccess = renameFLD( name, name+".orig" );
+      if (!bSuccess)
+      {
+         m_pStatusInfo->addText( i18n("Error: While deleting %1: Creating backup failed.",name) );
+         return false;
+      }
+   }
+   else
+   {
+      if ( fi.isDir() && !fi.isSymLink() )
+         m_pStatusInfo->addText(i18n("delete directory recursively( %1 )",name));
+      else
+         m_pStatusInfo->addText(i18n("delete( %1 )",name));
+
+      if ( m_bSimulatedMergeStarted )
+      {
+         return true;
+      }
+
+      if ( fi.isDir() && !fi.isSymLink() )// recursive directory delete only for real dirs, not symlinks
+      {
+         t_DirectoryList dirList;
+         bool bSuccess = fi.listDir( &dirList, false, true, "*", "", "", false, false );  // not recursive, find hidden files
+
+         if ( !bSuccess )
+         {
+             // No Permission to read directory or other error.
+             m_pStatusInfo->addText( i18n("Error: delete dir operation failed while trying to read the directory.") );
+             return false;
+         }
+
+         t_DirectoryList::iterator it;      // create list iterator
+
+         for ( it=dirList.begin(); it!=dirList.end(); ++it )       // for each file...
+         {
+            FileAccess& fi2 = *it;
+            if ( fi2.fileName() == "." ||  fi2.fileName()==".." )
+               continue;
+            bSuccess = deleteFLD( fi2.absoluteFilePath(), false );
+            if (!bSuccess) break;
+         }
+         if (bSuccess)
+         {
+            bSuccess = FileAccess::removeDir( name );
+            if ( !bSuccess )
+            {
+               m_pStatusInfo->addText( i18n("Error: rmdir( %1 ) operation failed.",name));
+               return false;
+            }
+         }
+      }
+      else
+      {
+         bool bSuccess = FileAccess::removeFile( name );
+         if ( !bSuccess )
+         {
+            m_pStatusInfo->addText( i18n("Error: delete operation failed.") );
+            return false;
+         }
+      }
+   }
+   return true;
+}
+
+bool DirectoryMergeWindow::Data::mergeFLD( const QString& nameA,const QString& nameB,const QString& nameC,const QString& nameDest, bool& bSingleFileMerge )
+{
+   FileAccess fi(nameA);
+   if (fi.isDir())
+   {
+      return makeDir(nameDest);
+   }
+
+   // Make sure that the dir exists, into which we will save the file later.
+   int pos=nameDest.lastIndexOf('/');
+   if ( pos>0 )
+   {
+      QString parentName = nameDest.left(pos);
+      bool bSuccess = makeDir(parentName, true /*quiet*/);
+      if (!bSuccess)
+         return false;
+   }
+
+   m_pStatusInfo->addText(i18n("manual merge( %1, %2, %3 -> %4)",nameA,nameB,nameC,nameDest));
+   if ( m_bSimulatedMergeStarted )
+   {
+      m_pStatusInfo->addText(i18n("     Note: After a manual merge the user should continue by pressing F7.") );
+      return true;
+   }
+
+   bSingleFileMerge = true;
+   setOpStatus(*m_currentIndexForOperation, eOpStatusInProgress );
+   q->scrollTo( *m_currentIndexForOperation, EnsureVisible );
+
+   emit q->startDiffMerge( nameA, nameB, nameC, nameDest, "","","",0 );
+
+   return false;
+}
+
+bool DirectoryMergeWindow::Data::copyFLD( const QString& srcName, const QString& destName )
+{
+   if ( srcName == destName )
+      return true;
+
+   FileAccess fi( srcName );
+   FileAccess faDest(destName, true);
+   if ( faDest.exists() && !( fi.isDir() && faDest.isDir() && (fi.isSymLink()==faDest.isSymLink())) )
+   {
+      bool bSuccess = deleteFLD( destName, m_pOptions->m_bDmCreateBakFiles );
+      if ( !bSuccess )
+      {
+         m_pStatusInfo->addText(i18n("Error: copy( %1 -> %2 ) failed."
+            "Deleting existing destination failed.",srcName,destName));
+         return false;
+      }
+   }
+
+
+   if ( fi.isSymLink() && ((fi.isDir() && !m_bFollowDirLinks)  ||  (!fi.isDir() && !m_bFollowFileLinks)) )
+   {
+      m_pStatusInfo->addText(i18n("copyLink( %1 -> %2 )",srcName,destName));
+#if defined(_WIN32) || defined(Q_OS_OS2)
+      // What are links?
+#else
+      if ( m_bSimulatedMergeStarted )
+      {
+         return true;
+      }
+      FileAccess destFi(destName);
+      if ( !destFi.isLocal() || !fi.isLocal() )
+      {
+         m_pStatusInfo->addText(i18n("Error: copyLink failed: Remote links are not yet supported."));
+         return false;
+      }
+      QString linkTarget = fi.readLink();
+      bool bSuccess = FileAccess::symLink( linkTarget, destName );
+      if (!bSuccess)
+         m_pStatusInfo->addText(i18n("Error: copyLink failed."));
+      return bSuccess;
+#endif
+   }
+
+   if ( fi.isDir() )
+   {
+      if ( faDest.exists() )
+        return true;
+      else
+      {
+         bool bSuccess = makeDir( destName );
+         return bSuccess;
+      }
+   }
+
+   int pos=destName.lastIndexOf('/');
+   if ( pos>0 )
+   {
+      QString parentName = destName.left(pos);
+      bool bSuccess = makeDir(parentName, true /*quiet*/);
+      if (!bSuccess)
+         return false;
+   }
+
+   m_pStatusInfo->addText(i18n("copy( %1 -> %2 )",srcName,destName));
+
+   if ( m_bSimulatedMergeStarted )
+   {
+      return true;
+   }
+
+   FileAccess faSrc ( srcName );
+   bool bSuccess = faSrc.copyFile( destName );
+   if (! bSuccess ) m_pStatusInfo->addText( faSrc.getStatusText() );
+   return bSuccess;
+}
+
+// Rename is not an operation that can be selected by the user.
+// It will only be used to create backups.
+// Hence it will delete an existing destination without making a backup (of the old backup.)
+bool DirectoryMergeWindow::Data::renameFLD( const QString& srcName, const QString& destName )
+{
+   if ( srcName == destName )
+      return true;
+
+   if ( FileAccess(destName, true).exists() )
+   {
+      bool bSuccess = deleteFLD( destName, false /*no backup*/ );
+      if (!bSuccess)
+      {
+         m_pStatusInfo->addText( i18n("Error during rename( %1 -> %2 ): "
+                             "Cannot delete existing destination." ,srcName,destName));
+         return false;
+      }
+   }
+
+   m_pStatusInfo->addText(i18n("rename( %1 -> %2 )",srcName,destName));
+   if ( m_bSimulatedMergeStarted )
+   {
+      return true;
+   }
+
+   bool bSuccess = FileAccess( srcName ).rename( destName );
+   if (!bSuccess)
+   {
+      m_pStatusInfo->addText( i18n("Error: Rename failed.") );
+      return false;
+   }
+
+   return true;
+}
+
+bool DirectoryMergeWindow::Data::makeDir( const QString& name, bool bQuiet )
+{
+   FileAccess fi(name, true);
+   if( fi.exists() && fi.isDir() )
+      return true;
+
+   if( fi.exists() && !fi.isDir() )
+   {
+      bool bSuccess = deleteFLD( name, true );
+      if (!bSuccess)
+      {
+         m_pStatusInfo->addText( i18n("Error during makeDir of %1. "
+                             "Cannot delete existing file." ,name));
+         return false;
+      }
+   }
+
+   int pos=name.lastIndexOf('/');
+   if ( pos>0 )
+   {
+      QString parentName = name.left(pos);
+      bool bSuccess = makeDir(parentName,true);
+      if (!bSuccess)
+         return false;
+   }
+
+   if ( ! bQuiet )
+      m_pStatusInfo->addText(i18n("makeDir( %1 )",name));
+
+   if ( m_bSimulatedMergeStarted )
+   {
+      return true;
+   }
+
+   bool bSuccess = FileAccess::makeDir( name );
+   if ( bSuccess == false )
+   {
+      m_pStatusInfo->addText( i18n("Error while creating directory.") );
+      return false;
+   }
+   return true;
+}
+
+
+DirectoryMergeInfo::DirectoryMergeInfo( QWidget* pParent )
+: QFrame(pParent)
+{
+   QVBoxLayout *topLayout = new QVBoxLayout( this );
+   topLayout->setMargin(0);
+
+   QGridLayout *grid = new QGridLayout();
+   topLayout->addLayout(grid);
+   grid->setColumnStretch(1,10);
+
+   int line=0;
+
+   m_pA = new QLabel("A",this);        grid->addWidget( m_pA,line, 0 );
+   m_pInfoA = new QLabel(this);        grid->addWidget( m_pInfoA,line,1 ); ++line;
+   m_pB = new QLabel("B",this);        grid->addWidget( m_pB,line, 0 );
+   m_pInfoB = new QLabel(this);        grid->addWidget( m_pInfoB,line,1 ); ++line;
+   m_pC = new QLabel("C",this);        grid->addWidget( m_pC,line, 0 );
+   m_pInfoC = new QLabel(this);        grid->addWidget( m_pInfoC,line,1 ); ++line;
+   m_pDest = new QLabel(i18n("Dest"),this);  grid->addWidget( m_pDest,line, 0 );
+   m_pInfoDest = new QLabel(this);     grid->addWidget( m_pInfoDest,line,1 ); ++line;
+
+   m_pInfoList = new QTreeWidget(this);  topLayout->addWidget( m_pInfoList );
+   m_pInfoList->setHeaderLabels( QStringList() << i18n("Dir") << i18n("Type") << i18n("Size")
+      << i18n("Attr") << i18n("Last Modification") << i18n("Link-Destination") );
+   setMinimumSize( 100,100 );
+
+   m_pInfoList->installEventFilter(this);
+   m_pInfoList->setRootIsDecorated( false );
+}
+
+bool DirectoryMergeInfo::eventFilter(QObject*o, QEvent* e)
+{
+   if ( e->type()==QEvent::FocusIn && o==m_pInfoList )
+      emit gotFocus();
+   return false;
+}
+
+static void addListViewItem( QTreeWidget* pListView, const QString& dir,
+   const QString& basePath, FileAccess* fi )
+{
+   if ( basePath.isEmpty() )
+   {
+      return;
+   }
+   else
+   {
+      if ( fi!=0 && fi->exists() )
+      {
+         QString dateString = fi->lastModified().toString("yyyy-MM-dd hh:mm:ss");
+
+         new QTreeWidgetItem(
+            pListView,
+            QStringList() << dir <<
+            QString( fi->isDir() ? i18n("Dir") : i18n("File") ) + (fi->isSymLink() ? "-Link" : "") <<
+            QString::number(fi->size()) <<
+            QString(fi->isReadable() ? "r" : " ") + (fi->isWritable()?"w" : " ")
+#ifdef _WIN32
+            /*Future: Use GetFileAttributes()*/ <<
+#else
+            + (fi->isExecutable()?"x" : " ") <<
+#endif
+            dateString <<
+            QString(fi->isSymLink() ? (" -> " + fi->readLink()) : QString(""))
+            );
+      }
+      else
+      {
+         new QTreeWidgetItem(
+            pListView,
+            QStringList() << dir <<
+            i18n("not available") <<
+            "" <<
+            "" <<
+            "" <<
+            ""
+            );
+      }
+   }
+}
+
+void DirectoryMergeInfo::setInfo(
+   const FileAccess& dirA,
+   const FileAccess& dirB,
+   const FileAccess& dirC,
+   const FileAccess& dirDest,
+   MergeFileInfos& mfi )
+{
+   bool bHideDest = false;
+   if ( dirA.absoluteFilePath()==dirDest.absoluteFilePath() )
+   {
+      m_pA->setText( i18n("A (Dest): ") );  bHideDest=true;
+   }
+   else
+      m_pA->setText( !dirC.isValid() ? QString("A:    ") : i18n("A (Base): "));
+
+   m_pInfoA->setText( dirA.prettyAbsPath() );
+
+   if ( dirB.absoluteFilePath()==dirDest.absoluteFilePath() )
+   {
+      m_pB->setText( i18n("B (Dest): ") );  bHideDest=true;
+   }
+   else
+      m_pB->setText( "B:    " );
+   m_pInfoB->setText( dirB.prettyAbsPath() );
+
+   if ( dirC.absoluteFilePath()==dirDest.absoluteFilePath() )
+   {
+      m_pC->setText( i18n("C (Dest): ") );  bHideDest=true;
+   }
+   else
+      m_pC->setText( "C:    " );
+   m_pInfoC->setText( dirC.prettyAbsPath() );
+
+   m_pDest->setText( i18n("Dest: ") ); m_pInfoDest->setText( dirDest.prettyAbsPath() );
+
+   if (!dirC.isValid())    { m_pC->hide(); m_pInfoC->hide();   }
+   else                     { m_pC->show(); m_pInfoC->show();   }
+
+   if (!dirDest.isValid()||bHideDest) { m_pDest->hide(); m_pInfoDest->hide(); }
+   else                                { m_pDest->show(); m_pInfoDest->show(); }
+
+   m_pInfoList->clear();
+   addListViewItem( m_pInfoList, "A", dirA.prettyAbsPath(), mfi.m_pFileInfoA );
+   addListViewItem( m_pInfoList, "B", dirB.prettyAbsPath(), mfi.m_pFileInfoB );
+   addListViewItem( m_pInfoList, "C", dirC.prettyAbsPath(), mfi.m_pFileInfoC );
+   if (!bHideDest)
+   {
+      FileAccess fiDest( dirDest.prettyAbsPath() + "/" + mfi.subPath(), true );
+      addListViewItem( m_pInfoList, i18n("Dest"), dirDest.prettyAbsPath(), &fiDest );
+   }
+   for (int i=0;i<m_pInfoList->columnCount();++i)
+      m_pInfoList->resizeColumnToContents ( i );
+}
+
+QTextStream& operator<<( QTextStream& ts, MergeFileInfos& mfi )
+{
+   ts << "{\n";
+   ValueMap vm;
+   vm.writeEntry( "SubPath", mfi.subPath() );
+   vm.writeEntry( "ExistsInA", mfi.existsInA() );
+   vm.writeEntry( "ExistsInB",  mfi.existsInB() );
+   vm.writeEntry( "ExistsInC",  mfi.existsInC() );
+   vm.writeEntry( "EqualAB",  mfi.m_bEqualAB );
+   vm.writeEntry( "EqualAC",  mfi.m_bEqualAC );
+   vm.writeEntry( "EqualBC",  mfi.m_bEqualBC );
+   //DirMergeItem* m_pDMI;
+   //MergeFileInfos* m_pParent;
+   vm.writeEntry( "MergeOperation", (int) mfi.m_eMergeOperation );
+   vm.writeEntry( "DirA",  mfi.dirA() );
+   vm.writeEntry( "DirB",  mfi.dirB() );
+   vm.writeEntry( "DirC",  mfi.dirC() );
+   vm.writeEntry( "LinkA",  mfi.isLinkA() );
+   vm.writeEntry( "LinkB",  mfi.isLinkB() );
+   vm.writeEntry( "LinkC",  mfi.isLinkC() );
+   vm.writeEntry( "OperationComplete", mfi.m_bOperationComplete );
+   //bool m_bSimOpComplete );
+
+   vm.writeEntry( "AgeA", (int) mfi.m_ageA );
+   vm.writeEntry( "AgeB", (int) mfi.m_ageB );
+   vm.writeEntry( "AgeC", (int) mfi.m_ageC );
+   vm.writeEntry( "ConflictingAges", mfi.m_bConflictingAges );       // Equal age but files are not!
+
+   //FileAccess m_fileInfoA;
+   //FileAccess m_fileInfoB;
+   //FileAccess m_fileInfoC;
+
+   //TotalDiffStatus m_totalDiffStatus;
+   
+   vm.save(ts);
+   
+   ts << "}\n";
+
+   return ts;
+}
+
+void DirectoryMergeWindow::slotSaveMergeState()
+{
+   //slotStatusMsg(i18n("Saving Directory Merge State ..."));
+
+   //QString s = KFileDialog::getSaveUrl( QDir::currentPath(), 0, this, i18n("Save As...") ).url();
+   QString s = KFileDialog::getSaveFileName( QDir::currentPath(), 0, this, i18n("Save Directory Merge State As...") );
+   if(!s.isEmpty())
+   {
+      d->m_dirMergeStateFilename = s;
+
+
+      QFile file(d->m_dirMergeStateFilename);
+      bool bSuccess = file.open( QIODevice::WriteOnly );
+      if ( bSuccess )
+      {
+         QTextStream ts( &file );
+
+         QModelIndex mi( d->index(0,0,QModelIndex()) );
+         while ( mi.isValid() ) {
+            MergeFileInfos* pMFI = d->getMFI(mi);
+            ts << *pMFI;
+            mi = d->treeIterator(mi,true,true);
+         }
+      }
+   }
+
+   //slotStatusMsg(i18n("Ready."));
+
+}
+
+void DirectoryMergeWindow::slotLoadMergeState()
+{
+}
+
+void DirectoryMergeWindow::updateFileVisibilities()
+{
+   bool bShowIdentical = d->m_pDirShowIdenticalFiles->isChecked();
+   bool bShowDifferent = d->m_pDirShowDifferentFiles->isChecked();
+   bool bShowOnlyInA   = d->m_pDirShowFilesOnlyInA->isChecked();
+   bool bShowOnlyInB   = d->m_pDirShowFilesOnlyInB->isChecked();
+   bool bShowOnlyInC   = d->m_pDirShowFilesOnlyInC->isChecked();
+   bool bThreeDirs = d->m_dirC.isValid();
+   d->m_selection1Index = QModelIndex();
+   d->m_selection2Index = QModelIndex();
+   d->m_selection3Index = QModelIndex();
+
+   // in first run set all dirs to equal and determine if they are not equal.
+   // on second run don't change the equal-status anymore; it is needed to
+   // set the visibility (when bShowIdentical is false).
+   for( int loop=0; loop<2; ++loop )
+   {
+      QModelIndex mi = d->rowCount()>0 ? d->index(0,0,QModelIndex()) : QModelIndex();
+      while( mi.isValid() )
+      {
+         MergeFileInfos* pMFI = d->getMFI(mi);
+         bool bDir = pMFI->dirA() || pMFI->dirB() || pMFI->dirC();
+         if ( loop==0 && bDir )
+         {
+            bool bChange = false;
+            if ( !pMFI->m_bEqualAB && pMFI->dirA() == pMFI->dirB() && pMFI->isLinkA()== pMFI->isLinkB() )
+            {
+               pMFI->m_bEqualAB = true; 
+               bChange=true;                
+            }
+            if ( !pMFI->m_bEqualBC && pMFI->dirC() == pMFI->dirB() && pMFI->isLinkC()== pMFI->isLinkB() )
+            { 
+               pMFI->m_bEqualBC = true; 
+               bChange=true; 
+            }
+            if ( !pMFI->m_bEqualAC && pMFI->dirA() == pMFI->dirC() && pMFI->isLinkA()== pMFI->isLinkC() )
+            { 
+               pMFI->m_bEqualAC = true;
+               bChange=true; 
+            }
+
+            if ( bChange )
+               setPixmaps( *pMFI, bThreeDirs );
+         }
+         bool bExistsEverywhere = pMFI->existsInA() && pMFI->existsInB() && (pMFI->existsInC() || !bThreeDirs);
+         int existCount = int(pMFI->existsInA()) + int(pMFI->existsInB()) + int(pMFI->existsInC());
+         bool bVisible =
+                  ( bShowIdentical && bExistsEverywhere && pMFI->m_bEqualAB && (pMFI->m_bEqualAC || !bThreeDirs) )
+               || ( (bShowDifferent||bDir) && existCount>=2 && (!pMFI->m_bEqualAB || !(pMFI->m_bEqualAC || !bThreeDirs)))
+               || ( bShowOnlyInA &&  pMFI->existsInA() && !pMFI->existsInB() && !pMFI->existsInC() )
+               || ( bShowOnlyInB && !pMFI->existsInA() &&  pMFI->existsInB() && !pMFI->existsInC() )
+               || ( bShowOnlyInC && !pMFI->existsInA() && !pMFI->existsInB() &&  pMFI->existsInC() );
+
+         QString fileName = pMFI->fileName();
+         bVisible = bVisible && (
+               (bDir && ! wildcardMultiMatch( d->m_pOptions->m_DmDirAntiPattern, fileName, d->m_bCaseSensitive ))
+               || (wildcardMultiMatch( d->m_pOptions->m_DmFilePattern, fileName, d->m_bCaseSensitive )
+                  && !wildcardMultiMatch( d->m_pOptions->m_DmFileAntiPattern, fileName, d->m_bCaseSensitive )) );
+
+         setRowHidden(mi.row(),mi.parent(),!bVisible);
+
+         bool bEqual = bThreeDirs ? pMFI->m_bEqualAB && pMFI->m_bEqualAC : pMFI->m_bEqualAB;
+         if ( !bEqual && bVisible && loop==0 )  // Set all parents to "not equal"
+         {
+            MergeFileInfos* p2 = pMFI->m_pParent;
+            while(p2!=0)
+            {
+               bool bChange = false;
+               if ( !pMFI->m_bEqualAB && p2->m_bEqualAB ){ p2->m_bEqualAB = false; bChange=true; }
+               if ( !pMFI->m_bEqualAC && p2->m_bEqualAC ){ p2->m_bEqualAC = false; bChange=true; }
+               if ( !pMFI->m_bEqualBC && p2->m_bEqualBC ){ p2->m_bEqualBC = false; bChange=true; }
+
+               if ( bChange )
+                  setPixmaps( *p2, bThreeDirs );
+               else
+                  break;
+
+               p2 = p2->m_pParent;
+            }
+         }
+         mi = d->treeIterator( mi, true, true );
+      }
+   }
+}
+
+void DirectoryMergeWindow::slotShowIdenticalFiles() {
+   d->m_pOptions->m_bDmShowIdenticalFiles=d->m_pDirShowIdenticalFiles->isChecked();
+   updateFileVisibilities(); 
+}
+void DirectoryMergeWindow::slotShowDifferentFiles() { updateFileVisibilities(); }
+void DirectoryMergeWindow::slotShowFilesOnlyInA()   { updateFileVisibilities(); }
+void DirectoryMergeWindow::slotShowFilesOnlyInB()   { updateFileVisibilities(); }
+void DirectoryMergeWindow::slotShowFilesOnlyInC()   { updateFileVisibilities(); }
+
+void DirectoryMergeWindow::slotSynchronizeDirectories()   {  }
+void DirectoryMergeWindow::slotChooseNewerFiles()   {  }
+
+void DirectoryMergeWindow::initDirectoryMergeActions( QObject* pKDiff3App, KActionCollection* ac )
+{
+#include "xpm/startmerge.xpm"
+#include "xpm/showequalfiles.xpm"
+#include "xpm/showfilesonlyina.xpm"
+#include "xpm/showfilesonlyinb.xpm"
+#include "xpm/showfilesonlyinc.xpm"
+   DirectoryMergeWindow* p = this;
+
+   d->m_pDirStartOperation = KDiff3::createAction< KAction >(i18n("Start/Continue Directory Merge"), KShortcut( Qt::Key_F7 ), p, SLOT(slotRunOperationForAllItems()), ac, "dir_start_operation");
+   d->m_pDirRunOperationForCurrentItem = KDiff3::createAction< KAction >(i18n("Run Operation for Current Item"), KShortcut( Qt::Key_F6 ), p, SLOT(slotRunOperationForCurrentItem()), ac, "dir_run_operation_for_current_item");
+   d->m_pDirCompareCurrent = KDiff3::createAction< KAction >(i18n("Compare Selected File"), p, SLOT(compareCurrentFile()), ac, "dir_compare_current");
+   d->m_pDirMergeCurrent = KDiff3::createAction< KAction >(i18n("Merge Current File"), QIcon(QPixmap(startmerge)), i18n("Merge\nFile"), pKDiff3App, SLOT(slotMergeCurrentFile()), ac, "merge_current");
+   d->m_pDirFoldAll = KDiff3::createAction< KAction >(i18n("Fold All Subdirs"), p, SLOT(collapseAll()), ac, "dir_fold_all");
+   d->m_pDirUnfoldAll = KDiff3::createAction< KAction >(i18n("Unfold All Subdirs"), p, SLOT(expandAll()), ac, "dir_unfold_all");
+   d->m_pDirRescan = KDiff3::createAction< KAction >(i18n("Rescan"), KShortcut( Qt::SHIFT+Qt::Key_F5 ), p, SLOT(reload()), ac, "dir_rescan");
+   d->m_pDirSaveMergeState = 0; //KDiff3::createAction< KAction >(i18n("Save Directory Merge State ..."), 0, p, SLOT(slotSaveMergeState()), ac, "dir_save_merge_state");
+   d->m_pDirLoadMergeState = 0; //KDiff3::createAction< KAction >(i18n("Load Directory Merge State ..."), 0, p, SLOT(slotLoadMergeState()), ac, "dir_load_merge_state");
+   d->m_pDirChooseAEverywhere = KDiff3::createAction< KAction >(i18n("Choose A for All Items"), p, SLOT(slotChooseAEverywhere()), ac, "dir_choose_a_everywhere");
+   d->m_pDirChooseBEverywhere = KDiff3::createAction< KAction >(i18n("Choose B for All Items"), p, SLOT(slotChooseBEverywhere()), ac, "dir_choose_b_everywhere");
+   d->m_pDirChooseCEverywhere = KDiff3::createAction< KAction >(i18n("Choose C for All Items"), p, SLOT(slotChooseCEverywhere()), ac, "dir_choose_c_everywhere");
+   d->m_pDirAutoChoiceEverywhere = KDiff3::createAction< KAction >(i18n("Auto-Choose Operation for All Items"), p, SLOT(slotAutoChooseEverywhere()), ac, "dir_autochoose_everywhere");
+   d->m_pDirDoNothingEverywhere = KDiff3::createAction< KAction >(i18n("No Operation for All Items"), p, SLOT(slotNoOpEverywhere()), ac, "dir_nothing_everywhere");
+
+//   d->m_pDirSynchronizeDirectories = KDiff3::createAction< KToggleAction >(i18n("Synchronize Directories"), 0, this, SLOT(slotSynchronizeDirectories()), ac, "dir_synchronize_directories");
+//   d->m_pDirChooseNewerFiles = KDiff3::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, SLOT(slotChooseNewerFiles()), ac, "dir_choose_newer_files");
+
+   d->m_pDirShowIdenticalFiles = KDiff3::createAction< KToggleAction >(i18n("Show Identical Files"), QIcon(QPixmap(showequalfiles)), i18n("Identical\nFiles"), this, SLOT(slotShowIdenticalFiles()), ac, "dir_show_identical_files");
+   d->m_pDirShowDifferentFiles = KDiff3::createAction< KToggleAction >(i18n("Show Different Files"), this, SLOT(slotShowDifferentFiles()), ac, "dir_show_different_files");
+   d->m_pDirShowFilesOnlyInA   = KDiff3::createAction< KToggleAction >(i18n("Show Files only in A"), QIcon(QPixmap(showfilesonlyina)), i18n("Files\nonly in A"), this, SLOT(slotShowFilesOnlyInA()), ac, "dir_show_files_only_in_a");
+   d->m_pDirShowFilesOnlyInB   = KDiff3::createAction< KToggleAction >(i18n("Show Files only in B"), QIcon(QPixmap(showfilesonlyinb)), i18n("Files\nonly in B"), this, SLOT(slotShowFilesOnlyInB()), ac, "dir_show_files_only_in_b");
+   d->m_pDirShowFilesOnlyInC   = KDiff3::createAction< KToggleAction >(i18n("Show Files only in C"), QIcon(QPixmap(showfilesonlyinc)), i18n("Files\nonly in C"), this, SLOT(slotShowFilesOnlyInC()), ac, "dir_show_files_only_in_c");
+
+   d->m_pDirShowIdenticalFiles->setChecked( d->m_pOptions->m_bDmShowIdenticalFiles );
+
+   d->m_pDirCompareExplicit = KDiff3::createAction< KAction >(i18n("Compare Explicitly Selected Files"), p, SLOT(slotCompareExplicitlySelectedFiles()), ac, "dir_compare_explicitly_selected_files");
+   d->m_pDirMergeExplicit = KDiff3::createAction< KAction >(i18n("Merge Explicitly Selected Files"), p, SLOT(slotMergeExplicitlySelectedFiles()), ac, "dir_merge_explicitly_selected_files");
+
+   d->m_pDirCurrentDoNothing = KDiff3::createAction< KAction >(i18n("Do Nothing"), p, SLOT(slotCurrentDoNothing()), ac, "dir_current_do_nothing");
+   d->m_pDirCurrentChooseA = KDiff3::createAction< KAction >(i18n("A"), p, SLOT(slotCurrentChooseA()), ac, "dir_current_choose_a");
+   d->m_pDirCurrentChooseB = KDiff3::createAction< KAction >(i18n("B"), p, SLOT(slotCurrentChooseB()), ac, "dir_current_choose_b");
+   d->m_pDirCurrentChooseC = KDiff3::createAction< KAction >(i18n("C"), p, SLOT(slotCurrentChooseC()), ac, "dir_current_choose_c");
+   d->m_pDirCurrentMerge   = KDiff3::createAction< KAction >(i18n("Merge"), p, SLOT(slotCurrentMerge()), ac, "dir_current_merge");
+   d->m_pDirCurrentDelete  = KDiff3::createAction< KAction >(i18n("Delete (if exists)"), p, SLOT(slotCurrentDelete()), ac, "dir_current_delete");
+
+   d->m_pDirCurrentSyncDoNothing = KDiff3::createAction< KAction >(i18n("Do Nothing"), p, SLOT(slotCurrentDoNothing()), ac, "dir_current_sync_do_nothing");
+   d->m_pDirCurrentSyncCopyAToB = KDiff3::createAction< KAction >(i18n("Copy A to B"), p, SLOT(slotCurrentCopyAToB()), ac, "dir_current_sync_copy_a_to_b" );
+   d->m_pDirCurrentSyncCopyBToA = KDiff3::createAction< KAction >(i18n("Copy B to A"), p, SLOT(slotCurrentCopyBToA()), ac, "dir_current_sync_copy_b_to_a" );
+   d->m_pDirCurrentSyncDeleteA  = KDiff3::createAction< KAction >(i18n("Delete A"), p, SLOT(slotCurrentDeleteA()), ac,"dir_current_sync_delete_a");
+   d->m_pDirCurrentSyncDeleteB  = KDiff3::createAction< KAction >(i18n("Delete B"), p, SLOT(slotCurrentDeleteB()), ac,"dir_current_sync_delete_b");
+   d->m_pDirCurrentSyncDeleteAAndB  = KDiff3::createAction< KAction >(i18n("Delete A && B"), p, SLOT(slotCurrentDeleteAAndB()), ac,"dir_current_sync_delete_a_and_b");
+   d->m_pDirCurrentSyncMergeToA   = KDiff3::createAction< KAction >(i18n("Merge to A"), p, SLOT(slotCurrentMergeToA()), ac,"dir_current_sync_merge_to_a");
+   d->m_pDirCurrentSyncMergeToB   = KDiff3::createAction< KAction >(i18n("Merge to B"), p, SLOT(slotCurrentMergeToB()), ac,"dir_current_sync_merge_to_b");
+   d->m_pDirCurrentSyncMergeToAAndB   = KDiff3::createAction< KAction >(i18n("Merge to A && B"), p, SLOT(slotCurrentMergeToAAndB()), ac,"dir_current_sync_merge_to_a_and_b");
+}
+
+
+void DirectoryMergeWindow::updateAvailabilities( bool bDirCompare, bool bDiffWindowVisible,
+   KToggleAction* chooseA, KToggleAction* chooseB, KToggleAction* chooseC )
+{
+   d->m_pDirStartOperation->setEnabled( bDirCompare );
+   d->m_pDirRunOperationForCurrentItem->setEnabled( bDirCompare );
+   d->m_pDirFoldAll->setEnabled( bDirCompare );
+   d->m_pDirUnfoldAll->setEnabled( bDirCompare );
+
+   d->m_pDirCompareCurrent->setEnabled( bDirCompare  &&  isVisible()  &&  isFileSelected() );
+
+   d->m_pDirMergeCurrent->setEnabled( (bDirCompare  &&  isVisible()  &&  isFileSelected())
+                                || bDiffWindowVisible );
+
+   d->m_pDirRescan->setEnabled( bDirCompare );
+
+   d->m_pDirAutoChoiceEverywhere->setEnabled( bDirCompare &&  isVisible() );
+   d->m_pDirDoNothingEverywhere->setEnabled( bDirCompare &&  isVisible() );
+   d->m_pDirChooseAEverywhere->setEnabled( bDirCompare &&  isVisible() );
+   d->m_pDirChooseBEverywhere->setEnabled( bDirCompare &&  isVisible() );
+   d->m_pDirChooseCEverywhere->setEnabled( bDirCompare &&  isVisible() );
+
+   bool bThreeDirs = d->m_dirC.isValid();
+   
+   MergeFileInfos* pMFI = d->getMFI( currentIndex() );
+
+   bool bItemActive = bDirCompare &&  isVisible() && pMFI!=0;//  &&  hasFocus();
+   bool bMergeMode = bThreeDirs || !d->m_bSyncMode;
+   bool bFTConflict = pMFI==0 ? false : conflictingFileTypes(*pMFI);
+
+   bool bDirWindowHasFocus = isVisible() && hasFocus();
+
+   d->m_pDirShowIdenticalFiles->setEnabled( bDirCompare &&  isVisible() );
+   d->m_pDirShowDifferentFiles->setEnabled( bDirCompare &&  isVisible() );
+   d->m_pDirShowFilesOnlyInA->setEnabled( bDirCompare &&  isVisible() );
+   d->m_pDirShowFilesOnlyInB->setEnabled( bDirCompare &&  isVisible() );
+   d->m_pDirShowFilesOnlyInC->setEnabled( bDirCompare &&  isVisible() && bThreeDirs );
+
+   d->m_pDirCompareExplicit->setEnabled( bDirCompare &&  isVisible() && d->m_selection2Index.isValid() );
+   d->m_pDirMergeExplicit->setEnabled( bDirCompare &&  isVisible() && d->m_selection2Index.isValid() );
+
+   d->m_pDirCurrentDoNothing->setEnabled( bItemActive && bMergeMode );
+   d->m_pDirCurrentChooseA->setEnabled( bItemActive && bMergeMode && pMFI->existsInA() );
+   d->m_pDirCurrentChooseB->setEnabled( bItemActive && bMergeMode && pMFI->existsInB() );
+   d->m_pDirCurrentChooseC->setEnabled( bItemActive && bMergeMode && pMFI->existsInC() );
+   d->m_pDirCurrentMerge->setEnabled( bItemActive && bMergeMode && !bFTConflict );
+   d->m_pDirCurrentDelete->setEnabled( bItemActive && bMergeMode );
+   if ( bDirWindowHasFocus )
+   {
+      chooseA->setEnabled( bItemActive && pMFI->existsInA() );
+      chooseB->setEnabled( bItemActive && pMFI->existsInB() );
+      chooseC->setEnabled( bItemActive && pMFI->existsInC() );
+      chooseA->setChecked( false );
+      chooseB->setChecked( false );
+      chooseC->setChecked( false );
+   }
+
+   d->m_pDirCurrentSyncDoNothing->setEnabled( bItemActive && !bMergeMode );
+   d->m_pDirCurrentSyncCopyAToB->setEnabled( bItemActive && !bMergeMode && pMFI->existsInA() );
+   d->m_pDirCurrentSyncCopyBToA->setEnabled( bItemActive && !bMergeMode && pMFI->existsInB() );
+   d->m_pDirCurrentSyncDeleteA->setEnabled( bItemActive && !bMergeMode && pMFI->existsInA() );
+   d->m_pDirCurrentSyncDeleteB->setEnabled( bItemActive && !bMergeMode && pMFI->existsInB() );
+   d->m_pDirCurrentSyncDeleteAAndB->setEnabled( bItemActive && !bMergeMode && pMFI->existsInA() && pMFI->existsInB() );
+   d->m_pDirCurrentSyncMergeToA->setEnabled( bItemActive && !bMergeMode && !bFTConflict );
+   d->m_pDirCurrentSyncMergeToB->setEnabled( bItemActive && !bMergeMode && !bFTConflict );
+   d->m_pDirCurrentSyncMergeToAAndB->setEnabled( bItemActive && !bMergeMode && !bFTConflict );
+}
+
+
+//#include "directorymergewindow.moc"
diff --git a/src-QT4/directorymergewindow.h b/src-QT4/directorymergewindow.h
new file mode 100644 (file)
index 0000000..76ae487
--- /dev/null
@@ -0,0 +1,187 @@
+/***************************************************************************
+                          directorymergewindow.h
+                             -------------------
+    begin                : Sat Oct 19 2002
+    copyright            : (C) 2002-2007 by Joachim Eibl
+    email                : joachim.eibl at gmx.de
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#ifndef DIRECTORY_MERGE_WINDOW_H
+#define DIRECTORY_MERGE_WINDOW_H
+
+#include <QTreeWidget>
+#include <QEvent>
+#include <list>
+#include <map>
+#include "common.h"
+#include "fileaccess.h"
+#include "diff.h" //TotalDiffStatus
+
+class Options;
+class KIconLoader;
+class StatusInfo;
+class DirectoryMergeInfo;
+class OneDirectoryInfo;
+class QLabel;
+class KAction;
+class KToggleAction;
+class KActionCollection;
+class TotalDiffStatus;
+
+enum e_MergeOperation
+{
+   eTitleId,
+   eNoOperation,
+   // Operations in sync mode (with only two directories):
+   eCopyAToB, eCopyBToA, eDeleteA, eDeleteB, eDeleteAB, eMergeToA, eMergeToB, eMergeToAB,
+
+   // Operations in merge mode (with two or three directories)
+   eCopyAToDest, eCopyBToDest, eCopyCToDest, eDeleteFromDest, eMergeABCToDest,
+   eMergeABToDest,
+   eConflictingFileTypes, // Error
+   eChangedAndDeleted,    // Error
+   eConflictingAges       // Equal age but files are not!
+};
+
+enum e_Age { eNew, eMiddle, eOld, eNotThere, eAgeEnd };
+
+class MergeFileInfos;
+
+class DirectoryMergeWindow : public QTreeView
+{
+   Q_OBJECT
+public:
+   DirectoryMergeWindow( QWidget* pParent, Options* pOptions, KIconLoader* pIconLoader );
+   ~DirectoryMergeWindow();
+   void setDirectoryMergeInfo(DirectoryMergeInfo* p);
+   bool init(
+      FileAccess& dirA,
+      FileAccess& dirB,
+      FileAccess& dirC,
+      FileAccess& dirDest,
+      bool bDirectoryMerge,
+      bool bReload = false
+   );
+   bool isFileSelected();
+   bool isDirectoryMergeInProgress();
+   int totalColumnWidth();
+   bool isSyncMode();
+   bool isScanning();
+   void initDirectoryMergeActions( QObject* pKDiff3App, KActionCollection* ac );
+   void updateAvailabilities( bool bDirCompare, bool bDiffWindowVisible,
+      KToggleAction* chooseA, KToggleAction* chooseB, KToggleAction* chooseC );
+   void updateFileVisibilities();
+
+   virtual void mousePressEvent( QMouseEvent* e );
+   virtual void keyPressEvent( QKeyEvent* e );
+   virtual void focusInEvent( QFocusEvent* e );
+   virtual void focusOutEvent( QFocusEvent* e );
+   virtual void contextMenuEvent( QContextMenuEvent* e );
+   QString getDirNameA();
+   QString getDirNameB();
+   QString getDirNameC();
+   QString getDirNameDest();
+
+public slots:
+   void reload();
+   void mergeCurrentFile();
+   void compareCurrentFile();
+   void slotRunOperationForAllItems();
+   void slotRunOperationForCurrentItem();
+   void mergeResultSaved(const QString& fileName);
+   void slotChooseAEverywhere();
+   void slotChooseBEverywhere();
+   void slotChooseCEverywhere();
+   void slotAutoChooseEverywhere();
+   void slotNoOpEverywhere();
+   void slotFoldAllSubdirs();
+   void slotUnfoldAllSubdirs();
+   void slotShowIdenticalFiles();
+   void slotShowDifferentFiles();
+   void slotShowFilesOnlyInA();
+   void slotShowFilesOnlyInB();
+   void slotShowFilesOnlyInC();
+
+   void slotSynchronizeDirectories();
+   void slotChooseNewerFiles();
+
+   void slotCompareExplicitlySelectedFiles();
+   void slotMergeExplicitlySelectedFiles();
+
+   // Merge current item (merge mode)
+   void slotCurrentDoNothing();
+   void slotCurrentChooseA();
+   void slotCurrentChooseB();
+   void slotCurrentChooseC();
+   void slotCurrentMerge();
+   void slotCurrentDelete();
+   // Sync current item
+   void slotCurrentCopyAToB();
+   void slotCurrentCopyBToA();
+   void slotCurrentDeleteA();
+   void slotCurrentDeleteB();
+   void slotCurrentDeleteAAndB();
+   void slotCurrentMergeToA();
+   void slotCurrentMergeToB();
+   void slotCurrentMergeToAAndB();
+
+   void slotSaveMergeState();
+   void slotLoadMergeState();
+
+signals:
+   void startDiffMerge(QString fn1,QString fn2, QString fn3, QString ofn, QString,QString,QString,TotalDiffStatus*);
+   void checkIfCanContinue( bool* pbContinue );
+   void updateAvailabilities();
+   void statusBarMessage( const QString& msg );
+protected slots:
+   void onDoubleClick( const QModelIndex& );
+   void onExpanded();
+   void        currentChanged( const QModelIndex & current, const QModelIndex & previous ); // override
+private:
+   class Data;
+   friend class Data;
+   Data* d;
+   class DirMergeItemDelegate;
+   friend class DirMergeItemDelegate;
+};
+
+class DirectoryMergeInfo : public QFrame
+{
+   Q_OBJECT
+public:
+   DirectoryMergeInfo( QWidget* pParent );
+   void setInfo(
+      const FileAccess& APath,
+      const FileAccess& BPath,
+      const FileAccess& CPath,
+      const FileAccess& DestPath,
+      MergeFileInfos& mfi );
+   QTreeWidget* getInfoList() {return m_pInfoList;}
+   virtual bool eventFilter( QObject* o, QEvent* e );
+signals:
+   void gotFocus();
+private:
+   QLabel* m_pInfoA;
+   QLabel* m_pInfoB;
+   QLabel* m_pInfoC;
+   QLabel* m_pInfoDest;
+
+   QLabel* m_pA;
+   QLabel* m_pB;
+   QLabel* m_pC;
+   QLabel* m_pDest;
+
+   QTreeWidget* m_pInfoList;
+};
+
+
+#endif
diff --git a/src-QT4/fileaccess.cpp b/src-QT4/fileaccess.cpp
new file mode 100644 (file)
index 0000000..2f0b498
--- /dev/null
@@ -0,0 +1,1819 @@
+/***************************************************************************
+ *   Copyright (C) 2003-2011 by Joachim Eibl                               *
+ *   joachim.eibl at gmx.de                                                *
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ ***************************************************************************/
+#include "stable.h"
+#include "fileaccess.h"
+#include "progress.h"
+#include "common.h"
+
+#include <QDir>
+#include <QRegExp>
+#include <QTextStream>
+#include <QProcess>
+
+#include <vector>
+#include <cstdlib>
+
+#include <klocale.h>
+#include <ktemporaryfile.h>
+#include <kio/global.h>
+#include <kio/job.h>
+#include <kio/jobclasses.h>
+#include <kmessagebox.h>
+#include <kio/jobuidelegate.h>
+#include <kio/copyjob.h>
+
+#include <sys/types.h>
+#include <sys/stat.h>
+
+#ifdef _WIN32
+#include <sys/utime.h>
+#include <io.h>
+#include <windows.h>
+#include <process.h>
+#else
+#include <unistd.h>          // Needed for creating symbolic links via symlink().
+#include <utime.h>
+#endif
+
+
+class FileAccess::Data
+{
+public:
+   Data()
+   {
+      reset();
+   }
+   void reset()
+   {
+      m_url = KUrl();
+      m_bValidData = false;
+      m_name = QString();
+      //m_creationTime = QDateTime();
+      //m_accessTime = QDateTime();
+      m_bReadable = false;
+      m_bExecutable = false;
+      m_linkTarget = "";
+      //m_fileType = -1;
+      m_bLocal = true;
+      m_pParent = 0;
+   }
+   
+   KUrl m_url;
+   bool m_bLocal;
+   bool m_bValidData;
+
+   //QDateTime m_accessTime;
+   //QDateTime m_creationTime;
+   bool m_bReadable;
+   bool m_bExecutable;
+   //long m_fileType; // for testing only
+   FileAccess* m_pParent;
+
+   QString m_linkTarget;
+   //QString m_user;
+   //QString m_group;
+   QString m_name;
+   QString m_localCopy;
+   QString m_statusText;  // Might contain an error string, when the last operation didn't succeed.
+};
+
+
+FileAccess::FileAccess( const QString& name, bool bWantToWrite )
+{
+   m_pData = 0;
+   m_bUseData = false;
+   setFile( name, bWantToWrite );
+}
+
+FileAccess::FileAccess()
+{
+   m_bUseData = false;
+   m_bExists = false;
+   m_bFile = false;
+   m_bDir  = false;
+   m_bSymLink = false;
+   m_bWritable = false;
+   m_bHidden = false;
+   m_pParent = 0;
+   m_size = 0;   
+}
+
+FileAccess::FileAccess(const FileAccess& other)
+{
+   m_pData = 0;
+   m_bUseData = false;
+   *this = other;
+}
+
+void FileAccess::createData()
+{
+   if ( d() == 0 )
+   {
+      FileAccess* pParent = m_pParent; // backup because in union with m_pData
+      m_pData = new Data();
+      m_bUseData = true;
+      m_pData->m_pParent = pParent;
+   }
+}
+
+const FileAccess& FileAccess::operator=(const FileAccess& other)
+{
+   m_size = other.m_size;
+   m_filePath = other.m_filePath;
+   m_modificationTime = other.m_modificationTime;
+   m_bSymLink = other.m_bSymLink;
+   m_bFile = other.m_bFile;
+   m_bDir = other.m_bDir;
+   m_bExists = other.m_bExists;
+   m_bWritable = other.m_bWritable;
+   m_bHidden = other.m_bHidden;
+
+   if ( other.m_bUseData )
+   {
+      createData();
+      *m_pData = *other.m_pData;
+   }
+   else
+   {
+      if ( m_bUseData )
+      {
+         delete m_pData;
+      }
+      m_bUseData = false;
+      m_pParent = other.parent(); // should be 0 anyway
+   }
+   return *this;
+}
+
+FileAccess::~FileAccess()
+{
+   if ( m_bUseData )
+   {
+      if( ! d()->m_localCopy.isEmpty() )
+      {
+         removeTempFile( d()->m_localCopy );
+      }
+      delete m_pData;
+   }
+}
+
+static QString nicePath( const QFileInfo& fi )
+{
+   QString fp = fi.filePath();
+   if ( fp.length()>2 && fp[0] == '.' && fp[1] == '/' )
+   {
+      return fp.mid(2);
+   }
+   return fp;
+}
+
+// Two kinds of optimization are applied here:
+// 1. Speed: don't ask for data as long as it is not needed or cheap to get.
+//    When opening a file it is early enough to ask for details.
+// 2. Memory usage: Don't store data that is not needed, and avoid redundancy.
+//    For recursive directory trees don't store the full path if a parent is available.
+//    Store urls only if files are not local.
+
+void FileAccess::setFile( const QFileInfo& fi, FileAccess* pParent )
+{
+   m_filePath   = pParent == 0 ? fi.absoluteFilePath() : 
+                                 nicePath( fi.filePath() ); // remove "./" at start   
+
+   m_bSymLink   = fi.isSymLink();
+   if ( m_bSymLink || (!m_bExists  && m_filePath.contains("@@") ) )
+   {
+      createData();
+   }
+
+   if ( m_bUseData )
+      d()->m_pParent = pParent;
+   else
+      m_pParent = pParent;
+   
+   if ( parent() || d() ) // if a parent is specified then we arrive here because of listing a directory
+   {
+      m_bFile      = fi.isFile();
+      m_bDir       = fi.isDir();
+      m_bExists    = fi.exists();
+      m_size       = fi.size();
+      m_modificationTime = fi.lastModified();
+      m_bHidden    = fi.isHidden();
+
+#if defined(Q_WS_WIN)
+      m_bWritable    = pParent == 0 || fi.isWritable(); // in certain situations this might become a problem though
+#else
+      m_bWritable    = fi.isWritable();
+#endif
+   }
+   
+   if ( d() != 0 )
+   {
+#if defined(Q_WS_WIN)
+      // On some windows machines in a network this takes very long.
+      // and it's not so important anyway.
+      d()->m_bReadable    = true;
+      d()->m_bExecutable  = false;
+#else
+      d()->m_bReadable    = fi.isReadable();
+      d()->m_bExecutable  = fi.isExecutable();
+#endif
+
+      //d()->m_creationTime = fi.created();
+      //d()->m_modificationTime = fi.lastModified();
+      //d()->m_accessTime = fi.lastRead();
+      d()->m_name       = fi.fileName();
+      if ( m_bSymLink )
+      {
+#ifdef _WIN32
+         d()->m_linkTarget = fi.readLink();
+#else
+         // Unfortunately Qt4 readLink always returns an absolute path, even if the link is relative
+         char s[PATH_MAX+1];
+         int len = readlink(QFile::encodeName(fi.absoluteFilePath()).constData(), s, PATH_MAX);
+         if ( len>0 )
+         {
+            s[len] = '\0';
+            d()->m_linkTarget = QFile::decodeName(s);
+         }
+         else
+         {
+            d()->m_linkTarget = fi.readLink();
+         }
+#endif
+      }
+      d()->m_bLocal = true;
+      d()->m_bValidData = true;
+      d()->m_url = KUrl( fi.filePath() );
+      if ( d()->m_url.isRelative() )
+      {
+         d()->m_url.setPath( absoluteFilePath() );
+      }
+
+      if ( !m_bExists  && absoluteFilePath().contains("@@") )
+      {
+         // Try reading a clearcase file
+         d()->m_localCopy = FileAccess::tempFileName();
+         QString cmd = "cleartool get -to \"" + d()->m_localCopy + "\"  \"" + absoluteFilePath() + "\"";
+         QProcess process;
+         process.start( cmd );
+         process.waitForFinished(-1);
+         //::system( cmd.local8Bit() );
+         QFile::setPermissions( d()->m_localCopy, QFile::ReadUser | QFile::WriteUser ); // Clearcase creates a write protected file, allow delete.
+
+         QFileInfo fi( d()->m_localCopy );
+#if defined(Q_WS_WIN)
+         d()->m_bReadable    = true;//fi.isReadable();
+         m_bWritable    = true;//fi.isWritable();
+         d()->m_bExecutable  = false;//fi.isExecutable();
+#else
+         d()->m_bReadable    = fi.isReadable();
+         d()->m_bExecutable  = fi.isExecutable();
+#endif
+         //d()->m_creationTime = fi.created();
+         //d()->m_accessTime = fi.lastRead();
+         m_bExists = fi.exists();
+         m_size = fi.size();
+      }
+   }
+}
+
+void FileAccess::setFile( const QString& name, bool bWantToWrite )
+{
+   m_bExists = false;
+   m_bFile = false;
+   m_bDir  = false;
+   m_bSymLink = false;
+   m_size = 0;
+   m_modificationTime = QDateTime();
+
+   if ( d()!=0 )
+   {  
+      d()->reset();
+      d()->m_pParent = 0;
+   }
+   else
+      m_pParent = 0;
+
+   // Note: Checking if the filename-string is empty is necessary for Win95/98/ME.
+   //       The isFile() / isDir() queries would cause the program to crash.
+   //       (This is a Win95-bug which has been corrected only in WinNT/2000/XP.)
+   if ( !name.isEmpty() )
+   {
+      KUrl url( name );
+      
+      // FileAccess tries to detect if the given name is an URL or a local file.
+      // This is a problem if the filename looks like an URL (i.e. contains a colon ':').
+      // e.g. "file:f.txt" is a valid filename.
+      // Most of the time it is sufficient to check if the file exists locally.
+      // 2 Problems remain:
+      //   1. When the local file exists and the remote location is wanted nevertheless. (unlikely)
+      //   2. When the local file doesn't exist and should be written to.
+
+      bool bExistsLocal = QDir().exists(name);
+      if ( url.isLocalFile() || url.isRelative() || !url.isValid() || bExistsLocal ) // assuming that invalid means relative
+      {
+         QString localName = name;
+
+#if defined(Q_WS_WIN)
+         if ( localName.startsWith("/tmp/") )
+         {
+            // git on Cygwin will put files in /tmp
+            // A workaround for the a native kdiff3 binary to find them...
+         
+            QString cygwinBin = getenv("CYGWIN_BIN");
+            if ( !cygwinBin.isEmpty() )
+            {
+               localName = QString("%1\\..%2").arg(cygwinBin).arg(name);
+            }
+         }
+#endif
+
+         if ( !bExistsLocal && url.isLocalFile() && name.left(5).toLower()=="file:" )
+         {
+            localName = url.path(); // I want the path without preceding "file:"
+         }
+
+         QFileInfo fi( localName );
+         setFile( fi, 0 );
+      }
+      else
+      {
+         createData();
+         d()->m_url = url;
+         d()->m_name   = d()->m_url.fileName();
+         d()->m_bLocal = false;
+
+         FileAccessJobHandler jh( this ); // A friend, which writes to the parameters of this class!
+         jh.stat(2/*all details*/, bWantToWrite); // returns bSuccess, ignored
+
+         m_filePath = name;
+         d()->m_bValidData = true; // After running stat() the variables are initialised
+                                 // and valid even if the file doesn't exist and the stat
+                                 // query failed.
+      }
+   }
+}
+
+void FileAccess::addPath( const QString& txt )
+{
+   if ( d()!=0 && d()->m_url.isValid() )
+   {
+      d()->m_url.addPath( txt );
+      setFile( d()->m_url.url() );  // reinitialise
+   }
+   else
+   {
+      QString slash = (txt.isEmpty() || txt[0]=='/') ? "" : "/";
+      setFile( absoluteFilePath() + slash + txt );
+   }
+}
+
+/*     Filetype:
+       S_IFMT     0170000   bitmask for the file type bitfields
+       S_IFSOCK   0140000   socket
+       S_IFLNK    0120000   symbolic link
+       S_IFREG    0100000   regular file
+       S_IFBLK    0060000   block device
+       S_IFDIR    0040000   directory
+       S_IFCHR    0020000   character device
+       S_IFIFO    0010000   fifo
+       S_ISUID    0004000   set UID bit
+       S_ISGID    0002000   set GID bit (see below)
+       S_ISVTX    0001000   sticky bit (see below)
+
+       Access:
+       S_IRWXU    00700     mask for file owner permissions
+       S_IRUSR    00400     owner has read permission
+       S_IWUSR    00200     owner has write permission
+       S_IXUSR    00100     owner has execute permission
+       S_IRWXG    00070     mask for group permissions
+       S_IRGRP    00040     group has read permission
+       S_IWGRP    00020     group has write permission
+       S_IXGRP    00010     group has execute permission
+       S_IRWXO    00007     mask for permissions for others (not in group)
+       S_IROTH    00004     others have read permission
+       S_IWOTH    00002     others have write permisson
+       S_IXOTH    00001     others have execute permission
+*/
+
+#ifdef KREPLACEMENTS_H
+void FileAccess::setUdsEntry( const KIO::UDSEntry& ){}  // not needed if KDE is not available
+#else
+void FileAccess::setUdsEntry( const KIO::UDSEntry& e )
+{
+   long acc = 0;
+   long fileType = 0;
+   QList< uint > fields = e.listFields();
+   for( QList< uint >::ConstIterator ei=fields.constBegin(); ei!=fields.constEnd(); ++ei )
+   {
+      uint f = *ei;
+      switch( f )
+      {
+         case KIO::UDSEntry::UDS_SIZE :              m_size   = e.numberValue(f);   break;
+         //case KIO::UDSEntry::UDS_USER :               d()->m_user   = e.stringValue(f);    break;
+         //case KIO::UDSEntry::UDS_GROUP :              d()->m_group  = e.stringValue(f);    break;
+         case KIO::UDSEntry::UDS_NAME :              m_filePath  = e.stringValue(f);    break;  // During listDir the relative path is given here.
+         case KIO::UDSEntry::UDS_MODIFICATION_TIME : m_modificationTime.setTime_t( e.numberValue(f) ); break;
+         //case KIO::UDSEntry::UDS_ACCESS_TIME :       d()->m_accessTime.setTime_t( e.numberValue(f) ); break;
+         //case KIO::UDSEntry::UDS_CREATION_TIME :     d()->m_creationTime.setTime_t( e.numberValue(f) ); break;
+         case KIO::UDSEntry::UDS_LINK_DEST :         d()->m_linkTarget       = e.stringValue(f); break;
+         case KIO::UDSEntry::UDS_ACCESS :
+         {
+            acc = e.numberValue(f);
+            d()->m_bReadable   = (acc & S_IRUSR)!=0;
+            m_bWritable      = (acc & S_IWUSR)!=0;
+            d()->m_bExecutable = (acc & S_IXUSR)!=0;
+            break;
+         }
+         case KIO::UDSEntry::UDS_FILE_TYPE :
+         {
+            fileType = e.numberValue(f);
+            m_bDir     = ( fileType & S_IFMT ) == S_IFDIR;
+            m_bFile    = ( fileType & S_IFMT ) == S_IFREG;
+            m_bSymLink = ( fileType & S_IFMT ) == S_IFLNK;
+            m_bExists  = fileType != 0;
+            //d()->m_fileType = fileType;
+            break;
+         }
+
+         case KIO::UDSEntry::UDS_URL :               // m_url = KUrl( e.stringValue(f) );
+                                           break;
+         case KIO::UDSEntry::UDS_MIME_TYPE :         break;
+         case KIO::UDSEntry::UDS_GUESSED_MIME_TYPE : break;
+         case KIO::UDSEntry::UDS_XML_PROPERTIES :    break;
+         default: break;
+      }
+   }
+
+   m_bExists = acc!=0 || fileType!=0;
+
+   d()->m_bLocal = false;
+   d()->m_bValidData = true;
+   m_bSymLink = !d()->m_linkTarget.isEmpty();
+   if ( d()->m_name.isEmpty() )
+   {
+      int pos = m_filePath.lastIndexOf('/') + 1;
+      d()->m_name = m_filePath.mid( pos );
+   }
+   m_bHidden = d()->m_name[0]=='.';
+}
+#endif
+
+
+bool FileAccess::isValid() const       
+{   
+   return d()==0 ? !m_filePath.isEmpty() : d()->m_bValidData;  
+}
+
+bool FileAccess::isFile() const        
+{
+   if ( parent() || d() )
+      return m_bFile;
+   else
+      return QFileInfo( absoluteFilePath() ).isFile();
+}
+
+bool FileAccess::isDir() const         
+{   
+   if ( parent() || d() )
+      return m_bDir;        
+   else
+      return QFileInfo( absoluteFilePath() ).isDir();
+}
+
+bool FileAccess::isSymLink() const     
+{   
+   return m_bSymLink;    
+}
+
+bool FileAccess::exists() const        
+{   
+   if ( parent() || d())
+      return m_bExists;     
+   else
+      return QFileInfo( absoluteFilePath() ).exists();
+}
+
+qint64 FileAccess::size() const        
+{
+   if ( parent() || d())
+      return m_size;
+   else
+      return QFileInfo( absoluteFilePath() ).size();
+}
+
+KUrl FileAccess::url() const           
+{  
+   if ( d()!=0 )
+      return d()->m_url;
+   else
+   {
+      KUrl url( m_filePath );
+      if ( url.isRelative() )
+      {
+         url.setPath( absoluteFilePath() );
+      }
+      return url;
+   }   
+}
+
+bool FileAccess::isLocal() const       
+{   
+   return d()==0 || d()->m_bLocal;   
+}
+
+bool FileAccess::isReadable() const    
+{
+#if defined(Q_WS_WIN)
+   // On some windows machines in a network this takes very long to find out and it's not so important anyway.
+   return true;
+#else
+   if ( d()!=0 )      
+      return d()->m_bReadable; 
+   else
+      return QFileInfo( absoluteFilePath() ).isReadable();
+#endif
+}
+
+bool FileAccess::isWritable() const    
+{
+   if ( parent() || d())
+      return m_bWritable;
+   else
+      return QFileInfo( absoluteFilePath() ).isWritable();
+}
+
+bool FileAccess::isExecutable() const    
+{
+#if defined(Q_WS_WIN)
+   // On some windows machines in a network this takes very long to find out and it's not so important anyway.
+   return true;
+#else
+   if ( d()!=0 )
+      return d()->m_bExecutable;
+   else
+      return QFileInfo( absoluteFilePath() ).isExecutable();
+#endif
+}
+
+bool FileAccess::isHidden() const      
+{  
+   if ( parent() || d() )
+      return m_bHidden;   
+   else
+      return QFileInfo( absoluteFilePath() ).isHidden();
+}
+
+QString FileAccess::readLink() const   
+{  
+   if ( d()!=0 )
+      return d()->m_linkTarget;
+   else
+      return QString();
+}
+
+QString FileAccess::absoluteFilePath() const
+{  
+   if ( parent() != 0 )
+      return parent()->absoluteFilePath() + "/" + m_filePath;
+   else
+   {
+      if ( m_filePath.isEmpty() )
+        return QString();
+      
+      if ( ! isLocal() )
+         return m_filePath; // return complete url
+
+      QFileInfo fi( m_filePath );
+      if ( fi.isAbsolute() )
+        return m_filePath;
+      else
+        return fi.absoluteFilePath(); // Probably never reached
+   }
+}  // Full abs path
+
+// Just the name-part of the path, without parent directories
+QString FileAccess::fileName() const   
+{   
+   if ( d()!=0 )
+      return d()->m_name;          
+   else if ( parent() )
+      return m_filePath;
+   else
+      return QFileInfo( m_filePath ).fileName();
+}
+
+void FileAccess::setSharedName(const QString& name)
+{
+   if ( name == m_filePath )
+      m_filePath = name; // reduce memory because string is only used once.
+}
+
+QString FileAccess::filePath() const   
+{  
+   if ( parent() && parent()->parent() )
+      return parent()->filePath() + "/" + m_filePath;
+   else
+      return m_filePath;   // The path-string that was used during construction
+}
+
+FileAccess* FileAccess::parent() const
+{
+   if ( m_bUseData )
+      return d()->m_pParent;
+   else
+      return m_pParent;
+}
+
+FileAccess::Data* FileAccess::d()
+{
+   if ( m_bUseData )
+      return m_pData;
+   else
+      return 0;
+}
+
+const FileAccess::Data* FileAccess::d() const
+{
+   if ( m_bUseData )
+      return m_pData;
+   else
+      return 0;
+}
+
+QString FileAccess::prettyAbsPath() const 
+{ 
+   return isLocal() ? absoluteFilePath() : d()->m_url.prettyUrl();    
+}
+
+/*
+QDateTime FileAccess::created() const
+{
+   if ( d()!=0 )
+   {
+      if ( isLocal() && d()->m_creationTime.isNull() )
+         const_cast<FileAccess*>(this)->d()->m_creationTime = QFileInfo( absoluteFilePath() ).created();
+      return ( d()->m_creationTime.isValid() ?  d()->m_creationTime : lastModified() );
+   }
+   else
+   {
+      QDateTime created = QFileInfo( absoluteFilePath() ).created();
+      return created.isValid() ? created : lastModified();
+   }
+}
+*/
+
+QDateTime FileAccess::lastModified() const
+{
+   if ( isLocal() && m_modificationTime.isNull() )
+      const_cast<FileAccess*>(this)->m_modificationTime = QFileInfo( absoluteFilePath() ).lastModified();
+   return m_modificationTime;
+}
+
+/*
+QDateTime FileAccess::lastRead() const
+{
+   QDateTime accessTime = d()!=0 ? d()->m_accessTime : QFileInfo( absoluteFilePath() ).lastRead();
+   return ( accessTime.isValid() ?  accessTime : lastModified() );
+}
+*/
+
+static bool interruptableReadFile( QFile& f, void* pDestBuffer, unsigned long maxLength )
+{
+   ProgressProxy pp;
+   const unsigned long maxChunkSize = 100000;
+   unsigned long i=0;
+   pp.setMaxNofSteps( maxLength / maxChunkSize + 1 );
+   while( i<maxLength )
+   {
+      unsigned long nextLength = min2( maxLength-i, maxChunkSize );
+      unsigned long reallyRead = f.read( (char*)pDestBuffer+i, nextLength );
+      if ( reallyRead != nextLength )
+      {
+         return false;
+      }
+      i+=reallyRead;
+
+      pp.setCurrent( double(i)/maxLength );
+      if ( pp.wasCancelled() ) 
+         return false;
+   }
+   return true;
+}
+
+bool FileAccess::readFile( void* pDestBuffer, unsigned long maxLength )
+{
+   if ( d()!=0 && !d()->m_localCopy.isEmpty() )
+   {
+      QFile f( d()->m_localCopy );
+      if ( f.open( QIODevice::ReadOnly ) )
+         return interruptableReadFile(f, pDestBuffer, maxLength);// maxLength == f.read( (char*)pDestBuffer, maxLength );
+   }
+   else if (isLocal())
+   {
+      QFile f( absoluteFilePath() );
+
+      if ( f.open( QIODevice::ReadOnly ) )
+         return interruptableReadFile(f, pDestBuffer, maxLength); //maxLength == f.read( (char*)pDestBuffer, maxLength );
+   }
+   else
+   {
+      FileAccessJobHandler jh( this );
+      return jh.get( pDestBuffer, maxLength );
+   }
+   return false;
+}
+
+bool FileAccess::writeFile( const void* pSrcBuffer, unsigned long length )
+{
+   ProgressProxy pp;
+   if ( isLocal() )
+   {
+      QFile f( absoluteFilePath() );
+      if ( f.open( QIODevice::WriteOnly ) )
+      {
+         const unsigned long maxChunkSize = 100000;
+         pp.setMaxNofSteps( length / maxChunkSize + 1 );
+         unsigned long i=0;
+         while( i<length )
+         {
+            unsigned long nextLength = min2( length-i, maxChunkSize );
+            unsigned long reallyWritten = f.write( (char*)pSrcBuffer+i, nextLength );
+            if ( reallyWritten != nextLength )
+            {
+               return false;
+            }
+            i+=reallyWritten;
+
+            pp.step();
+            if ( pp.wasCancelled() ) 
+               return false;
+         }
+         f.close();
+#ifndef _WIN32
+         if ( isExecutable() )  // value is true if the old file was executable
+         {
+            // Preserve attributes
+            f.setPermissions(f.permissions() | QFile::ExeUser);
+            //struct stat srcFileStatus;
+            //int statResult = ::stat( filePath().toLocal8Bit().constData(), &srcFileStatus );
+            //if (statResult==0)
+            //{
+            //   ::chmod ( filePath().toLocal8Bit().constData(), srcFileStatus.st_mode | S_IXUSR );
+            //}
+         }
+#endif
+
+         return true;
+      }
+   }
+   else
+   {
+      FileAccessJobHandler jh( this );
+      return jh.put( pSrcBuffer, length, true /*overwrite*/ );
+   }
+   return false;
+}
+
+bool FileAccess::copyFile( const QString& dest )
+{
+   FileAccessJobHandler jh( this );
+   return jh.copyFile( dest );   // Handles local and remote copying.
+}
+
+bool FileAccess::rename( const QString& dest )
+{
+   FileAccessJobHandler jh( this );
+   return jh.rename( dest );
+}
+
+bool FileAccess::removeFile()
+{
+   if ( isLocal() )
+   {
+      return QDir().remove( absoluteFilePath() );
+   }
+   else
+   {
+      FileAccessJobHandler jh( this );
+      return jh.removeFile( absoluteFilePath() );
+   }
+}
+
+bool FileAccess::removeFile( const QString& name ) // static
+{
+   return FileAccess(name).removeFile();
+}
+
+bool FileAccess::listDir( t_DirectoryList* pDirList, bool bRecursive, bool bFindHidden,
+   const QString& filePattern, const QString& fileAntiPattern, const QString& dirAntiPattern,
+   bool bFollowDirLinks, bool bUseCvsIgnore )
+{
+   FileAccessJobHandler jh( this );
+   return jh.listDir( pDirList, bRecursive, bFindHidden, filePattern, fileAntiPattern,
+                      dirAntiPattern, bFollowDirLinks, bUseCvsIgnore );
+}
+
+QString FileAccess::tempFileName()
+{
+   #ifdef KREPLACEMENTS_H
+
+      QString fileName;
+      #if defined(_WIN32) || defined(Q_OS_OS2)
+         QString tmpDir = getenv("TEMP");
+      #else
+         QString tmpDir = "/tmp";
+      #endif
+      for(int i=0; ;++i)
+      {
+         // short filenames for WIN98 because for system() the command must not exceed 120 characters.
+         #ifdef _WIN32
+         if ( QSysInfo::WindowsVersion & QSysInfo::WV_DOS_based ) // Win95, 98, ME
+            fileName = tmpDir + "\\" + QString::number(i);
+         else
+            fileName = tmpDir + "/kdiff3_" + QString::number(_getpid()) + "_" + QString::number(i) +".tmp";
+         #else
+            fileName = tmpDir + "/kdiff3_" + QString::number(getpid()) + "_" + QString::number(i) +".tmp";
+         #endif
+         if ( ! FileAccess::exists(fileName) && 
+              QFile(fileName).open(QIODevice::WriteOnly) ) // open, truncate and close the file, true if successful
+         {
+            break;
+         }
+      }
+      return QDir::toNativeSeparators(fileName+".2");
+
+   #else  // using KDE
+
+      KTemporaryFile tmpFile;
+      tmpFile.open();
+      //tmpFile.setAutoDelete( true );  // We only want the name. Delete the precreated file immediately.
+      QString name = tmpFile.fileName()+".2";
+      tmpFile.close();
+      return name;
+
+   #endif
+}
+
+bool FileAccess::removeTempFile( const QString& name ) // static
+{
+   if (name.endsWith(".2"))
+      FileAccess(name.left(name.length()-2)).removeFile();
+   return FileAccess(name).removeFile();
+}
+
+
+bool FileAccess::makeDir( const QString& dirName )
+{
+   FileAccessJobHandler fh(0);
+   return fh.mkDir( dirName );
+}
+
+bool FileAccess::removeDir( const QString& dirName )
+{
+   FileAccessJobHandler fh(0);
+   return fh.rmDir( dirName );
+}
+
+#if defined(_WIN32) || defined(Q_OS_OS2)
+bool FileAccess::symLink( const QString& /*linkTarget*/, const QString& /*linkLocation*/ )
+{
+   return false;
+}
+#else
+bool FileAccess::symLink( const QString& linkTarget, const QString& linkLocation )
+{
+   return 0==::symlink( linkTarget.toLocal8Bit().constData(), linkLocation.toLocal8Bit().constData() );
+   //FileAccessJobHandler fh(0);
+   //return fh.symLink( linkTarget, linkLocation );
+}
+#endif
+
+bool FileAccess::exists( const QString& name )
+{
+   FileAccess fa( name );
+   return fa.exists();
+}
+
+// If the size couldn't be determined by stat() then the file is copied to a local temp file.
+qint64 FileAccess::sizeForReading()
+{
+   if ( !isLocal() && m_size == 0 )
+   {
+      // Size couldn't be determined. Copy the file to a local temp place.
+      QString localCopy = tempFileName();
+      bool bSuccess = copyFile( localCopy );
+      if ( bSuccess )
+      {
+         QFileInfo fi( localCopy );
+         m_size = fi.size();
+         d()->m_localCopy = localCopy;
+         return m_size;
+      }
+      else
+      {
+         return 0;
+      }
+   }
+   else
+      return size();
+}
+
+QString FileAccess::getStatusText()
+{
+   return d()==0 ? QString() : d()->m_statusText;
+}
+
+void FileAccess::setStatusText( const QString& s )
+{
+   if (  ! s.isEmpty() || d() != 0 )
+   {
+      createData();
+      d()->m_statusText = s;
+   }
+}
+
+QString FileAccess::cleanPath( const QString& path ) // static
+{
+   KUrl url(path);
+   if ( url.isLocalFile() || ! url.isValid() )
+   {
+      return QDir().cleanPath( path );
+   }
+   else
+   {
+      return path;
+   }
+}
+
+bool FileAccess::createBackup( const QString& bakExtension )
+{
+   if ( exists() )
+   {
+      createData();
+      setFile( absoluteFilePath() ); // make sure Data is initialized
+      // First rename the existing file to the bak-file. If a bak-file file exists, delete that.
+      QString bakName = absoluteFilePath() + bakExtension;
+      FileAccess bakFile( bakName, true /*bWantToWrite*/ );
+      if ( bakFile.exists() )
+      {
+         bool bSuccess = bakFile.removeFile();
+         if ( !bSuccess )
+         {
+            setStatusText( i18n("While trying to make a backup, deleting an older backup failed. \nFilename: ") + bakName );
+            return false;
+         }
+      }
+      bool bSuccess = rename( bakName );
+      if (!bSuccess)
+      {
+         setStatusText( i18n("While trying to make a backup, renaming failed. \nFilenames: ") +
+               absoluteFilePath() + " -> " + bakName );
+         return false;
+      }
+   }
+   return true;
+}
+
+FileAccessJobHandler::FileAccessJobHandler( FileAccess* pFileAccess )
+{
+   m_pFileAccess = pFileAccess;
+   m_bSuccess = false;
+}
+
+bool FileAccessJobHandler::stat( int detail, bool bWantToWrite )
+{
+   m_bSuccess = false;
+   m_pFileAccess->setStatusText( QString() );
+   KIO::StatJob* pStatJob = KIO::stat( m_pFileAccess->url(), 
+         bWantToWrite ? KIO::StatJob::DestinationSide : KIO::StatJob::SourceSide, 
+         detail, KIO::HideProgressInfo );
+
+   connect( pStatJob, SIGNAL(result(KJob*)), this, SLOT(slotStatResult(KJob*)));
+
+   ProgressProxy::enterEventLoop( pStatJob, i18n("Getting file status: %1",m_pFileAccess->prettyAbsPath()) );
+
+   return m_bSuccess;
+}
+
+void FileAccessJobHandler::slotStatResult(KJob* pJob)
+{
+   if ( pJob->error() )
+   {
+      //pJob->uiDelegate()->showErrorMessage();
+      m_pFileAccess->m_bExists = false;
+      m_bSuccess = true;
+   }
+   else
+   {
+      m_bSuccess = true;
+
+      m_pFileAccess->d()->m_bValidData = true;
+      const KIO::UDSEntry e = static_cast<KIO::StatJob*>(pJob)->statResult();
+
+      m_pFileAccess->setUdsEntry( e );
+   }
+
+   ProgressProxy::exitEventLoop();
+}
+
+
+bool FileAccessJobHandler::get(void* pDestBuffer, long maxLength )
+{
+   ProgressProxyExtender pp; // Implicitly used in slotPercent()
+   if ( maxLength>0 && !pp.wasCancelled() )
+   {
+      KIO::TransferJob* pJob = KIO::get( m_pFileAccess->url(), KIO::NoReload );
+      m_transferredBytes = 0;
+      m_pTransferBuffer = (char*)pDestBuffer;
+      m_maxLength = maxLength;
+      m_bSuccess = false;
+      m_pFileAccess->setStatusText( QString() );
+
+      connect( pJob, SIGNAL(result(KJob*)), this, SLOT(slotSimpleJobResult(KJob*)));
+      connect( pJob, SIGNAL(data(KJob*,const QByteArray &)), this, SLOT(slotGetData(KJob*, const QByteArray&)));
+      connect( pJob, SIGNAL(percent(KJob*,unsigned long)), &pp, SLOT(slotPercent(KJob*, unsigned long)));
+
+      ProgressProxy::enterEventLoop( pJob, i18n("Reading file: %1",m_pFileAccess->prettyAbsPath()) );
+      return m_bSuccess;
+   }
+   else
+      return true;
+}
+
+void FileAccessJobHandler::slotGetData( KJob* pJob, const QByteArray& newData )
+{
+   if ( pJob->error() )
+   {
+      pJob->uiDelegate()->showErrorMessage();
+   }
+   else
+   {
+      qint64 length = min2( qint64(newData.size()), m_maxLength - m_transferredBytes );
+      ::memcpy( m_pTransferBuffer + m_transferredBytes, newData.data(), newData.size() );
+      m_transferredBytes += length;
+   }
+}
+
+bool FileAccessJobHandler::put(const void* pSrcBuffer, long maxLength, bool bOverwrite, bool bResume, int permissions )
+{
+   ProgressProxyExtender pp; // Implicitly used in slotPercent()
+   if ( maxLength>0 )
+   {
+      KIO::TransferJob* pJob = KIO::put( m_pFileAccess->url(), permissions, 
+         KIO::HideProgressInfo | (bOverwrite ? KIO::Overwrite : KIO::DefaultFlags) | (bResume ? KIO::Resume : KIO::DefaultFlags) );
+      m_transferredBytes = 0;
+      m_pTransferBuffer = (char*)pSrcBuffer;
+      m_maxLength = maxLength;
+      m_bSuccess = false;
+      m_pFileAccess->setStatusText( QString() );
+
+      connect( pJob, SIGNAL(result(KJob*)), this, SLOT(slotPutJobResult(KJob*)));
+      connect( pJob, SIGNAL(dataReq(KIO::Job*, QByteArray&)), this, SLOT(slotPutData(KIO::Job*, QByteArray&)));
+      connect( pJob, SIGNAL(percent(KJob*,unsigned long)), &pp, SLOT(slotPercent(KJob*, unsigned long)));
+
+      ProgressProxy::enterEventLoop( pJob, i18n("Writing file: %1",m_pFileAccess->prettyAbsPath()) );
+      return m_bSuccess;
+   }
+   else
+      return true;
+}
+
+void FileAccessJobHandler::slotPutData( KIO::Job* pJob, QByteArray& data )
+{
+   if ( pJob->error() )
+   {
+      pJob->uiDelegate()->showErrorMessage();
+   }
+   else
+   {
+      qint64 maxChunkSize = 100000;
+      qint64 length = min2( maxChunkSize, m_maxLength - m_transferredBytes );
+      data.resize( length );
+      if ( data.size()==length )
+      {
+         if ( length>0 )
+         {
+            ::memcpy( data.data(), m_pTransferBuffer + m_transferredBytes, data.size() );
+            m_transferredBytes += length;
+         }
+      }
+      else
+      {
+         KMessageBox::error( ProgressProxy::getDialog(), i18n("Out of memory") );
+         data.resize(0);
+         m_bSuccess = false;
+      }
+   }
+}
+
+void FileAccessJobHandler::slotPutJobResult(KJob* pJob)
+{
+   if ( pJob->error() )
+   {
+      pJob->uiDelegate()->showErrorMessage();
+   }
+   else
+   {
+      m_bSuccess = (m_transferredBytes == m_maxLength); // Special success condition
+   }
+   ProgressProxy::exitEventLoop();  // Close the dialog, return from exec()
+}
+
+bool FileAccessJobHandler::mkDir( const QString& dirName )
+{
+   KUrl dirURL = KUrl( dirName );
+   if ( dirName.isEmpty() )
+      return false;
+   else if ( dirURL.isLocalFile() || dirURL.isRelative() )
+   {
+      return QDir().mkdir( dirURL.path() );
+   }
+   else
+   {
+      m_bSuccess = false;
+      KIO::SimpleJob* pJob = KIO::mkdir( dirURL );
+      connect( pJob, SIGNAL(result(KJob*)), this, SLOT(slotSimpleJobResult(KJob*)));
+
+      ProgressProxy::enterEventLoop( pJob, i18n("Making directory: %1", dirName) );
+      return m_bSuccess;
+   }
+}
+
+bool FileAccessJobHandler::rmDir( const QString& dirName )
+{
+   KUrl dirURL = KUrl( dirName );
+   if ( dirName.isEmpty() )
+      return false;
+   else if ( dirURL.isLocalFile() )
+   {
+      return QDir().rmdir( dirURL.path() );
+   }
+   else
+   {
+      m_bSuccess = false;
+      KIO::SimpleJob* pJob = KIO::rmdir( dirURL );
+      connect( pJob, SIGNAL(result(KJob*)), this, SLOT(slotSimpleJobResult(KJob*)));
+
+      ProgressProxy::enterEventLoop(pJob, i18n("Removing directory: %1",dirName));
+      return m_bSuccess;
+   }
+}
+
+bool FileAccessJobHandler::removeFile( const QString& fileName )
+{
+   if ( fileName.isEmpty() )
+      return false;
+   else
+   {
+      m_bSuccess = false;
+      KIO::SimpleJob* pJob = KIO::file_delete( fileName, KIO::HideProgressInfo );
+      connect( pJob, SIGNAL(result(KJob*)), this, SLOT(slotSimpleJobResult(KJob*)));
+
+      ProgressProxy::enterEventLoop( pJob, i18n("Removing file: %1",fileName) );
+      return m_bSuccess;
+   }
+}
+
+bool FileAccessJobHandler::symLink( const QString& linkTarget, const QString& linkLocation )
+{
+   if ( linkTarget.isEmpty() || linkLocation.isEmpty() )
+      return false;
+   else
+   {
+      m_bSuccess = false;
+      KIO::CopyJob* pJob = KIO::link( linkTarget, linkLocation, KIO::HideProgressInfo );
+      connect( pJob, SIGNAL(result(KJob*)), this, SLOT(slotSimpleJobResult(KJob*)));
+
+      ProgressProxy::enterEventLoop( pJob,
+         i18n("Creating symbolic link: %1 -> %2",linkLocation,linkTarget) );
+      return m_bSuccess;
+   }
+}
+
+bool FileAccessJobHandler::rename( const QString& dest )
+{
+   if ( dest.isEmpty() )
+      return false;
+
+   KUrl kurl( dest );
+   if ( kurl.isRelative() )
+      kurl = KUrl( QDir().absoluteFilePath(dest) ); // assuming that invalid means relative
+
+   if ( m_pFileAccess->isLocal() && kurl.isLocalFile() )
+   {
+      return QDir().rename( m_pFileAccess->absoluteFilePath(), kurl.path() );
+   }
+   else
+   {
+      ProgressProxyExtender pp;
+      int permissions=-1;
+      m_bSuccess = false;
+      KIO::FileCopyJob* pJob = KIO::file_move( m_pFileAccess->url(), kurl, permissions, KIO::HideProgressInfo );
+      connect( pJob, SIGNAL(result(KJob*)), this, SLOT(slotSimpleJobResult(KJob*)));
+      connect( pJob, SIGNAL(percent(KJob*,unsigned long)), &pp, SLOT(slotPercent(KJob*, unsigned long)));
+
+      ProgressProxy::enterEventLoop( pJob,
+         i18n("Renaming file: %1 -> %2",m_pFileAccess->prettyAbsPath(),dest) );
+      return m_bSuccess;
+   }
+}
+
+void FileAccessJobHandler::slotSimpleJobResult(KJob* pJob)
+{
+   if ( pJob->error() )
+   {
+      pJob->uiDelegate()->showErrorMessage();
+   }
+   else
+   {
+      m_bSuccess = true;
+   }
+   ProgressProxy::exitEventLoop();  // Close the dialog, return from exec()
+}
+
+
+// Copy local or remote files.
+bool FileAccessJobHandler::copyFile( const QString& dest )
+{
+   ProgressProxyExtender pp;
+   KUrl destUrl( dest );
+   m_pFileAccess->setStatusText( QString() );
+   if ( ! m_pFileAccess->isLocal() || ! destUrl.isLocalFile() ) // if either url is nonlocal
+   {
+      int permissions = (m_pFileAccess->isExecutable()?0111:0)+(m_pFileAccess->isWritable()?0222:0)+(m_pFileAccess->isReadable()?0444:0);
+      m_bSuccess = false;
+      KIO::FileCopyJob* pJob = KIO::file_copy ( m_pFileAccess->url(), destUrl, permissions, KIO::HideProgressInfo );
+      connect( pJob, SIGNAL(result(KJob*)), this, SLOT(slotSimpleJobResult(KJob*)));
+      connect( pJob, SIGNAL(percent(KJob*,unsigned long)), &pp, SLOT(slotPercent(KJob*, unsigned long)));
+      ProgressProxy::enterEventLoop( pJob,
+         i18n("Copying file: %1 -> %2",m_pFileAccess->prettyAbsPath(),dest) );
+
+      return m_bSuccess;
+      // Note that the KIO-slave preserves the original date, if this is supported.
+   }
+
+   // Both files are local:
+   QString srcName = m_pFileAccess->absoluteFilePath();
+   QString destName = dest;
+   QFile srcFile( srcName );
+   QFile destFile( destName );
+   bool bReadSuccess = srcFile.open( QIODevice::ReadOnly );
+   if ( bReadSuccess == false )
+   {
+      m_pFileAccess->setStatusText( i18n("Error during file copy operation: Opening file for reading failed. Filename: %1",srcName) );
+      return false;
+   }
+   bool bWriteSuccess = destFile.open( QIODevice::WriteOnly );
+   if ( bWriteSuccess == false )
+   {
+      m_pFileAccess->setStatusText( i18n("Error during file copy operation: Opening file for writing failed. Filename: %1",destName) );
+      return false;
+   }
+
+   std::vector<char> buffer(100000);
+   qint64 bufSize = buffer.size();
+   qint64 srcSize = srcFile.size();
+   while ( srcSize > 0 && !pp.wasCancelled() )
+   {
+      qint64 readSize = srcFile.read( &buffer[0], min2( srcSize, bufSize ) );
+      if ( readSize==-1 || readSize==0 )
+      {
+         m_pFileAccess->setStatusText( i18n("Error during file copy operation: Reading failed. Filename: %1",srcName) );
+         return false;
+      }
+      srcSize -= readSize;
+      while ( readSize > 0 )
+      {
+         qint64 writeSize = destFile.write( &buffer[0], readSize );
+         if ( writeSize==-1 || writeSize==0 )
+         {
+            m_pFileAccess->setStatusText( i18n("Error during file copy operation: Writing failed. Filename: %1",destName) );
+            return false;
+         }
+         readSize -= writeSize;
+      }
+      destFile.flush();
+      pp.setCurrent( (double)(srcFile.size()-srcSize)/srcFile.size(), false );
+   }
+   srcFile.close();
+   destFile.close();
+
+   // Update the times of the destFile
+#ifdef _WIN32
+   struct _stat srcFileStatus;
+   int statResult = ::_stat( srcName.toLocal8Bit().constData(), &srcFileStatus );
+   if (statResult==0)
+   {
+      _utimbuf destTimes;
+      destTimes.actime = srcFileStatus.st_atime;/* time of last access */
+      destTimes.modtime = srcFileStatus.st_mtime;/* time of last modification */
+
+      _utime ( destName.toLocal8Bit().constData(), &destTimes );
+      _chmod ( destName.toLocal8Bit().constData(), srcFileStatus.st_mode );
+   }
+#else
+   struct stat srcFileStatus;
+   int statResult = ::stat( srcName.toLocal8Bit().constData(), &srcFileStatus );
+   if (statResult==0)
+   {
+      utimbuf destTimes;
+      destTimes.actime = srcFileStatus.st_atime;/* time of last access */
+      destTimes.modtime = srcFileStatus.st_mtime;/* time of last modification */
+
+      utime ( destName.toLocal8Bit().constData(), &destTimes );
+      chmod ( destName.toLocal8Bit().constData(), srcFileStatus.st_mode );
+   }
+#endif
+   return true;
+}
+
+bool wildcardMultiMatch( const QString& wildcard, const QString& testString, bool bCaseSensitive )
+{
+   static QHash<QString,QRegExp> s_patternMap;
+
+   QStringList sl = wildcard.split( ";" );
+
+   for ( QStringList::Iterator it = sl.begin(); it != sl.end(); ++it )
+   {
+      QHash<QString,QRegExp>::iterator patIt = s_patternMap.find( *it );
+      if ( patIt == s_patternMap.end() )
+      {
+         QRegExp pattern( *it, bCaseSensitive ? Qt::CaseSensitive : Qt::CaseInsensitive, QRegExp::Wildcard );
+         patIt = s_patternMap.insert( *it, pattern );
+      }
+      
+      if ( patIt.value().exactMatch( testString ) )
+         return true;
+   }
+
+   return false;
+}
+
+
+// class CvsIgnoreList from Cervisia cvsdir.cpp
+//    Copyright (C) 1999-2002 Bernd Gehrmann <bernd at mail.berlios.de>
+// with elements from class StringMatcher
+//    Copyright (c) 2003 Andre Woebbeking <Woebbeking at web.de>
+// Modifications for KDiff3 by Joachim Eibl
+class CvsIgnoreList
+{
+public:
+    CvsIgnoreList(){}
+    void init(FileAccess& dir, bool bUseLocalCvsIgnore );
+    bool matches(const QString& fileName, bool bCaseSensitive ) const;
+
+private:
+    void addEntriesFromString(const QString& str);
+    void addEntriesFromFile(const QString& name);
+    void addEntry(const QString& entry);
+
+    QStringList m_exactPatterns;
+    QStringList m_startPatterns;
+    QStringList m_endPatterns;
+    QStringList m_generalPatterns;
+};
+
+
+void CvsIgnoreList::init( FileAccess& dir, bool bUseLocalCvsIgnore )
+{
+   static const char *ignorestr = ". .. core RCSLOG tags TAGS RCS SCCS .make.state "
+           ".nse_depinfo #* .#* cvslog.* ,* CVS CVS.adm .del-* *.a *.olb *.o *.obj "
+           "*.so *.Z *~ *.old *.elc *.ln *.bak *.BAK *.orig *.rej *.exe _$* *$";
+
+   addEntriesFromString(QString::fromLatin1(ignorestr));
+   addEntriesFromFile(QDir::homePath() + "/.cvsignore");
+   addEntriesFromString(QString::fromLocal8Bit(::getenv("CVSIGNORE")));
+
+   if (bUseLocalCvsIgnore)
+   {
+      FileAccess file(dir);
+      file.addPath( ".cvsignore" );
+      int size = file.exists() ? file.sizeForReading() : 0;
+      if ( size>0 )
+      {
+         char* buf=new char[size];
+         if (buf!=0)
+         {
+            file.readFile( buf, size );
+            int pos1 = 0;
+            for ( int pos = 0; pos<=size; ++pos )
+            {
+               if( pos==size || buf[pos]==' ' || buf[pos]=='\t' || buf[pos]=='\n' || buf[pos]=='\r' )
+               {
+                  if (pos>pos1)
+                  {
+                     addEntry( QString::fromLatin1( &buf[pos1], pos-pos1 ) );
+                  }
+                  ++pos1;
+               }
+            }
+            delete buf;
+         }
+      }
+   }
+}
+
+
+void CvsIgnoreList::addEntriesFromString(const QString& str)
+{
+    int posLast(0);
+    int pos;
+    while ((pos = str.indexOf(' ', posLast)) >= 0)
+    {
+        if (pos > posLast)
+            addEntry(str.mid(posLast, pos - posLast));
+        posLast = pos + 1;
+    }
+
+    if (posLast < static_cast<int>(str.length()))
+        addEntry(str.mid(posLast));
+}
+
+
+void CvsIgnoreList::addEntriesFromFile(const QString &name)
+{
+    QFile file(name);
+
+    if( file.open(QIODevice::ReadOnly) )
+    {
+        QTextStream stream(&file);
+        while( !stream.atEnd() )
+        {
+            addEntriesFromString(stream.readLine());
+        }
+    }
+}
+
+void CvsIgnoreList::addEntry(const QString& pattern)
+{
+   if (pattern != QString("!"))
+   {
+      if (pattern.isEmpty())    return;
+
+      // The general match is general but slow.
+      // Special tests for '*' and '?' at the beginning or end of a pattern
+      // allow fast checks.
+
+      // Count number of '*' and '?'
+      unsigned int nofMetaCharacters = 0;
+
+      const QChar* pos;
+      pos = pattern.unicode();
+      const QChar* posEnd;
+      posEnd=pos + pattern.length();
+      while (pos < posEnd)
+      {
+         if( *pos==QChar('*') || *pos==QChar('?') )  ++nofMetaCharacters;
+         ++pos;
+      }
+
+      if ( nofMetaCharacters==0 )
+      {
+         m_exactPatterns.append(pattern);
+      }
+      else if ( nofMetaCharacters==1 )
+      {
+         if ( pattern.at(0) == QChar('*') )
+         {
+            m_endPatterns.append( pattern.right( pattern.length() - 1) );
+         }
+         else if (pattern.at(pattern.length() - 1) == QChar('*'))
+         {
+            m_startPatterns.append( pattern.left( pattern.length() - 1) );
+         }
+         else
+         {
+            m_generalPatterns.append(pattern.toLocal8Bit());
+         }
+      }
+      else
+      {
+         m_generalPatterns.append(pattern.toLocal8Bit());
+      }
+   }
+   else
+   {
+      m_exactPatterns.clear();
+      m_startPatterns.clear();
+      m_endPatterns.clear();
+      m_generalPatterns.clear();
+   }
+}
+
+bool CvsIgnoreList::matches(const QString& text, bool bCaseSensitive ) const
+{
+    if ( m_exactPatterns.indexOf(text) >=0 )
+    {
+        return true;
+    }
+
+    QStringList::ConstIterator it;
+    QStringList::ConstIterator itEnd;
+    for ( it=m_startPatterns.begin(), itEnd=m_startPatterns.end(); it != itEnd; ++it)
+    {
+        if (text.startsWith(*it))
+        {
+            return true;
+        }
+    }
+
+    for ( it = m_endPatterns.begin(), itEnd=m_endPatterns.end(); it != itEnd; ++it)
+    {
+        if (text.mid( text.length() - (*it).length() )==*it)  //(text.endsWith(*it))
+        {
+            return true;
+        }
+    }
+
+    /*
+    for (QValueList<QCString>::const_iterator it(m_generalPatterns.begin()),
+                                              itEnd(m_generalPatterns.end());
+         it != itEnd; ++it)
+    {
+        if (::fnmatch(*it, text.local8Bit(), FNM_PATHNAME) == 0)
+        {
+            return true;
+        }
+    }
+    */
+
+
+   for ( it = m_generalPatterns.begin(); it != m_generalPatterns.end(); ++it )
+   {
+      QRegExp pattern( *it, bCaseSensitive ? Qt::CaseSensitive : Qt::CaseInsensitive, QRegExp::Wildcard );
+      if ( pattern.exactMatch( text ) )
+         return true;
+   }
+
+   return false;
+}
+
+static bool cvsIgnoreExists( t_DirectoryList* pDirList )
+{
+   t_DirectoryList::iterator i;
+   for( i = pDirList->begin(); i!=pDirList->end(); ++i )
+   {
+      if ( i->fileName()==".cvsignore" )
+         return true;
+   }
+   return false;
+}
+
+bool FileAccessJobHandler::listDir( t_DirectoryList* pDirList, bool bRecursive, bool bFindHidden, const QString& filePattern,
+   const QString& fileAntiPattern, const QString& dirAntiPattern, bool bFollowDirLinks, bool bUseCvsIgnore )
+{
+   ProgressProxyExtender pp;
+   m_pDirList = pDirList;
+   m_pDirList->clear();
+   m_bFindHidden = bFindHidden;
+   m_bRecursive = bRecursive;
+   m_bFollowDirLinks = bFollowDirLinks;  // Only relevant if bRecursive==true.
+   m_fileAntiPattern = fileAntiPattern;
+   m_filePattern = filePattern;
+   m_dirAntiPattern = dirAntiPattern;
+
+   if ( pp.wasCancelled() )
+      return true; // Cancelled is not an error.
+
+   pp.setInformation( i18n("Reading directory: ") + m_pFileAccess->absoluteFilePath(), 0, false );
+
+   if( m_pFileAccess->isLocal() )
+   {
+      QString currentPath = QDir::currentPath();
+      m_bSuccess = QDir::setCurrent( m_pFileAccess->absoluteFilePath() );
+      if ( m_bSuccess )
+      {
+#ifndef _WIN32
+         m_bSuccess = true;
+         QDir dir( "." );
+
+         dir.setSorting( QDir::Name | QDir::DirsFirst );
+         dir.setFilter( QDir::Files | QDir::Dirs | /* from KDE3 QDir::TypeMaskDirs | */ QDir::Hidden | QDir::System );
+
+         QFileInfoList fiList = dir.entryInfoList();
+         if ( fiList.isEmpty() )
+         {
+            // No Permission to read directory or other error.
+            m_bSuccess = false;
+         }
+         else
+         {
+            foreach ( QFileInfo fi, fiList )       // for each file...
+            {
+               if ( fi.fileName() == "." ||  fi.fileName()==".." )
+                  continue;
+
+               FileAccess fa;
+               fa.setFile( fi, m_pFileAccess );
+               pDirList->push_back( fa );
+            }
+         }
+#else
+         QString pattern ="*.*";
+         WIN32_FIND_DATA findData;
+
+         Qt::HANDLE searchHandle = FindFirstFileW( (const wchar_t*)pattern.utf16(), &findData );
+
+         if ( searchHandle != INVALID_HANDLE_VALUE )
+         {
+            QString absPath = m_pFileAccess->absoluteFilePath();
+            QString relPath = m_pFileAccess->filePath();
+            bool bFirst=true;
+            while( ! pp.wasCancelled() )
+            {
+               if (!bFirst)
+               {
+                  if ( ! FindNextFileW(searchHandle,&findData) )
+                     break;
+               }
+               bFirst = false;
+               FileAccess fa;
+
+               fa.m_filePath = QString::fromUtf16((const ushort*)findData.cFileName);
+               if ( fa.m_filePath!="." && fa.m_filePath!=".." )
+               {               
+                  fa.m_size = ( qint64( findData.nFileSizeHigh ) << 32 ) + findData.nFileSizeLow;
+
+                  FILETIME ft;
+                  SYSTEMTIME t;
+                  FileTimeToLocalFileTime( &findData.ftLastWriteTime, &ft ); FileTimeToSystemTime(&ft,&t);
+                  fa.m_modificationTime = QDateTime( QDate(t.wYear, t.wMonth, t.wDay), QTime(t.wHour, t.wMinute, t.wSecond) );
+                  //FileTimeToLocalFileTime( &findData.ftLastAccessTime, &ft ); FileTimeToSystemTime(&ft,&t);
+                  //fa.m_accessTime       = QDateTime( QDate(t.wYear, t.wMonth, t.wDay), QTime(t.wHour, t.wMinute, t.wSecond) );
+                  //FileTimeToLocalFileTime( &findData.ftCreationTime, &ft ); FileTimeToSystemTime(&ft,&t);
+                  //fa.m_creationTime     = QDateTime( QDate(t.wYear, t.wMonth, t.wDay), QTime(t.wHour, t.wMinute, t.wSecond) );
+
+                  int  a = findData.dwFileAttributes;
+                  fa.m_bWritable   = ( a & FILE_ATTRIBUTE_READONLY) == 0;
+                  fa.m_bDir        = ( a & FILE_ATTRIBUTE_DIRECTORY ) != 0;
+                  fa.m_bFile       = !fa.m_bDir;
+                  fa.m_bHidden     = ( a & FILE_ATTRIBUTE_HIDDEN) != 0;
+
+                  //fa.m_bExecutable = false; // Useless on windows
+                  fa.m_bExists     = true;
+                  //fa.m_bReadable   = true;
+                  //fa.m_bLocal      = true;
+                  //fa.m_bValidData  = true;
+                  fa.m_bSymLink    = false;
+                  //fa.m_fileType    = 0;
+
+
+                  //fa.m_filePath = fa.m_name;
+                  //fa.m_absoluteFilePath = absPath + "/" + fa.m_name;
+                  //fa.m_url.setPath( fa.m_absoluteFilePath );
+                  if ( fa.d() )
+                     fa.m_pData->m_pParent = m_pFileAccess;
+                  else
+                     fa.m_pParent = m_pFileAccess;
+                  pDirList->push_back( fa );
+               }
+            }
+            FindClose( searchHandle );
+         }
+         else
+         {
+            QDir::setCurrent( currentPath ); // restore current path
+            return false;
+         }
+#endif
+      }
+      QDir::setCurrent( currentPath ); // restore current path
+   }
+   else
+   {
+      KIO::ListJob* pListJob=0;
+      pListJob = KIO::listDir( m_pFileAccess->url(), KIO::HideProgressInfo, true /*bFindHidden*/ );
+
+      m_bSuccess = false;
+      if ( pListJob!=0 )
+      {
+         connect( pListJob, SIGNAL( entries( KIO::Job*, const KIO::UDSEntryList& ) ),
+                  this,     SLOT( slotListDirProcessNewEntries( KIO::Job*, const KIO::UDSEntryList& )) );
+         connect( pListJob, SIGNAL( result( KJob* )),
+                  this,     SLOT( slotSimpleJobResult(KJob*) ) );
+
+         connect( pListJob, SIGNAL( infoMessage(KJob*, const QString&)),
+                  &pp,      SLOT( slotListDirInfoMessage(KJob*, const QString&) ));
+
+         // This line makes the transfer via fish unreliable.:-(
+         //connect( pListJob, SIGNAL(percent(KJob*,unsigned long)), &pp, SLOT(slotPercent(KJob*, unsigned long)));
+
+         ProgressProxy::enterEventLoop( pListJob,
+            i18n("Listing directory: %1",m_pFileAccess->prettyAbsPath()) );
+      }
+   }
+
+   CvsIgnoreList cvsIgnoreList;
+   if ( bUseCvsIgnore )
+   {
+      cvsIgnoreList.init( *m_pFileAccess, cvsIgnoreExists(pDirList) );
+   }
+#if defined(_WIN32) || defined(Q_OS_OS2)
+   bool bCaseSensitive = false;
+#else
+   bool bCaseSensitive = true;
+#endif
+
+   // Now remove all entries that don't match:
+   t_DirectoryList::iterator i;
+   for( i = pDirList->begin(); i!=pDirList->end();  )
+   {
+      t_DirectoryList::iterator i2=i;
+      ++i2;
+      QString fn = i->fileName();
+      if (  (!bFindHidden && i->isHidden() )
+            ||
+            (i->isFile() &&
+               ( !wildcardMultiMatch( filePattern, fn, bCaseSensitive ) ||
+                 wildcardMultiMatch( fileAntiPattern, fn, bCaseSensitive ) ) )
+            ||
+            (i->isDir() && wildcardMultiMatch( dirAntiPattern, fn, bCaseSensitive ) )
+            ||
+            cvsIgnoreList.matches( fn, bCaseSensitive )
+         )
+      {
+         // Remove it
+         pDirList->erase( i );
+         i = i2;
+      }
+      else
+      {
+         ++i;
+      }
+   }
+
+   if ( bRecursive )
+   {
+      t_DirectoryList subDirsList;
+
+      t_DirectoryList::iterator i;
+      for( i = m_pDirList->begin(); i!=m_pDirList->end(); ++i )
+      {
+         if  ( i->isDir() && (!i->isSymLink() || m_bFollowDirLinks))
+         {
+            t_DirectoryList dirList;
+            i->listDir( &dirList, bRecursive, bFindHidden,
+               filePattern, fileAntiPattern, dirAntiPattern, bFollowDirLinks, bUseCvsIgnore );
+
+            t_DirectoryList::iterator j;
+            for( j = dirList.begin(); j!=dirList.end(); ++j )
+            {
+               if ( j->parent()==0 )
+                  j->m_filePath = i->fileName() + "/" + j->m_filePath;
+            }
+
+            // append data onto the main list
+            subDirsList.splice( subDirsList.end(), dirList );
+         }
+      }
+
+      m_pDirList->splice( m_pDirList->end(), subDirsList );
+   }
+
+   return m_bSuccess;
+}
+
+
+void FileAccessJobHandler::slotListDirProcessNewEntries( KIO::Job*, const KIO::UDSEntryList& l )
+{
+   KUrl parentUrl( m_pFileAccess->absoluteFilePath() );
+
+   KIO::UDSEntryList::ConstIterator i;
+   for ( i=l.begin(); i!=l.end(); ++i )
+   {
+      const KIO::UDSEntry& e = *i;
+      FileAccess fa;
+      fa.createData();
+      fa.m_pData->m_pParent = m_pFileAccess;
+      fa.setUdsEntry( e );
+
+      if ( fa.fileName() != "." && fa.fileName() != ".." )
+      {
+         fa.d()->m_url = parentUrl;
+         fa.d()->m_url.addPath( fa.fileName() );
+         //fa.d()->m_absoluteFilePath = fa.url().url();
+         m_pDirList->push_back( fa );
+      }
+   }
+}
+
+void ProgressProxyExtender::slotListDirInfoMessage( KJob*, const QString& msg )
+{
+   setInformation( msg, 0 );
+}
+
+void ProgressProxyExtender::slotPercent( KJob*, unsigned long percent )
+{
+   setCurrent( percent );
+}
+
+
+//#include "fileaccess.moc"
diff --git a/src-QT4/fileaccess.h b/src-QT4/fileaccess.h
new file mode 100644 (file)
index 0000000..5e43bd1
--- /dev/null
@@ -0,0 +1,186 @@
+/***************************************************************************
+ *   Copyright (C) 2003-2007 by Joachim Eibl                               *
+ *   joachim.eibl at gmx.de                                                   *
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ ***************************************************************************/
+
+#ifndef FILEACCESS_H
+#define FILEACCESS_H
+
+#include "progress.h"
+
+#include <QDateTime>
+
+#include <kprogressdialog.h>
+#include <kio/job.h>
+#include <kio/jobclasses.h>
+#include <kurl.h>
+#include <list>
+
+
+bool wildcardMultiMatch( const QString& wildcard, const QString& testString, bool bCaseSensitive );
+
+class t_DirectoryList;
+class QFileInfo;
+
+class ProgressProxyExtender: public ProgressProxy
+{
+  Q_OBJECT
+public:
+   ProgressProxyExtender() { setMaxNofSteps(100); }
+
+public slots:
+   void slotListDirInfoMessage( KJob*, const QString& msg );
+   void slotPercent( KJob*, unsigned long percent );
+};
+
+class FileAccess
+{
+public:
+   FileAccess();
+   ~FileAccess();
+   FileAccess( const QString& name, bool bWantToWrite=false ); // name: local file or dirname or url (when supported)
+   FileAccess(const FileAccess& other);
+   const FileAccess& operator=(const FileAccess& other);
+   void setFile( const QString& name, bool bWantToWrite=false );
+
+   bool isValid() const;
+   bool isFile() const;
+   bool isDir() const;
+   bool isSymLink() const;
+   bool exists() const;
+   qint64 size() const;            // Size as returned by stat().
+   qint64 sizeForReading();  // If the size can't be determined by stat() then the file is copied to a local temp file.
+   bool isReadable() const;
+   bool isWritable() const;
+   bool isExecutable() const;
+   bool isHidden() const;
+   QString readLink() const;
+
+   //QDateTime   created()       const;
+   QDateTime   lastModified()  const;
+   //QDateTime   lastRead()      const;
+
+   QString fileName() const; // Just the name-part of the path, without parent directories
+   QString filePath() const; // The path-string that was used during construction
+   QString prettyAbsPath() const;
+   KUrl url() const;
+   QString absoluteFilePath() const;
+
+   bool isLocal() const;
+
+   bool readFile(void* pDestBuffer, unsigned long maxLength );
+   bool writeFile(const void* pSrcBuffer, unsigned long length );
+   bool listDir( t_DirectoryList* pDirList, bool bRecursive, bool bFindHidden,
+                 const QString& filePattern, const QString& fileAntiPattern,
+                 const QString& dirAntiPattern, bool bFollowDirLinks, bool bUseCvsIgnore );
+   bool copyFile( const QString& destUrl );
+   bool createBackup( const QString& bakExtension );
+
+   static QString tempFileName();
+   static bool removeTempFile( const QString& );
+   bool removeFile();
+   static bool removeFile( const QString& );
+   static bool makeDir( const QString& );
+   static bool removeDir( const QString& );
+   static bool exists( const QString& );
+   static QString cleanPath( const QString& );
+
+   //bool chmod( const QString& );
+   bool rename( const QString& );
+   static bool symLink( const QString& linkTarget, const QString& linkLocation );
+
+   void addPath( const QString& txt );
+   QString getStatusText();
+
+   FileAccess* parent() const; // !=0 for listDir-results, but only valid if the parent was not yet destroyed.
+   void setSharedName( const QString& name ); // might reduce memory consumption
+private:
+   void setUdsEntry( const KIO::UDSEntry& e );
+   void setFile( const QFileInfo& fi, FileAccess* pParent );
+   void setStatusText( const QString& s );
+
+   class Data;
+   Data* d();
+   const Data* d() const;
+   void createData();
+
+   union
+   {
+      Data* m_pData;
+      FileAccess* m_pParent;
+   };
+   QString m_filePath; // might be absolute or relative if m_pParent!=0
+   qint64 m_size;
+   QDateTime m_modificationTime;
+   bool m_bSymLink  : 1;
+   bool m_bFile     : 1;
+   bool m_bDir      : 1;
+   bool m_bExists   : 1;
+   bool m_bWritable : 1;
+   bool m_bHidden   : 1;
+   bool m_bUseData  : 1;
+
+   friend class FileAccessJobHandler;
+};
+
+class t_DirectoryList : public std::list<FileAccess>
+{};
+
+
+class FileAccessJobHandler : public QObject
+{
+   Q_OBJECT
+public:
+   FileAccessJobHandler( FileAccess* pFileAccess );
+
+   bool get( void* pDestBuffer, long maxLength );
+   bool put( const void* pSrcBuffer, long maxLength, bool bOverwrite, bool bResume=false, int permissions=-1 );
+   bool stat(int detailLevel=2, bool bWantToWrite=false );
+   bool copyFile( const QString& dest );
+   bool rename( const QString& dest );
+   bool listDir( t_DirectoryList* pDirList, bool bRecursive, bool bFindHidden,
+                 const QString& filePattern, const QString& fileAntiPattern,
+                 const QString& dirAntiPattern, bool bFollowDirLinks, bool bUseCvsIgnore );
+   bool mkDir( const QString& dirName );
+   bool rmDir( const QString& dirName );
+   bool removeFile( const QString& dirName );
+   bool symLink( const QString& linkTarget, const QString& linkLocation );
+
+private:
+   FileAccess* m_pFileAccess;
+   bool m_bSuccess;
+
+   // Data needed during Job
+   qint64 m_transferredBytes;
+   char* m_pTransferBuffer;  // Needed during get or put
+   qint64 m_maxLength;
+
+   QString m_filePattern;
+   QString m_fileAntiPattern;
+   QString m_dirAntiPattern;
+   t_DirectoryList* m_pDirList;
+   bool m_bFindHidden;
+   bool m_bRecursive;
+   bool m_bFollowDirLinks;
+
+   bool scanLocalDirectory( const QString& dirName, t_DirectoryList* dirList );
+
+private slots:
+   void slotStatResult( KJob* );
+   void slotSimpleJobResult( KJob* pJob );
+   void slotPutJobResult( KJob* pJob );
+
+   void slotGetData(KJob*,const QByteArray&);
+   void slotPutData(KIO::Job*, QByteArray&);
+
+   void slotListDirProcessNewEntries( KIO::Job *, const KIO::UDSEntryList& l );
+};
+
+
+#endif
+
diff --git a/src-QT4/gnudiff_analyze.cpp b/src-QT4/gnudiff_analyze.cpp
new file mode 100644 (file)
index 0000000..181134f
--- /dev/null
@@ -0,0 +1,869 @@
+/* Analyze file differences for GNU DIFF.
+
+   Modified for KDiff3 by Joachim Eibl 2003.
+   The original file was part of GNU DIFF.
+
+   Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1998, 2001, 2002
+   Free Software Foundation, Inc.
+
+   GNU DIFF is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   GNU DIFF is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; see the file COPYING.
+   If not, write to the Free Software Foundation,
+   51 Franklin Steet, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+/* The basic algorithm is described in:
+   "An O(ND) Difference Algorithm and its Variations", Eugene Myers,
+   Algorithmica Vol. 1 No. 2, 1986, pp. 251-266;
+   see especially section 4.2, which describes the variation used below.
+   Unless the --minimal option is specified, this code uses the TOO_EXPENSIVE
+   heuristic, by Paul Eggert, to limit the cost to O(N**1.5 log N)
+   at the price of producing suboptimal output for large inputs with
+   many differences.
+
+   The basic algorithm was independently discovered as described in:
+   "Algorithms for Approximate String Matching", E. Ukkonen,
+   Information and Control Vol. 64, 1985, pp. 100-118.  */
+
+#define GDIFF_MAIN
+
+#include "gnudiff_diff.h"
+//#include <error.h>
+#include <stdlib.h>
+
+static lin *xvec, *yvec;       /* Vectors being compared. */
+static lin *fdiag;             /* Vector, indexed by diagonal, containing
+                                  1 + the X coordinate of the point furthest
+                                  along the given diagonal in the forward
+                                  search of the edit matrix. */
+static lin *bdiag;             /* Vector, indexed by diagonal, containing
+                                  the X coordinate of the point furthest
+                                  along the given diagonal in the backward
+                                  search of the edit matrix. */
+static lin too_expensive;      /* Edit scripts longer than this are too
+                                  expensive to compute.  */
+
+#define SNAKE_LIMIT 20 /* Snakes bigger than this are considered `big'.  */
+
+
+struct partition
+{
+  lin xmid, ymid;      /* Midpoints of this partition.  */
+  bool lo_minimal;     /* Nonzero if low half will be analyzed minimally.  */
+  bool hi_minimal;     /* Likewise for high half.  */
+};
+
+/* Find the midpoint of the shortest edit script for a specified
+   portion of the two files.
+
+   Scan from the beginnings of the files, and simultaneously from the ends,
+   doing a breadth-first search through the space of edit-sequence.
+   When the two searches meet, we have found the midpoint of the shortest
+   edit sequence.
+
+   If FIND_MINIMAL is nonzero, find the minimal edit script regardless
+   of expense.  Otherwise, if the search is too expensive, use
+   heuristics to stop the search and report a suboptimal answer.
+
+   Set PART->(xmid,ymid) to the midpoint (XMID,YMID).  The diagonal number
+   XMID - YMID equals the number of inserted lines minus the number
+   of deleted lines (counting only lines before the midpoint).
+   Return the approximate edit cost; this is the total number of
+   lines inserted or deleted (counting only lines before the midpoint),
+   unless a heuristic is used to terminate the search prematurely.
+
+   Set PART->lo_minimal to true iff the minimal edit script for the
+   left half of the partition is known; similarly for PART->hi_minimal.
+
+   This function assumes that the first lines of the specified portions
+   of the two files do not match, and likewise that the last lines do not
+   match.  The caller must trim matching lines from the beginning and end
+   of the portions it is going to specify.
+
+   If we return the "wrong" partitions,
+   the worst this can do is cause suboptimal diff output.
+   It cannot cause incorrect diff output.  */
+
+lin
+GnuDiff::diag (lin xoff, lin xlim, lin yoff, lin ylim, bool find_minimal,
+      struct partition *part)
+{
+  lin *const fd = fdiag;       /* Give the compiler a chance. */
+  lin *const bd = bdiag;       /* Additional help for the compiler. */
+  lin const *const xv = xvec;  /* Still more help for the compiler. */
+  lin const *const yv = yvec;  /* And more and more . . . */
+  lin const dmin = xoff - ylim;        /* Minimum valid diagonal. */
+  lin const dmax = xlim - yoff;        /* Maximum valid diagonal. */
+  lin const fmid = xoff - yoff;        /* Center diagonal of top-down search. */
+  lin const bmid = xlim - ylim;        /* Center diagonal of bottom-up search. */
+  lin fmin = fmid, fmax = fmid;        /* Limits of top-down search. */
+  lin bmin = bmid, bmax = bmid;        /* Limits of bottom-up search. */
+  lin c;                       /* Cost. */
+  bool odd = (fmid - bmid) & 1;        /* True if southeast corner is on an odd
+                                  diagonal with respect to the northwest. */
+
+  fd[fmid] = xoff;
+  bd[bmid] = xlim;
+
+  for (c = 1;; ++c)
+    {
+      lin d;                   /* Active diagonal. */
+      bool big_snake = 0;
+
+      /* Extend the top-down search by an edit step in each diagonal. */
+      fmin > dmin ? fd[--fmin - 1] = -1 : ++fmin;
+      fmax < dmax ? fd[++fmax + 1] = -1 : --fmax;
+      for (d = fmax; d >= fmin; d -= 2)
+       {
+         lin x, y, oldx, tlo = fd[d - 1], thi = fd[d + 1];
+
+         if (tlo >= thi)
+           x = tlo + 1;
+         else
+           x = thi;
+         oldx = x;
+         y = x - d;
+         while (x < xlim && y < ylim && xv[x] == yv[y])
+           ++x, ++y;
+         if (x - oldx > SNAKE_LIMIT)
+           big_snake = 1;
+         fd[d] = x;
+         if (odd && bmin <= d && d <= bmax && bd[d] <= x)
+           {
+             part->xmid = x;
+             part->ymid = y;
+             part->lo_minimal = part->hi_minimal = 1;
+             return 2 * c - 1;
+           }
+       }
+
+      /* Similarly extend the bottom-up search.  */
+      bmin > dmin ? bd[--bmin - 1] = LIN_MAX : ++bmin;
+      bmax < dmax ? bd[++bmax + 1] = LIN_MAX : --bmax;
+      for (d = bmax; d >= bmin; d -= 2)
+       {
+         lin x, y, oldx, tlo = bd[d - 1], thi = bd[d + 1];
+
+         if (tlo < thi)
+           x = tlo;
+         else
+           x = thi - 1;
+         oldx = x;
+         y = x - d;
+         while (x > xoff && y > yoff && xv[x - 1] == yv[y - 1])
+           --x, --y;
+         if (oldx - x > SNAKE_LIMIT)
+           big_snake = 1;
+         bd[d] = x;
+         if (!odd && fmin <= d && d <= fmax && x <= fd[d])
+           {
+             part->xmid = x;
+             part->ymid = y;
+             part->lo_minimal = part->hi_minimal = 1;
+             return 2 * c;
+           }
+       }
+
+      if (find_minimal)
+       continue;
+
+      /* Heuristic: check occasionally for a diagonal that has made
+        lots of progress compared with the edit distance.
+        If we have any such, find the one that has made the most
+        progress and return it as if it had succeeded.
+
+        With this heuristic, for files with a constant small density
+        of changes, the algorithm is linear in the file size.  */
+
+      if (200 < c && big_snake && speed_large_files)
+       {
+         lin best;
+
+         best = 0;
+         for (d = fmax; d >= fmin; d -= 2)
+           {
+             lin dd = d - fmid;
+             lin x = fd[d];
+             lin y = x - d;
+             lin v = (x - xoff) * 2 - dd;
+             if (v > 12 * (c + (dd < 0 ? -dd : dd)))
+               {
+                 if (v > best
+                     && xoff + SNAKE_LIMIT <= x && x < xlim
+                     && yoff + SNAKE_LIMIT <= y && y < ylim)
+                   {
+                     /* We have a good enough best diagonal;
+                        now insist that it end with a significant snake.  */
+                     int k;
+
+                     for (k = 1; xv[x - k] == yv[y - k]; k++)
+                       if (k == SNAKE_LIMIT)
+                         {
+                           best = v;
+                           part->xmid = x;
+                           part->ymid = y;
+                           break;
+                         }
+                   }
+               }
+           }
+         if (best > 0)
+           {
+             part->lo_minimal = 1;
+             part->hi_minimal = 0;
+             return 2 * c - 1;
+           }
+
+         best = 0;
+         for (d = bmax; d >= bmin; d -= 2)
+           {
+             lin dd = d - bmid;
+             lin x = bd[d];
+             lin y = x - d;
+             lin v = (xlim - x) * 2 + dd;
+             if (v > 12 * (c + (dd < 0 ? -dd : dd)))
+               {
+                 if (v > best
+                     && xoff < x && x <= xlim - SNAKE_LIMIT
+                     && yoff < y && y <= ylim - SNAKE_LIMIT)
+                   {
+                     /* We have a good enough best diagonal;
+                        now insist that it end with a significant snake.  */
+                     int k;
+
+                     for (k = 0; xv[x + k] == yv[y + k]; k++)
+                       if (k == SNAKE_LIMIT - 1)
+                         {
+                           best = v;
+                           part->xmid = x;
+                           part->ymid = y;
+                           break;
+                         }
+                   }
+               }
+           }
+         if (best > 0)
+           {
+             part->lo_minimal = 0;
+             part->hi_minimal = 1;
+             return 2 * c - 1;
+           }
+       }
+
+      /* Heuristic: if we've gone well beyond the call of duty,
+        give up and report halfway between our best results so far.  */
+      if (c >= too_expensive)
+       {
+         lin fxybest, fxbest;
+         lin bxybest, bxbest;
+
+         fxbest = bxbest = 0;  /* Pacify `gcc -Wall'.  */
+
+         /* Find forward diagonal that maximizes X + Y.  */
+         fxybest = -1;
+         for (d = fmax; d >= fmin; d -= 2)
+           {
+             lin x = MIN (fd[d], xlim);
+             lin y = x - d;
+             if (ylim < y)
+               x = ylim + d, y = ylim;
+             if (fxybest < x + y)
+               {
+                 fxybest = x + y;
+                 fxbest = x;
+               }
+           }
+
+         /* Find backward diagonal that minimizes X + Y.  */
+         bxybest = LIN_MAX;
+         for (d = bmax; d >= bmin; d -= 2)
+           {
+             lin x = MAX (xoff, bd[d]);
+             lin y = x - d;
+             if (y < yoff)
+               x = yoff + d, y = yoff;
+             if (x + y < bxybest)
+               {
+                 bxybest = x + y;
+                 bxbest = x;
+               }
+           }
+
+         /* Use the better of the two diagonals.  */
+         if ((xlim + ylim) - bxybest < fxybest - (xoff + yoff))
+           {
+             part->xmid = fxbest;
+             part->ymid = fxybest - fxbest;
+             part->lo_minimal = 1;
+             part->hi_minimal = 0;
+           }
+         else
+           {
+             part->xmid = bxbest;
+             part->ymid = bxybest - bxbest;
+             part->lo_minimal = 0;
+             part->hi_minimal = 1;
+           }
+         return 2 * c - 1;
+       }
+    }
+}
+\f
+/* Compare in detail contiguous subsequences of the two files
+   which are known, as a whole, to match each other.
+
+   The results are recorded in the vectors files[N].changed, by
+   storing 1 in the element for each line that is an insertion or deletion.
+
+   The subsequence of file 0 is [XOFF, XLIM) and likewise for file 1.
+
+   Note that XLIM, YLIM are exclusive bounds.
+   All line numbers are origin-0 and discarded lines are not counted.
+
+   If FIND_MINIMAL, find a minimal difference no matter how
+   expensive it is.  */
+
+void GnuDiff::compareseq (lin xoff, lin xlim, lin yoff, lin ylim, bool find_minimal)
+{
+  lin * const xv = xvec; /* Help the compiler.  */
+  lin * const yv = yvec;
+
+  /* Slide down the bottom initial diagonal. */
+  while (xoff < xlim && yoff < ylim && xv[xoff] == yv[yoff])
+    ++xoff, ++yoff;
+  /* Slide up the top initial diagonal. */
+  while (xlim > xoff && ylim > yoff && xv[xlim - 1] == yv[ylim - 1])
+    --xlim, --ylim;
+
+  /* Handle simple cases. */
+  if (xoff == xlim)
+    while (yoff < ylim)
+      files[1].changed[files[1].realindexes[yoff++]] = 1;
+  else if (yoff == ylim)
+    while (xoff < xlim)
+      files[0].changed[files[0].realindexes[xoff++]] = 1;
+  else
+    {
+      lin c;
+      struct partition part;
+
+      /* Find a point of correspondence in the middle of the files.  */
+
+      c = diag (xoff, xlim, yoff, ylim, find_minimal, &part);
+
+      if (c == 1)
+       {
+         /* This should be impossible, because it implies that
+            one of the two subsequences is empty,
+            and that case was handled above without calling `diag'.
+            Let's verify that this is true.  */
+         abort ();
+#if 0
+         /* The two subsequences differ by a single insert or delete;
+            record it and we are done.  */
+         if (part.xmid - part.ymid < xoff - yoff)
+           files[1].changed[files[1].realindexes[part.ymid - 1]] = 1;
+         else
+           files[0].changed[files[0].realindexes[part.xmid]] = 1;
+#endif
+       }
+      else
+       {
+         /* Use the partitions to split this problem into subproblems.  */
+         compareseq (xoff, part.xmid, yoff, part.ymid, part.lo_minimal);
+         compareseq (part.xmid, xlim, part.ymid, ylim, part.hi_minimal);
+       }
+    }
+}
+\f
+/* Discard lines from one file that have no matches in the other file.
+
+   A line which is discarded will not be considered by the actual
+   comparison algorithm; it will be as if that line were not in the file.
+   The file's `realindexes' table maps virtual line numbers
+   (which don't count the discarded lines) into real line numbers;
+   this is how the actual comparison algorithm produces results
+   that are comprehensible when the discarded lines are counted.
+
+   When we discard a line, we also mark it as a deletion or insertion
+   so that it will be printed in the output.  */
+
+void GnuDiff::discard_confusing_lines (struct file_data filevec[])
+{
+  int f;
+  lin i;
+  char *discarded[2];
+  lin *equiv_count[2];
+  lin *p;
+
+  /* Allocate our results.  */
+  p = (lin*)xmalloc ((filevec[0].buffered_lines + filevec[1].buffered_lines)
+              * (2 * sizeof *p));
+  for (f = 0; f < 2; f++)
+    {
+      filevec[f].undiscarded = p;  p += filevec[f].buffered_lines;
+      filevec[f].realindexes = p;  p += filevec[f].buffered_lines;
+    }
+
+  /* Set up equiv_count[F][I] as the number of lines in file F
+     that fall in equivalence class I.  */
+
+  p = (lin*)zalloc (filevec[0].equiv_max * (2 * sizeof *p));
+  equiv_count[0] = p;
+  equiv_count[1] = p + filevec[0].equiv_max;
+
+  for (i = 0; i < filevec[0].buffered_lines; ++i)
+    ++equiv_count[0][filevec[0].equivs[i]];
+  for (i = 0; i < filevec[1].buffered_lines; ++i)
+    ++equiv_count[1][filevec[1].equivs[i]];
+
+  /* Set up tables of which lines are going to be discarded.  */
+
+  discarded[0] = (char*)zalloc (filevec[0].buffered_lines
+                        + filevec[1].buffered_lines);
+  discarded[1] = discarded[0] + filevec[0].buffered_lines;
+
+  /* Mark to be discarded each line that matches no line of the other file.
+     If a line matches many lines, mark it as provisionally discardable.  */
+
+  for (f = 0; f < 2; f++)
+    {
+      size_t end = filevec[f].buffered_lines;
+      char *discards = discarded[f];
+      lin *counts = equiv_count[1 - f];
+      lin *equivs = filevec[f].equivs;
+      size_t many = 5;
+      size_t tem = end / 64;
+
+      /* Multiply MANY by approximate square root of number of lines.
+        That is the threshold for provisionally discardable lines.  */
+      while ((tem = tem >> 2) > 0)
+       many *= 2;
+
+      for (i = 0; i < (lin)end; i++)
+       {
+         lin nmatch;
+         if (equivs[i] == 0)
+           continue;
+         nmatch = counts[equivs[i]];
+         if (nmatch == 0)
+           discards[i] = 1;
+         else if (nmatch > (lin)many)
+           discards[i] = 2;
+       }
+    }
+
+  /* Don't really discard the provisional lines except when they occur
+     in a run of discardables, with nonprovisionals at the beginning
+     and end.  */
+
+  for (f = 0; f < 2; f++)
+    {
+      lin end = filevec[f].buffered_lines;
+      register char *discards = discarded[f];
+
+      for (i = 0; i < end; i++)
+       {
+         /* Cancel provisional discards not in middle of run of discards.  */
+         if (discards[i] == 2)
+           discards[i] = 0;
+         else if (discards[i] != 0)
+           {
+             /* We have found a nonprovisional discard.  */
+             register lin j;
+             lin length;
+             lin provisional = 0;
+
+             /* Find end of this run of discardable lines.
+                Count how many are provisionally discardable.  */
+             for (j = i; j < end; j++)
+               {
+                 if (discards[j] == 0)
+                   break;
+                 if (discards[j] == 2)
+                   ++provisional;
+               }
+
+             /* Cancel provisional discards at end, and shrink the run.  */
+             while (j > i && discards[j - 1] == 2)
+               discards[--j] = 0, --provisional;
+
+             /* Now we have the length of a run of discardable lines
+                whose first and last are not provisional.  */
+             length = j - i;
+
+             /* If 1/4 of the lines in the run are provisional,
+                cancel discarding of all provisional lines in the run.  */
+             if (provisional * 4 > length)
+               {
+                 while (j > i)
+                   if (discards[--j] == 2)
+                     discards[j] = 0;
+               }
+             else
+               {
+                 register lin consec;
+                 lin minimum = 1;
+                 lin tem = length >> 2;
+
+                 /* MINIMUM is approximate square root of LENGTH/4.
+                    A subrun of two or more provisionals can stand
+                    when LENGTH is at least 16.
+                    A subrun of 4 or more can stand when LENGTH >= 64.  */
+                 while (0 < (tem >>= 2))
+                   minimum <<= 1;
+                 minimum++;
+
+                 /* Cancel any subrun of MINIMUM or more provisionals
+                    within the larger run.  */
+                 for (j = 0, consec = 0; j < length; j++)
+                   if (discards[i + j] != 2)
+                     consec = 0;
+                   else if (minimum == ++consec)
+                     /* Back up to start of subrun, to cancel it all.  */
+                     j -= consec;
+                   else if (minimum < consec)
+                     discards[i + j] = 0;
+
+                 /* Scan from beginning of run
+                    until we find 3 or more nonprovisionals in a row
+                    or until the first nonprovisional at least 8 lines in.
+                    Until that point, cancel any provisionals.  */
+                 for (j = 0, consec = 0; j < length; j++)
+                   {
+                     if (j >= 8 && discards[i + j] == 1)
+                       break;
+                     if (discards[i + j] == 2)
+                       consec = 0, discards[i + j] = 0;
+                     else if (discards[i + j] == 0)
+                       consec = 0;
+                     else
+                       consec++;
+                     if (consec == 3)
+                       break;
+                   }
+
+                 /* I advances to the last line of the run.  */
+                 i += length - 1;
+
+                 /* Same thing, from end.  */
+                 for (j = 0, consec = 0; j < length; j++)
+                   {
+                     if (j >= 8 && discards[i - j] == 1)
+                       break;
+                     if (discards[i - j] == 2)
+                       consec = 0, discards[i - j] = 0;
+                     else if (discards[i - j] == 0)
+                       consec = 0;
+                     else
+                       consec++;
+                     if (consec == 3)
+                       break;
+                   }
+               }
+           }
+       }
+    }
+
+  /* Actually discard the lines. */
+  for (f = 0; f < 2; f++)
+    {
+      char *discards = discarded[f];
+      lin end = filevec[f].buffered_lines;
+      lin j = 0;
+      for (i = 0; i < end; ++i)
+       if (minimal || discards[i] == 0)
+         {
+           filevec[f].undiscarded[j] = filevec[f].equivs[i];
+           filevec[f].realindexes[j++] = i;
+         }
+       else
+         filevec[f].changed[i] = 1;
+      filevec[f].nondiscarded_lines = j;
+    }
+
+  free (discarded[0]);
+  free (equiv_count[0]);
+}
+\f
+/* Adjust inserts/deletes of identical lines to join changes
+   as much as possible.
+
+   We do something when a run of changed lines include a
+   line at one end and have an excluded, identical line at the other.
+   We are free to choose which identical line is included.
+   `compareseq' usually chooses the one at the beginning,
+   but usually it is cleaner to consider the following identical line
+   to be the "change".  */
+
+void GnuDiff::shift_boundaries (struct file_data filevec[])
+{
+  int f;
+
+  for (f = 0; f < 2; f++)
+    {
+      bool *changed = filevec[f].changed;
+      bool const *other_changed = filevec[1 - f].changed;
+      lin const *equivs = filevec[f].equivs;
+      lin i = 0;
+      lin j = 0;
+      lin i_end = filevec[f].buffered_lines;
+
+      while (1)
+       {
+         lin runlength, start, corresponding;
+
+         /* Scan forwards to find beginning of another run of changes.
+            Also keep track of the corresponding point in the other file.  */
+
+         while (i < i_end && !changed[i])
+           {
+             while (other_changed[j++])
+               continue;
+             i++;
+           }
+
+         if (i == i_end)
+           break;
+
+         start = i;
+
+         /* Find the end of this run of changes.  */
+
+         while (changed[++i])
+           continue;
+         while (other_changed[j])
+           j++;
+
+         do
+           {
+             /* Record the length of this run of changes, so that
+                we can later determine whether the run has grown.  */
+             runlength = i - start;
+
+             /* Move the changed region back, so long as the
+                previous unchanged line matches the last changed one.
+                This merges with previous changed regions.  */
+
+             while (start && equivs[start - 1] == equivs[i - 1])
+               {
+                 changed[--start] = 1;
+                 changed[--i] = 0;
+                 while (changed[start - 1])
+                   start--;
+                 while (other_changed[--j])
+                   continue;
+               }
+
+             /* Set CORRESPONDING to the end of the changed run, at the last
+                point where it corresponds to a changed run in the other file.
+                CORRESPONDING == I_END means no such point has been found.  */
+             corresponding = other_changed[j - 1] ? i : i_end;
+
+             /* Move the changed region forward, so long as the
+                first changed line matches the following unchanged one.
+                This merges with following changed regions.
+                Do this second, so that if there are no merges,
+                the changed region is moved forward as far as possible.  */
+
+             while (i != i_end && equivs[start] == equivs[i])
+               {
+                 changed[start++] = 0;
+                 changed[i++] = 1;
+                 while (changed[i])
+                   i++;
+                 while (other_changed[++j])
+                   corresponding = i;
+               }
+           }
+         while (runlength != i - start);
+
+         /* If possible, move the fully-merged run of changes
+            back to a corresponding run in the other file.  */
+
+         while (corresponding < i)
+           {
+             changed[--start] = 1;
+             changed[--i] = 0;
+             while (other_changed[--j])
+               continue;
+           }
+       }
+    }
+}
+\f
+/* Cons an additional entry onto the front of an edit script OLD.
+   LINE0 and LINE1 are the first affected lines in the two files (origin 0).
+   DELETED is the number of lines deleted here from file 0.
+   INSERTED is the number of lines inserted here in file 1.
+
+   If DELETED is 0 then LINE0 is the number of the line before
+   which the insertion was done; vice versa for INSERTED and LINE1.  */
+
+GnuDiff::change* GnuDiff::add_change (lin line0, lin line1, lin deleted, lin inserted, struct change *old)
+{
+  struct change *newChange = (change*) xmalloc (sizeof *newChange);
+
+  newChange->line0 = line0;
+  newChange->line1 = line1;
+  newChange->inserted = inserted;
+  newChange->deleted = deleted;
+  newChange->link = old;
+  return newChange;
+}
+
+/* Scan the tables of which lines are inserted and deleted,
+   producing an edit script in reverse order.  */
+
+GnuDiff::change* GnuDiff::build_reverse_script (struct file_data const filevec[])
+{
+  struct change *script = 0;
+  bool *changed0 = filevec[0].changed;
+  bool *changed1 = filevec[1].changed;
+  lin len0 = filevec[0].buffered_lines;
+  lin len1 = filevec[1].buffered_lines;
+
+  /* Note that changedN[len0] does exist, and is 0.  */
+
+  lin i0 = 0, i1 = 0;
+
+  while (i0 < len0 || i1 < len1)
+    {
+      if (changed0[i0] | changed1[i1])
+       {
+         lin line0 = i0, line1 = i1;
+
+         /* Find # lines changed here in each file.  */
+         while (changed0[i0]) ++i0;
+         while (changed1[i1]) ++i1;
+
+         /* Record this change.  */
+         script = add_change (line0, line1, i0 - line0, i1 - line1, script);
+       }
+
+      /* We have reached lines in the two files that match each other.  */
+      i0++, i1++;
+    }
+
+  return script;
+}
+
+/* Scan the tables of which lines are inserted and deleted,
+   producing an edit script in forward order.  */
+
+GnuDiff::change* GnuDiff::build_script (struct file_data const filevec[])
+{
+  struct change *script = 0;
+  bool *changed0 = filevec[0].changed;
+  bool *changed1 = filevec[1].changed;
+  lin i0 = filevec[0].buffered_lines, i1 = filevec[1].buffered_lines;
+
+  /* Note that changedN[-1] does exist, and is 0.  */
+
+  while (i0 >= 0 || i1 >= 0)
+    {
+      if (changed0[i0 - 1] | changed1[i1 - 1])
+       {
+         lin line0 = i0, line1 = i1;
+
+         /* Find # lines changed here in each file.  */
+         while (changed0[i0 - 1]) --i0;
+         while (changed1[i1 - 1]) --i1;
+
+         /* Record this change.  */
+         script = add_change (i0, i1, line0 - i0, line1 - i1, script);
+       }
+
+      /* We have reached lines in the two files that match each other.  */
+      i0--, i1--;
+    }
+
+  return script;
+}
+
+
+/* Report the differences of two files.  */
+GnuDiff::change* GnuDiff::diff_2_files (struct comparison *cmp)
+{
+  lin diags;
+  int f;
+  struct change *script;
+
+  read_files (cmp->file, files_can_be_treated_as_binary);
+
+    {
+      /* Allocate vectors for the results of comparison:
+        a flag for each line of each file, saying whether that line
+        is an insertion or deletion.
+        Allocate an extra element, always 0, at each end of each vector.  */
+
+      size_t s = cmp->file[0].buffered_lines + cmp->file[1].buffered_lines + 4;
+      bool *flag_space = (bool*)zalloc (s * sizeof(*flag_space));
+      cmp->file[0].changed = flag_space + 1;
+      cmp->file[1].changed = flag_space + cmp->file[0].buffered_lines + 3;
+
+      /* Some lines are obviously insertions or deletions
+        because they don't match anything.  Detect them now, and
+        avoid even thinking about them in the main comparison algorithm.  */
+
+      discard_confusing_lines (cmp->file);
+
+      /* Now do the main comparison algorithm, considering just the
+        undiscarded lines.  */
+
+      xvec = cmp->file[0].undiscarded;
+      yvec = cmp->file[1].undiscarded;
+      diags = (cmp->file[0].nondiscarded_lines
+              + cmp->file[1].nondiscarded_lines + 3);
+      fdiag = (lin*)xmalloc (diags * (2 * sizeof *fdiag));
+      bdiag = fdiag + diags;
+      fdiag += cmp->file[1].nondiscarded_lines + 1;
+      bdiag += cmp->file[1].nondiscarded_lines + 1;
+
+      /* Set TOO_EXPENSIVE to be approximate square root of input size,
+        bounded below by 256.  */
+      too_expensive = 1;
+      for (;  diags != 0;  diags >>= 2)
+       too_expensive <<= 1;
+      too_expensive = MAX (256, too_expensive);
+
+      files[0] = cmp->file[0];
+      files[1] = cmp->file[1];
+
+      compareseq (0, cmp->file[0].nondiscarded_lines,
+                 0, cmp->file[1].nondiscarded_lines, minimal);
+
+      free (fdiag - (cmp->file[1].nondiscarded_lines + 1));
+
+      /* Modify the results slightly to make them prettier
+        in cases where that can validly be done.  */
+
+      shift_boundaries (cmp->file);
+
+      /* Get the results of comparison in the form of a chain
+         of `struct change's -- an edit script.  */
+
+      script = build_script (cmp->file);
+
+      free (cmp->file[0].undiscarded);
+
+      free (flag_space);
+
+      for (f = 0; f < 2; f++)
+       {
+         free (cmp->file[f].equivs);
+         free (cmp->file[f].linbuf + cmp->file[f].linbuf_base);
+       }
+    }
+
+  return script;
+}
diff --git a/src-QT4/gnudiff_diff.h b/src-QT4/gnudiff_diff.h
new file mode 100644 (file)
index 0000000..d2c55c0
--- /dev/null
@@ -0,0 +1,360 @@
+/* Shared definitions for GNU DIFF
+
+   Modified for KDiff3 by Joachim Eibl 2003, 2004, 2005.
+   The original file was part of GNU DIFF.
+
+   Copyright (C) 1988, 1989, 1991, 1992, 1993, 1994, 1995, 1998, 2001,
+   2002 Free Software Foundation, Inc.
+
+   GNU DIFF is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   GNU DIFF is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; see the file COPYING.
+   If not, write to the Free Software Foundation,
+   51 Franklin Steet, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#ifndef GNUDIFF_DIFF_H
+#define GNUDIFF_DIFF_H
+
+#include "gnudiff_system.h"
+
+#include <stdio.h>
+#include <QString>
+
+inline bool isEndOfLine( QChar c )
+{
+   return c=='\n';// || c=='\r' || c=='\x0b';
+}
+
+#define TAB_WIDTH 8
+
+class GnuDiff
+{
+public:
+/* What kind of changes a hunk contains.  */
+enum changes
+{
+  /* No changes: lines common to both files.  */
+  UNCHANGED,
+
+  /* Deletes only: lines taken from just the first file.  */
+  OLD,
+
+  /* Inserts only: lines taken from just the second file.  */
+  NEW,
+
+  /* Both deletes and inserts: a hunk containing both old and new lines.  */
+  CHANGED
+};
+\f
+/* Variables for command line options */
+
+/* Nonzero if output cannot be generated for identical files.  */
+bool no_diff_means_no_output;
+
+/* Number of lines of context to show in each set of diffs.
+   This is zero when context is not to be shown.  */
+lin context;
+
+/* Consider all files as text files (-a).
+   Don't interpret codes over 0177 as implying a "binary file".  */
+bool text;
+
+/* The significance of white space during comparisons.  */
+enum
+{
+  /* All white space is significant (the default).  */
+  IGNORE_NO_WHITE_SPACE,
+
+  /* Ignore changes due to tab expansion (-E).  */
+  IGNORE_TAB_EXPANSION,
+
+  /* Ignore changes in horizontal white space (-b).  */
+  IGNORE_SPACE_CHANGE,
+
+  /* Ignore all horizontal white space (-w).  */
+  IGNORE_ALL_SPACE
+} ignore_white_space;
+
+/* Ignore changes that affect only blank lines (-B).  */
+bool ignore_blank_lines;
+
+/* Ignore changes that affect only numbers. (J. Eibl)  */
+bool bIgnoreNumbers;
+bool bIgnoreWhiteSpace;
+
+/* Files can be compared byte-by-byte, as if they were binary.
+   This depends on various options.  */
+bool files_can_be_treated_as_binary;
+
+/* Ignore differences in case of letters (-i).  */
+bool ignore_case;
+
+/* Ignore differences in case of letters in file names.  */
+bool ignore_file_name_case;
+
+/* Regexp to identify function-header lines (-F).  */
+//struct re_pattern_buffer function_regexp;
+
+/* Ignore changes that affect only lines matching this regexp (-I).  */
+//struct re_pattern_buffer ignore_regexp;
+
+/* Say only whether files differ, not how (-q).  */
+bool brief;
+
+/* Expand tabs in the output so the text lines up properly
+   despite the characters added to the front of each line (-t).  */
+bool expand_tabs;
+
+/* Use a tab in the output, rather than a space, before the text of an
+   input line, so as to keep the proper alignment in the input line
+   without changing the characters in it (-T).  */
+bool initial_tab;
+
+/* In directory comparison, specify file to start with (-S).
+   This is used for resuming an aborted comparison.
+   All file names less than this name are ignored.  */
+const QChar *starting_file;
+
+/* Pipe each file's output through pr (-l).  */
+bool paginate;
+
+/* Line group formats for unchanged, old, new, and changed groups.  */
+const QChar *group_format[CHANGED + 1];
+
+/* Line formats for unchanged, old, and new lines.  */
+const QChar *line_format[NEW + 1];
+
+/* If using OUTPUT_SDIFF print extra information to help the sdiff filter.  */
+bool sdiff_merge_assist;
+
+/* Tell OUTPUT_SDIFF to show only the left version of common lines.  */
+bool left_column;
+
+/* Tell OUTPUT_SDIFF to not show common lines.  */
+bool suppress_common_lines;
+
+/* The half line width and column 2 offset for OUTPUT_SDIFF.  */
+unsigned int sdiff_half_width;
+unsigned int sdiff_column2_offset;
+
+/* Use heuristics for better speed with large files with a small
+   density of changes.  */
+bool speed_large_files;
+
+/* Patterns that match file names to be excluded.  */
+struct exclude *excluded;
+
+/* Don't discard lines.  This makes things slower (sometimes much
+   slower) but will find a guaranteed minimal set of changes.  */
+bool minimal;
+
+\f
+/* The result of comparison is an "edit script": a chain of `struct change'.
+   Each `struct change' represents one place where some lines are deleted
+   and some are inserted.
+
+   LINE0 and LINE1 are the first affected lines in the two files (origin 0).
+   DELETED is the number of lines deleted here from file 0.
+   INSERTED is the number of lines inserted here in file 1.
+
+   If DELETED is 0 then LINE0 is the number of the line before
+   which the insertion was done; vice versa for INSERTED and LINE1.  */
+
+struct change
+{
+  struct change *link;         /* Previous or next edit command  */
+  lin inserted;                        /* # lines of file 1 changed here.  */
+  lin deleted;                 /* # lines of file 0 changed here.  */
+  lin line0;                   /* Line number of 1st deleted line.  */
+  lin line1;                   /* Line number of 1st inserted line.  */
+  bool ignore;                 /* Flag used in context.c.  */
+};
+
+/* Structures that describe the input files.  */
+
+/* Data on one input file being compared.  */
+
+struct file_data {
+    /* Buffer in which text of file is read.  */
+    const QChar* buffer;
+
+    /* Allocated size of buffer, in QChars.  Always a multiple of
+       sizeof *buffer.  */
+    size_t bufsize;
+
+    /* Number of valid bytes now in the buffer.  */
+    size_t buffered;
+
+    /* Array of pointers to lines in the file.  */
+    const QChar **linbuf;
+
+    /* linbuf_base <= buffered_lines <= valid_lines <= alloc_lines.
+       linebuf[linbuf_base ... buffered_lines - 1] are possibly differing.
+       linebuf[linbuf_base ... valid_lines - 1] contain valid data.
+       linebuf[linbuf_base ... alloc_lines - 1] are allocated.  */
+    lin linbuf_base, buffered_lines, valid_lines, alloc_lines;
+
+    /* Pointer to end of prefix of this file to ignore when hashing.  */
+    const QChar *prefix_end;
+
+    /* Count of lines in the prefix.
+       There are this many lines in the file before linbuf[0].  */
+    lin prefix_lines;
+
+    /* Pointer to start of suffix of this file to ignore when hashing.  */
+    const QChar *suffix_begin;
+
+    /* Vector, indexed by line number, containing an equivalence code for
+       each line.  It is this vector that is actually compared with that
+       of another file to generate differences.  */
+    lin *equivs;
+
+    /* Vector, like the previous one except that
+       the elements for discarded lines have been squeezed out.  */
+    lin *undiscarded;
+
+    /* Vector mapping virtual line numbers (not counting discarded lines)
+       to real ones (counting those lines).  Both are origin-0.  */
+    lin *realindexes;
+
+    /* Total number of nondiscarded lines.  */
+    lin nondiscarded_lines;
+
+    /* Vector, indexed by real origin-0 line number,
+       containing TRUE for a line that is an insertion or a deletion.
+       The results of comparison are stored here.  */
+    bool *changed;
+
+    /* 1 if at end of file.  */
+    bool eof;
+
+    /* 1 more than the maximum equivalence value used for this or its
+       sibling file.  */
+    lin equiv_max;
+};
+
+/* Data on two input files being compared.  */
+
+struct comparison
+  {
+    struct file_data file[2];
+    struct comparison const *parent;  /* parent, if a recursive comparison */
+  };
+
+/* Describe the two files currently being compared.  */
+
+struct file_data files[2];
+\f
+/* Stdio stream to output diffs to.  */
+
+FILE *outfile;
+\f
+/* Declare various functions.  */
+
+/* analyze.c */
+struct change* diff_2_files (struct comparison *);
+
+/* context.c */
+void print_context_header (struct file_data[], bool);
+void print_context_script (struct change *, bool);
+
+/* dir.c */
+int diff_dirs (struct comparison const *, int (*) (struct comparison const *, const QChar *, const QChar *));
+
+/* ed.c */
+void print_ed_script (struct change *);
+void pr_forward_ed_script (struct change *);
+
+/* ifdef.c */
+void print_ifdef_script (struct change *);
+
+/* io.c */
+void file_block_read (struct file_data *, size_t);
+bool read_files (struct file_data[], bool);
+
+/* normal.c */
+void print_normal_script (struct change *);
+
+/* rcs.c */
+void print_rcs_script (struct change *);
+
+/* side.c */
+void print_sdiff_script (struct change *);
+
+/* util.c */
+QChar *concat (const QChar *, const QChar *, const QChar *);
+bool lines_differ ( const QChar *, size_t, const QChar *, size_t );
+lin translate_line_number (struct file_data const *, lin);
+struct change *find_change (struct change *);
+struct change *find_reverse_change (struct change *);
+void *zalloc (size_t);
+enum changes analyze_hunk (struct change *, lin *, lin *, lin *, lin *);
+void begin_output (void);
+void debug_script (struct change *);
+void finish_output (void);
+void message (const QChar *, const QChar *, const QChar *);
+void message5 (const QChar *, const QChar *, const QChar *, const QChar *, const QChar *);
+void output_1_line (const QChar *, const QChar *, const QChar *, const QChar *);
+void perror_with_name (const QChar *);
+void setup_output (const QChar *, const QChar *, bool);
+void translate_range (struct file_data const *, lin, lin, long *, long *);
+
+/* version.c */
+//extern const QChar version_string[];
+
+private:
+   // gnudiff_analyze.cpp
+   lin diag (lin xoff, lin xlim, lin yoff, lin ylim, bool find_minimal, struct partition *part);
+   void compareseq (lin xoff, lin xlim, lin yoff, lin ylim, bool find_minimal);
+   void discard_confusing_lines (struct file_data filevec[]);
+   void shift_boundaries (struct file_data filevec[]);
+   struct change * add_change (lin line0, lin line1, lin deleted, lin inserted, struct change *old);
+   struct change * build_reverse_script (struct file_data const filevec[]);
+   struct change* build_script (struct file_data const filevec[]);
+
+   // gnudiff_io.cpp
+   void find_and_hash_each_line (struct file_data *current);
+   void find_identical_ends (struct file_data filevec[]);
+
+   // gnudiff_xmalloc.cpp
+   void *xmalloc (size_t n);
+   void *xrealloc(void *p, size_t n);
+   void xalloc_die (void);
+
+   inline bool isWhite( QChar c )
+   {
+      return c==' ' || c=='\t' ||  c=='\r';
+   }
+}; // class GnuDiff
+
+# define XMALLOC(Type, N_items) ((Type *) xmalloc (sizeof (Type) * (N_items)))
+# define XREALLOC(Ptr, Type, N_items) \
+  ((Type *) xrealloc ((void *) (Ptr), sizeof (Type) * (N_items)))
+
+/* Declare and alloc memory for VAR of type TYPE. */
+# define NEW(Type, Var)  Type *(Var) = XMALLOC (Type, 1)
+
+/* Free VAR only if non NULL. */
+# define XFREE(Var)    \
+   do {                 \
+      if (Var)          \
+        free (Var);     \
+   } while (0)
+
+/* Return a pointer to a malloc'ed copy of the array SRC of NUM elements. */
+# define CCLONE(Src, Num) \
+  (memcpy (xmalloc (sizeof (*Src) * (Num)), (Src), sizeof (*Src) * (Num)))
+
+/* Return a malloc'ed copy of SRC. */
+# define CLONE(Src) CCLONE (Src, 1)
+
+#endif
diff --git a/src-QT4/gnudiff_io.cpp b/src-QT4/gnudiff_io.cpp
new file mode 100644 (file)
index 0000000..40a93af
--- /dev/null
@@ -0,0 +1,558 @@
+/* File I/O for GNU DIFF.
+
+   Modified for KDiff3 by Joachim Eibl 2003, 2004, 2005.
+   The original file was part of GNU DIFF.
+
+   Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1998, 2001, 2002
+   Free Software Foundation, Inc.
+
+   GNU DIFF is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   GNU DIFF is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; see the file COPYING.
+   If not, write to the Free Software Foundation,
+   51 Franklin Steet, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#include "gnudiff_diff.h"
+#include <stdlib.h>
+
+/* Rotate an unsigned value to the left.  */
+#define ROL(v, n) ((v) << (n) | (v) >> (sizeof (v) * CHAR_BIT - (n)))
+
+/* Given a hash value and a new character, return a new hash value.  */
+#define HASH(h, c) ((c) + ROL (h, 7))
+
+/* The type of a hash value.  */
+typedef size_t hash_value;
+verify (hash_value_is_unsigned, ! TYPE_SIGNED (hash_value));
+
+/* Lines are put into equivalence classes of lines that match in lines_differ.
+   Each equivalence class is represented by one of these structures,
+   but only while the classes are being computed.
+   Afterward, each class is represented by a number.  */
+struct equivclass
+{
+  lin next;            /* Next item in this bucket.  */
+  hash_value hash;     /* Hash of lines in this class.  */
+  const QChar *line;   /* A line that fits this class.  */
+  size_t length;       /* That line's length, not counting its newline.  */
+};
+
+/* Hash-table: array of buckets, each being a chain of equivalence classes.
+   buckets[-1] is reserved for incomplete lines.  */
+static lin *buckets;
+
+/* Number of buckets in the hash table array, not counting buckets[-1].  */
+static size_t nbuckets;
+
+/* Array in which the equivalence classes are allocated.
+   The bucket-chains go through the elements in this array.
+   The number of an equivalence class is its index in this array.  */
+static struct equivclass *equivs;
+
+/* Index of first free element in the array `equivs'.  */
+static lin equivs_index;
+
+/* Number of elements allocated in the array `equivs'.  */
+static lin equivs_alloc;
+
+/* Check for binary files and compare them for exact identity.  */
+
+/* Return 1 if BUF contains a non text character.
+   SIZE is the number of characters in BUF.  */
+
+#define binary_file_p(buf, size) (memchr (buf, 0, size) != 0)
+
+/* Compare two lines (typically one from each input file)
+   according to the command line options.
+   For efficiency, this is invoked only when the lines do not match exactly
+   but an option like -i might cause us to ignore the difference.
+   Return nonzero if the lines differ.  */
+
+bool GnuDiff::lines_differ (const QChar *s1, size_t len1, const QChar *s2, size_t len2 )
+{
+   const QChar *t1 = s1;
+   const QChar *t2 = s2;
+   const QChar *s1end = s1+len1;
+   const QChar *s2end = s2+len2;
+
+   for ( ; ; ++t1, ++t2 )
+   {
+      /* Test for exact char equality first, since it's a common case.  */
+      if ( t1!=s1end && t2!=s2end && *t1==*t2 )
+         continue;
+      else
+      {
+         while ( t1!=s1end &&
+                 ( (bIgnoreWhiteSpace && isWhite( *t1 ))  ||
+                   (bIgnoreNumbers    && (t1->isDigit()  || *t1=='-' || *t1=='.' ))))
+         {
+            ++t1;
+         }
+
+         while ( t2 != s2end &&
+                 ( (bIgnoreWhiteSpace && isWhite( *t2 ))  ||
+                   (bIgnoreNumbers    && (t2->isDigit() || *t2=='-' || *t2=='.' ))))
+         {
+            ++t2;
+         }
+
+         if ( t1!=s1end && t2!=s2end )
+         {
+            if (ignore_case)
+            {  /* Lowercase comparison. */
+               if ( t1->toLower() == t2->toLower() )
+                  continue;
+            }
+            else if ( *t1 == *t2 )
+               continue;
+            else
+               return true;
+         }
+         else if ( t1==s1end && t2==s2end )
+            return false;
+         else
+            return true;
+      }
+   }
+   return false;
+}
+
+
+/* Split the file into lines, simultaneously computing the equivalence
+   class for each line.  */
+
+void GnuDiff::find_and_hash_each_line (struct file_data *current)
+{
+  hash_value h;
+  const QChar *p = current->prefix_end;
+  QChar c;
+  lin i, *bucket;
+  size_t length;
+
+  /* Cache often-used quantities in local variables to help the compiler.  */
+  const QChar **linbuf = current->linbuf;
+  lin alloc_lines = current->alloc_lines;
+  lin line = 0;
+  lin linbuf_base = current->linbuf_base;
+  lin *cureqs = (lin*)xmalloc (alloc_lines * sizeof *cureqs);
+  struct equivclass *eqs = equivs;
+  lin eqs_index = equivs_index;
+  lin eqs_alloc = equivs_alloc;
+  const QChar *suffix_begin = current->suffix_begin;
+  const QChar *bufend = current->buffer + current->buffered;
+  bool diff_length_compare_anyway =
+    ignore_white_space != IGNORE_NO_WHITE_SPACE || bIgnoreNumbers;
+  bool same_length_diff_contents_compare_anyway =
+    diff_length_compare_anyway | ignore_case;
+
+  while ( p < suffix_begin)
+    {
+      const QChar *ip = p;
+
+      h = 0;
+
+      /* Hash this line until we find a newline or bufend is reached.  */
+      if (ignore_case)
+       switch (ignore_white_space)
+         {
+         case IGNORE_ALL_SPACE:
+           while ( p<bufend && !isEndOfLine(c = *p) )
+            {
+          if (! (isWhite(c) || (bIgnoreNumbers && (c.isDigit() || c=='-' || c=='.' )) ))
+                  h = HASH (h, c.toLower().unicode());
+              ++p;
+            }            
+           break;
+
+         default:
+           while ( p<bufend && !isEndOfLine(c = *p) )
+            {
+               h = HASH (h, c.toLower().unicode());
+               ++p;
+            }
+           break;
+         }
+      else
+       switch (ignore_white_space)
+         {
+         case IGNORE_ALL_SPACE:
+           while ( p<bufend && !isEndOfLine(c = *p) )
+            {
+              if (! (isWhite(c)|| (bIgnoreNumbers && (c.isDigit() || c=='-' || c=='.' )) ))
+                 h = HASH (h, c.unicode());
+              ++p;
+            }
+           break;
+
+         default:
+           while ( p<bufend && !isEndOfLine(c = *p) )
+            {
+               h = HASH (h, c.unicode());
+               ++p;
+            }
+           break;
+         }
+
+      bucket = &buckets[h % nbuckets];
+      length = p - ip;
+      ++p;
+
+      for (i = *bucket;  ;  i = eqs[i].next)
+       if (!i)
+         {
+           /* Create a new equivalence class in this bucket.  */
+           i = eqs_index++;
+           if (i == eqs_alloc)
+             {
+               if ((lin)(PTRDIFF_MAX / (2 * sizeof *eqs)) <= eqs_alloc)
+                 xalloc_die ();
+               eqs_alloc *= 2;
+               eqs = (equivclass*)xrealloc (eqs, eqs_alloc * sizeof *eqs);
+             }
+           eqs[i].next = *bucket;
+           eqs[i].hash = h;
+           eqs[i].line = ip;
+           eqs[i].length = length;
+           *bucket = i;
+           break;
+         }
+       else if (eqs[i].hash == h)
+         {
+           const QChar *eqline = eqs[i].line;
+
+           /* Reuse existing class if lines_differ reports the lines
+               equal.  */
+           if (eqs[i].length == length)
+             {
+               /* Reuse existing equivalence class if the lines are identical.
+                  This detects the common case of exact identity
+                  faster than lines_differ would.  */
+               if (memcmp (eqline, ip, length*sizeof(QChar)) == 0)
+                 break;
+               if (!same_length_diff_contents_compare_anyway)
+                 continue;
+             }
+           else if (!diff_length_compare_anyway)
+             continue;
+
+           if (! lines_differ (eqline, eqs[i].length, ip, length))
+             break;
+         }
+
+      /* Maybe increase the size of the line table.  */
+      if (line == alloc_lines)
+       {
+         /* Double (alloc_lines - linbuf_base) by adding to alloc_lines.  */
+         if ((lin)(PTRDIFF_MAX / 3) <= alloc_lines
+             || (lin)(PTRDIFF_MAX / sizeof *cureqs) <= 2 * alloc_lines - linbuf_base
+             || (lin)(PTRDIFF_MAX / sizeof *linbuf) <= alloc_lines - linbuf_base)
+           xalloc_die ();
+         alloc_lines = 2 * alloc_lines - linbuf_base;
+         cureqs =(lin*) xrealloc (cureqs, alloc_lines * sizeof *cureqs);
+         linbuf += linbuf_base;
+         linbuf = (const QChar**) xrealloc (linbuf,
+                            (alloc_lines - linbuf_base) * sizeof *linbuf);
+         linbuf -= linbuf_base;
+       }
+      linbuf[line] = ip;
+      cureqs[line] = i;
+      ++line;
+    }
+
+  current->buffered_lines = line;
+
+  for (i = 0;  ;  i++)
+    {
+      /* Record the line start for lines in the suffix that we care about.
+        Record one more line start than lines,
+        so that we can compute the length of any buffered line.  */
+      if (line == alloc_lines)
+       {
+         /* Double (alloc_lines - linbuf_base) by adding to alloc_lines.  */
+         if ((lin)(PTRDIFF_MAX / 3) <= alloc_lines
+             || (lin)(PTRDIFF_MAX / sizeof *cureqs) <= 2 * alloc_lines - linbuf_base
+             || (lin)(PTRDIFF_MAX / sizeof *linbuf) <= alloc_lines - linbuf_base)
+           xalloc_die ();
+         alloc_lines = 2 * alloc_lines - linbuf_base;
+         linbuf += linbuf_base;
+         linbuf = (const QChar**)xrealloc (linbuf,
+                            (alloc_lines - linbuf_base) * sizeof *linbuf);
+         linbuf -= linbuf_base;
+       }
+      linbuf[line] = p;
+
+      if ( p >= bufend)
+       break;
+
+      if (context <= i && no_diff_means_no_output)
+       break;
+
+      line++;
+
+      while (p<bufend && !isEndOfLine(*p++) )
+        continue;
+    }
+
+  /* Done with cache in local variables.  */
+  current->linbuf = linbuf;
+  current->valid_lines = line;
+  current->alloc_lines = alloc_lines;
+  current->equivs = cureqs;
+  equivs = eqs;
+  equivs_alloc = eqs_alloc;
+  equivs_index = eqs_index;
+}
+
+/* We have found N lines in a buffer of size S; guess the
+   proportionate number of lines that will be found in a buffer of
+   size T.  However, do not guess a number of lines so large that the
+   resulting line table might cause overflow in size calculations.  */
+static lin
+guess_lines (lin n, size_t s, size_t t)
+{
+  size_t guessed_bytes_per_line = n < 10 ? 32 : s / (n - 1);
+  lin guessed_lines = MAX (1, t / guessed_bytes_per_line);
+  return MIN (guessed_lines, (lin)(PTRDIFF_MAX / (2 * sizeof (QChar *) + 1) - 5)) + 5;
+}
+
+/* Given a vector of two file_data objects, find the identical
+   prefixes and suffixes of each object.  */
+
+void GnuDiff::find_identical_ends (struct file_data filevec[])
+{
+  /* Find identical prefix.  */
+  const QChar *p0, *p1, *buffer0, *buffer1;
+  p0 = buffer0 = filevec[0].buffer;
+  p1 = buffer1 = filevec[1].buffer;
+  size_t n0, n1;
+  n0 = filevec[0].buffered;
+  n1 = filevec[1].buffered;
+  const QChar* const pEnd0 = p0 + n0;
+  const QChar* const pEnd1 = p1 + n1;
+
+  if (p0 == p1)
+    /* The buffers are the same; sentinels won't work.  */
+    p0 = p1 += n1;
+  else
+    {
+      /* Loop until first mismatch, or end. */
+      while ( p0!=pEnd0  &&  p1!=pEnd1  &&  *p0 == *p1 )
+      {
+         p0++;
+         p1++;
+      }
+    }
+
+  /* Now P0 and P1 point at the first nonmatching characters.  */
+
+  /* Skip back to last line-beginning in the prefix. */
+  while (p0 != buffer0 && ! isEndOfLine(p0[-1]) )
+    p0--, p1--;
+
+  /* Record the prefix.  */
+  filevec[0].prefix_end = p0;
+  filevec[1].prefix_end = p1;
+
+  /* Find identical suffix.  */
+
+  /* P0 and P1 point beyond the last chars not yet compared.  */
+  p0 = buffer0 + n0;
+  p1 = buffer1 + n1;
+
+   const QChar *end0, *beg0;
+   end0 = p0; /* Addr of last char in file 0.  */
+
+   /* Get value of P0 at which we should stop scanning backward:
+      this is when either P0 or P1 points just past the last char
+      of the identical prefix.  */
+   beg0 = filevec[0].prefix_end + (n0 < n1 ? 0 : n0 - n1);
+
+   /* Scan back until chars don't match or we reach that point.  */
+   for (; p0 != beg0; p0--, p1--)
+   {
+      if (*p0 != *p1)
+      {
+         /* Point at the first char of the matching suffix.  */
+         beg0 = p0;
+         break;
+      }
+   }
+
+   // Go to the next line (skip last line with a difference)
+   if ( p0 != end0 )
+   {
+      if (*p0 != *p1)
+         ++p0;
+      while ( p0<pEnd0 && !isEndOfLine(*p0++) )
+         continue;
+   }
+
+   p1 += p0 - beg0;
+
+  /* Record the suffix.  */
+  filevec[0].suffix_begin = p0;
+  filevec[1].suffix_begin = p1;
+
+  /* Calculate number of lines of prefix to save.
+
+     prefix_count == 0 means save the whole prefix;
+     we need this for options like -D that output the whole file,
+     or for enormous contexts (to avoid worrying about arithmetic overflow).
+     We also need it for options like -F that output some preceding line;
+     at least we will need to find the last few lines,
+     but since we don't know how many, it's easiest to find them all.
+
+     Otherwise, prefix_count != 0.  Save just prefix_count lines at start
+     of the line buffer; they'll be moved to the proper location later.
+     Handle 1 more line than the context says (because we count 1 too many),
+     rounded up to the next power of 2 to speed index computation.  */
+
+  const QChar **linbuf0, **linbuf1;
+  lin alloc_lines0, alloc_lines1;
+  lin buffered_prefix, prefix_count, prefix_mask;
+  lin middle_guess, suffix_guess;
+  if (no_diff_means_no_output
+      && context < (lin)(LIN_MAX / 4) && context < (lin)(n0))
+    {
+      middle_guess = guess_lines (0, 0, p0 - filevec[0].prefix_end);
+      suffix_guess = guess_lines (0, 0, buffer0 + n0 - p0);
+      for (prefix_count = 1;  prefix_count <= context;  prefix_count *= 2)
+       continue;
+      alloc_lines0 = (prefix_count + middle_guess
+                     + MIN (context, suffix_guess));
+    }
+  else
+    {
+      prefix_count = 0;
+      alloc_lines0 = guess_lines (0, 0, n0);
+    }
+
+  prefix_mask = prefix_count - 1;
+  lin lines = 0;
+  linbuf0 = (const QChar**) xmalloc (alloc_lines0 * sizeof(*linbuf0));
+  p0 = buffer0;
+
+  /* If the prefix is needed, find the prefix lines.  */
+  if (! (no_diff_means_no_output
+        && filevec[0].prefix_end == p0
+        && filevec[1].prefix_end == p1))
+    {
+      end0 = filevec[0].prefix_end;
+      while (p0 != end0)
+       {
+         lin l = lines++ & prefix_mask;
+         if (l == alloc_lines0)
+           {
+             if ((lin)(PTRDIFF_MAX / (2 * sizeof *linbuf0)) <= alloc_lines0)
+               xalloc_die ();
+             alloc_lines0 *= 2;
+              linbuf0 = (const QChar**) xrealloc (linbuf0, alloc_lines0 * sizeof(*linbuf0));
+           }
+         linbuf0[l] = p0;
+         while ( p0<pEnd0 && !isEndOfLine(*p0++) )
+           continue;
+       }
+    }
+  buffered_prefix = prefix_count && context < lines ? context : lines;
+
+  /* Allocate line buffer 1.  */
+
+  middle_guess = guess_lines (lines, p0 - buffer0, p1 - filevec[1].prefix_end);
+  suffix_guess = guess_lines (lines, p0 - buffer0, buffer1 + n1 - p1);
+  alloc_lines1 = buffered_prefix + middle_guess + MIN (context, suffix_guess);
+  if (alloc_lines1 < buffered_prefix
+      || (lin)(PTRDIFF_MAX / sizeof *linbuf1) <= alloc_lines1)
+    xalloc_die ();
+  linbuf1 = (const QChar**)xmalloc (alloc_lines1 * sizeof(*linbuf1));
+
+  lin i;
+  if (buffered_prefix != lines)
+  {
+      /* Rotate prefix lines to proper location.  */
+      for (i = 0;  i < buffered_prefix;  i++)
+       linbuf1[i] = linbuf0[(lines - context + i) & prefix_mask];
+      for (i = 0;  i < buffered_prefix;  i++)
+       linbuf0[i] = linbuf1[i];
+  }
+
+  /* Initialize line buffer 1 from line buffer 0.  */
+  for (i = 0; i < buffered_prefix; i++)
+    linbuf1[i] = linbuf0[i] - buffer0 + buffer1;
+
+  /* Record the line buffer, adjusted so that
+     linbuf[0] points at the first differing line.  */
+  filevec[0].linbuf = linbuf0 + buffered_prefix;
+  filevec[1].linbuf = linbuf1 + buffered_prefix;
+  filevec[0].linbuf_base = filevec[1].linbuf_base = - buffered_prefix;
+  filevec[0].alloc_lines = alloc_lines0 - buffered_prefix;
+  filevec[1].alloc_lines = alloc_lines1 - buffered_prefix;
+  filevec[0].prefix_lines = filevec[1].prefix_lines = lines;
+}
+
+/* If 1 < k, then (2**k - prime_offset[k]) is the largest prime less
+   than 2**k.  This table is derived from Chris K. Caldwell's list
+   <http://www.utm.edu/research/primes/lists/2small/>.  */
+
+static unsigned char const prime_offset[] =
+{
+  0, 0, 1, 1, 3, 1, 3, 1, 5, 3, 3, 9, 3, 1, 3, 19, 15, 1, 5, 1, 3, 9, 3,
+  15, 3, 39, 5, 39, 57, 3, 35, 1, 5, 9, 41, 31, 5, 25, 45, 7, 87, 21,
+  11, 57, 17, 55, 21, 115, 59, 81, 27, 129, 47, 111, 33, 55, 5, 13, 27,
+  55, 93, 1, 57, 25
+};
+
+/* Verify that this host's size_t is not too wide for the above table.  */
+
+verify (enough_prime_offsets,
+       sizeof (size_t) * CHAR_BIT <= sizeof prime_offset);
+
+/* Given a vector of two file_data objects, read the file associated
+   with each one, and build the table of equivalence classes.
+   Return nonzero if either file appears to be a binary file.
+   If PRETEND_BINARY is nonzero, pretend they are binary regardless.  */
+
+bool
+GnuDiff::read_files (struct file_data filevec[], bool /*pretend_binary*/)
+{
+  int i;
+
+  find_identical_ends (filevec);
+
+  equivs_alloc = filevec[0].alloc_lines + filevec[1].alloc_lines + 1;
+  if ((lin)(PTRDIFF_MAX / sizeof *equivs) <= equivs_alloc)
+    xalloc_die ();
+  equivs = (equivclass*)xmalloc (equivs_alloc * sizeof *equivs);
+  /* Equivalence class 0 is permanently safe for lines that were not
+     hashed.  Real equivalence classes start at 1.  */
+  equivs_index = 1;
+
+  /* Allocate (one plus) a prime number of hash buckets.  Use a prime
+     number between 1/3 and 2/3 of the value of equiv_allocs,
+     approximately.  */
+  for (i = 9;  1 << i < equivs_alloc / 3; i++)
+    continue;
+  nbuckets = ((size_t) 1 << i) - prime_offset[i];
+  if (PTRDIFF_MAX / sizeof *buckets <= nbuckets)
+    xalloc_die ();
+  buckets = (lin*)zalloc ((nbuckets + 1) * sizeof *buckets);
+  buckets++;
+
+  for (i = 0; i < 2; i++)
+    find_and_hash_each_line (&filevec[i]);
+
+  filevec[0].equiv_max = filevec[1].equiv_max = equivs_index;
+
+  free (equivs);
+  free (buckets - 1);
+
+  return 0;
+}
diff --git a/src-QT4/gnudiff_system.h b/src-QT4/gnudiff_system.h
new file mode 100644 (file)
index 0000000..0931e1f
--- /dev/null
@@ -0,0 +1,121 @@
+/* System dependent declarations.
+
+   Modified for KDiff3 by Joachim Eibl 2003.
+   The original file was part of GNU DIFF.
+
+   Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1998, 2001, 2002
+   Free Software Foundation, Inc.
+
+   GNU DIFF is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   GNU DIFF is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; see the file COPYING.
+   If not, write to the Free Software Foundation,
+   51 Franklin Steet, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#ifndef GNUDIFF_SYSTEM_H
+#define GNUDIFF_SYSTEM_H
+
+
+
+/* Don't bother to support K&R C compilers any more; it's not worth
+   the trouble.  These macros prevent some library modules from being
+   compiled in K&R C mode.  */
+#define PARAMS(Args) Args
+#define PROTOTYPES 1
+
+/* Verify a requirement at compile-time (unlike assert, which is runtime).  */
+#define verify(name, assertion) struct name { char a[(assertion) ? 1 : -1]; }
+
+
+/* Determine whether an integer type is signed, and its bounds.
+   This code assumes two's (or one's!) complement with no holes.  */
+
+/* The extra casts work around common compiler bugs,
+   e.g. Cray C 5.0.3.0 when t == time_t.  */
+#ifndef TYPE_SIGNED
+# define TYPE_SIGNED(t) (! ((t) 0 < (t) -1))
+#endif
+#ifndef TYPE_MINIMUM
+# define TYPE_MINIMUM(t) ((t) (TYPE_SIGNED (t) \
+                              ? ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1) \
+                              : (t) 0))
+#endif
+#ifndef TYPE_MAXIMUM
+# define TYPE_MAXIMUM(t) ((t) (~ (t) 0 - TYPE_MINIMUM (t)))
+#endif
+
+#include <sys/types.h>
+#include <sys/stat.h>
+
+
+# include <stdlib.h>
+#ifndef EXIT_SUCCESS
+# define EXIT_SUCCESS 0
+#endif
+#if !EXIT_FAILURE
+# undef EXIT_FAILURE /* Sony NEWS-OS 4.0C defines EXIT_FAILURE to 0.  */
+# define EXIT_FAILURE 1
+#endif
+#define EXIT_TROUBLE 2
+
+#include <limits.h>
+#ifndef SSIZE_MAX
+# define SSIZE_MAX TYPE_MAXIMUM (ssize_t)
+#endif
+
+#ifndef PTRDIFF_MAX
+# define PTRDIFF_MAX TYPE_MAXIMUM (ptrdiff_t)
+#endif
+#ifndef SIZE_MAX
+# define SIZE_MAX TYPE_MAXIMUM (size_t)
+#endif
+#ifndef UINTMAX_MAX
+# define UINTMAX_MAX TYPE_MAXIMUM (uintmax_t)
+#endif
+
+#include <stddef.h>
+#include <string.h>
+#include <ctype.h>
+
+/* CTYPE_DOMAIN (C) is nonzero if the unsigned char C can safely be given
+   as an argument to <ctype.h> macros like `isspace'.  */
+# define CTYPE_DOMAIN(c) 1
+#define ISPRINT(c) (CTYPE_DOMAIN (c) && isprint (c))
+#define ISSPACE(c) (CTYPE_DOMAIN (c) && isspace (c))
+
+# define TOLOWER(c) tolower (c)
+
+/* ISDIGIT differs from isdigit, as follows:
+   - Its arg may be any int or unsigned int; it need not be an unsigned char.
+   - It's guaranteed to evaluate its argument exactly once.
+   - It's typically faster.
+   POSIX 1003.1-2001 says that only '0' through '9' are digits.
+   Prefer ISDIGIT to isdigit unless it's important to use the locale's
+   definition of `digit' even when the host does not conform to POSIX.  */
+#define ISDIGIT(c) ((unsigned int) (c) - '0' <= 9)
+
+#undef MIN
+#undef MAX
+#define MIN(a, b) ((a) <= (b) ? (a) : (b))
+#define MAX(a, b) ((a) >= (b) ? (a) : (b))
+
+
+/* The integer type of a line number.  Since files are read into main
+   memory, ptrdiff_t should be wide enough.  */
+
+typedef ptrdiff_t lin;
+#define LIN_MAX PTRDIFF_MAX
+verify (lin_is_signed, TYPE_SIGNED (lin));
+verify (lin_is_wide_enough, sizeof (ptrdiff_t) <= sizeof (lin));
+//verify (lin_is_printable_as_long, sizeof (lin) <= sizeof (long));
+
+#endif
diff --git a/src-QT4/gnudiff_xmalloc.cpp b/src-QT4/gnudiff_xmalloc.cpp
new file mode 100644 (file)
index 0000000..b1fc3ac
--- /dev/null
@@ -0,0 +1,86 @@
+/* xmalloc.c -- malloc with out of memory checking
+
+   Modified for KDiff3 by Joachim Eibl 2003.
+   The original file was part of GNU DIFF.
+
+   Copyright (C) 1990-1999, 2000, 2002 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Steet, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+# include <config-kdiff3.h>
+
+#include <sys/types.h>
+
+
+#include <stdlib.h>
+#include <string.h>
+
+
+#ifndef EXIT_FAILURE
+# define EXIT_FAILURE 1
+#endif
+
+#include "gnudiff_diff.h"
+/* If non NULL, call this function when memory is exhausted. */
+//void (*xalloc_fail_func) PARAMS ((void)) = 0;
+void (*xalloc_fail_func)(void) = 0;
+
+
+void GnuDiff::xalloc_die (void)
+{
+  if (xalloc_fail_func)
+    (*xalloc_fail_func) ();
+  //error (exit_failure, 0, "%s", _(xalloc_msg_memory_exhausted));
+  /* The `noreturn' cannot be given to error, since it may return if
+     its first argument is 0.  To help compilers understand the
+     xalloc_die does terminate, call exit. */
+  exit (EXIT_FAILURE);
+}
+
+/* Allocate N bytes of memory dynamically, with error checking.  */
+
+void *
+GnuDiff::xmalloc (size_t n)
+{
+  void *p;
+
+  p = malloc (n == 0 ? 1 : n); // There are systems where malloc returns 0 for n==0.
+  if (p == 0)
+    xalloc_die ();
+  return p;
+}
+
+/* Change the size of an allocated block of memory P to N bytes,
+   with error checking.  */
+
+void *
+GnuDiff::xrealloc (void *p, size_t n)
+{
+  p = realloc (p, n==0 ? 1 : n);
+  if (p == 0)
+    xalloc_die ();
+  return p;
+}
+
+
+/* Yield a new block of SIZE bytes, initialized to zero.  */
+
+void *
+GnuDiff::zalloc (size_t size)
+{
+  void *p = xmalloc (size);
+  memset (p, 0, size);
+  return p;
+}
diff --git a/src-QT4/guiutils.h b/src-QT4/guiutils.h
new file mode 100644 (file)
index 0000000..e9a4786
--- /dev/null
@@ -0,0 +1,130 @@
+/***************************************************************************
+                          kdiff3.h  -  description
+                             -------------------
+    begin                : March 26 17:44 CEST 2002
+    copyright            : (c) 2008 by Valentin Rusu
+    email                : kde at rusu.info
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 3 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#include <QObject>
+#include <kactioncollection.h>
+
+namespace KDiff3 {
+
+   template <class T>
+   T* createAction( 
+        const QString& text, 
+        const QObject* receiver, 
+        const char* slot, 
+        KActionCollection* ac, 
+        const char* actionName);
+   
+   template <>
+   inline KAction* createAction<KAction>( 
+                   const QString& text, 
+                   const QObject* receiver, 
+                   const char* slot, 
+                   KActionCollection* ac, 
+                   const char* actionName)    {
+      assert( ac != 0 );
+      KAction* theAction = ac->addAction( actionName );
+      theAction->setText( text );
+      QObject::connect( theAction, SIGNAL( triggered() ), receiver, slot );
+      return theAction;
+   }
+   template <>
+   inline KToggleAction* createAction<KToggleAction>( 
+                   const QString& text, 
+                   const QObject* receiver, 
+                   const char* slot, 
+                   KActionCollection* ac, 
+                   const char* actionName)    {
+      assert( ac != 0 );
+      KToggleAction* theAction = new KToggleAction(ac);
+      ac->addAction( actionName, theAction );
+      theAction->setText( text );
+      QObject::connect( theAction, SIGNAL( triggered(bool) ), receiver, slot );
+      return theAction;
+   }
+   
+   template <class T>
+   T* createAction( 
+        const QString& text, 
+        const KShortcut& shortcut, 
+        const QObject* receiver, 
+        const char* slot, 
+        KActionCollection* ac, 
+        const char* actionName) 
+   {
+      T* theAction = createAction<T>( text, receiver, slot, ac, actionName );
+      theAction->setShortcut( shortcut );
+      return theAction;
+   }
+   template <class T>
+   T* createAction(
+      const QString& text,
+      const QIcon& icon,
+      const QObject* receiver,
+      const char* slot,
+      KActionCollection* ac,
+      const char* actionName)
+   {
+      T* theAction = createAction<T>( text, receiver, slot, ac, actionName );
+      theAction->setIcon( icon );
+      return theAction;
+   }
+   template <class T>
+   T* createAction(
+      const QString& text,
+      const QIcon& icon,
+      const QString& iconText,
+      const QObject* receiver,
+      const char* slot,
+      KActionCollection* ac,
+      const char* actionName)
+   {
+      T* theAction = createAction<T>( text, receiver, slot, ac, actionName );
+      theAction->setIcon( icon );
+      theAction->setIconText( iconText );
+      return theAction;
+   }
+   template <class T>
+   T* createAction(
+        const QString& text,
+        const QIcon& icon,
+        const KShortcut& shortcut,
+        const QObject* receiver,
+        const char* slot,
+        KActionCollection* ac,
+        const char* actionName)
+   {
+      T* theAction = createAction<T>( text, shortcut, receiver, slot, ac, actionName );
+      theAction->setIcon( icon );
+      return theAction;
+   }
+   template <class T>
+   T* createAction(
+         const QString& text,
+         const QIcon& icon,
+         const QString& iconText,
+         const KShortcut& shortcut,
+         const QObject* receiver,
+         const char* slot,
+         KActionCollection* ac,
+         const char* actionName)
+   {
+      T* theAction = createAction<T>( text, shortcut, receiver, slot, ac, actionName );
+      theAction->setIcon( icon );
+      theAction->setIconText( iconText );
+      return theAction;
+   }
+}
diff --git a/src-QT4/hi16-app-kdiff3.png b/src-QT4/hi16-app-kdiff3.png
new file mode 100644 (file)
index 0000000..768504d
Binary files /dev/null and b/src-QT4/hi16-app-kdiff3.png differ
diff --git a/src-QT4/hi32-app-kdiff3.png b/src-QT4/hi32-app-kdiff3.png
new file mode 100644 (file)
index 0000000..54f2b27
Binary files /dev/null and b/src-QT4/hi32-app-kdiff3.png differ
diff --git a/src-QT4/kdiff3.cpp b/src-QT4/kdiff3.cpp
new file mode 100644 (file)
index 0000000..3ac8930
--- /dev/null
@@ -0,0 +1,1089 @@
+/***************************************************************************
+                          kdiff3.cpp  -  description
+                             -------------------
+    begin                : Don Jul 11 12:31:29 CEST 2002
+    copyright            : (C) 2002-2007 by Joachim Eibl
+    email                : joachim.eibl at gmx.de
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#include "difftextwindow.h"
+#include "mergeresultwindow.h"
+
+#include <cassert>
+
+// include files for QT
+#include <QDir>
+#include <QPrinter>
+#include <QPainter>
+#include <QSplitter>
+#include <QLineEdit>
+#include <QCheckBox>
+#include <QPushButton>
+#include <QMenu>
+#include <QLabel>
+#include <QTextEdit>
+#include <QLayout>
+#include <QPaintDevice>
+#include <QStatusBar>
+#include <QDesktopWidget>
+#include <QPrinter>
+#include <QPrintDialog>
+
+// include files for KDE
+#include <kiconloader.h>
+#include <kmessagebox.h>
+#include <kfiledialog.h>
+#include <kmenubar.h>
+#include <kstatusbar.h>
+#include <klocale.h>
+#include <kconfig.h>
+#include <kstandardaction.h>
+#include <kcmdlineargs.h>
+//#include <kkeydialog.h>
+#include <kglobal.h>
+#include <ktoggleaction.h>
+#include <ktoolbar.h>
+#include <kiconloader.h>
+#include <kactioncollection.h>
+
+// application specific includes
+#include "kdiff3.h"
+#include "optiondialog.h"
+#include "fileaccess.h"
+#include "progress.h"
+#include "kdiff3_part.h"
+#include "directorymergewindow.h"
+#include "smalldialogs.h"
+#include "guiutils.h" // namespace KDiff3
+
+#define ID_STATUS_MSG 1
+#define MAIN_TOOLBAR_NAME "mainToolBar"
+
+KActionCollection* KDiff3App::actionCollection()
+{
+   if ( m_pKDiff3Shell==0 )
+      return m_pKDiff3Part->actionCollection();
+   else
+      return m_pKDiff3Shell->actionCollection();
+}
+
+KStatusBar* KDiff3App::statusBar()
+{
+   if ( m_pKDiff3Shell==0 )
+      return 0;
+   else
+      return m_pKDiff3Shell->statusBar();
+}
+
+KToolBar* KDiff3App::toolBar(const char* toolBarId )
+{
+   if ( m_pKDiff3Shell==0 )
+      return 0;
+   else
+      return m_pKDiff3Shell->toolBar( toolBarId );
+//return m_pKDiff3Shell->toolBar();
+}
+
+bool KDiff3App::isPart()
+{
+   return m_pKDiff3Shell==0;
+}
+
+bool KDiff3App::isFileSaved()
+{
+   return m_bFileSaved;
+}
+
+bool KDiff3App::isDirComparison()
+{
+   return m_bDirCompare;
+}
+
+KDiff3App::KDiff3App(QWidget* pParent, const char* /*name*/, KDiff3Part* pKDiff3Part )
+   : QSplitter(pParent)  //previously KMainWindow
+{
+   setObjectName( "KDiff3App" );
+   m_pKDiff3Part = pKDiff3Part;
+   m_pKDiff3Shell = qobject_cast<KParts::MainWindow*>(pParent);
+
+   setWindowTitle( "KDiff3" );
+   setOpaqueResize(false); // faster resizing
+   setUpdatesEnabled(false);
+
+   // set Disabled to same color as enabled to prevent flicker in DirectoryMergeWindow
+   QPalette pal;
+   pal.setBrush(QPalette::Base, pal.brush(QPalette::Active, QPalette::Base));
+   pal.setColor(QPalette::Text, pal.color(QPalette::Active, QPalette::Text));
+   setPalette(pal);
+
+   m_pMainSplitter = 0;
+   m_pDirectoryMergeSplitter = 0;
+   m_pDirectoryMergeWindow = 0;
+   m_pCornerWidget = 0;
+   m_pMainWidget = 0;
+   m_pDiffTextWindow1 = 0;
+   m_pDiffTextWindow2 = 0;
+   m_pDiffTextWindow3 = 0;
+   m_pDiffTextWindowFrame1 = 0;
+   m_pDiffTextWindowFrame2 = 0;
+   m_pDiffTextWindowFrame3 = 0;
+   m_pDiffWindowSplitter = 0;
+   m_pOverview        = 0;
+   m_bTripleDiff = false;
+   m_pMergeResultWindow = 0;
+   m_pMergeWindowFrame = 0;
+   m_bOutputModified = false;
+   m_bFileSaved = false;
+   m_bTimerBlock = false;
+   m_pHScrollBar = 0;
+   m_pDiffVScrollBar = 0;
+   m_pMergeVScrollBar = 0;
+   viewToolBar = 0;
+   m_bRecalcWordWrapPosted = false;
+   m_bFinishMainInit = false;
+   m_pEventLoopForPrinting = 0;
+   m_bLoadFiles = false;
+
+   // Needed before any file operations via FileAccess happen.
+   if (!g_pProgressDialog)
+   {
+      g_pProgressDialog = new ProgressDialog(this,statusBar());
+      g_pProgressDialog->setStayHidden( true );
+   }
+
+   // All default values must be set before calling readOptions().
+   m_pOptionDialog = new OptionDialog( m_pKDiff3Shell!=0, this );
+   connect( m_pOptionDialog, SIGNAL(applyDone()), this, SLOT(slotRefresh()) );
+
+   // This is just a convenience variable to make code that accesses options more readable
+   m_pOptions = &m_pOptionDialog->m_options;
+
+   m_pOptionDialog->readOptions( isPart() ? m_pKDiff3Part->componentData().config() : KGlobal::config() );
+
+   // Option handling: Only when pParent==0 (no parent)
+   KCmdLineArgs *args = isPart() ? 0 : KCmdLineArgs::parsedArgs();
+
+   if (args)
+   {
+      QString s;
+      QString title;
+      if ( args->isSet("confighelp") )
+      {
+         s = m_pOptionDialog->calcOptionHelp();
+         title = i18n("Current Configuration:");
+      }
+      else
+      {
+         s = m_pOptionDialog->parseOptions( args->getOptionList("cs") );
+         title = i18n("Config Option Error:");
+      }
+      if (!s.isEmpty())
+      {
+#if defined(_WIN32) || defined(Q_OS_OS2) 
+         // A windows program has no console
+         //KMessageBox::information(0, s,i18n("KDiff3-Usage"));
+         QDialog* pDialog = new QDialog(this);
+         pDialog->setAttribute( Qt::WA_DeleteOnClose );
+         pDialog->setModal( true );
+         pDialog->setWindowTitle(title);
+         QVBoxLayout* pVBoxLayout = new QVBoxLayout( pDialog );
+         QTextEdit* pTextEdit = new QTextEdit(pDialog);
+         pTextEdit->setText(s);
+         pTextEdit->setReadOnly(true);
+         pTextEdit->setWordWrapMode(QTextOption::NoWrap);
+         pVBoxLayout->addWidget(pTextEdit);
+         pDialog->resize(600,400);
+         pDialog->exec();
+#else
+         printf( "%s\n", title.toLatin1().constData());
+         printf( "%s\n", s.toLatin1().constData());
+#endif
+         exit(1);
+      }
+   }
+
+   m_sd1.setOptions(m_pOptions);
+   m_sd2.setOptions(m_pOptions);
+   m_sd3.setOptions(m_pOptions);
+
+   if (args!=0)
+   {
+      m_outputFilename = args->getOption("output");
+      if ( m_outputFilename.isEmpty() )
+         m_outputFilename = args->getOption("out");
+      if ( ! m_outputFilename.isEmpty() )
+         m_outputFilename = FileAccess( m_outputFilename, true ).absoluteFilePath();
+   }
+
+   m_bAutoFlag = args!=0  && args->isSet("auto");
+   m_bAutoMode = m_bAutoFlag || m_pOptions->m_bAutoSaveAndQuitOnMergeWithoutConflicts;
+   if ( m_bAutoMode && m_outputFilename.isEmpty() )
+   {
+      if ( m_bAutoFlag )
+      {
+         //KMessageBox::information(this, i18n("Option --auto used, but no output file specified."));
+         fprintf(stderr, "%s\n", (const char*)i18n("Option --auto used, but no output file specified.").toLatin1());
+      }
+      m_bAutoMode = false;
+   }
+   g_pProgressDialog->setStayHidden( m_bAutoMode );
+
+   if ( m_outputFilename.isEmpty() && args!=0 && args->isSet("merge") )
+   {
+      m_outputFilename = "unnamed.txt";
+      m_bDefaultFilename = true;
+   }
+   else
+      m_bDefaultFilename = false;
+
+   g_bAutoSolve = args!=0 && !args->isSet("qall");  // Note that this is effective only once.
+
+   if ( args!=0 )
+   {
+      m_sd1.setFilename( args->getOption("base") );
+      if ( m_sd1.isEmpty() )
+      {
+         if ( args->count() > 0 ) m_sd1.setFilename( args->url(0).url() ); // args->arg(0)
+         if ( args->count() > 1 ) m_sd2.setFilename( args->url(1).url() );
+         if ( args->count() > 2 ) m_sd3.setFilename( args->url(2).url() );
+      }
+      else
+      {
+         if ( args->count() > 0 ) m_sd2.setFilename( args->url(0).url() );
+         if ( args->count() > 1 ) m_sd3.setFilename( args->url(1).url() );
+      }
+
+
+      QStringList aliasList = args->getOptionList("fname");
+      QStringList::Iterator ali = aliasList.begin();
+
+      QString an1 = args->getOption("L1");
+      if ( !an1.isEmpty() )              { m_sd1.setAliasName(an1);         }
+      else if ( ali != aliasList.end() ) { m_sd1.setAliasName(*ali); ++ali; }
+
+      QString an2 = args->getOption("L2");
+      if ( !an2.isEmpty() )              { m_sd2.setAliasName(an2);         }
+      else if ( ali != aliasList.end() ) { m_sd2.setAliasName(*ali); ++ali; }
+
+      QString an3 = args->getOption("L3");
+      if ( !an3.isEmpty() )              { m_sd3.setAliasName(an3);         }
+      else if ( ali != aliasList.end() ) { m_sd3.setAliasName(*ali); ++ali; }
+   }
+
+   ///////////////////////////////////////////////////////////////////
+   // call inits to invoke all other construction parts
+   initActions(actionCollection());
+   initStatusBar();
+
+   m_pFindDialog = new FindDialog( this );
+   connect( m_pFindDialog, SIGNAL(findNext()), this, SLOT(slotEditFindNext()));
+
+   autoAdvance->setChecked( m_pOptions->m_bAutoAdvance );
+   showWhiteSpaceCharacters->setChecked( m_pOptions->m_bShowWhiteSpaceCharacters );
+   showWhiteSpace->setChecked( m_pOptions->m_bShowWhiteSpace );
+   showWhiteSpaceCharacters->setEnabled( m_pOptions->m_bShowWhiteSpace );
+   showLineNumbers->setChecked( m_pOptions->m_bShowLineNumbers );
+   wordWrap->setChecked( m_pOptions->m_bWordWrap );
+   if ( ! isPart() )
+   {
+//  TODO 
+//       viewToolBar->setChecked( m_pOptions->m_bShowToolBar );
+//       slotViewToolBar();
+
+      viewStatusBar->setChecked( m_pOptions->m_bShowStatusBar );
+      slotViewStatusBar();
+/*
+   vrusu - commented out as new KToolBar does not hase setParPos
+   TODO figure out how to restore bar position
+      if( toolBar(MAIN_TOOLBAR_NAME)!=0 )
+         toolBar(MAIN_TOOLBAR_NAME)->setBarPos( (KToolBar::BarPosition) m_pOptions->m_toolBarPos );*/
+/*      QSize size = m_pOptions->m_geometry;
+      QPoint pos = m_pOptions->m_position;
+      if(!size.isEmpty())
+      {
+         m_pKDiff3Shell->resize( size );
+         QRect visibleRect = QRect( pos, size ) & QApplication::desktop()->rect();
+         if ( visibleRect.width()>100 && visibleRect.height()>100 )
+            m_pKDiff3Shell->move( pos );
+      }*/
+   }
+   slotRefresh();
+
+   m_pMainSplitter = this; //new QSplitter(this);
+   m_pMainSplitter->setOrientation( Qt::Vertical );
+//   setCentralWidget( m_pMainSplitter );
+   m_pDirectoryMergeSplitter = new QSplitter( m_pMainSplitter );
+   m_pDirectoryMergeSplitter->setObjectName("DirectoryMergeSplitter");
+   m_pMainSplitter->addWidget( m_pDirectoryMergeSplitter );
+   m_pDirectoryMergeSplitter->setOrientation( Qt::Horizontal );
+   m_pDirectoryMergeWindow = new DirectoryMergeWindow( m_pDirectoryMergeSplitter, m_pOptions,
+      KIconLoader::global() );
+   m_pDirectoryMergeSplitter->addWidget(m_pDirectoryMergeWindow);
+   m_pDirectoryMergeInfo = new DirectoryMergeInfo( m_pDirectoryMergeSplitter );
+   m_pDirectoryMergeWindow->setDirectoryMergeInfo( m_pDirectoryMergeInfo );
+   m_pDirectoryMergeSplitter->addWidget(m_pDirectoryMergeInfo);
+
+   connect( m_pDirectoryMergeWindow, SIGNAL(startDiffMerge(QString,QString,QString,QString,QString,QString,QString,TotalDiffStatus*)),
+            this, SLOT( slotFileOpen2(QString,QString,QString,QString,QString,QString,QString,TotalDiffStatus*)));
+   connect( m_pDirectoryMergeWindow->selectionModel(), SIGNAL(selectionChanged(const QItemSelection&,const QItemSelection&)), this, SLOT(slotUpdateAvailabilities()));
+   connect( m_pDirectoryMergeWindow->selectionModel(), SIGNAL(currentChanged(const QModelIndex&,const QModelIndex&)), this, SLOT(slotUpdateAvailabilities()));
+   connect( m_pDirectoryMergeWindow, SIGNAL(checkIfCanContinue(bool*)), this, SLOT(slotCheckIfCanContinue(bool*)));
+   connect( m_pDirectoryMergeWindow, SIGNAL(updateAvailabilities()), this, SLOT(slotUpdateAvailabilities()));
+   connect( m_pDirectoryMergeWindow, SIGNAL(statusBarMessage(const QString&)), this, SLOT(slotStatusMsg(const QString&)));
+
+   m_pDirectoryMergeWindow->initDirectoryMergeActions( this, actionCollection() );
+
+   if ( args!=0 )  args->clear(); // Free up some memory.
+
+   if (m_pKDiff3Shell==0)
+   {
+      completeInit();
+   }
+}
+
+
+void KDiff3App::completeInit( const QString& fn1, const QString& fn2, const QString& fn3 )
+{
+   if (m_pKDiff3Shell!=0)
+   {
+      QSize size=m_pOptions->m_geometry;
+      QPoint pos=m_pOptions->m_position;
+      if(!size.isEmpty())
+      {
+         m_pKDiff3Shell->resize( size );
+
+         QRect visibleRect = QRect( pos, size ) & QApplication::desktop()->rect();
+         if ( visibleRect.width()>100 && visibleRect.height()>100 )
+            m_pKDiff3Shell->move( pos );
+         if (!m_bAutoMode)
+         {
+            if ( m_pOptions->m_bMaximised )
+               m_pKDiff3Shell->showMaximized();
+            else
+               m_pKDiff3Shell->show();
+         }
+      }
+   }
+   if ( ! fn1.isEmpty() )  { m_sd1.setFilename(fn1); }
+   if ( ! fn2.isEmpty() )  { m_sd2.setFilename(fn2); }
+   if ( ! fn3.isEmpty() )  { m_sd3.setFilename(fn3); }
+
+   bool bSuccess = improveFilenames(false);
+
+   if ( m_bAutoFlag && m_bAutoMode && m_bDirCompare )
+   {
+      fprintf(stderr, "%s\n", (const char*)i18n("Option --auto ignored for directory comparison.").toLatin1());
+      m_bAutoMode = false;
+   }
+   if (!m_bDirCompare)
+   {
+      m_pDirectoryMergeSplitter->hide();
+
+      mainInit();
+      if ( m_bAutoMode )
+      {
+         SourceData* pSD=0;
+         if ( m_sd3.isEmpty() )
+         {
+            if ( m_totalDiffStatus.bBinaryAEqB ){ pSD = &m_sd1; }
+         }
+         else
+         {
+            if      ( m_totalDiffStatus.bBinaryBEqC ){ pSD = &m_sd3; } // B==C (assume A is old)
+            else if ( m_totalDiffStatus.bBinaryAEqB ){ pSD = &m_sd3; } // assuming C has changed
+            else if ( m_totalDiffStatus.bBinaryAEqC ){ pSD = &m_sd2; } // assuming B has changed
+         }
+
+         if ( pSD!=0 )
+         {
+            // Save this file directly, not via the merge result window.
+            bool bSuccess = false;
+            FileAccess fa( m_outputFilename );
+            if ( m_pOptions->m_bDmCreateBakFiles && fa.exists() )
+            {
+               QString newName = m_outputFilename + ".orig";
+               if ( FileAccess::exists( newName ) ) FileAccess::removeFile( newName );
+               if ( !FileAccess::exists( newName ) ) fa.rename( newName );
+            }
+
+            bSuccess = pSD->saveNormalDataAs( m_outputFilename );
+            if ( bSuccess ) ::exit(0);
+            else KMessageBox::error( this, i18n("Saving failed.") );
+         }
+         else if ( m_pMergeResultWindow->getNrOfUnsolvedConflicts() == 0 )
+         {
+            bool bSuccess = m_pMergeResultWindow->saveDocument( m_pMergeResultWindowTitle->getFileName(), m_pMergeResultWindowTitle->getEncoding(), m_pMergeResultWindowTitle->getLineEndStyle() );
+            if ( bSuccess ) ::exit(0);
+         }
+      }
+   }
+   m_bAutoMode = false;
+
+   if (m_pKDiff3Shell)
+   {
+      if ( m_pOptions->m_bMaximised )
+         m_pKDiff3Shell->showMaximized();
+      else
+         m_pKDiff3Shell->show();
+   }
+
+   g_pProgressDialog->setStayHidden( false );
+
+   if (statusBar() !=0 )
+      statusBar()->setSizeGripEnabled(true);
+
+   slotClipboardChanged(); // For initialisation.
+
+   slotUpdateAvailabilities();
+
+   if ( ! m_bDirCompare  &&  m_pKDiff3Shell!=0 )
+   {
+      bool bFileOpenError = false;
+      if ( (! m_sd1.isEmpty() && !m_sd1.hasData())  ||
+           (! m_sd2.isEmpty() && !m_sd2.hasData())  ||
+           (! m_sd3.isEmpty() && !m_sd3.hasData()) )
+      {
+         QString text( i18n("Opening of these files failed:") );
+         text += "\n\n";
+         if ( ! m_sd1.isEmpty() && !m_sd1.hasData() )
+            text += " - " + m_sd1.getAliasName() + "\n";
+         if ( ! m_sd2.isEmpty() && !m_sd2.hasData() )
+            text += " - " + m_sd2.getAliasName() + "\n";
+         if ( ! m_sd3.isEmpty() && !m_sd3.hasData() )
+            text += " - " + m_sd3.getAliasName() + "\n";
+
+         KMessageBox::sorry( this, text, i18n("File Open Error") );
+         bFileOpenError = true;
+      }
+
+      if ( m_sd1.isEmpty() || m_sd2.isEmpty() || bFileOpenError )
+         slotFileOpen();
+   }
+   else if ( !bSuccess )  // Directory open failed
+   {
+      slotFileOpen();
+   }
+}
+
+KDiff3App::~KDiff3App()
+{
+
+}
+
+/**
+ * Helper function used to create actions into the ac collection
+ */
+
+void KDiff3App::initActions( KActionCollection* ac )
+{
+   if (ac==0)
+      KMessageBox::error(0, "actionCollection==0");
+
+   fileOpen = KStandardAction::open(this, SLOT(slotFileOpen()), ac);
+   fileOpen->setStatusTip(i18n("Opens documents for comparison..."));
+
+   fileReload = KDiff3::createAction< KAction >( i18n("Reload"), KShortcut( Qt::Key_F5 ), this, SLOT(slotReload()), ac, "file_reload" );
+
+   fileSave = KStandardAction::save(this, SLOT(slotFileSave()), ac);
+   fileSave->setStatusTip(i18n("Saves the merge result. All conflicts must be solved!"));
+   fileSaveAs = KStandardAction::saveAs(this, SLOT(slotFileSaveAs()), ac);
+   fileSaveAs->setStatusTip(i18n("Saves the current document as..."));
+#ifndef QT_NO_PRINTER
+   filePrint = KStandardAction::print(this, SLOT(slotFilePrint()), ac);
+   filePrint->setStatusTip(i18n("Print the differences"));
+#endif
+   fileQuit = KStandardAction::quit(this, SLOT(slotFileQuit()), ac);
+   fileQuit->setStatusTip(i18n("Quits the application"));
+   editCut = KStandardAction::cut(this, SLOT(slotEditCut()), ac);
+   editCut->setStatusTip(i18n("Cuts the selected section and puts it to the clipboard"));
+   editCopy = KStandardAction::copy(this, SLOT(slotEditCopy()), ac);
+   editCopy->setStatusTip(i18n("Copies the selected section to the clipboard"));
+   editPaste = KStandardAction::paste(this, SLOT(slotEditPaste()), ac);
+   editPaste->setStatusTip(i18n("Pastes the clipboard contents to current position"));
+   editSelectAll = KStandardAction::selectAll(this, SLOT(slotEditSelectAll()), ac);
+   editSelectAll->setStatusTip(i18n("Select everything in current window"));
+   editFind = KStandardAction::find(this, SLOT(slotEditFind()), ac);
+   editFind->setStatusTip(i18n("Search for a string"));
+   editFindNext = KStandardAction::findNext(this, SLOT(slotEditFindNext()), ac);
+   editFindNext->setStatusTip(i18n("Search again for the string"));
+/*   FIXME figure out how to implement this action
+   viewToolBar = KStandardAction::showToolbar(this, SLOT(slotViewToolBar()), ac);
+   viewToolBar->setStatusTip(i18n("Enables/disables the toolbar")); */
+   viewStatusBar = KStandardAction::showStatusbar(this, SLOT(slotViewStatusBar()), ac);
+   viewStatusBar->setStatusTip(i18n("Enables/disables the statusbar"));
+   KStandardAction::keyBindings(this, SLOT(slotConfigureKeys()), ac);
+   KAction* pAction = KStandardAction::preferences(this, SLOT(slotConfigure()), ac );
+   if ( isPart() )
+      pAction->setText(i18n("Configure KDiff3..."));
+
+
+#include "xpm/downend.xpm"
+#include "xpm/currentpos.xpm"
+#include "xpm/down1arrow.xpm"
+#include "xpm/down2arrow.xpm"
+#include "xpm/upend.xpm"
+#include "xpm/up1arrow.xpm"
+#include "xpm/up2arrow.xpm"
+#include "xpm/prevunsolved.xpm"
+#include "xpm/nextunsolved.xpm"
+#include "xpm/iconA.xpm"
+#include "xpm/iconB.xpm"
+#include "xpm/iconC.xpm"
+#include "xpm/autoadvance.xpm"
+#include "xpm/showwhitespace.xpm"
+#include "xpm/showwhitespacechars.xpm"
+#include "xpm/showlinenumbers.xpm"
+//#include "reload.xpm"
+
+   goCurrent = KDiff3::createAction< KAction >( i18n("Go to Current Delta"), QIcon(QPixmap(currentpos)), i18n("Current\nDelta"), KShortcut( Qt::CTRL+Qt::Key_Space ), this, SLOT(slotGoCurrent()), ac, "go_current");
+
+   goTop = KDiff3::createAction< KAction >(i18n("Go to First Delta"), QIcon(QPixmap(upend)), i18n("First\nDelta"), this, SLOT(slotGoTop()), ac, "go_top");
+
+   goBottom = KDiff3::createAction< KAction >(i18n("Go to Last Delta"), QIcon(QPixmap(downend)), i18n("Last\nDelta"), this, SLOT(slotGoBottom()), ac, "go_bottom");
+
+   QString omitsWhitespace = ".\n" + i18n("(Skips white space differences when \"Show White Space\" is disabled.)");
+   QString includeWhitespace = ".\n" + i18n("(Does not skip white space differences even when \"Show White Space\" is disabled.)");
+   goPrevDelta = KDiff3::createAction< KAction >(i18n("Go to Previous Delta"), QIcon(QPixmap(up1arrow)), i18n("Prev\nDelta"), KShortcut( Qt::CTRL+Qt::Key_Up), this, SLOT(slotGoPrevDelta()), ac, "go_prev_delta");
+   goPrevDelta->setToolTip( goPrevDelta->text() + omitsWhitespace );
+   goNextDelta = KDiff3::createAction< KAction >(i18n("Go to Next Delta"), QIcon(QPixmap(down1arrow)), i18n("Next\nDelta"), KShortcut( Qt::CTRL+Qt::Key_Down ), this, SLOT(slotGoNextDelta()), ac, "go_next_delta");
+   goNextDelta->setToolTip( goNextDelta->text() + omitsWhitespace );
+   goPrevConflict = KDiff3::createAction< KAction >(i18n("Go to Previous Conflict"), QIcon(QPixmap(up2arrow)), i18n("Prev\nConflict"), KShortcut( Qt::CTRL+Qt::Key_PageUp ), this, SLOT(slotGoPrevConflict()), ac, "go_prev_conflict");
+   goPrevConflict->setToolTip( goPrevConflict->text() + omitsWhitespace );
+   goNextConflict = KDiff3::createAction< KAction >(i18n("Go to Next Conflict"), QIcon(QPixmap(down2arrow)), i18n("Next\nConflict"), KShortcut( Qt::CTRL+Qt::Key_PageDown ), this, SLOT(slotGoNextConflict()), ac, "go_next_conflict");
+   goNextConflict->setToolTip( goNextConflict->text() + omitsWhitespace );
+   goPrevUnsolvedConflict = KDiff3::createAction< KAction >(i18n("Go to Previous Unsolved Conflict"), QIcon(QPixmap(prevunsolved)), i18n("Prev\nUnsolved"), this, SLOT(slotGoPrevUnsolvedConflict()), ac, "go_prev_unsolved_conflict");
+   goPrevUnsolvedConflict->setToolTip( goPrevUnsolvedConflict->text() + includeWhitespace );
+   goNextUnsolvedConflict = KDiff3::createAction< KAction >(i18n("Go to Next Unsolved Conflict"), QIcon(QPixmap(nextunsolved)), i18n("Next\nUnsolved"), this, SLOT(slotGoNextUnsolvedConflict()), ac, "go_next_unsolved_conflict");
+   goNextUnsolvedConflict->setToolTip( goNextUnsolvedConflict->text() + includeWhitespace );
+   chooseA = KDiff3::createAction< KToggleAction >(i18n("Select Line(s) From A"), QIcon(QPixmap(iconA)), i18n("Choose\nA"), KShortcut( Qt::CTRL+Qt::Key_1 ), this, SLOT(slotChooseA()), ac, "merge_choose_a");
+   chooseB = KDiff3::createAction< KToggleAction >(i18n("Select Line(s) From B"), QIcon(QPixmap(iconB)), i18n("Choose\nB"), KShortcut( Qt::CTRL+Qt::Key_2 ), this, SLOT(slotChooseB()), ac, "merge_choose_b");
+   chooseC = KDiff3::createAction< KToggleAction >(i18n("Select Line(s) From C"), QIcon(QPixmap(iconC)), i18n("Choose\nC"), KShortcut( Qt::CTRL+Qt::Key_3 ), this, SLOT(slotChooseC()), ac, "merge_choose_c");
+   autoAdvance = KDiff3::createAction< KToggleAction >(i18n("Automatically Go to Next Unsolved Conflict After Source Selection"), QIcon(QPixmap(autoadvance)), i18n("Auto\nNext"), this, SLOT(slotAutoAdvanceToggled()), ac, "merge_autoadvance");
+
+   showWhiteSpaceCharacters = KDiff3::createAction< KToggleAction >(i18n("Show Space && Tabulator Characters"), QIcon(QPixmap(showwhitespacechars)), i18n("White\nCharacters"), this, SLOT(slotShowWhiteSpaceToggled()), ac, "diff_show_whitespace_characters");
+   showWhiteSpace = KDiff3::createAction< KToggleAction >(i18n("Show White Space"), QIcon(QPixmap(showwhitespace)), i18n("White\nDeltas"), this, SLOT(slotShowWhiteSpaceToggled()), ac, "diff_show_whitespace");
+
+   showLineNumbers = KDiff3::createAction< KToggleAction >(i18n("Show Line Numbers"), QIcon(QPixmap(showlinenumbers)), i18n("Line\nNumbers"), this, SLOT(slotShowLineNumbersToggled()), ac, "diff_showlinenumbers");
+   chooseAEverywhere = KDiff3::createAction< KAction >(i18n("Choose A Everywhere"), KShortcut( Qt::CTRL+Qt::SHIFT+Qt::Key_1 ), this, SLOT(slotChooseAEverywhere()), ac, "merge_choose_a_everywhere");
+   chooseBEverywhere = KDiff3::createAction< KAction >(i18n("Choose B Everywhere"), KShortcut( Qt::CTRL+Qt::SHIFT+Qt::Key_2 ), this, SLOT(slotChooseBEverywhere()), ac, "merge_choose_b_everywhere");
+   chooseCEverywhere = KDiff3::createAction< KAction >(i18n("Choose C Everywhere"), KShortcut( Qt::CTRL+Qt::SHIFT+Qt::Key_3 ), this, SLOT(slotChooseCEverywhere()), ac, "merge_choose_c_everywhere");
+   chooseAForUnsolvedConflicts = KDiff3::createAction< KAction >(i18n("Choose A for All Unsolved Conflicts"), this, SLOT(slotChooseAForUnsolvedConflicts()), ac, "merge_choose_a_for_unsolved_conflicts");
+   chooseBForUnsolvedConflicts = KDiff3::createAction< KAction >(i18n("Choose B for All Unsolved Conflicts"), this, SLOT(slotChooseBForUnsolvedConflicts()), ac, "merge_choose_b_for_unsolved_conflicts");
+   chooseCForUnsolvedConflicts = KDiff3::createAction< KAction >(i18n("Choose C for All Unsolved Conflicts"), this, SLOT(slotChooseCForUnsolvedConflicts()), ac, "merge_choose_c_for_unsolved_conflicts");
+   chooseAForUnsolvedWhiteSpaceConflicts = KDiff3::createAction< KAction >(i18n("Choose A for All Unsolved Whitespace Conflicts"), this, SLOT(slotChooseAForUnsolvedWhiteSpaceConflicts()), ac, "merge_choose_a_for_unsolved_whitespace_conflicts");
+   chooseBForUnsolvedWhiteSpaceConflicts = KDiff3::createAction< KAction >(i18n("Choose B for All Unsolved Whitespace Conflicts"), this, SLOT(slotChooseBForUnsolvedWhiteSpaceConflicts()), ac, "merge_choose_b_for_unsolved_whitespace_conflicts");
+   chooseCForUnsolvedWhiteSpaceConflicts = KDiff3::createAction< KAction >(i18n("Choose C for All Unsolved Whitespace Conflicts"), this, SLOT(slotChooseCForUnsolvedWhiteSpaceConflicts()), ac, "merge_choose_c_for_unsolved_whitespace_conflicts");
+   autoSolve    = KDiff3::createAction< KAction >(i18n("Automatically Solve Simple Conflicts"),  this, SLOT(slotAutoSolve()),    ac, "merge_autosolve");
+   unsolve      = KDiff3::createAction< KAction >(i18n("Set Deltas to Conflicts"),               this, SLOT(slotUnsolve()),      ac, "merge_autounsolve");
+   mergeRegExp  = KDiff3::createAction< KAction >(i18n("Run Regular Expression Auto Merge"),     this, SLOT(slotRegExpAutoMerge()),ac, "merge_regexp_automerge" );
+   mergeHistory = KDiff3::createAction< KAction >(i18n("Automatically Solve History Conflicts"), this, SLOT(slotMergeHistory()), ac, "merge_versioncontrol_history" );
+   splitDiff    = KDiff3::createAction< KAction >(i18n("Split Diff At Selection"),               this, SLOT(slotSplitDiff()),    ac, "merge_splitdiff");
+   joinDiffs    = KDiff3::createAction< KAction >(i18n("Join Selected Diffs"),                   this, SLOT(slotJoinDiffs()),    ac, "merge_joindiffs");
+
+   showWindowA = KDiff3::createAction< KToggleAction >(i18n("Show Window A"), this, SLOT(slotShowWindowAToggled()), ac, "win_show_a");
+   showWindowB = KDiff3::createAction< KToggleAction >(i18n("Show Window B"), this, SLOT(slotShowWindowBToggled()), ac, "win_show_b");
+   showWindowC = KDiff3::createAction< KToggleAction >(i18n("Show Window C"), this, SLOT(slotShowWindowCToggled()), ac, "win_show_c");
+   winFocusNext = KDiff3::createAction< KAction >(i18n("Focus Next Window"), KShortcut( Qt::ALT+Qt::Key_Right ), this, SLOT(slotWinFocusNext()), ac, "win_focus_next");
+
+   overviewModeNormal = KDiff3::createAction< KToggleAction >(i18n("Normal Overview"), this, SLOT(slotOverviewNormal()), ac, "diff_overview_normal");
+   overviewModeAB     = KDiff3::createAction< KToggleAction >(i18n("A vs. B Overview"), this, SLOT(slotOverviewAB()), ac, "diff_overview_ab");
+   overviewModeAC     = KDiff3::createAction< KToggleAction >(i18n("A vs. C Overview"), this, SLOT(slotOverviewAC()), ac, "diff_overview_ac");
+   overviewModeBC     = KDiff3::createAction< KToggleAction >(i18n("B vs. C Overview"), this, SLOT(slotOverviewBC()), ac, "diff_overview_bc");
+   wordWrap     = KDiff3::createAction< KToggleAction >(i18n("Word Wrap Diff Windows"), this, SLOT(slotWordWrapToggled()), ac, "diff_wordwrap");
+   addManualDiffHelp  = KDiff3::createAction< KAction >(i18n("Add Manual Diff Alignment"), KShortcut( Qt::CTRL+Qt::Key_Y ), this, SLOT(slotAddManualDiffHelp()), ac, "diff_add_manual_diff_help");
+   clearManualDiffHelpList  = KDiff3::createAction< KAction >(i18n("Clear All Manual Diff Alignments"), KShortcut( Qt::CTRL+Qt::SHIFT+Qt::Key_Y ), this, SLOT(slotClearManualDiffHelpList()), ac, "diff_clear_manual_diff_help_list");
+
+#if defined(_WIN32) || defined(Q_OS_OS2)
+   KDiff3::createAction< KAction >(i18n("Focus Next Window"), KShortcut(Qt::CTRL+Qt::Key_Tab), this, SLOT(slotWinFocusNext()), ac, "win_focus_next");
+#endif
+   winFocusPrev = KDiff3::createAction< KAction >(i18n("Focus Prev Window"), KShortcut( Qt::ALT+Qt::Key_Left ), this, SLOT(slotWinFocusPrev()), ac, "win_focus_prev");
+   winToggleSplitOrientation = KDiff3::createAction< KAction >(i18n("Toggle Split Orientation"), this, SLOT(slotWinToggleSplitterOrientation()), ac, "win_toggle_split_orientation");
+
+   dirShowBoth = KDiff3::createAction< KToggleAction >(i18n("Dir && Text Split Screen View"), this, SLOT(slotDirShowBoth()), ac, "win_dir_show_both");
+   dirShowBoth->setChecked( true );
+   dirViewToggle = KDiff3::createAction< KAction >(i18n("Toggle Between Dir && Text View"), this, SLOT(slotDirViewToggle()), ac, "win_dir_view_toggle");
+
+   m_pMergeEditorPopupMenu = new QMenu( this );
+/*   chooseA->plug( m_pMergeEditorPopupMenu );
+   chooseB->plug( m_pMergeEditorPopupMenu );
+   chooseC->plug( m_pMergeEditorPopupMenu );*/
+   m_pMergeEditorPopupMenu->addAction( chooseA );
+   m_pMergeEditorPopupMenu->addAction( chooseB );
+   m_pMergeEditorPopupMenu->addAction( chooseC );
+}
+
+
+void KDiff3App::showPopupMenu( const QPoint& point )
+{
+   m_pMergeEditorPopupMenu->popup( point );
+}
+
+void KDiff3App::initStatusBar()
+{
+  ///////////////////////////////////////////////////////////////////
+  // STATUSBAR
+  if (statusBar() !=0 )
+     statusBar()->showMessage( i18n("Ready.") );
+}
+
+void KDiff3App::saveOptions( KSharedConfigPtr config )
+{
+   if ( !m_bAutoMode )
+   {
+      if (!isPart())
+      {
+         m_pOptions->m_bMaximised = m_pKDiff3Shell->isMaximized();
+         if( ! m_pKDiff3Shell->isMaximized() && m_pKDiff3Shell->isVisible() )
+         {
+            m_pOptions->m_geometry = m_pKDiff3Shell->size();
+            m_pOptions->m_position = m_pKDiff3Shell->pos();
+         }
+/*  TODO change this option as now KToolbar uses QToolbar positioning style
+         if ( toolBar(MAIN_TOOLBAR_NAME)!=0 )
+            m_pOptionDialog->m_toolBarPos = (int) toolBar(MAIN_TOOLBAR_NAME)->allowedAreas();*/
+      }
+
+      m_pOptionDialog->saveOptions( config );
+   }
+}
+
+
+
+
+bool KDiff3App::queryClose()
+{
+   saveOptions( isPart() ? m_pKDiff3Part->componentData().config() : KGlobal::config() );
+
+   if(m_bOutputModified)
+   {
+      int result = KMessageBox::warningYesNoCancel(this,
+         i18n("The merge result hasn't been saved."),
+         i18n("Warning"), 
+         KGuiItem( i18n("Save && Quit") ), 
+         KGuiItem( i18n("Quit Without Saving") ) );
+      if ( result==KMessageBox::Cancel )
+         return false;
+      else if ( result==KMessageBox::Yes )
+      {
+         slotFileSave();
+         if ( m_bOutputModified )
+         {
+            KMessageBox::sorry(this, i18n("Saving the merge result failed."), i18n("Warning") );
+            return false;
+         }
+      }
+   }
+
+   m_bOutputModified = false;
+
+   if ( m_pDirectoryMergeWindow->isDirectoryMergeInProgress() )
+   {
+      int result = KMessageBox::warningYesNo(this,
+         i18n("You are currently doing a directory merge. Are you sure, you want to abort?"),
+         i18n("Warning"), 
+         KStandardGuiItem::quit(), 
+         KStandardGuiItem::cont() /* i18n("Continue Merging") */ );
+      if ( result!=KMessageBox::Yes )
+         return false;
+   }
+
+   return true;
+}
+
+
+/////////////////////////////////////////////////////////////////////
+// SLOT IMPLEMENTATION
+/////////////////////////////////////////////////////////////////////
+
+
+void KDiff3App::slotFileSave()
+{
+   if ( m_bDefaultFilename )
+   {
+      slotFileSaveAs();
+   }
+   else
+   {
+      slotStatusMsg(i18n("Saving file..."));
+
+      bool bSuccess = m_pMergeResultWindow->saveDocument( m_outputFilename, m_pMergeResultWindowTitle->getEncoding(), m_pMergeResultWindowTitle->getLineEndStyle() );
+      if ( bSuccess )
+      {
+         m_bFileSaved = true;
+         m_bOutputModified = false;
+         if ( m_bDirCompare )
+            m_pDirectoryMergeWindow->mergeResultSaved( m_outputFilename );
+      }
+
+      slotStatusMsg(i18n("Ready."));
+   }
+}
+
+void KDiff3App::slotFileSaveAs()
+{
+  slotStatusMsg(i18n("Saving file with a new filename..."));
+
+  QString s = KFileDialog::getSaveUrl( QDir::currentPath(), 0, this, i18n("Save As...") ).url();
+  if(!s.isEmpty())
+  {
+     m_outputFilename = s;
+     m_pMergeResultWindowTitle->setFileName( m_outputFilename );
+     bool bSuccess = m_pMergeResultWindow->saveDocument( m_outputFilename, m_pMergeResultWindowTitle->getEncoding(), m_pMergeResultWindowTitle->getLineEndStyle() );
+     if ( bSuccess )
+     {
+        m_bOutputModified = false;
+        if ( m_bDirCompare )
+           m_pDirectoryMergeWindow->mergeResultSaved( m_outputFilename );
+     }
+     //setCaption(url.fileName(),doc->isModified());
+
+     m_bDefaultFilename = false;
+  }
+
+  slotStatusMsg(i18n("Ready."));
+}
+
+
+void printDiffTextWindow( MyPainter& painter, const QRect& view, const QString& headerText, DiffTextWindow* pDiffTextWindow, int line, int linesPerPage, QColor fgColor )
+{
+   QRect clipRect = view;
+   clipRect.setTop(0);
+   painter.setClipRect( clipRect );
+   painter.translate( view.left() , 0 );
+   QFontMetrics fm = painter.fontMetrics();
+   //if ( fm.width(headerText) > view.width() )
+   {
+      // A simple wrapline algorithm
+      int l=0;
+      for (int p=0; p<headerText.length(); )
+      {
+         QString s = headerText.mid(p);
+         int i;
+         for(i=2;i<s.length();++i) 
+            if (fm.width(s,i)>view.width())
+            {
+               --i;
+               break;
+            }
+         //QString s2 = s.left(i);
+         painter.drawText( 0, l*fm.height() + fm.ascent(), s.left(i) );
+         p+=i;
+         ++l;
+      }
+      painter.setPen( fgColor );
+      painter.drawLine( 0, view.top()-2, view.width(), view.top()-2 );
+   }
+
+   painter.translate( 0, view.top() );
+   pDiffTextWindow->print( painter, view, line, linesPerPage );
+   painter.resetMatrix();
+}
+
+void KDiff3App::slotFilePrint()
+{
+   if ( !m_pDiffTextWindow1 )
+      return;
+#ifdef QT_NO_PRINTER
+   slotStatusMsg( i18n( "Printing not implemented." ) );
+#endif
+#ifndef QT_NO_PRINTER
+   QPrinter printer;
+   QPrintDialog printDialog(&printer, this);
+
+   int firstSelectionD3LIdx = -1;
+   int lastSelectionD3LIdx = -1;
+   if (                           m_pDiffTextWindow1 ) { m_pDiffTextWindow1->getSelectionRange(&firstSelectionD3LIdx, &lastSelectionD3LIdx, eD3LLineCoords); }
+   if ( firstSelectionD3LIdx<0 && m_pDiffTextWindow2 ) { m_pDiffTextWindow2->getSelectionRange(&firstSelectionD3LIdx, &lastSelectionD3LIdx, eD3LLineCoords); }
+   if ( firstSelectionD3LIdx<0 && m_pDiffTextWindow3 ) { m_pDiffTextWindow3->getSelectionRange(&firstSelectionD3LIdx, &lastSelectionD3LIdx, eD3LLineCoords); }
+#ifdef KREPLACEMENTS_H  // Currently PrintSelection is not supported in KDEs print dialog.
+   if ( firstSelectionD3LIdx>=0 )
+   {
+      printDialog.addEnabledOption(QPrintDialog::PrintSelection);
+      //printer.setOptionEnabled(QPrinter::PrintSelection,true);
+      printDialog.setPrintRange(QAbstractPrintDialog::Selection);
+   }
+#endif
+
+   if ( firstSelectionD3LIdx == -1 )
+      printDialog.setPrintRange(QAbstractPrintDialog::AllPages);
+   //printDialog.setMinMax(0,0);
+   printDialog.setFromTo(0,0);
+
+   int currentFirstLine = m_pDiffTextWindow1->getFirstLine();
+   int currentFirstD3LIdx = m_pDiffTextWindow1->convertLineToDiff3LineIdx( currentFirstLine );
+
+   // do some printer initialization
+   printer.setFullPage( false );
+
+   // initialize the printer using the print dialog
+   if (printDialog.exec()== QDialog::Accepted)
+   {
+      slotStatusMsg( i18n( "Printing..." ) );
+      // create a painter to paint on the printer object
+      MyPainter painter( &printer, m_pOptions->m_bRightToLeftLanguage, width(), fontMetrics().width('W') );
+
+      QPaintDevice* pPaintDevice = painter.device();
+      int dpiy = pPaintDevice->logicalDpiY();
+      int columnDistance = (int) ( (0.5/2.54)*dpiy ); // 0.5 cm between the columns
+
+      int columns = m_bTripleDiff ? 3 : 2;
+      int columnWidth = ( pPaintDevice->width()  - (columns-1)*columnDistance ) / columns;
+
+      QFont f = m_pOptions->m_font;
+      f.setPointSizeF(f.pointSizeF()-1); // Print with slightly smaller font.
+      painter.setFont( f );
+      QFontMetrics fm = painter.fontMetrics();
+
+      QString topLineText = i18n("Top line"); 
+
+      //int headerWidth = fm.width( m_sd1.getAliasName() + ", "+topLineText+": 01234567" );
+      int headerLines = fm.width( m_sd1.getAliasName() + ", "+topLineText+": 01234567" )/columnWidth+1;
+
+      int headerMargin = headerLines * fm.height() + 3; // Text + one horizontal line
+      int footerMargin = fm.height() + 3;
+
+      QRect view ( 0, headerMargin, pPaintDevice->width(), pPaintDevice->height() - (headerMargin + footerMargin) );
+      QRect view1( 0*(columnWidth + columnDistance), view.top(), columnWidth, view.height() );
+      QRect view2( 1*(columnWidth + columnDistance), view.top(), columnWidth, view.height() );
+      QRect view3( 2*(columnWidth + columnDistance), view.top(), columnWidth, view.height() );
+
+      int linesPerPage = view.height() / fm.lineSpacing();
+      QEventLoop eventLoopForPrinting;
+      m_pEventLoopForPrinting = &eventLoopForPrinting;
+      if ( m_pOptions->m_bWordWrap )
+      {
+         // For printing the lines are wrapped differently (this invalidates the first line)
+         recalcWordWrap( columnWidth );
+         m_pEventLoopForPrinting->exec();
+      }
+
+      int totalNofLines = max2(m_pDiffTextWindow1->getNofLines(), m_pDiffTextWindow2->getNofLines());
+      if ( m_bTripleDiff && m_pDiffTextWindow3)
+         totalNofLines = max2(totalNofLines, m_pDiffTextWindow3->getNofLines());
+
+      QList<int> pageList;// = printer.pageList();
+
+      bool bPrintCurrentPage=false;
+      bool bFirstPrintedPage = false;
+
+      bool bPrintSelection = false;
+      int totalNofPages = (totalNofLines+linesPerPage-1) / linesPerPage;
+      int line=-1;
+      int selectionEndLine = -1;
+
+#ifdef KREPLACEMENTS_H
+      if ( printer.printRange()==QPrinter::AllPages )
+      {
+         pageList.clear();
+         for(int i=0; i<totalNofPages; ++i)
+         {
+            pageList.push_back(i+1);
+         }
+      }
+      else if ( printer.printRange()==QPrinter::PageRange )
+      {
+         pageList.clear();
+         for(int i=printer.fromPage(); i<=printer.toPage(); ++i)
+         {
+            pageList.push_back(i);
+         }
+      }
+
+      if ( printer.printRange()==QPrinter::Selection )
+#else
+      if ( !pageList.empty() && pageList.front()==9999 )
+#endif
+      {
+         bPrintSelection = true;
+         if ( firstSelectionD3LIdx >=0 )
+         {
+            line = m_pDiffTextWindow1->convertDiff3LineIdxToLine( firstSelectionD3LIdx );
+            selectionEndLine = m_pDiffTextWindow1->convertDiff3LineIdxToLine( lastSelectionD3LIdx+1 );
+            totalNofPages = (selectionEndLine-line+linesPerPage-1) / linesPerPage;
+         }
+      }
+
+      int page = 1;
+
+      ProgressProxy pp;
+      pp.setMaxNofSteps(totalNofPages);
+      QList<int>::iterator pageListIt = pageList.begin();
+      for(;;)
+      {
+         pp.setInformation(i18n("Printing page %1 of %2").arg(page).arg(totalNofPages),false);
+         pp.setCurrent(page - 1);
+         if (pp.wasCancelled())
+         {
+            printer.abort();
+            break;
+         }
+
+         if (!bPrintSelection)
+         {
+            if (pageListIt==pageList.end())
+               break;
+            page = *pageListIt;
+            line = (page - 1) * linesPerPage;
+            if (page==10000)  // This means "Print the current page"
+            {
+               bPrintCurrentPage=true;
+               // Detect the first visible line in the window.
+               line = m_pDiffTextWindow1->convertDiff3LineIdxToLine( currentFirstD3LIdx );
+            }
+         }
+         else
+         {
+            if ( line>=selectionEndLine )
+            {
+               break;
+            }
+            else
+            {
+               if ( selectionEndLine-line < linesPerPage )
+                  linesPerPage=selectionEndLine-line;
+            }
+         }
+         if (line>=0 && line<totalNofLines )
+         {
+
+            if (bFirstPrintedPage)
+               printer.newPage();
+
+            painter.setClipping(true);
+
+            painter.setPen( m_pOptions->m_colorA );
+            QString headerText1 = m_sd1.getAliasName() + ", "+topLineText+": " + QString::number(m_pDiffTextWindow1->calcTopLineInFile(line)+1);
+            printDiffTextWindow( painter, view1, headerText1, m_pDiffTextWindow1, line, linesPerPage, m_pOptions->m_fgColor );
+
+            painter.setPen( m_pOptions->m_colorB );
+            QString headerText2 = m_sd2.getAliasName() + ", "+topLineText+": " + QString::number(m_pDiffTextWindow2->calcTopLineInFile(line)+1);
+            printDiffTextWindow( painter, view2, headerText2, m_pDiffTextWindow2, line, linesPerPage, m_pOptions->m_fgColor );
+
+            if ( m_bTripleDiff && m_pDiffTextWindow3 )
+            {
+               painter.setPen( m_pOptions->m_colorC );
+               QString headerText3 = m_sd3.getAliasName() + ", "+topLineText+": " + QString::number(m_pDiffTextWindow3->calcTopLineInFile(line)+1);
+               printDiffTextWindow( painter, view3, headerText3, m_pDiffTextWindow3, line, linesPerPage, m_pOptions->m_fgColor );
+            }
+            painter.setClipping(false);
+
+            painter.setPen( m_pOptions->m_fgColor );
+            painter.drawLine( 0, view.bottom()+3, view.width(), view.bottom()+3 ); 
+            QString s = bPrintCurrentPage ? QString("") 
+                                          : QString::number( page ) + "/" + QString::number(totalNofPages);
+            if ( bPrintSelection ) s+=" (" + i18n("Selection") + ")";
+            painter.drawText( (view.right() - painter.fontMetrics().width( s ))/2,
+                        view.bottom() + painter.fontMetrics().ascent() + 5, s );
+
+            bFirstPrintedPage = true;
+         }
+
+         if ( bPrintSelection )
+         {
+            line+=linesPerPage;
+            ++page;
+         }
+         else
+         {
+            ++pageListIt;
+         }
+      }
+
+      painter.end();
+
+      if ( m_pOptions->m_bWordWrap )
+      {
+         recalcWordWrap();
+         m_pEventLoopForPrinting->exec();
+         m_pDiffVScrollBar->setValue( m_pDiffTextWindow1->convertDiff3LineIdxToLine( currentFirstD3LIdx ) );
+      }
+
+      slotStatusMsg( i18n( "Printing completed." ) );
+   }
+   else
+   {
+      slotStatusMsg( i18n( "Printing aborted." ) );
+   }
+#endif
+}
+
+void KDiff3App::slotFileQuit()
+{
+   slotStatusMsg(i18n("Exiting..."));
+
+   if( !queryClose() )
+       return;      // Don't quit
+
+   KApplication::exit( isFileSaved() || isDirComparison() ? 0 : 1 );
+}
+
+
+
+void KDiff3App::slotViewToolBar()
+{
+   assert( viewToolBar != 0 );
+   slotStatusMsg(i18n("Toggling toolbar..."));
+   m_pOptions->m_bShowToolBar = viewToolBar->isChecked();
+   ///////////////////////////////////////////////////////////////////
+   // turn Toolbar on or off
+   if ( toolBar(MAIN_TOOLBAR_NAME) !=0 )
+   {
+      if(!m_pOptions->m_bShowToolBar)
+      {
+         toolBar(MAIN_TOOLBAR_NAME)->hide();
+      }
+      else
+      {
+         toolBar(MAIN_TOOLBAR_NAME)->show();
+      }
+   }
+
+   slotStatusMsg(i18n("Ready."));
+}
+
+void KDiff3App::slotViewStatusBar()
+{
+   slotStatusMsg(i18n("Toggle the statusbar..."));
+   m_pOptions->m_bShowStatusBar = viewStatusBar->isChecked();
+   ///////////////////////////////////////////////////////////////////
+   //turn Statusbar on or off
+   if (statusBar() !=0 )
+   {
+      if(!viewStatusBar->isChecked())
+      {
+         statusBar()->hide();
+      }
+      else
+      {
+         statusBar()->show();
+      }
+   }
+
+   slotStatusMsg(i18n("Ready."));
+}
+
+
+void KDiff3App::slotStatusMsg(const QString &text)
+{
+   ///////////////////////////////////////////////////////////////////
+   // change status message permanently
+   if (statusBar() !=0 )
+   {
+      statusBar()->clearMessage();
+      statusBar()->showMessage( text );
+   }
+}
+
+
+
+
+//#include "kdiff3.moc"
diff --git a/src-QT4/kdiff3.desktop b/src-QT4/kdiff3.desktop
new file mode 100644 (file)
index 0000000..a704b4e
--- /dev/null
@@ -0,0 +1,124 @@
+[Desktop Entry]
+Name=KDiff3
+Name[be]=KDiff3
+Name[bg]=KDiff3
+Name[bs]=KDiff3
+Name[ca]=KDiff3
+Name[ca@valencia]=KDiff3
+Name[cs]=KDiff3
+Name[da]=KDiff3
+Name[de]=KDiff3
+Name[el]=KDiff3
+Name[en_GB]=KDiff3
+Name[es]=KDiff3
+Name[et]=KDiff3
+Name[fr]=KDiff3
+Name[ga]=KDiff3
+Name[gl]=KDiff3
+Name[hi]=के-डिफ3
+Name[hne]=के-डिफ3
+Name[hr]=KDiff3
+Name[hu]=KDiff3
+Name[it]=KDiff3
+Name[ja]=KDiff3
+Name[km]=KDiff3
+Name[ko]=KDiff3
+Name[ml]=കെഡിഫ്3
+Name[nb]=KDiff3
+Name[nds]=KDiff3
+Name[nl]=KDiff3
+Name[nn]=KDiff3
+Name[pl]=KDiff3
+Name[pt]=KDiff3
+Name[pt_BR]=KDiff3
+Name[ro]=KDiff3
+Name[ru]=KDiff3
+Name[sv]=Kdiff3
+Name[tr]=KDiff3
+Name[uk]=KDiff3
+Name[x-test]=xxKDiff3xx
+Name[zh_CN]=KDiff3
+Name[zh_TW]=KDiff3
+GenericName=Diff/Patch Frontend
+GenericName[bg]=Интерфейс на Diff/Patch
+GenericName[bs]=Prikaz za Diff/Patch
+GenericName[ca]=Frontal de Diff/Patch
+GenericName[ca@valencia]=Frontal de Diff/Patch
+GenericName[cs]=Rozhraní pro Diff/Patch
+GenericName[da]=Brugerflade til diff/patch
+GenericName[de]=Grafische Oberfläche zu Diff/Patch
+GenericName[el]=Σύστημα υποστήριξης χρήστη για τα Diff/Patch
+GenericName[en_GB]=Diff/Patch Frontend
+GenericName[eo]=Fasado por la programoj "diff" kaj "patch"
+GenericName[es]=Interfaz para diff/patch
+GenericName[et]=Võrdlemise ja liitmise rakendus
+GenericName[fr]=Interface pour Diff / Patch
+GenericName[ga]=Comhéadan Diff/Patch
+GenericName[gl]=Interface para Diff e Patch
+GenericName[hi]=डिफ/पैच फ्रन्टएण्ड
+GenericName[hne]=डिफ/पैच फ्रन्टएन्ड
+GenericName[hu]=Diff/Patch Frontend
+GenericName[it]=Interfaccia per i comandi diff e patch
+GenericName[ja]=Diff/Patch フロントエンド
+GenericName[km]=Diff/Patch ខាង​មុខ
+GenericName[ko]=Diff/Patch 프론트엔드
+GenericName[ml]=ഡിഫ്/പാച്ച് പുരോഭാഗം
+GenericName[nb]=Diff-/Patch-grensesnitt
+GenericName[nds]=Böversiet för "diff" un "patch"
+GenericName[nl]=Diff/Patch-hulpprogramma
+GenericName[nn]=Motor for diff- og patch-filer
+GenericName[pl]=Interfejs do Diff/Patch
+GenericName[pt]=Interface do Diff/Patch
+GenericName[pt_BR]=Interface do diff/patch
+GenericName[ro]=Interfață Diferențiere/Cîrpire
+GenericName[ru]=Графический интерфейс Diff/Patch
+GenericName[sv]=Jämförelse- och programfixgränssnitt
+GenericName[tr]=Diff/Patch Arayüzü
+GenericName[uk]=Графічна оболонка Diff/Patch
+GenericName[x-test]=xxDiff/Patch Frontendxx
+GenericName[zh_CN]=Diff/Patch 前端
+GenericName[zh_TW]=比較/修補程式前端介面
+Exec=kdiff3 %i -caption "%c"
+Icon=kdiff3
+Type=Application
+X-DocPath=kdiff3/index.html
+Comment=A File And Directory Comparison And Merge Tool
+Comment[bg]=Инструмент за сравняване и сливане на файлове и директории
+Comment[bs]=Alat za poređenje i spajanje direktorija i datoteka
+Comment[ca]=Una eina de comparació i fusió de fitxer i directori
+Comment[ca@valencia]=Una eina de comparació i fusió de fitxer i directori
+Comment[cs]=Nástroj pro porovnávání a slučování souborů a adresářů
+Comment[da]=Et værktøj til sammenfletning og sammenligning af filer og mapper
+Comment[de]=Programm zum Vergleichen und Zusammenführen von Dateien und Ordnern
+Comment[el]=Ένα εργαλείο σύγκρισης και συγχώνευσης αρχείων και καταλόγων
+Comment[en_GB]=A File And Directory Comparison And Merge Tool
+Comment[es]=Una herramienta para comparar y fusionar archivos y directorios
+Comment[et]=Failide ja kataloogide võrdlemise ja liitmise tööriist
+Comment[fr]=Un outil de comparaison et de fusion de fichiers et de dossiers
+Comment[ga]=Uirlis a chuireann comhaid agus comhadlanna i gcomparáid agus a chumascann iad más gá
+Comment[gl]=Unha ferramenta de comparación e fusión de ficheiros e cartafoles
+Comment[hi]=फ़ाइल तथा डिरेक्ट्री तुलना करने व मिलाने का औजार
+Comment[hne]=फाइल अउ डिरेक्टरी तुलना करे अउ मिलाय के औजार
+Comment[hu]=Egy fájl és könyvtár összehasonlítási és egyesítési eszköz
+Comment[it]=Uno strumento di confronto e fusione di file e cartelle
+Comment[ja]=ファイルやディレクトリの比較/マージを行うツール
+Comment[km]=ការ​ប្រៀបធៀប​ថត និង​ឯកសារ និង​ឧបករណ៌​បញ្ចូល​គ្នា
+Comment[ko]=파일과 디렉터리 비교 및 병합 도구
+Comment[ml]=ഫയലും അറകളും താരതമ്യം ചെയ്യാനും ലയിപ്പിക്കാനുമുള്ള ഒരു ആയുധം
+Comment[nb]=Et verktøy for å sammelnlikne og flette filer og mapper
+Comment[nds]=En Warktüüch för't Verglieken un Tosamenföhren vun Dateien un Ornern
+Comment[nl]=Hulpmiddel voor het vergelijken en samenvoegen van bestanden en mappen
+Comment[nn]=Eit program for samanlikning og fletting av filer og mapper
+Comment[pl]=Narzędzie do porównywania i łączenia plików i katalogów
+Comment[pt]=Uma Ferramenta de Comparação e Junção de Ficheiros e Pastas
+Comment[pt_BR]=Uma ferramenta de comparação e junção de arquivos e pastas
+Comment[ro]=Un instrument de comparare și unire a fișierelor și directoarelor
+Comment[ru]=Инструмент для сравнения и объединения файлов и каталогов
+Comment[sv]=Ett jämförelseverktyg för fil- och katalogjämförelser
+Comment[tr]=Bir Dosya Ve Klasör Karşılaştırma Ve Birleştirme Aracı
+Comment[uk]=Інструмент для порівняння та з’єднання файлів та тек
+Comment[x-test]=xxA File And Directory Comparison And Merge Toolxx
+Comment[zh_CN]=一个文件和目录的比较和合并的工具
+Comment[zh_TW]=一個檔案與目錄比較與合併的工具
+Terminal=false
+Categories=Qt;KDE;Development;
diff --git a/src-QT4/kdiff3.h b/src-QT4/kdiff3.h
new file mode 100644 (file)
index 0000000..0d8f8af
--- /dev/null
@@ -0,0 +1,423 @@
+/***************************************************************************
+                          kdiff3.h  -  description
+                             -------------------
+    begin                : Don Jul 11 12:31:29 CEST 2002
+    copyright            : (C) 2002-2007 by Joachim Eibl
+    email                : joachim.eibl at gmx.de
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#ifndef KDIFF3_H
+#define KDIFF3_H
+
+#include "diff.h"
+
+#include <config-kdiff3.h>
+
+// include files for Qt
+#include <QSplitter>
+#include <QScrollBar>
+#include <QPointer>
+
+// include files for KDE
+#include <kapplication.h>
+#include <kmainwindow.h>
+#include <kaction.h>
+#include <kurl.h>
+#include <kparts/mainwindow.h>
+#include <ktoggleaction.h>
+
+
+// forward declaration of the KDiff3 classes
+class OptionDialog;
+class FindDialog;
+class ManualDiffHelpDialog;
+class DiffTextWindow;
+class DiffTextWindowFrame;
+class MergeResultWindow;
+class WindowTitleWidget;
+class Overview;
+
+class QScrollBar;
+class QSplitter;
+
+
+class KDiff3Part;
+class DirectoryMergeWindow;
+class DirectoryMergeInfo;
+
+
+class ReversibleScrollBar : public QScrollBar
+{
+   Q_OBJECT
+   bool* m_pbRightToLeftLanguage;
+   int m_realVal;
+public:
+   ReversibleScrollBar( Qt::Orientation o, bool* pbRightToLeftLanguage )
+      : QScrollBar( o )
+   {
+      m_pbRightToLeftLanguage=pbRightToLeftLanguage;
+      m_realVal=0;
+      connect( this, SIGNAL(valueChanged(int)), this, SLOT(slotValueChanged(int)));
+   }
+   void setAgain(){ setValue(m_realVal); }
+public slots:
+   void slotValueChanged(int i)
+   {
+      m_realVal = i;
+      if(m_pbRightToLeftLanguage && *m_pbRightToLeftLanguage)
+         m_realVal = maximum()-(i-minimum());
+      emit valueChanged2(m_realVal);
+   }
+   void setValue(int i)
+   {
+      if(m_pbRightToLeftLanguage && *m_pbRightToLeftLanguage)
+         QScrollBar::setValue( maximum()-(i-minimum())  );
+      else
+         QScrollBar::setValue( i );
+   }
+   int value() const
+   {
+      return m_realVal;
+   }
+signals:
+   void valueChanged2(int);
+};
+
+class KDiff3App : public QSplitter
+{
+  Q_OBJECT
+
+  public:
+    /** constructor of KDiff3App, calls all init functions to create the application.
+     */
+    KDiff3App( QWidget* parent, const char* name, KDiff3Part* pKDiff3Part );
+    ~KDiff3App();
+
+    bool isPart();
+
+    /** initializes the KActions of the application */
+    void initActions( KActionCollection* );
+
+    /** save general Options like all bar positions and status as well as the geometry
+        and the recent file list to the configuration file */
+    void saveOptions( KSharedConfigPtr );
+
+    /** read general Options again and initialize all variables like the recent file list */
+    void readOptions( KSharedConfigPtr );
+
+    // Finish initialisation (virtual, so that it can be called from the shell too.)
+    virtual void completeInit(const QString& fn1="", const QString& fn2="", const QString& fn3="");
+
+    /** queryClose is called by KMainWindow on each closeEvent of a window. Against the
+     * default implementation (only returns true), this calles saveModified() on the document object to ask if the document shall
+     * be saved if Modified; on cancel the closeEvent is rejected.
+     * @see KMainWindow#queryClose
+     * @see KMainWindow#closeEvent
+     */
+    virtual bool queryClose();
+    virtual bool isFileSaved();
+    virtual bool isDirComparison();
+
+  signals:
+     void createNewInstance( const QString& fn1, const QString& fn2, const QString& fn3 );
+  protected:
+    void initDirectoryMergeActions();
+    /** sets up the statusbar for the main window by initialzing a statuslabel. */
+    void initStatusBar();
+
+    /** creates the centerwidget of the KMainWindow instance and sets it as the view */
+    void initView();
+
+  public slots:
+
+    /** open a file and load it into the document*/
+    void slotFileOpen();
+    void slotFileOpen2( QString fn1, QString fn2, QString fn3, QString ofn,
+                        QString an1, QString an2, QString an3, TotalDiffStatus* pTotalDiffStatus );
+
+    void slotFileNameChanged(const QString& fileName, int winIdx);
+
+    /** save a document */
+    void slotFileSave();
+    /** save a document by a new filename*/
+    void slotFileSaveAs();
+
+    void slotFilePrint();
+
+    /** closes all open windows by calling close() on each memberList item until the list is empty, then quits the application.
+     * If queryClose() returns false because the user canceled the saveModified() dialog, the closing breaks.
+     */
+    void slotFileQuit();
+    /** put the marked text/object into the clipboard and remove
+     *  it from the document
+     */
+    void slotEditCut();
+    /** put the marked text/object into the clipboard
+     */
+    void slotEditCopy();
+    /** paste the clipboard into the document
+     */
+    void slotEditPaste();
+    /** toggles the toolbar
+     */
+    void slotViewToolBar();
+    /** toggles the statusbar
+     */
+    void slotViewStatusBar();
+    /** changes the statusbar contents for the standard label permanently, used to indicate current actions.
+     * @param text the text that is displayed in the statusbar
+     */
+    void slotStatusMsg(const QString &text);
+
+  private:
+    /** the configuration object of the application */
+    //KConfig *config;
+
+    // KAction pointers to enable/disable actions
+    KAction* fileOpen;
+    KAction* fileSave;
+    KAction* fileSaveAs;
+    KAction* filePrint;
+    KAction* fileQuit;
+    KAction* fileReload;
+    KAction* editCut;
+    KAction* editCopy;
+    KAction* editPaste;
+    KAction* editSelectAll;
+    KToggleAction* viewToolBar;
+    KToggleAction* viewStatusBar;
+
+////////////////////////////////////////////////////////////////////////
+// Special KDiff3 specific stuff starts here
+    KAction *editFind;
+    KAction *editFindNext;
+
+    KAction *goCurrent;
+    KAction *goTop;
+    KAction *goBottom;
+    KAction *goPrevUnsolvedConflict;
+    KAction *goNextUnsolvedConflict;
+    KAction *goPrevConflict;
+    KAction *goNextConflict;
+    KAction *goPrevDelta;
+    KAction *goNextDelta;
+    KToggleAction *chooseA;
+    KToggleAction *chooseB;
+    KToggleAction *chooseC;
+    KToggleAction *autoAdvance;
+    KToggleAction *wordWrap;
+    KAction* splitDiff;
+    KAction* joinDiffs;
+    KAction* addManualDiffHelp;
+    KAction* clearManualDiffHelpList;
+    KToggleAction *showWhiteSpaceCharacters;
+    KToggleAction *showWhiteSpace;
+    KToggleAction *showLineNumbers;
+    KAction* chooseAEverywhere;
+    KAction* chooseBEverywhere;
+    KAction* chooseCEverywhere;
+    KAction* chooseAForUnsolvedConflicts;
+    KAction* chooseBForUnsolvedConflicts;
+    KAction* chooseCForUnsolvedConflicts;
+    KAction* chooseAForUnsolvedWhiteSpaceConflicts;
+    KAction* chooseBForUnsolvedWhiteSpaceConflicts;
+    KAction* chooseCForUnsolvedWhiteSpaceConflicts;
+    KAction* autoSolve;
+    KAction* unsolve;
+    KAction* mergeHistory;
+    KAction* mergeRegExp;
+    KToggleAction *showWindowA;
+    KToggleAction *showWindowB;
+    KToggleAction *showWindowC;
+    KAction *winFocusNext;
+    KAction *winFocusPrev;
+    KAction* winToggleSplitOrientation;
+    KToggleAction *dirShowBoth;
+    KAction *dirViewToggle;
+    KToggleAction *overviewModeNormal;
+    KToggleAction *overviewModeAB;
+    KToggleAction *overviewModeAC;
+    KToggleAction *overviewModeBC;
+
+
+    QMenu* m_pMergeEditorPopupMenu;
+
+    QSplitter*  m_pMainSplitter;
+    QWidget*    m_pMainWidget;
+    QWidget*    m_pMergeWindowFrame;
+    ReversibleScrollBar* m_pHScrollBar;
+    QScrollBar* m_pDiffVScrollBar;
+    QScrollBar* m_pMergeVScrollBar;
+
+    DiffTextWindow* m_pDiffTextWindow1;
+    DiffTextWindow* m_pDiffTextWindow2;
+    DiffTextWindow* m_pDiffTextWindow3;
+    DiffTextWindowFrame* m_pDiffTextWindowFrame1;
+    DiffTextWindowFrame* m_pDiffTextWindowFrame2;
+    DiffTextWindowFrame* m_pDiffTextWindowFrame3;
+    QSplitter* m_pDiffWindowSplitter;
+
+    MergeResultWindow* m_pMergeResultWindow;
+    WindowTitleWidget* m_pMergeResultWindowTitle;
+    bool m_bTripleDiff;
+
+    QSplitter* m_pDirectoryMergeSplitter;
+    DirectoryMergeWindow* m_pDirectoryMergeWindow;
+    DirectoryMergeInfo* m_pDirectoryMergeInfo;
+    bool m_bDirCompare;
+
+    Overview* m_pOverview;
+
+    QWidget* m_pCornerWidget;
+
+    TotalDiffStatus m_totalDiffStatus;
+
+    SourceData m_sd1;
+    SourceData m_sd2;
+    SourceData m_sd3;
+
+   QString m_outputFilename;
+   bool m_bDefaultFilename;
+
+   DiffList m_diffList12;
+   DiffList m_diffList23;
+   DiffList m_diffList13;
+
+   DiffBufferInfo m_diffBufferInfo;
+   Diff3LineList m_diff3LineList;
+   Diff3LineVector m_diff3LineVector;
+   //ManualDiffHelpDialog* m_pManualDiffHelpDialog;
+   ManualDiffHelpList m_manualDiffHelpList;
+
+   int m_neededLines;
+   int m_DTWHeight;
+   bool m_bOutputModified;
+   bool m_bFileSaved;
+   bool m_bTimerBlock;      // Synchronisation
+
+   OptionDialog* m_pOptionDialog;
+   Options*      m_pOptions;
+   FindDialog*   m_pFindDialog;
+
+   void mainInit( TotalDiffStatus* pTotalDiffStatus=0, bool bLoadFiles=true, bool bUseCurrentEncoding = false);
+   bool m_bFinishMainInit;
+   bool m_bLoadFiles;
+
+   virtual bool eventFilter( QObject* o, QEvent* e );
+   virtual void resizeEvent(QResizeEvent*);
+   virtual void childEvent(QChildEvent *c);
+
+   bool improveFilenames(bool bCreateNewInstance);
+
+   bool canContinue();
+
+   void choose(int choice);
+
+   KActionCollection* actionCollection();
+   KStatusBar*        statusBar();
+   KToolBar*          toolBar(const char*);
+   KDiff3Part*        m_pKDiff3Part;
+   KParts::MainWindow*       m_pKDiff3Shell;
+   bool m_bAutoFlag;
+   bool m_bAutoMode;
+   void recalcWordWrap(int nofVisibleColumns=-1);
+   bool m_bRecalcWordWrapPosted;
+   void setHScrollBarRange();
+
+   int m_iCumulativeWheelDelta;
+
+   int m_visibleTextWidthForPrinting; // only needed during recalcWordWrap
+   int m_firstD3LIdx;                   // only needed during recalcWordWrap
+   QPointer<QEventLoop> m_pEventLoopForPrinting;
+
+public slots:
+   void resizeDiffTextWindowHeight(int newHeight);
+   void resizeMergeResultWindow();
+   void slotRecalcWordWrap();
+   void postRecalcWordWrap();
+   void slotFinishRecalcWordWrap();
+
+   void showPopupMenu( const QPoint& point );
+
+   void scrollDiffTextWindow( int deltaX, int deltaY );
+   void scrollMergeResultWindow( int deltaX, int deltaY );
+   void setDiff3Line( int line );
+   void sourceMask( int srcMask, int enabledMask );
+
+   void slotDirShowBoth();
+   void slotDirViewToggle();
+
+   void slotUpdateAvailabilities();
+   void slotEditSelectAll();
+   void slotEditFind();
+   void slotEditFindNext();
+   void slotGoCurrent();
+   void slotGoTop();
+   void slotGoBottom();
+   void slotGoPrevUnsolvedConflict();
+   void slotGoNextUnsolvedConflict();
+   void slotGoPrevConflict();
+   void slotGoNextConflict();
+   void slotGoPrevDelta();
+   void slotGoNextDelta();
+   void slotChooseA();
+   void slotChooseB();
+   void slotChooseC();
+   void slotAutoSolve();
+   void slotUnsolve();
+   void slotMergeHistory();
+   void slotRegExpAutoMerge();
+   void slotChooseAEverywhere();
+   void slotChooseBEverywhere();
+   void slotChooseCEverywhere();
+   void slotChooseAForUnsolvedConflicts();
+   void slotChooseBForUnsolvedConflicts();
+   void slotChooseCForUnsolvedConflicts();
+   void slotChooseAForUnsolvedWhiteSpaceConflicts();
+   void slotChooseBForUnsolvedWhiteSpaceConflicts();
+   void slotChooseCForUnsolvedWhiteSpaceConflicts();
+   void slotConfigure();
+   void slotConfigureKeys();
+   void slotRefresh();
+   void slotSelectionEnd();
+   void slotSelectionStart();
+   void slotClipboardChanged();
+   void slotOutputModified(bool);
+   void slotFinishMainInit();
+   void slotMergeCurrentFile();
+   void slotReload();
+   void slotCheckIfCanContinue( bool* pbContinue );
+   void slotShowWhiteSpaceToggled();
+   void slotShowLineNumbersToggled();
+   void slotAutoAdvanceToggled();
+   void slotWordWrapToggled();
+   void slotShowWindowAToggled();
+   void slotShowWindowBToggled();
+   void slotShowWindowCToggled();
+   void slotWinFocusNext();
+   void slotWinFocusPrev();
+   void slotWinToggleSplitterOrientation();
+   void slotOverviewNormal();
+   void slotOverviewAB();
+   void slotOverviewAC();
+   void slotOverviewBC();
+   void slotSplitDiff();
+   void slotJoinDiffs();
+   void slotAddManualDiffHelp();
+   void slotClearManualDiffHelpList();
+   void slotNoRelevantChangesDetected();
+   void slotEncodingChangedA(QTextCodec*);
+   void slotEncodingChangedB(QTextCodec*);
+   void slotEncodingChangedC(QTextCodec*);
+};
+
+#endif // KDIFF3_H
diff --git a/src-QT4/kdiff3.ico b/src-QT4/kdiff3.ico
new file mode 100644 (file)
index 0000000..a10847b
Binary files /dev/null and b/src-QT4/kdiff3.ico differ
diff --git a/src-QT4/kdiff3.lsm b/src-QT4/kdiff3.lsm
new file mode 100644 (file)
index 0000000..3eedb77
--- /dev/null
@@ -0,0 +1,16 @@
+Begin3
+Title:          kdiff3 -- Comparison and Merge of Files and Directories
+Version:        0.9.89
+Entered-date:   
+Description:    Tool for comparison and merge of two or three files or directories
+Keywords:       KDE Qt
+Author:         Joachim Eibl <joachim at gmx.de>
+Maintained-by:  Joachim Eibl <joachim at gmx.de>
+Home-page:      http://kdiff3.sourceforge.net
+Alternate-site: http://extragear.kde.org/apps/kdiff3
+Primary-site:   http://sourceforge.net/project/showfiles.php?group_id=58666
+                xxxxxx  kdiff3-0.9.89.tar.gz
+                xxx     kdiff3-0.9.89.lsm
+Platform:       Linux. Needs Qt, runs even better on KDE
+Copying-policy: GPL
+End
diff --git a/src-QT4/kdiff3.pro b/src-QT4/kdiff3.pro
new file mode 100644 (file)
index 0000000..ce3a7f0
--- /dev/null
@@ -0,0 +1,77 @@
+TEMPLATE = app
+# When unresolved items remain during linking: Try adding "shared" in the CONFIG.
+CONFIG  += qt warn_on thread precompile_header
+greaterThan(QT_MAJOR_VERSION, 4): QT += widgets printsupport
+#!os2:PRECOMPILED_HEADER = stable.h
+HEADERS  = version.h                     \
+           common.h                      \
+           diff.h                        \
+           difftextwindow.h              \
+           mergeresultwindow.h           \
+           kdiff3.h                      \
+           merger.h                      \
+           optiondialog.h                \
+           options.h                     \
+           progress.h                    \
+           kreplacements/kreplacements.h \
+           directorymergewindow.h        \
+           fileaccess.h                  \
+           kdiff3_shell.h                \
+           kdiff3_part.h                 \
+           smalldialogs.h
+SOURCES  = main.cpp                      \
+           diff.cpp                      \
+           difftextwindow.cpp            \
+           kdiff3.cpp                    \
+           merger.cpp                    \
+           mergeresultwindow.cpp         \
+           optiondialog.cpp              \
+           pdiff.cpp                     \
+           directorymergewindow.cpp      \
+           fileaccess.cpp                \
+           progress.cpp                  \
+           smalldialogs.cpp              \
+           kdiff3_shell.cpp              \
+           kdiff3_part.cpp               \
+           gnudiff_analyze.cpp           \
+           gnudiff_io.cpp                \
+           gnudiff_xmalloc.cpp           \
+           common.cpp                    \
+           stable.cpp                    \
+           kreplacements/kreplacements.cpp \
+           kreplacements/ShellContextMenu.cpp
+TARGET   = kdiff3
+INCLUDEPATH += . ./kreplacements
+
+win32 {
+#   QMAKE_CXXFLAGS_DEBUG  -= -Zi
+#   QMAKE_CXXFLAGS_DEBUG  += -GX -GR -Z7 /FR -DQT_NO_ASCII_CAST
+#   QMAKE_LFLAGS_DEBUG  += /PDB:NONE
+#   QMAKE_CXXFLAGS_RELEASE  += -GX -GR -DNDEBUG -DQT_NO_ASCII_CAST
+
+   QMAKE_CXXFLAGS_DEBUG  += -DQT_NO_ASCII_CAST
+   QMAKE_CXXFLAGS_RELEASE  += -DNDEBUG -DQT_NO_ASCII_CAST
+   RC_FILE = kdiff3win.rc
+   win32-g++ {
+           QMAKE_LFLAGS += -luser32 -lshell32 -luuid
+           #QMAKE_LFLAGS_RELEASE += -static-libgcc  # Remove dependency to libgcc_s_dw2-1.dll
+           #QMAKE_LFLAGS_EXCEPTIONS_ON -= -mthreads # Remove dependency to mingwm10.dll (hack, yet no problem if not multithreaded)
+                                                   # Better: configure -static -release -no-exceptions -fast
+   } else {
+           QMAKE_LFLAGS += user32.lib shell32.lib
+   }
+}
+os2 {
+  RC_FILE = kdiff3os2.rc
+}
+
+unix {
+  documentation.path = /usr/local/share/doc/kdiff3
+  documentation.files = ../doc/*
+
+  INSTALLS += documentation
+
+  target.path = /usr/local/bin
+  INSTALLS += target
+}
+
diff --git a/src-QT4/kdiff3_os2.ico b/src-QT4/kdiff3_os2.ico
new file mode 100644 (file)
index 0000000..e146198
Binary files /dev/null and b/src-QT4/kdiff3_os2.ico differ
diff --git a/src-QT4/kdiff3_part.cpp b/src-QT4/kdiff3_part.cpp
new file mode 100644 (file)
index 0000000..8360001
--- /dev/null
@@ -0,0 +1,319 @@
+/***************************************************************************
+ * Copyright (C) 2003-2007 Joachim Eibl <joachim.eibl at gmx.de>           *
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ *   This program is distributed in the hope that it will be useful,       *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
+ *   GNU General Public License for more details.                          *
+ *                                                                         *
+ *   You should have received a copy of the GNU General Public License     *
+ *   along with this program; if not, write to the                         *
+ *   Free Software Foundation, Inc.,                                       *
+ *   51 Franklin Steet, Fifth Floor, Boston, MA 02110-1301, USA.           *
+ ***************************************************************************/
+
+#include "kdiff3_part.h"
+
+#include <kcomponentdata.h>
+#include <kaction.h>
+#include <kstandardaction.h>
+#include <kfiledialog.h>
+
+#include <QFile>
+#include <QTextStream>
+#include <QProcess>
+
+#include "kdiff3.h"
+#include "fileaccess.h"
+
+#include <kmessagebox.h>
+#include <klocale.h>
+
+#include "version.h"
+
+KDiff3Part::KDiff3Part( QWidget *parentWidget, const char *widgetName,
+                                  QObject *parent )
+    : KParts::ReadWritePart(parent)
+{
+    // we need an instance
+    setComponentData( *KDiff3PartFactory::instance() );
+
+    // this should be your custom internal widget
+    m_widget = new KDiff3App( parentWidget, widgetName, this );
+    
+    // This hack is necessary to avoid a crash when the program terminates.
+    m_bIsShell = qobject_cast<KParts::MainWindow*>(parentWidget)!=0;
+
+    // notify the part that this is our internal widget
+    setWidget(m_widget);
+
+    // create our actions
+    //KStandardAction::open(this, SLOT(fileOpen()), actionCollection());
+    //KStandardAction::saveAs(this, SLOT(fileSaveAs()), actionCollection());
+    //KStandardAction::save(this, SLOT(save()), actionCollection());
+
+    setXMLFile("kdiff3_part.rc");
+
+    // we are read-write by default
+    setReadWrite(true);
+
+    // we are not modified since we haven't done anything yet
+    setModified(false);
+}
+
+KDiff3Part::~KDiff3Part()
+{
+   if ( m_widget!=0  && ! m_bIsShell )
+   {
+      m_widget->saveOptions( m_widget->isPart() ? componentData().config() : KGlobal::config() );
+   }
+}
+
+void KDiff3Part::setReadWrite(bool /*rw*/)
+{
+//    ReadWritePart::setReadWrite(rw);
+}
+
+void KDiff3Part::setModified(bool /*modified*/)
+{
+/*
+    // get a handle on our Save action and make sure it is valid
+    KAction *save = actionCollection()->action(KStandardAction::stdName(KStandardAction::Save));
+    if (!save)
+        return;
+
+    // if so, we either enable or disable it based on the current
+    // state
+    if (modified)
+        save->setEnabled(true);
+    else
+        save->setEnabled(false);
+
+    // in any event, we want our parent to do it's thing
+    ReadWritePart::setModified(modified);
+*/
+}
+
+static void getNameAndVersion( const QString& str, const QString& lineStart, QString& fileName, QString& version )
+{
+   if ( str.left( lineStart.length() )==lineStart && fileName.isEmpty() )
+   {
+      int pos = lineStart.length();
+      while ( pos<str.length() && (str[pos]==' ' || str[pos]=='\t') ) ++pos;
+      int pos2 = str.length()-1;
+      while ( pos2>pos )
+      { 
+         while (pos2>pos && str[pos2]!=' ' && str[pos2]!='\t') --pos2;
+         fileName = str.mid( pos, pos2-pos );
+         fprintf(stderr, "KDiff3: %s\n", fileName.toLatin1().constData());
+         if ( FileAccess(fileName).exists() ) break;
+         --pos2;
+      }
+      
+      int vpos = str.lastIndexOf("\t", -1);
+      if ( vpos>0 && vpos>(int)pos2 )
+      {
+         version = str.mid( vpos+1 );
+         while( !version.right(1)[0].isLetterOrNumber() )
+            version.truncate( version.length()-1 );
+      }
+   }
+}
+
+
+bool KDiff3Part::openFile()
+{
+   // m_file is always local so we can use QFile on it
+   fprintf(stderr, "KDiff3: %s\n", localFilePath().toLatin1().constData());
+   QFile file(localFilePath());
+   if (file.open(QIODevice::ReadOnly) == false)
+      return false;
+
+   // our example widget is text-based, so we use QTextStream instead
+   // of a raw QDataStream
+   QTextStream stream(&file);
+   QString str;
+   QString fileName1;
+   QString fileName2;
+   QString version1;
+   QString version2;
+   while (!stream.atEnd() && (fileName1.isEmpty() || fileName2.isEmpty()) )
+   {
+      str = stream.readLine() + "\n";
+      getNameAndVersion( str, "---", fileName1, version1 );
+      getNameAndVersion( str, "+++", fileName2, version2 );
+   }
+
+   file.close();
+
+   if ( fileName1.isEmpty() && fileName2.isEmpty() )
+   {
+      KMessageBox::sorry(m_widget, i18n("Couldn't find files for comparison."));
+      return false;
+   }
+
+   FileAccess f1(fileName1);
+   FileAccess f2(fileName2);
+
+   if ( f1.exists() && f2.exists() && fileName1!=fileName2 )
+   {
+      m_widget->slotFileOpen2( fileName1, fileName2, "", "", "", "", "", 0 );
+      return true;
+   }
+   else if ( version1.isEmpty() && f1.exists() )
+   {
+      // Normal patch
+      // patch -f -u --ignore-whitespace -i [inputfile] -o [outfile] [patchfile]
+      QString tempFileName = FileAccess::tempFileName();
+      QString cmd = "patch -f -u --ignore-whitespace -i \"" + localFilePath() +
+                  "\" -o \""+tempFileName + "\" \"" + fileName1+ "\"";
+
+      QProcess process;
+      process.start( cmd );
+      process.waitForFinished(-1);
+
+      m_widget->slotFileOpen2( fileName1, tempFileName, "", "",
+                               "", version2.isEmpty() ? fileName2 : "REV:"+version2+":"+fileName2, "", 0 ); // alias names
+//    std::cerr << "KDiff3: f1:" << fileName1.toLatin1() <<"<->"<<tempFileName.toLatin1()<< std::endl;
+      FileAccess::removeTempFile( tempFileName );
+   }
+   else if ( version2.isEmpty() && f2.exists() )
+   {
+      // Reverse patch
+      // patch -f -u -R --ignore-whitespace -i [inputfile] -o [outfile] [patchfile]
+      QString tempFileName = FileAccess::tempFileName();
+      QString cmd = "patch -f -u -R --ignore-whitespace -i \"" + localFilePath() +
+                  "\" -o \""+tempFileName + "\" \"" + fileName2+"\"";
+
+      QProcess process;
+      process.start( cmd );
+      process.waitForFinished(-1);
+
+      m_widget->slotFileOpen2( tempFileName, fileName2, "", "",
+                               version1.isEmpty() ? fileName1 : "REV:"+version1+":"+fileName1, "", "", 0 ); // alias name
+//    std::cerr << "KDiff3: f2:" << fileName2.toLatin1() <<"<->"<<tempFileName.toLatin1()<< std::endl;
+      FileAccess::removeTempFile( tempFileName );
+   }
+   else if ( !version1.isEmpty() && !version2.isEmpty() )
+   {
+      fprintf(stderr, "KDiff3: f1/2:%s<->%s\n", fileName1.toLatin1().constData(), fileName2.toLatin1().constData());
+      // Assuming that files are on CVS: Try to get them
+      // cvs update -p -r [REV] [FILE] > [OUTPUTFILE]
+
+      QString tempFileName1 = FileAccess::tempFileName();
+      QString cmd1 = "cvs update -p -r " + version1 + " \"" + fileName1 + "\" >\""+tempFileName1+"\"";
+      QProcess process1;
+      process1.start( cmd1 );
+      process1.waitForFinished(-1);
+
+      QString tempFileName2 = FileAccess::tempFileName();
+      QString cmd2 = "cvs update -p -r " + version2 + " \"" + fileName2 + "\" >\""+tempFileName2+"\"";
+      QProcess process2;
+      process2.start( cmd2 );
+      process2.waitForFinished(-1);
+
+      m_widget->slotFileOpen2( tempFileName1, tempFileName2, "", "",
+         "REV:"+version1+":"+fileName1,
+         "REV:"+version2+":"+fileName2,
+         "", 0
+      );
+
+//    std::cerr << "KDiff3: f1/2:" << tempFileName1.toLatin1() <<"<->"<<tempFileName2.toLatin1()<< std::endl;
+      FileAccess::removeTempFile( tempFileName1 );
+      FileAccess::removeTempFile( tempFileName2 );
+      return true;
+   }
+   else
+   {
+      KMessageBox::sorry(m_widget, i18n("Couldn't find files for comparison."));
+   }
+
+   return true;
+}
+
+bool KDiff3Part::saveFile()
+{
+/*    // if we aren't read-write, return immediately
+    if (isReadWrite() == false)
+        return false;
+
+    // localFilePath() is always local, so we use QFile
+    QFile file(localFilePath());
+    if (file.open(IO_WriteOnly) == false)
+        return false;
+
+    // use QTextStream to dump the text to the file
+    QTextStream stream(&file);
+    //stream << m_widget->text();
+
+    file.close();
+    return true;
+*/
+    return false;  // Not implemented
+}
+
+
+// It's usually safe to leave the factory code alone.. with the
+// notable exception of the KAboutData data
+#include <kaboutdata.h>
+#include <klocale.h>
+#include <kglobal.h>
+
+KComponentData*  KDiff3PartFactory::s_instance = 0L;
+KAboutData* KDiff3PartFactory::s_about = 0L;
+
+KDiff3PartFactory::KDiff3PartFactory()
+    : KParts::Factory()
+{
+}
+
+KDiff3PartFactory::~KDiff3PartFactory()
+{
+    delete s_instance;
+    delete s_about;
+
+    s_instance = 0L;
+}
+
+KParts::Part* KDiff3PartFactory::createPartObject( QWidget *parentWidget,
+                                                        QObject *parent,
+                                                        const char *classname, const QStringList&/*args*/ )
+{
+    // Create an instance of our Part
+    KDiff3Part* obj = new KDiff3Part( parentWidget, 0, parent );
+
+    // See if we are to be read-write or not
+    if (QString(classname) == "KParts::ReadOnlyPart")
+        obj->setReadWrite(false);
+
+    return obj;
+}
+
+KComponentData* KDiff3PartFactory::instance()
+{
+    if( !s_instance )
+    {
+        s_about = new KAboutData(QByteArray("kdiff3part"), QByteArray("kdiff3part"), ki18n("KDiff3Part"), QByteArray(VERSION));
+        s_about->addAuthor(ki18n("Joachim Eibl"), KLocalizedString(), QByteArray("joachim.eibl at gmx.de"));
+        s_instance = new KComponentData(s_about);
+    }
+    return s_instance;
+}
+
+extern "C"
+{
+    void* init_libkdiff3part()
+    {
+        return new KDiff3PartFactory;
+    }
+}
+
+// Suppress warning with --enable-final
+#undef VERSION
+
+//#include "kdiff3_part.moc"
diff --git a/src-QT4/kdiff3_part.h b/src-QT4/kdiff3_part.h
new file mode 100644 (file)
index 0000000..be6b604
--- /dev/null
@@ -0,0 +1,99 @@
+/***************************************************************************
+ * Copyright (C) 2003-2007 Joachim Eibl <joachim.eibl at gmx.de>           *
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ *   This program is distributed in the hope that it will be useful,       *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
+ *   GNU General Public License for more details.                          *
+ *                                                                         *
+ *   You should have received a copy of the GNU General Public License     *
+ *   along with this program; if not, write to the                         *
+ *   Free Software Foundation, Inc.,                                       *
+ *   51 Franklin Steet, Fifth Floor, Boston, MA 02110-1301, USA.           *
+ ***************************************************************************/
+
+#ifndef _KDIFF3PART_H_
+#define _KDIFF3PART_H_
+
+#include <kparts/part.h>
+#include <kparts/factory.h>
+
+class QWidget;
+class KDiff3App;
+
+/**
+ * This is a "Part".  It that does all the real work in a KPart
+ * application.
+ *
+ * @short Main Part
+ * @author Joachim Eibl <joachim.eibl at gmx.de>
+ */
+class KDiff3Part : public KParts::ReadWritePart
+{
+    Q_OBJECT
+public:
+    /**
+     * Default constructor
+     */
+    KDiff3Part(QWidget *parentWidget, const char *widgetName,
+                    QObject *parent );
+
+    /**
+     * Destructor
+     */
+    virtual ~KDiff3Part();
+
+    /**
+     * This is a virtual function inherited from KParts::ReadWritePart.
+     * A shell will use this to inform this Part if it should act
+     * read-only
+     */
+    virtual void setReadWrite(bool rw);
+
+    /**
+     * Reimplemented to disable and enable Save action
+     */
+    virtual void setModified(bool modified);
+
+protected:
+    /**
+     * This must be implemented by each part
+     */
+    virtual bool openFile();
+
+    /**
+     * This must be implemented by each read-write part
+     */
+    virtual bool saveFile();
+
+private:
+    KDiff3App* m_widget;
+    bool m_bIsShell;
+};
+
+class KComponentData;
+class KAboutData;
+
+class KDiff3PartFactory : public KParts::Factory
+{
+    Q_OBJECT
+public:
+    KDiff3PartFactory();
+    virtual ~KDiff3PartFactory();
+    virtual KParts::Part* createPartObject( QWidget *parentWidget,
+                                            QObject *parent,
+                                            const char *classname, 
+                                            const QStringList &args );
+    static KComponentData* instance();
+
+private:
+    static KComponentData* s_instance;
+    static KAboutData* s_about;
+};
+
+#endif // _KDIFF3PART_H_
diff --git a/src-QT4/kdiff3_part.rc b/src-QT4/kdiff3_part.rc
new file mode 100644 (file)
index 0000000..72ae4c4
--- /dev/null
@@ -0,0 +1,24 @@
+<!DOCTYPE kpartgui SYSTEM "kpartgui.dtd">
+<kpartgui name="kdiff3_part" version="9">
+<MenuBar>
+  <Menu name="movement"><text>&amp;KDiff3</text>
+    <Action name="go_top"/>
+    <Action name="go_bottom"/>
+    <Action name="go_prev_delta"/>
+    <Action name="go_next_delta"/>
+    <Action name="diff_showwhitespace"/>
+    <Action name="diff_showlinenumbers"/>
+    <Action name="diff_wordwrap"/>
+    <Action name="win_toggle_split_orientation"/>
+    <Action name="options_configure"><text>Configure KDiff3</text></Action>
+  </Menu>
+</MenuBar>
+<ToolBar name="mainToolBar"><text>KDiff3</text>
+  <Action name="go_top"/>
+  <Action name="go_bottom"/>
+  <Action name="go_prev_delta"/>
+  <Action name="go_next_delta"/>
+  <Action name="diff_showwhitespace"/>
+  <Action name="diff_showlinenumbers"/>
+</ToolBar>
+</kpartgui>
diff --git a/src-QT4/kdiff3_shell.cpp b/src-QT4/kdiff3_shell.cpp
new file mode 100644 (file)
index 0000000..3eae649
--- /dev/null
@@ -0,0 +1,174 @@
+/***************************************************************************
+ * Copyright (C) 2003-2007 Joachim Eibl <joachim.eibl at gmx.de>           *
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ *   This program is distributed in the hope that it will be useful,       *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
+ *   GNU General Public License for more details.                          *
+ *                                                                         *
+ *   You should have received a copy of the GNU General Public License     *
+ *   along with this program; if not, write to the                         *
+ *   Free Software Foundation, Inc.,                                       *
+ *   51 Franklin Steet, Fifth Floor, Boston, MA 02110-1301, USA.           *
+ ***************************************************************************/
+
+#include "kdiff3_shell.h"
+#include "kdiff3.h"
+#include "kdiff3_part.h"
+
+#include <kshortcutsdialog.h>
+#include <kfiledialog.h>
+#include <kconfig.h>
+#include <kurl.h>
+
+#include <kedittoolbar.h>
+
+#include <kaction.h>
+#include <kstandardaction.h>
+
+#include <klibloader.h>
+#include <kmessagebox.h>
+#include <kstatusbar.h>
+#include <klocale.h>
+
+#include <QStatusBar>
+#include <QCloseEvent>
+#include <ktoolbar.h>
+
+
+KDiff3Shell::KDiff3Shell( bool bCompleteInit )
+    : KParts::MainWindow( )
+{
+    m_bUnderConstruction = true;
+    // set the shell's ui resource file
+    setXMLFile("kdiff3_shell.rc");
+
+    // and a status bar
+    statusBar()->show();
+
+//       m_part = static_cast<KParts::ReadWritePart*>(factory->create(this, "KDiff3Part", QStringList("KParts::ReadWritePart")));
+   m_part = new KDiff3Part( this, "KDiff3Part", this );
+
+   if (m_part)
+   {
+      // and integrate the part's GUI with the shell's
+      createGUI(m_part);
+      //toolBar()->setToolButtonStyle( Qt::ToolButtonIconOnly );
+
+      // tell the KParts::MainWindow that this is indeed the main widget
+      setCentralWidget(m_part->widget());
+
+      if (bCompleteInit)
+        ((KDiff3App*)m_part->widget())->completeInit();
+      connect(((KDiff3App*)m_part->widget()), SIGNAL(createNewInstance(const QString&, const QString&, const QString&)), this, SLOT(slotNewInstance(const QString&, const QString&, const QString&)));
+   }
+    else
+    {
+        // if we couldn't find our Part, we exit since the Shell by
+        // itself can't do anything useful
+        KMessageBox::error(this, i18n("Could not initialize the KDiff3 part.\n"
+           "This usually happens due to an installation problem. "
+           "Please read the README-file in the source package for details.")
+           );
+        //kapp->quit();
+
+        ::exit(-1); //kapp->quit() doesn't work here yet.
+
+        // we return here, cause kapp->quit() only means "exit the
+        // next time we enter the event loop...
+
+        return;
+    }
+
+    // apply the saved mainwindow settings, if any, and ask the mainwindow
+    // to automatically save settings if changed: window size, toolbar
+    // position, icon size, etc.
+    setAutoSaveSettings();
+    m_bUnderConstruction = false;
+}
+
+KDiff3Shell::~KDiff3Shell()
+{
+}
+
+bool KDiff3Shell::queryClose()
+{
+   if (m_part)
+      return ((KDiff3App*)m_part->widget())->queryClose();
+   else
+      return true;
+}
+
+bool KDiff3Shell::queryExit()
+{
+   return true;
+}
+
+void KDiff3Shell::closeEvent(QCloseEvent*e)
+{
+   if ( queryClose() )
+   {
+      e->accept();
+      bool bFileSaved = ((KDiff3App*)m_part->widget())->isFileSaved();
+      bool bDirCompare = ((KDiff3App*)m_part->widget())->isDirComparison();
+      KApplication::exit( bFileSaved || bDirCompare ? 0 : 1 );
+   }
+   else
+      e->ignore();
+}
+
+void KDiff3Shell::optionsShowToolbar()
+{
+    // this is all very cut and paste code for showing/hiding the
+    // toolbar
+    if (m_toolbarAction->isChecked())
+        toolBar()->show();
+    else
+        toolBar()->hide();
+}
+
+void KDiff3Shell::optionsShowStatusbar()
+{
+    // this is all very cut and paste code for showing/hiding the
+    // statusbar
+    if (m_statusbarAction->isChecked())
+        statusBar()->show();
+    else
+        statusBar()->hide();
+}
+
+void KDiff3Shell::optionsConfigureKeys()
+{
+    KShortcutsDialog::configure(actionCollection() /*, "kdiff3_shell.rc" */ );
+}
+
+void KDiff3Shell::optionsConfigureToolbars()
+{
+   KConfigGroup mainWindowGroup(  KGlobal::config(), "MainWindow" );
+   saveMainWindowSettings( mainWindowGroup );
+
+    // use the standard toolbar editor
+    KEditToolBar dlg(factory());
+    connect(&dlg, SIGNAL(newToolbarConfig()),
+            this, SLOT(applyNewToolbarConfig()));
+    dlg.exec();
+}
+
+void KDiff3Shell::applyNewToolbarConfig()
+{
+   KConfigGroup mainWindowGroup(  KGlobal::config(), "MainWindow" );
+   applyMainWindowSettings( mainWindowGroup );
+}
+
+void KDiff3Shell::slotNewInstance( const QString& fn1, const QString& fn2, const QString& fn3 )
+{
+   KDiff3Shell* pKDiff3Shell = new KDiff3Shell(false);
+   ((KDiff3App*)pKDiff3Shell->m_part->widget())->completeInit(fn1,fn2,fn3);
+}
+
+//#include "kdiff3_shell.moc"
diff --git a/src-QT4/kdiff3_shell.h b/src-QT4/kdiff3_shell.h
new file mode 100644 (file)
index 0000000..0cfa19b
--- /dev/null
@@ -0,0 +1,72 @@
+/***************************************************************************
+ * Copyright (C) 2003-2007 Joachim Eibl <joachim.eibl at gmx.de>           *
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ *   This program is distributed in the hope that it will be useful,       *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
+ *   GNU General Public License for more details.                          *
+ *                                                                         *
+ *   You should have received a copy of the GNU General Public License     *
+ *   along with this program; if not, write to the                         *
+ *   Free Software Foundation, Inc.,                                       *
+ *   51 Franklin Steet, Fifth Floor, Boston, MA 02110-1301, USA.           *
+ ***************************************************************************/
+
+#ifndef _KDIFF3SHELL_H_
+#define _KDIFF3SHELL_H_
+
+#include <config-kdiff3.h>
+
+#include <kapplication.h>
+#include <kparts/mainwindow.h>
+
+class KToggleAction;
+
+/**
+ * This is the application "Shell".  It has a menubar, toolbar, and
+ * statusbar but relies on the "Part" to do all the real work.
+ *
+ * @short Application Shell
+ * @author Joachim Eibl <joachim.eibl at gmx.de>
+ */
+class KDiff3Shell : public KParts::MainWindow
+{
+    Q_OBJECT
+public:
+    /**
+     * Default Constructor
+     */
+    KDiff3Shell(bool bCompleteInit=true);
+
+    /**
+     * Default Destructor
+     */
+    virtual ~KDiff3Shell();
+
+    bool queryClose();
+    bool queryExit();
+    virtual void closeEvent(QCloseEvent*e);
+
+private slots:
+    void optionsShowToolbar();
+    void optionsShowStatusbar();
+    void optionsConfigureKeys();
+    void optionsConfigureToolbars();
+
+    void applyNewToolbarConfig();
+    void slotNewInstance( const QString& fn1, const QString& fn2, const QString& fn3 );
+
+private:
+    KParts::ReadWritePart *m_part;
+
+    KToggleAction *m_toolbarAction;
+    KToggleAction *m_statusbarAction;
+    bool m_bUnderConstruction;
+};
+
+#endif // _KDIFF3_H_
diff --git a/src-QT4/kdiff3_shell.rc b/src-QT4/kdiff3_shell.rc
new file mode 100644 (file)
index 0000000..32349b4
--- /dev/null
@@ -0,0 +1,128 @@
+<!DOCTYPE kpartgui SYSTEM "kpartgui.dtd">
+<kpartgui name="kdiff3_shell" version="9">
+<MenuBar>
+  <Menu name="file"><text>&amp;File</text>
+    <Action name="file_reload"/>
+  </Menu>
+  <Menu name="directory"><text>&amp;Directory</text>
+    <Action name="dir_start_operation"/>
+    <Action name="dir_run_operation_for_current_item"/>
+    <Action name="dir_compare_current"/>
+    <Action name="dir_rescan"/>
+    <!-- <Action name="dir_save_merge_state"/>
+    <Action name="dir_load_merge_state"/> -->
+    <Action name="dir_fold_all"/>
+    <Action name="dir_unfold_all"/>
+    <Action name="dir_show_identical_files"/>
+    <Action name="dir_show_different_files"/>
+    <Action name="dir_show_files_only_in_a"/>
+    <Action name="dir_show_files_only_in_b"/>
+    <Action name="dir_show_files_only_in_c"/>
+    <Action name="dir_choose_a_everywhere"/>
+    <Action name="dir_choose_b_everywhere"/>
+    <Action name="dir_choose_c_everywhere"/>
+    <Action name="dir_autochoose_everywhere"/>
+    <Action name="dir_nothing_everywhere"/>
+    <Action name="dir_synchronize_directories"/>
+    <Action name="dir_choose_newer_files"/>
+    <Action name="dir_compare_explicitly_selected_files"/>
+    <Action name="dir_merge_explicitly_selected_files"/>
+    <Menu name="dir_current_merge_menu"><text>Current Item Merge Operation</text>
+       <Action name="dir_current_do_nothing"/>
+       <Action name="dir_current_choose_a"/>
+       <Action name="dir_current_choose_b"/>
+       <Action name="dir_current_choose_c"/>
+       <Action name="dir_current_merge"/>
+       <Action name="dir_current_delete"/>
+    </Menu>
+    <Menu name="dir_current_sync_menu"><text>Current Item Sync Operation</text>
+       <Action name="dir_current_sync_do_nothing"/>
+       <Action name="dir_current_sync_copy_a_to_b"/>
+       <Action name="dir_current_sync_copy_b_to_a"/>
+       <Action name="dir_current_sync_delete_a"/>
+       <Action name="dir_current_sync_delete_b"/>
+       <Action name="dir_current_sync_delete_a_and_b"/>
+       <Action name="dir_current_sync_merge_to_a"/>
+       <Action name="dir_current_sync_merge_to_b"/>
+       <Action name="dir_current_sync_merge_to_a_and_b"/>
+    </Menu>
+  </Menu>
+  <Menu name="movement"><text>&amp;Movement</text>
+    <Action name="go_current"/>
+    <Action name="go_top"/>
+    <Action name="go_bottom"/>
+    <Action name="go_prev_delta"/>
+    <Action name="go_next_delta"/>
+    <Action name="go_prev_conflict"/>
+    <Action name="go_next_conflict"/>
+    <Action name="go_prev_unsolved_conflict"/>
+    <Action name="go_next_unsolved_conflict"/>
+  </Menu>
+  <Menu name="diff"><text>D&amp;iffview</text>
+    <Action name="diff_showlinenumbers"/>
+    <Action name="diff_show_whitespace_characters"/>
+    <Action name="diff_show_whitespace"/>
+    <Action name="diff_overview_normal"/>
+    <Action name="diff_overview_ab"/>
+    <Action name="diff_overview_ac"/>
+    <Action name="diff_overview_bc"/>
+    <Action name="diff_wordwrap"/>
+    <Action name="diff_add_manual_diff_help"/>
+    <Action name="diff_clear_manual_diff_help_list"/>
+  </Menu>  
+  <Menu name="merge"><text>&amp;Merge</text>
+    <Action name="merge_current"/>
+    <Action name="merge_choose_a"/>
+    <Action name="merge_choose_b"/>
+    <Action name="merge_choose_c"/>
+    <Action name="merge_autoadvance"/>
+    <Action name="merge_choose_a_everywhere"/>
+    <Action name="merge_choose_b_everywhere"/>
+    <Action name="merge_choose_c_everywhere"/>
+    <Action name="merge_choose_a_for_unsolved_conflicts"/>
+    <Action name="merge_choose_b_for_unsolved_conflicts"/>
+    <Action name="merge_choose_c_for_unsolved_conflicts"/>
+    <Action name="merge_choose_a_for_unsolved_whitespace_conflicts"/>
+    <Action name="merge_choose_b_for_unsolved_whitespace_conflicts"/>
+    <Action name="merge_choose_c_for_unsolved_whitespace_conflicts"/>
+    <Action name="merge_autosolve"/>
+    <Action name="merge_autounsolve"/>
+    <Action name="merge_splitdiff"/>
+    <Action name="merge_joindiffs"/>
+    <Action name="merge_regexp_automerge"/>
+    <Action name="merge_versioncontrol_history"/>
+  </Menu>
+  <Menu name="window"><text>&amp;Window</text>
+    <Action name="win_focus_prev"/>
+    <Action name="win_focus_next"/>
+    <Action name="win_show_a"/>
+    <Action name="win_show_b"/>
+    <Action name="win_show_c"/>
+    <Action name="win_dir_show_both"/>
+    <Action name="win_dir_view_toggle"/>
+    <Action name="win_toggle_split_orientation"/>
+  </Menu>
+</MenuBar>
+<ToolBar name="mainToolBar" iconText="icononly" fullWidth="true"><text>Main Toolbar</text>
+  <Action name="merge_current"/>
+  <Action name="go_current"/>
+  <Action name="go_top"/>
+  <Action name="go_bottom"/>
+  <Action name="go_prev_delta"/>
+  <Action name="go_next_delta"/>
+  <Action name="go_prev_conflict"/>
+  <Action name="go_next_conflict"/>
+  <Action name="go_prev_unsolved_conflict"/>
+  <Action name="go_next_unsolved_conflict"/>
+  <Action name="merge_choose_a"/>
+  <Action name="merge_choose_b"/>
+  <Action name="merge_choose_c"/>
+  <Action name="merge_autoadvance"/>
+  <Action name="diff_show_whitespace"/>
+  <Action name="diff_show_whitespace_characters"/>
+  <Action name="diff_showlinenumbers"/>
+  <Action name="dir_show_identical_files"/>
+  <Action name="dir_show_files_only_in_a"/>
+  <Action name="dir_show_files_only_in_b"/>
+</ToolBar>
+</kpartgui>
diff --git a/src-QT4/kdiff3os2.rc b/src-QT4/kdiff3os2.rc
new file mode 100644 (file)
index 0000000..bdf7832
--- /dev/null
@@ -0,0 +1 @@
+ICON 1    DISCARDABLE     "kdiff3_os2.ico"
\ No newline at end of file
diff --git a/src-QT4/kdiff3part.desktop b/src-QT4/kdiff3part.desktop
new file mode 100644 (file)
index 0000000..1d3e3df
--- /dev/null
@@ -0,0 +1,42 @@
+[Desktop Entry]
+Name=KDiff3Part
+Name[bg]=KDiff3Part
+Name[bs]=KDiff3Part
+Name[ca]=KDiff3Part
+Name[ca@valencia]=KDiff3Part
+Name[cs]=KDiff3Part
+Name[da]=KDiff3Part
+Name[de]=KDiff3Part
+Name[el]=KDiff3Part
+Name[en_GB]=KDiff3Part
+Name[es]=KDiff3Part
+Name[et]=KDiff3 komponent
+Name[fr]=KDiff3Part
+Name[ga]=KDiff3Part
+Name[gl]=KDiff3Part
+Name[hi]=के-डिफ3पार्ट
+Name[hne]=के-डिफ3पार्ट
+Name[hu]=KDiff3Part
+Name[it]=KDiff3Part
+Name[ja]=KDiff3Part
+Name[km]=KDiff3Part
+Name[ko]=KDiff3Part
+Name[ml]=കെഡിഫ്3ഭാഗം
+Name[nb]=KDiff3Part
+Name[nds]=KDiff3Part
+Name[nl]=KDiff3Part
+Name[nn]=KDiff3Part
+Name[pl]=Moduł KDiff3
+Name[pt]=KDiff3Part
+Name[pt_BR]=KDiff3Part
+Name[ro]=KDiff3Part
+Name[ru]=KDiff3Part
+Name[sv]=Kdiff3-del
+Name[tr]=KDiff3Part
+Name[uk]=KDiff3Part
+Name[x-test]=xxKDiff3Partxx
+Name[zh_CN]=KDiff3Part
+Name[zh_TW]=KDiff3Part
+ServiceTypes=KParts/ReadOnlyPart,KParts/ReadWritePart
+X-KDE-Library=libkdiff3part
+Type=Service
diff --git a/src-QT4/kdiff3win.rc b/src-QT4/kdiff3win.rc
new file mode 100755 (executable)
index 0000000..e865528
--- /dev/null
@@ -0,0 +1 @@
+IDI_ICON1               ICON    DISCARDABLE     "kdiff3.ico"\r
diff --git a/src-QT4/kreplacements/README b/src-QT4/kreplacements/README
new file mode 100644 (file)
index 0000000..fd9411c
--- /dev/null
@@ -0,0 +1,30 @@
+About the "kreplacements"-directory:
+====================================
+
+I want to be able to compile and use KDiff3 without KDE too.
+Since KDiff3 is a KDE program, which uses many KDE-classes and
+functions there must be some replacement.
+
+In many cases this is just the corresponding Qt-class, but often
+I wrote something myself. For several very KDE-specific functions
+there is no real replacement, but only stub functions that allow
+the program to compile and link.
+
+This stuff is not intended to be used for anything else but KDiff3.
+Think of it rather as a big hack, that only has the advantage
+that I need not mess up the normal program with many ugly
+#ifdef/#endif-clauses.
+
+Most include files in this directory only include kreplacements.h
+where the actual declarations are. The implementions are in
+kreplacements.cpp.
+
+The *.moc-files are dummies. The new KDE-philosophy seems to be
+that *.moc-files are directly included into the sources.  
+The Qt-philosophy still is to generate moc*.cpp files which will
+be compiled seperately. With these dummy-moc-files both versions
+can be compiled.
+
+
+Joachim
+(2003-10-02)
diff --git a/src-QT4/kreplacements/ShellContextMenu.cpp b/src-QT4/kreplacements/ShellContextMenu.cpp
new file mode 100644 (file)
index 0000000..e1b79d5
--- /dev/null
@@ -0,0 +1,504 @@
+/***************************************************************************
+                          ShellContextMenu.cpp  -  description
+                             -------------------
+    begin                : Sat Mar 4 2006
+    copyright            : (C) 2005-2007 by Joachim Eibl
+    email                : joachim dot eibl at gmx dot de
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+// ShellContextMenu.cpp: Implementierung der Klasse CShellContextMenu.
+// http://www.codeproject.com/Articles/4025/Use-Shell-ContextMenu-in-your-applications
+//
+//////////////////////////////////////////////////////////////////////
+#ifdef _WIN32
+#include "stable.h"
+
+#include <windows.h>
+
+#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8 ) /* Test for GCC > 4.8.0 */
+#define INITGUID     // needed for MinGW 4.8 otherwise IID_IContextMenu etc. produce undefined references during linking.
+#include <guiddef.h>
+#endif
+
+#include <shlobj.h>
+#include <shlguid.h>
+#include <malloc.h>
+//#include <QString>
+//#include <QStringList>
+//#include <qwidget.h>
+//#include <QDir>
+//#include <QMenu>
+#include "ShellContextMenu.h"
+
+#ifdef _DEBUG
+#undef THIS_FILE
+static char THIS_FILE[]=__FILE__;
+#define new DEBUG_NEW
+#endif
+
+//////////////////////////////////////////////////////////////////////
+// Konstruktion/Destruktion
+//////////////////////////////////////////////////////////////////////
+
+#define MIN_ID 100
+#define MAX_ID 10000
+
+
+void showShellContextMenu( const QString& itemPath, QPoint pt, QWidget* pParentWidget, QMenu* pMenu )
+{
+    CShellContextMenu scm;
+    scm.SetObjects(QDir::toNativeSeparators(QDir::cleanPath(itemPath)));
+    int id = scm.ShowContextMenu (pParentWidget, pt, pMenu);
+    if (id>=1)
+       pMenu->actions().value(id-1)->trigger();
+}
+
+IContextMenu2 * g_IContext2 = NULL;
+IContextMenu3 * g_IContext3 = NULL;
+static WNDPROC OldWndProc = 0;
+
+CShellContextMenu::CShellContextMenu()
+{
+       m_psfFolder = NULL;
+       m_pidlArray = NULL;
+       m_hMenu = NULL;
+}
+
+CShellContextMenu::~CShellContextMenu()
+{
+       // free all allocated datas
+       if (m_psfFolder && bDelete)
+               m_psfFolder->Release ();
+       m_psfFolder = NULL;
+       FreePIDLArray (m_pidlArray);
+       m_pidlArray = NULL;
+
+       if (m_hMenu)
+               DestroyMenu( m_hMenu );
+}
+
+
+
+// this functions determines which version of IContextMenu is avaibale for those objects (always the highest one)
+// and returns that interface
+BOOL CShellContextMenu::GetContextMenu (void ** ppContextMenu, int & iMenuType)
+{
+       *ppContextMenu = NULL;
+       LPCONTEXTMENU icm1 = NULL;
+
+        if ( m_psfFolder==0 )
+           return FALSE;
+       
+       // first we retrieve the normal IContextMenu interface (every object should have it)
+       m_psfFolder->GetUIObjectOf (NULL, nItems, (LPCITEMIDLIST *) m_pidlArray, IID_IContextMenu, NULL, (void**) &icm1);
+
+       if (icm1)
+       {       // since we got an IContextMenu interface we can now obtain the higher version interfaces via that
+               if (icm1->QueryInterface (IID_IContextMenu3, ppContextMenu) == NOERROR)
+                       iMenuType = 3;
+               else if (icm1->QueryInterface (IID_IContextMenu2, ppContextMenu) == NOERROR)
+                       iMenuType = 2;
+
+               if (*ppContextMenu) 
+                       icm1->Release(); // we can now release version 1 interface, cause we got a higher one
+               else 
+               {       
+                       iMenuType = 1;
+                       *ppContextMenu = icm1;  // since no higher versions were found
+               }                                                       // redirect ppContextMenu to version 1 interface
+       }
+       else
+               return (FALSE); // something went wrong
+       
+       return (TRUE); // success
+}
+
+
+LRESULT CALLBACK CShellContextMenu::HookWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
+{
+       switch (message)
+       { 
+       case WM_MENUCHAR:       // only supported by IContextMenu3
+               if (g_IContext3)
+               {
+                       LRESULT lResult = 0;
+                       g_IContext3->HandleMenuMsg2 (message, wParam, lParam, &lResult);
+                       return (lResult);
+               }
+               break;
+
+       case WM_DRAWITEM:
+       case WM_MEASUREITEM:
+               if (wParam) 
+                       break; // if wParam != 0 then the message is not menu-related
+  
+       case WM_INITMENUPOPUP:
+               if (g_IContext2)
+                       g_IContext2->HandleMenuMsg (message, wParam, lParam);
+               else    // version 3
+                       g_IContext3->HandleMenuMsg (message, wParam, lParam);
+               return (message == WM_INITMENUPOPUP ? 0 : TRUE); // inform caller that we handled WM_INITPOPUPMENU by ourself
+               break;
+
+       default:
+               break;
+       }
+
+       // call original WndProc of window to prevent undefined bevhaviour of window
+    return ::CallWindowProc (OldWndProc, hWnd, message, wParam, lParam);
+}
+
+UINT CShellContextMenu::ShowContextMenu(QWidget * pParentWidget, QPoint pt, QMenu* pMenu )
+{
+        HWND hWnd = (HWND)pParentWidget->winId();
+        int iMenuType = 0;     // to know which version of IContextMenu is supported
+       LPCONTEXTMENU pContextMenu;     // common pointer to IContextMenu and higher version interface
+   
+       if (!GetContextMenu ((void**) &pContextMenu, iMenuType))        
+               return (0);     // something went wrong
+
+       if (!m_hMenu)
+       {
+               DestroyMenu( m_hMenu );
+               m_hMenu = CreatePopupMenu ();
+       }
+
+        int i;
+        QList<QAction*> actionList = pMenu->actions();
+        for( i=0; i<actionList.count(); ++i )
+        {
+           QString s = actionList.at(i)->text();
+           if (!s.isEmpty())
+              AppendMenuW( m_hMenu, MF_STRING, i+1, (LPCWSTR)s.utf16() );
+        }
+        AppendMenuW( m_hMenu, MF_SEPARATOR, i+1, L"" );
+
+       // lets fill the our popupmenu  
+       pContextMenu->QueryContextMenu (m_hMenu, GetMenuItemCount (m_hMenu), MIN_ID, MAX_ID, CMF_NORMAL | CMF_EXPLORE);
+       // subclass window to handle menurelated messages in CShellContextMenu 
+
+       if (iMenuType > 1)      // only subclass if its version 2 or 3
+       {
+        OldWndProc = (WNDPROC) SetWindowLongPtr (hWnd, GWLP_WNDPROC, (DWORD_PTR) HookWndProc);
+               if (iMenuType == 2)
+                       g_IContext2 = (LPCONTEXTMENU2) pContextMenu;
+               else    // version 3
+                       g_IContext3 = (LPCONTEXTMENU3) pContextMenu;
+       }
+       else
+               OldWndProc = NULL;
+
+       UINT idCommand = TrackPopupMenu (m_hMenu,TPM_RETURNCMD | TPM_LEFTALIGN, pt.x(), pt.y(), 0, (HWND)pParentWidget->winId(), 0);
+
+       if (OldWndProc) // unsubclass
+        SetWindowLongPtr (hWnd, GWLP_WNDPROC, (DWORD_PTR) OldWndProc);
+
+       if (idCommand >= MIN_ID && idCommand <= MAX_ID) // see if returned idCommand belongs to shell menu entries
+       {
+               InvokeCommand (pContextMenu, idCommand - MIN_ID);       // execute related command
+               idCommand = 0;
+       }
+       
+       pContextMenu->Release();
+       g_IContext2 = NULL;
+       g_IContext3 = NULL;
+
+       return (idCommand);
+}
+
+
+void CShellContextMenu::InvokeCommand (LPCONTEXTMENU pContextMenu, UINT idCommand)
+{
+    CMINVOKECOMMANDINFO cmi = {0,0,0,0,0,0,0,0,0};
+       cmi.cbSize = sizeof (CMINVOKECOMMANDINFO);
+       cmi.lpVerb = (LPSTR) MAKEINTRESOURCE (idCommand);
+       cmi.nShow = SW_SHOWNORMAL;
+       
+       pContextMenu->InvokeCommand (&cmi);
+}
+
+
+void CShellContextMenu::SetObjects(const QString& strObject)
+{
+       // only one object is passed
+       QStringList strArray;
+       strArray << strObject;  // create a CStringArray with one element
+       
+       SetObjects (strArray);          // and pass it to SetObjects (CStringArray &strArray)
+                                                               // for further processing
+}
+
+
+void CShellContextMenu::SetObjects(const QStringList &strList)
+{
+       // free all allocated datas
+       if (m_psfFolder && bDelete)
+               m_psfFolder->Release ();
+       m_psfFolder = NULL;
+       FreePIDLArray (m_pidlArray);
+       m_pidlArray = NULL;
+       
+       // get IShellFolder interface of Desktop (root of shell namespace)
+       IShellFolder * psfDesktop = NULL;
+       SHGetDesktopFolder (&psfDesktop);       // needed to obtain full qualified pidl
+
+       // ParseDisplayName creates a PIDL from a file system path relative to the IShellFolder interface
+       // but since we use the Desktop as our interface and the Desktop is the namespace root
+       // that means that it's a fully qualified PIDL, which is what we need
+       LPITEMIDLIST pidl = NULL;
+       
+       psfDesktop->ParseDisplayName (NULL, 0, (LPOLESTR)strList[0].utf16(), NULL, &pidl, NULL);
+
+       // now we need the parent IShellFolder interface of pidl, and the relative PIDL to that interface
+       LPITEMIDLIST pidlItem = NULL;   // relative pidl
+       SHBindToParentEx (pidl, IID_IShellFolder, (void **) &m_psfFolder, NULL);
+       free (pidlItem);
+       // get interface to IMalloc (need to free the PIDLs allocated by the shell functions)
+       LPMALLOC lpMalloc = NULL;
+       SHGetMalloc (&lpMalloc);
+       lpMalloc->Free (pidl);
+
+       // now we have the IShellFolder interface to the parent folder specified in the first element in strArray
+       // since we assume that all objects are in the same folder (as it's stated in the MSDN)
+       // we now have the IShellFolder interface to every objects parent folder
+       
+       IShellFolder * psfFolder = NULL;
+       nItems = strList.size ();
+       for (int i = 0; i < nItems; i++)
+       {
+                pidl=0;
+               psfDesktop->ParseDisplayName (NULL, 0, (LPOLESTR)strList[i].utf16(), NULL, &pidl, NULL);
+                if (pidl)
+                {
+                     m_pidlArray = (LPITEMIDLIST *) realloc (m_pidlArray, (i + 1) * sizeof (LPITEMIDLIST));
+                     // get relative pidl via SHBindToParent
+                     SHBindToParentEx (pidl, IID_IShellFolder, (void **) &psfFolder, (LPCITEMIDLIST *) &pidlItem);
+                     m_pidlArray[i] = CopyPIDL (pidlItem);     // copy relative pidl to pidlArray
+                     free (pidlItem);
+                     lpMalloc->Free (pidl);            // free pidl allocated by ParseDisplayName
+                     psfFolder->Release ();
+                }
+       }
+       lpMalloc->Release ();
+       psfDesktop->Release ();
+
+       bDelete = TRUE; // indicates that m_psfFolder should be deleted by CShellContextMenu
+}
+
+
+// only one full qualified PIDL has been passed
+void CShellContextMenu::SetObjects(LPITEMIDLIST /*pidl*/)
+{
+/*
+   // free all allocated datas
+       if (m_psfFolder && bDelete)
+               m_psfFolder->Release ();
+       m_psfFolder = NULL;
+       FreePIDLArray (m_pidlArray);
+       m_pidlArray = NULL;
+
+               // full qualified PIDL is passed so we need
+       // its parent IShellFolder interface and its relative PIDL to that
+       LPITEMIDLIST pidlItem = NULL;
+       SHBindToParent ((LPCITEMIDLIST) pidl, IID_IShellFolder, (void **) &m_psfFolder, (LPCITEMIDLIST *) &pidlItem);   
+
+       m_pidlArray = (LPITEMIDLIST *) malloc (sizeof (LPITEMIDLIST));  // allocate ony for one elemnt
+       m_pidlArray[0] = CopyPIDL (pidlItem);
+
+
+       // now free pidlItem via IMalloc interface (but not m_psfFolder, that we need later
+       LPMALLOC lpMalloc = NULL;
+       SHGetMalloc (&lpMalloc);
+       lpMalloc->Free (pidlItem);
+       lpMalloc->Release();
+
+       nItems = 1;
+       bDelete = TRUE; // indicates that m_psfFolder should be deleted by CShellContextMenu
+*/
+}
+
+
+// IShellFolder interface with a relative pidl has been passed
+void CShellContextMenu::SetObjects(IShellFolder *psfFolder, LPITEMIDLIST pidlItem)
+{
+       // free all allocated datas
+       if (m_psfFolder && bDelete)
+               m_psfFolder->Release ();
+       m_psfFolder = NULL;
+       FreePIDLArray (m_pidlArray);
+       m_pidlArray = NULL;
+
+       m_psfFolder = psfFolder;
+
+       m_pidlArray = (LPITEMIDLIST *) malloc (sizeof (LPITEMIDLIST));
+       m_pidlArray[0] = CopyPIDL (pidlItem);
+       
+       nItems = 1;
+       bDelete = FALSE;        // indicates wheter m_psfFolder should be deleted by CShellContextMenu
+}
+
+void CShellContextMenu::SetObjects(IShellFolder * psfFolder, LPITEMIDLIST *pidlArray, int nItemCount)
+{
+       // free all allocated datas
+       if (m_psfFolder && bDelete)
+               m_psfFolder->Release ();
+       m_psfFolder = NULL;
+       FreePIDLArray (m_pidlArray);
+       m_pidlArray = NULL;
+
+       m_psfFolder = psfFolder;
+
+       m_pidlArray = (LPITEMIDLIST *) malloc (nItemCount * sizeof (LPITEMIDLIST));
+
+       for (int i = 0; i < nItemCount; i++)
+               m_pidlArray[i] = CopyPIDL (pidlArray[i]);
+
+       nItems = nItemCount;
+       bDelete = FALSE;        // indicates wheter m_psfFolder should be deleted by CShellContextMenu
+}
+
+
+void CShellContextMenu::FreePIDLArray(LPITEMIDLIST *pidlArray)
+{
+       if (!pidlArray)
+               return;
+
+       int iSize = _msize (pidlArray) / sizeof (LPITEMIDLIST);
+
+       for (int i = 0; i < iSize; i++)
+               free (pidlArray[i]);
+       free (pidlArray);
+}
+
+
+LPITEMIDLIST CShellContextMenu::CopyPIDL (LPCITEMIDLIST pidl, int cb)
+{
+       if (cb == -1)
+               cb = GetPIDLSize (pidl); // Calculate size of list.
+
+    LPITEMIDLIST pidlRet = (LPITEMIDLIST) calloc (cb + sizeof (USHORT), sizeof (BYTE));
+    if (pidlRet)
+               CopyMemory(pidlRet, pidl, cb);
+
+    return (pidlRet);
+}
+
+
+UINT CShellContextMenu::GetPIDLSize (LPCITEMIDLIST pidl)
+{  
+       if (!pidl) 
+               return 0;
+       int nSize = 0;
+       LPITEMIDLIST pidlTemp = (LPITEMIDLIST) pidl;
+       while (pidlTemp->mkid.cb)
+       {
+               nSize += pidlTemp->mkid.cb;
+               pidlTemp = (LPITEMIDLIST) (((LPBYTE) pidlTemp) + pidlTemp->mkid.cb);
+       }
+       return nSize;
+}
+
+HMENU  CShellContextMenu::GetMenu()
+{
+       if (!m_hMenu)
+       {
+               m_hMenu = CreatePopupMenu();    // create the popupmenu (its empty)
+       }
+       return (m_hMenu);
+}
+
+
+// this is workaround function for the Shell API Function SHBindToParent
+// SHBindToParent is not available under Win95/98
+HRESULT CShellContextMenu::SHBindToParentEx (LPCITEMIDLIST pidl, REFIID riid, VOID **ppv, LPCITEMIDLIST *ppidlLast)
+{
+       HRESULT hr = 0;
+       if (!pidl || !ppv)
+               return E_POINTER;
+       
+       int nCount = GetPIDLCount (pidl);
+       if (nCount == 0)        // desktop pidl of invalid pidl
+               return E_POINTER;
+
+       IShellFolder * psfDesktop = NULL;
+       SHGetDesktopFolder (&psfDesktop);
+       if (nCount == 1)        // desktop pidl
+       {
+               if ((hr = psfDesktop->QueryInterface(riid, ppv)) == S_OK)
+               {
+                       if (ppidlLast) 
+                               *ppidlLast = CopyPIDL (pidl);
+               }
+               psfDesktop->Release ();
+               return hr;
+       }
+
+       LPBYTE pRel = GetPIDLPos (pidl, nCount - 1);
+       LPITEMIDLIST pidlParent = NULL;
+       pidlParent = CopyPIDL (pidl, pRel - (LPBYTE) pidl);
+       IShellFolder * psfFolder = NULL;
+       
+       if ((hr = psfDesktop->BindToObject (pidlParent, NULL, IID_IShellFolder, (void **) &psfFolder)) != S_OK)
+       {
+               free (pidlParent);
+               psfDesktop->Release ();
+               return hr;
+       }
+       if ((hr = psfFolder->QueryInterface (riid, ppv)) == S_OK)
+       {
+               if (ppidlLast)
+                       *ppidlLast = CopyPIDL ((LPCITEMIDLIST) pRel);
+       }
+       free (pidlParent);
+       psfFolder->Release ();
+       psfDesktop->Release ();
+       return hr;
+}
+
+
+LPBYTE CShellContextMenu::GetPIDLPos (LPCITEMIDLIST pidl, int nPos)
+{
+       if (!pidl)
+               return 0;
+       int nCount = 0;
+       
+       BYTE * pCur = (BYTE *) pidl;
+       while (((LPCITEMIDLIST) pCur)->mkid.cb)
+       {
+               if (nCount == nPos)
+                       return pCur;
+               nCount++;
+               pCur += ((LPCITEMIDLIST) pCur)->mkid.cb;        // + sizeof(pidl->mkid.cb);
+       }
+       if (nCount == nPos) 
+               return pCur;
+       return NULL;
+}
+
+
+int CShellContextMenu::GetPIDLCount (LPCITEMIDLIST pidl)
+{
+       if (!pidl)
+               return 0;
+
+       int nCount = 0;
+       BYTE*  pCur = (BYTE *) pidl;
+       while (((LPCITEMIDLIST) pCur)->mkid.cb)
+       {
+               nCount++;
+               pCur += ((LPCITEMIDLIST) pCur)->mkid.cb;
+       }
+       return nCount;
+}
+
+#endif
+
diff --git a/src-QT4/kreplacements/ShellContextMenu.h b/src-QT4/kreplacements/ShellContextMenu.h
new file mode 100644 (file)
index 0000000..d95d30b
--- /dev/null
@@ -0,0 +1,60 @@
+/***************************************************************************
+                          ShellContextMenu.h  -  description
+                             -------------------
+    begin                : Sat Mar 4 2006
+    copyright            : (C) 2005-2007 by Joachim Eibl
+    email                : joachim dot eibl at gmx dot de
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+// ShellContextMenu.h: Schnittstelle fr die Klasse CShellContextMenu.
+//
+//////////////////////////////////////////////////////////////////////
+
+#ifndef SHELLCONTEXTMENU_H
+#define SHELLCONTEXTMENU_H
+
+/////////////////////////////////////////////////////////////////////
+// class to show shell contextmenu of files/folders/shell objects
+// developed by R. Engels 2003
+/////////////////////////////////////////////////////////////////////
+
+class CShellContextMenu  
+{
+public:
+       HMENU GetMenu ();
+       void SetObjects (IShellFolder * psfFolder, LPITEMIDLIST pidlItem);
+       void SetObjects (IShellFolder * psfFolder, LPITEMIDLIST * pidlArray, int nItemCount);
+       void SetObjects (LPITEMIDLIST pidl);
+       void SetObjects (const QString& strObject);
+       void SetObjects (const QStringList& strList);
+       UINT ShowContextMenu (QWidget* pParent, QPoint pt, QMenu* pMenu);
+       CShellContextMenu();
+       virtual ~CShellContextMenu();
+
+private:
+       int nItems;
+       BOOL bDelete;
+       HMENU m_hMenu;
+       IShellFolder * m_psfFolder;
+       LPITEMIDLIST * m_pidlArray;     
+       
+       void InvokeCommand (LPCONTEXTMENU pContextMenu, UINT idCommand);
+       BOOL GetContextMenu (void ** ppContextMenu, int & iMenuType);
+       HRESULT SHBindToParentEx (LPCITEMIDLIST pidl, REFIID riid, VOID **ppv, LPCITEMIDLIST *ppidlLast);
+       static LRESULT CALLBACK HookWndProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
+       void FreePIDLArray (LPITEMIDLIST * pidlArray);
+       LPITEMIDLIST CopyPIDL (LPCITEMIDLIST pidl, int cb = -1);
+       UINT GetPIDLSize (LPCITEMIDLIST pidl);
+       LPBYTE GetPIDLPos (LPCITEMIDLIST pidl, int nPos);
+       int GetPIDLCount (LPCITEMIDLIST pidl);
+};
+
+#endif
diff --git a/src-QT4/kreplacements/config-kdiff3.h b/src-QT4/kreplacements/config-kdiff3.h
new file mode 100644 (file)
index 0000000..53443ee
--- /dev/null
@@ -0,0 +1,2 @@
+#include "kreplacements.h"      
diff --git a/src-QT4/kreplacements/kaboutdata.h b/src-QT4/kreplacements/kaboutdata.h
new file mode 100644 (file)
index 0000000..53443ee
--- /dev/null
@@ -0,0 +1,2 @@
+#include "kreplacements.h"      
diff --git a/src-QT4/kreplacements/kaccel.h b/src-QT4/kreplacements/kaccel.h
new file mode 100644 (file)
index 0000000..53443ee
--- /dev/null
@@ -0,0 +1,2 @@
+#include "kreplacements.h"      
diff --git a/src-QT4/kreplacements/kaction.h b/src-QT4/kreplacements/kaction.h
new file mode 100644 (file)
index 0000000..53443ee
--- /dev/null
@@ -0,0 +1,2 @@
+#include "kreplacements.h"      
diff --git a/src-QT4/kreplacements/kactioncollection.h b/src-QT4/kreplacements/kactioncollection.h
new file mode 100644 (file)
index 0000000..53443ee
--- /dev/null
@@ -0,0 +1,2 @@
+#include "kreplacements.h"      
diff --git a/src-QT4/kreplacements/kapplication.h b/src-QT4/kreplacements/kapplication.h
new file mode 100644 (file)
index 0000000..53443ee
--- /dev/null
@@ -0,0 +1,2 @@
+#include "kreplacements.h"      
diff --git a/src-QT4/kreplacements/kcmdlineargs.h b/src-QT4/kreplacements/kcmdlineargs.h
new file mode 100644 (file)
index 0000000..53443ee
--- /dev/null
@@ -0,0 +1,2 @@
+#include "kreplacements.h"      
diff --git a/src-QT4/kreplacements/kcolorbutton.h b/src-QT4/kreplacements/kcolorbutton.h
new file mode 100644 (file)
index 0000000..53443ee
--- /dev/null
@@ -0,0 +1,2 @@
+#include "kreplacements.h"      
diff --git a/src-QT4/kreplacements/kcomponentdata.h b/src-QT4/kreplacements/kcomponentdata.h
new file mode 100644 (file)
index 0000000..53443ee
--- /dev/null
@@ -0,0 +1,2 @@
+#include "kreplacements.h"      
diff --git a/src-QT4/kreplacements/kconfig.h b/src-QT4/kreplacements/kconfig.h
new file mode 100644 (file)
index 0000000..53443ee
--- /dev/null
@@ -0,0 +1,2 @@
+#include "kreplacements.h"      
diff --git a/src-QT4/kreplacements/kdialogbase.h b/src-QT4/kreplacements/kdialogbase.h
new file mode 100644 (file)
index 0000000..53443ee
--- /dev/null
@@ -0,0 +1,2 @@
+#include "kreplacements.h"      
diff --git a/src-QT4/kreplacements/kedittoolbar.h b/src-QT4/kreplacements/kedittoolbar.h
new file mode 100644 (file)
index 0000000..53443ee
--- /dev/null
@@ -0,0 +1,2 @@
+#include "kreplacements.h"      
diff --git a/src-QT4/kreplacements/kfiledialog.h b/src-QT4/kreplacements/kfiledialog.h
new file mode 100644 (file)
index 0000000..53443ee
--- /dev/null
@@ -0,0 +1,2 @@
+#include "kreplacements.h"      
diff --git a/src-QT4/kreplacements/kfontdialog.h b/src-QT4/kreplacements/kfontdialog.h
new file mode 100644 (file)
index 0000000..53443ee
--- /dev/null
@@ -0,0 +1,2 @@
+#include "kreplacements.h"      
diff --git a/src-QT4/kreplacements/kglobal.h b/src-QT4/kreplacements/kglobal.h
new file mode 100644 (file)
index 0000000..53443ee
--- /dev/null
@@ -0,0 +1,2 @@
+#include "kreplacements.h"      
diff --git a/src-QT4/kreplacements/kiconloader.h b/src-QT4/kreplacements/kiconloader.h
new file mode 100644 (file)
index 0000000..53443ee
--- /dev/null
@@ -0,0 +1,2 @@
+#include "kreplacements.h"      
diff --git a/src-QT4/kreplacements/kinstance.h b/src-QT4/kreplacements/kinstance.h
new file mode 100644 (file)
index 0000000..53443ee
--- /dev/null
@@ -0,0 +1,2 @@
+#include "kreplacements.h"      
diff --git a/src-QT4/kreplacements/kio/copyjob.h b/src-QT4/kreplacements/kio/copyjob.h
new file mode 100644 (file)
index 0000000..53443ee
--- /dev/null
@@ -0,0 +1,2 @@
+#include "kreplacements.h"      
diff --git a/src-QT4/kreplacements/kio/global.h b/src-QT4/kreplacements/kio/global.h
new file mode 100644 (file)
index 0000000..53443ee
--- /dev/null
@@ -0,0 +1,2 @@
+#include "kreplacements.h"      
diff --git a/src-QT4/kreplacements/kio/job.h b/src-QT4/kreplacements/kio/job.h
new file mode 100644 (file)
index 0000000..53443ee
--- /dev/null
@@ -0,0 +1,2 @@
+#include "kreplacements.h"      
diff --git a/src-QT4/kreplacements/kio/jobclasses.h b/src-QT4/kreplacements/kio/jobclasses.h
new file mode 100644 (file)
index 0000000..53443ee
--- /dev/null
@@ -0,0 +1,2 @@
+#include "kreplacements.h"      
diff --git a/src-QT4/kreplacements/kio/jobuidelegate.h b/src-QT4/kreplacements/kio/jobuidelegate.h
new file mode 100644 (file)
index 0000000..53443ee
--- /dev/null
@@ -0,0 +1,2 @@
+#include "kreplacements.h"      
diff --git a/src-QT4/kreplacements/klibloader.h b/src-QT4/kreplacements/klibloader.h
new file mode 100644 (file)
index 0000000..53443ee
--- /dev/null
@@ -0,0 +1,2 @@
+#include "kreplacements.h"      
diff --git a/src-QT4/kreplacements/klocale.h b/src-QT4/kreplacements/klocale.h
new file mode 100644 (file)
index 0000000..53443ee
--- /dev/null
@@ -0,0 +1,2 @@
+#include "kreplacements.h"      
diff --git a/src-QT4/kreplacements/kmainwindow.h b/src-QT4/kreplacements/kmainwindow.h
new file mode 100644 (file)
index 0000000..53443ee
--- /dev/null
@@ -0,0 +1,2 @@
+#include "kreplacements.h"      
diff --git a/src-QT4/kreplacements/kmenu.h b/src-QT4/kreplacements/kmenu.h
new file mode 100644 (file)
index 0000000..53443ee
--- /dev/null
@@ -0,0 +1,2 @@
+#include "kreplacements.h"      
diff --git a/src-QT4/kreplacements/kmenubar.h b/src-QT4/kreplacements/kmenubar.h
new file mode 100644 (file)
index 0000000..53443ee
--- /dev/null
@@ -0,0 +1,2 @@
+#include "kreplacements.h"      
diff --git a/src-QT4/kreplacements/kmessagebox.h b/src-QT4/kreplacements/kmessagebox.h
new file mode 100644 (file)
index 0000000..53443ee
--- /dev/null
@@ -0,0 +1,2 @@
+#include "kreplacements.h"      
diff --git a/src-QT4/kreplacements/konq_popupmenu.h b/src-QT4/kreplacements/konq_popupmenu.h
new file mode 100644 (file)
index 0000000..53443ee
--- /dev/null
@@ -0,0 +1,2 @@
+#include "kreplacements.h"      
diff --git a/src-QT4/kreplacements/kpagedialog.h b/src-QT4/kreplacements/kpagedialog.h
new file mode 100644 (file)
index 0000000..53443ee
--- /dev/null
@@ -0,0 +1,2 @@
+#include "kreplacements.h"      
diff --git a/src-QT4/kreplacements/kparts/factory.h b/src-QT4/kreplacements/kparts/factory.h
new file mode 100644 (file)
index 0000000..53443ee
--- /dev/null
@@ -0,0 +1,2 @@
+#include "kreplacements.h"      
diff --git a/src-QT4/kreplacements/kparts/mainwindow.h b/src-QT4/kreplacements/kparts/mainwindow.h
new file mode 100644 (file)
index 0000000..53443ee
--- /dev/null
@@ -0,0 +1,2 @@
+#include "kreplacements.h"      
diff --git a/src-QT4/kreplacements/kparts/part.h b/src-QT4/kreplacements/kparts/part.h
new file mode 100644 (file)
index 0000000..53443ee
--- /dev/null
@@ -0,0 +1,2 @@
+#include "kreplacements.h"      
diff --git a/src-QT4/kreplacements/kprinter.h b/src-QT4/kreplacements/kprinter.h
new file mode 100644 (file)
index 0000000..53443ee
--- /dev/null
@@ -0,0 +1,2 @@
+#include "kreplacements.h"      
diff --git a/src-QT4/kreplacements/kprogress.h b/src-QT4/kreplacements/kprogress.h
new file mode 100644 (file)
index 0000000..53443ee
--- /dev/null
@@ -0,0 +1,2 @@
+#include "kreplacements.h"      
diff --git a/src-QT4/kreplacements/kprogressdialog.h b/src-QT4/kreplacements/kprogressdialog.h
new file mode 100644 (file)
index 0000000..53443ee
--- /dev/null
@@ -0,0 +1,2 @@
+#include "kreplacements.h"      
diff --git a/src-QT4/kreplacements/kreplacements.cpp b/src-QT4/kreplacements/kreplacements.cpp
new file mode 100644 (file)
index 0000000..6564ae8
--- /dev/null
@@ -0,0 +1,1230 @@
+/***************************************************************************
+                          kreplacements.cpp  -  description
+                             -------------------
+    begin                : Sat Aug 3 2002
+    copyright            : (C) 2002-2006 by Joachim Eibl
+    email                : joachim.eibl at gmx.de
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+
+#include "kreplacements.h"
+#include "common.h"
+
+#include <assert.h>
+
+#include <Qt> //namespace
+#include <QMessageBox>
+#include <QMenu>
+#include <QMenuBar>
+#include <QPainter>
+
+#ifndef QT_NO_COLORDIALOG
+#include <QColorDialog>
+#endif
+
+#include <QFontDialog>
+#include <QLabel>
+#include <QTextBrowser>
+#include <QTextStream>
+#include <QLayout>
+#include <QTabWidget>
+#include <QPaintEvent>
+#include <QPixmap>
+#include <QProcess>
+
+#include <QTabWidget>
+#include <QFileInfo>
+#include <QFileDialog>
+
+#include <vector>
+#include <algorithm>
+
+
+static QString s_copyright;
+static QString s_email;
+static QString s_description;
+static QString s_appName;
+static QString s_version;
+static QString s_homepage;
+static KAboutData* s_pAboutData;
+
+
+#ifdef _WIN32
+#include <process.h>
+#include <windows.h>
+#include <shellapi.h>
+#endif
+
+static void showHelp()
+{
+   #if defined(_WIN32) || defined(Q_OS_OS2)
+      QString exePath = QCoreApplication::applicationDirPath();
+
+      QFileInfo helpFile( exePath + "\\doc\\en\\index.html" );
+      if ( ! helpFile.exists() ) {  helpFile.setFile( exePath + "\\..\\doc\\en\\index.html" );     }
+      if ( ! helpFile.exists() ) {  helpFile.setFile( exePath + "\\doc\\index.html"         );     }
+      if ( ! helpFile.exists() ) {  helpFile.setFile( exePath + "\\..\\doc\\index.html"     );     }
+      if ( ! helpFile.exists() )
+      {
+         QMessageBox::warning( 0, "KDiff3 documentation not found",
+            "Couldn't find the documentation. \n\n"
+            "The documentation can also be found at the homepage:\n\n "
+            "    http://kdiff3.sourceforge.net/");
+         return;
+      }
+
+#ifndef Q_OS_OS2
+      char buf[256];
+      HINSTANCE hi = FindExecutableA( helpFile.fileName().toLatin1(), helpFile.absolutePath().toLatin1(), buf );
+      if ( (quintptr)hi<=32 )
+      {
+#endif
+         static QTextBrowser* pBrowser = 0;
+         if (pBrowser==0)
+         {
+            pBrowser = new QTextBrowser( 0 );
+            pBrowser->setMinimumSize( 600, 400 );
+         }
+         pBrowser->setSource(QUrl("file:///"+helpFile.filePath()));
+         pBrowser->show();
+#ifndef Q_OS_OS2
+      }
+      else
+      {
+         QFileInfo prog( buf );
+         QProcess::startDetached ( prog.filePath(), QStringList( "file:///"+helpFile.absoluteFilePath() ) );
+      }
+#endif
+   #else
+      static QTextBrowser* pBrowser = 0;
+      if (pBrowser==0)
+      {
+         pBrowser = new QTextBrowser( 0 );
+         pBrowser->setMinimumSize( 600, 400 );
+      }
+      pBrowser->setSource(QUrl("file://usr/local/share/doc/kdiff3/en/index.html"));
+      pBrowser->show();
+   #endif
+}
+
+QString getTranslationDir(const QString& locale)
+{
+   #if defined(_WIN32) || defined(Q_OS_OS2)
+      (void) locale; 
+      QString exePath;
+      exePath = QCoreApplication::applicationDirPath();
+      return exePath+"/translations";
+   #elif defined(__APPLE__)
+      QString exePath = QCoreApplication::applicationDirPath();
+      return exePath+"/../Resources/translations";
+   #else
+      return  (QString)"/usr/share/locale/" + locale + "/LC_MESSAGES";
+   #endif
+}
+
+// static
+void KMessageBox::error( QWidget* parent, const QString& text, const QString& caption )
+{
+   QMessageBox::critical( parent, caption, text );
+}
+
+int KMessageBox::warningContinueCancel( QWidget* parent, const QString& text, const QString& caption,
+   const QString& button1 )
+{
+   return  0 == QMessageBox::warning( parent, caption, text, button1, "Cancel" ) ? Continue : Cancel;
+}
+
+void KMessageBox::sorry(  QWidget* parent, const QString& text, const QString& caption )
+{
+   QMessageBox::information( parent, caption, text );
+}
+
+void KMessageBox::information(  QWidget* parent, const QString& text, const QString& caption )
+{
+   QMessageBox::information( parent, caption, text );
+}
+
+int  KMessageBox::warningYesNo( QWidget* parent, const QString& text, const QString& caption,
+   const QString& button1, const QString& button2 )
+{
+   return  0 == QMessageBox::warning( parent, caption, text, button1, button2, QString::null, 1, 1 ) ? Yes : No;
+}
+
+int KMessageBox::warningYesNoCancel( QWidget* parent, const QString& text, const QString& caption,
+   const QString& button1, const QString& button2 )
+{
+   int val = QMessageBox::warning( parent, caption, text,
+      button1, button2, i18n("Cancel") );
+   if ( val==0 ) return Yes;
+   if ( val==1 ) return No;
+   else return Cancel;
+}
+
+
+KPageDialog::KPageDialog(  QWidget* parent )
+: QDialog( parent )
+{
+   setModal(true);
+   QVBoxLayout *pMainLayout = new QVBoxLayout(this);
+   m_pTabWidget = new QTabWidget();
+   pMainLayout->addWidget(m_pTabWidget,1);
+
+   QHBoxLayout* pButtonLayout = new QHBoxLayout();
+   pMainLayout->addLayout( pButtonLayout );
+
+   pButtonLayout->addStretch(1);
+   QPushButton* pOk = new QPushButton( i18n("Ok") );
+   connect( pOk, SIGNAL( clicked() ), this, SIGNAL(okClicked()) );
+   pButtonLayout->addWidget( pOk );
+
+   QPushButton* pHelp = new QPushButton( i18n("Help") );
+   connect( pHelp, SIGNAL( clicked() ), this, SLOT(slotHelpClicked()));
+   pButtonLayout->addWidget( pHelp );
+
+   QPushButton* pDefaults = new QPushButton( i18n("Defaults") );
+   connect( pDefaults, SIGNAL( clicked() ), this, SIGNAL(defaultClicked()) );
+   pButtonLayout->addWidget( pDefaults );
+
+   QPushButton* pCancel = new QPushButton( i18n("Cancel") );
+   connect( pCancel, SIGNAL( clicked() ), this, SLOT(reject()));
+   pButtonLayout->addWidget( pCancel );
+}
+
+KPageDialog::~KPageDialog()
+{
+}
+
+void KPageDialog::incrementInitialSize ( const QSize& )
+{
+}
+
+void KPageDialog::setHelp(const QString&, const QString& )
+{
+}
+
+void KPageDialog::slotHelpClicked()
+{
+   showHelp();
+}
+
+int KPageDialog::BarIcon(const QString& /*iconName*/, int )
+{
+   return 0; // Not used for replacement.
+}
+
+
+QFrame* KPageDialog::addPage(  const QString& name, const QString& /*info*/, int )
+{
+   QFrame* p = new QFrame();
+   p->setObjectName( name );
+   m_pTabWidget->addTab( p, name );
+   return p;
+}
+
+void KPageDialog::addPage( KPageWidgetItem * p )
+{
+   m_pTabWidget->addTab( p->m_pWidget, p->m_title );
+}
+
+int KPageDialog::spacingHint()
+{
+   return 3;
+}
+
+KUrl KFileDialog::getSaveUrl( const QString &startDir,
+                              const QString &filter,
+                              QWidget *parent, const QString &caption)
+{
+   QString s = QFileDialog::getSaveFileName(parent, caption, startDir, filter, 0/*, QFileDialog::DontUseNativeDialog*/);
+   return KUrl(s);
+}
+
+KUrl KFileDialog::getOpenUrl( const QString &  startDir,
+                           const QString &  filter,
+                           QWidget *  parent,
+                           const QString &  caption )
+{
+   QString s = QFileDialog::getOpenFileName(parent, caption, startDir, filter );
+   return KUrl(s);
+}
+
+KUrl KFileDialog::getExistingDirectoryUrl( const QString &  startDir,
+                               QWidget *  parent,
+                               const QString &  caption)
+{
+   QString s = QFileDialog::getExistingDirectory(parent, caption, startDir);
+   return KUrl(s);
+}
+
+QString KFileDialog::getSaveFileName (const QString &startDir, 
+                        const QString &filter, 
+                        QWidget *parent, 
+                        const QString &caption)
+{
+   return QFileDialog::getSaveFileName( parent, caption, startDir, filter );
+}
+
+
+KToolBar::BarPosition KToolBar::barPos()
+{
+   if ( m_pMainWindow->toolBarArea(this)==Qt::LeftToolBarArea ) return Left;
+   if ( m_pMainWindow->toolBarArea(this)==Qt::RightToolBarArea ) return Right;
+   if ( m_pMainWindow->toolBarArea(this)==Qt::BottomToolBarArea ) return Bottom;
+   if ( m_pMainWindow->toolBarArea(this)==Qt::TopToolBarArea ) return Top;
+   return Top;
+}
+
+void KToolBar::setBarPos(BarPosition bp)
+{
+   if ( bp == Left ) m_pMainWindow->addToolBar ( Qt::LeftToolBarArea, this );
+   else if ( bp == Right ) m_pMainWindow->addToolBar ( Qt::RightToolBarArea, this );
+   else if ( bp == Bottom ) m_pMainWindow->addToolBar ( Qt::BottomToolBarArea, this );
+   else if ( bp == Top ) m_pMainWindow->addToolBar ( Qt::TopToolBarArea, this );
+}
+
+KToolBar::KToolBar( QMainWindow* parent )
+: QToolBar( parent )
+{
+   m_pMainWindow = parent;
+}
+
+
+KMainWindow::KMainWindow( QWidget* parent )
+: QMainWindow( parent ), m_actionCollection(this)
+{
+   fileMenu =      menuBar()->addMenu( i18n("&File") );
+   editMenu =      menuBar()->addMenu(i18n("&Edit") );
+   directoryMenu = menuBar()->addMenu(i18n("&Directory") );
+   dirCurrentItemMenu = 0;
+   dirCurrentSyncItemMenu = 0;
+   movementMenu = menuBar()->addMenu(i18n("&Movement") );
+   diffMenu =     menuBar()->addMenu(i18n("D&iffview") );
+   mergeMenu =    menuBar()->addMenu(i18n("&Merge") );
+   windowsMenu =  menuBar()->addMenu(i18n("&Window") );
+   settingsMenu = menuBar()->addMenu(i18n("&Settings") );
+   helpMenu =     menuBar()->addMenu(i18n("&Help") );
+
+   m_pToolBar = new KToolBar(this);
+   addToolBar( m_pToolBar );
+      
+   memberList = new QList<KMainWindow*>;
+   memberList->append(this);
+
+   raise();
+}
+
+KToolBar* KMainWindow::toolBar(const QString&)
+{
+   return m_pToolBar;
+}
+
+KActionCollection* KMainWindow::actionCollection()
+{
+   return &m_actionCollection;
+}
+
+void KMainWindow::createGUI()
+{
+   KStandardAction::help(this, SLOT(appHelpActivated()), actionCollection());
+   KStandardAction::about(this, SLOT(slotAbout()), actionCollection());
+   KStandardAction::aboutQt(actionCollection());
+}
+
+void KMainWindow::slotAbout()
+{
+   QDialog d;
+   QVBoxLayout* l = new QVBoxLayout( &d );
+   QTabWidget* pTabWidget = new QTabWidget;
+   l->addWidget( pTabWidget );
+
+   QPushButton* pOkButton = new QPushButton(i18n("Ok"));
+   connect( pOkButton, SIGNAL(clicked()), &d, SLOT(accept()));
+   l->addWidget( pOkButton );
+
+   d.setWindowTitle("About " + s_appName);
+   QTextBrowser* tb1 = new QTextBrowser();
+   tb1->setWordWrapMode( QTextOption::NoWrap );
+   tb1->setText(
+      s_appName + " Version " + s_version +
+      "\n\n" + s_description + 
+      "\n\n" + s_copyright +
+      "\n\nHomepage: " + s_homepage +
+      "\n\nLicence: GNU GPL Version 2"
+      );
+   pTabWidget->addTab(tb1,i18n("&About"));
+      
+   std::list<KAboutData::AboutDataEntry>::iterator i;
+   
+   QString s2;   
+   for( i=s_pAboutData->m_authorList.begin(); i!=s_pAboutData->m_authorList.end(); ++i )
+   {
+      if ( !i->m_name.isEmpty() )    s2 +=         i->m_name    + "\n";
+      if ( !i->m_task.isEmpty() )    s2 += "   " + i->m_task    + "\n";
+      if ( !i->m_email.isEmpty() )   s2 += "   " + i->m_email   + "\n";
+      if ( !i->m_weblink.isEmpty() ) s2 += "   " + i->m_weblink + "\n";
+      s2 += "\n";
+   }
+   QTextBrowser* tb2 = new QTextBrowser();
+   tb2->setWordWrapMode( QTextOption::NoWrap );
+   tb2->setText(s2);
+   pTabWidget->addTab(tb2,i18n("A&uthor"));
+   
+   QString s3;
+   for( i=s_pAboutData->m_creditList.begin(); i!=s_pAboutData->m_creditList.end(); ++i )
+   {
+      if ( !i->m_name.isEmpty() )    s3 +=         i->m_name    + "\n";
+      if ( !i->m_task.isEmpty() )    s3 += "   " + i->m_task    + "\n";
+      if ( !i->m_email.isEmpty() )   s3 += "   " + i->m_email   + "\n";
+      if ( !i->m_weblink.isEmpty() ) s3 += "   " + i->m_weblink + "\n";
+      s3 += "\n";
+   }
+   QTextBrowser* tb3 = new QTextBrowser();
+   tb3->setWordWrapMode( QTextOption::NoWrap );
+   tb3->setText(s3);
+   pTabWidget->addTab(tb3,i18n("&Thanks To"));
+   
+   d.resize(400,300);
+   d.exec();
+/*
+   QMessageBox::information(
+      this,
+      "About " + s_appName,
+      s_appName + " Version " + s_version +
+      "\n\n" + s_description + 
+      "\n\n" + s_copyright +
+      "\n\nHomepage: " + s_homepage +
+      "\n\nLicence: GNU GPL Version 2"
+      );
+*/
+}
+
+void KMainWindow::appHelpActivated()
+{
+   showHelp();
+}
+
+
+QString KStandardDirs::findResource(const QString& resource, const QString& /*appName*/)
+{
+   if (resource=="config")
+   {
+#if defined(_WIN32) || defined(Q_OS_OS2)
+      QString exePath = QCoreApplication::applicationDirPath();
+      QString configPath = exePath + "/.kdiff3rc"; // This is useful for portable installations (e.g. on USB-Stick)
+      if ( QFile::exists( configPath ) )
+         return configPath;
+#endif
+      QString home = QDir::homePath();
+      return home + "/.kdiff3rc";
+   }
+   return QString();
+}
+
+KConfigGroupData::~KConfigGroupData()
+{
+   QFile f(m_fileName);
+   if ( f.open( QIODevice::WriteOnly | QIODevice::Text ) )
+   {                               // file opened successfully
+      QTextStream t( &f );        // use a text stream
+      save(t);
+      f.close();
+   }
+}
+
+KConfigGroup::KConfigGroup()
+{
+   d = new KConfigGroupData;
+}
+
+void KConfigGroup::readConfigFile( const QString& configFileName )
+{
+   if ( !configFileName.isEmpty() )
+   {
+      d->m_fileName = configFileName;
+   }
+   else
+   {
+      d->m_fileName = KStandardDirs().findResource("config","kdiff3rc");
+   }
+
+   QFile f( d->m_fileName );
+   if ( f.open(QIODevice::ReadOnly) )
+   {                               // file opened successfully
+      QTextStream t( &f );         // use a text stream
+      d->load(t);
+      f.close();
+   }
+}
+
+KConfigGroup::~KConfigGroup()
+{
+}
+
+void KConfigGroup::setGroup(const QString&)
+{
+}
+
+KConfigGroup& KConfigGroup::group( const QString& )
+{
+   KApplication* pKApp = static_cast<KApplication*>(QApplication::instance());
+   return *pKApp->config();
+}
+
+static void initAction( QAction* pAction, QObject* receiver, const char* slot, KActionCollection* actionCollection, 
+                   const QString& name, bool bToggle, bool bMenu)
+{
+   QString n(name);
+   KMainWindow* p = actionCollection->m_pMainWindow;
+   if( slot!=0 )
+   {
+      if (!bToggle)
+         QObject::connect(pAction, SIGNAL(triggered()), receiver, slot);
+      else
+      {
+         QObject::connect(pAction, SIGNAL(toggled(bool)), receiver, slot);
+      }
+   }
+
+   if (bMenu)
+   {
+      if( n[0]=='g')       p->movementMenu->addAction( pAction );
+      else if( n.left(16)=="dir_current_sync")
+      {
+         if ( p->dirCurrentItemMenu==0 )
+         {
+            p->dirCurrentItemMenu = p->directoryMenu->addMenu( i18n("Current Item Merge Operation") );
+            p->dirCurrentSyncItemMenu = p->directoryMenu->addMenu( i18n("Current Item Sync Operation") );
+         }
+         p->dirCurrentItemMenu->addAction( pAction );
+      }
+      else if( n.left(11)=="dir_current")
+      {
+         if ( p->dirCurrentItemMenu==0 )
+         {
+            p->dirCurrentItemMenu = p->directoryMenu->addMenu( i18n("Current Item Merge Operation") );
+            p->dirCurrentSyncItemMenu = p->directoryMenu->addMenu( i18n("Current Item Sync Operation") );
+         }
+         p->dirCurrentSyncItemMenu->addAction( pAction );
+      }
+      else if( n.left(4)=="diff")  p->diffMenu->addAction( pAction );
+      else if( name[0]=='d')  p->directoryMenu->addAction( pAction );
+      else if( name[0]=='f')  p->fileMenu->addAction( pAction );
+      else if( name[0]=='w')  p->windowsMenu->addAction( pAction );
+      else                    p->mergeMenu->addAction( pAction );
+   }
+}
+
+KAction::KAction(const QString& name, KActionCollection* actionCollection )
+: QAction ( actionCollection->m_pMainWindow )
+{
+   initAction( this, 0,0, actionCollection, name, false, true );
+}
+
+KAction::KAction(  KActionCollection* actionCollection )
+: QAction ( actionCollection->m_pMainWindow )
+{
+}
+
+KAction::KAction(const QString& text, const QIcon& icon, int accel,
+ QObject* receiver, const char* slot, KActionCollection* actionCollection,
+ const char* name, bool bToggle, bool bMenu
+ )
+: QAction ( icon, text, actionCollection->m_pMainWindow )
+{
+   setObjectName(name);
+   setShortcut( accel );
+   setCheckable( bToggle );
+   KMainWindow* p = actionCollection->m_pMainWindow;
+   if ( !icon.isNull() && p ) p->m_pToolBar->addAction( this );
+
+   initAction(this, receiver,slot,actionCollection,name,bToggle,bMenu);
+}
+
+KAction::KAction(const QString& text, int accel,
+ QObject* receiver, const char* slot, KActionCollection* actionCollection,
+ const char* name, bool bToggle, bool bMenu
+ )
+: QAction ( text, actionCollection->m_pMainWindow )
+{
+   setObjectName(name);
+   setShortcut( accel );
+   setCheckable( bToggle );
+   initAction(this,receiver,slot,actionCollection,name,bToggle,bMenu);
+}
+
+void KAction::setStatusText(const QString&)
+{
+}
+
+void KAction::plug(QMenu* menu)
+{
+   menu->addAction( this );
+}
+
+void KAction::setIcon( const QIcon& icon )
+{
+   QAction::setIcon(icon);
+   if ( !icon.isNull() )
+   {
+      KMainWindow* pMW = static_cast<KMainWindow*>( parent() );
+      pMW->toolBar()->addAction(this);
+   }
+}
+
+
+KToggleAction::KToggleAction( KActionCollection* actionCollection )
+: KAction( actionCollection )
+{
+   setCheckable(true);
+}
+
+KToggleAction::KToggleAction(const QString& text, int accel, QObject* receiver, const char* slot, KActionCollection* actionCollection, const char* name, bool bMenu)
+: KAction( text, accel, receiver, slot, actionCollection, name, true, bMenu)
+{
+}
+
+KToggleAction::KToggleAction(const QString& text, const QIcon& icon, int accel, KActionCollection* actionCollection, const char* name, bool bMenu)
+: KAction( text, icon, accel, 0, 0, actionCollection, name, true, bMenu)
+{
+}
+
+void KToggleAction::setChecked(bool bChecked)
+{
+   blockSignals( true );
+   QAction::setChecked( bChecked );
+   blockSignals( false );
+}
+
+
+//static
+KAction* KStandardAction::open( QWidget* parent, const char* slot, KActionCollection* actionCollection)
+{
+   #include "../xpm/fileopen.xpm"
+   KMainWindow* p = actionCollection->m_pMainWindow;
+   KAction* a = new KAction( i18n("Open"), QIcon(QPixmap(fileopen)), Qt::CTRL+Qt::Key_O, parent, slot, actionCollection, "open", false, false);
+   if(p){ p->fileMenu->addAction( a ); }
+   return a;
+}
+
+KAction* KStandardAction::save( QWidget* parent, const char* slot, KActionCollection* actionCollection )
+{
+   #include "../xpm/filesave.xpm"
+   KMainWindow* p = actionCollection->m_pMainWindow;
+   KAction* a = new KAction( i18n("Save"), QIcon(QPixmap(filesave)), Qt::CTRL+Qt::Key_S, parent, slot, actionCollection, "save", false, false);
+   if(p){ p->fileMenu->addAction( a ); }
+   return a;
+}
+
+KAction* KStandardAction::saveAs( QWidget* parent, const char* slot, KActionCollection* actionCollection)
+{
+   KMainWindow* p = actionCollection->m_pMainWindow;
+   KAction* a = new KAction( i18n("Save As..."), 0, parent, slot, actionCollection, "saveas", false, false);
+   if(p) p->fileMenu->addAction( a );
+   return a;
+}
+
+KAction* KStandardAction::print( QWidget* parent, const char* slot, KActionCollection* actionCollection)
+{
+   #include "../xpm/fileprint.xpm"
+   KMainWindow* p = actionCollection->m_pMainWindow;
+   KAction* a = new KAction( i18n("Print..."), QIcon(QPixmap(fileprint)),Qt::CTRL+Qt::Key_P, parent, slot, actionCollection, "print", false, false);
+   if(p) p->fileMenu->addAction( a );
+   return a;
+}
+
+KAction* KStandardAction::quit( QWidget* parent, const char* slot, KActionCollection* actionCollection)
+{
+   KMainWindow* p = actionCollection->m_pMainWindow;
+   KAction* a = new KAction( i18n("Quit"), Qt::CTRL+Qt::Key_Q, parent, slot, actionCollection, "quit", false, false);
+   if(p) p->fileMenu->addAction( a );
+   return a;
+}
+
+KAction* KStandardAction::cut( QWidget* parent, const char* slot, KActionCollection* actionCollection)
+{
+   KMainWindow* p = actionCollection->m_pMainWindow;
+   KAction* a = new KAction( i18n("Cut"), Qt::CTRL+Qt::Key_X, parent, slot, actionCollection, "cut", false, false );
+   if(p) p->editMenu->addAction( a );
+   return a;
+}
+
+KAction* KStandardAction::copy( QWidget* parent, const char* slot, KActionCollection* actionCollection)
+{
+   KMainWindow* p = actionCollection->m_pMainWindow;
+   KAction* a = new KAction( i18n("Copy"), Qt::CTRL+Qt::Key_C, parent, slot, actionCollection, "copy", false, false );
+   if(p) p->editMenu->addAction( a );
+   return a;
+}
+
+KAction* KStandardAction::paste( QWidget* parent, const char* slot, KActionCollection* actionCollection)
+{
+   KMainWindow* p = actionCollection->m_pMainWindow;
+   KAction* a = new KAction( i18n("Paste"), Qt::CTRL+Qt::Key_V, parent, slot, actionCollection, "paste", false, false );
+   if(p) p->editMenu->addAction( a );
+   return a;
+}
+
+KAction* KStandardAction::selectAll( QWidget* parent, const char* slot, KActionCollection* actionCollection)
+{
+   KMainWindow* p = actionCollection->m_pMainWindow;
+   KAction* a = new KAction( i18n("Select All"), Qt::CTRL+Qt::Key_A, parent, slot, actionCollection, "selectall", false, false );
+   if(p) p->editMenu->addAction( a );
+   return a;
+}
+
+KToggleAction* KStandardAction::showToolbar( QWidget* parent, const char* slot, KActionCollection* actionCollection)
+{
+   KMainWindow* p = actionCollection->m_pMainWindow;
+   KToggleAction* a = new KToggleAction( i18n("Show Toolbar"), 0, parent, slot, actionCollection, "showtoolbar", false );
+   if(p) p->settingsMenu->addAction( a );
+   return a;
+}
+
+KToggleAction* KStandardAction::showStatusbar( QWidget* parent, const char* slot, KActionCollection* actionCollection)
+{
+   KMainWindow* p = actionCollection->m_pMainWindow;
+   KToggleAction* a = new KToggleAction( i18n("Show &Status Bar"), 0, parent, slot, actionCollection, "showstatusbar", false );
+   if(p) p->settingsMenu->addAction( a );
+   return a;
+}
+
+KAction* KStandardAction::preferences( QWidget* parent, const char* slot, KActionCollection* actionCollection)
+{
+   KMainWindow* p = actionCollection->m_pMainWindow;
+   KAction* a = new KAction( i18n("&Configure %1...",QString("KDiff3")), 0, parent, slot, actionCollection, "settings", false, false );
+   if(p) p->settingsMenu->addAction( a );
+   return a;
+}
+KAction* KStandardAction::keyBindings( QWidget*, const char*, KActionCollection*)
+{
+   return 0;
+}
+
+KAction* KStandardAction::about( QWidget* parent, const char* slot, KActionCollection* actionCollection)
+{
+   KMainWindow* p = actionCollection->m_pMainWindow;
+   KAction* a = new KAction( i18n("About")+" KDiff3", 0, parent, slot, actionCollection, "about_kdiff3", false, false );
+   if(p) p->helpMenu->addAction( a );
+   return a;
+}
+
+KAction* KStandardAction::aboutQt( KActionCollection* actionCollection )
+{
+   KMainWindow* p = actionCollection->m_pMainWindow;
+   KAction* a = new KAction( i18n("About")+" Qt", 0, qApp, SLOT(aboutQt()), actionCollection, "about_qt", false, false );
+   if(p) p->helpMenu->addAction( a );
+   return a;
+}
+
+KAction* KStandardAction::help( QWidget* parent, const char* slot, KActionCollection* actionCollection)
+{
+   KMainWindow* p = actionCollection->m_pMainWindow;
+   KAction* a = new KAction( i18n("Help"), Qt::Key_F1, parent, slot, actionCollection, "help-contents", false, false );
+   if(p) p->helpMenu->addAction( a );
+   return a;
+}
+KAction* KStandardAction::find( QWidget* parent, const char* slot, KActionCollection* actionCollection)
+{
+   KMainWindow* p = actionCollection->m_pMainWindow;
+   KAction* a = new KAction( i18n("Find"), Qt::CTRL+Qt::Key_F, parent, slot, actionCollection, "edit-find", false, false );
+   if(p) p->editMenu->addAction( a );
+   return a;
+}
+
+KAction* KStandardAction::findNext( QWidget* parent, const char* slot, KActionCollection* actionCollection)
+{
+   KMainWindow* p = actionCollection->m_pMainWindow;
+   KAction* a = new KAction( i18n("Find Next"), Qt::Key_F3, parent, slot, actionCollection, "findNext", false, false );
+   if(p) p->editMenu->addAction( a );
+   return a;
+}
+
+KAction* KActionCollection::addAction(const QString& name )
+{
+   return new KAction( name, this );
+}
+
+void KActionCollection::addAction( const QString& name, QAction* pAction )
+{
+   initAction( pAction, 0,0,this,name,false,true);
+}
+
+KFontChooser::KFontChooser( QWidget* pParent )
+: QWidget(pParent)
+{
+   m_pParent = pParent;
+   QVBoxLayout* pLayout = new QVBoxLayout( this );
+   m_pSelectFont = new QPushButton(i18n("Select Font"), this );
+   connect(m_pSelectFont, SIGNAL(clicked()), this, SLOT(slotSelectFont()));
+   pLayout->addWidget(m_pSelectFont);
+
+   m_pLabel = new QLabel( "", this );
+   m_pLabel->setFont( m_font );
+   m_pLabel->setMinimumWidth(200);
+   QChar visualTab(0x2192);
+   QChar visualSpace((ushort)0xb7);
+   m_pLabel->setText( QString("The quick brown fox jumps over the river\n"
+                      "but the little red hen escapes with a shiver.\n"
+                      ":-)")+visualTab+visualSpace);
+   pLayout->addWidget(m_pLabel);
+}
+
+QFont KFontChooser::font()
+{
+   return m_font;//QFont("courier",10);
+}
+
+void KFontChooser::setFont( const QFont& font, bool )
+{
+   m_font = font;
+   m_pLabel->setFont( m_font );
+   //update();
+}
+
+void KFontChooser::slotSelectFont()
+{
+   bool bOk;
+   m_font = QFontDialog::getFont(&bOk, m_font );
+   m_pLabel->setFont( m_font );
+}
+
+
+KColorButton::KColorButton(QWidget* parent)
+: QPushButton(parent)
+{
+   connect( this, SIGNAL(clicked()), this, SLOT(slotClicked()));
+}
+
+QColor KColorButton::color()
+{
+   return m_color;
+}
+
+void KColorButton::setColor( const QColor& color )
+{
+   m_color = color;
+   update();
+}
+
+void KColorButton::paintEvent( QPaintEvent* e )
+{
+   QPushButton::paintEvent(e);
+   QPainter p(this);
+
+   int w = width();
+   int h = height();
+   p.fillRect( 10, 5, w-20, h-10, m_color );
+   p.drawRect( 10, 5, w-20, h-10 );
+}
+
+void KColorButton::slotClicked()
+{
+#ifndef QT_NO_COLORDIALOG
+   // Under Windows ChooseColor() should be used. (Nicer if few colors exist.)
+   QColor c = QColorDialog::getColor ( m_color, this );
+   if ( c.isValid() ) m_color = c;
+#endif
+   update();
+}
+
+#ifndef QT_NO_PRINTER
+KPrinter::KPrinter()
+{
+}
+QList<int> KPrinter::pageList()
+{
+   QList<int> vl;
+   int to = toPage();
+   for(int i=fromPage(); i<=to; ++i)
+   {
+      vl.push_back(i);
+   }
+   return vl;
+}
+void KPrinter::setCurrentPage(int)
+{
+}
+void KPrinter::setPageSelection(e_PageSelection)
+{
+}
+#endif
+
+QPixmap KIconLoader::loadIcon( const QString&, int, int )
+{
+   return QPixmap();
+}
+
+KAboutData::KAboutData(const QByteArray &appName, const QByteArray & /*catalogName*/, const KLocalizedString & /*programName*/, 
+      const QByteArray &version, const KLocalizedString &shortDescription, LicenseKey /*licenseType*/, 
+      const KLocalizedString &copyrightStatement, const KLocalizedString & /*text*/, 
+      const QByteArray &homePageAddress, const QByteArray &bugsEmailAddress)
+{
+   s_copyright = copyrightStatement;
+   s_email = bugsEmailAddress;
+   s_appName = appName;
+   s_description = shortDescription;
+   s_version = version;
+   s_homepage = homePageAddress;
+}
+
+KAboutData::KAboutData( const QString& /*name*/, const QString& /*appName*/, const QString& /*appName2*/, const QString& /*version*/ )
+{
+}
+
+void KAboutData::addAuthor(const QString&  name, const QString& task, const QString& email, const QString& weblink)
+{
+   m_authorList.push_back( AboutDataEntry( name, task, email, weblink) );
+}
+
+void KAboutData::addCredit(const QString& name, const QString& task, const QString& email, const QString& weblink)
+{
+   m_creditList.push_back( AboutDataEntry( name, task, email, weblink) );
+}
+
+/*  Option structure: e.g.:
+  { "m", 0, 0 },
+  { "merge", I18N_NOOP("Automatically merge the input."), 0 },
+  { "o", 0, 0 },
+  { "output file", I18N_NOOP("Output file. Implies -m. E.g.: -o newfile.txt"), 0 },
+  { "+[File1]", I18N_NOOP("file1 to open (base)"), 0 },
+  { "+[File2]", I18N_NOOP("file2 to open"), 0 },
+  { "+[File3]", I18N_NOOP("file3 to open"), 0 },
+*/
+////////////////
+static KCmdLineArgs s_cmdLineArgs;
+static int s_argc;
+static char** s_argv;
+
+struct KCmdLineOptionsItem
+{
+   QString name;
+   QString description;
+   int def;
+};
+static QList<KCmdLineOptionsItem> s_options;
+
+static std::vector<QStringList> s_vOption;
+static std::vector<QString> s_vArg;
+
+KCmdLineOptions& KCmdLineOptions::add( const QString& name, const QString& description )
+{
+   KCmdLineOptionsItem i;
+   i.name = name;
+   i.description = description;
+   i.def = 0;
+   s_options.push_back(i);
+   return *this;
+}
+
+KCmdLineArgs* KCmdLineArgs::parsedArgs()  // static
+{
+   return &s_cmdLineArgs;
+}
+
+void KCmdLineArgs::init( int argc, char**argv, KAboutData* pAboutData )  // static
+{
+   s_argc = argc;
+   s_argv = argv;
+   s_pAboutData = pAboutData;
+}
+
+void KCmdLineArgs::addCmdLineOptions( const KCmdLineOptions& /*options*/ ) // static
+{
+   //s_pOptions = &options;
+}
+
+int KCmdLineArgs::count()
+{
+   return s_vArg.size();
+}
+
+QString KCmdLineArgs::arg(int idx)
+{
+   return s_vArg[idx];
+}
+
+void KCmdLineArgs::clear()
+{
+}
+
+QString KCmdLineArgs::getOption( const QString& s )
+{
+   // Find the option
+   int j=0;
+   for( j=0; j<(int)s_vOption.size(); ++j )
+   {
+      QString optName = s_options[j].name;
+      int pos = optName.indexOf( ' ' );
+      int len = pos==-1 ? optName.length() : pos;
+
+      if( s == optName.left( len ) )
+      {
+         return s_vOption[j].isEmpty() ? QString() : s_vOption[j].last();
+      }
+   }
+   assert(false);
+   return QString();
+}
+
+QStringList KCmdLineArgs::getOptionList( const QString& s )
+{   
+   // Find the option
+   int j=0;
+   for( j=0; j<(int)s_vOption.size(); ++j )
+   {
+      QString optName = s_options[j].name;
+      int pos = optName.indexOf( ' ' );
+      int len = pos==-1 ? optName.length() : pos;
+
+      if( s == optName.left( len ) )
+      {
+         return s_vOption[j];
+      }
+   }
+
+   assert(false);
+   return QStringList();
+}
+
+bool KCmdLineArgs::isSet(const QString& s)
+{
+   // Find the option
+   int j=0;
+   for( j=0; j<(int)s_vOption.size(); ++j )
+   {
+      QString optName = s_options[j].name;
+      if( s == optName )
+      {
+         return ! s_vOption[j].isEmpty();
+      }
+   }
+   assert(false);
+   return false;
+}
+
+
+///////////////////
+KApplication* kapp;
+
+KApplication::KApplication()
+: QApplication(s_argc, s_argv)
+{
+   kapp = this;
+   #if ! ( defined(_WIN32) || defined(Q_OS_OS2) )
+   parseOptions();
+   #endif
+}
+
+void KApplication::parseOptions()
+{
+   //setStyle( new QWindowsStyle ); // doesn't show checkmarks on checkable icons in menu
+
+   int nofOptions=0;
+   int nofArgs=0;
+   int i=0;
+   while( i < s_options.size() )
+   {
+      if ( s_options[i].name[0]=='[' )
+         nofArgs++;
+      else
+         nofOptions++;
+
+      ++i;
+   }
+
+   QStringList args = QCoreApplication::arguments();
+   // First find the option "-config" or "--config" to allow loading of options
+   QString configFileName;
+   for( i=1; i<args.size()-1; ++i )
+   {
+      QString arg = args[i];
+      if ( arg == "-config" || arg == "--config" )
+      {
+         configFileName = args[i+1];
+      }
+   }
+   m_config.readConfigFile(configFileName);
+
+   QStringList ignorableCmdLineOptionsList = m_config.readEntry("IgnorableCmdLineOptions", QStringList("-u;-query;-html;-abort"), '|');
+   QString ignorableCmdLineOptions;
+   if ( !ignorableCmdLineOptionsList.isEmpty() ) 
+      ignorableCmdLineOptions = ignorableCmdLineOptionsList.front() + ";";
+
+   s_vOption.resize(nofOptions);
+
+   for( i=1; i<args.size(); ++i )
+   {
+      QString arg = args[i];
+      if ( arg[0]=='-' )  // An option
+      {
+         if ( ignorableCmdLineOptions.contains( arg +";") )
+            continue;
+         // Find the option
+         int j=0;
+         for( j=0; j<nofOptions; ++j )
+         {
+            QString optName = s_options[j].name;
+            int pos = optName.indexOf( ' ' );
+            int len = pos==-1 ? optName.length() : pos;
+            int len2 = arg.length();
+
+            if( len>0 && ( (arg[1]=='-' && len2-2==len && optName.left(len) ==  arg.mid(2,len)) ||
+                                          (len2-1==len && optName.left(len) ==  arg.mid(1,len)) ))
+            {
+               if (s_options[j].description == 0)  // alias, because without description.
+               {
+                  ++j;
+                  optName = s_options[j].name;
+                  pos = optName.indexOf( ' ' );
+               }
+               if (pos!=-1){ ++i; s_vOption[j].append( args[i] ); } //use param
+               else        { s_vOption[j].append("1"); }           //set state
+               break;
+            }
+         }
+         if (j==nofOptions)
+         {
+            QString s;
+            s = QString("Unknown option: ") + arg + "\n";
+            s += "If KDiff3 should ignore this option, run KDiff3 normally and edit\n"
+                 "the \"Command line options to ignore\" in the \"Integration Settings\".\n\n";
+
+            s += "KDiff3-Usage when starting via commandline: \n";
+            s += "- Comparing 2 files:\t\tkdiff3 file1 file2\n";
+            s += "- Merging 2 files:  \t\tkdiff3 file1 file2 -o outputfile\n";
+            s += "- Comparing 3 files:\t\tkdiff3 file1 file2 file3\n";
+            s += "- Merging 3 files:  \t\tkdiff3 file1 file2 file3 -o outputfile\n";
+            s += "     Note that file1 will be treated as base of file2 and file3.\n";
+            s += "\n";
+            s += "If you start without arguments, then a dialog will appear\n";
+            s += "where you can select your files via a filebrowser.\n";
+            s += "\n";
+
+            s += "Options:\n";
+
+            j=0;
+            int pos=s.length();
+            for( j=0; j<nofOptions; ++j )
+            {
+               if ( s_options[j].description!=0 )
+               {
+                  if (s_options[j].name[0]!='+')
+                  {
+                     s += "-";
+                     if ( s_options[j].name.length()>1 ) s += "-";
+                  }
+                  s += s_options[j].name;
+                  s += QString().fill(' ', minMaxLimiter( 20 - ((int)s.length()-pos), 3, 20 ) );
+                  s += s_options[j].description;
+                  s +="\n";
+                  pos=s.length();
+               }
+               else
+               {
+                  s += "-";
+                  if ( s_options[j].name.length()>1 ) s += "-";
+                  s += s_options[j].name;
+                  s += ", ";
+               }
+            }
+
+            s += "\n"+i18n("For more documentation, see the help-menu or the subdirectory doc.")+"\n";
+#if defined(_WIN32) || defined(Q_OS_OS2)
+            // A windows program has no console
+            if ( 0==QMessageBox::information(0, i18n("KDiff3-Usage"), s, i18n("Ignore"),i18n("Exit") ) )
+               continue;
+#else
+            fprintf(stderr, "%s\n", s.toLatin1().constData());
+#endif
+
+            ::exit(-1);
+         }
+      }
+      else
+         s_vArg.push_back( arg );
+   }
+}
+
+KConfigGroup* KApplication::config()
+{
+   return &m_config;
+}
+
+bool KApplication::isRestored()
+{
+   return false;
+}
+
+KApplication* KApplication::kApplication()
+{
+   return kapp;
+}
+
+KIconLoader* KApplication::iconLoader()
+{
+   return &m_iconLoader;
+}
+
+
+namespace KIO
+{
+   SimpleJob* mkdir( KUrl ){return 0;}
+   SimpleJob* rmdir( KUrl ){return 0;}
+   SimpleJob* file_delete( KUrl, int ){return 0;}
+   FileCopyJob* file_move(  KUrl, KUrl, int, int ) {return 0;}
+   FileCopyJob* file_copy(  KUrl, KUrl, int, int ) {return 0;}
+   CopyJob* link(  KUrl, KUrl, bool ) {return 0;}
+   ListJob* listRecursive( KUrl, bool, bool ){return 0;}
+   ListJob* listDir( KUrl, bool, bool ){return 0;}
+   StatJob* stat( KUrl, bool, int, int ){return 0;}
+   TransferJob* get( KUrl, int ){return (TransferJob*)0;}
+   TransferJob* put( KUrl, int, int ){return (TransferJob*)0;}
+};
+
+KActionCollection* KParts::Part::actionCollection()
+{
+   return 0;
+}
+
+KApplication* KParts::Part::instance()
+{
+   return kapp;
+}
+
+
+KLibLoader* KLibLoader::self()
+{
+   static KLibLoader ll;
+   return &ll;
+}
+
+extern "C" void* init_libkdiff3part();
+KLibFactory* KLibLoader::factory(QString const&)
+{
+   return (KLibFactory*) init_libkdiff3part();
+}
+
+QObject* KLibFactory::create(QObject* pParent, const QString& name, const QString& classname )
+{
+   KParts::Factory* f = qobject_cast<KParts::Factory*>(this);
+   if (f!=0)
+      return f->createPartObject( (QWidget*)pParent, name.toLatin1(),
+                                            pParent, name.toLatin1(),
+                                            classname.toLatin1(),  QStringList() );
+   else
+      return 0;
+}
+
+
+
+
+//#include "kreplacements.moc"
diff --git a/src-QT4/kreplacements/kreplacements.h b/src-QT4/kreplacements/kreplacements.h
new file mode 100644 (file)
index 0000000..76fc72d
--- /dev/null
@@ -0,0 +1,632 @@
+/***************************************************************************
+                          kreplacements.h  -  description
+                             -------------------
+    begin                : Sat Aug 3 2002
+    copyright            : (C) 2002-2006 by Joachim Eibl
+    email                : joachim.eibl at gmx.de
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#ifndef KREPLACEMENTS_H
+#define KREPLACEMENTS_H
+#ifndef __OS2__
+#pragma once
+#endif
+
+#include "common.h"
+
+#include <QSharedData>
+#include <QMainWindow>
+#include <QAction>
+#include <QDialog>
+#include <QApplication>
+#include <QPushButton>
+#include <QToolBar>
+#include <QProgressBar>
+#include <QPrinter>
+#include <QExplicitlySharedDataPointer>
+//Added by qt3to4:
+#include <QLabel>
+#include <QPixmap>
+#include <QFrame>
+#include <QPaintEvent>
+
+class QTabWidget;
+class QLabel;
+
+#include <map>
+#include <list>
+
+QString getTranslationDir(const QString&);
+
+class KMainWindow;
+class KAction;
+class KIcon;
+
+typedef QString KGuiItem;
+
+inline QString i18n( const char* x ){ return QObject::tr(x); }
+
+template <typename A1>
+inline QString i18n (const char *text, const A1 &a1)
+{ return QObject::tr(text).arg(a1); }
+
+template <typename A1, typename A2>
+inline QString i18n (const char *text, const A1 &a1, const A2 &a2)
+{ return QObject::tr(text).arg(a1).arg(a2); }
+
+template <typename A1, typename A2, typename A3>
+inline QString i18n (const char *text, const A1 &a1, const A2 &a2, const A3 &a3)
+{ return QObject::tr(text).arg(a1).arg(a2).arg(a3); }
+
+template <typename A1, typename A2, typename A3, typename A4>
+inline QString i18n (const char *text, const A1 &a1, const A2 &a2, const A3 &a3, const A4 &a4)
+{ return QObject::tr(text).arg(a1).arg(a2).arg(a3).arg(a4); }
+
+
+typedef QString KLocalizedString;
+#define ki18n(x) QObject::tr(x)
+#define I18N_NOOP(x) x
+#define RESTORE(x)
+#define _UNLOAD(x)
+
+class KUrl
+{
+public:
+   KUrl(){}
+   KUrl(const QString& s){ m_s = s; }
+   static KUrl fromPathOrUrl( const QString& s ){ return KUrl(s); }
+   QString url() const { return m_s; }
+   bool isEmpty() const { return m_s.isEmpty(); }
+   QString prettyUrl() const { return m_s; }
+   bool isLocalFile() const { return true; }
+   bool isRelative() const { return true; }
+   bool isValid() const { return true; }
+   QString path() const { return m_s; }
+   void setPath( const QString& s ){ m_s=s; }
+   QString fileName() const { return m_s; } // not really needed
+   void addPath( const QString& s ){ m_s += "/" + s; }
+private:
+   QString m_s;
+};
+
+typedef QString KGuiItem;
+
+class KStandardGuiItem
+{
+public:
+   static QString cont() { return i18n("Continue"); }
+   static QString cancel() { return i18n("Cancel"); }
+   static QString quit() { return i18n("Quit"); }
+};
+
+class KMessageBox
+{
+public:
+   static void error( QWidget* parent, const QString& text, const QString& caption=QString() );
+   static int warningContinueCancel( QWidget* parent, const QString& text, const QString& caption=QString(),
+      const QString& button1=QString("Continue") );
+   static void sorry(  QWidget* parent, const QString& text, const QString& caption=QString() );
+   static void information(  QWidget* parent, const QString& text, const QString& caption=QString() );
+   static int  warningYesNo( QWidget* parent, const QString& text, const QString& caption,
+      const QString& button1, const QString& button2 );
+   static int warningYesNoCancel(
+         QWidget* parent, const QString& text, const QString& caption,
+         const QString& button1, const QString& button2 );
+
+   enum {Cancel=-1, No=0, Yes=1, Continue=1};
+};
+
+
+
+typedef QMenu KMenu;
+
+class KPageWidgetItem : public QObject
+{
+public:
+   QWidget* m_pWidget;
+   QString m_title;
+
+   KPageWidgetItem( QWidget* pPage, const QString& title )
+   {
+      m_pWidget = pPage;
+      m_title = title;
+   }
+   void setHeader( const QString& ) {}
+   void setIcon( const KIcon& ) {}
+};
+
+
+class KPageDialog : public QDialog
+{
+   Q_OBJECT
+   QTabWidget* m_pTabWidget;
+public:
+   KPageDialog( QWidget* parent );
+   ~KPageDialog();
+
+   void incrementInitialSize ( const QSize& );
+   void setHelp(const QString& helpfilename, const QString& );
+   enum {IconList, Help, Default, Apply, Ok, Cancel };
+
+   int BarIcon(const QString& iconName, int );
+
+   void addPage( KPageWidgetItem* );
+   QFrame* addPage(  const QString& name, const QString& info, int );
+   int spacingHint();
+
+   enum FaceType { List };
+   void setFaceType(FaceType){}
+   void setButtons(int){}
+   void setDefaultButton(int){}
+   void showButtonSeparator(bool){}
+private slots:
+   void slotHelpClicked();
+signals:
+   void applyClicked();
+   void okClicked();
+   void helpClicked();
+   void defaultClicked();
+};
+
+class KFileDialog //: public QFileDialog
+{
+public:
+   static KUrl getSaveUrl( const QString &startDir=QString::null,
+                           const QString &filter=QString::null,
+                           QWidget *parent=0, const QString &caption=QString::null);
+   static KUrl getOpenUrl( const QString &  startDir = QString::null,
+                           const QString &  filter = QString::null,
+                           QWidget *  parent = 0,
+                           const QString &  caption = QString::null );
+   static KUrl getExistingDirectoryUrl( const QString &  startDir = QString::null,
+                               QWidget *  parent = 0,
+                               const QString &  caption = QString::null );
+   static QString getSaveFileName (const QString &startDir=QString::null, 
+                                   const QString &filter=QString::null, 
+                                   QWidget *parent=0, 
+                                   const QString &caption=QString::null);
+};
+
+typedef QStatusBar KStatusBar;
+
+class KToolBar : public QToolBar
+{
+public:
+   KToolBar(QMainWindow* parent);
+
+   enum BarPosition {Top, Bottom, Left, Right};
+   BarPosition barPos();
+   void setBarPos(BarPosition);
+private:
+   QMainWindow* m_pMainWindow;
+};
+
+class KActionCollection
+{
+public:
+   KMainWindow* m_pMainWindow;
+   KActionCollection( KMainWindow* p){ m_pMainWindow=p; }
+   void addAction(const QString& name, QAction* );
+   KAction* addAction(const QString& name );
+};
+
+typedef QKeySequence KShortcut;
+
+class KShortcutsEditor
+{
+public:
+   enum { LetterShortcutsAllowed };
+};
+
+class KShortcutsDialog
+{
+public:
+   static void configure(KActionCollection*){}
+   static void configureKeys(KActionCollection*, const QString&){}
+   static void configure(KActionCollection*, int, QWidget*){}
+};
+
+namespace KParts
+{
+   class ReadWritePart;
+}
+
+class KMainWindow : public QMainWindow
+{
+   Q_OBJECT
+private:
+   KActionCollection m_actionCollection;
+protected:
+   virtual bool queryClose() = 0;
+   virtual bool queryExit() = 0;
+public:
+   QMenu* fileMenu;
+   QMenu* editMenu;
+   QMenu* directoryMenu;
+   QMenu* dirCurrentItemMenu;
+   QMenu* dirCurrentSyncItemMenu;
+   QMenu* movementMenu;
+   QMenu* mergeMenu;
+   QMenu* diffMenu;
+   QMenu* windowsMenu;
+   QMenu* settingsMenu;
+   QMenu* helpMenu;
+
+   KToolBar*  m_pToolBar;
+
+   KMainWindow( QWidget* parent );
+   KToolBar* toolBar(const QString& s = QString::null);
+   KActionCollection* actionCollection();
+   void createGUI();
+   void createGUI(KParts::ReadWritePart*){createGUI();}
+
+   QList<KMainWindow*>* memberList;
+public slots:
+   void appHelpActivated();
+   void slotAbout();
+};
+
+class KConfigGroupData : public ValueMap, public QSharedData
+{
+public:
+   QString m_fileName;
+   ~KConfigGroupData();
+};
+
+class KConfigGroup
+{
+private:
+   QExplicitlySharedDataPointer<KConfigGroupData> d;
+public:
+   KConfigGroup(const KConfigGroup*, const QString& ){}
+   KConfigGroup();
+   ~KConfigGroup();
+   void readConfigFile(const QString& configFileName);
+
+   void setGroup(const QString&);
+   KConfigGroup& group( const QString& groupName );
+
+   template <class T>  void writeEntry(const QString& s, const T& v){ d->writeEntry(s,v); }
+   void writeEntry(const QString& s, const QStringList& v, char separator ){ d->writeEntry(s,v,separator); }
+   void writeEntry(const QString& s, const char* v){ d->writeEntry(s,v); }
+
+   template <class T>  T readEntry (const QString& s, const T& defaultVal ){ return d->readEntry(s,defaultVal); }
+   QString     readEntry (const QString& s, const char* defaultVal ){ return d->readEntry(s,defaultVal); }
+   QStringList readEntry (const QString& s, const QStringList& defaultVal, char separator='|' ){ return d->readEntry(s,defaultVal,separator); }
+};
+
+typedef KConfigGroup* KSharedConfigPtr;
+
+class KAction : public QAction
+{
+   Q_OBJECT
+public:
+   KAction( KActionCollection* actionCollection );
+   KAction(const QString& text, KActionCollection* actionCollection );
+   KAction(const QString& text, const QIcon& icon, int accel, QObject* receiver, const char* slot, KActionCollection* actionCollection, const char* name, bool bToggle=false, bool bMenu=true);
+   KAction(const QString& text, int accel, QObject* receiver, const char* slot, KActionCollection* actionCollection, const char* name, bool bToggle=false, bool bMenu=true);
+   void setStatusText(const QString&);
+   void plug(QMenu*);
+   void setIcon( const QIcon& icon );
+};
+
+class KToggleAction : public KAction
+{
+public:
+   KToggleAction(KActionCollection* actionCollection);
+   KToggleAction(const QString& text, const QIcon& icon, int accel, QObject* receiver, const char* slot, KActionCollection* actionCollection, const char* name, bool bMenu=true);
+   KToggleAction(const QString& text, int accel, QObject* receiver, const char* slot, KActionCollection* actionCollection, const char* name, bool bMenu=true);
+   KToggleAction(const QString& text, const QIcon& icon, int accel, KActionCollection* actionCollection, const char* name, bool bMenu=true);
+   void setChecked(bool);
+};
+
+
+class KStandardAction
+{
+public:
+   static KAction* open( QWidget* parent, const char* slot, KActionCollection* );
+   static KAction* save( QWidget* parent, const char* slot, KActionCollection* );
+   static KAction* saveAs( QWidget* parent, const char* slot, KActionCollection* );
+   static KAction* print( QWidget* parent, const char* slot, KActionCollection* );
+   static KAction* quit( QWidget* parent, const char* slot, KActionCollection* );
+   static KAction* cut( QWidget* parent, const char* slot, KActionCollection* );
+   static KAction* copy( QWidget* parent, const char* slot, KActionCollection* );
+   static KAction* paste( QWidget* parent, const char* slot, KActionCollection* );
+   static KAction* selectAll( QWidget* parent, const char* slot, KActionCollection* );
+   static KToggleAction* showToolbar( QWidget* parent, const char* slot, KActionCollection* );
+   static KToggleAction* showStatusbar( QWidget* parent, const char* slot, KActionCollection* );
+   static KAction* preferences( QWidget* parent, const char* slot, KActionCollection* );
+   static KAction* about( QWidget* parent, const char* slot, KActionCollection* );
+   static KAction* aboutQt( KActionCollection* );
+   static KAction* help( QWidget* parent, const char* slot, KActionCollection* );
+   static KAction* find( QWidget* parent, const char* slot, KActionCollection* );
+   static KAction* findNext( QWidget* parent, const char* slot, KActionCollection* );
+   static KAction* keyBindings( QWidget* parent, const char* slot, KActionCollection* );
+};
+
+class KIcon
+{
+public:
+   enum {SizeMedium,Small};
+   KIcon( const QString& ) {}
+};
+
+class KFontChooser : public QWidget
+{
+   Q_OBJECT
+   QFont m_font;
+   QPushButton* m_pSelectFont;
+   QLabel* m_pLabel;
+   QWidget* m_pParent;
+public:
+   KFontChooser( QWidget* pParent );
+   QFont font();
+   void setFont( const QFont&, bool );
+private slots:
+   void slotSelectFont();
+};
+
+class KColorButton : public QPushButton
+{
+   Q_OBJECT
+   QColor m_color;
+public:
+   KColorButton(QWidget* parent);
+   QColor color();
+   void setColor(const QColor&);
+   virtual void paintEvent(QPaintEvent* e);
+public slots:
+   void slotClicked();
+};
+
+#ifndef QT_NO_PRINTER
+class KPrinter : public QPrinter
+{
+public:
+   KPrinter();
+   enum e_PageSelection {ApplicationSide};
+   QList<int> pageList();
+   void setCurrentPage(int);
+   void setPageSelection(e_PageSelection);
+};
+#endif
+
+class KStandardDirs
+{
+public:
+   QString findResource(const QString& resource, const QString& appName);
+};   
+
+class KCmdLineOptions
+{
+public:
+   KCmdLineOptions& add( const QString& name, const QString& description = 0 );
+};
+
+#define KCmdLineLastOption {0,0,0}
+
+class KAboutData
+{
+public:
+   enum LicenseKey { License_GPL, License_GPL_V2, License_Unknown };
+
+   //KAboutData( const QString& name, const QString& appName, const QString& version,
+   //   const QString& description, int licence,
+   //   const QString& copyright, int w, const QString& homepage, const QString& email);
+
+   KAboutData (const QByteArray &appName, const QByteArray &catalogName, const KLocalizedString &programName, 
+      const QByteArray &version, const KLocalizedString &shortDescription, LicenseKey licenseType, 
+      const KLocalizedString &copyrightStatement, const KLocalizedString &text, 
+      const QByteArray &homePageAddress, const QByteArray &bugsEmailAddress);
+   KAboutData( const QString& name, const QString& appName, const QString& appName2, const QString& version );
+   void addAuthor(const QString& name, const QString& task=0, const QString& email=0, const QString& weblink=0);
+   void addCredit(const QString& name, const QString& task=0, const QString& email=0, const QString& weblink=0);
+   
+   struct AboutDataEntry
+   {
+      AboutDataEntry(const QString& name, const QString& task, const QString& email, const QString& weblink)
+      : m_name(name), m_task(task), m_email(email), m_weblink(weblink)  
+      {}
+      QString m_name;
+      QString m_task;
+      QString m_email;
+      QString m_weblink;
+   };
+   
+   std::list<AboutDataEntry> m_authorList;
+   std::list<AboutDataEntry> m_creditList;
+};
+
+typedef QList<QString> QCStringList;
+
+class KCmdLineArgs
+{
+public:
+   static KCmdLineArgs* parsedArgs();
+   static void init( int argc, char**argv, KAboutData* );
+   static void addCmdLineOptions( const KCmdLineOptions& options ); // Add our own options.
+
+   int count();
+   QString arg(int);
+   KUrl url(int i){ return KUrl(arg(i)); }
+   void clear();
+   QString getOption(const QString&);
+   QStringList getOptionList( const QString& );
+   bool isSet(const QString&);
+};
+
+class KIconLoader
+{
+public:
+   enum { Small, NoGroup };
+   QPixmap loadIcon(const QString& name, int, int =0);
+   static KIconLoader* global() { return 0; }
+};
+
+class KApplication : public QApplication
+{
+   KConfigGroup m_config;
+   KIconLoader m_iconLoader;
+public:
+   KApplication();
+   static KApplication* kApplication();
+   KIconLoader* iconLoader();
+   KConfigGroup* config();
+   bool isRestored();
+   void parseOptions();
+};
+
+extern KApplication* kapp;
+
+class KLibFactory : public QObject
+{
+   Q_OBJECT
+public:
+   QObject* create(QObject*,const QString&,const QString&);
+};
+
+class KLibLoader
+{
+public:
+   static KLibLoader* self();
+   KLibFactory* factory(const QString&);
+};
+
+class KEditToolBar : public QDialog
+{
+public:
+   KEditToolBar( int ){}
+};
+
+class KGlobal
+{
+public:
+   static KConfigGroup* config() { return 0; }
+};
+
+class KJobUiDelegate
+{
+public:
+   void showErrorMessage() {}
+};
+
+class KJob : public QObject
+{
+public:
+   bool error() {return false;}
+   enum KillVerbosity { Quietly };
+   bool kill( KillVerbosity ){return false;}
+   KJobUiDelegate* uiDelegate() {return 0;}
+};
+
+namespace KIO
+{
+   enum { Overwrite, DefaultFlags, Resume, HideProgressInfo, NoReload };
+   enum UDSEntry {};
+   typedef QList<UDSEntry> UDSEntryList;
+   class Job : public KJob
+   {   
+   };
+   class SimpleJob : public KJob {};
+   SimpleJob* mkdir( KUrl );
+   SimpleJob* rmdir( KUrl );
+   SimpleJob* file_delete( KUrl, int );
+   class FileCopyJob : public KJob {};
+   FileCopyJob* file_move(  KUrl, KUrl, int, int );
+   FileCopyJob* file_copy(  KUrl, KUrl, int, int );
+   class CopyJob : public KJob {};
+   CopyJob* link( KUrl, KUrl, bool );
+   class ListJob : public KJob {};
+   ListJob* listRecursive( KUrl, bool, bool );
+   ListJob* listDir( KUrl, bool, bool );
+   class StatJob : public KJob {
+      public: 
+         enum {SourceSide,DestinationSide};
+         UDSEntry statResult(){ return (UDSEntry)0; }
+   };
+   StatJob* stat( KUrl, bool, int, int );
+   class TransferJob : public KJob {};
+   TransferJob* get( KUrl, int );
+   TransferJob* put( KUrl, int, int );
+};
+
+typedef QProgressBar KProgress;
+
+class KInstance : public QObject
+{
+public:
+   KInstance(KAboutData*){}
+};
+
+class KComponentData : public QObject
+{
+public:
+   KComponentData(KAboutData*){}
+   KConfigGroup* config() {return 0;}
+};
+
+namespace KParts
+{
+   class MainWindow : public KMainWindow
+   {
+      Q_OBJECT
+   public:
+      MainWindow( QWidget* parent=0 ) : KMainWindow(parent) {}
+      void setXMLFile(const QString&){}
+      void setAutoSaveSettings(){}
+      void saveMainWindowSettings(KConfigGroup&){}
+      void applyMainWindowSettings(KConfigGroup&){}
+      int factory(){return 0;}
+   };
+
+   class Part : public QObject
+   {
+   public:
+      KActionCollection* actionCollection();
+      KApplication* instance();
+      void setWidget( QWidget* w ){ m_pWidget=w; }
+      QWidget* widget(){return m_pWidget;}
+      void setXMLFile(const QString&){}
+   private:
+      QWidget* m_pWidget;
+   };
+
+   class ReadOnlyPart : public Part
+   {
+   public:
+   ReadOnlyPart(){}
+   ReadOnlyPart(QObject*,const QString&){}
+   QString localFilePath() {return QString(); }
+   void setComponentData(const KComponentData&){} // actually member of PartBase
+   KComponentData& componentData() { return *(KComponentData*)0;}
+   QString m_file;
+   };
+
+   class ReadWritePart : public ReadOnlyPart
+   {
+   public:
+   ReadWritePart(QObject*){}
+   void setReadWrite(bool){}
+   };
+
+   class Factory : public KLibFactory
+   {
+      Q_OBJECT
+   public:
+   virtual KParts::Part* createPartObject( QWidget* /*parentWidget*/, const char * /*widgetName*/,
+                                            QObject* /*parent*/, const char * /*name*/,
+                                            const char* /*classname*/, const QStringList& /*args*/ ){return 0;}
+   };
+};
+#endif
+
+
diff --git a/src-QT4/kreplacements/kshortcutsdialog.h b/src-QT4/kreplacements/kshortcutsdialog.h
new file mode 100644 (file)
index 0000000..53443ee
--- /dev/null
@@ -0,0 +1,2 @@
+#include "kreplacements.h"      
diff --git a/src-QT4/kreplacements/kstandardaction.h b/src-QT4/kreplacements/kstandardaction.h
new file mode 100644 (file)
index 0000000..53443ee
--- /dev/null
@@ -0,0 +1,2 @@
+#include "kreplacements.h"      
diff --git a/src-QT4/kreplacements/kstandarddirs.h b/src-QT4/kreplacements/kstandarddirs.h
new file mode 100644 (file)
index 0000000..53443ee
--- /dev/null
@@ -0,0 +1,2 @@
+#include "kreplacements.h"      
diff --git a/src-QT4/kreplacements/kstatusbar.h b/src-QT4/kreplacements/kstatusbar.h
new file mode 100644 (file)
index 0000000..53443ee
--- /dev/null
@@ -0,0 +1,2 @@
+#include "kreplacements.h"      
diff --git a/src-QT4/kreplacements/ktemporaryfile.h b/src-QT4/kreplacements/ktemporaryfile.h
new file mode 100644 (file)
index 0000000..53443ee
--- /dev/null
@@ -0,0 +1,2 @@
+#include "kreplacements.h"      
diff --git a/src-QT4/kreplacements/ktoggleaction.h b/src-QT4/kreplacements/ktoggleaction.h
new file mode 100644 (file)
index 0000000..53443ee
--- /dev/null
@@ -0,0 +1,2 @@
+#include "kreplacements.h"      
diff --git a/src-QT4/kreplacements/ktoolbar.h b/src-QT4/kreplacements/ktoolbar.h
new file mode 100644 (file)
index 0000000..53443ee
--- /dev/null
@@ -0,0 +1,2 @@
+#include "kreplacements.h"      
diff --git a/src-QT4/kreplacements/kunload.h b/src-QT4/kreplacements/kunload.h
new file mode 100644 (file)
index 0000000..53443ee
--- /dev/null
@@ -0,0 +1,2 @@
+#include "kreplacements.h"      
diff --git a/src-QT4/kreplacements/kurl.h b/src-QT4/kreplacements/kurl.h
new file mode 100644 (file)
index 0000000..53443ee
--- /dev/null
@@ -0,0 +1,2 @@
+#include "kreplacements.h"      
diff --git a/src-QT4/lo16-app-kdiff3.png b/src-QT4/lo16-app-kdiff3.png
new file mode 100644 (file)
index 0000000..768504d
Binary files /dev/null and b/src-QT4/lo16-app-kdiff3.png differ
diff --git a/src-QT4/lo32-app-kdiff3.png b/src-QT4/lo32-app-kdiff3.png
new file mode 100644 (file)
index 0000000..54f2b27
Binary files /dev/null and b/src-QT4/lo32-app-kdiff3.png differ
diff --git a/src-QT4/main.cpp b/src-QT4/main.cpp
new file mode 100644 (file)
index 0000000..92f2753
--- /dev/null
@@ -0,0 +1,278 @@
+/***************************************************************************
+                          main.cpp  -  Where everything starts.
+                             -------------------
+    begin                : Don Jul 11 12:31:29 CEST 2002
+    copyright            : (C) 2002-2007 by Joachim Eibl
+    email                : joachim.eibl at gmx.de
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+#include "stable.h"
+#include <kcmdlineargs.h>
+#include <kaboutdata.h>
+#include <klocale.h>
+#include "kdiff3_shell.h"
+#include <kstandarddirs.h>
+#include "version.h"
+#include <QTextCodec>
+#include <QFile>
+#include <QTextStream>
+#include <QTranslator>
+#include <QLocale>
+#include <QFont>
+#include <QClipboard>
+#include <QMainWindow>
+#include <vector>
+
+#ifdef KREPLACEMENTS_H
+#include "optiondialog.h"
+#endif
+#include "common.h"
+
+void initialiseCmdLineArgs( KCmdLineOptions& options )
+{
+   QString configFileName = KStandardDirs().findResource("config","kdiff3rc");
+   QFile configFile( configFileName );
+   QString ignorableOptionsLine = "-u;-query;-html;-abort";
+   if ( configFile.open( QIODevice::ReadOnly ) )
+   {
+      QTextStream ts( &configFile );
+      while(!ts.atEnd())
+      {
+         QString line = ts.readLine();
+         if ( line.startsWith("IgnorableCmdLineOptions=") )
+         {
+            int pos = line.indexOf('=');
+            if (pos>=0)
+            {
+               ignorableOptionsLine = line.mid(pos+1);
+            }
+            break;
+         }
+      }
+   }
+
+#ifdef KREPLACEMENTS_H
+   QStringList sl = ignorableOptionsLine.split( '|' );
+#else
+   QStringList sl = ignorableOptionsLine.split( ',' );
+#endif
+   if (!sl.isEmpty())
+   {
+      QStringList ignorableOptions = sl.front().split( ';' );
+      for (QStringList::iterator i=ignorableOptions.begin(); i!=ignorableOptions.end(); ++i)
+      {
+         (*i).remove('-');
+         if (!(*i).isEmpty())
+         {
+            if ( i->length()==1 )
+               options.add( i->toLatin1() ).add("ignore", ki18n("Ignored. (User defined.)") );
+            else
+               options.add( i->toLatin1(), ki18n("Ignored. (User defined.)") );
+         }
+      }
+   }
+}
+
+#ifdef _WIN32
+#include <process.h>
+// This command checks the comm
+static bool isOptionUsed(const QString& s, int argc, char* argv[])
+{
+   for(int j=0; j<argc; ++j )
+   {
+      if( QString("-"+s) == argv[j] || QString("--"+s)==argv[j] )
+      {
+         return true;
+      }
+   }
+   return false;
+}
+#endif
+
+class ContextFreeTranslator : public QTranslator
+{
+public:
+   ContextFreeTranslator( QObject* pParent ) : QTranslator(pParent) {}
+   QString translate(const char* context, const char* sourceText, const char* comment ) const
+   {
+      if ( context != 0 )
+         return QTranslator::translate(0,sourceText,comment);
+      else
+         return QString();
+   }
+};
+
+int main(int argc, char *argv[])
+{
+#ifdef _WIN32
+   /* KDiff3 can be used as replacement for the text-diff and merge tool provided by
+      Clearcase. This is experimental and so far has only been tested under Windows.
+
+      There are two ways to use KDiff3 with clearcase
+      -  The file lib/mgrs/map contains the list of compare/merge tasks on one side and 
+         the tool on the other. Originally this contains only clearcase tools, but you can
+         edit this file and put kdiff3 there instead. (Recommended method)
+      -  Exchange the original program with KDiff3: (Hackish, no fine control)
+         1. In the Clearcase "bin"-directory rename "cleardiffmrg.exe" to "cleardiffmrg_orig.exe".
+         2. Copy kdiff3.exe into that "bin"-directory and rename it to "cleardiffmrg.exe".
+            (Also copy the other files that are needed by KDiff3 there.)
+         Now when a file comparison or merge is done by Clearcase then of course KDiff3 will be
+         run instead.
+         If the commandline contains the option "-directory" then KDiff3 can't do it but will
+         run "cleardiffmrg_orig.exe" instead.
+   */
+
+   // Write all args into a temporary file. Uncomment this for debugging purposes.
+   /*
+   FILE* f = fopen(QDir::toNativeSeparators(QDir::homePath()+"//kdiff3_call_args.txt").toLatin1().data(),"w");
+   for(int i=0; i< argc; ++i)
+      fprintf(f,"Arg %d: %s\n", i, argv[i]);
+   fclose(f);
+   
+   // Call orig cleardiffmrg.exe to see what result it returns.
+   int result=0;
+   result = ::_spawnvp(_P_WAIT , "C:\\Programme\\Rational\\ClearCase\\bin\\cleardiffmrg.exe", argv );
+   fprintf(f,"Result: %d\n", result );
+   fclose(f);
+   return result;
+   */
+
+   // KDiff3 can replace cleardiffmrg from clearcase. But not all functions.
+   if ( isOptionUsed( "directory", argc,argv ) )
+   {
+      return ::_spawnvp(_P_WAIT , "cleardiffmrg_orig", argv );      
+   }
+
+#endif
+#ifdef Q_OS_OS2
+   // expand wildcards on the command line
+   _wildcard(&argc, &argv);
+#endif
+
+   //QApplication::setColorSpec( QApplication::ManyColor ); // Grab all 216 colors
+
+   const QByteArray& appName = QByteArray("kdiff3");
+   const QByteArray& appCatalog = appName;
+   const KLocalizedString i18nName = ki18n("kdiff3");
+   QByteArray appVersion = QByteArray( VERSION );
+   if ( sizeof(void*)==8 )
+      appVersion += " (64 bit)";
+   else if ( sizeof(void*)==4 )
+       appVersion += " (32 bit)";
+   const KLocalizedString description = ki18n("Tool for Comparison and Merge of Files and Directories");
+   const KLocalizedString copyright = ki18n("(c) 2002-2014 Joachim Eibl");
+   const QByteArray& homePage = "http://kdiff3.sourceforge.net/";
+   const QByteArray& bugsAddress = "joachim.eibl" "@" "gmx.de";
+   KAboutData aboutData( appName, appCatalog, i18nName, 
+         appVersion, description, KAboutData::License_GPL_V2, copyright, description, 
+         homePage, bugsAddress );
+
+   aboutData.addAuthor(ki18n("Joachim Eibl"), KLocalizedString(), QByteArray("joachim.eibl" "@" "gmx.de"));
+   aboutData.addCredit(ki18n("Eike Sauer"), ki18n("Bugfixes, Debian package maintainer") );
+   aboutData.addCredit(ki18n("Sebastien Fricker"), ki18n("Windows installer") );
+   aboutData.addCredit(ki18n("Stephan Binner"), ki18n("i18n-help"), QByteArray("binner" "@" "kde.org") );
+   aboutData.addCredit(ki18n("Stefan Partheymueller"), ki18n("Clipboard-patch" ));
+   aboutData.addCredit(ki18n("David Faure"), ki18n("KIO-Help"), QByteArray("faure" "@" "kde.org" ));
+   aboutData.addCredit(ki18n("Bernd Gehrmann"), ki18n("Class CvsIgnoreList from Cervisia" ));
+   aboutData.addCredit(ki18n("Andre Woebbeking"), ki18n("Class StringMatcher" ));
+   aboutData.addCredit(ki18n("Michael Denio"), ki18n("Directory Equality-Coloring patch"));
+   aboutData.addCredit(ki18n("Manfred Koehler"), ki18n("Fix for slow startup on Windows"));
+   aboutData.addCredit(ki18n("Sergey Zorin"), ki18n("Diff Ext for Windows"));
+   aboutData.addCredit(ki18n("Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower"), ki18n("GNU-Diffutils"));
+   aboutData.addCredit(ki18n("Tino Boellsterling, Timothy Mee"), ki18n("Intensive test, use and feedback"));
+   aboutData.addCredit(ki18n("Michael Schmidt"), ki18n("Mac support"));
+   aboutData.addCredit(ki18n("Valentin Rusu"), ki18n("KDE4 porting"), QByteArray("kde" "@" "rusu.info"));
+   aboutData.addCredit(ki18n("Albert Astals Cid"), ki18n("KDE4 porting"), QByteArray("aacid" "@" "kde.org"));
+   aboutData.addCredit(ki18n("Silvan Scherrer"), ki18n("OS2 port") );
+   aboutData.addCredit(ki18n("Nigel Stewart"), ki18n("Cygwin support") );
+   aboutData.addCredit(ki18n("Maurice van der Pot"), ki18n("Framework for automated tests") );
+
+   aboutData.addCredit(ki18n("+ Many thanks to those who reported bugs and contributed ideas!"));
+
+   KCmdLineArgs::init( argc, argv, &aboutData );
+
+   KCmdLineOptions options;
+   // ignorable command options
+   options.add( "m" ).add( "merge", ki18n("Merge the input."));
+   options.add( "b" ).add( "base file", ki18n("Explicit base file. For compatibility with certain tools.") );
+   options.add( "o" ).add( "output file", ki18n("Output file. Implies -m. E.g.: -o newfile.txt"));
+   options.add( "out file",    ki18n("Output file, again. (For compatibility with certain tools.)") );
+   options.add( "auto",        ki18n("No GUI if all conflicts are auto-solvable. (Needs -o file)") );
+   options.add( "qall",        ki18n("Don't solve conflicts automatically.") );
+   options.add( "L1 alias1",   ki18n("Visible name replacement for input file 1 (base).") );
+   options.add( "L2 alias2",   ki18n("Visible name replacement for input file 2.") );
+   options.add( "L3 alias3",   ki18n("Visible name replacement for input file 3.") );
+   options.add( "L" ).add( "fname alias", ki18n("Alternative visible name replacement. Supply this once for every input.") );
+   options.add( "cs string",   ki18n("Override a config setting. Use once for every setting. E.g.: --cs \"AutoAdvance=1\"") );
+   options.add( "confighelp",  ki18n("Show list of config settings and current values.") );
+   options.add( "config file", ki18n("Use a different config file.") );
+
+   // other command options
+   options.add( "+[File1]", ki18n("file1 to open (base, if not specified via --base)") );
+   options.add( "+[File2]", ki18n("file2 to open") );
+   options.add( "+[File3]", ki18n("file3 to open") );
+
+#if defined(_WIN32) || defined(Q_OS_OS2)
+   // on Windows applicationDirPath() is called and needs a QApplication
+   KApplication app;
+   initialiseCmdLineArgs( options );
+   KCmdLineArgs::addCmdLineOptions( options );
+   app.parseOptions();
+#else
+   // on other systems options should be initialized before creating the QApplication 
+   initialiseCmdLineArgs( options );
+   KCmdLineArgs::addCmdLineOptions( options );
+   KApplication app;
+#endif
+
+#ifdef KREPLACEMENTS_H
+   QString locale;
+
+   locale = app.config()->readEntry("Language", "Auto");
+   int spacePos = locale.indexOf(' ');
+   if (spacePos>0) locale = locale.left(spacePos);
+   ContextFreeTranslator kdiff3Translator( 0 );
+   QTranslator qtTranslator( 0 );
+   if (locale != "en_orig")
+   {
+      if ( locale == "Auto" || locale.isEmpty() )
+         locale = locale = QLocale::system().name().left(2);
+         
+      QString translationDir = getTranslationDir(locale);
+      kdiff3Translator.load( QString("kdiff3_")+locale, translationDir );
+      app.installTranslator( &kdiff3Translator );
+      
+      qtTranslator.load( QString("qt_")+locale, translationDir );
+      app.installTranslator( &qtTranslator );
+   }
+#endif
+
+#ifndef QT_NO_SESSIONMANAGER
+  if (app.isSessionRestored())
+  {
+     RESTORE(KDiff3Shell);
+  }
+  else
+#endif
+  {
+     KDiff3Shell* p = new KDiff3Shell();
+     p->show();
+     p->setWindowState( p->windowState() | Qt::WindowActive ); // Patch for ubuntu: window not active on startup
+  }
+//app.installEventFilter( new CFilter );
+  int retVal = app.exec();
+  if (QApplication::clipboard()->text().size() == 0)
+     QApplication::clipboard()->clear(); // Patch for Ubuntu: Fix issue with Qt clipboard
+  return retVal;
+}
+
+// Suppress warning with --enable-final
+#undef VERSION
diff --git a/src-QT4/merger.cpp b/src-QT4/merger.cpp
new file mode 100644 (file)
index 0000000..b681c9b
--- /dev/null
@@ -0,0 +1,85 @@
+/***************************************************************************
+                          merger.cpp  -  description
+                             -------------------
+    begin                : Sun Mar 24 2002
+    copyright            : (C) 2002-2007 by Joachim Eibl
+    email                : joachim.eibl at gmx.de
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#include "merger.h"
+#include <assert.h>
+
+Merger::Merger( const DiffList* pDiffListAB, const DiffList* pDiffListCA )
+: md1( pDiffListAB, 0 ), md2( pDiffListCA, 1 )
+{
+}
+
+
+Merger::MergeData::MergeData( const DiffList* p, int i )
+: d(0,0,0)
+{
+   idx=i;
+   pDiffList = p;
+   if ( p!=0 )
+   {
+      it=p->begin();
+      update();
+   }
+}
+
+bool Merger::MergeData::eq()
+{
+   return pDiffList==0 || d.nofEquals > 0;
+}
+
+bool Merger::MergeData::isEnd()
+{
+   return ( pDiffList==0 || ( it==pDiffList->end() && d.nofEquals==0 && 
+      ( idx == 0 ? d.diff1==0 : d.diff2==0 )
+      ) );  
+}
+
+void Merger::MergeData::update()
+{
+   if ( d.nofEquals > 0 )
+      --d.nofEquals;
+   else if ( idx==0 && d.diff1 > 0 )
+      --d.diff1;
+   else if ( idx==1 && d.diff2 > 0 )
+      --d.diff2; 
+
+   while( d.nofEquals == 0  && ((idx==0 && d.diff1 == 0) || (idx==1 && d.diff2 == 0)) 
+       && pDiffList!=0  &&  it != pDiffList->end() )
+   {
+      d = *it;
+      ++it;
+   }
+}
+
+void Merger::next()
+{
+   md1.update();
+   md2.update();
+}
+
+int Merger::whatChanged()
+{
+   int changed = 0;
+   changed |= md1.eq()  ?  0 : 1;
+   changed |= md2.eq()  ?  0 : 2;
+   return changed;
+}
+
+bool Merger::isEndReached()
+{
+   return md1.isEnd() && md2.isEnd();
+}
diff --git a/src-QT4/merger.h b/src-QT4/merger.h
new file mode 100644 (file)
index 0000000..3712a2f
--- /dev/null
@@ -0,0 +1,61 @@
+/***************************************************************************
+                          merger.h  -  description
+                             -------------------
+    begin                : Sun Mar 24 2002
+    copyright            : (C) 2002-2007 by Joachim Eibl
+    email                : joachim.eibl at gmx.de
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#ifndef MERGER_H
+#define MERGER_H
+
+#include "diff.h"
+
+
+class Merger
+{
+public:
+
+   Merger( const DiffList* pDiffList1, const DiffList* pDiffList2 );
+
+   /** Go one step. */
+   void next();
+
+   /** Information about what changed. Can be used for coloring.
+       The return value is 0 if nothing changed here,
+       bit 1 is set if a difference from pDiffList1 was detected,
+       bit 2 is set if a difference from pDiffList2 was detected.
+   */
+   int whatChanged();
+
+   /** End of both diff lists reached. */
+   bool isEndReached();
+private:
+
+   struct MergeData
+   {
+      DiffList::const_iterator it;
+      const DiffList* pDiffList;
+      Diff d;
+      int idx;
+    
+      MergeData( const DiffList* p, int i );
+      bool eq();
+      void update();
+      bool isEnd();
+   };
+
+   MergeData md1;
+   MergeData md2;
+};
+
+#endif
diff --git a/src-QT4/mergeresultwindow.cpp b/src-QT4/mergeresultwindow.cpp
new file mode 100644 (file)
index 0000000..e3e30de
--- /dev/null
@@ -0,0 +1,3472 @@
+/***************************************************************************
+                          mergeresultwindow.cpp  -  description
+                             -------------------
+    begin                : Sun Apr 14 2002
+    copyright            : (C) 2002-2007 by Joachim Eibl
+    email                : joachim.eibl at gmx.de
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#include "mergeresultwindow.h"
+#include "options.h"
+
+#include <QPainter>
+#include <QApplication>
+#include <QClipboard>
+#include <QDir>
+#include <QFile>
+#include <QCursor>
+#include <QStatusBar>
+#include <QRegExp>
+#include <QTextStream>
+#include <QKeyEvent>
+#include <QMouseEvent>
+#include <QTextLayout>
+#include <QLineEdit>
+#include <QTextCodec>
+#include <QComboBox>
+#include <QHBoxLayout>
+#include <QLabel>
+#include <QUrl>
+//Added by qt3to4:
+#include <QTimerEvent>
+#include <QResizeEvent>
+#include <QWheelEvent>
+#include <QPixmap>
+#include <QFocusEvent>
+#include <QEvent>
+#include <QInputEvent>
+#include <QDropEvent>
+#include <QPaintEvent>
+#include <QTextStream>
+#include <QMimeData>
+
+#include <klocale.h>
+#include <kmessagebox.h>
+
+int g_bAutoSolve = true;
+
+#undef leftInfoWidth
+
+MergeResultWindow::MergeResultWindow(
+   QWidget* pParent,
+   Options* pOptions,
+   QStatusBar* pStatusBar
+   )
+: QWidget( pParent )
+{
+   setObjectName( "MergeResultWindow" );
+   setFocusPolicy( Qt::ClickFocus );
+
+   m_firstLine = 0;
+   m_horizScrollOffset = 0;
+   m_nofLines = 0;
+   m_totalSize = 0;
+   m_bMyUpdate = false;
+   m_bInsertMode = true;
+   m_scrollDeltaX = 0;
+   m_scrollDeltaY = 0;
+   m_bModified = false;
+   m_eOverviewMode=Overview::eOMNormal;
+
+   m_pldA = 0;
+   m_pldB = 0;
+   m_pldC = 0;
+   m_sizeA = 0;
+   m_sizeB = 0;
+   m_sizeC = 0;
+
+   m_pDiff3LineList = 0;
+   m_pTotalDiffStatus = 0;
+   m_pStatusBar = pStatusBar;
+
+   m_pOptions = pOptions;
+   m_bPaintingAllowed = false;
+   m_delayedDrawTimer = 0;
+
+   m_cursorXPos=0;
+   m_cursorOldXPixelPos=0;
+   m_cursorYPos=0;
+   m_bCursorOn = true;
+   m_bCursorUpdate = false;
+   m_maxTextWidth = -1;
+   connect( &m_cursorTimer, SIGNAL(timeout()), this, SLOT( slotCursorUpdate() ) );
+   m_cursorTimer.setSingleShot(true);
+   m_cursorTimer.start( 500 /*ms*/ );
+   m_selection.reset();
+
+   setMinimumSize( QSize(20,20) );
+   setFont( m_pOptions->m_font );
+}
+
+void MergeResultWindow::init(
+   const LineData* pLineDataA, int sizeA,
+   const LineData* pLineDataB, int sizeB,
+   const LineData* pLineDataC, int sizeC,
+   const Diff3LineList* pDiff3LineList,
+   TotalDiffStatus* pTotalDiffStatus
+   )
+{
+   m_firstLine = 0;
+   m_horizScrollOffset = 0;
+   m_nofLines = 0;
+   m_bMyUpdate = false;
+   m_bInsertMode = true;
+   m_scrollDeltaX = 0;
+   m_scrollDeltaY = 0;
+   setModified( false );
+   
+   m_pldA = pLineDataA;
+   m_pldB = pLineDataB;
+   m_pldC = pLineDataC;
+   m_sizeA = sizeA;
+   m_sizeB = sizeB;
+   m_sizeC = sizeC;
+
+   m_pDiff3LineList = pDiff3LineList;
+   m_pTotalDiffStatus = pTotalDiffStatus;
+   
+   m_selection.reset();
+   m_cursorXPos=0;
+   m_cursorOldXPixelPos=0;
+   m_cursorYPos=0;
+
+   m_maxTextWidth = -1;
+
+   merge( g_bAutoSolve, -1 );
+   g_bAutoSolve = true;
+   update();
+   updateSourceMask();
+
+   int wsc;
+   int nofUnsolved = getNrOfUnsolvedConflicts(&wsc);
+   if (m_pStatusBar)
+      m_pStatusBar->showMessage( i18n("Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)"
+         ,nofUnsolved,wsc) );
+}
+
+void MergeResultWindow::reset()
+{
+   m_pDiff3LineList = 0;
+   m_pTotalDiffStatus = 0;
+   m_pldA = 0;
+   m_pldB = 0;
+   m_pldC = 0;
+}
+
+// Calculate the merge information for the given Diff3Line.
+// Results will be stored in mergeDetails, bConflict, bLineRemoved and src.
+void mergeOneLine(
+   const Diff3Line& d, e_MergeDetails& mergeDetails, bool& bConflict,
+   bool& bLineRemoved, int& src, bool bTwoInputs
+   )
+{
+   mergeDetails = eDefault;
+   bConflict = false;
+   bLineRemoved = false;
+   src = 0;
+
+   if ( bTwoInputs )   // Only two input files
+   {
+      if ( d.lineA!=-1 && d.lineB!=-1 )
+      {
+         if ( d.pFineAB == 0 )
+         {
+            mergeDetails = eNoChange;           src = A;
+         }
+         else
+         {
+            mergeDetails = eBChanged;           bConflict = true;
+         }
+      }
+      else
+      {
+         if ( d.lineA!=-1 && d.lineB==-1 )
+         {
+            mergeDetails = eBDeleted;   bConflict = true;
+         }
+         else if ( d.lineA==-1 && d.lineB!=-1 )
+         {
+            mergeDetails = eBDeleted;   bConflict = true;
+         }
+      }
+      return;
+   }
+
+   // A is base.
+   if ( d.lineA!=-1 && d.lineB!=-1 && d.lineC!=-1 )
+   {
+      if ( d.pFineAB == 0  &&  d.pFineBC == 0 &&  d.pFineCA == 0)
+      {
+         mergeDetails = eNoChange;           src = A;
+      }
+      else if( d.pFineAB == 0  &&  d.pFineBC != 0  &&  d.pFineCA != 0 )
+      {
+         mergeDetails = eCChanged;           src = C;
+      }
+      else if( d.pFineAB != 0  &&  d.pFineBC != 0  &&  d.pFineCA == 0 )
+      {
+         mergeDetails = eBChanged;           src = B;
+      }
+      else if( d.pFineAB != 0  &&  d.pFineBC == 0  &&  d.pFineCA != 0 )
+      {
+         mergeDetails = eBCChangedAndEqual;  src = C;
+      }
+      else if( d.pFineAB != 0  &&  d.pFineBC != 0  &&  d.pFineCA != 0 )
+      {
+         mergeDetails = eBCChanged;           bConflict = true;
+      }
+      else
+         assert(false);
+   }
+   else if ( d.lineA!=-1 && d.lineB!=-1 && d.lineC==-1 )
+   {
+      if( d.pFineAB != 0 )
+      {
+         mergeDetails = eBChanged_CDeleted;   bConflict = true;
+      }
+      else
+      {
+         mergeDetails = eCDeleted;            bLineRemoved = true;        src = C;
+      }
+   }
+   else if ( d.lineA!=-1 && d.lineB==-1 && d.lineC!=-1 )
+   {
+      if( d.pFineCA != 0 )
+      {
+         mergeDetails = eCChanged_BDeleted;   bConflict = true;
+      }
+      else
+      {
+         mergeDetails = eBDeleted;            bLineRemoved = true;        src = B;
+      }
+   }
+   else if ( d.lineA==-1 && d.lineB!=-1 && d.lineC!=-1 )
+   {
+      if( d.pFineBC != 0 )
+      {
+         mergeDetails = eBCAdded;             bConflict = true;
+      }
+      else // B==C
+      {
+         mergeDetails = eBCAddedAndEqual;     src = C;
+      }
+   }
+   else if ( d.lineA==-1 && d.lineB==-1 && d.lineC!= -1 )
+   {
+      mergeDetails = eCAdded;                 src = C;
+   }
+   else if ( d.lineA==-1 && d.lineB!=-1 && d.lineC== -1 )
+   {
+      mergeDetails = eBAdded;                 src = B;
+   }
+   else if ( d.lineA!=-1 && d.lineB==-1 && d.lineC==-1 )
+   {
+      mergeDetails = eBCDeleted;              bLineRemoved = true;     src = C;
+   }
+   else
+      assert(false);
+}
+
+bool MergeResultWindow::sameKindCheck( const MergeLine& ml1, const MergeLine& ml2 )
+{
+   if ( ml1.bConflict && ml2.bConflict )
+   {
+      // Both lines have conflicts: If one is only a white space conflict and
+      // the other one is a real conflict, then this line returns false.
+      return ml1.id3l->bAEqC == ml2.id3l->bAEqC && ml1.id3l->bAEqB == ml2.id3l->bAEqB;
+   }
+   else
+      return (
+         ( !ml1.bConflict && !ml2.bConflict && ml1.bDelta && ml2.bDelta && ml1.srcSelect == ml2.srcSelect 
+         && (ml1.mergeDetails==ml2.mergeDetails || (ml1.mergeDetails!=eBCAddedAndEqual && ml2.mergeDetails!=eBCAddedAndEqual) ) )
+         ||
+         (!ml1.bDelta && !ml2.bDelta)
+         );
+}
+
+void MergeResultWindow::merge(bool bAutoSolve, int defaultSelector, bool bConflictsOnly, bool bWhiteSpaceOnly )
+{
+   if ( !bConflictsOnly )
+   {
+      if(m_bModified)
+      {
+         int result = KMessageBox::warningYesNo(this,
+            i18n("The output has been modified.\n"
+               "If you continue your changes will be lost."),
+            i18n("Warning"), 
+            KStandardGuiItem::cont(),
+            KStandardGuiItem::cancel());
+         if ( result==KMessageBox::No )
+            return;
+      }
+
+      m_mergeLineList.clear();
+      m_totalSize = 0;
+      int lineIdx = 0;
+      Diff3LineList::const_iterator it;
+      for( it=m_pDiff3LineList->begin(); it!=m_pDiff3LineList->end(); ++it, ++lineIdx )
+      {
+         const Diff3Line& d = *it;
+
+         MergeLine ml;
+         bool bLineRemoved;
+         mergeOneLine( d, ml.mergeDetails, ml.bConflict, bLineRemoved, ml.srcSelect, m_pldC==0 );
+
+         // Automatic solving for only whitespace changes.
+         if ( ml.bConflict &&
+              ( (m_pldC==0 && (d.bAEqB || (d.bWhiteLineA && d.bWhiteLineB)))  ||
+                (m_pldC!=0 && ((d.bAEqB && d.bAEqC) || (d.bWhiteLineA && d.bWhiteLineB && d.bWhiteLineC) ) ) ) )
+         {
+            ml.bWhiteSpaceConflict = true;
+         }
+
+         ml.d3lLineIdx   = lineIdx;
+         ml.bDelta       = ml.srcSelect != A;
+         ml.id3l         = it;
+         ml.srcRangeLength = 1;
+
+         MergeLine* back = m_mergeLineList.empty() ? 0 : &m_mergeLineList.back();
+
+         bool bSame = back!=0 && sameKindCheck( ml, *back );
+         if( bSame )
+         {
+            ++back->srcRangeLength;
+            if ( back->bWhiteSpaceConflict && !ml.bWhiteSpaceConflict )
+               back->bWhiteSpaceConflict = false;
+         }
+         else
+         {
+            ml.mergeEditLineList.setTotalSizePtr(&m_totalSize);
+            m_mergeLineList.push_back( ml );
+         }
+
+         if ( ! ml.bConflict )
+         {
+            MergeLine& tmpBack = m_mergeLineList.back();
+            MergeEditLine mel(ml.id3l);
+            mel.setSource( ml.srcSelect, bLineRemoved );
+            tmpBack.mergeEditLineList.push_back(mel);
+         }
+         else if ( back==0  || ! back->bConflict || !bSame )
+         {
+            MergeLine& tmpBack = m_mergeLineList.back();
+            MergeEditLine mel(ml.id3l);
+            mel.setConflict();
+            tmpBack.mergeEditLineList.push_back(mel);
+         }
+      }
+   }
+
+   bool bSolveWhiteSpaceConflicts = false;
+   if ( bAutoSolve ) // when true, then the other params are not used and we can change them here. (see all invocations of merge())
+   {
+      if ( m_pldC==0 && m_pOptions->m_whiteSpace2FileMergeDefault != 0 )  // Only two inputs
+      {
+         defaultSelector = m_pOptions->m_whiteSpace2FileMergeDefault;
+         bWhiteSpaceOnly = true;
+         bSolveWhiteSpaceConflicts = true;
+      }
+      else if ( m_pldC!=0 && m_pOptions->m_whiteSpace3FileMergeDefault != 0 )
+      {
+         defaultSelector = m_pOptions->m_whiteSpace3FileMergeDefault;
+         bWhiteSpaceOnly = true;
+         bSolveWhiteSpaceConflicts = true;
+      }
+   }
+
+   if ( !bAutoSolve || bSolveWhiteSpaceConflicts )
+   {
+      // Change all auto selections
+      MergeLineList::iterator mlIt;
+      for( mlIt=m_mergeLineList.begin(); mlIt!=m_mergeLineList.end(); ++mlIt )
+      {
+         MergeLine& ml = *mlIt;
+         bool bConflict = ml.mergeEditLineList.empty() || ml.mergeEditLineList.begin()->isConflict();
+         if ( ml.bDelta && ( !bConflictsOnly || bConflict ) && (!bWhiteSpaceOnly || ml.bWhiteSpaceConflict ))
+         {
+            ml.mergeEditLineList.clear();
+            if ( defaultSelector==-1 && ml.bDelta )
+            {
+               MergeEditLine mel(ml.id3l);;
+               mel.setConflict();
+               ml.bConflict = true;
+               ml.mergeEditLineList.push_back(mel);
+            }
+            else
+            {
+               Diff3LineList::const_iterator d3llit=ml.id3l;
+               int j;
+
+               for( j=0; j<ml.srcRangeLength; ++j )
+               {
+                  MergeEditLine mel(d3llit);
+                  mel.setSource( defaultSelector, false );
+
+                  int srcLine = defaultSelector==1 ? d3llit->lineA :
+                                defaultSelector==2 ? d3llit->lineB :
+                                defaultSelector==3 ? d3llit->lineC : -1;
+
+                  if ( srcLine != -1 )
+                  {
+                     ml.mergeEditLineList.push_back(mel);
+                  }
+
+                  ++d3llit;
+               }
+
+               if ( ml.mergeEditLineList.empty() ) // Make a line nevertheless
+               {
+                  MergeEditLine mel(ml.id3l);
+                  mel.setRemoved( defaultSelector );
+                  ml.mergeEditLineList.push_back(mel);
+               }
+            }
+         }
+      }
+   }
+
+   MergeLineList::iterator mlIt;
+   for( mlIt=m_mergeLineList.begin(); mlIt!=m_mergeLineList.end(); ++mlIt )
+   {
+      MergeLine& ml = *mlIt;
+      // Remove all lines that are empty, because no src lines are there.
+
+      int oldSrcLine = -1;
+      int oldSrc = -1;
+      MergeEditLineList::iterator melIt;
+      for( melIt = ml.mergeEditLineList.begin(); melIt != ml.mergeEditLineList.end(); )
+      {
+         MergeEditLine& mel = *melIt;
+         int melsrc = mel.src();
+
+         int srcLine = mel.isRemoved() ? -1 :
+                       melsrc==1 ? mel.id3l()->lineA :
+                       melsrc==2 ? mel.id3l()->lineB :
+                       melsrc==3 ? mel.id3l()->lineC : -1;
+
+         // At least one line remains because oldSrc != melsrc for first line in list
+         // Other empty lines will be removed
+         if ( srcLine == -1 && oldSrcLine==-1 && oldSrc == melsrc )
+            melIt = ml.mergeEditLineList.erase( melIt );
+         else
+            ++melIt;
+
+         oldSrcLine = srcLine;
+         oldSrc = melsrc;
+      }
+   }
+
+   if ( bAutoSolve && !bConflictsOnly )
+   {
+      if ( m_pOptions->m_bRunHistoryAutoMergeOnMergeStart )
+         slotMergeHistory();
+      if ( m_pOptions->m_bRunRegExpAutoMergeOnMergeStart )
+         slotRegExpAutoMerge();
+      if ( m_pldC != 0 && ! doRelevantChangesExist() )
+         emit noRelevantChangesDetected();
+   }
+
+   int nrOfSolvedConflicts = 0;
+   int nrOfUnsolvedConflicts = 0;
+   int nrOfWhiteSpaceConflicts = 0;
+
+   MergeLineList::iterator i;
+   for ( i = m_mergeLineList.begin();  i!=m_mergeLineList.end(); ++i )
+   {
+      if ( i->bConflict )
+         ++nrOfUnsolvedConflicts;
+      else if ( i->bDelta )
+         ++nrOfSolvedConflicts;
+
+      if ( i->bWhiteSpaceConflict )
+         ++nrOfWhiteSpaceConflicts;
+   }
+
+   m_pTotalDiffStatus->nofUnsolvedConflicts = nrOfUnsolvedConflicts;
+   m_pTotalDiffStatus->nofSolvedConflicts = nrOfSolvedConflicts;
+   m_pTotalDiffStatus->nofWhitespaceConflicts = nrOfWhiteSpaceConflicts;
+
+
+   m_cursorXPos=0;
+   m_cursorOldXPixelPos=0;
+   m_cursorYPos=0;
+   m_maxTextWidth = -1;
+
+   //m_firstLine = 0; // Must not set line/column without scrolling there
+   //m_horizScrollOffset = 0;
+
+   setModified(false);
+
+   m_currentMergeLineIt = m_mergeLineList.begin();
+   slotGoTop();
+
+   updateAvailabilities();
+   update();
+}
+
+void MergeResultWindow::setFirstLine(int firstLine)
+{
+   m_firstLine = max2(0,firstLine);
+   update();
+}
+
+void MergeResultWindow::setHorizScrollOffset(int horizScrollOffset)
+{
+   m_horizScrollOffset = max2(0,horizScrollOffset);
+   update();
+}
+
+int MergeResultWindow::getMaxTextWidth()
+{
+   if ( m_maxTextWidth < 0 )
+   {
+      m_maxTextWidth=0;
+
+      MergeLineList::iterator mlIt = m_mergeLineList.begin();
+      for(mlIt = m_mergeLineList.begin();mlIt!=m_mergeLineList.end(); ++mlIt)
+      {
+         MergeLine& ml = *mlIt;
+         MergeEditLineList::iterator melIt;
+         for( melIt = ml.mergeEditLineList.begin(); melIt != ml.mergeEditLineList.end(); ++melIt )
+         {
+            MergeEditLine& mel = *melIt;
+            QString s = mel.getString( this );
+
+            QTextLayout textLayout( s, font(), this );
+            textLayout.beginLayout();
+            textLayout.createLine();
+            textLayout.endLayout();
+            if ( m_maxTextWidth < textLayout.maximumWidth() )
+            {
+               m_maxTextWidth = textLayout.maximumWidth();
+            }
+         }
+      }
+      m_maxTextWidth += 5; // cursorwidth
+   }
+   return m_maxTextWidth;
+}
+
+int MergeResultWindow::getNofLines()
+{
+   return m_totalSize;
+}
+
+int MergeResultWindow::getVisibleTextAreaWidth()
+{
+   QFontMetrics fm = fontMetrics();
+   return width() - getTextXOffset();
+}
+
+int MergeResultWindow::getNofVisibleLines()
+{
+   QFontMetrics fm = fontMetrics();
+   return (height()-3)/fm.lineSpacing()-2;
+}
+
+int MergeResultWindow::getTextXOffset()
+{
+   QFontMetrics fm = fontMetrics();
+   return 3 * fm.width('0');
+}
+
+void MergeResultWindow::resizeEvent( QResizeEvent* e )
+{
+   QWidget::resizeEvent(e);
+   emit resizeSignal();
+}
+
+Overview::e_OverviewMode MergeResultWindow::getOverviewMode()
+{
+   return m_eOverviewMode;
+}
+
+void MergeResultWindow::setOverviewMode( Overview::e_OverviewMode eOverviewMode )
+{
+   m_eOverviewMode = eOverviewMode;
+}
+
+// Check whether we should ignore current delta when moving to next/previous delta
+bool MergeResultWindow::checkOverviewIgnore(MergeLineList::iterator &i)
+{
+   if (m_eOverviewMode == Overview::eOMNormal) return false;
+   if (m_eOverviewMode == Overview::eOMAvsB)
+      return i->mergeDetails == eCAdded || i->mergeDetails == eCDeleted || i->mergeDetails == eCChanged;
+   if (m_eOverviewMode == Overview::eOMAvsC)
+      return i->mergeDetails == eBAdded || i->mergeDetails == eBDeleted || i->mergeDetails == eBChanged;
+   if (m_eOverviewMode == Overview::eOMBvsC)
+      return i->mergeDetails == eBCAddedAndEqual || i->mergeDetails == eBCDeleted || i->mergeDetails == eBCChangedAndEqual;
+   return false;
+}
+
+// Go to prev/next delta/conflict or first/last delta.
+void MergeResultWindow::go( e_Direction eDir, e_EndPoint eEndPoint )
+{
+   assert( eDir==eUp || eDir==eDown );
+   MergeLineList::iterator i = m_currentMergeLineIt;
+   bool bSkipWhiteConflicts = ! m_pOptions->m_bShowWhiteSpace;
+   if( eEndPoint==eEnd )
+   {
+      if (eDir==eUp) i = m_mergeLineList.begin();     // first mergeline
+      else           i = --m_mergeLineList.end();     // last mergeline
+
+      while ( isItAtEnd(eDir==eUp, i) && ! i->bDelta )
+      {
+         if ( eDir==eUp )  ++i;                       // search downwards
+         else              --i;                       // search upwards
+      }
+   }
+   else if ( eEndPoint == eDelta  &&  isItAtEnd(eDir!=eUp, i) )
+   {
+      do
+      {
+         if ( eDir==eUp )  --i;
+         else              ++i;
+      }
+      while ( isItAtEnd(eDir!=eUp, i) && ( i->bDelta == false || checkOverviewIgnore(i) || (bSkipWhiteConflicts && i->bWhiteSpaceConflict) ) );
+   }
+   else if ( eEndPoint == eConflict  &&  isItAtEnd(eDir!=eUp, i) )
+   {
+      do
+      {
+         if ( eDir==eUp )  --i;
+         else              ++i;
+      }
+      while ( isItAtEnd(eDir!=eUp, i) && (i->bConflict == false || (bSkipWhiteConflicts && i->bWhiteSpaceConflict) ) );
+   }
+   else if ( isItAtEnd(eDir!=eUp, i)  &&  eEndPoint == eUnsolvedConflict )
+   {
+      do
+      {
+         if ( eDir==eUp )  --i;
+         else              ++i;
+      }
+      while ( isItAtEnd(eDir!=eUp, i) && ! i->mergeEditLineList.begin()->isConflict() );
+   }
+
+   if ( isVisible() )
+      setFocus();
+
+   setFastSelector( i );
+}
+
+bool MergeResultWindow::isDeltaAboveCurrent()
+{
+   bool bSkipWhiteConflicts = ! m_pOptions->m_bShowWhiteSpace;
+   if (m_mergeLineList.empty()) return false;
+   MergeLineList::iterator i = m_currentMergeLineIt;
+   if (i == m_mergeLineList.begin()) return false;
+   do
+   {
+      --i;
+      if ( i->bDelta && !checkOverviewIgnore(i) && !( bSkipWhiteConflicts && i->bWhiteSpaceConflict ) ) return true;
+   }
+   while (i!=m_mergeLineList.begin());
+
+   return false;
+}
+
+bool MergeResultWindow::isDeltaBelowCurrent()
+{
+   bool bSkipWhiteConflicts = ! m_pOptions->m_bShowWhiteSpace;
+   if (m_mergeLineList.empty()) return false;
+
+   MergeLineList::iterator i = m_currentMergeLineIt;
+   if (i!=m_mergeLineList.end())
+   {
+      ++i;
+      for( ; i!=m_mergeLineList.end(); ++i )
+      {
+         if ( i->bDelta && !checkOverviewIgnore(i) && !( bSkipWhiteConflicts && i->bWhiteSpaceConflict ) ) return true;
+      }
+   }
+   return false;
+}
+
+bool MergeResultWindow::isConflictAboveCurrent()
+{
+   if (m_mergeLineList.empty()) return false;
+   MergeLineList::iterator i = m_currentMergeLineIt;
+   if (i == m_mergeLineList.begin()) return false;
+
+   bool bSkipWhiteConflicts = ! m_pOptions->m_bShowWhiteSpace;
+
+   do
+   {
+      --i;
+      if ( i->bConflict && !(bSkipWhiteConflicts && i->bWhiteSpaceConflict) ) return true;
+   } 
+   while (i!=m_mergeLineList.begin());
+   
+   return false;
+}
+
+bool MergeResultWindow::isConflictBelowCurrent()
+{
+   MergeLineList::iterator i = m_currentMergeLineIt;
+   if (m_mergeLineList.empty()) return false;
+
+   bool bSkipWhiteConflicts = ! m_pOptions->m_bShowWhiteSpace;
+
+   if (i!=m_mergeLineList.end())
+   {
+      ++i;
+      for( ; i!=m_mergeLineList.end(); ++i )
+      {
+         if ( i->bConflict && !(bSkipWhiteConflicts && i->bWhiteSpaceConflict) ) return true;
+      }
+   }
+   return false;
+}
+
+bool MergeResultWindow::isUnsolvedConflictAtCurrent()
+{
+   if (m_mergeLineList.empty()) return false;
+   MergeLineList::iterator i = m_currentMergeLineIt;
+   return i->mergeEditLineList.begin()->isConflict();
+}
+
+bool MergeResultWindow::isUnsolvedConflictAboveCurrent()
+{
+   if (m_mergeLineList.empty()) return false;
+   MergeLineList::iterator i = m_currentMergeLineIt;
+   if (i == m_mergeLineList.begin()) return false;
+   
+   do
+   {
+      --i;
+      if ( i->mergeEditLineList.begin()->isConflict() ) return true;
+   } 
+   while (i!=m_mergeLineList.begin());
+   
+   return false;
+}
+
+bool MergeResultWindow::isUnsolvedConflictBelowCurrent()
+{
+   MergeLineList::iterator i = m_currentMergeLineIt;
+   if (m_mergeLineList.empty()) return false;
+   
+   if (i!=m_mergeLineList.end())
+   {
+      ++i;
+      for( ; i!=m_mergeLineList.end(); ++i )
+      {
+         if ( i->mergeEditLineList.begin()->isConflict() ) return true;
+      }
+   }
+   return false;
+}
+
+void MergeResultWindow::slotGoTop()
+{
+   go( eUp, eEnd );
+}
+
+void MergeResultWindow::slotGoCurrent()
+{
+   setFastSelector( m_currentMergeLineIt );
+}
+
+void MergeResultWindow::slotGoBottom()
+{
+   go( eDown, eEnd );
+}
+
+void MergeResultWindow::slotGoPrevDelta()
+{
+   go( eUp, eDelta );
+}
+
+void MergeResultWindow::slotGoNextDelta()
+{
+   go( eDown, eDelta );
+}
+
+void MergeResultWindow::slotGoPrevConflict()
+{
+   go( eUp, eConflict );
+}
+
+void MergeResultWindow::slotGoNextConflict()
+{
+   go( eDown, eConflict );
+}
+
+void MergeResultWindow::slotGoPrevUnsolvedConflict()
+{
+   go( eUp, eUnsolvedConflict );
+}
+
+void MergeResultWindow::slotGoNextUnsolvedConflict()
+{
+   go( eDown, eUnsolvedConflict );
+}
+
+/** The line is given as a index in the Diff3LineList.
+    The function calculates the corresponding iterator. */
+void MergeResultWindow::slotSetFastSelectorLine( int line )
+{
+   MergeLineList::iterator i;
+   for ( i = m_mergeLineList.begin();  i!=m_mergeLineList.end(); ++i )
+   {
+      if ( line>=i->d3lLineIdx  && line < i->d3lLineIdx + i->srcRangeLength )
+      {
+         //if ( i->bDelta )
+         {
+            setFastSelector( i );
+         }
+         break;
+      }
+   }
+}
+
+int MergeResultWindow::getNrOfUnsolvedConflicts( int* pNrOfWhiteSpaceConflicts )
+{
+   int nrOfUnsolvedConflicts = 0;
+   if (pNrOfWhiteSpaceConflicts!=0)
+      *pNrOfWhiteSpaceConflicts = 0;
+
+   MergeLineList::iterator mlIt = m_mergeLineList.begin();
+   for(mlIt = m_mergeLineList.begin();mlIt!=m_mergeLineList.end(); ++mlIt)
+   {
+      MergeLine& ml = *mlIt;
+      MergeEditLineList::iterator melIt = ml.mergeEditLineList.begin();
+      if ( melIt->isConflict() )
+      {
+         ++nrOfUnsolvedConflicts;
+         if ( ml.bWhiteSpaceConflict &&  pNrOfWhiteSpaceConflicts!=0 )
+            ++ *pNrOfWhiteSpaceConflicts;
+      }
+   }
+
+   return nrOfUnsolvedConflicts;
+}
+
+void MergeResultWindow::showNrOfConflicts()
+{
+   if (!m_pOptions->m_bShowInfoDialogs)
+      return;
+   int nrOfConflicts = 0;
+   MergeLineList::iterator i;
+   for ( i = m_mergeLineList.begin();  i!=m_mergeLineList.end(); ++i )
+   {
+      if ( i->bConflict || i->bDelta )
+         ++nrOfConflicts;
+   }
+   QString totalInfo;
+   if ( m_pTotalDiffStatus->bBinaryAEqB && m_pTotalDiffStatus->bBinaryAEqC )
+      totalInfo += i18n("All input files are binary equal.");
+   else  if ( m_pTotalDiffStatus->bTextAEqB && m_pTotalDiffStatus->bTextAEqC )
+      totalInfo += i18n("All input files contain the same text.");
+   else {
+      if    ( m_pTotalDiffStatus->bBinaryAEqB ) totalInfo += i18n("Files %1 and %2 are binary equal.\n",QString("A"),QString("B"));
+      else if ( m_pTotalDiffStatus->bTextAEqB ) totalInfo += i18n("Files %1 and %2 have equal text.\n",QString("A"),QString("B"));
+      if    ( m_pTotalDiffStatus->bBinaryAEqC ) totalInfo += i18n("Files %1 and %2 are binary equal.\n",QString("A"),QString("C"));
+      else if ( m_pTotalDiffStatus->bTextAEqC ) totalInfo += i18n("Files %1 and %2 have equal text.\n",QString("A"),QString("C"));
+      if    ( m_pTotalDiffStatus->bBinaryBEqC ) totalInfo += i18n("Files %1 and %2 are binary equal.\n",QString("B"),QString("C"));
+      else if ( m_pTotalDiffStatus->bTextBEqC ) totalInfo += i18n("Files %1 and %2 have equal text.\n",QString("B"),QString("C"));
+   }
+
+   int nrOfUnsolvedConflicts = getNrOfUnsolvedConflicts();
+
+   KMessageBox::information( this,
+      i18n("Total number of conflicts: ") + QString::number(nrOfConflicts) +
+      i18n("\nNr of automatically solved conflicts: ") + QString::number(nrOfConflicts-nrOfUnsolvedConflicts) +
+      i18n("\nNr of unsolved conflicts: ") + QString::number(nrOfUnsolvedConflicts) +
+      "\n"+totalInfo,
+      i18n("Conflicts")
+      );
+}
+
+void MergeResultWindow::setFastSelector(MergeLineList::iterator i)
+{
+   if ( i==m_mergeLineList.end() )
+      return;
+   m_currentMergeLineIt = i;
+   emit setFastSelectorRange( i->d3lLineIdx, i->srcRangeLength );
+
+   int line1 = 0;
+
+   MergeLineList::iterator mlIt = m_mergeLineList.begin();
+   for(mlIt = m_mergeLineList.begin();mlIt!=m_mergeLineList.end(); ++mlIt)
+   {
+      if(mlIt==m_currentMergeLineIt)
+         break;
+      line1 += mlIt->mergeEditLineList.size();
+   }
+
+   int nofLines = m_currentMergeLineIt->mergeEditLineList.size();
+   int newFirstLine = getBestFirstLine( line1, nofLines, m_firstLine, getNofVisibleLines() );
+   if ( newFirstLine != m_firstLine )
+   {
+      scroll( 0, newFirstLine - m_firstLine );
+   }
+
+   if ( m_selection.isEmpty() )
+   {
+      m_cursorXPos = 0;
+      m_cursorOldXPixelPos = 0;
+      m_cursorYPos = line1;
+   }
+
+   update();
+   updateSourceMask();
+   emit updateAvailabilities();
+}
+
+void MergeResultWindow::choose( int selector )
+{
+   if ( m_currentMergeLineIt==m_mergeLineList.end() )
+      return;
+
+   setModified();
+
+   // First find range for which this change works.
+   MergeLine& ml = *m_currentMergeLineIt;
+
+   MergeEditLineList::iterator melIt;
+
+   // Now check if selector is active for this range already.
+   bool bActive = false;
+
+   // Remove unneeded lines in the range.
+   for( melIt = ml.mergeEditLineList.begin(); melIt != ml.mergeEditLineList.end(); )
+   {
+      MergeEditLine& mel = *melIt;
+      if ( mel.src()==selector )
+         bActive = true;
+
+      if ( mel.src()==selector || !mel.isEditableText() || mel.isModified() )
+         melIt = ml.mergeEditLineList.erase( melIt );
+      else
+         ++melIt;
+   }
+
+   if ( !bActive )  // Selected source wasn't active.
+   {     // Append the lines from selected source here at rangeEnd.
+      Diff3LineList::const_iterator d3llit=ml.id3l;
+      int j;
+
+      for( j=0; j<ml.srcRangeLength; ++j )
+      {
+         MergeEditLine mel(d3llit);
+         mel.setSource( selector, false );
+         ml.mergeEditLineList.push_back(mel);
+
+         ++d3llit;
+      }
+   }
+
+   if ( ! ml.mergeEditLineList.empty() )
+   {
+      // Remove all lines that are empty, because no src lines are there.
+      for( melIt = ml.mergeEditLineList.begin(); melIt != ml.mergeEditLineList.end(); )
+      {
+         MergeEditLine& mel = *melIt;
+
+         int srcLine = mel.src()==1 ? mel.id3l()->lineA :
+                       mel.src()==2 ? mel.id3l()->lineB :
+                       mel.src()==3 ? mel.id3l()->lineC : -1;
+
+         if ( srcLine == -1 )
+            melIt = ml.mergeEditLineList.erase( melIt );
+         else
+            ++melIt;
+      }
+   }
+
+   if ( ml.mergeEditLineList.empty() )
+   {
+      // Insert a dummy line:
+      MergeEditLine mel(ml.id3l);
+
+      if ( bActive )  mel.setConflict();         // All src entries deleted => conflict
+      else            mel.setRemoved(selector);  // No lines in corresponding src found.
+
+      ml.mergeEditLineList.push_back(mel);
+   }
+
+   if ( m_cursorYPos >= m_totalSize )
+   {
+      m_cursorYPos = m_totalSize-1;
+      m_cursorXPos = 0;
+   }
+
+   m_maxTextWidth = -1;
+   update();
+   updateSourceMask();
+   emit updateAvailabilities();
+   int wsc;
+   int nofUnsolved = getNrOfUnsolvedConflicts(&wsc);
+   m_pStatusBar->showMessage( i18n("Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)"
+         ,nofUnsolved,wsc) );
+}
+
+// bConflictsOnly: automatically choose for conflicts only (true) or for everywhere (false)
+void MergeResultWindow::chooseGlobal(int selector, bool bConflictsOnly, bool bWhiteSpaceOnly )
+{
+   resetSelection();
+
+   merge( false, selector, bConflictsOnly, bWhiteSpaceOnly );
+   setModified( true );
+   update();
+   int wsc;
+   int nofUnsolved = getNrOfUnsolvedConflicts(&wsc);
+   m_pStatusBar->showMessage( i18n("Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)"
+         ,nofUnsolved,wsc) );
+}
+
+void MergeResultWindow::slotAutoSolve()
+{
+   resetSelection();
+   merge( true, -1 );
+   setModified( true );
+   update();
+   int wsc;
+   int nofUnsolved = getNrOfUnsolvedConflicts(&wsc);
+   m_pStatusBar->showMessage( i18n("Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)"
+         ,nofUnsolved,wsc) );
+}
+
+void MergeResultWindow::slotUnsolve()
+{
+   resetSelection();
+   merge( false, -1 );
+   setModified( true );
+   update();
+   int wsc;
+   int nofUnsolved = getNrOfUnsolvedConflicts(&wsc);
+   m_pStatusBar->showMessage( i18n("Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)"
+         ,nofUnsolved,wsc) );
+}
+
+static QString calcHistoryLead(const QString& s )
+{
+   // Return the start of the line until the first white char after the first non white char.
+   int i;
+   for( i=0; i<s.length(); ++i )
+   {
+      if (s[i]!=' ' && s[i]!='\t')
+      {
+         for( ; i<s.length(); ++i )
+         {
+            if (s[i]==' ' || s[i]=='\t')
+            {
+               return s.left(i);
+            }
+         }
+         return s;  // Very unlikely
+      }
+   }
+   return "";  // Must be an empty string, not a null string.
+}
+
+static void findHistoryRange( const QRegExp& historyStart, bool bThreeFiles, const Diff3LineList* pD3LList, 
+                             Diff3LineList::const_iterator& iBegin, Diff3LineList::const_iterator& iEnd, int& idxBegin, int& idxEnd )
+{
+   QString historyLead;
+   // Search for start of history
+   for( iBegin = pD3LList->begin(), idxBegin=0; iBegin!=pD3LList->end(); ++iBegin, ++idxBegin )
+   {
+      if ( historyStart.exactMatch( iBegin->getString(A) ) && 
+           historyStart.exactMatch( iBegin->getString(B) ) && 
+           ( !bThreeFiles || historyStart.exactMatch( iBegin->getString(C) ) ) )
+      {
+         historyLead = calcHistoryLead( iBegin->getString(A) );
+         break;
+      }
+   }
+   // Search for end of history
+   for( iEnd = iBegin, idxEnd = idxBegin; iEnd!=pD3LList->end(); ++iEnd, ++idxEnd )
+   {
+      QString sA = iEnd->getString(A);
+      QString sB = iEnd->getString(B);
+      QString sC = iEnd->getString(C);
+      if ( ! ((sA.isNull() || historyLead == calcHistoryLead(sA) ) &&
+              (sB.isNull() || historyLead == calcHistoryLead(sB) ) &&
+           (!bThreeFiles || sC.isNull() || historyLead == calcHistoryLead(sC) )
+         ))
+      {
+         break; // End of the history
+      }
+   }
+}
+
+bool findParenthesesGroups( const QString& s, QStringList& sl )
+{
+   sl.clear();
+   int i=0;
+   std::list<int> startPosStack;
+   int length = s.length();
+   for( i=0; i<length; ++i )
+   {
+      if ( s[i]=='\\' && i+1<length && ( s[i+1]=='\\' || s[i+1]=='(' || s[i+1]==')' ) )
+      {
+         ++i;
+         continue;
+      }
+      if ( s[i]=='(' )
+      {
+         startPosStack.push_back(i);
+      }
+      else if ( s[i]==')' )
+      {
+         if (startPosStack.empty())
+            return false; // Parentheses don't match
+         int startPos = startPosStack.back();
+         startPosStack.pop_back();
+         sl.push_back( s.mid( startPos+1, i-startPos-1 ) );
+      }
+   }
+   return startPosStack.empty(); // false if parentheses don't match
+}
+
+QString calcHistorySortKey( const QString& keyOrder, QRegExp& matchedRegExpr, const QStringList& parenthesesGroupList )
+{
+   QStringList keyOrderList = keyOrder.split(',');
+   QString key;
+   for ( QStringList::iterator keyIt = keyOrderList.begin(); keyIt!=keyOrderList.end(); ++keyIt )
+   {
+      if ( (*keyIt).isEmpty() )
+         continue;
+      bool bOk=false;
+      int groupIdx = (*keyIt).toInt(&bOk);
+      if (!bOk || groupIdx<0 || groupIdx >(int)parenthesesGroupList.size() )
+         continue;
+      QString s = matchedRegExpr.cap( groupIdx );
+      if ( groupIdx == 0 )
+      {
+         key += s + " ";
+         continue;
+      }
+
+      QString groupRegExp = parenthesesGroupList[groupIdx-1];
+      if( groupRegExp.indexOf('|')<0 || groupRegExp.indexOf('(')>=0 )
+      {
+         bool bOk = false;
+         int i = s.toInt( &bOk );
+         if ( bOk && i>=0 && i<10000 )
+            s.sprintf("%04d", i);  // This should help for correct sorting of numbers.
+         key += s + " ";
+      }
+      else
+      {
+         // Assume that the groupRegExp consists of something like "Jan|Feb|Mar|Apr"
+         // s is the string that managed to match.
+         // Now we want to know at which position it occurred. e.g. Jan=0, Feb=1, Mar=2, etc.
+         QStringList sl = groupRegExp.split( '|' );
+         int idx = sl.indexOf( s );
+         if (idx<0)
+         {
+            // Didn't match
+         }
+         else
+         {
+            QString sIdx;
+            sIdx.sprintf("%02d", idx+1 ); // Up to 99 words in the groupRegExp (more than 12 aren't expected)
+            key += sIdx + " ";
+         }
+      }
+   }
+   return key;
+}
+
+void MergeResultWindow::collectHistoryInformation(
+   int src, Diff3LineList::const_iterator iHistoryBegin, Diff3LineList::const_iterator iHistoryEnd,
+   HistoryMap& historyMap,
+   std::list< HistoryMap::iterator >& hitList  // list of iterators
+   )
+{
+   std::list< HistoryMap::iterator >::iterator itHitListFront = hitList.begin();
+   Diff3LineList::const_iterator id3l = iHistoryBegin;
+   QString historyLead;
+   {
+      const LineData* pld = id3l->getLineData(src);
+      QString s( pld->pLine, pld->size );
+      historyLead = calcHistoryLead(s);
+   }
+   QRegExp historyStart( m_pOptions->m_historyStartRegExp );
+   if ( id3l == iHistoryEnd )
+      return;
+   ++id3l; // Skip line with "$Log ... $"
+   QRegExp newHistoryEntry( m_pOptions->m_historyEntryStartRegExp );
+   QStringList parenthesesGroups;
+   findParenthesesGroups( m_pOptions->m_historyEntryStartRegExp, parenthesesGroups );
+   QString key;
+   MergeEditLineList melList;
+   bool bPrevLineIsEmpty = true;
+   bool bUseRegExp = !m_pOptions->m_historyEntryStartRegExp.isEmpty();
+   for(; id3l != iHistoryEnd; ++id3l )
+   {
+      const LineData* pld = id3l->getLineData(src);
+      if ( !pld ) continue;
+      QString s( pld->pLine, pld->size );
+      if (historyLead.isNull()) historyLead = calcHistoryLead(s);
+      QString sLine = s.mid(historyLead.length());
+      if ( ( !bUseRegExp && !sLine.trimmed().isEmpty() && bPrevLineIsEmpty )
+           || (bUseRegExp && newHistoryEntry.exactMatch( sLine ) )
+         )
+      {
+         if ( !key.isEmpty() && !melList.empty() )
+         {
+            // Only insert new HistoryMapEntry if key not found; in either case p.first is a valid iterator to element key.
+            std::pair<HistoryMap::iterator, bool> p = historyMap.insert(HistoryMap::value_type(key,HistoryMapEntry()));
+            HistoryMapEntry& hme = p.first->second;
+            if ( src==A ) hme.mellA = melList;
+            if ( src==B ) hme.mellB = melList;
+            if ( src==C ) hme.mellC = melList;
+            if ( p.second ) // Not in list yet?
+            {
+               hitList.insert( itHitListFront, p.first );
+            }
+         }
+
+         if ( ! bUseRegExp )
+            key = sLine;
+         else
+            key = calcHistorySortKey(m_pOptions->m_historyEntryStartSortKeyOrder,newHistoryEntry,parenthesesGroups);
+
+         melList.clear();
+         melList.push_back( MergeEditLine(id3l,src) );
+      }
+      else if ( ! historyStart.exactMatch( s ) )
+      {
+         melList.push_back( MergeEditLine(id3l,src) );
+      }
+
+      bPrevLineIsEmpty = sLine.trimmed().isEmpty();
+   }
+   if ( !key.isEmpty() )
+   {
+      // Only insert new HistoryMapEntry if key not found; in either case p.first is a valid iterator to element key.
+      std::pair<HistoryMap::iterator, bool> p = historyMap.insert(HistoryMap::value_type(key,HistoryMapEntry()));
+      HistoryMapEntry& hme = p.first->second;
+      if ( src==A ) hme.mellA = melList;
+      if ( src==B ) hme.mellB = melList;
+      if ( src==C ) hme.mellC = melList;
+      if ( p.second ) // Not in list yet?
+      {
+         hitList.insert( itHitListFront, p.first );
+      }
+   }
+   // End of the history
+}
+
+MergeResultWindow::MergeEditLineList& MergeResultWindow::HistoryMapEntry::choice( bool bThreeInputs )
+{
+   if ( !bThreeInputs )
+      return mellA.empty() ? mellB : mellA;
+   else
+   {
+      if ( mellA.empty() )
+         return mellC.empty() ? mellB : mellC;       // A doesn't exist, return one that exists
+      else if ( ! mellB.empty() && ! mellC.empty() )
+      {                                              // A, B and C exist
+         return mellA;
+      }
+      else
+         return mellB.empty() ? mellB : mellC;       // A exists, return the one that doesn't exist
+   }
+}
+
+bool MergeResultWindow::HistoryMapEntry::staysInPlace( bool bThreeInputs, Diff3LineList::const_iterator& iHistoryEnd )
+{
+   // The entry should stay in place if the decision made by the automerger is correct.
+   Diff3LineList::const_iterator& iHistoryLast = iHistoryEnd;
+   --iHistoryLast;
+   if ( !bThreeInputs )
+   {
+      if ( !mellA.empty() && !mellB.empty() && mellA.begin()->id3l()==mellB.begin()->id3l() && 
+           mellA.back().id3l() == iHistoryLast && mellB.back().id3l() == iHistoryLast )
+      {
+         iHistoryEnd = mellA.begin()->id3l();
+         return true;
+      }
+      else
+      {
+         return false;
+      }
+   }
+   else
+   {
+      if ( !mellA.empty() && !mellB.empty() && !mellC.empty() 
+           && mellA.begin()->id3l()==mellB.begin()->id3l() && mellA.begin()->id3l()==mellC.begin()->id3l()
+           && mellA.back().id3l() == iHistoryLast && mellB.back().id3l() == iHistoryLast && mellC.back().id3l() == iHistoryLast )
+      {
+         iHistoryEnd = mellA.begin()->id3l();
+         return true;
+      }
+      else
+      {
+         return false;
+      }
+   }
+}
+
+void MergeResultWindow::slotMergeHistory()
+{
+   Diff3LineList::const_iterator iD3LHistoryBegin;
+   Diff3LineList::const_iterator iD3LHistoryEnd;
+   int d3lHistoryBeginLineIdx = -1;
+   int d3lHistoryEndLineIdx = -1;
+
+   // Search for history start, history end in the diff3LineList
+   findHistoryRange( QRegExp(m_pOptions->m_historyStartRegExp), m_pldC!=0, m_pDiff3LineList, iD3LHistoryBegin, iD3LHistoryEnd, d3lHistoryBeginLineIdx, d3lHistoryEndLineIdx );
+
+   if (  iD3LHistoryBegin != m_pDiff3LineList->end() )
+   {
+      // Now collect the historyMap information
+      HistoryMap historyMap;
+      std::list< HistoryMap::iterator > hitList;
+      if (m_pldC==0)
+      {
+         collectHistoryInformation( A, iD3LHistoryBegin, iD3LHistoryEnd, historyMap, hitList );
+         collectHistoryInformation( B, iD3LHistoryBegin, iD3LHistoryEnd, historyMap, hitList );
+      }
+      else
+      {
+         collectHistoryInformation( A, iD3LHistoryBegin, iD3LHistoryEnd, historyMap, hitList );
+         collectHistoryInformation( B, iD3LHistoryBegin, iD3LHistoryEnd, historyMap, hitList );
+         collectHistoryInformation( C, iD3LHistoryBegin, iD3LHistoryEnd, historyMap, hitList );
+      }
+
+      Diff3LineList::const_iterator iD3LHistoryOrigEnd = iD3LHistoryEnd;
+
+      bool bHistoryMergeSorting = m_pOptions->m_bHistoryMergeSorting  && ! m_pOptions->m_historyEntryStartSortKeyOrder.isEmpty() && 
+                                  ! m_pOptions->m_historyEntryStartRegExp.isEmpty();
+
+      if ( m_pOptions->m_maxNofHistoryEntries==-1 )
+      {
+         // Remove parts from the historyMap and hitList that stay in place
+         if ( bHistoryMergeSorting )
+         {
+            while ( ! historyMap.empty() )
+            {
+               HistoryMap::iterator hMapIt = historyMap.begin();
+               if( hMapIt->second.staysInPlace( m_pldC!=0, iD3LHistoryEnd ) )
+                  historyMap.erase(hMapIt);
+               else
+                  break;
+            }
+         }
+         else
+         {
+            while ( ! hitList.empty() )
+            {
+               HistoryMap::iterator hMapIt = hitList.back();
+               if( hMapIt->second.staysInPlace( m_pldC!=0, iD3LHistoryEnd ) )
+                  hitList.pop_back();
+               else
+                  break;
+            }
+         }
+         while (iD3LHistoryOrigEnd != iD3LHistoryEnd)
+         {
+            --iD3LHistoryOrigEnd;
+            --d3lHistoryEndLineIdx;
+         }
+      }
+
+      MergeLineList::iterator iMLLStart = splitAtDiff3LineIdx(d3lHistoryBeginLineIdx);
+      MergeLineList::iterator iMLLEnd   = splitAtDiff3LineIdx(d3lHistoryEndLineIdx);
+      // Now join all MergeLines in the history
+      MergeLineList::iterator i = iMLLStart;
+      if ( i != iMLLEnd )
+      {
+         ++i;
+         while ( i!=iMLLEnd )
+         {
+            iMLLStart->join(*i);
+            i = m_mergeLineList.erase( i );
+         }
+      }
+      iMLLStart->mergeEditLineList.clear();
+      // Now insert the complete history into the first MergeLine of the history
+      iMLLStart->mergeEditLineList.push_back( MergeEditLine( iD3LHistoryBegin, m_pldC == 0 ? B : C ) );
+      QString lead = calcHistoryLead( iD3LHistoryBegin->getString(A) );
+      MergeEditLine mel( m_pDiff3LineList->end() );
+      mel.setString( lead );
+      iMLLStart->mergeEditLineList.push_back(mel);
+
+      int historyCount = 0;
+      if ( bHistoryMergeSorting )
+      {
+         // Create a sorted history
+         HistoryMap::reverse_iterator hmit;
+         for ( hmit = historyMap.rbegin(); hmit != historyMap.rend(); ++hmit )
+         {
+            if ( historyCount==m_pOptions->m_maxNofHistoryEntries )
+               break;
+            ++historyCount;
+            HistoryMapEntry& hme = hmit->second;
+            MergeEditLineList& mell = hme.choice(m_pldC!=0);
+            if (!mell.empty())
+               iMLLStart->mergeEditLineList.splice( iMLLStart->mergeEditLineList.end(), mell, mell.begin(), mell.end() );
+         }
+      }
+      else
+      {
+         // Create history in order of appearance
+         std::list< HistoryMap::iterator >::iterator hlit;
+         for ( hlit = hitList.begin(); hlit != hitList.end(); ++hlit )
+         {
+            if ( historyCount==m_pOptions->m_maxNofHistoryEntries )
+               break;
+            ++historyCount;
+            HistoryMapEntry& hme = (*hlit)->second;
+            MergeEditLineList& mell = hme.choice(m_pldC!=0);
+            if (!mell.empty())
+               iMLLStart->mergeEditLineList.splice( iMLLStart->mergeEditLineList.end(), mell, mell.begin(), mell.end() );
+         }
+         // If the end of start is empty and the first line at the end is empty remove the last line of start
+         if ( !iMLLStart->mergeEditLineList.empty() && !iMLLEnd->mergeEditLineList.empty() )
+         {
+            QString lastLineOfStart = iMLLStart->mergeEditLineList.back().getString(this);
+            QString firstLineOfEnd = iMLLEnd->mergeEditLineList.front().getString(this);
+            if ( lastLineOfStart.mid(lead.length()).trimmed().isEmpty() && firstLineOfEnd.mid(lead.length()).trimmed().isEmpty() )
+               iMLLStart->mergeEditLineList.pop_back();
+         }
+      }
+      setFastSelector( iMLLStart );
+      update();
+   }
+}
+
+void MergeResultWindow::slotRegExpAutoMerge()
+{
+   if ( m_pOptions->m_autoMergeRegExp.isEmpty() )
+      return;
+
+   QRegExp vcsKeywords( m_pOptions->m_autoMergeRegExp );
+   MergeLineList::iterator i;
+   for ( i=m_mergeLineList.begin(); i!=m_mergeLineList.end(); ++i )
+   {
+      if (i->bConflict )
+      {
+         Diff3LineList::const_iterator id3l = i->id3l;
+         if ( vcsKeywords.exactMatch( id3l->getString(A) ) && 
+              vcsKeywords.exactMatch( id3l->getString(B) ) &&
+              (m_pldC==0 || vcsKeywords.exactMatch( id3l->getString(C) )))
+         {
+            MergeEditLine& mel = *i->mergeEditLineList.begin();
+            mel.setSource( m_pldC==0 ? B : C, false );
+            splitAtDiff3LineIdx( i->d3lLineIdx+1 );
+         }
+      }
+   }
+   update();
+}
+
+// This doesn't detect user modifications and should only be called after automatic merge
+// This will only do something for three file merge.
+// Irrelevant changes are those where all contributions from B are already contained in C.
+// Also irrelevant are conflicts automatically solved (automerge regexp and history automerge)
+// Precondition: The VCS-keyword would also be C.
+bool MergeResultWindow::doRelevantChangesExist()
+{
+   if ( m_pldC==0 || m_mergeLineList.size() <= 1 )
+      return true;
+
+   MergeLineList::iterator i;
+   for ( i=m_mergeLineList.begin(); i!=m_mergeLineList.end(); ++i )
+   {
+      if ( ( i->bConflict && i->mergeEditLineList.begin()->src()!=C )
+         || i->srcSelect == B )
+      {
+         return true;
+      }
+   }
+
+   return false;
+}
+
+// Returns the iterator to the MergeLine after the split
+MergeResultWindow::MergeLineList::iterator MergeResultWindow::splitAtDiff3LineIdx( int d3lLineIdx )
+{
+   MergeLineList::iterator i;
+   for ( i = m_mergeLineList.begin();  i!=m_mergeLineList.end(); ++i )
+   {
+      if ( i->d3lLineIdx==d3lLineIdx )
+      {
+         // No split needed, this is the beginning of a MergeLine
+         return i;
+      }
+      else if ( i->d3lLineIdx > d3lLineIdx )
+      {
+         // The split must be in the previous MergeLine
+         --i;
+         MergeLine& ml = *i;
+         MergeLine newML;
+         ml.split(newML,d3lLineIdx);
+         ++i;
+         return m_mergeLineList.insert( i, newML );
+      }
+   }
+   // The split must be in the previous MergeLine
+   --i;
+   MergeLine& ml = *i;
+   MergeLine newML;
+   ml.split(newML,d3lLineIdx);
+   ++i;
+   return m_mergeLineList.insert( i, newML );
+}
+
+void MergeResultWindow::slotSplitDiff( int firstD3lLineIdx, int lastD3lLineIdx )
+{
+   if (lastD3lLineIdx>=0)
+      splitAtDiff3LineIdx( lastD3lLineIdx + 1 );
+   setFastSelector( splitAtDiff3LineIdx(firstD3lLineIdx) );
+}
+
+void MergeResultWindow::slotJoinDiffs( int firstD3lLineIdx, int lastD3lLineIdx )
+{
+   MergeLineList::iterator i;
+   MergeLineList::iterator iMLLStart = m_mergeLineList.end();
+   MergeLineList::iterator iMLLEnd   = m_mergeLineList.end();
+   for ( i=m_mergeLineList.begin(); i!=m_mergeLineList.end(); ++i )
+   {
+      MergeLine& ml = *i;
+      if ( firstD3lLineIdx >= ml.d3lLineIdx && firstD3lLineIdx < ml.d3lLineIdx + ml.srcRangeLength )
+      {
+         iMLLStart = i;
+      }
+      if ( lastD3lLineIdx >= ml.d3lLineIdx && lastD3lLineIdx < ml.d3lLineIdx + ml.srcRangeLength )
+      {
+         iMLLEnd = i;
+         ++iMLLEnd;
+         break;
+      }
+   }
+
+   bool bJoined = false;
+   for( i=iMLLStart;  i!=iMLLEnd && i!=m_mergeLineList.end(); )
+   {
+      if ( i==iMLLStart )
+      {
+         ++i;
+      }
+      else
+      {
+         iMLLStart->join(*i);
+         i = m_mergeLineList.erase( i );
+         bJoined = true;
+      }
+   }
+   if (bJoined)
+   {
+      iMLLStart->mergeEditLineList.clear();
+      // Insert a conflict line as placeholder
+      iMLLStart->mergeEditLineList.push_back( MergeEditLine( iMLLStart->id3l ) );
+   }
+   setFastSelector( iMLLStart );
+}
+
+void MergeResultWindow::myUpdate(int afterMilliSecs)
+{
+   if ( m_delayedDrawTimer )
+      killTimer(m_delayedDrawTimer);
+   m_bMyUpdate = true;
+   m_delayedDrawTimer = startTimer( afterMilliSecs );
+}
+
+void MergeResultWindow::timerEvent(QTimerEvent*)
+{
+   killTimer(m_delayedDrawTimer);
+   m_delayedDrawTimer = 0;
+
+   if ( m_bMyUpdate )
+   {
+      update();
+      m_bMyUpdate = false;
+   }
+
+   if ( m_scrollDeltaX != 0 || m_scrollDeltaY != 0 )
+   {
+      m_selection.end( m_selection.lastLine + m_scrollDeltaY, m_selection.lastPos +  m_scrollDeltaX );
+      emit scroll( m_scrollDeltaX, m_scrollDeltaY );
+      killTimer(m_delayedDrawTimer);
+      m_delayedDrawTimer = startTimer(50);
+   }
+}
+
+QString MergeResultWindow::MergeEditLine::getString( const MergeResultWindow* mrw )
+{
+   if ( isRemoved() )   { return QString(); }
+
+   if ( ! isModified() )
+   {
+      int src = m_src;
+      if ( src == 0 )   { return QString(); }
+      const Diff3Line& d3l = *m_id3l;
+      const LineData* pld = 0;
+      assert( src == A || src == B || src == C );
+      if      ( src == A && d3l.lineA!=-1 ) pld = &mrw->m_pldA[ d3l.lineA ];
+      else if ( src == B && d3l.lineB!=-1 ) pld = &mrw->m_pldB[ d3l.lineB ];
+      else if ( src == C && d3l.lineC!=-1 ) pld = &mrw->m_pldC[ d3l.lineC ];
+
+      if ( pld == 0 )
+      {
+         // assert(false);      This is no error.
+         return QString();
+      }
+
+      return QString( pld->pLine, pld->size );
+   }
+   else
+   {
+      return m_str;
+   }
+   return 0;
+}
+
+/// Converts the cursor-posOnScreen into a text index, considering tabulators.
+int convertToPosInText( const QString& /*s*/, int posOnScreen, int /*tabSize*/ )
+{
+   return posOnScreen;
+}
+
+//   int localPosOnScreen = 0;
+//   int size=s.length();
+//   for ( int i=0; i<size; ++i )
+//   {
+//      if ( localPosOnScreen>=posOnScreen )
+//         return i;
+
+//      // All letters except tabulator have width one.
+//      int letterWidth = s[i]!='\t' ? 1 : tabber( localPosOnScreen, tabSize );
+
+//      localPosOnScreen += letterWidth;
+
+//      if ( localPosOnScreen>posOnScreen )
+//         return i;
+//   }
+//   return size;
+//}
+
+
+/// Converts the index into the text to a cursor-posOnScreen considering tabulators.
+int convertToPosOnScreen( const QString& /*p*/, int posInText, int /*tabSize*/ )
+{
+   return posInText;
+}
+//   int posOnScreen = 0;
+//   for ( int i=0; i<posInText; ++i )
+//   {
+//      // All letters except tabulator have width one.
+//      int letterWidth = p[i]!='\t' ? 1 : tabber( posOnScreen, tabSize );
+
+//      posOnScreen += letterWidth;
+//   }
+//   return posOnScreen;
+//}
+
+QVector<QTextLayout::FormatRange> MergeResultWindow::getTextLayoutForLine(int line, const QString& str, QTextLayout& textLayout )
+{
+   // tabs
+   QTextOption textOption;
+   textOption.setTabStop( QFontMetricsF(font()).width(' ') * m_pOptions->m_tabSize );
+   if ( m_pOptions->m_bShowWhiteSpaceCharacters )
+   {
+      textOption.setFlags( QTextOption::ShowTabsAndSpaces );
+   }
+   textLayout.setTextOption( textOption );
+
+   if ( m_pOptions->m_bShowWhiteSpaceCharacters )
+   {
+      // This additional format is only necessary for the tab arrow
+      QList<QTextLayout::FormatRange> formats;
+      QTextLayout::FormatRange formatRange;
+      formatRange.start = 0;
+      formatRange.length = str.length();
+      formatRange.format.setFont( font() );
+      formats.append( formatRange );
+      textLayout.setAdditionalFormats(formats);
+   }
+   QVector<QTextLayout::FormatRange> selectionFormat;
+   textLayout.beginLayout();
+   if ( m_selection.lineWithin( line ) )
+   {
+      int firstPosInText = convertToPosInText( str, m_selection.firstPosInLine(line), m_pOptions->m_tabSize );
+      int lastPosInText  = convertToPosInText( str, m_selection.lastPosInLine(line), m_pOptions->m_tabSize );
+      int lengthInText = max2(0,lastPosInText - firstPosInText);
+      if (lengthInText>0)
+         m_selection.bSelectionContainsData = true;
+
+      QTextLayout::FormatRange selection;
+      selection.start = firstPosInText;
+      selection.length = lengthInText;
+      selection.format.setBackground( palette().highlight() );
+      selection.format.setForeground( palette().highlightedText().color() );
+      selectionFormat.push_back( selection );
+   }
+   QTextLine textLine = textLayout.createLine();
+   textLine.setPosition(QPointF(0, fontMetrics().leading()));
+   textLayout.endLayout();
+   int cursorWidth = 5;
+   if ( m_pOptions->m_bRightToLeftLanguage )
+      textLayout.setPosition( QPointF(width()-textLayout.maximumWidth()-getTextXOffset()+m_horizScrollOffset-cursorWidth, 0) );
+   else
+      textLayout.setPosition( QPointF(getTextXOffset() - m_horizScrollOffset, 0) );
+   return selectionFormat;
+}
+
+void MergeResultWindow::writeLine(
+   MyPainter& p, int line, const QString& str,
+   int srcSelect, e_MergeDetails mergeDetails, int rangeMark, bool bUserModified, bool bLineRemoved, bool bWhiteSpaceConflict
+   )
+{
+   const QFontMetrics& fm = fontMetrics();
+   int fontHeight = fm.lineSpacing();
+   int fontAscent = fm.ascent();
+
+   int topLineYOffset = 0;
+   int xOffset = getTextXOffset();
+
+   int yOffset = ( line-m_firstLine ) * fontHeight;
+   if ( yOffset < 0 || yOffset > height() )
+      return;
+
+   yOffset += topLineYOffset;
+
+   QString srcName = " ";
+   if ( bUserModified )                                     srcName = "m";
+   else if ( srcSelect == A && mergeDetails != eNoChange )  srcName = "A";
+   else if ( srcSelect == B )                               srcName = "B";
+   else if ( srcSelect == C )                               srcName = "C";
+
+   if ( rangeMark & 4 )
+   {
+      p.fillRect( xOffset, yOffset, width(), fontHeight, m_pOptions->m_currentRangeBgColor );
+   }
+
+   if( (srcSelect > 0 || bUserModified ) && !bLineRemoved )
+   {
+      if ( ! m_pOptions->m_bRightToLeftLanguage )
+         p.setClipRect( QRectF(xOffset,0,width()-xOffset,height()) );
+      else
+         p.setClipRect( QRectF(0,0,width()-xOffset,height()) );
+
+      int outPos = 0;
+      QString s;
+      int size = str.length();
+      for ( int i=0; i<size; ++i )
+      {
+         int spaces = 1;
+         if ( str[i]=='\t' )
+         {
+            spaces = tabber( outPos, m_pOptions->m_tabSize );
+            for( int j=0; j<spaces; ++j )
+               s+=' ';
+         }
+         else
+         {
+            s+=str[i];
+         }
+         outPos += spaces;
+      }
+
+      p.setPen( m_pOptions->m_fgColor );
+
+      QTextLayout textLayout( str, font(), this );
+      QVector<QTextLayout::FormatRange> selectionFormat = getTextLayoutForLine( line, str, textLayout );
+      textLayout.draw( &p, QPointF(0, yOffset), selectionFormat );
+
+      if ( line == m_cursorYPos )
+      {
+         m_cursorXPixelPos = textLayout.lineAt(0).cursorToX( m_cursorXPos );
+         if ( m_pOptions->m_bRightToLeftLanguage )
+            m_cursorXPixelPos += textLayout.position().x() - m_horizScrollOffset;
+      }
+
+      p.setClipping( false );
+
+      p.setPen( m_pOptions->m_fgColor );
+
+      p.drawText( 1, yOffset+fontAscent, srcName, true );
+   }
+   else if ( bLineRemoved )
+   {
+      p.setPen( m_pOptions->m_colorForConflict );
+      p.drawText( xOffset, yOffset+fontAscent, i18n("<No src line>") );
+      p.drawText( 1, yOffset+fontAscent, srcName );
+      if ( m_cursorYPos==line ) m_cursorXPos = 0;
+   }
+   else if ( srcSelect == 0 )
+   {
+      p.setPen( m_pOptions->m_colorForConflict );
+      if ( bWhiteSpaceConflict )
+         p.drawText( xOffset, yOffset+fontAscent, i18n("<Merge Conflict (Whitespace only)>") );
+      else
+         p.drawText( xOffset, yOffset+fontAscent, i18n("<Merge Conflict>") );
+      p.drawText( 1, yOffset+fontAscent, "?" );
+      if ( m_cursorYPos==line ) m_cursorXPos = 0;
+   }
+   else assert(false);
+
+   xOffset -= fm.width('0');
+   p.setPen( m_pOptions->m_fgColor );
+   if ( rangeMark & 1 ) // begin mark
+   {
+      p.drawLine( xOffset, yOffset+1, xOffset, yOffset+fontHeight/2 );
+      p.drawLine( xOffset, yOffset+1, xOffset-2, yOffset+1 );
+   }
+   else
+   {
+      p.drawLine( xOffset, yOffset, xOffset, yOffset+fontHeight/2 );
+   }
+
+   if ( rangeMark & 2 ) // end mark
+   {
+      p.drawLine( xOffset, yOffset+fontHeight/2, xOffset, yOffset+fontHeight-1 );
+      p.drawLine( xOffset, yOffset+fontHeight-1, xOffset-2, yOffset+fontHeight-1 );
+   }
+   else
+   {
+      p.drawLine( xOffset, yOffset+fontHeight/2, xOffset, yOffset+fontHeight );
+   }
+
+   if ( rangeMark & 4 )
+   {
+      p.fillRect( xOffset + 3, yOffset, 3, fontHeight, m_pOptions->m_fgColor );
+/*      p.setPen( blue );
+      p.drawLine( xOffset+2, yOffset, xOffset+2, yOffset+fontHeight-1 );
+      p.drawLine( xOffset+3, yOffset, xOffset+3, yOffset+fontHeight-1 );*/
+   }
+}
+
+void MergeResultWindow::setPaintingAllowed(bool bPaintingAllowed)
+{
+   m_bPaintingAllowed = bPaintingAllowed;
+   if ( !m_bPaintingAllowed )
+   {
+      m_currentMergeLineIt = m_mergeLineList.end();
+      reset();
+   }
+   update();
+}
+
+void MergeResultWindow::paintEvent( QPaintEvent* )
+{
+   if (m_pDiff3LineList==0 || !m_bPaintingAllowed) 
+      return;
+
+   bool bOldSelectionContainsData = m_selection.bSelectionContainsData;
+   const QFontMetrics& fm = fontMetrics();
+   int fontWidth = fm.width('0');
+
+   if ( !m_bCursorUpdate )  // Don't redraw everything for blinking cursor?
+   {
+      m_selection.bSelectionContainsData = false;
+      if ( size() != m_pixmap.size() )
+         m_pixmap = QPixmap(size());
+
+      MyPainter p(&m_pixmap, m_pOptions->m_bRightToLeftLanguage, width(), fontWidth);
+      p.setFont( font() );
+      p.QPainter::fillRect( rect(), m_pOptions->m_bgColor );
+
+      //int visibleLines = height() / fontHeight;
+
+      int lastVisibleLine = m_firstLine + getNofVisibleLines() + 5;
+      int line = 0;
+      MergeLineList::iterator mlIt = m_mergeLineList.begin();
+      for(mlIt = m_mergeLineList.begin();mlIt!=m_mergeLineList.end(); ++mlIt)
+      {
+         MergeLine& ml = *mlIt;
+         if ( line > lastVisibleLine  || line + ml.mergeEditLineList.size() < m_firstLine)
+         {
+            line += ml.mergeEditLineList.size();
+         }
+         else
+         {
+            MergeEditLineList::iterator melIt;
+            for( melIt = ml.mergeEditLineList.begin(); melIt != ml.mergeEditLineList.end(); ++melIt )
+            {
+               if (line>=m_firstLine && line<=lastVisibleLine)
+               {
+                  MergeEditLine& mel = *melIt;
+                  MergeEditLineList::iterator melIt1 = melIt;
+                  ++melIt1;
+
+                  int rangeMark = 0;
+                  if ( melIt==ml.mergeEditLineList.begin() ) rangeMark |= 1; // Begin range mark
+                  if ( melIt1==ml.mergeEditLineList.end() )  rangeMark |= 2; // End range mark
+
+                  if ( mlIt == m_currentMergeLineIt )        rangeMark |= 4; // Mark of the current line
+
+                  QString s;
+                  s = mel.getString( this );
+
+                  writeLine( p, line, s, mel.src(), ml.mergeDetails, rangeMark,
+                     mel.isModified(), mel.isRemoved(), ml.bWhiteSpaceConflict );
+               }
+               ++line;
+            }
+         }
+      }
+
+      if ( line != m_nofLines )
+      {
+         m_nofLines = line;
+         assert( m_nofLines == m_totalSize );
+
+         emit resizeSignal();
+      }
+
+      p.end();
+   }
+
+   QPainter painter(this);
+
+   if ( !m_bCursorUpdate )
+      painter.drawPixmap(0,0, m_pixmap);
+   else
+   {
+      painter.drawPixmap(0,0, m_pixmap ); // Draw everything. (Internally cursor rect is clipped anyway.)
+      m_bCursorUpdate = false;
+   }
+   painter.end();
+
+   if ( m_bCursorOn && hasFocus() && m_cursorYPos>=m_firstLine )
+   {
+      QPainter painter(this);
+
+      painter.setPen( m_pOptions->m_fgColor );
+
+      QString str = getString(m_cursorYPos);
+      QTextLayout textLayout( str, font(), this );
+      getTextLayoutForLine( m_cursorYPos, str, textLayout );
+      textLayout.drawCursor( &painter, QPointF(0, (m_cursorYPos-m_firstLine)*fontMetrics().lineSpacing()), m_cursorXPos );
+   }
+
+   if( !bOldSelectionContainsData  &&  m_selection.bSelectionContainsData )
+      emit newSelection();
+}
+
+void MergeResultWindow::updateSourceMask()
+{
+   int srcMask=0; 
+   int enabledMask = 0;
+   if( !hasFocus() || m_pDiff3LineList==0 || !m_bPaintingAllowed || m_currentMergeLineIt == m_mergeLineList.end() )
+   {
+      srcMask = 0;
+      enabledMask = 0;
+   }
+   else
+   {
+      enabledMask = m_pldC==0 ? 3 : 7;
+      MergeLine& ml = *m_currentMergeLineIt;
+
+      srcMask = 0;
+      bool bModified = false;
+      MergeEditLineList::iterator melIt;
+      for( melIt = ml.mergeEditLineList.begin(); melIt != ml.mergeEditLineList.end(); ++melIt )
+      {
+         MergeEditLine& mel = *melIt;
+         if ( mel.src()==1 ) srcMask |= 1;
+         if ( mel.src()==2 ) srcMask |= 2;
+         if ( mel.src()==3 ) srcMask |= 4;
+         if ( mel.isModified() || !mel.isEditableText() ) bModified = true;
+      }
+
+      if ( ml.mergeDetails == eNoChange ) 
+      {
+         srcMask = 0; 
+         enabledMask = bModified ? 1 : 0; 
+      }
+   }
+
+   emit sourceMask( srcMask, enabledMask );
+}
+
+void MergeResultWindow::focusInEvent( QFocusEvent* e )
+{
+   updateSourceMask();
+   QWidget::focusInEvent(e);
+}
+
+int MergeResultWindow::convertToLine( int y )
+{
+   const QFontMetrics& fm = fontMetrics();
+   int fontHeight = fm.lineSpacing();
+   int topLineYOffset = 0;
+
+   int yOffset = topLineYOffset - m_firstLine * fontHeight;
+
+   int line = min2( ( y - yOffset ) / fontHeight, m_totalSize-1 );
+   return line;
+}
+
+void MergeResultWindow::mousePressEvent ( QMouseEvent* e )
+{
+   m_bCursorOn = true;
+
+   int xOffset = getTextXOffset();
+
+   int line = convertToLine( e->y() );
+   QString s = getString(line);
+   QTextLayout textLayout( s, font(), this );
+   getTextLayoutForLine( line, s, textLayout );
+   int pos = textLayout.lineAt(0).xToCursor( e->x() - textLayout.position().x() );
+
+   bool bLMB = e->button() == Qt::LeftButton;
+   bool bMMB = e->button() == Qt::MidButton;
+   bool bRMB = e->button() == Qt::RightButton;
+
+   if ( (bLMB && (e->x()< xOffset) ) || bRMB )       // Fast range selection
+   {
+      m_cursorXPos = 0;
+      m_cursorOldXPixelPos = 0;
+      m_cursorYPos = max2(line,0);
+      int l = 0;
+      MergeLineList::iterator i = m_mergeLineList.begin();
+      for(i = m_mergeLineList.begin();i!=m_mergeLineList.end(); ++i)
+      {
+         if (l==line)
+            break;
+
+         l += i->mergeEditLineList.size();
+         if (l>line)
+            break;
+      }
+      m_selection.reset();     // Disable current selection
+
+      m_bCursorOn = true;
+      setFastSelector( i );
+
+      if (bRMB)
+      {
+         showPopupMenu( QCursor::pos() );
+      }
+   }
+   else if ( bLMB )                  // Normal cursor placement
+   {      
+      pos = max2(pos,0);
+      line = max2(line,0);
+      if ( e->QInputEvent::modifiers() & Qt::ShiftModifier )
+      {
+         if (m_selection.firstLine==-1)
+            m_selection.start( line, pos );
+         m_selection.end( line, pos );
+      }
+      else
+      {
+         // Selection
+         m_selection.reset();
+         m_selection.start( line, pos );
+         m_selection.end( line, pos );
+      }
+      m_cursorXPos = pos;
+      m_cursorXPixelPos = textLayout.lineAt(0).cursorToX( pos );
+      if ( m_pOptions->m_bRightToLeftLanguage )
+         m_cursorXPixelPos += textLayout.position().x() - m_horizScrollOffset;
+      m_cursorOldXPixelPos = m_cursorXPixelPos;
+      m_cursorYPos = line;
+
+      update();
+      //showStatusLine( line, m_winIdx, m_pFilename, m_pDiff3LineList, m_pStatusBar );
+   }
+   else if ( bMMB )        // Paste clipboard
+   {
+      pos = max2(pos,0);
+      line = max2(line,0);
+
+      m_selection.reset();
+      m_cursorXPos = pos;
+      m_cursorOldXPixelPos = m_cursorXPixelPos;
+      m_cursorYPos = line;
+
+      pasteClipboard( true );
+   }
+}
+
+void MergeResultWindow::mouseDoubleClickEvent( QMouseEvent* e )
+{
+   if ( e->button() == Qt::LeftButton )
+   {
+      int line = convertToLine( e->y() );
+      QString s = getString(line);
+      QTextLayout textLayout( s, font(), this );
+      getTextLayoutForLine( line, s, textLayout );
+      int pos = textLayout.lineAt(0).xToCursor( e->x() - textLayout.position().x() );
+      m_cursorXPos = pos;
+      m_cursorOldXPixelPos = m_cursorXPixelPos;
+      m_cursorYPos = line;
+
+      if ( !s.isEmpty() )
+      {
+         int pos1, pos2;
+
+         calcTokenPos( s, pos, pos1, pos2, m_pOptions->m_tabSize );
+
+         resetSelection();
+         m_selection.start( line, convertToPosOnScreen( s, pos1, m_pOptions->m_tabSize ) );
+         m_selection.end( line, convertToPosOnScreen( s, pos2, m_pOptions->m_tabSize ) );
+
+         update();
+         // emit selectionEnd() happens in the mouseReleaseEvent.
+      }
+   }
+}
+
+void MergeResultWindow::mouseReleaseEvent ( QMouseEvent * e )
+{
+   if ( e->button() == Qt::LeftButton )
+   {
+      if (m_delayedDrawTimer)
+      {
+         killTimer(m_delayedDrawTimer);
+         m_delayedDrawTimer = 0;
+      }
+
+      if (m_selection.firstLine != -1 )
+      {
+         emit selectionEnd();
+      }
+   }
+}
+
+void MergeResultWindow::mouseMoveEvent ( QMouseEvent * e )
+{
+   int line = convertToLine( e->y() );
+   QString s = getString(line);
+   QTextLayout textLayout( s, font(), this );
+   getTextLayoutForLine( line, s, textLayout );
+   int pos = textLayout.lineAt(0).xToCursor( e->x() - textLayout.position().x() );
+   m_cursorXPos = pos;
+   m_cursorOldXPixelPos = m_cursorXPixelPos;
+   m_cursorYPos = line;
+   if (m_selection.firstLine != -1 )
+   {
+      m_selection.end( line, pos );
+      myUpdate(0);
+
+      //showStatusLine( line, m_winIdx, m_pFilename, m_pDiff3LineList, m_pStatusBar );
+
+      // Scroll because mouse moved out of the window
+      const QFontMetrics& fm = fontMetrics();
+      int fontWidth = fm.width('0');
+      int topLineYOffset = 0;
+      int deltaX=0;
+      int deltaY=0;
+      if ( ! m_pOptions->m_bRightToLeftLanguage )
+      {
+         if ( e->x() < getTextXOffset() )              deltaX=-1;
+         if ( e->x() > width()     )                   deltaX=+1;
+      }
+      else
+      {
+         if ( e->x() > width()-1-getTextXOffset() )   deltaX=-1;
+         if ( e->x() < fontWidth )                    deltaX=+1;
+      }
+      if ( e->y() < topLineYOffset )    deltaY=-1;
+      if ( e->y() > height() )          deltaY=+1;
+      m_scrollDeltaX = deltaX;
+      m_scrollDeltaY = deltaY;
+      if ( deltaX != 0 || deltaY!= 0)
+      {
+         emit scroll( deltaX, deltaY );
+      }
+   }
+}
+
+
+void MergeResultWindow::slotCursorUpdate()
+{
+   m_cursorTimer.stop();
+   m_bCursorOn = !m_bCursorOn;
+
+   if ( isVisible() )
+   {
+      m_bCursorUpdate = true;
+
+      const QFontMetrics& fm = fontMetrics();
+      int topLineYOffset = 0;
+      int yOffset = ( m_cursorYPos - m_firstLine ) * fm.lineSpacing() + topLineYOffset;
+
+      repaint( 0, yOffset, width(), fm.lineSpacing()+2 );
+
+      m_bCursorUpdate=false;
+   }
+
+   m_cursorTimer.start(500);
+}
+
+
+void MergeResultWindow::wheelEvent( QWheelEvent* e )
+{
+    int d = -e->delta()*QApplication::wheelScrollLines()/120;
+    e->accept();
+    scroll( 0, min2(d, getNofVisibleLines()) );
+}
+
+bool MergeResultWindow::event( QEvent* e )
+{
+   if ( e->type()==QEvent::KeyPress )
+   {
+      QKeyEvent *ke = static_cast<QKeyEvent *>(e);
+      if (ke->key() == Qt::Key_Tab) 
+      {
+          // special tab handling here to avoid moving focus
+          keyPressEvent( ke );
+          return true;
+      }
+   }
+   return QWidget::event(e);
+}
+void MergeResultWindow::keyPressEvent( QKeyEvent* e )
+{
+   int y = m_cursorYPos;
+   MergeLineList::iterator mlIt;
+   MergeEditLineList::iterator melIt;
+   calcIteratorFromLineNr( y, mlIt, melIt );
+
+   QString str = melIt->getString( this );
+   int x = convertToPosInText( str, m_cursorXPos, m_pOptions->m_tabSize );
+
+   QTextLayout textLayoutOrig( str, font(), this );
+   getTextLayoutForLine( y, str, textLayoutOrig );
+
+   bool bCtrl  = ( e->QInputEvent::modifiers() & Qt::ControlModifier ) != 0 ;
+   bool bShift = ( e->QInputEvent::modifiers() & Qt::ShiftModifier   ) != 0 ;
+   #ifdef _WIN32
+   bool bAlt   = ( e->QInputEvent::modifiers() & Qt::AltModifier     ) != 0 ;
+   if ( bCtrl && bAlt ){ bCtrl=false; bAlt=false; }  // AltGr-Key pressed.
+   #endif
+
+   bool bYMoveKey = false;
+   // Special keys
+   switch ( e->key() )
+   {
+      case  Qt::Key_Escape:       break;
+      //case  Key_Tab:          break;
+      case  Qt::Key_Backtab:      break;
+      case  Qt::Key_Delete:
+      {
+         if ( deleteSelection2( str, x, y, mlIt, melIt )) break;
+         if( !melIt->isEditableText() )  break;
+         if (x>=(int)str.length())
+         {
+            if ( y<m_totalSize-1 )
+            {
+               setModified();
+               MergeLineList::iterator mlIt1;
+               MergeEditLineList::iterator melIt1;
+               calcIteratorFromLineNr( y+1, mlIt1, melIt1 );
+               if ( melIt1->isEditableText() )
+               {
+                  QString s2 = melIt1->getString( this );
+                  melIt->setString( str + s2 );
+
+                  // Remove the line
+                  if ( mlIt1->mergeEditLineList.size()>1 )
+                     mlIt1->mergeEditLineList.erase( melIt1 );
+                  else
+                     melIt1->setRemoved();
+               }
+            }
+         }
+         else
+         {
+            QString s = str.left(x);
+            s += str.mid( x+1 );
+            melIt->setString( s );
+            setModified();
+         }
+         break;
+      }
+      case  Qt::Key_Backspace:
+      {
+         if ( deleteSelection2( str, x, y, mlIt, melIt )) break;
+         if( !melIt->isEditableText() )  break;
+         if (x==0)
+         {
+            if ( y>0 )
+            {
+               setModified();
+               MergeLineList::iterator mlIt1;
+               MergeEditLineList::iterator melIt1;
+               calcIteratorFromLineNr( y-1, mlIt1, melIt1 );
+               if ( melIt1->isEditableText() )
+               {
+                  QString s1 = melIt1->getString( this );
+                  melIt1->setString( s1 + str );
+
+                  // Remove the previous line
+                  if ( mlIt->mergeEditLineList.size()>1 )
+                     mlIt->mergeEditLineList.erase( melIt );
+                  else
+                     melIt->setRemoved();
+
+                  --y;
+                  x=str.length();
+               }
+            }
+         }
+         else
+         {
+            QString s = str.left( x-1 );
+            s += str.mid( x );
+            --x;
+            melIt->setString( s );
+            setModified();
+         }
+         break;
+      }
+      case  Qt::Key_Return:
+      case  Qt::Key_Enter:
+      {
+         if( !melIt->isEditableText() )  break;
+         deleteSelection2( str, x, y, mlIt, melIt );
+         setModified();
+         QString indentation;
+         if ( m_pOptions->m_bAutoIndentation )
+         {  // calc last indentation
+            MergeLineList::iterator mlIt1 = mlIt;
+            MergeEditLineList::iterator melIt1 = melIt;
+            for(;;) {
+               const QString s = melIt1->getString(this);
+               if ( !s.isEmpty() ) {
+                  int i;
+                  for( i=0; i<s.length(); ++i ){ if(s[i]!=' ' && s[i]!='\t') break; }
+                  if (i<s.length()) {
+                     indentation = s.left(i);
+                     break;
+                  }
+               }
+               // Go back one line
+               if ( melIt1 != mlIt1->mergeEditLineList.begin() )
+                  --melIt1;
+               else
+               {
+                  if ( mlIt1 == m_mergeLineList.begin() ) break;
+                  --mlIt1;
+                  melIt1 = mlIt1->mergeEditLineList.end();
+                  --melIt1;
+               }
+            }
+         }
+         MergeEditLine mel(mlIt->id3l);  // Associate every mel with an id3l, even if not really valid.
+         mel.setString( indentation + str.mid(x) );
+
+         if ( x<(int)str.length() ) // Cut off the old line.
+         {
+            // Since ps possibly points into melIt->str, first copy it into a temporary.
+            QString temp = str.left(x);
+            melIt->setString( temp );
+         }
+
+         ++melIt;
+         mlIt->mergeEditLineList.insert( melIt, mel );
+         x = indentation.length();
+         ++y;
+         break;
+      }
+      case  Qt::Key_Insert:   m_bInsertMode = !m_bInsertMode;    break;
+      case  Qt::Key_Pause:        break;
+      case  Qt::Key_Print:        break;
+      case  Qt::Key_SysReq:       break;
+      case  Qt::Key_Home:     x=0;        if(bCtrl){y=0;      }  break;   // cursor movement
+      case  Qt::Key_End:      x=INT_MAX;  if(bCtrl){y=INT_MAX;}  break;
+
+      case  Qt::Key_Left:
+      case  Qt::Key_Right:
+         if ( (e->key()==Qt::Key_Left) != m_pOptions->m_bRightToLeftLanguage )
+         {
+            if ( !bCtrl )
+            {
+               int newX = textLayoutOrig.previousCursorPosition(x);
+               if( newX == x && y>0 ){--y; x=INT_MAX;}
+               else                  { x = newX; }
+            }
+            else
+            {
+               while( x>0 && (str[x-1]==' ' || str[x-1]=='\t') )
+               {
+                  int newX = textLayoutOrig.previousCursorPosition(x);
+                  if ( newX==x ) break;
+                  x = newX;
+               }
+               while( x>0  &&  (str[x-1]!=' ' && str[x-1]!='\t') )
+               {
+                  int newX = textLayoutOrig.previousCursorPosition(x);
+                  if ( newX==x ) break;
+                  x = newX;
+               }
+            }
+         }
+         else
+         {
+            if ( !bCtrl )
+            {
+               int newX = textLayoutOrig.nextCursorPosition(x);
+               if( newX == x && y<m_totalSize-1){ ++y; x=0; }
+               else                             { x = newX; }
+            }
+            else
+            {
+               while( x<(int)str.length()  &&  (str[x]==' ' || str[x]=='\t') )
+               {
+                  int newX = textLayoutOrig.nextCursorPosition(x);
+                  if ( newX==x ) break;
+                  x = newX;
+               }
+               while( x<(int)str.length()  &&  (str[x]!=' ' && str[x]!='\t') )
+               {
+                  int newX = textLayoutOrig.nextCursorPosition(x);
+                  if ( newX==x ) break;
+                  x = newX;
+               }
+            }
+         }
+         break;
+
+      case  Qt::Key_Up:       if (!bCtrl){ --y;                     bYMoveKey=true; }  break;
+      case  Qt::Key_Down:     if (!bCtrl){ ++y;                     bYMoveKey=true; }  break;
+      case  Qt::Key_PageUp:   if (!bCtrl){ y-=getNofVisibleLines(); bYMoveKey=true; }  break;
+      case  Qt::Key_PageDown: if (!bCtrl){ y+=getNofVisibleLines(); bYMoveKey=true; }  break;
+      default:
+      {
+         QString t = e->text();
+         if( t.isEmpty() || bCtrl )
+         {  e->ignore();       return; }
+         else
+         {
+            if( bCtrl )
+            {
+               e->ignore();       return;
+            }
+            else
+            {
+               if( !melIt->isEditableText() )  break;
+               deleteSelection2( str, x, y, mlIt, melIt );
+
+               setModified();
+               // Characters to insert
+               QString s=str;
+               if ( t[0]=='\t' && m_pOptions->m_bReplaceTabs )
+               {
+                  int spaces = (m_cursorXPos / m_pOptions->m_tabSize + 1)*m_pOptions->m_tabSize - m_cursorXPos;
+                  t.fill( ' ', spaces );
+               }
+               if ( m_bInsertMode )
+                  s.insert( x, t );
+               else
+                  s.replace( x, t.length(), t );
+
+               melIt->setString( s );
+               x += t.length();
+               bShift = false;
+            }
+         }
+      }
+   }
+
+   y = minMaxLimiter( y, 0, m_totalSize-1 );
+
+   calcIteratorFromLineNr( y, mlIt, melIt );
+   str = melIt->getString( this );
+
+   x = minMaxLimiter( x, 0, (int)str.length() );
+
+   int newFirstLine = m_firstLine;
+   int newHorizScrollOffset = m_horizScrollOffset;
+
+   if ( y<m_firstLine )
+      newFirstLine = y;
+   else if ( y > m_firstLine + getNofVisibleLines() )
+      newFirstLine = y - getNofVisibleLines();
+
+
+   QTextLayout textLayout( str, font(), this );
+   getTextLayoutForLine( m_cursorYPos, str, textLayout );
+
+   // try to preserve cursor x pixel position when moving to another line
+   if (bYMoveKey)
+   {
+      if ( m_pOptions->m_bRightToLeftLanguage )
+         x = textLayout.lineAt(0).xToCursor( m_cursorOldXPixelPos - (textLayout.position().x() - m_horizScrollOffset));
+      else
+         x = textLayout.lineAt(0).xToCursor( m_cursorOldXPixelPos );
+   }
+
+   m_cursorXPixelPos = textLayout.lineAt(0).cursorToX( x );
+   int hF = 1; // horizontal factor
+   if ( m_pOptions->m_bRightToLeftLanguage )
+   {
+      m_cursorXPixelPos += textLayout.position().x() - m_horizScrollOffset;
+      hF=-1;
+   }
+   int cursorWidth = 5;
+   if ( m_cursorXPixelPos < hF * m_horizScrollOffset )
+      newHorizScrollOffset = hF * m_cursorXPixelPos;
+   else if ( m_cursorXPixelPos > hF * m_horizScrollOffset + getVisibleTextAreaWidth() - cursorWidth )
+      newHorizScrollOffset = hF * (m_cursorXPixelPos - (getVisibleTextAreaWidth() - cursorWidth ));
+
+   int newCursorX = x;
+   if ( bShift )
+   {
+      if (m_selection.firstLine==-1)
+         m_selection.start( m_cursorYPos, m_cursorXPos );
+
+      m_selection.end( y, newCursorX );
+   }
+   else
+      m_selection.reset();
+
+   m_cursorYPos = y;
+   m_cursorXPos = newCursorX;
+
+   // TODO if width of current line exceeds the current maximum width then force recalculating the scrollbars
+   if ( textLayout.maximumWidth()>getMaxTextWidth() )
+   {
+      m_maxTextWidth = textLayout.maximumWidth();
+      emit resizeSignal();
+   }
+   if ( ! bYMoveKey )
+      m_cursorOldXPixelPos = m_cursorXPixelPos;
+
+   m_bCursorOn = true;
+   m_cursorTimer.start(500);
+
+   update();
+   if ( newFirstLine!=m_firstLine  ||  newHorizScrollOffset!=m_horizScrollOffset )
+   {
+      scroll( newHorizScrollOffset-m_horizScrollOffset, newFirstLine-m_firstLine );
+      return;
+   }
+}
+
+void MergeResultWindow::calcIteratorFromLineNr(
+   int line,
+   MergeResultWindow::MergeLineList::iterator& mlIt,
+   MergeResultWindow::MergeEditLineList::iterator& melIt
+   )
+{
+   for( mlIt = m_mergeLineList.begin(); mlIt!=m_mergeLineList.end(); ++mlIt)
+   {
+      MergeLine& ml = *mlIt;
+      if ( line > ml.mergeEditLineList.size() )
+      {
+         line -= ml.mergeEditLineList.size();
+      }
+      else
+      {
+         for( melIt = ml.mergeEditLineList.begin(); melIt != ml.mergeEditLineList.end(); ++melIt )
+         {
+            --line;
+            if (line<0) return;
+         }
+      }
+   }
+   assert(false);
+}
+
+
+QString MergeResultWindow::getSelection()
+{
+   QString selectionString;
+
+   int line = 0;
+   MergeLineList::iterator mlIt = m_mergeLineList.begin();
+   for(mlIt = m_mergeLineList.begin();mlIt!=m_mergeLineList.end(); ++mlIt)
+   {
+      MergeLine& ml = *mlIt;
+      MergeEditLineList::iterator melIt;
+      for( melIt = ml.mergeEditLineList.begin(); melIt != ml.mergeEditLineList.end(); ++melIt )
+      {
+         MergeEditLine& mel = *melIt;
+
+         if ( m_selection.lineWithin(line) )
+         {
+            int outPos = 0;
+            if (mel.isEditableText())
+            {
+               const QString str = mel.getString( this );
+
+               // Consider tabs
+
+               for( int i=0; i<str.length(); ++i )
+               {
+                  int spaces = 1;
+                  if ( str[i]=='\t' )
+                  {
+                     spaces = tabber( outPos, m_pOptions->m_tabSize );
+                  }
+
+                  if( m_selection.within( line, outPos ) )
+                  {
+                     selectionString += str[i];
+                  }
+
+                  outPos += spaces;
+               }
+            }
+            else if ( mel.isConflict() )
+            {
+               selectionString += i18n("<Merge Conflict>");
+            }
+
+            if( m_selection.within( line, outPos ) )
+            {
+               #ifdef _WIN32
+               selectionString += '\r';
+               #endif
+               selectionString += '\n';
+            }
+         }
+
+         ++line;
+      }
+   }
+
+   return selectionString;
+}
+
+bool MergeResultWindow::deleteSelection2( QString& s, int& x, int& y,
+                MergeLineList::iterator& mlIt, MergeEditLineList::iterator& melIt )
+{
+   if (m_selection.firstLine!=-1  &&  m_selection.bSelectionContainsData )
+   {
+      deleteSelection();
+      y = m_cursorYPos;
+      calcIteratorFromLineNr( y, mlIt, melIt );
+      s = melIt->getString( this );
+      x = convertToPosInText( s, m_cursorXPos, m_pOptions->m_tabSize );
+      return true;
+   }
+   return false;
+}
+
+void MergeResultWindow::deleteSelection()
+{
+   if ( m_selection.firstLine==-1 ||  !m_selection.bSelectionContainsData )
+   {
+      return;
+   }
+   setModified();
+
+   int line = 0;
+   MergeLineList::iterator mlItFirst;
+   MergeEditLineList::iterator melItFirst;
+   QString firstLineString;
+
+   int firstLine = -1;
+   int lastLine = -1;
+
+   MergeLineList::iterator mlIt;
+   for(mlIt = m_mergeLineList.begin();mlIt!=m_mergeLineList.end(); ++mlIt)
+   {
+      MergeLine& ml = *mlIt;
+      MergeEditLineList::iterator melIt;
+      for( melIt = ml.mergeEditLineList.begin(); melIt != ml.mergeEditLineList.end(); ++melIt )
+      {
+         MergeEditLine& mel = *melIt;
+
+         if ( mel.isEditableText()  &&  m_selection.lineWithin(line) )
+         {
+            if ( firstLine==-1 )
+               firstLine = line;
+            lastLine = line;
+         }
+
+         ++line;
+      }
+   }
+
+   if ( firstLine == -1 )
+   {
+      return; // Nothing to delete.
+   }
+
+   line = 0;
+   for(mlIt = m_mergeLineList.begin();mlIt!=m_mergeLineList.end(); ++mlIt)
+   {
+      MergeLine& ml = *mlIt;
+      MergeEditLineList::iterator melIt, melIt1;
+      for( melIt = ml.mergeEditLineList.begin(); melIt != ml.mergeEditLineList.end(); )
+      {
+         MergeEditLine& mel = *melIt;
+         melIt1 = melIt;
+         ++melIt1;
+
+         if ( mel.isEditableText()  &&  m_selection.lineWithin(line) )
+         {
+            QString lineString = mel.getString( this );
+
+            int firstPosInLine = m_selection.firstPosInLine(line);
+            int lastPosInLine = m_selection.lastPosInLine(line);
+
+            if ( line==firstLine )
+            {
+               mlItFirst = mlIt;
+               melItFirst = melIt;
+               int pos = convertToPosInText( lineString, firstPosInLine, m_pOptions->m_tabSize );
+               firstLineString = lineString.left( pos );
+            }
+
+            if ( line==lastLine )
+            {
+               // This is the last line in the selection
+               int pos = convertToPosInText( lineString, lastPosInLine, m_pOptions->m_tabSize );
+               firstLineString += lineString.mid( pos ); // rest of line
+               melItFirst->setString( firstLineString );
+            }
+
+            if ( line!=firstLine )
+            {
+               // Remove the line
+               if ( mlIt->mergeEditLineList.size()>1 )
+                  mlIt->mergeEditLineList.erase( melIt );
+               else
+                  melIt->setRemoved();
+            }
+         }
+
+         ++line;
+         melIt = melIt1;
+      }
+   }
+
+   m_cursorYPos = m_selection.beginLine();
+   m_cursorXPos = m_selection.beginPos();
+   m_cursorOldXPixelPos = m_cursorXPixelPos;
+
+   m_selection.reset();
+}
+
+void MergeResultWindow::pasteClipboard( bool bFromSelection )
+{
+   if (m_selection.firstLine != -1 )
+      deleteSelection();
+
+   setModified();
+
+   int y = m_cursorYPos;
+   MergeLineList::iterator mlIt;
+   MergeEditLineList::iterator melIt, melItAfter;
+   calcIteratorFromLineNr( y, mlIt, melIt );
+   melItAfter = melIt;
+   ++melItAfter;
+   QString str = melIt->getString( this );
+   int x = convertToPosInText( str, m_cursorXPos, m_pOptions->m_tabSize );
+
+   if ( !QApplication::clipboard()->supportsSelection() )
+      bFromSelection = false;
+
+   QString clipBoard = QApplication::clipboard()->text( bFromSelection ? QClipboard::Selection : QClipboard::Clipboard );
+
+   QString currentLine = str.left(x);
+   QString endOfLine = str.mid(x);
+   int i;
+   int len = clipBoard.length();
+   for( i=0; i<len; ++i )
+   {
+      QChar c = clipBoard[i];
+      if ( c == '\r' ) continue;
+      if ( c == '\n' )
+      {
+         melIt->setString( currentLine );
+         MergeEditLine mel(mlIt->id3l); // Associate every mel with an id3l, even if not really valid.
+         melIt = mlIt->mergeEditLineList.insert( melItAfter, mel );
+         currentLine = "";
+         x=0;
+         ++y;
+      }
+      else
+      {
+         currentLine += c;
+         ++x;
+      }
+   }
+
+   currentLine += endOfLine;
+   melIt->setString( currentLine );
+
+   m_cursorYPos = y;
+   m_cursorXPos = convertToPosOnScreen( currentLine, x, m_pOptions->m_tabSize );
+   m_cursorOldXPixelPos = m_cursorXPixelPos;
+
+   update();
+}
+
+void MergeResultWindow::resetSelection()
+{
+   m_selection.reset();
+   update();
+}
+
+void MergeResultWindow::setModified(bool bModified)
+{
+   if (bModified != m_bModified)
+   {
+      m_bModified = bModified;
+      emit modifiedChanged(m_bModified);
+   }
+}
+
+/// Saves and returns true when successful.
+bool MergeResultWindow::saveDocument( const QString& fileName, QTextCodec* pEncoding, e_LineEndStyle eLineEndStyle )
+{
+   // Are still conflicts somewhere?
+   if ( getNrOfUnsolvedConflicts()>0 )
+   {
+      KMessageBox::error( this,
+         i18n("Not all conflicts are solved yet.\n"
+              "File not saved.\n"),
+         i18n("Conflicts Left"));
+      return false;
+   }
+
+   if ( eLineEndStyle==eLineEndStyleConflict || eLineEndStyle==eLineEndStyleUndefined )
+   {
+      KMessageBox::error( this,
+         i18n("There is a line end style conflict. Please choose the line end style manually.\n"
+              "File not saved.\n"),
+         i18n("Conflicts Left"));
+      return false;
+   }
+
+   update();
+
+   FileAccess file( fileName, true /*bWantToWrite*/ );
+   if ( m_pOptions->m_bDmCreateBakFiles && file.exists() )
+   {
+      bool bSuccess = file.createBackup(".orig");
+      if ( !bSuccess )
+      {
+         KMessageBox::error( this, file.getStatusText() + i18n("\n\nCreating backup failed. File not saved."), i18n("File Save Error") );
+         return false;
+      }
+   }
+
+   QByteArray dataArray;
+   QTextStream textOutStream(&dataArray, QIODevice::WriteOnly);
+   if ( pEncoding->name()=="UTF-8" )
+      textOutStream.setGenerateByteOrderMark( false ); // Shouldn't be necessary. Bug in Qt or docs
+   else
+      textOutStream.setGenerateByteOrderMark( true ); // Only for UTF-16
+   textOutStream.setCodec( pEncoding );
+
+   int line = 0;
+   MergeLineList::iterator mlIt = m_mergeLineList.begin();
+   for(mlIt = m_mergeLineList.begin();mlIt!=m_mergeLineList.end(); ++mlIt)
+   {
+      MergeLine& ml = *mlIt;
+      MergeEditLineList::iterator melIt;
+      for( melIt = ml.mergeEditLineList.begin(); melIt != ml.mergeEditLineList.end(); ++melIt )
+      {
+         MergeEditLine& mel = *melIt;
+
+         if ( mel.isEditableText() )
+         {
+            QString str = mel.getString( this );
+
+            if (line>0) // Prepend line feed, but not for first line
+            {
+               if ( eLineEndStyle == eLineEndStyleDos )
+               {   str.prepend("\r\n"); }
+               else
+               {   str.prepend("\n");   }
+            }
+
+            textOutStream << str;
+            ++line;
+         }
+      }
+   }
+   textOutStream.flush();
+   bool bSuccess = file.writeFile( dataArray.data(), dataArray.size() );
+   if ( ! bSuccess )
+   {
+      KMessageBox::error( this, i18n("Error while writing."), i18n("File Save Error") );
+      return false;
+   }
+
+   setModified( false );
+   update();
+
+   return true;
+}
+
+QString MergeResultWindow::getString( int lineIdx )
+{
+   MergeResultWindow::MergeLineList::iterator mlIt;
+   MergeResultWindow::MergeEditLineList::iterator melIt;
+   calcIteratorFromLineNr( lineIdx, mlIt, melIt );
+   QString s = melIt->getString( this );
+   return s;
+}
+
+bool MergeResultWindow::findString( const QString& s, int& d3vLine, int& posInLine, bool bDirDown, bool bCaseSensitive )
+{
+   int it = d3vLine;
+   int endIt = bDirDown ? getNofLines() : -1;
+   int step =  bDirDown ? 1 : -1;
+   int startPos = posInLine;
+
+   for( ; it!=endIt; it+=step )
+   {
+      QString line = getString( it );
+      if ( !line.isEmpty() )
+      {
+         int pos = line.indexOf( s, startPos, bCaseSensitive ? Qt::CaseSensitive : Qt::CaseInsensitive );
+         if ( pos != -1 )
+         {
+            d3vLine = it;
+            posInLine = pos;
+            return true;
+         }
+
+         startPos = 0;
+      }
+   }
+   return false;
+}
+
+void MergeResultWindow::setSelection( int firstLine, int startPos, int lastLine, int endPos )
+{
+   if ( lastLine >= getNofLines() )
+   {
+      lastLine = getNofLines()-1;
+      QString s = getString( lastLine );
+      endPos = s.length();
+   }
+   m_selection.reset();
+   m_selection.start( firstLine, convertToPosOnScreen( getString(firstLine), startPos, m_pOptions->m_tabSize ) );
+   m_selection.end( lastLine, convertToPosOnScreen( getString(lastLine), endPos, m_pOptions->m_tabSize ) );
+   update();
+}
+
+Overview::Overview( Options* pOptions )
+//: QWidget( pParent, 0, Qt::WNoAutoErase )
+{
+   m_pDiff3LineList = 0;
+   m_pOptions = pOptions;
+   m_bTripleDiff = false;
+   m_eOverviewMode = eOMNormal;
+   m_nofLines = 1;
+   m_bPaintingAllowed = false;
+   setFixedWidth(20);
+}
+
+void Overview::init( Diff3LineList* pDiff3LineList, bool bTripleDiff )
+{
+   m_pDiff3LineList = pDiff3LineList;
+   m_bTripleDiff = bTripleDiff;
+   m_pixmap = QPixmap( QSize(0,0) );   // make sure that a redraw happens
+   update();
+}
+
+void Overview::reset()
+{
+   m_pDiff3LineList = 0;
+}
+
+void Overview::slotRedraw()
+{
+   m_pixmap = QPixmap( QSize(0,0) );   // make sure that a redraw happens
+   update();
+}
+
+void Overview::setRange( int firstLine, int pageHeight )
+{
+   m_firstLine = firstLine;
+   m_pageHeight = pageHeight;
+   update();
+}
+void Overview::setFirstLine( int firstLine )
+{
+   m_firstLine = firstLine;
+   update();
+}
+
+void Overview::setOverviewMode( e_OverviewMode eOverviewMode )
+{
+   m_eOverviewMode = eOverviewMode;
+   slotRedraw();
+}
+
+Overview::e_OverviewMode Overview::getOverviewMode()
+{
+   return m_eOverviewMode;
+}
+
+void Overview::mousePressEvent( QMouseEvent* e )
+{
+   int h = height()-1;
+   int h1 = h * m_pageHeight / max2(1,m_nofLines)+3;
+   if ( h>0 )
+      emit setLine( ( e->y() - h1/2 )*m_nofLines/h );
+}
+
+void Overview::mouseMoveEvent( QMouseEvent* e )
+{
+   mousePressEvent(e);
+}
+
+void Overview::setPaintingAllowed( bool bAllowPainting )
+{
+   if (m_bPaintingAllowed != bAllowPainting)
+   {
+      m_bPaintingAllowed = bAllowPainting;
+      if ( m_bPaintingAllowed ) update();
+      else reset();
+   }
+}
+
+void Overview::drawColumn( QPainter& p, e_OverviewMode eOverviewMode, int x, int w, int h, int nofLines )
+{
+   p.setPen(Qt::black);
+   p.drawLine( x, 0, x, h );
+
+   if (nofLines==0) return;
+   
+   int line = 0;
+   int oldY = 0;
+   int oldConflictY = -1;
+   int wrapLineIdx=0;
+   Diff3LineList::const_iterator i;
+   for( i = m_pDiff3LineList->begin(); i!= m_pDiff3LineList->end();  )
+   {
+      const Diff3Line& d3l = *i;
+      int y = h * (line+1) / nofLines;
+      e_MergeDetails md;
+      bool bConflict;
+      bool bLineRemoved;
+      int src;
+      mergeOneLine( d3l, md, bConflict, bLineRemoved, src, !m_bTripleDiff );
+
+      QColor c = m_pOptions->m_bgColor;
+      bool bWhiteSpaceChange = false;
+      //if( bConflict )  c=m_pOptions->m_colorForConflict;
+      //else
+      if ( eOverviewMode==eOMNormal )
+      {
+         switch( md )
+         {
+         case eDefault:
+         case eNoChange:
+                        c = m_pOptions->m_bgColor;
+                        break;
+
+         case eBAdded:
+         case eBDeleted:
+         case eBChanged:
+                        c = bConflict ? m_pOptions->m_colorForConflict : m_pOptions->m_colorB;
+                        bWhiteSpaceChange = d3l.bAEqB || (d3l.bWhiteLineA && d3l.bWhiteLineB);
+                        break;
+
+         case eCAdded:
+         case eCDeleted:
+         case eCChanged:
+                        bWhiteSpaceChange = d3l.bAEqC || (d3l.bWhiteLineA && d3l.bWhiteLineC);
+                        c = bConflict ? m_pOptions->m_colorForConflict : m_pOptions->m_colorC;
+                        break;
+
+         case eBCChanged:         // conflict
+         case eBCChangedAndEqual: // possible conflict
+         case eBCDeleted:         // possible conflict
+         case eBChanged_CDeleted: // conflict
+         case eCChanged_BDeleted: // conflict
+         case eBCAdded:           // conflict
+         case eBCAddedAndEqual:   // possible conflict
+                     c=m_pOptions->m_colorForConflict;
+                     break;
+         default: assert(false); break;
+         }
+      }
+      else if ( eOverviewMode==eOMAvsB )
+      {
+         switch( md )
+         {
+         case eDefault:
+         case eNoChange:
+         case eCAdded:
+         case eCDeleted:
+         case eCChanged:  break;
+         default:         c = m_pOptions->m_colorForConflict;
+                          bWhiteSpaceChange = d3l.bAEqB || (d3l.bWhiteLineA && d3l.bWhiteLineB);
+                          break;
+         }
+      }
+      else if ( eOverviewMode==eOMAvsC )
+      {
+         switch( md )
+         {
+         case eDefault:
+         case eNoChange:
+         case eBAdded:
+         case eBDeleted:
+         case eBChanged:  break;
+         default:         c = m_pOptions->m_colorForConflict;
+                          bWhiteSpaceChange = d3l.bAEqC || (d3l.bWhiteLineA && d3l.bWhiteLineC);
+                          break;
+         }
+      }
+      else if ( eOverviewMode==eOMBvsC )
+      {
+         switch( md )
+         {
+         case eDefault:
+         case eNoChange:
+         case eBCChangedAndEqual:
+         case eBCDeleted:      
+         case eBCAddedAndEqual:   break;
+         default:                 c=m_pOptions->m_colorForConflict;
+                                  bWhiteSpaceChange = d3l.bBEqC || (d3l.bWhiteLineB && d3l.bWhiteLineC);
+                                  break;
+         }
+      }
+      
+      int x2 = x;
+      int w2 = w;
+      
+      if ( ! m_bTripleDiff )
+      {
+         if ( d3l.lineA == -1 && d3l.lineB>=0 )
+         {
+            c = m_pOptions->m_colorA;
+            x2 = w/2;
+            w2 = x2;
+         }
+         if ( d3l.lineA >= 0 && d3l.lineB==-1 )
+         {
+            c = m_pOptions->m_colorB;
+            w2 = w/2;
+         }
+      }
+
+      if (!bWhiteSpaceChange || m_pOptions->m_bShowWhiteSpace )
+      {
+         // Make sure that lines with conflict are not overwritten.
+         if (  c == m_pOptions->m_colorForConflict )
+         {
+            p.fillRect(x2+1, oldY, w2, max2(1,y-oldY), bWhiteSpaceChange ? QBrush(c,Qt::Dense4Pattern) : QBrush(c) );
+            oldConflictY = oldY;
+         }
+         else if ( c!=m_pOptions->m_bgColor  &&  oldY>oldConflictY )
+         {
+            p.fillRect(x2+1, oldY, w2, max2(1,y-oldY), bWhiteSpaceChange ? QBrush(c,Qt::Dense4Pattern) : QBrush(c) );
+         }
+      }
+
+      oldY = y;
+
+      ++line;
+      if ( m_pOptions->m_bWordWrap )
+      {
+         ++wrapLineIdx;
+         if(wrapLineIdx>=d3l.linesNeededForDisplay)
+         {
+            wrapLineIdx=0;
+            ++i;
+         }
+      }
+      else
+      {
+         ++i;
+      }
+   }
+}
+
+void Overview::paintEvent( QPaintEvent* )
+{
+   if (m_pDiff3LineList==0 || !m_bPaintingAllowed ) return;
+   int h = height()-1;
+   int w = width();
+   
+
+   if ( m_pixmap.size() != size() )
+   {
+      if ( m_pOptions->m_bWordWrap )
+      {
+         m_nofLines = 0;
+         Diff3LineList::const_iterator i;
+         for( i = m_pDiff3LineList->begin(); i!= m_pDiff3LineList->end(); ++i )
+         {
+            m_nofLines += i->linesNeededForDisplay;
+         }
+      }
+      else
+      {
+         m_nofLines = m_pDiff3LineList->size();
+      }
+   
+      m_pixmap = QPixmap( size() );
+
+      QPainter p(&m_pixmap);
+      p.fillRect( rect(), m_pOptions->m_bgColor );
+
+      if ( !m_bTripleDiff || m_eOverviewMode == eOMNormal )
+      {
+         drawColumn( p, eOMNormal, 0, w, h, m_nofLines );
+      }
+      else
+      {
+         drawColumn( p, eOMNormal, 0, w/2, h, m_nofLines );
+         drawColumn( p, m_eOverviewMode, w/2, w/2, h, m_nofLines );
+      }
+   }
+
+   QPainter painter( this );
+   painter.drawPixmap( 0,0, m_pixmap );
+
+   int y1 = h * m_firstLine / m_nofLines-1;
+   int h1 = h * m_pageHeight / m_nofLines+3;
+   painter.setPen(Qt::black);
+   painter.drawRect( 1, y1, w-1, h1 );
+}
+
+WindowTitleWidget::WindowTitleWidget(Options* pOptions)
+{
+   m_pOptions = pOptions;
+   setAutoFillBackground(true);
+
+   QHBoxLayout* pHLayout = new QHBoxLayout(this);
+   pHLayout->setMargin(2);
+   pHLayout->setSpacing(2);
+
+   m_pLabel = new QLabel(i18n("Output")+":");
+   pHLayout->addWidget( m_pLabel );
+
+   m_pFileNameLineEdit = new QLineEdit();
+   pHLayout->addWidget( m_pFileNameLineEdit, 6 );
+   m_pFileNameLineEdit->installEventFilter( this );
+   m_pFileNameLineEdit->setReadOnly( true );
+
+   //m_pBrowseButton = new QPushButton("...");
+   //pHLayout->addWidget( m_pBrowseButton, 0 );
+   //connect( m_pBrowseButton, SIGNAL(clicked()), this, SLOT(slotBrowseButtonClicked()));
+
+   m_pModifiedLabel = new QLabel(i18n("[Modified]"));
+   pHLayout->addWidget( m_pModifiedLabel );
+   m_pModifiedLabel->setMinimumSize( m_pModifiedLabel->sizeHint() );
+   m_pModifiedLabel->setText("");
+
+   pHLayout->addStretch(1);
+
+   m_pEncodingLabel = new QLabel(i18n("Encoding for saving")+":");
+   pHLayout->addWidget( m_pEncodingLabel );
+
+   m_pEncodingSelector = new QComboBox();
+   m_pEncodingSelector->setSizeAdjustPolicy( QComboBox::AdjustToContents );
+   pHLayout->addWidget( m_pEncodingSelector, 2 );
+   setEncodings(0,0,0);
+
+   m_pLineEndStyleLabel = new QLabel( i18n("Line end style:") );
+   pHLayout->addWidget( m_pLineEndStyleLabel );
+   m_pLineEndStyleSelector = new QComboBox();
+   m_pLineEndStyleSelector->setSizeAdjustPolicy( QComboBox::AdjustToContents );
+   pHLayout->addWidget( m_pLineEndStyleSelector );
+   setLineEndStyles(eLineEndStyleUndefined,eLineEndStyleUndefined,eLineEndStyleUndefined);
+}
+
+void WindowTitleWidget::setFileName( const QString& fileName )
+{
+   m_pFileNameLineEdit->setText( QDir::toNativeSeparators(fileName) );
+}
+
+QString WindowTitleWidget::getFileName()
+{
+   return m_pFileNameLineEdit->text();
+}
+
+//static QString getLineEndStyleName( e_LineEndStyle eLineEndStyle )
+//{
+//   if ( eLineEndStyle == eLineEndStyleDos )
+//      return "DOS";
+//   else if ( eLineEndStyle == eLineEndStyleUnix )
+//      return "Unix";
+//   return QString();
+//}
+
+void WindowTitleWidget::setLineEndStyles( e_LineEndStyle eLineEndStyleA, e_LineEndStyle eLineEndStyleB, e_LineEndStyle eLineEndStyleC)
+{
+   m_pLineEndStyleSelector->clear();
+   QString dosUsers;
+   if ( eLineEndStyleA == eLineEndStyleDos )
+      dosUsers += "A";
+   if ( eLineEndStyleB == eLineEndStyleDos )
+      dosUsers += (dosUsers.isEmpty() ? "" : ", ") + QString("B");
+   if ( eLineEndStyleC == eLineEndStyleDos )
+      dosUsers += (dosUsers.isEmpty() ? "" : ", ") + QString("C");
+   QString unxUsers;
+   if ( eLineEndStyleA == eLineEndStyleUnix )
+      unxUsers += "A";
+   if ( eLineEndStyleB == eLineEndStyleUnix )
+      unxUsers += (unxUsers.isEmpty() ? "" : ", ") + QString("B");
+   if ( eLineEndStyleC == eLineEndStyleUnix )
+      unxUsers += (unxUsers.isEmpty() ? "" : ", ") + QString("C");
+
+   m_pLineEndStyleSelector->addItem( i18n("Unix") + (unxUsers.isEmpty() ? QString("") : " (" + unxUsers + ")" )  );
+   m_pLineEndStyleSelector->addItem( i18n("DOS")  + (dosUsers.isEmpty() ? QString("") : " (" + dosUsers + ")" )  );
+
+   e_LineEndStyle autoChoice = (e_LineEndStyle)m_pOptions->m_lineEndStyle;
+
+   if ( m_pOptions->m_lineEndStyle == eLineEndStyleAutoDetect )
+   {
+      if ( eLineEndStyleA != eLineEndStyleUndefined && eLineEndStyleB != eLineEndStyleUndefined && eLineEndStyleC != eLineEndStyleUndefined )
+      {
+         if ( eLineEndStyleA == eLineEndStyleB )
+            autoChoice = eLineEndStyleC;
+         else if ( eLineEndStyleA == eLineEndStyleC )
+            autoChoice = eLineEndStyleB;
+         else
+            autoChoice = eLineEndStyleConflict;          //conflict (not likely while only two values exist)
+      }
+      else 
+      {
+         e_LineEndStyle c1, c2;
+         if     ( eLineEndStyleA == eLineEndStyleUndefined ) { c1 = eLineEndStyleB; c2 = eLineEndStyleC; }
+         else if( eLineEndStyleB == eLineEndStyleUndefined ) { c1 = eLineEndStyleA; c2 = eLineEndStyleC; }
+         else /*if( eLineEndStyleC == eLineEndStyleUndefined )*/ { c1 = eLineEndStyleA; c2 = eLineEndStyleB; }
+         if ( c1 == c2 && c1!=eLineEndStyleUndefined )
+            autoChoice = c1;
+         else
+            autoChoice = eLineEndStyleConflict;
+      }
+   }
+
+   if ( autoChoice == eLineEndStyleUnix )
+      m_pLineEndStyleSelector->setCurrentIndex(0);
+   else if ( autoChoice == eLineEndStyleDos )
+      m_pLineEndStyleSelector->setCurrentIndex(1);
+   else if ( autoChoice == eLineEndStyleConflict )
+   {
+      m_pLineEndStyleSelector->addItem( i18n("Conflict") );
+      m_pLineEndStyleSelector->setCurrentIndex(2);
+   }
+}
+
+e_LineEndStyle WindowTitleWidget::getLineEndStyle( )
+{
+   
+   int current = m_pLineEndStyleSelector->currentIndex();
+   if (current == 0)
+      return eLineEndStyleUnix;
+   else if (current == 1)
+      return eLineEndStyleDos;
+   else
+      return eLineEndStyleConflict;
+}
+
+void WindowTitleWidget::setEncodings( QTextCodec* pCodecForA, QTextCodec* pCodecForB, QTextCodec* pCodecForC )
+{
+   m_pEncodingSelector->clear();
+
+   // First sort codec names:
+   std::map<QString, QTextCodec*> names;
+   QList<int> mibs = QTextCodec::availableMibs();
+   foreach(int i, mibs)
+   {
+      QTextCodec* c = QTextCodec::codecForMib(i);
+      if ( c!=0 )
+         names[QString(c->name())]=c;
+   }
+
+   if ( pCodecForA )
+      m_pEncodingSelector->addItem( i18n("Codec from") + " A: " + pCodecForA->name(), QVariant::fromValue((void*)pCodecForA) );
+   if ( pCodecForB )
+      m_pEncodingSelector->addItem( i18n("Codec from") + " B: " + pCodecForB->name(), QVariant::fromValue((void*)pCodecForB) );
+   if ( pCodecForC )
+      m_pEncodingSelector->addItem( i18n("Codec from") + " C: " + pCodecForC->name(), QVariant::fromValue((void*)pCodecForC) );
+
+   std::map<QString, QTextCodec*>::iterator it;
+   for(it=names.begin();it!=names.end();++it)
+   {
+      m_pEncodingSelector->addItem( it->first, QVariant::fromValue((void*)it->second) );
+   }
+   m_pEncodingSelector->setMinimumSize( m_pEncodingSelector->sizeHint() );
+   
+   if ( pCodecForC && pCodecForB && pCodecForA )
+   {
+      if ( pCodecForA == pCodecForB )
+         m_pEncodingSelector->setCurrentIndex( 2 ); // C
+      else if ( pCodecForA == pCodecForC )
+         m_pEncodingSelector->setCurrentIndex( 1 ); // B
+      else
+         m_pEncodingSelector->setCurrentIndex( 2 ); // C
+   }
+   else if ( pCodecForA && pCodecForB )
+      m_pEncodingSelector->setCurrentIndex( 1 ); // B
+   else
+      m_pEncodingSelector->setCurrentIndex( 0 );
+}
+
+QTextCodec* WindowTitleWidget::getEncoding()
+{
+   return (QTextCodec*)m_pEncodingSelector->itemData( m_pEncodingSelector->currentIndex() ).value<void*>();
+}
+
+void WindowTitleWidget::setEncoding(QTextCodec* pEncoding)
+{
+   int idx = m_pEncodingSelector->findText( pEncoding->name() );
+   if (idx>=0)
+      m_pEncodingSelector->setCurrentIndex( idx );
+}
+
+//void WindowTitleWidget::slotBrowseButtonClicked()
+//{
+//   QString current = m_pFileNameLineEdit->text();
+//
+//   KUrl newURL = KFileDialog::getSaveUrl( current, 0, this, i18n("Select file (not saving yet)"));
+//   if ( !newURL.isEmpty() )
+//   {
+//      m_pFileNameLineEdit->setText( newURL.url() ); 
+//   }
+//}
+
+void WindowTitleWidget::slotSetModified( bool bModified )
+{
+   m_pModifiedLabel->setText( bModified ? i18n("[Modified]") : "" );
+}
+
+bool WindowTitleWidget::eventFilter( QObject* o, QEvent* e )
+{
+   if ( e->type()==QEvent::FocusIn || e->type()==QEvent::FocusOut )
+   {
+      QPalette p = m_pLabel->palette();
+
+      QColor c1 = m_pOptions->m_fgColor;
+      QColor c2 = Qt::lightGray;
+      if ( e->type()==QEvent::FocusOut )
+         c2 = m_pOptions->m_bgColor;
+
+      p.setColor(QPalette::Window, c2);
+      setPalette( p );
+
+      p.setColor(QPalette::WindowText, c1);
+      m_pLabel->setPalette( p );
+      m_pEncodingLabel->setPalette( p );
+      m_pEncodingSelector->setPalette( p );
+   }
+   if (o == m_pFileNameLineEdit && e->type()==QEvent::Drop)
+   {
+      QDropEvent* d = static_cast<QDropEvent*>(e);
+      
+      if ( d->mimeData()->hasUrls() ) 
+      {
+         QList<QUrl> lst = d->mimeData()->urls();
+
+         if ( lst.count() > 0 )
+         {
+            static_cast<QLineEdit*>(o)->setText( lst[0].toString() );
+            static_cast<QLineEdit*>(o)->setFocus();            
+            return true;
+         }
+      }
+   }
+   return false;
+}
+
+//#include "mergeresultwindow.moc"
diff --git a/src-QT4/mergeresultwindow.h b/src-QT4/mergeresultwindow.h
new file mode 100644 (file)
index 0000000..6da0a88
--- /dev/null
@@ -0,0 +1,462 @@
+/***************************************************************************
+                          mergeresultwindow.h  -  description
+                             -------------------
+    begin                : Mon Mar 18 2002
+    copyright            : (C) 2002-2007 by Joachim Eibl
+    email                : joachim.eibl at gmx.de
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#ifndef MERGERESULTWINDOW_H
+#define MERGERESULTWINDOW_H
+
+#include "diff.h"
+
+#include <QWidget>
+#include <QPixmap>
+#include <QTimer>
+#include <QStatusBar>
+#include <QTextLayout>
+
+class QPainter;
+
+class Overview : public QWidget
+{
+   Q_OBJECT
+public:
+   Overview( Options* pOptions );
+
+   void init( Diff3LineList* pDiff3LineList, bool bTripleDiff );
+   void reset();
+   void setRange( int firstLine, int pageHeight );
+   void setPaintingAllowed( bool bAllowPainting );
+
+   enum e_OverviewMode { eOMNormal, eOMAvsB, eOMAvsC, eOMBvsC };
+   void setOverviewMode( e_OverviewMode eOverviewMode );
+   e_OverviewMode getOverviewMode();
+
+public slots:
+   void setFirstLine(int firstLine);
+   void slotRedraw();
+signals:
+   void setLine(int);
+private:
+   const Diff3LineList* m_pDiff3LineList;
+   Options* m_pOptions;
+   bool m_bTripleDiff;
+   int m_firstLine;
+   int m_pageHeight;
+   QPixmap m_pixmap;
+   bool m_bPaintingAllowed;
+   e_OverviewMode m_eOverviewMode;
+   int m_nofLines;
+
+   virtual void paintEvent( QPaintEvent* e );
+   virtual void mousePressEvent( QMouseEvent* e );
+   virtual void mouseMoveEvent( QMouseEvent* e );
+   void drawColumn( QPainter& p, e_OverviewMode eOverviewMode, int x, int w, int h, int nofLines );
+};
+
+
+enum e_MergeDetails
+{
+   eDefault,
+   eNoChange,
+   eBChanged,
+   eCChanged,
+   eBCChanged,         // conflict
+   eBCChangedAndEqual, // possible conflict
+   eBDeleted,
+   eCDeleted,
+   eBCDeleted,         // possible conflict
+
+   eBChanged_CDeleted, // conflict
+   eCChanged_BDeleted, // conflict
+   eBAdded,
+   eCAdded,
+   eBCAdded,           // conflict
+   eBCAddedAndEqual    // possible conflict
+};
+
+void mergeOneLine( const Diff3Line& d, e_MergeDetails& mergeDetails, bool& bConflict, bool& bLineRemoved, int& src, bool bTwoInputs );
+
+enum e_MergeSrcSelector
+{
+   A=1,
+   B=2,
+   C=3
+};
+
+class MergeResultWindow : public QWidget
+{
+   Q_OBJECT
+public:
+   MergeResultWindow(
+      QWidget* pParent,
+      Options* pOptions,
+      QStatusBar* pStatusBar
+      );
+
+   void init(
+      const LineData* pLineDataA, int sizeA,
+      const LineData* pLineDataB, int sizeB,
+      const LineData* pLineDataC, int sizeC,
+      const Diff3LineList* pDiff3LineList,
+      TotalDiffStatus* pTotalDiffStatus
+      );
+
+   void reset();
+
+   bool saveDocument( const QString& fileName, QTextCodec* pEncoding, e_LineEndStyle eLineEndStyle );
+   int getNrOfUnsolvedConflicts(int* pNrOfWhiteSpaceConflicts=0);
+   void choose(int selector);
+   void chooseGlobal(int selector, bool bConflictsOnly, bool bWhiteSpaceOnly );
+
+   int getMaxTextWidth();     // width of longest text line
+   int getNofLines();
+   int getVisibleTextAreaWidth(); // text area width without the border
+   int getNofVisibleLines();
+   QString getSelection();
+   void resetSelection();
+   void showNrOfConflicts();
+   bool isDeltaAboveCurrent();
+   bool isDeltaBelowCurrent();
+   bool isConflictAboveCurrent();
+   bool isConflictBelowCurrent();
+   bool isUnsolvedConflictAtCurrent();
+   bool isUnsolvedConflictAboveCurrent();
+   bool isUnsolvedConflictBelowCurrent();
+   bool findString( const QString& s, int& d3vLine, int& posInLine, bool bDirDown, bool bCaseSensitive );
+   void setSelection( int firstLine, int startPos, int lastLine, int endPos );
+   void setOverviewMode( Overview::e_OverviewMode eOverviewMode );
+   Overview::e_OverviewMode getOverviewMode();
+public slots:
+   void setFirstLine(int firstLine);
+   void setHorizScrollOffset(int horizScrollOffset);
+
+   void slotGoCurrent();
+   void slotGoTop();
+   void slotGoBottom();
+   void slotGoPrevDelta();
+   void slotGoNextDelta();
+   void slotGoPrevUnsolvedConflict();
+   void slotGoNextUnsolvedConflict();
+   void slotGoPrevConflict();
+   void slotGoNextConflict();
+   void slotAutoSolve();
+   void slotUnsolve();
+   void slotMergeHistory();
+   void slotRegExpAutoMerge();
+   void slotSplitDiff( int firstD3lLineIdx, int lastD3lLineIdx );
+   void slotJoinDiffs( int firstD3lLineIdx, int lastD3lLineIdx );
+   void slotSetFastSelectorLine(int);
+   void setPaintingAllowed(bool);
+   void updateSourceMask();
+
+signals:
+   void scroll( int deltaX, int deltaY );
+   void modifiedChanged(bool bModified);
+   void setFastSelectorRange( int line1, int nofLines );
+   void sourceMask( int srcMask, int enabledMask );
+   void resizeSignal();
+   void selectionEnd();
+   void newSelection();
+   void updateAvailabilities();
+   void showPopupMenu( const QPoint& point );
+   void noRelevantChangesDetected();
+
+private:
+   void merge(bool bAutoSolve, int defaultSelector, bool bConflictsOnly=false, bool bWhiteSpaceOnly=false );
+   QString getString( int lineIdx );
+
+   Options* m_pOptions;
+
+   const LineData* m_pldA;
+   const LineData* m_pldB;
+   const LineData* m_pldC;
+   int m_sizeA;
+   int m_sizeB;
+   int m_sizeC;
+
+   const Diff3LineList* m_pDiff3LineList;
+   TotalDiffStatus* m_pTotalDiffStatus;
+
+   bool m_bPaintingAllowed;
+   int m_delayedDrawTimer;
+   Overview::e_OverviewMode m_eOverviewMode;
+
+private:
+   class MergeEditLine
+   {
+   public:
+      MergeEditLine(Diff3LineList::const_iterator i, int src=0){m_id3l=i; m_src=src; m_bLineRemoved=false; }
+      void setConflict() { m_src=0; m_bLineRemoved=false; m_str=QString(); }
+      bool isConflict()  { return  m_src==0 && !m_bLineRemoved && m_str.isNull(); }
+      void setRemoved(int src=0)  { m_src=src; m_bLineRemoved=true; m_str=QString(); }
+      bool isRemoved()   { return m_bLineRemoved; }
+      bool isEditableText() { return !isConflict() && !isRemoved(); }
+      void setString( const QString& s ){ m_str=s; m_bLineRemoved=false; m_src=0; }
+      QString getString( const MergeResultWindow* );
+      bool isModified() { return ! m_str.isNull() ||  (m_bLineRemoved && m_src==0); }
+
+      void setSource( int src, bool bLineRemoved ) { m_src=src; m_bLineRemoved =bLineRemoved; }
+      int src() { return m_src; }
+      Diff3LineList::const_iterator id3l(){return m_id3l;}
+      // getString() is implemented as MergeResultWindow::getString()
+   private:
+      Diff3LineList::const_iterator m_id3l;
+      int m_src;         // 1, 2 or 3 for A, B or C respectively, or 0 when line is from neither source.
+      QString m_str;    // String when modified by user or null-string when orig data is used.
+      bool m_bLineRemoved;
+   };
+
+   class MergeEditLineList : private std::list<MergeEditLine>
+   { // I want to know the size immediately!
+   private:
+      typedef std::list<MergeEditLine> BASE;
+      int m_size;
+      int* m_pTotalSize;
+   public:
+      typedef std::list<MergeEditLine>::iterator iterator;
+      typedef std::list<MergeEditLine>::reverse_iterator reverse_iterator;
+      typedef std::list<MergeEditLine>::const_iterator const_iterator;
+      MergeEditLineList(){m_size=0; m_pTotalSize=0; }
+      void clear()                             { ds(-m_size); BASE::clear();          }
+      void push_back( const MergeEditLine& m)  { ds(+1); BASE::push_back(m);     }
+      void push_front( const MergeEditLine& m) { ds(+1); BASE::push_front(m);    }
+      void pop_back()                          { ds(-1); BASE::pop_back();    }
+      iterator erase( iterator i )             { ds(-1); return BASE::erase(i);  }
+      iterator insert( iterator i, const MergeEditLine& m ) { ds(+1); return BASE::insert(i,m); }
+      int size(){ if (!m_pTotalSize) m_size = (int) BASE::size(); return m_size; }
+      iterator begin(){return BASE::begin();}
+      iterator end(){return BASE::end();}
+      reverse_iterator rbegin(){return BASE::rbegin();}
+      reverse_iterator rend(){return BASE::rend();}
+      MergeEditLine& front(){return BASE::front();}
+      MergeEditLine& back(){return BASE::back();}
+      bool empty() { return m_size==0; }
+      void splice(iterator destPos, MergeEditLineList& srcList, iterator srcFirst, iterator srcLast)
+      {
+         int* pTotalSize = getTotalSizePtr() ? getTotalSizePtr() : srcList.getTotalSizePtr();
+         srcList.setTotalSizePtr(0); // Force size-recalc after splice, because splice doesn't handle size-tracking
+         setTotalSizePtr(0);
+         BASE::splice( destPos, srcList, srcFirst, srcLast );
+         srcList.setTotalSizePtr( pTotalSize );
+         setTotalSizePtr( pTotalSize );
+      }
+
+      void setTotalSizePtr(int* pTotalSize)
+      {
+         if ( pTotalSize==0 && m_pTotalSize!=0 ) { *m_pTotalSize -= size(); }
+         else if ( pTotalSize!=0 && m_pTotalSize==0 ) { *pTotalSize += size(); }
+         m_pTotalSize = pTotalSize;
+      }
+      int* getTotalSizePtr()
+      {
+         return m_pTotalSize;
+      }
+
+   private:
+      void ds(int deltaSize) 
+      {
+         m_size+=deltaSize; 
+         if (m_pTotalSize!=0)  *m_pTotalSize+=deltaSize;
+      }
+   };
+
+   friend class MergeEditLine;
+
+   struct MergeLine
+   {
+      MergeLine()
+      {
+         srcSelect=0; mergeDetails=eDefault; d3lLineIdx = -1; srcRangeLength=0;
+         bConflict=false; bDelta=false; bWhiteSpaceConflict=false;
+      }
+      Diff3LineList::const_iterator id3l;
+      int d3lLineIdx;  // Needed to show the correct window pos.
+      int srcRangeLength; // how many src-lines have this properties
+      e_MergeDetails mergeDetails;
+      bool bConflict;
+      bool bWhiteSpaceConflict;
+      bool bDelta;
+      int srcSelect;
+      MergeEditLineList mergeEditLineList;
+      void split( MergeLine& ml2, int d3lLineIdx2 ) // The caller must insert the ml2 after this ml in the m_mergeLineList
+      {
+         if ( d3lLineIdx2<d3lLineIdx || d3lLineIdx2 >= d3lLineIdx + srcRangeLength ) 
+            return; //Error
+         ml2.mergeDetails = mergeDetails;
+         ml2.bConflict = bConflict;
+         ml2.bWhiteSpaceConflict = bWhiteSpaceConflict;
+         ml2.bDelta = bDelta;
+         ml2.srcSelect = srcSelect;
+
+         ml2.d3lLineIdx = d3lLineIdx2;
+         ml2.srcRangeLength = srcRangeLength - (d3lLineIdx2-d3lLineIdx);
+         srcRangeLength = d3lLineIdx2-d3lLineIdx; // current MergeLine controls fewer lines
+         ml2.id3l = id3l;
+         for(int i=0; i<srcRangeLength; ++i)
+            ++ml2.id3l;
+
+         ml2.mergeEditLineList.clear();
+         // Search for best place to splice
+         for(MergeEditLineList::iterator i=mergeEditLineList.begin(); i!=mergeEditLineList.end();++i)
+         {
+            if (i->id3l()==ml2.id3l)
+            {
+               ml2.mergeEditLineList.splice( ml2.mergeEditLineList.begin(), mergeEditLineList, i, mergeEditLineList.end() );
+               return;
+            }
+         }
+         ml2.mergeEditLineList.setTotalSizePtr( mergeEditLineList.getTotalSizePtr() );
+         ml2.mergeEditLineList.push_back(MergeEditLine(ml2.id3l));
+      }
+      void join( MergeLine& ml2 ) // The caller must remove the ml2 from the m_mergeLineList after this call
+      {
+         srcRangeLength += ml2.srcRangeLength;
+         ml2.mergeEditLineList.clear();
+         mergeEditLineList.clear();
+         mergeEditLineList.push_back(MergeEditLine(id3l)); // Create a simple conflict
+         if ( ml2.bConflict ) bConflict = true;
+         if ( !ml2.bWhiteSpaceConflict ) bWhiteSpaceConflict = false;
+         if ( ml2.bDelta ) bDelta = true;
+      }
+   };
+
+private:
+   static bool sameKindCheck( const MergeLine& ml1, const MergeLine& ml2 );
+   struct HistoryMapEntry
+   {
+      MergeEditLineList mellA;
+      MergeEditLineList mellB;
+      MergeEditLineList mellC;
+      MergeEditLineList& choice( bool bThreeInputs );
+      bool staysInPlace( bool bThreeInputs, Diff3LineList::const_iterator& iHistoryEnd );
+   };
+   typedef std::map<QString,HistoryMapEntry> HistoryMap;
+   void collectHistoryInformation( int src, Diff3LineList::const_iterator iHistoryBegin, Diff3LineList::const_iterator iHistoryEnd, HistoryMap& historyMap, std::list< HistoryMap::iterator >& hitList );
+
+   typedef std::list<MergeLine> MergeLineList;
+   MergeLineList m_mergeLineList;
+   MergeLineList::iterator m_currentMergeLineIt;
+   bool isItAtEnd( bool bIncrement, MergeLineList::iterator i )
+   {
+      if ( bIncrement ) return i!=m_mergeLineList.end();
+      else              return i!=m_mergeLineList.begin();
+   }
+
+   int m_currentPos;
+   bool checkOverviewIgnore(MergeLineList::iterator &i);
+
+   enum e_Direction { eUp, eDown };
+   enum e_EndPoint  { eDelta, eConflict, eUnsolvedConflict, eLine, eEnd };
+   void go( e_Direction eDir, e_EndPoint eEndPoint );
+   void calcIteratorFromLineNr(
+      int line,
+      MergeLineList::iterator& mlIt,
+      MergeEditLineList::iterator& melIt
+      );
+   MergeLineList::iterator splitAtDiff3LineIdx( int d3lLineIdx );
+
+   virtual void paintEvent( QPaintEvent* e );
+
+   int getTextXOffset();
+   QVector<QTextLayout::FormatRange> getTextLayoutForLine(int line, const QString& s, QTextLayout& textLayout );
+   void myUpdate(int afterMilliSecs);
+   virtual void timerEvent(QTimerEvent*);
+   void writeLine(
+      MyPainter& p, int line, const QString& str,
+      int srcSelect, e_MergeDetails mergeDetails, int rangeMark, bool bUserModified, bool bLineRemoved, bool bWhiteSpaceConflict
+      );
+   void setFastSelector(MergeLineList::iterator i);
+   int convertToLine( int y );
+   bool event(QEvent*);
+   virtual void mousePressEvent ( QMouseEvent* e );
+   virtual void mouseDoubleClickEvent ( QMouseEvent* e );
+   virtual void mouseReleaseEvent ( QMouseEvent * );
+   virtual void mouseMoveEvent ( QMouseEvent * );
+   virtual void resizeEvent( QResizeEvent* e );
+   virtual void keyPressEvent( QKeyEvent* e );
+   virtual void wheelEvent( QWheelEvent* e );
+   virtual void focusInEvent( QFocusEvent* e );
+
+   QPixmap m_pixmap;
+   int m_firstLine;
+   int m_horizScrollOffset;
+   int m_nofLines;
+   int m_totalSize; //Same as m_nofLines, but calculated differently
+   int m_maxTextWidth;
+   bool m_bMyUpdate;
+   bool m_bInsertMode;
+   bool m_bModified;
+   void setModified(bool bModified=true);
+
+   int m_scrollDeltaX;
+   int m_scrollDeltaY;
+   int m_cursorXPos;
+   int m_cursorXPixelPos;
+   int m_cursorYPos;
+   int m_cursorOldXPixelPos;
+   bool m_bCursorOn; // blinking on and off each second
+   QTimer m_cursorTimer;
+   bool m_bCursorUpdate;
+   QStatusBar* m_pStatusBar;
+
+   Selection m_selection;
+
+   bool deleteSelection2( QString& str, int& x, int& y,
+                    MergeLineList::iterator& mlIt, MergeEditLineList::iterator& melIt );
+   bool doRelevantChangesExist();
+public slots:
+   void deleteSelection();
+   void pasteClipboard(bool bFromSelection);
+private slots:
+   void slotCursorUpdate();
+};
+
+class QLineEdit;
+class QTextCodec;
+class QComboBox;
+class QLabel;
+class WindowTitleWidget : public QWidget
+{
+   Q_OBJECT
+private:
+   QLabel*      m_pLabel;
+   QLineEdit*   m_pFileNameLineEdit;
+   //QPushButton* m_pBrowseButton;
+   QLabel*      m_pModifiedLabel;
+   QLabel*      m_pLineEndStyleLabel;
+   QComboBox*   m_pLineEndStyleSelector;
+   QLabel*      m_pEncodingLabel;
+   QComboBox*   m_pEncodingSelector;
+   Options*     m_pOptions;
+public:
+   WindowTitleWidget(Options* pOptions);
+   QTextCodec* getEncoding();
+   void        setFileName(const QString& fileName );
+   QString     getFileName();
+   void setEncodings( QTextCodec* pCodecForA, QTextCodec* pCodecForB, QTextCodec* pCodecForC );
+   void setEncoding( QTextCodec* pCodec );
+   void setLineEndStyles( e_LineEndStyle eLineEndStyleA, e_LineEndStyle eLineEndStyleB, e_LineEndStyle eLineEndStyleC);
+   e_LineEndStyle getLineEndStyle();
+
+   bool eventFilter( QObject* o, QEvent* e );
+public slots:
+   void slotSetModified( bool bModified );
+//private slots:
+//   void slotBrowseButtonClicked();
+
+};
+
+#endif
+
diff --git a/src-QT4/optiondialog.cpp b/src-QT4/optiondialog.cpp
new file mode 100644 (file)
index 0000000..a7e7c9b
--- /dev/null
@@ -0,0 +1,1901 @@
+/*
+ *   kdiff3 - Text Diff And Merge Tool
+ *   Copyright (C) 2002-2009  Joachim Eibl, joachim.eibl at gmx.de
+ *
+ *   This program is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Steet, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include <QCheckBox>
+#include <QComboBox>
+#include <QLabel>
+#include <QLayout>
+#include <QLineEdit> 
+#include <QToolTip>
+#include <QRadioButton>
+#include <QGroupBox>
+#include <QTextCodec>
+#include <QDir>
+#include <QSettings>
+#include <QLocale>
+#include <QGridLayout>
+#include <QPixmap>
+#include <QFrame>
+#include <QVBoxLayout>
+
+#include <kapplication.h>
+#include <kcolorbutton.h>
+#include <kfontdialog.h> // For KFontChooser
+#include <kiconloader.h>
+#include <klocale.h>
+#include <kconfig.h>
+#include <kmessagebox.h>
+#include <kmainwindow.h> //For ktoolbar.h
+#include <ktoolbar.h>
+
+//#include <kkeydialog.h>
+#include <map>
+
+#include "optiondialog.h"
+#include "diff.h"
+#include "smalldialogs.h"
+
+#ifndef KREPLACEMENTS_H
+#include <kglobalsettings.h>
+#endif
+
+#define KDIFF3_CONFIG_GROUP "KDiff3 Options"
+
+static QString s_historyEntryStartRegExpToolTip;
+static QString s_historyEntryStartSortKeyOrderToolTip;
+static QString s_autoMergeRegExpToolTip;
+static QString s_historyStartRegExpToolTip;
+
+void OptionDialog::addOptionItem(OptionItem* p)
+{
+   m_optionItemList.push_back(p);
+}
+
+class OptionItem
+{
+public:
+   OptionItem( OptionDialog* pOptionDialog, const QString& saveName )
+   {
+      assert(pOptionDialog!=0);
+      pOptionDialog->addOptionItem( this );
+      m_saveName = saveName;
+      m_bPreserved = false;
+   }
+   virtual ~OptionItem(){}
+   virtual void setToDefault()=0;
+   virtual void setToCurrent()=0;
+   virtual void apply()=0;
+   virtual void write(ValueMap*)=0;
+   virtual void read(ValueMap*)=0;
+   void doPreserve(){ if (!m_bPreserved){ m_bPreserved=true; preserve(); } }
+   void doUnpreserve(){ if( m_bPreserved ){ unpreserve(); } }
+   QString getSaveName(){return m_saveName;}
+protected:
+   virtual void preserve()=0;
+   virtual void unpreserve()=0;
+   bool m_bPreserved;
+   QString m_saveName;
+};
+
+template <class T>
+class OptionItemT : public OptionItem
+{
+public:
+  OptionItemT( OptionDialog* pOptionDialog, const QString& saveName ) 
+  : OptionItem(pOptionDialog,saveName ) 
+  {}
+  
+protected:
+   virtual void preserve(){ m_preservedVal = *m_pVar; }
+   virtual void unpreserve(){ *m_pVar = m_preservedVal; }
+   T* m_pVar;
+   T m_preservedVal;
+   T m_defaultVal;
+};
+
+class OptionCheckBox : public QCheckBox, public OptionItemT<bool>
+{
+public:
+   OptionCheckBox( QString text, bool bDefaultVal, const QString& saveName, bool* pbVar,
+                   QWidget* pParent, OptionDialog* pOD )
+   : QCheckBox( text, pParent ), OptionItemT<bool>( pOD, saveName )
+   {
+      m_pVar = pbVar;
+      m_defaultVal = bDefaultVal;
+   }
+   void setToDefault(){ setChecked( m_defaultVal );      }
+   void setToCurrent(){ setChecked( *m_pVar );           }
+   void apply()       { *m_pVar = isChecked();                              }
+   void write(ValueMap* config){ config->writeEntry(m_saveName, *m_pVar );   }
+   void read (ValueMap* config){ *m_pVar = config->readBoolEntry( m_saveName, *m_pVar ); }
+private:
+   OptionCheckBox( const OptionCheckBox& ); // private copy constructor without implementation
+};
+
+class OptionRadioButton : public QRadioButton, public OptionItemT<bool>
+{
+public:
+   OptionRadioButton( QString text, bool bDefaultVal, const QString& saveName, bool* pbVar,
+                   QWidget* pParent, OptionDialog* pOD )
+   : QRadioButton( text, pParent ), OptionItemT<bool>( pOD, saveName )
+   {
+      m_pVar = pbVar;
+      m_defaultVal = bDefaultVal;
+   }
+   void setToDefault(){ setChecked( m_defaultVal );      }
+   void setToCurrent(){ setChecked( *m_pVar );           }
+   void apply()       { *m_pVar = isChecked();                              }
+   void write(ValueMap* config){ config->writeEntry(m_saveName, *m_pVar );   }
+   void read (ValueMap* config){ *m_pVar = config->readBoolEntry( m_saveName, *m_pVar ); }
+private:
+   OptionRadioButton( const OptionRadioButton& ); // private copy constructor without implementation
+};
+
+
+template<class T>
+class OptionT : public OptionItemT<T>
+{
+public:
+   OptionT( const T& defaultVal, const QString& saveName, T* pVar, OptionDialog* pOD )
+   : OptionItemT<T>( pOD, saveName )
+   {
+      this->m_pVar = pVar;
+      *this->m_pVar = defaultVal;
+   }
+   OptionT( const QString& saveName, T* pVar, OptionDialog* pOD )
+   : OptionItemT<T>( pOD, saveName )
+   {
+      this->m_pVar = pVar;
+   }
+   void setToDefault(){}
+   void setToCurrent(){}
+   void apply()       {}
+   void write(ValueMap* vm){ writeEntry( vm, this->m_saveName, *this->m_pVar ); }
+   void read (ValueMap* vm){ *this->m_pVar = vm->readEntry ( this->m_saveName, *this->m_pVar ); }
+private:
+   OptionT( const OptionT& ); // private copy constructor without implementation
+};
+
+template <class T> void writeEntry(ValueMap* vm, const QString& saveName, const T& v ) {   vm->writeEntry( saveName, v ); }
+static void writeEntry(ValueMap* vm, const QString& saveName, const QStringList& v )   {   vm->writeEntry( saveName, v, '|' ); }
+
+//static void readEntry(ValueMap* vm, const QString& saveName, bool& v )       {   v = vm->readBoolEntry( saveName, v ); }
+//static void readEntry(ValueMap* vm, const QString& saveName, int&  v )       {   v = vm->readNumEntry( saveName, v ); }
+//static void readEntry(ValueMap* vm, const QString& saveName, QSize& v )      {   v = vm->readSizeEntry( saveName, &v ); }
+//static void readEntry(ValueMap* vm, const QString& saveName, QPoint& v )     {   v = vm->readPointEntry( saveName, &v ); }
+//static void readEntry(ValueMap* vm, const QString& saveName, QStringList& v ){   v = vm->readListEntry( saveName, QStringList(), '|' ); }
+
+typedef OptionT<bool> OptionToggleAction;
+typedef OptionT<int>  OptionNum;
+typedef OptionT<QPoint> OptionPoint;
+typedef OptionT<QSize> OptionSize;
+typedef OptionT<QStringList> OptionStringList;
+
+class OptionFontChooser : public KFontChooser, public OptionItemT<QFont>
+{
+public:
+   OptionFontChooser( const QFont& defaultVal, const QString& saveName, QFont* pVar, QWidget* pParent, OptionDialog* pOD ) :
+       KFontChooser( pParent ),
+       OptionItemT<QFont>( pOD, saveName )
+   {
+      m_pVar = pVar;
+      *m_pVar = defaultVal;
+      m_defaultVal = defaultVal;
+   }
+   void setToDefault(){ setFont( m_defaultVal, false ); }
+   void setToCurrent(){ setFont( *m_pVar, false ); }
+   void apply()       { *m_pVar = font();}
+   void write(ValueMap* config){ config->writeEntry(m_saveName, *m_pVar );   }
+   void read (ValueMap* config){ *m_pVar = config->readFontEntry( m_saveName, m_pVar ); }
+private:
+   OptionFontChooser( const OptionToggleAction& ); // private copy constructor without implementation
+};
+
+class OptionColorButton : public KColorButton, public OptionItemT<QColor>
+{
+public:
+   OptionColorButton( QColor defaultVal, const QString& saveName, QColor* pVar, QWidget* pParent, OptionDialog* pOD )
+   : KColorButton( pParent ), OptionItemT<QColor>( pOD, saveName )
+   {
+      m_pVar = pVar;
+      m_defaultVal = defaultVal;
+   }
+   void setToDefault(){ setColor( m_defaultVal );      }
+   void setToCurrent(){ setColor( *m_pVar );           }
+   void apply()       { *m_pVar = color();                              }
+   void write(ValueMap* config){ config->writeEntry(m_saveName, *m_pVar );   }
+   void read (ValueMap* config){ *m_pVar = config->readColorEntry( m_saveName, m_pVar ); }
+private:
+   OptionColorButton( const OptionColorButton& ); // private copy constructor without implementation
+};
+
+class OptionLineEdit : public QComboBox, public OptionItemT<QString>
+{
+public:
+   OptionLineEdit( const QString& defaultVal, const QString& saveName, QString* pVar,
+                   QWidget* pParent, OptionDialog* pOD )
+   : QComboBox( pParent ), OptionItemT<QString>( pOD, saveName )
+   {
+      setMinimumWidth(50);
+      setEditable(true);
+      m_pVar = pVar;
+      m_defaultVal = defaultVal;
+      m_list.push_back(defaultVal);
+      insertText();
+   }
+   void setToDefault(){ setEditText( m_defaultVal );   }
+   void setToCurrent(){ setEditText( *m_pVar );        }
+   void apply()       { *m_pVar = currentText(); insertText();            }
+   void write(ValueMap* config){ config->writeEntry( m_saveName, m_list, '|' );      }
+   void read (ValueMap* config){ 
+      m_list = config->readListEntry( m_saveName, QStringList(m_defaultVal), '|' ); 
+      if ( !m_list.empty() ) *m_pVar = m_list.front();
+      clear();
+      insertItems(0,m_list);
+   }
+private:
+   void insertText()
+   {  // Check if the text exists. If yes remove it and push it in as first element
+      QString current = currentText();
+      m_list.removeAll( current );
+      m_list.push_front( current );
+      clear();
+      if ( m_list.size()>10 ) 
+         m_list.erase( m_list.begin()+10, m_list.end() );
+      insertItems(0,m_list);
+   }
+   OptionLineEdit( const OptionLineEdit& ); // private copy constructor without implementation
+   QStringList m_list;
+};
+
+#if defined QT_NO_VALIDATOR
+#error No validator
+#endif
+class OptionIntEdit : public QLineEdit, public OptionItemT<int>
+{
+public:
+   OptionIntEdit( int defaultVal, const QString& saveName, int* pVar, int rangeMin, int rangeMax,
+                   QWidget* pParent, OptionDialog* pOD )
+   : QLineEdit( pParent ), OptionItemT<int>( pOD, saveName )
+   {
+      m_pVar = pVar;
+      m_defaultVal = defaultVal;
+      QIntValidator* v = new QIntValidator(this);
+      v->setRange( rangeMin, rangeMax );
+      setValidator( v );
+   }
+   void setToDefault(){ QString s;  s.setNum(m_defaultVal); setText( s );  }
+   void setToCurrent(){ QString s;  s.setNum(*m_pVar);      setText( s );  }
+   void apply()       { const QIntValidator* v=static_cast<const QIntValidator*>(validator());
+                        *m_pVar = minMaxLimiter( text().toInt(), v->bottom(), v->top());
+                        setText( QString::number(*m_pVar) );  }
+   void write(ValueMap* config){ config->writeEntry(m_saveName, *m_pVar );   }
+   void read (ValueMap* config){ *m_pVar = config->readNumEntry( m_saveName, *m_pVar ); }
+private:
+   OptionIntEdit( const OptionIntEdit& ); // private copy constructor without implementation
+};
+
+class OptionComboBox : public QComboBox, public OptionItem
+{
+public:
+   OptionComboBox( int defaultVal, const QString& saveName, int* pVarNum,
+                   QWidget* pParent, OptionDialog* pOD )
+   : QComboBox( pParent ), OptionItem( pOD, saveName )
+   {
+      setMinimumWidth(50);
+      m_pVarNum = pVarNum;
+      m_pVarStr = 0;
+      m_defaultVal = defaultVal;
+      setEditable(false);
+   }
+   OptionComboBox( int defaultVal, const QString& saveName, QString* pVarStr,
+                   QWidget* pParent, OptionDialog* pOD )
+   : QComboBox( pParent ), OptionItem( pOD, saveName )
+   {
+      m_pVarNum = 0;
+      m_pVarStr = pVarStr;
+      m_defaultVal = defaultVal;
+      setEditable(false);
+   }
+   void setToDefault()
+   { 
+      setCurrentIndex( m_defaultVal ); 
+      if (m_pVarStr!=0){ *m_pVarStr=currentText(); } 
+   }
+   void setToCurrent()
+   { 
+      if (m_pVarNum!=0) setCurrentIndex( *m_pVarNum );
+      else              setText( *m_pVarStr );
+   }
+   void apply()
+   { 
+      if (m_pVarNum!=0){ *m_pVarNum = currentIndex(); }
+      else             { *m_pVarStr = currentText(); }
+   }
+   void write(ValueMap* config)
+   { 
+      if (m_pVarStr!=0) config->writeEntry(m_saveName, *m_pVarStr );
+      else              config->writeEntry(m_saveName, *m_pVarNum );   
+   }
+   void read (ValueMap* config)
+   {
+      if (m_pVarStr!=0)  setText( config->readEntry( m_saveName, currentText() ) );
+      else               *m_pVarNum = config->readNumEntry( m_saveName, *m_pVarNum ); 
+   }
+   void preserve()
+   {
+      if (m_pVarStr!=0)  { m_preservedStrVal = *m_pVarStr; }
+      else               { m_preservedNumVal = *m_pVarNum; }
+   }
+   void unpreserve()
+   {
+      if (m_pVarStr!=0)  { *m_pVarStr = m_preservedStrVal; }
+      else               { *m_pVarNum = m_preservedNumVal; }
+   }
+private:
+   OptionComboBox( const OptionIntEdit& ); // private copy constructor without implementation
+   int* m_pVarNum;
+   int m_preservedNumVal;
+   QString* m_pVarStr;
+   QString m_preservedStrVal;
+   int m_defaultVal;
+   
+   void setText(const QString& s)
+   {
+      // Find the string in the combobox-list, don't change the value if nothing fits.
+      for( int i=0; i<count(); ++i )
+      {
+         if ( itemText(i)==s )
+         {
+            if (m_pVarNum!=0) *m_pVarNum = i;
+            if (m_pVarStr!=0) *m_pVarStr = s;
+            setCurrentIndex(i);
+            return;
+         }
+      }
+   }
+};
+
+class OptionEncodingComboBox : public QComboBox, public OptionItem
+{
+   QVector<QTextCodec*> m_codecVec;
+   QTextCodec** m_ppVarCodec;
+public:
+   OptionEncodingComboBox( const QString& saveName, QTextCodec** ppVarCodec,
+                   QWidget* pParent, OptionDialog* pOD )
+   : QComboBox( pParent ), OptionItem( pOD, saveName )
+   {
+      m_ppVarCodec = ppVarCodec;
+      insertCodec( i18n("Unicode, 8 bit"),  QTextCodec::codecForName("UTF-8") );
+      insertCodec( i18n("Unicode"), QTextCodec::codecForName("iso-10646-UCS-2") );
+      insertCodec( i18n("Latin1"), QTextCodec::codecForName("iso 8859-1") );
+
+      // First sort codec names:
+      std::map<QString, QTextCodec*> names;
+      QList<int> mibs = QTextCodec::availableMibs();
+      foreach(int i, mibs)
+      {
+         QTextCodec* c = QTextCodec::codecForMib(i);
+         if ( c!=0 )
+            names[QString(c->name()).toUpper()]=c;
+      }
+
+      std::map<QString, QTextCodec*>::iterator it;
+      for(it=names.begin();it!=names.end();++it)
+      {
+         insertCodec( "", it->second );
+      }
+
+      this->setToolTip( i18n(
+         "Change this if non-ASCII characters are not displayed correctly."
+         ));
+   }
+   void insertCodec( const QString& visibleCodecName, QTextCodec* c )
+   {
+      if (c!=0)
+      {
+         for( int i=0; i<m_codecVec.size(); ++i )
+         {
+            if ( c==m_codecVec[i] )
+               return;  // don't insert any codec twice
+         }
+         addItem( visibleCodecName.isEmpty() ? QString(c->name()) : visibleCodecName+" ("+c->name()+")", (int)m_codecVec.size() );
+         m_codecVec.push_back( c );
+      }
+   }
+   void setToDefault()
+   {
+      QString defaultName = QTextCodec::codecForLocale()->name();
+      for(int i=0;i<count();++i)
+      {
+         if (defaultName==itemText(i) &&
+             m_codecVec[i]==QTextCodec::codecForLocale())
+         {
+            setCurrentIndex(i);
+            if (m_ppVarCodec!=0){ *m_ppVarCodec=m_codecVec[i]; }
+            return;
+         }
+      }
+
+      setCurrentIndex( 0 );
+      if (m_ppVarCodec!=0){ *m_ppVarCodec=m_codecVec[0]; }
+   }
+   void setToCurrent()
+   {
+      if (m_ppVarCodec!=0)
+      {
+         for( int i=0; i<m_codecVec.size(); ++i)
+         {
+            if ( *m_ppVarCodec==m_codecVec[i] )
+            {
+               setCurrentIndex( i );
+               break;
+            }
+         }
+      }
+   }
+   void apply()
+   {
+      if (m_ppVarCodec!=0){ *m_ppVarCodec = m_codecVec[ currentIndex() ]; }
+   }
+   void write(ValueMap* config)
+   {
+      if (m_ppVarCodec!=0) config->writeEntry(m_saveName, QString((*m_ppVarCodec)->name()) );
+   }
+   void read (ValueMap* config)
+   {
+      QString codecName = config->readEntry( m_saveName, QString(m_codecVec[ currentIndex() ]->name()) );
+      for( int i=0; i<m_codecVec.size(); ++i)
+      {
+         if ( codecName == m_codecVec[i]->name() )
+         {
+            setCurrentIndex( i );
+            if (m_ppVarCodec!=0) *m_ppVarCodec = m_codecVec[i];
+            break;
+         }
+      }
+   }
+protected:
+   void preserve()   { m_preservedVal = currentIndex(); }
+   void unpreserve() { setCurrentIndex( m_preservedVal ); }
+   int m_preservedVal;
+};
+
+
+OptionDialog::OptionDialog( bool bShowDirMergeSettings, QWidget *parent, char *name ) : 
+//    KPageDialog( IconList, i18n("Configure"), Help|Default|Apply|Ok|Cancel,
+//                 Ok, parent, name, true /*modal*/, true )
+    KPageDialog( parent )
+{
+   setFaceType( List );
+   setWindowTitle( i18n("Configure") );
+   setButtons( Help|Default|Apply|Ok|Cancel );
+   setDefaultButton( Ok );
+   setObjectName( name );
+   setModal( true  );
+   showButtonSeparator( true );
+   setHelp( "kdiff3/index.html", QString::null );
+
+   setupFontPage();
+   setupColorPage();
+   setupEditPage();
+   setupDiffPage();
+   setupMergePage();
+   setupOtherOptions();
+   if (bShowDirMergeSettings)
+      setupDirectoryMergePage();
+
+   setupRegionalPage();
+   setupIntegrationPage();
+
+   //setupKeysPage();
+
+   // Initialize all values in the dialog
+   resetToDefaults();
+   slotApply();
+   connect(this, SIGNAL(applyClicked()), this, SLOT(slotApply()));
+   connect(this, SIGNAL(okClicked()), this, SLOT(slotOk()));
+   //helpClicked() is connected in KDiff3App::KDiff3App
+   connect(this, SIGNAL(defaultClicked()), this, SLOT(slotDefault()));
+}
+
+OptionDialog::~OptionDialog( void )
+{
+}
+
+void OptionDialog::setupOtherOptions()
+{
+   new OptionToggleAction( false, "AutoAdvance", &m_options.m_bAutoAdvance, this );
+   new OptionToggleAction( true,  "ShowWhiteSpaceCharacters", &m_options.m_bShowWhiteSpaceCharacters, this );
+   new OptionToggleAction( true,  "ShowWhiteSpace", &m_options.m_bShowWhiteSpace, this );
+   new OptionToggleAction( false, "ShowLineNumbers", &m_options.m_bShowLineNumbers, this );
+   new OptionToggleAction( true,  "HorizDiffWindowSplitting", &m_options.m_bHorizDiffWindowSplitting, this );
+   new OptionToggleAction( false, "WordWrap", &m_options.m_bWordWrap, this );
+
+   new OptionToggleAction( true,  "ShowIdenticalFiles", &m_options.m_bDmShowIdenticalFiles, this );
+
+   new OptionToggleAction( true,  "Show Toolbar", &m_options.m_bShowToolBar, this );
+   new OptionToggleAction( true,  "Show Statusbar", &m_options.m_bShowStatusBar, this );
+
+/*
+   TODO manage toolbar positioning
+   new OptionNum( (int)KToolBar::Top, "ToolBarPos", &m_toolBarPos, this );
+*/
+   new OptionSize( QSize(600,400),"Geometry", &m_options.m_geometry, this );
+   new OptionPoint( QPoint(0,22), "Position", &m_options.m_position, this );
+   new OptionToggleAction( false, "WindowStateMaximised", &m_options.m_bMaximised, this );
+
+   new OptionStringList( "RecentAFiles", &m_options.m_recentAFiles, this );
+   new OptionStringList( "RecentBFiles", &m_options.m_recentBFiles, this );
+   new OptionStringList( "RecentCFiles", &m_options.m_recentCFiles, this );
+   new OptionStringList( "RecentOutputFiles", &m_options.m_recentOutputFiles, this );
+   new OptionStringList( "RecentEncodings", &m_options.m_recentEncodings, this );
+
+}
+
+void OptionDialog::setupFontPage( void )
+{
+   QFrame* page = new QFrame();
+   KPageWidgetItem *pageItem = new KPageWidgetItem( page, i18n("Font") );
+   pageItem->setHeader( i18n("Editor & Diff Output Font" ) );
+   pageItem->setIcon( KIcon( "preferences-desktop-font" ) );
+   addPage( pageItem );
+
+   QVBoxLayout *topLayout = new QVBoxLayout( page );
+   topLayout->setMargin( 5 );
+   topLayout->setSpacing( spacingHint() );
+
+   QFont defaultFont =
+#ifdef _WIN32
+      QFont("Courier New", 10 );
+#elif defined( KREPLACEMENTS_H )
+      QFont("Courier", 10 );
+#else
+      KGlobalSettings::fixedFont();
+#endif
+
+   OptionFontChooser* pFontChooser = new OptionFontChooser( defaultFont, "Font", &m_options.m_font, page, this );
+   topLayout->addWidget( pFontChooser );
+
+   QGridLayout *gbox = new QGridLayout();
+   topLayout->addLayout( gbox );
+   int line=0;
+
+   OptionCheckBox* pItalicDeltas = new OptionCheckBox( i18n("Italic font for deltas"), false, "ItalicForDeltas", &m_options.m_bItalicForDeltas, page, this );
+   gbox->addWidget( pItalicDeltas, line, 0, 1, 2 );
+   pItalicDeltas->setToolTip( i18n(
+      "Selects the italic version of the font for differences.\n"
+      "If the font doesn't support italic characters, then this does nothing.")
+      );
+}
+
+
+void OptionDialog::setupColorPage( void )
+{
+   QFrame* page = new QFrame();
+   KPageWidgetItem* pageItem = new KPageWidgetItem( page, i18n("Color") );
+   pageItem->setHeader( i18n("Colors Settings") );
+   pageItem->setIcon( KIcon("preferences-desktop-color") );
+   addPage( pageItem );
+
+   QVBoxLayout *topLayout = new QVBoxLayout( page );
+   topLayout->setMargin( 5 );
+   topLayout->setSpacing( spacingHint() );
+
+
+  QGridLayout *gbox = new QGridLayout();
+  gbox->setColumnStretch(1,5);
+  topLayout->addLayout(gbox);
+
+  QLabel* label;
+  int line = 0;
+
+  int depth = QPixmap::defaultDepth();
+  bool bLowColor = depth<=8;
+
+  label = new QLabel( i18n("Editor and Diff Views:"), page );
+  gbox->addWidget( label, line, 0 );
+  QFont f( label->font() );
+  f.setBold(true);
+  label->setFont(f);
+  ++line;
+
+  OptionColorButton* pFgColor = new OptionColorButton( Qt::black,"FgColor", &m_options.m_fgColor, page, this );
+  label = new QLabel( i18n("Foreground color:"), page );
+  label->setBuddy(pFgColor);
+  gbox->addWidget( label, line, 0 );
+  gbox->addWidget( pFgColor, line, 1 );
+  ++line;
+
+  OptionColorButton* pBgColor = new OptionColorButton( Qt::white, "BgColor", &m_options.m_bgColor, page, this );
+  label = new QLabel( i18n("Background color:"), page );
+  label->setBuddy(pBgColor);
+  gbox->addWidget( label, line, 0 );
+  gbox->addWidget( pBgColor, line, 1 );
+
+  ++line;
+
+  OptionColorButton* pDiffBgColor = new OptionColorButton( 
+     bLowColor ? QColor(Qt::lightGray) : qRgb(224,224,224), "DiffBgColor", &m_options.m_diffBgColor, page, this );
+  label = new QLabel( i18n("Diff background color:"), page );
+  label->setBuddy(pDiffBgColor);
+  gbox->addWidget( label, line, 0 );
+  gbox->addWidget( pDiffBgColor, line, 1 );
+  ++line;
+
+  OptionColorButton* pColorA = new OptionColorButton(
+     bLowColor ? qRgb(0,0,255) : qRgb(0,0,200)/*blue*/, "ColorA", &m_options.m_colorA, page, this );
+  label = new QLabel( i18n("Color A:"), page );
+  label->setBuddy(pColorA);
+  gbox->addWidget( label, line, 0 );
+  gbox->addWidget( pColorA, line, 1 );
+  ++line;
+
+  OptionColorButton* pColorB = new OptionColorButton(
+     bLowColor ? qRgb(0,128,0) : qRgb(0,150,0)/*green*/, "ColorB", &m_options.m_colorB, page, this );
+  label = new QLabel( i18n("Color B:"), page );
+  label->setBuddy(pColorB);
+  gbox->addWidget( label, line, 0 );
+  gbox->addWidget( pColorB, line, 1 );
+  ++line;
+
+  OptionColorButton* pColorC = new OptionColorButton(
+     bLowColor ? qRgb(128,0,128) : qRgb(150,0,150)/*magenta*/, "ColorC", &m_options.m_colorC, page, this );
+  label = new QLabel( i18n("Color C:"), page );
+  label->setBuddy(pColorC);
+  gbox->addWidget( label, line, 0 );
+  gbox->addWidget( pColorC, line, 1 );
+  ++line;
+
+  OptionColorButton* pColorForConflict = new OptionColorButton( Qt::red, "ColorForConflict", &m_options.m_colorForConflict, page, this );
+  label = new QLabel( i18n("Conflict color:"), page );
+  label->setBuddy(pColorForConflict);
+  gbox->addWidget( label, line, 0 );
+  gbox->addWidget( pColorForConflict, line, 1 );
+  ++line;
+
+  OptionColorButton* pColor = new OptionColorButton( 
+     bLowColor ? qRgb(192,192,192) : qRgb(220,220,100), "CurrentRangeBgColor", &m_options.m_currentRangeBgColor, page, this );
+  label = new QLabel( i18n("Current range background color:"), page );
+  label->setBuddy(pColor);
+  gbox->addWidget( label, line, 0 );
+  gbox->addWidget( pColor, line, 1 );
+  ++line;
+
+  pColor = new OptionColorButton( 
+     bLowColor ? qRgb(255,255,0) : qRgb(255,255,150), "CurrentRangeDiffBgColor", &m_options.m_currentRangeDiffBgColor, page, this );
+  label = new QLabel( i18n("Current range diff background color:"), page );
+  label->setBuddy(pColor);
+  gbox->addWidget( label, line, 0 );
+  gbox->addWidget( pColor, line, 1 );
+  ++line;
+
+  pColor = new OptionColorButton( qRgb(0xff,0xd0,0x80), "ManualAlignmentRangeColor", &m_options.m_manualHelpRangeColor, page, this );
+  label = new QLabel( i18n("Color for manually aligned difference ranges:"), page );
+  label->setBuddy(pColor);
+  gbox->addWidget( label, line, 0 );
+  gbox->addWidget( pColor, line, 1 );
+  ++line;
+
+  label = new QLabel( i18n("Directory Comparison View:"), page );
+  gbox->addWidget( label, line, 0 );
+  label->setFont(f);
+  ++line;
+
+  pColor = new OptionColorButton( qRgb(0,0xd0,0), "NewestFileColor", &m_options.m_newestFileColor, page, this );
+  label = new QLabel( i18n("Newest file color:"), page );
+  label->setBuddy(pColor);
+  gbox->addWidget( label, line, 0 );
+  gbox->addWidget( pColor, line, 1 );
+  QString dirColorTip = i18n( "Changing this color will only be effective when starting the next directory comparison.");
+  label->setToolTip( dirColorTip );
+  ++line;
+
+  pColor = new OptionColorButton( qRgb(0xf0,0,0), "OldestFileColor", &m_options.m_oldestFileColor, page, this );
+  label = new QLabel( i18n("Oldest file color:"), page );
+  label->setBuddy(pColor);
+  gbox->addWidget( label, line, 0 );
+  gbox->addWidget( pColor, line, 1 );
+  label->setToolTip( dirColorTip );
+  ++line;
+
+  pColor = new OptionColorButton( qRgb(0xc0,0xc0,0), "MidAgeFileColor", &m_options.m_midAgeFileColor, page, this );
+  label = new QLabel( i18n("Middle age file color:"), page );
+  label->setBuddy(pColor);
+  gbox->addWidget( label, line, 0 );
+  gbox->addWidget( pColor, line, 1 );
+  label->setToolTip( dirColorTip );
+  ++line;
+
+  pColor = new OptionColorButton( qRgb(0,0,0), "MissingFileColor", &m_options.m_missingFileColor, page, this );
+  label = new QLabel( i18n("Color for missing files:"), page );
+  label->setBuddy(pColor);
+  gbox->addWidget( label, line, 0 );
+  gbox->addWidget( pColor, line, 1 );
+  label->setToolTip( dirColorTip );
+  ++line;
+
+  topLayout->addStretch(10);
+}
+
+
+void OptionDialog::setupEditPage( void )
+{
+   QFrame* page = new QFrame();
+   KPageWidgetItem* pageItem = new KPageWidgetItem( page, i18n("Editor") );
+   pageItem->setHeader( i18n("Editor Behavior") );
+   pageItem->setIcon( KIcon( "accessories-text-editor") );
+   addPage( pageItem );
+
+   QVBoxLayout *topLayout = new QVBoxLayout( page );
+   topLayout->setMargin( 5 );
+   topLayout->setSpacing( spacingHint() );
+
+   QGridLayout *gbox = new QGridLayout();
+   gbox->setColumnStretch(1,5);
+   topLayout->addLayout( gbox );
+   QLabel* label;
+   int line=0;
+
+   OptionCheckBox* pReplaceTabs = new OptionCheckBox( i18n("Tab inserts spaces"), false, "ReplaceTabs", &m_options.m_bReplaceTabs, page, this );
+   gbox->addWidget( pReplaceTabs, line, 0, 1, 2 );
+   pReplaceTabs->setToolTip( i18n(
+      "On: Pressing tab generates the appropriate number of spaces.\n"
+      "Off: A tab character will be inserted.")
+      );
+   ++line;
+
+   OptionIntEdit* pTabSize = new OptionIntEdit( 8, "TabSize", &m_options.m_tabSize, 1, 100, page, this );
+   label = new QLabel( i18n("Tab size:"), page );
+   label->setBuddy( pTabSize );
+   gbox->addWidget( label, line, 0 );
+   gbox->addWidget( pTabSize, line, 1 );
+   ++line;
+
+   OptionCheckBox* pAutoIndentation = new OptionCheckBox( i18n("Auto indentation"), true, "AutoIndentation", &m_options.m_bAutoIndentation, page, this  );
+   gbox->addWidget( pAutoIndentation, line, 0, 1, 2 );
+   pAutoIndentation->setToolTip( i18n(
+      "On: The indentation of the previous line is used for a new line.\n"
+      ));
+   ++line;
+
+   OptionCheckBox* pAutoCopySelection = new OptionCheckBox( i18n("Auto copy selection"), false, "AutoCopySelection", &m_options.m_bAutoCopySelection, page, this );
+   gbox->addWidget( pAutoCopySelection, line, 0, 1, 2 );
+   pAutoCopySelection->setToolTip( i18n(
+      "On: Any selection is immediately written to the clipboard.\n"
+      "Off: You must explicitely copy e.g. via Ctrl-C."
+      ));
+   ++line;
+   
+   label = new QLabel( i18n("Line end style:"), page );
+   gbox->addWidget( label, line, 0 );
+
+   OptionComboBox* pLineEndStyle = new OptionComboBox( eLineEndStyleAutoDetect, "LineEndStyle", &m_options.m_lineEndStyle, page, this );
+   gbox->addWidget( pLineEndStyle, line, 1 );
+   pLineEndStyle->insertItem( eLineEndStyleUnix, "Unix" );
+   pLineEndStyle->insertItem( eLineEndStyleDos, "Dos/Windows" );
+   pLineEndStyle->insertItem( eLineEndStyleAutoDetect, "Autodetect" );
+
+   label->setToolTip( i18n(
+      "Sets the line endings for when an edited file is saved.\n"
+      "DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A")
+      );
+   ++line;
+      
+   topLayout->addStretch(10);
+}
+
+
+void OptionDialog::setupDiffPage( void )
+{
+   QFrame* page = new QFrame();
+   KPageWidgetItem* pageItem = new KPageWidgetItem( page, i18n("Diff") );
+   pageItem->setHeader( i18n("Diff Settings") );
+   pageItem->setIcon( KIcon( "preferences-other" ) );
+   addPage( pageItem );
+
+
+   QVBoxLayout *topLayout = new QVBoxLayout( page );
+   topLayout->setMargin( 5 );
+   topLayout->setSpacing( spacingHint() );
+
+   QGridLayout *gbox = new QGridLayout();
+   gbox->setColumnStretch(1,5);
+   topLayout->addLayout( gbox );
+   int line=0;
+
+   QLabel* label=0;
+
+   m_options.m_bPreserveCarriageReturn = false;
+/*
+   OptionCheckBox* pPreserveCarriageReturn = new OptionCheckBox( i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options.m_bPreserveCarriageReturn, page, this );
+   gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 );
+   pPreserveCarriageReturn->setToolTip( i18n(
+      "Show carriage return characters '\\r' if they exist.\n"
+      "Helps to compare files that were modified under different operating systems.")
+      );
+   ++line;
+*/
+   QString treatAsWhiteSpace = " ("+i18n("Treat as white space.")+")";
+
+   OptionCheckBox* pIgnoreNumbers = new OptionCheckBox( i18n("Ignore numbers")+treatAsWhiteSpace, false, "IgnoreNumbers", &m_options.m_bIgnoreNumbers, page, this );
+   gbox->addWidget( pIgnoreNumbers, line, 0, 1, 2 );
+   pIgnoreNumbers->setToolTip( i18n(
+      "Ignore number characters during line matching phase. (Similar to Ignore white space.)\n"
+      "Might help to compare files with numeric data.")
+      );
+   ++line;
+
+   OptionCheckBox* pIgnoreComments = new OptionCheckBox( i18n("Ignore C/C++ comments")+treatAsWhiteSpace, false, "IgnoreComments", &m_options.m_bIgnoreComments, page, this );
+   gbox->addWidget( pIgnoreComments, line, 0, 1, 2 );
+   pIgnoreComments->setToolTip( i18n( "Treat C/C++ comments like white space.")
+      );
+   ++line;
+
+   OptionCheckBox* pIgnoreCase = new OptionCheckBox( i18n("Ignore case")+treatAsWhiteSpace, false, "IgnoreCase", &m_options.m_bIgnoreCase, page, this );
+   gbox->addWidget( pIgnoreCase, line, 0, 1, 2 );
+   pIgnoreCase->setToolTip( i18n(
+      "Treat case differences like white space changes. ('a'<=>'A')")
+      );
+   ++line;
+
+   label = new QLabel( i18n("Preprocessor command:"), page );
+   gbox->addWidget( label, line, 0 );
+   OptionLineEdit* pLE = new OptionLineEdit( "", "PreProcessorCmd", &m_options.m_PreProcessorCmd, page, this );
+   gbox->addWidget( pLE, line, 1 );
+   label->setToolTip( i18n("User defined pre-processing. (See the docs for details.)") );
+   ++line;
+
+   label = new QLabel( i18n("Line-matching preprocessor command:"), page );
+   gbox->addWidget( label, line, 0 );
+   pLE = new OptionLineEdit( "", "LineMatchingPreProcessorCmd", &m_options.m_LineMatchingPreProcessorCmd, page, this );
+   gbox->addWidget( pLE, line, 1 );
+   label->setToolTip( i18n("This pre-processor is only used during line matching.\n(See the docs for details.)") );
+   ++line;
+
+   OptionCheckBox* pTryHard = new OptionCheckBox( i18n("Try hard (slower)"), true, "TryHard", &m_options.m_bTryHard, page, this );
+   gbox->addWidget( pTryHard, line, 0, 1, 2 );
+   pTryHard->setToolTip( i18n(
+      "Enables the --minimal option for the external diff.\n"
+      "The analysis of big files will be much slower.")
+      );
+   ++line;
+
+   OptionCheckBox* pDiff3AlignBC = new OptionCheckBox( i18n("Align B and C for 3 input files"), false, "Diff3AlignBC", &m_options.m_bDiff3AlignBC, page, this );
+   gbox->addWidget( pDiff3AlignBC, line, 0, 1, 2 );
+   pDiff3AlignBC->setToolTip( i18n(
+      "Try to align B and C when comparing or merging three input files.\n"
+      "Not recommended for merging because merge might get more complicated.\n"
+      "(Default is off.)")
+      );
+   ++line;
+
+   topLayout->addStretch(10);
+}
+
+void OptionDialog::setupMergePage( void )
+{
+   QFrame* page = new QFrame();
+   KPageWidgetItem* pageItem = new KPageWidgetItem( page, i18n("Merge") );
+   pageItem->setHeader( i18n("Merge Settings") );
+   pageItem->setIcon( KIcon( "plasmagik" ) );
+   addPage( pageItem );
+
+   QVBoxLayout *topLayout = new QVBoxLayout( page );
+   topLayout->setMargin( 5 );
+   topLayout->setSpacing( spacingHint() );
+
+   QGridLayout *gbox = new QGridLayout();
+   gbox->setColumnStretch(1,5);
+   topLayout->addLayout( gbox );
+   int line=0;
+
+   QLabel* label=0;
+
+   label = new QLabel( i18n("Auto advance delay (ms):"), page );
+   gbox->addWidget( label, line, 0 );
+   OptionIntEdit* pAutoAdvanceDelay = new OptionIntEdit( 500, "AutoAdvanceDelay", &m_options.m_autoAdvanceDelay, 0, 2000, page, this );
+   gbox->addWidget( pAutoAdvanceDelay, line, 1 );
+   label->setToolTip(i18n(
+      "When in Auto-Advance mode the result of the current selection is shown \n"
+      "for the specified time, before jumping to the next conflict. Range: 0-2000 ms")
+      );
+   ++line;
+
+   OptionCheckBox* pShowInfoDialogs = new OptionCheckBox( i18n("Show info dialogs"), true, "ShowInfoDialogs", &m_options.m_bShowInfoDialogs, page, this );
+   gbox->addWidget( pShowInfoDialogs, line, 0, 1, 2 );
+   pShowInfoDialogs->setToolTip( i18n("Show a dialog with information about the number of conflicts.") );
+   ++line;
+
+   label = new QLabel( i18n("White space 2-file merge default:"), page );
+   gbox->addWidget( label, line, 0 );
+   OptionComboBox* pWhiteSpace2FileMergeDefault = new OptionComboBox( 0, "WhiteSpace2FileMergeDefault", &m_options.m_whiteSpace2FileMergeDefault, page, this );
+   gbox->addWidget( pWhiteSpace2FileMergeDefault, line, 1 );
+   pWhiteSpace2FileMergeDefault->insertItem( 0, i18n("Manual Choice") );
+   pWhiteSpace2FileMergeDefault->insertItem( 1, "A" );
+   pWhiteSpace2FileMergeDefault->insertItem( 2, "B" );
+   label->setToolTip( i18n(
+         "Allow the merge algorithm to automatically select an input for "
+         "white-space-only changes." )
+                    );
+   ++line;
+
+   label = new QLabel( i18n("White space 3-file merge default:"), page );
+   gbox->addWidget( label, line, 0 );
+   OptionComboBox* pWhiteSpace3FileMergeDefault = new OptionComboBox( 0, "WhiteSpace3FileMergeDefault", &m_options.m_whiteSpace3FileMergeDefault, page, this );
+   gbox->addWidget( pWhiteSpace3FileMergeDefault, line, 1 );
+   pWhiteSpace3FileMergeDefault->insertItem( 0, i18n("Manual Choice") );
+   pWhiteSpace3FileMergeDefault->insertItem( 1, "A" );
+   pWhiteSpace3FileMergeDefault->insertItem( 2, "B" );
+   pWhiteSpace3FileMergeDefault->insertItem( 3, "C" );
+   label->setToolTip( i18n(
+         "Allow the merge algorithm to automatically select an input for "
+         "white-space-only changes." )
+                    );
+   ++line;
+
+   QGroupBox* pGroupBox = new QGroupBox( i18n("Automatic Merge Regular Expression") );
+   gbox->addWidget( pGroupBox, line, 0, 1, 2 );
+   ++line;
+   {
+      QGridLayout* gbox = new QGridLayout( pGroupBox );
+      gbox->setMargin(spacingHint());
+      gbox->setColumnStretch(1,10);
+      int line = 0;
+
+      label = new QLabel( i18n("Auto merge regular expression:"), page );
+      gbox->addWidget( label, line, 0 );
+      m_pAutoMergeRegExpLineEdit = new OptionLineEdit( ".*\\$(Version|Header|Date|Author).*\\$.*", "AutoMergeRegExp", &m_options.m_autoMergeRegExp, page, this );
+      gbox->addWidget( m_pAutoMergeRegExpLineEdit, line, 1 );
+      s_autoMergeRegExpToolTip = i18n("Regular expression for lines where KDiff3 should automatically choose one source.\n"
+            "When a line with a conflict matches the regular expression then\n"
+            "- if available - C, otherwise B will be chosen.");
+      label->setToolTip( s_autoMergeRegExpToolTip );
+      ++line;
+
+      OptionCheckBox* pAutoMergeRegExp = new OptionCheckBox( i18n("Run regular expression auto merge on merge start"), false, "RunRegExpAutoMergeOnMergeStart", &m_options.m_bRunRegExpAutoMergeOnMergeStart, page, this );
+      gbox->addWidget( pAutoMergeRegExp, line, 0, 1, 2 );
+      pAutoMergeRegExp->setToolTip( i18n( "Run the merge for auto merge regular expressions\n"
+            "immediately when a merge starts.\n"));
+      ++line;
+   }
+
+   pGroupBox = new QGroupBox( i18n("Version Control History Merging") );
+   gbox->addWidget( pGroupBox, line, 0, 1, 2 );
+   ++line;
+   {
+      QGridLayout* gbox = new QGridLayout( pGroupBox );
+      gbox->setMargin( spacingHint() );
+      gbox->setColumnStretch(1,10);
+      int line = 0;
+
+      label = new QLabel( i18n("History start regular expression:"), page );
+      gbox->addWidget( label, line, 0 );
+      m_pHistoryStartRegExpLineEdit = new OptionLineEdit( ".*\\$Log.*\\$.*", "HistoryStartRegExp", &m_options.m_historyStartRegExp, page, this );
+      gbox->addWidget( m_pHistoryStartRegExpLineEdit, line, 1 );
+      s_historyStartRegExpToolTip = i18n("Regular expression for the start of the version control history entry.\n"
+            "Usually this line contains the \"$Log$\" keyword.\n"
+            "Default value: \".*\\$Log.*\\$.*\"");
+      label->setToolTip( s_historyStartRegExpToolTip );
+      ++line;
+   
+      label = new QLabel( i18n("History entry start regular expression:"), page );
+      gbox->addWidget( label, line, 0 );
+      // Example line:  "** \main\rolle_fsp_dev_008\1   17 Aug 2001 10:45:44   rolle"
+      QString historyEntryStartDefault =
+            "\\s*\\\\main\\\\(\\S+)\\s+"  // Start with  "\main\"
+            "([0-9]+) "          // day
+            "(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) " //month
+            "([0-9][0-9][0-9][0-9]) " // year
+            "([0-9][0-9]:[0-9][0-9]:[0-9][0-9])\\s+(.*)";  // time, name
+   
+      m_pHistoryEntryStartRegExpLineEdit = new OptionLineEdit( historyEntryStartDefault, "HistoryEntryStartRegExp", &m_options.m_historyEntryStartRegExp, page, this );
+      gbox->addWidget( m_pHistoryEntryStartRegExpLineEdit, line, 1 );
+      s_historyEntryStartRegExpToolTip = i18n("A version control history entry consists of several lines.\n"
+            "Specify the regular expression to detect the first line (without the leading comment).\n"
+            "Use parentheses to group the keys you want to use for sorting.\n"
+            "If left empty, then KDiff3 assumes that empty lines separate history entries.\n"
+            "See the documentation for details.");
+      label->setToolTip( s_historyEntryStartRegExpToolTip );
+      ++line;
+   
+      m_pHistoryMergeSorting = new OptionCheckBox( i18n("History merge sorting"), false, "HistoryMergeSorting", &m_options.m_bHistoryMergeSorting, page, this );
+      gbox->addWidget( m_pHistoryMergeSorting, line, 0, 1, 2 );
+      m_pHistoryMergeSorting->setToolTip( i18n("Sort version control history by a key.") );
+      ++line;
+            //QString branch = newHistoryEntry.cap(1);
+            //int day    = newHistoryEntry.cap(2).toInt();
+            //int month  = QString("Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec").find(newHistoryEntry.cap(3))/4 + 1;
+            //int year   = newHistoryEntry.cap(4).toInt();
+            //QString time = newHistoryEntry.cap(5);
+            //QString name = newHistoryEntry.cap(6);
+      QString defaultSortKeyOrder = "4,3,2,5,1,6"; //QDate(year,month,day).toString(Qt::ISODate) +" "+ time + " " + branch + " " + name;
+
+      label = new QLabel( i18n("History entry start sort key order:"), page );
+      gbox->addWidget( label, line, 0 );
+      m_pHistorySortKeyOrderLineEdit = new OptionLineEdit( defaultSortKeyOrder, "HistoryEntryStartSortKeyOrder", &m_options.m_historyEntryStartSortKeyOrder, page, this );
+      gbox->addWidget( m_pHistorySortKeyOrderLineEdit, line, 1 );
+      s_historyEntryStartSortKeyOrderToolTip = i18n("Each pair of parentheses used in the regular expression for the history start entry\n"
+            "groups a key that can be used for sorting.\n"
+            "Specify the list of keys (that are numbered in order of occurrence\n"
+            "starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n"
+            "If left empty, then no sorting will be done.\n"
+            "See the documentation for details.");
+      label->setToolTip( s_historyEntryStartSortKeyOrderToolTip );
+      m_pHistorySortKeyOrderLineEdit->setEnabled(false);
+      connect( m_pHistoryMergeSorting, SIGNAL(toggled(bool)), m_pHistorySortKeyOrderLineEdit, SLOT(setEnabled(bool)));
+      ++line;
+
+      m_pHistoryAutoMerge = new OptionCheckBox( i18n("Merge version control history on merge start"), false, "RunHistoryAutoMergeOnMergeStart", &m_options.m_bRunHistoryAutoMergeOnMergeStart, page, this );
+      gbox->addWidget( m_pHistoryAutoMerge, line, 0, 1, 2 );
+      m_pHistoryAutoMerge->setToolTip( i18n("Run version control history automerge on merge start.") );
+      ++line;
+
+      OptionIntEdit* pMaxNofHistoryEntries = new OptionIntEdit( -1, "MaxNofHistoryEntries", &m_options.m_maxNofHistoryEntries, -1, 1000, page, this );
+      label = new QLabel( i18n("Max number of history entries:"), page );
+      gbox->addWidget( label, line, 0 );
+      gbox->addWidget( pMaxNofHistoryEntries, line, 1 );
+      pMaxNofHistoryEntries->setToolTip( i18n("Cut off after specified number. Use -1 for infinite number of entries.") );
+      ++line;
+   }
+
+   QPushButton* pButton = new QPushButton( i18n("Test your regular expressions"), page );
+   gbox->addWidget( pButton, line, 0 );
+   connect( pButton, SIGNAL(clicked()), this, SLOT(slotHistoryMergeRegExpTester()));
+   ++line;
+
+   label = new QLabel( i18n("Irrelevant merge command:"), page );
+   gbox->addWidget( label, line, 0 );
+   OptionLineEdit* pLE = new OptionLineEdit( "", "IrrelevantMergeCmd", &m_options.m_IrrelevantMergeCmd, page, this );
+   gbox->addWidget( pLE, line, 1 );
+   label->setToolTip( i18n("If specified this script is run after automerge\n"
+         "when no other relevant changes were detected.\n"
+         "Called with the parameters: filename1 filename2 filename3") );
+   ++line;
+
+
+   OptionCheckBox* pAutoSaveAndQuit = new OptionCheckBox( i18n("Auto save and quit on merge without conflicts"), false,
+      "AutoSaveAndQuitOnMergeWithoutConflicts", &m_options.m_bAutoSaveAndQuitOnMergeWithoutConflicts, page, this );
+   gbox->addWidget( pAutoSaveAndQuit, line, 0, 1, 2 );
+   pAutoSaveAndQuit->setToolTip( i18n("If KDiff3 was started for a file-merge from the command line and all\n"
+                                         "conflicts are solvable without user interaction then automatically save and quit.\n"
+                                         "(Similar to command line option \"--auto\".)") );
+   ++line;
+
+   topLayout->addStretch(10);
+}
+
+void OptionDialog::setupDirectoryMergePage( void )
+{
+   QFrame* page = new QFrame();
+   KPageWidgetItem* pageItem = new KPageWidgetItem( page, i18n("Directory") );
+   pageItem->setHeader( i18n("Directory") );
+   pageItem->setIcon( KIcon( "folder" ) );
+   addPage( pageItem );
+
+   QVBoxLayout *topLayout = new QVBoxLayout( page );
+   topLayout->setMargin( 5 );
+   topLayout->setSpacing( spacingHint() );
+
+   QGridLayout *gbox = new QGridLayout();
+   gbox->setColumnStretch(1,5);
+   topLayout->addLayout( gbox );
+   int line=0;
+
+   OptionCheckBox* pRecursiveDirs = new OptionCheckBox( i18n("Recursive directories"), true, "RecursiveDirs", &m_options.m_bDmRecursiveDirs, page, this );
+   gbox->addWidget( pRecursiveDirs, line, 0, 1, 2 );
+   pRecursiveDirs->setToolTip( i18n("Whether to analyze subdirectories or not.") );
+   ++line;
+   QLabel* label = new QLabel( i18n("File pattern(s):"), page );
+   gbox->addWidget( label, line, 0 );
+   OptionLineEdit* pFilePattern = new OptionLineEdit( "*", "FilePattern", &m_options.m_DmFilePattern, page, this );
+   gbox->addWidget( pFilePattern, line, 1 );
+   label->setToolTip( i18n(
+      "Pattern(s) of files to be analyzed. \n"
+      "Wildcards: '*' and '?'\n"
+      "Several Patterns can be specified by using the separator: ';'"
+      ));
+   ++line;
+
+   label = new QLabel( i18n("File-anti-pattern(s):"), page );
+   gbox->addWidget( label, line, 0 );
+   OptionLineEdit* pFileAntiPattern = new OptionLineEdit( "*.orig;*.o;*.obj;*.rej;*.bak", "FileAntiPattern", &m_options.m_DmFileAntiPattern, page, this );
+   gbox->addWidget( pFileAntiPattern, line, 1 );
+   label->setToolTip( i18n(
+      "Pattern(s) of files to be excluded from analysis. \n"
+      "Wildcards: '*' and '?'\n"
+      "Several Patterns can be specified by using the separator: ';'"
+      ));
+   ++line;
+
+   label = new QLabel( i18n("Dir-anti-pattern(s):"), page );
+   gbox->addWidget( label, line, 0 );
+   OptionLineEdit* pDirAntiPattern = new OptionLineEdit( "CVS;.deps;.svn;.hg;.git", "DirAntiPattern", &m_options.m_DmDirAntiPattern, page, this );
+   gbox->addWidget( pDirAntiPattern, line, 1 );
+   label->setToolTip( i18n(
+      "Pattern(s) of directories to be excluded from analysis. \n"
+      "Wildcards: '*' and '?'\n"
+      "Several Patterns can be specified by using the separator: ';'"
+      ));
+   ++line;
+
+   OptionCheckBox* pUseCvsIgnore = new OptionCheckBox( i18n("Use .cvsignore"), false, "UseCvsIgnore", &m_options.m_bDmUseCvsIgnore, page, this );
+   gbox->addWidget( pUseCvsIgnore, line, 0, 1, 2 );
+   pUseCvsIgnore->setToolTip( i18n(
+      "Extends the antipattern to anything that would be ignored by CVS.\n"
+      "Via local \".cvsignore\" files this can be directory specific."
+      ));
+   ++line;
+
+   OptionCheckBox* pFindHidden = new OptionCheckBox( i18n("Find hidden files and directories"), true, "FindHidden", &m_options.m_bDmFindHidden, page, this );
+   gbox->addWidget( pFindHidden, line, 0, 1, 2 );
+#if defined(_WIN32) || defined(Q_OS_OS2)
+   pFindHidden->setToolTip( i18n("Finds files and directories with the hidden attribute.") );
+#else
+   pFindHidden->setToolTip( i18n("Finds files and directories starting with '.'.") );
+#endif
+   ++line;
+
+   OptionCheckBox* pFollowFileLinks = new OptionCheckBox( i18n("Follow file links"), false, "FollowFileLinks", &m_options.m_bDmFollowFileLinks, page, this );
+   gbox->addWidget( pFollowFileLinks, line, 0, 1, 2 );
+   pFollowFileLinks->setToolTip( i18n(
+      "On: Compare the file the link points to.\n"
+      "Off: Compare the links."
+      ));
+   ++line;
+
+   OptionCheckBox* pFollowDirLinks = new OptionCheckBox( i18n("Follow directory links"), false, "FollowDirLinks", &m_options.m_bDmFollowDirLinks, page, this );
+   gbox->addWidget( pFollowDirLinks, line, 0, 1, 2 );
+   pFollowDirLinks->setToolTip(    i18n(
+      "On: Compare the directory the link points to.\n"
+      "Off: Compare the links."
+      ));
+   ++line;
+
+   //OptionCheckBox* pShowOnlyDeltas = new OptionCheckBox( i18n("List only deltas"),false,"ListOnlyDeltas", &m_options.m_bDmShowOnlyDeltas, page, this );
+   //gbox->addWidget( pShowOnlyDeltas, line, 0, 1, 2 );
+   //pShowOnlyDeltas->setToolTip( i18n(
+   //              "Files and directories without change will not appear in the list."));
+   //++line;
+
+#if defined(_WIN32) || defined(Q_OS_OS2)
+   bool bCaseSensitiveFilenameComparison = false;
+#else
+   bool bCaseSensitiveFilenameComparison = true;
+#endif
+   OptionCheckBox* pCaseSensitiveFileNames = new OptionCheckBox( i18n("Case sensitive filename comparison"),bCaseSensitiveFilenameComparison,"CaseSensitiveFilenameComparison", &m_options.m_bDmCaseSensitiveFilenameComparison, page, this );
+   gbox->addWidget( pCaseSensitiveFileNames, line, 0, 1, 2 );
+   pCaseSensitiveFileNames->setToolTip( i18n(
+                 "The directory comparison will compare files or directories when their names match.\n"
+                 "Set this option if the case of the names must match. (Default for Windows is off, otherwise on.)"));
+   ++line;
+
+   OptionCheckBox* pUnfoldSubdirs = new OptionCheckBox( i18n("Unfold all subdirectories on load"), false, "UnfoldSubdirs", &m_options.m_bDmUnfoldSubdirs, page, this );
+   gbox->addWidget( pUnfoldSubdirs, line, 0, 1, 2 );
+   pUnfoldSubdirs->setToolTip(    i18n(
+      "On: Unfold all subdirectories when starting a directory diff.\n"
+      "Off: Leave subdirectories folded."
+      ));
+   ++line;
+
+   OptionCheckBox* pSkipDirStatus = new OptionCheckBox( i18n("Skip directory status report"), false, "SkipDirStatus", &m_options.m_bDmSkipDirStatus, page, this );
+   gbox->addWidget( pSkipDirStatus, line, 0, 1, 2 );
+   pSkipDirStatus->setToolTip(    i18n(
+      "On: Do not show the Directory Comparison Status.\n"
+      "Off: Show the status dialog on start."
+      ));
+   ++line;
+
+   QGroupBox* pBG = new QGroupBox( i18n("File Comparison Mode") );
+   gbox->addWidget( pBG, line, 0, 1, 2 );
+
+   QVBoxLayout* pBGLayout = new QVBoxLayout( pBG );
+   pBGLayout->setMargin(spacingHint());
+   
+   OptionRadioButton* pBinaryComparison = new OptionRadioButton( i18n("Binary comparison"), true, "BinaryComparison", &m_options.m_bDmBinaryComparison, pBG, this );
+   pBinaryComparison->setToolTip( i18n("Binary comparison of each file. (Default)") );
+   pBGLayout->addWidget( pBinaryComparison );
+   
+   OptionRadioButton* pFullAnalysis = new OptionRadioButton( i18n("Full analysis"), false, "FullAnalysis", &m_options.m_bDmFullAnalysis, pBG, this );
+   pFullAnalysis->setToolTip( i18n("Do a full analysis and show statistics information in extra columns.\n"
+                                      "(Slower than a binary comparison, much slower for binary files.)") );
+   pBGLayout->addWidget( pFullAnalysis );
+   
+   OptionRadioButton* pTrustDate = new OptionRadioButton( i18n("Trust the size and modification date (unsafe)"), false, "TrustDate", &m_options.m_bDmTrustDate, pBG, this );
+   pTrustDate->setToolTip( i18n("Assume that files are equal if the modification date and file length are equal.\n"
+                                   "Files with equal contents but different modification dates will appear as different.\n"
+                                     "Useful for big directories or slow networks.") );
+   pBGLayout->addWidget( pTrustDate );
+                                     
+   OptionRadioButton* pTrustDateFallbackToBinary = new OptionRadioButton( i18n("Trust the size and date, but use binary comparison if date does not match (unsafe)"), false, "TrustDateFallbackToBinary", &m_options.m_bDmTrustDateFallbackToBinary, pBG, this );
+   pTrustDateFallbackToBinary->setToolTip( i18n("Assume that files are equal if the modification date and file length are equal.\n"
+                                     "If the dates are not equal but the sizes are, use binary comparison.\n"
+                                     "Useful for big directories or slow networks.") );
+   pBGLayout->addWidget( pTrustDateFallbackToBinary );
+
+   OptionRadioButton* pTrustSize = new OptionRadioButton( i18n("Trust the size (unsafe)"), false, "TrustSize", &m_options.m_bDmTrustSize, pBG, this );
+   pTrustSize->setToolTip( i18n("Assume that files are equal if their file lengths are equal.\n"
+                                   "Useful for big directories or slow networks when the date is modified during download.") );
+   pBGLayout->addWidget( pTrustSize );
+
+   ++line;
+   
+
+   // Some two Dir-options: Affects only the default actions.
+   OptionCheckBox* pSyncMode = new OptionCheckBox( i18n("Synchronize directories"), false,"SyncMode", &m_options.m_bDmSyncMode, page, this );
+   gbox->addWidget( pSyncMode, line, 0, 1, 2 );
+   pSyncMode->setToolTip( i18n(
+                  "Offers to store files in both directories so that\n"
+                  "both directories are the same afterwards.\n"
+                  "Works only when comparing two directories without specifying a destination."  ) );
+   ++line;
+
+   // Allow white-space only differences to be considered equal
+   OptionCheckBox* pWhiteSpaceDiffsEqual = new OptionCheckBox( i18n("White space differences considered equal"), true,"WhiteSpaceEqual", &m_options.m_bDmWhiteSpaceEqual, page, this );
+   gbox->addWidget( pWhiteSpaceDiffsEqual, line, 0, 1, 2 );
+   pWhiteSpaceDiffsEqual->setToolTip( i18n(
+                  "If files differ only by white space consider them equal.\n"
+                  "This is only active when full analysis is chosen."  ) );
+   connect(pFullAnalysis, SIGNAL(toggled(bool)), pWhiteSpaceDiffsEqual, SLOT(setEnabled(bool)));
+   pWhiteSpaceDiffsEqual->setEnabled(false);
+   ++line;
+
+   OptionCheckBox* pCopyNewer = new OptionCheckBox( i18n("Copy newer instead of merging (unsafe)"), false, "CopyNewer", &m_options.m_bDmCopyNewer, page, this );
+   gbox->addWidget( pCopyNewer, line, 0, 1, 2 );
+   pCopyNewer->setToolTip( i18n(
+                  "Don't look inside, just take the newer file.\n"
+                  "(Use this only if you know what you are doing!)\n"
+                  "Only effective when comparing two directories."  ) );
+   ++line;
+
+   OptionCheckBox* pCreateBakFiles = new OptionCheckBox( i18n("Backup files (.orig)"), true, "CreateBakFiles", &m_options.m_bDmCreateBakFiles, page, this );
+   gbox->addWidget( pCreateBakFiles, line, 0, 1, 2 );
+   pCreateBakFiles->setToolTip( i18n(
+                 "If a file would be saved over an old file, then the old file\n"
+                 "will be renamed with a '.orig' extension instead of being deleted."));
+   ++line;
+
+   topLayout->addStretch(10);
+}
+/*
+static void insertCodecs(OptionComboBox* p)
+{
+   std::multimap<QString,QString> m;  // Using the multimap for case-insensitive sorting.
+   int i;
+   for(i=0;;++i)
+   {
+      QTextCodec* pCodec = QTextCodec::codecForIndex ( i );
+      if ( pCodec != 0 )  m.insert( std::make_pair( QString(pCodec->mimeName()).toUpper(), pCodec->mimeName()) );
+      else                break;
+   }
+   
+   p->insertItem( i18n("Auto"), 0 );
+   std::multimap<QString,QString>::iterator mi;
+   for(mi=m.begin(), i=0; mi!=m.end(); ++mi, ++i)
+      p->insertItem(mi->second, i+1);
+}
+*/
+
+// UTF8-Codec that saves a BOM
+// UTF8-Codec that saves a BOM
+class Utf8BOMCodec : public QTextCodec
+{
+   QTextCodec* m_pUtf8Codec;
+   class PublicTextCodec : public QTextCodec
+   {
+   public:
+      QString publicConvertToUnicode ( const char * p, int len, ConverterState* pState ) const
+      {
+         return convertToUnicode( p, len, pState );
+      }
+      QByteArray publicConvertFromUnicode ( const QChar * input, int number, ConverterState * pState ) const
+      {
+         return convertFromUnicode( input, number, pState );
+      }
+   };
+public:
+   Utf8BOMCodec()
+   {
+      m_pUtf8Codec = QTextCodec::codecForName("UTF-8");
+   }
+   QByteArray name () const { return "UTF-8-BOM"; }
+   int mibEnum () const { return 2123; }
+   QByteArray convertFromUnicode ( const QChar * input, int number, ConverterState * pState ) const
+   {
+      QByteArray r;
+      if ( pState && pState->state_data[2]==0)  // state_data[2] not used by QUtf8::convertFromUnicode (see qutfcodec.cpp)
+      {
+        r += "\xEF\xBB\xBF";
+        pState->state_data[2]=1;
+        pState->flags |= QTextCodec::IgnoreHeader;
+      }
+
+      r += ((PublicTextCodec*)m_pUtf8Codec)->publicConvertFromUnicode( input, number, pState );
+      return r;
+   }
+   QString convertToUnicode ( const char * p, int len, ConverterState* pState ) const
+   {
+      return ((PublicTextCodec*)m_pUtf8Codec)->publicConvertToUnicode( p, len, pState );
+   }
+};
+
+void OptionDialog::setupRegionalPage( void )
+{
+   new Utf8BOMCodec();
+
+   QFrame* page = new QFrame();
+   KPageWidgetItem* pageItem = new KPageWidgetItem( page, i18n("Regional Settings") );
+   pageItem->setHeader( i18n("Regional Settings") );
+   pageItem->setIcon( KIcon("locale" ) );
+   addPage( pageItem );
+
+   QVBoxLayout *topLayout = new QVBoxLayout( page );
+   topLayout->setMargin( 5 );
+   topLayout->setSpacing( spacingHint() );
+
+   QGridLayout *gbox = new QGridLayout();
+   gbox->setColumnStretch(1,5);
+   topLayout->addLayout( gbox );
+   int line=0;
+
+   QLabel* label;
+
+#ifdef KREPLACEMENTS_H
+static const char* countryMap[]={
+"af Afrikaans",
+"ar Arabic",
+"az Azerbaijani",
+"be Belarusian",
+"bg Bulgarian",
+"bn Bengali",
+"bo Tibetan",
+"br Breton",
+"bs Bosnian",
+"ca Catalan",
+"ca@valencia Catalan (Valencian)",
+"cs Czech",
+"cy Welsh",
+"da Danish",
+"de German",
+"el Greek",
+"en_GB British English",
+"eo Esperanto",
+"es Spanish",
+"et Estonian",
+"eu Basque",
+"fa Farsi (Persian)",
+"fi Finnish",
+"fo Faroese",
+"fr French",
+"ga Irish Gaelic",
+"gl Galician",
+"gu Gujarati",
+"he Hebrew",
+"hi Hindi",
+"hne Chhattisgarhi",
+"hr Croatian",
+"hsb Upper Sorbian",
+"hu Hungarian",
+"id Indonesian",
+"is Icelandic",
+"it Italian",
+"ja Japanese",
+"ka Georgian",
+"ko Korean",
+"ku Kurdish",
+"lo Lao",
+"lt Lithuanian",
+"lv Latvian",
+"mi Maori",
+"mk Macedonian",
+"ml Malayalam"
+"mn Mongolian",
+"ms Malay",
+"mt Maltese",
+"nb Norwegian Bookmal",
+"nds Low Saxon",
+"nl Dutch",
+"nn Norwegian Nynorsk",
+"nso Northern Sotho",
+"oc Occitan",
+"pl Polish",
+"pt Portuguese",
+"pt_BR Brazilian Portuguese",
+"ro Romanian",
+"ru Russian",
+"rw Kinyarwanda",
+"se Northern Sami",
+"sk Slovak",
+"sl Slovenian",
+"sq Albanian",
+"sr Serbian",
+"sr@Latn Serbian",
+"ss Swati",
+"sv Swedish",
+"ta Tamil",
+"tg Tajik",
+"th Thai",
+"tr Turkish",
+"uk Ukrainian",
+"uz Uzbek",
+"ven Venda",
+"vi Vietnamese",
+"wa Walloon",
+"xh Xhosa",
+"zh_CN Chinese Simplified",
+"zh_TW Chinese Traditional",
+"zu Zulu"
+};
+
+   label = new QLabel( i18n("Language (restart required)"), page );
+   gbox->addWidget( label, line, 0 );
+   OptionComboBox* pLanguage = new OptionComboBox( 0, "Language", &m_options.m_language, page, this );
+   gbox->addWidget( pLanguage, line, 1 );
+   pLanguage->addItem( "Auto" );  // Must not translate, won't work otherwise!
+   pLanguage->addItem( "en_orig" );
+      
+#if !defined(_WIN32) && !defined(Q_OS_OS2) && !defined(__APPLE__)
+   // Read directory: Find all kdiff3_*.qm-files and insert the found files here
+   QDir localeDir( "/usr/share/locale" ); // See also kreplacements.cpp: getTranslationDir()
+   QStringList dirList = localeDir.entryList(QDir::Dirs | QDir::NoDotAndDotDot, QDir::Name);
+
+   for( int i = 0; i<dirList.size(); ++i )
+   {
+       QString languageId = dirList[i];
+       if ( ! QFile::exists( "/usr/share/locale/" + languageId + "/LC_MESSAGES/kdiff3.qm" ) )
+           continue;
+#else
+   // Read directory: Find all kdiff3_*.qm-files and insert the found files here
+   
+   QDir localeDir( getTranslationDir(QString()) );
+   QStringList fileList = localeDir.entryList( QStringList("kdiff3_*.qm") , QDir::Files, QDir::Name );
+   for( int i=0; i<fileList.size(); ++i )
+   {      
+      QString fileName = fileList[i];
+      // Skip the "kdiff3_" and omit the .qm
+      QString languageId = fileName.mid(7, fileName.length()-10 );
+#endif
+
+      unsigned int countryIdx=0;
+      for(countryIdx=0; countryIdx< sizeof(countryMap)/sizeof(countryMap[0]); ++countryIdx )
+      {
+         QString fullName = countryMap[countryIdx];
+         if ( QString(languageId+" ") == fullName.left(languageId.length()+1) )
+         {
+            languageId += " (" + fullName.mid(languageId.length()+1) + ")";
+         }
+      }
+      
+      pLanguage->addItem( languageId );
+   }
+   
+   label->setToolTip( i18n(
+      "Choose the language of the GUI strings or \"Auto\".\n"
+      "For a change of language to take place, quit and restart KDiff3.") 
+      );
+   ++line;
+/*
+   label = new QLabel( i18n("Codec for file contents"), page );
+   gbox->addWidget( label, line, 0 );
+   OptionComboBox* pFileCodec = new OptionComboBox( 0, "FileCodec", &m_options.m_fileCodec, page, this );
+   gbox->addWidget( pFileCodec, line, 1 );
+   insertCodecs( pFileCodec );
+   label->setToolTip( i18n(
+      "Choose the codec that should be used for your input files\n"
+      "or \"Auto\" if unsure." ) 
+      );
+   ++line;
+*/      
+#endif
+
+   m_pSameEncoding = new OptionCheckBox( i18n("Use the same encoding for everything:"), true, "SameEncoding", &m_options.m_bSameEncoding, page, this );
+   gbox->addWidget( m_pSameEncoding, line, 0, 1, 2 );
+   m_pSameEncoding->setToolTip( i18n(
+                  "Enable this allows to change all encodings by changing the first only.\n"
+                  "Disable this if different individual settings are needed."
+                  ) );
+   ++line;
+
+   label = new QLabel( i18n("Note: Local Encoding is ") + "\"" + QTextCodec::codecForLocale()->name() + "\"", page );
+   gbox->addWidget( label, line, 0 );
+   ++line;
+
+   label = new QLabel( i18n("File Encoding for A:"), page );
+   gbox->addWidget( label, line, 0 );
+   m_pEncodingAComboBox = new OptionEncodingComboBox( "EncodingForA", &m_options.m_pEncodingA, page, this );
+   gbox->addWidget( m_pEncodingAComboBox, line, 1 );
+
+   QString autoDetectToolTip = i18n(
+      "If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n"
+      "If the file is not Unicode then the selected encoding will be used as fallback.\n"
+      "(Unicode detection depends on the first bytes of a file.)"
+      );
+   m_pAutoDetectUnicodeA = new OptionCheckBox( i18n("Auto Detect Unicode"), true, "AutoDetectUnicodeA", &m_options.m_bAutoDetectUnicodeA, page, this );
+   gbox->addWidget( m_pAutoDetectUnicodeA, line, 2 );
+   m_pAutoDetectUnicodeA->setToolTip( autoDetectToolTip );
+   ++line;
+
+   label = new QLabel( i18n("File Encoding for B:"), page );
+   gbox->addWidget( label, line, 0 );
+   m_pEncodingBComboBox = new OptionEncodingComboBox( "EncodingForB", &m_options.m_pEncodingB, page, this );
+   gbox->addWidget( m_pEncodingBComboBox, line, 1 );
+   m_pAutoDetectUnicodeB = new OptionCheckBox( i18n("Auto Detect Unicode"), true, "AutoDetectUnicodeB", &m_options.m_bAutoDetectUnicodeB, page, this );
+   gbox->addWidget( m_pAutoDetectUnicodeB, line, 2 );
+   m_pAutoDetectUnicodeB->setToolTip( autoDetectToolTip );
+   ++line;
+
+   label = new QLabel( i18n("File Encoding for C:"), page );
+   gbox->addWidget( label, line, 0 );
+   m_pEncodingCComboBox = new OptionEncodingComboBox( "EncodingForC", &m_options.m_pEncodingC, page, this );
+   gbox->addWidget( m_pEncodingCComboBox, line, 1 );
+   m_pAutoDetectUnicodeC = new OptionCheckBox( i18n("Auto Detect Unicode"), true, "AutoDetectUnicodeC", &m_options.m_bAutoDetectUnicodeC, page, this );
+   gbox->addWidget( m_pAutoDetectUnicodeC, line, 2 );
+   m_pAutoDetectUnicodeC->setToolTip( autoDetectToolTip );
+   ++line;
+
+   label = new QLabel( i18n("File Encoding for Merge Output and Saving:"), page );
+   gbox->addWidget( label, line, 0 );
+   m_pEncodingOutComboBox = new OptionEncodingComboBox( "EncodingForOutput", &m_options.m_pEncodingOut, page, this );
+   gbox->addWidget( m_pEncodingOutComboBox, line, 1 );
+   m_pAutoSelectOutEncoding = new OptionCheckBox( i18n("Auto Select"), true, "AutoSelectOutEncoding", &m_options.m_bAutoSelectOutEncoding, page, this );
+   gbox->addWidget( m_pAutoSelectOutEncoding, line, 2 );
+   m_pAutoSelectOutEncoding->setToolTip( i18n(
+      "If enabled then the encoding from the input files is used.\n"
+      "In ambiguous cases a dialog will ask the user to choose the encoding for saving."
+      ) );
+   ++line;
+   label = new QLabel( i18n("File Encoding for Preprocessor Files:"), page );
+   gbox->addWidget( label, line, 0 );
+   m_pEncodingPPComboBox = new OptionEncodingComboBox( "EncodingForPP", &m_options.m_pEncodingPP, page, this );
+   gbox->addWidget( m_pEncodingPPComboBox, line, 1 );   
+   ++line;
+
+   connect(m_pSameEncoding, SIGNAL(toggled(bool)), this, SLOT(slotEncodingChanged()));
+   connect(m_pEncodingAComboBox, SIGNAL(activated(int)), this, SLOT(slotEncodingChanged()));
+   connect(m_pAutoDetectUnicodeA, SIGNAL(toggled(bool)), this, SLOT(slotEncodingChanged()));
+   connect(m_pAutoSelectOutEncoding, SIGNAL(toggled(bool)), this, SLOT(slotEncodingChanged()));
+
+   OptionCheckBox* pRightToLeftLanguage = new OptionCheckBox( i18n("Right To Left Language"), false, "RightToLeftLanguage", &m_options.m_bRightToLeftLanguage, page, this );
+   gbox->addWidget( pRightToLeftLanguage, line, 0, 1, 2 );
+   pRightToLeftLanguage->setToolTip( i18n(
+                 "Some languages are read from right to left.\n"
+                 "This setting will change the viewer and editor accordingly."));
+   ++line;   
+
+
+   topLayout->addStretch(10);
+}
+
+#ifdef _WIN32
+#include "ccInstHelper.cpp"
+#endif
+
+void OptionDialog::setupIntegrationPage( void )
+{
+   QFrame* page = new QFrame();
+   KPageWidgetItem* pageItem = new KPageWidgetItem( page, i18n("Integration") );
+   pageItem->setHeader( i18n("Integration Settings") );
+   pageItem->setIcon( KIcon( "preferences-desktop-launch-feedback" ) );
+   addPage( pageItem );
+
+   QVBoxLayout *topLayout = new QVBoxLayout( page );
+   topLayout->setMargin( 5 );
+   topLayout->setSpacing( spacingHint() );
+
+   QGridLayout *gbox = new QGridLayout();
+   gbox->setColumnStretch(2,5);
+   topLayout->addLayout( gbox );
+   int line=0;
+
+   QLabel* label;
+   label = new QLabel( i18n("Command line options to ignore:"), page );
+   gbox->addWidget( label, line, 0 );
+   OptionLineEdit* pIgnorableCmdLineOptions = new OptionLineEdit( "-u;-query;-html;-abort", "IgnorableCmdLineOptions", &m_options.m_ignorableCmdLineOptions, page, this );
+   gbox->addWidget( pIgnorableCmdLineOptions, line, 1, 1, 2 );
+   label->setToolTip( i18n(
+      "List of command line options that should be ignored when KDiff3 is used by other tools.\n"
+      "Several values can be specified if separated via ';'\n"
+      "This will suppress the \"Unknown option\" error."
+      ));
+   ++line;
+
+
+   OptionCheckBox* pEscapeKeyQuits = new OptionCheckBox( i18n("Quit also via Escape key"), false, "EscapeKeyQuits", &m_options.m_bEscapeKeyQuits, page, this );
+   gbox->addWidget( pEscapeKeyQuits, line, 0, 1, 2 );
+   pEscapeKeyQuits->setToolTip( i18n(
+                  "Fast method to exit.\n"
+                  "For those who are used to using the Escape key."  ) );
+   ++line;
+
+#ifdef _WIN32
+   QPushButton* pIntegrateWithClearCase = new QPushButton( i18n("Integrate with ClearCase"), page);
+   gbox->addWidget( pIntegrateWithClearCase, line, 0 );
+   pIntegrateWithClearCase->setToolTip( i18n(
+                 "Integrate with Rational ClearCase from IBM.\n"
+                 "Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n"
+                 "(Only enabled when ClearCase \"bin\" directory is in the path.)"));
+   connect(pIntegrateWithClearCase, SIGNAL(clicked()),this, SLOT(slotIntegrateWithClearCase()) );
+   pIntegrateWithClearCase->setEnabled( integrateWithClearCase( "existsClearCase", "" )!=0 );
+
+   QPushButton* pRemoveClearCaseIntegration = new QPushButton( i18n("Remove ClearCase Integration"), page);
+   gbox->addWidget( pRemoveClearCaseIntegration, line, 1 );
+   pRemoveClearCaseIntegration->setToolTip( i18n(
+                 "Restore the old \"map\" file from before doing the ClearCase integration."));
+   connect(pRemoveClearCaseIntegration, SIGNAL(clicked()),this, SLOT(slotRemoveClearCaseIntegration()) );
+   pRemoveClearCaseIntegration->setEnabled( integrateWithClearCase( "existsClearCase", "" )!=0 );
+
+   ++line;
+#endif
+
+   topLayout->addStretch(10);
+}
+
+void OptionDialog::slotIntegrateWithClearCase()
+{
+#ifdef _WIN32
+   char kdiff3CommandPath[1000];
+   GetModuleFileNameA( 0, kdiff3CommandPath, sizeof(kdiff3CommandPath)-1 );
+   integrateWithClearCase( "install", kdiff3CommandPath );
+#endif
+}
+
+void OptionDialog::slotRemoveClearCaseIntegration()
+{
+#ifdef _WIN32
+   char kdiff3CommandPath[1000];
+   GetModuleFileNameA( 0, kdiff3CommandPath, sizeof(kdiff3CommandPath)-1 );
+   integrateWithClearCase( "uninstall", kdiff3CommandPath );
+#endif
+}
+
+void OptionDialog::slotEncodingChanged()
+{
+   if ( m_pSameEncoding->isChecked() )
+   {
+      m_pEncodingBComboBox->setEnabled( false );
+      m_pEncodingBComboBox->setCurrentIndex( m_pEncodingAComboBox->currentIndex() );
+      m_pEncodingCComboBox->setEnabled( false );
+      m_pEncodingCComboBox->setCurrentIndex( m_pEncodingAComboBox->currentIndex() );
+      m_pEncodingOutComboBox->setEnabled( false );
+      m_pEncodingOutComboBox->setCurrentIndex( m_pEncodingAComboBox->currentIndex() );
+      m_pEncodingPPComboBox->setEnabled( false );
+      m_pEncodingPPComboBox->setCurrentIndex( m_pEncodingAComboBox->currentIndex() );
+      m_pAutoDetectUnicodeB->setEnabled( false );
+      m_pAutoDetectUnicodeB->setCheckState( m_pAutoDetectUnicodeA->checkState() );
+      m_pAutoDetectUnicodeC->setEnabled( false );
+      m_pAutoDetectUnicodeC->setCheckState( m_pAutoDetectUnicodeA->checkState() );
+      m_pAutoSelectOutEncoding->setEnabled( false );
+      m_pAutoSelectOutEncoding->setCheckState( m_pAutoDetectUnicodeA->checkState() );
+   }
+   else
+   {
+      m_pEncodingBComboBox->setEnabled( true );
+      m_pEncodingCComboBox->setEnabled( true );
+      m_pEncodingOutComboBox->setEnabled( true );
+      m_pEncodingPPComboBox->setEnabled( true );
+      m_pAutoDetectUnicodeB->setEnabled( true );
+      m_pAutoDetectUnicodeC->setEnabled( true );
+      m_pAutoSelectOutEncoding->setEnabled( true );
+      m_pEncodingOutComboBox->setEnabled( m_pAutoSelectOutEncoding->checkState()==Qt::Unchecked );
+   }
+}
+
+void OptionDialog::setupKeysPage( void )
+{
+   //QVBox *page = addVBoxPage( i18n("Keys"), i18n("KeyDialog" ),
+   //                          BarIcon("fonts", KIconLoader::SizeMedium ) );
+
+   //QVBoxLayout *topLayout = new QVBoxLayout( page, 0, spacingHint() );
+    //           new KFontChooser( page,"font",false/*onlyFixed*/,QStringList(),false,6 );
+   //m_pKeyDialog=new KKeyDialog( false, 0 );
+   //topLayout->addWidget( m_pKeyDialog );
+}
+
+void OptionDialog::slotOk( void )
+{
+   slotApply();
+
+   accept();
+}
+
+
+/** Copy the values from the widgets to the public variables.*/
+void OptionDialog::slotApply( void )
+{
+   std::list<OptionItem*>::iterator i;
+   for(i=m_optionItemList.begin(); i!=m_optionItemList.end(); ++i)
+   {
+      (*i)->apply();
+   }
+
+   emit applyDone();
+
+#ifdef _WIN32
+   QString locale = m_options.m_language;
+   if ( locale == "Auto" || locale.isEmpty() )
+      locale = QLocale::system().name().left(2);
+   int spacePos = locale.indexOf(' ');
+   if (spacePos>0) locale = locale.left(spacePos);
+   QSettings settings("HKEY_CURRENT_USER\\Software\\KDiff3\\diff-ext", QSettings::NativeFormat);
+   settings.setValue( "Language", locale );
+#endif
+}
+
+/** Set the default values in the widgets only, while the
+    public variables remain unchanged. */
+void OptionDialog::slotDefault()
+{
+   int result = KMessageBox::warningContinueCancel(this, i18n("This resets all options. Not only those of the current topic.") );
+   if ( result==KMessageBox::Cancel ) return;
+   else resetToDefaults();
+}
+
+void OptionDialog::resetToDefaults()
+{
+   std::list<OptionItem*>::iterator i;
+   for(i=m_optionItemList.begin(); i!=m_optionItemList.end(); ++i)
+   {
+      (*i)->setToDefault();
+   }
+
+   slotEncodingChanged();
+}
+
+/** Initialise the widgets using the values in the public varibles. */
+void OptionDialog::setState()
+{
+   std::list<OptionItem*>::iterator i;
+   for(i=m_optionItemList.begin(); i!=m_optionItemList.end(); ++i)
+   {
+      (*i)->setToCurrent();
+   }
+
+   slotEncodingChanged();
+}
+
+class ConfigValueMap : public ValueMap
+{
+private:
+   KConfigGroup m_config;
+public:
+   ConfigValueMap( const KConfigGroup& config ) : m_config( config ){ }
+
+   void writeEntry(const QString& s, const QFont&  v ){ m_config.writeEntry(s,v); }
+   void writeEntry(const QString& s, const QColor& v ){ m_config.writeEntry(s,v); }
+   void writeEntry(const QString& s, const QSize&  v ){ m_config.writeEntry(s,v); }
+   void writeEntry(const QString& s, const QPoint& v ){ m_config.writeEntry(s,v); }
+   void writeEntry(const QString& s, int v )          { m_config.writeEntry(s,v); }
+   void writeEntry(const QString& s, bool v )         { m_config.writeEntry(s,v); }
+   void writeEntry(const QString& s, const QString& v ){ m_config.writeEntry(s,v); }
+   void writeEntry(const QString& s, const char* v )   { m_config.writeEntry(s,v); }
+
+   QFont       readFontEntry (const QString& s, const QFont* defaultVal ) { return m_config.readEntry(s,*defaultVal); }
+   QColor      readColorEntry(const QString& s, const QColor* defaultVal ){ return m_config.readEntry(s,*defaultVal); }
+   QSize       readSizeEntry (const QString& s, const QSize* defaultVal ) { return m_config.readEntry(s,*defaultVal); }
+   QPoint      readPointEntry(const QString& s, const QPoint* defaultVal) { return m_config.readEntry(s,*defaultVal); }
+   bool        readBoolEntry (const QString& s, bool defaultVal )   { return m_config.readEntry(s,defaultVal); }
+   int         readNumEntry  (const QString& s, int defaultVal )    { return m_config.readEntry(s,defaultVal); }
+   QString     readStringEntry(const QString& s, const QString& defaultVal){ return m_config.readEntry(s,defaultVal); }
+#ifdef KREPLACEMENTS_H
+   void writeEntry(const QString& s, const QStringList& v, char separator ){ m_config.writeEntry(s,v,separator); }
+   QStringList readListEntry (const QString& s, const QStringList& def, char separator )    { return m_config.readEntry(s, def ,separator ); }
+#else
+   void writeEntry(const QString& s, const QStringList& v, char /*separator*/ ){ m_config.writeEntry(s,v); }
+   QStringList readListEntry (const QString& s, const QStringList& def, char /*separator*/ )    { return m_config.readEntry(s, def ); }
+#endif
+};
+
+
+void OptionDialog::saveOptions( KSharedConfigPtr config )
+{
+   // No i18n()-Translations here!
+
+   ConfigValueMap cvm(config->group(KDIFF3_CONFIG_GROUP));
+   std::list<OptionItem*>::iterator i;
+   for(i=m_optionItemList.begin(); i!=m_optionItemList.end(); ++i)
+   {
+      (*i)->doUnpreserve();
+      (*i)->write(&cvm);
+   }
+}
+
+void OptionDialog::readOptions( KSharedConfigPtr config )
+{
+   // No i18n()-Translations here!
+
+   ConfigValueMap cvm(config->group(KDIFF3_CONFIG_GROUP));
+   std::list<OptionItem*>::iterator i;
+   for(i=m_optionItemList.begin(); i!=m_optionItemList.end(); ++i)
+   {
+      (*i)->read(&cvm);
+   }
+
+   setState();
+}
+
+QString OptionDialog::parseOptions( const QStringList& optionList )
+{
+   QString result;
+   QStringList::const_iterator i;
+   for ( i=optionList.begin(); i!=optionList.end(); ++i )
+   {
+      QString s = *i;
+
+      int pos = s.indexOf('=');
+      if( pos > 0 )                     // seems not to have a tag
+      {
+         QString key = s.left(pos);
+         QString val = s.mid(pos+1);
+         std::list<OptionItem*>::iterator j;
+         bool bFound = false;
+         for(j=m_optionItemList.begin(); j!=m_optionItemList.end(); ++j)
+         {
+            if ( (*j)->getSaveName()==key )
+            {
+              (*j)->doPreserve();
+               ValueMap config;
+               config.writeEntry( key, val );  // Write the value as a string and             
+               (*j)->read(&config);       // use the internal conversion from string to the needed value.
+               bFound = true;
+               break;
+            }
+         }
+         if ( ! bFound )
+         {
+            result += "No config item named \"" + key + "\"\n";
+         }
+      }
+      else
+      {
+         result += "No '=' found in \"" + s + "\"\n";
+      }
+   }
+   return result;
+}
+
+QString OptionDialog::calcOptionHelp()
+{
+   ValueMap config;
+   std::list<OptionItem*>::iterator j;
+   for(j=m_optionItemList.begin(); j!=m_optionItemList.end(); ++j)
+   {
+      (*j)->write( &config );
+   }
+   return config.getAsString();
+}
+
+void OptionDialog::slotHistoryMergeRegExpTester()
+{
+   RegExpTester dlg(this, s_autoMergeRegExpToolTip, s_historyStartRegExpToolTip, 
+                          s_historyEntryStartRegExpToolTip, s_historyEntryStartSortKeyOrderToolTip );
+   dlg.init(m_pAutoMergeRegExpLineEdit->currentText(), m_pHistoryStartRegExpLineEdit->currentText(), 
+            m_pHistoryEntryStartRegExpLineEdit->currentText(), m_pHistorySortKeyOrderLineEdit->currentText());
+   if ( dlg.exec() )
+   {
+      m_pAutoMergeRegExpLineEdit->setEditText( dlg.autoMergeRegExp() );
+      m_pHistoryStartRegExpLineEdit->setEditText( dlg.historyStartRegExp() );
+      m_pHistoryEntryStartRegExpLineEdit->setEditText( dlg.historyEntryStartRegExp() );
+      m_pHistorySortKeyOrderLineEdit->setEditText( dlg.historySortKeyOrder() );
+   }
+}
+
+
+//#include "optiondialog.moc"
diff --git a/src-QT4/optiondialog.h b/src-QT4/optiondialog.h
new file mode 100644 (file)
index 0000000..b238cc3
--- /dev/null
@@ -0,0 +1,115 @@
+/*
+ *   kdiff3 - Text Diff And Merge Tool
+ *   Copyright (C) 2002-2007  Joachim Eibl, joachim.eibl at gmx.de
+ *
+ *   This program is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Steet, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef OPTION_DIALOG_H
+#define OPTION_DIALOG_H
+
+
+#include <kpagedialog.h>
+#include <QStringList>
+#include <list>
+#include <kcmdlineargs.h>
+
+#include "options.h"
+
+class OptionItem;
+class OptionCheckBox;
+class OptionEncodingComboBox;
+class OptionLineEdit;
+class KKeyDialog;
+
+
+class OptionDialog : public KPageDialog
+{
+   Q_OBJECT
+
+public:
+
+    OptionDialog( bool bShowDirMergeSettings, QWidget *parent = 0, char *name = 0 );
+    ~OptionDialog( void );
+    QString parseOptions( const QStringList& optionList );
+    QString calcOptionHelp();
+
+    Options m_options;
+
+    void saveOptions(KSharedConfigPtr config);
+    void readOptions(KSharedConfigPtr config);
+
+    void setState(); // Must be called before calling exec();
+
+    void addOptionItem(OptionItem*);
+    KKeyDialog* m_pKeyDialog;
+protected slots:
+    virtual void slotDefault( void );
+    virtual void slotOk( void );
+    virtual void slotApply( void );
+
+    void slotEncodingChanged();
+    void slotHistoryMergeRegExpTester();
+    void slotIntegrateWithClearCase();
+    void slotRemoveClearCaseIntegration();
+signals:
+    void applyDone();
+private:
+    void resetToDefaults();
+
+    std::list<OptionItem*> m_optionItemList;
+
+    OptionCheckBox* m_pSameEncoding;
+    OptionEncodingComboBox* m_pEncodingAComboBox;
+    OptionCheckBox* m_pAutoDetectUnicodeA;
+    OptionEncodingComboBox* m_pEncodingBComboBox;
+    OptionCheckBox* m_pAutoDetectUnicodeB;
+    OptionEncodingComboBox* m_pEncodingCComboBox;
+    OptionCheckBox* m_pAutoDetectUnicodeC;
+    OptionEncodingComboBox* m_pEncodingOutComboBox;
+    OptionCheckBox* m_pAutoSelectOutEncoding;
+    OptionEncodingComboBox* m_pEncodingPPComboBox;
+    OptionCheckBox* m_pHistoryAutoMerge;
+    OptionLineEdit* m_pAutoMergeRegExpLineEdit;
+    OptionLineEdit* m_pHistoryStartRegExpLineEdit;
+    OptionLineEdit* m_pHistoryEntryStartRegExpLineEdit;
+    OptionCheckBox* m_pHistoryMergeSorting;
+    OptionLineEdit* m_pHistorySortKeyOrderLineEdit;
+
+private:
+    void setupFontPage();
+    void setupColorPage();
+    void setupEditPage();
+    void setupDiffPage();
+    void setupMergePage();
+    void setupDirectoryMergePage();
+    void setupKeysPage();
+    void setupRegionalPage();
+    void setupIntegrationPage();
+    void setupOtherOptions();
+};
+
+
+
+
+#endif
+
+
+
+
+
+
+
diff --git a/src-QT4/options.h b/src-QT4/options.h
new file mode 100644 (file)
index 0000000..e0fb850
--- /dev/null
@@ -0,0 +1,156 @@
+/*
+ *   kdiff3 - Text Diff And Merge Tool
+ *   Copyright (C) 2002-2007  Joachim Eibl, joachim.eibl at gmx.de
+ *
+ *   This program is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Steet, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef OPTIONS_H
+#define OPTIONS_H
+
+
+#include <QStringList>
+#include <list>
+
+enum e_LineEndStyle
+{
+   eLineEndStyleUnix=0,
+   eLineEndStyleDos,
+   eLineEndStyleAutoDetect,
+   eLineEndStyleUndefined, // only one line exists
+   eLineEndStyleConflict   // User must resolve manually
+};
+
+class Options
+{
+public:
+    // Some settings are not available in the option dialog:
+    QSize  m_geometry;
+    QPoint m_position;
+    bool   m_bMaximised;
+    bool   m_bShowToolBar;
+    bool   m_bShowStatusBar;
+    int    m_toolBarPos;
+
+    // These are the results of the option dialog.
+    QFont m_font;
+    bool m_bItalicForDeltas;
+
+    QColor m_fgColor;
+    QColor m_bgColor;
+    QColor m_diffBgColor;
+    QColor m_colorA;
+    QColor m_colorB;
+    QColor m_colorC;
+    QColor m_colorForConflict;
+    QColor m_currentRangeBgColor;
+    QColor m_currentRangeDiffBgColor;
+    QColor m_oldestFileColor;
+    QColor m_midAgeFileColor;
+    QColor m_newestFileColor;
+    QColor m_missingFileColor;
+    QColor m_manualHelpRangeColor;
+
+    bool m_bWordWrap;
+
+    bool m_bReplaceTabs;
+    bool m_bAutoIndentation;
+    int  m_tabSize;
+    bool m_bAutoCopySelection;
+    bool m_bSameEncoding;
+    QTextCodec*  m_pEncodingA;
+    bool m_bAutoDetectUnicodeA;
+    QTextCodec*  m_pEncodingB;
+    bool m_bAutoDetectUnicodeB;
+    QTextCodec*  m_pEncodingC;
+    bool m_bAutoDetectUnicodeC;
+    QTextCodec*  m_pEncodingOut;
+    bool m_bAutoSelectOutEncoding;
+    QTextCodec*  m_pEncodingPP;
+    int  m_lineEndStyle;
+
+    bool m_bPreserveCarriageReturn;
+    bool m_bTryHard;
+    bool m_bShowWhiteSpaceCharacters;
+    bool m_bShowWhiteSpace;
+    bool m_bShowLineNumbers;
+    bool m_bHorizDiffWindowSplitting;
+    bool m_bShowInfoDialogs;
+    bool m_bDiff3AlignBC;
+
+    int  m_whiteSpace2FileMergeDefault;
+    int  m_whiteSpace3FileMergeDefault;
+    bool m_bIgnoreCase;
+    bool m_bIgnoreNumbers;
+    bool m_bIgnoreComments;
+    QString m_PreProcessorCmd;
+    QString m_LineMatchingPreProcessorCmd;
+    bool m_bRunRegExpAutoMergeOnMergeStart;
+    QString m_autoMergeRegExp;
+    bool m_bRunHistoryAutoMergeOnMergeStart;
+    QString m_historyStartRegExp;
+    QString m_historyEntryStartRegExp;
+    bool m_bHistoryMergeSorting;
+    QString m_historyEntryStartSortKeyOrder;
+    int m_maxNofHistoryEntries;
+    QString m_IrrelevantMergeCmd;
+    bool m_bAutoSaveAndQuitOnMergeWithoutConflicts;
+
+    bool m_bAutoAdvance;
+    int  m_autoAdvanceDelay;
+
+    QStringList m_recentAFiles;
+    QStringList m_recentBFiles;
+    QStringList m_recentCFiles;
+
+    QStringList m_recentEncodings;
+
+    QStringList m_recentOutputFiles;
+
+    // Directory Merge options
+    bool m_bDmSyncMode;
+    bool m_bDmRecursiveDirs;
+    bool m_bDmFollowFileLinks;
+    bool m_bDmFollowDirLinks;
+    bool m_bDmFindHidden;
+    bool m_bDmCreateBakFiles;
+    bool m_bDmBinaryComparison;
+    bool m_bDmFullAnalysis;
+    bool m_bDmTrustDate;
+    bool m_bDmTrustDateFallbackToBinary;
+    bool m_bDmTrustSize;
+    bool m_bDmCopyNewer;
+    //bool m_bDmShowOnlyDeltas;
+    bool m_bDmShowIdenticalFiles;
+    bool m_bDmUseCvsIgnore;
+    bool m_bDmWhiteSpaceEqual;
+    bool m_bDmCaseSensitiveFilenameComparison;
+    bool m_bDmUnfoldSubdirs;
+    bool m_bDmSkipDirStatus;
+    QString m_DmFilePattern;
+    QString m_DmFileAntiPattern;
+    QString m_DmDirAntiPattern;
+
+    QString m_language;
+    bool m_bRightToLeftLanguage;
+
+    QString m_ignorableCmdLineOptions;
+    bool m_bIntegrateWithClearCase;
+    bool m_bEscapeKeyQuits;
+};
+
+
+#endif
diff --git a/src-QT4/pdiff.cpp b/src-QT4/pdiff.cpp
new file mode 100644 (file)
index 0000000..59492bc
--- /dev/null
@@ -0,0 +1,2456 @@
+/***************************************************************************
+                         pdiff.cpp  -  Implementation for class KDiff3App
+                         ---------------
+    begin                : Mon March 18 20:04:50 CET 2002
+    copyright            : (C) 2002-2007 by Joachim Eibl
+    email                : joachim.eibl at gmx.de
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+#include "stable.h"
+
+#include "difftextwindow.h"
+#include "mergeresultwindow.h"
+#include "directorymergewindow.h"
+#include "smalldialogs.h"
+
+#include <algorithm>
+#include <cstdio>
+#include <ctype.h>
+
+#include <QClipboard>
+#include <QScrollBar>
+#include <QLayout>
+#include <QCheckBox>
+#include <QSplitter>
+#include <QDir>
+#include <QFile>
+#include <QLineEdit>
+#include <QComboBox>
+#include <QDropEvent>
+#include <QUrl>
+#include <QProcess>
+
+#include <klocale.h>
+#include <kmessagebox.h>
+#include <kfontdialog.h>
+#include <kstatusbar.h>
+
+
+#include <assert.h>
+
+#include "kdiff3.h"
+#include "optiondialog.h"
+#include "fileaccess.h"
+#include "progress.h"
+#ifdef _WIN32
+#include <windows.h>
+#else
+#include <unistd.h>
+#include <kshortcutsdialog.h>
+#endif
+
+bool g_bIgnoreWhiteSpace = true;
+bool g_bIgnoreTrivialMatches = true;
+
+// Just make sure that all input lines are in the output too, exactly once.
+static void debugLineCheck( Diff3LineList& d3ll, int size, int idx )
+{
+   Diff3LineList::iterator it = d3ll.begin();
+   int i=0;
+
+   for ( it = d3ll.begin(); it!= d3ll.end(); ++it )
+   {
+      int l=0;
+      if      (idx==1) l=(*it).lineA;
+      else if (idx==2) l=(*it).lineB;
+      else if (idx==3) l=(*it).lineC;
+      else assert(false);
+
+      if ( l!=-1 )
+      {
+         if( l!=i )
+         {
+            KMessageBox::error(0, i18n(
+               "Data loss error:\n"
+               "If it is reproducible please contact the author.\n"
+               ), i18n("Severe Internal Error") );
+            assert(false);
+            fprintf(stderr, "Severe Internal Error.\n");
+            ::exit(-1);
+         }
+         ++i;
+      }
+   }
+
+   if( size!=i )
+   {
+      KMessageBox::error(0, i18n(
+         "Data loss error:\n"
+         "If it is reproducible please contact the author.\n"
+         ), i18n("Severe Internal Error") );
+      assert(false);
+      fprintf(stderr, "Severe Internal Error.\n");
+      ::exit(-1);
+   }
+}
+
+
+
+
+void KDiff3App::mainInit( TotalDiffStatus* pTotalDiffStatus, bool bLoadFiles, bool bUseCurrentEncoding)
+{
+   ProgressProxy pp;
+
+   // When doing a full analysis in the directory-comparison, then the statistics-results
+   // will be stored in the given TotalDiffStatus. Otherwise it will be 0.
+   bool bGUI = pTotalDiffStatus == 0;
+   if (pTotalDiffStatus==0) 
+      pTotalDiffStatus = &m_totalDiffStatus;
+
+   //bool bPreserveCarriageReturn = m_pOptions->m_bPreserveCarriageReturn;
+
+   bool bVisibleMergeResultWindow = ! m_outputFilename.isEmpty();
+   if ( bVisibleMergeResultWindow && bGUI )
+   {
+      //bPreserveCarriageReturn = false;
+
+      QString msg;
+
+      if ( !m_pOptions->m_PreProcessorCmd.isEmpty() )
+      {
+         msg += "- " + i18n("PreprocessorCmd: ") + m_pOptions->m_PreProcessorCmd + "\n";
+      }
+      if ( !msg.isEmpty() )
+      {
+         int result = KMessageBox::warningYesNo( this,
+                               i18n("The following option(s) you selected might change data:\n") + msg + 
+                               i18n("\nMost likely this is not wanted during a merge.\n"
+                                    "Do you want to disable these settings or continue with these settings active?"),
+                               i18n("Option Unsafe for Merging"), 
+                               KGuiItem( i18n("Use These Options During Merge") ), 
+                               KGuiItem( i18n("Disable Unsafe Options") )
+                               );
+
+         if (result == KMessageBox::No )
+         {
+            m_pOptions->m_PreProcessorCmd = "";
+         }
+      }
+   }
+
+   // Because of the progressdialog paintevents can occur, but data is invalid,
+   // so painting must be suppressed.
+   if (m_pDiffTextWindow1) m_pDiffTextWindow1->setPaintingAllowed( false );
+   if (m_pDiffTextWindow2) m_pDiffTextWindow2->setPaintingAllowed( false );
+   if (m_pDiffTextWindow3) m_pDiffTextWindow3->setPaintingAllowed( false );
+   if (m_pOverview)        m_pOverview->setPaintingAllowed( false );
+   if (m_pMergeResultWindow) m_pMergeResultWindow->setPaintingAllowed( false );
+
+   m_diff3LineList.clear();
+
+   if ( bLoadFiles )
+   {
+      QStringList errors;
+      m_manualDiffHelpList.clear();
+
+      if( m_sd3.isEmpty() )
+         pp.setMaxNofSteps( 4 );  // Read 2 files, 1 comparison, 1 finediff
+      else
+         pp.setMaxNofSteps( 9 );  // Read 3 files, 3 comparisons, 3 finediffs
+
+      // First get all input data.
+      pp.setInformation(i18n("Loading A"));
+      if (bUseCurrentEncoding==true)
+          errors = m_sd1.readAndPreprocess(m_sd1.getEncoding(), false);
+      else
+          errors = m_sd1.readAndPreprocess(m_pOptions->m_pEncodingA, m_pOptions->m_bAutoDetectUnicodeA);
+      foreach(QString error, errors)
+      {
+         KMessageBox::error( m_pOptionDialog, error );
+      }
+      pp.step();
+
+      pp.setInformation(i18n("Loading B"));
+      if (bUseCurrentEncoding==true)
+          errors = m_sd2.readAndPreprocess(m_sd2.getEncoding(), false);
+      else
+          errors = m_sd2.readAndPreprocess(m_pOptions->m_pEncodingB, m_pOptions->m_bAutoDetectUnicodeB);
+      foreach(QString error, errors)
+      {
+         KMessageBox::error( m_pOptionDialog, error );
+      }
+      pp.step();
+   }
+   else
+   {
+      if( m_sd3.isEmpty() )
+         pp.setMaxNofSteps( 2 );  // 1 comparison, 1 finediff
+      else
+         pp.setMaxNofSteps( 6 );  // 3 comparisons, 3 finediffs
+   }
+
+   pTotalDiffStatus->reset();
+   // Run the diff.
+   if ( m_sd3.isEmpty() )
+   {
+      pTotalDiffStatus->bBinaryAEqB = m_sd1.isBinaryEqualWith( m_sd2 );
+      pp.setInformation(i18n("Diff: A <-> B"));
+
+      runDiff( m_sd1.getLineDataForDiff(), m_sd1.getSizeLines(), m_sd2.getLineDataForDiff(), m_sd2.getSizeLines(), m_diffList12,1,2,
+               &m_manualDiffHelpList, &m_pOptionDialog->m_options);
+
+      pp.step();
+
+      pp.setInformation(i18n("Linediff: A <-> B"));
+      calcDiff3LineListUsingAB( &m_diffList12, m_diff3LineList );
+      pTotalDiffStatus->bTextAEqB = fineDiff( m_diff3LineList, 1, m_sd1.getLineDataForDisplay(), m_sd2.getLineDataForDisplay() );
+      if ( m_sd1.getSizeBytes()==0 ) pTotalDiffStatus->bTextAEqB=false;
+
+      pp.step();
+   }
+   else
+   {
+      if (bLoadFiles)
+      {
+         pp.setInformation(i18n("Loading C"));
+         if (bUseCurrentEncoding==true)
+             m_sd3.readAndPreprocess(m_sd3.getEncoding(), false);
+         else
+             m_sd3.readAndPreprocess(m_pOptions->m_pEncodingC, m_pOptions->m_bAutoDetectUnicodeC);
+         pp.step();
+      }
+
+      pTotalDiffStatus->bBinaryAEqB = m_sd1.isBinaryEqualWith( m_sd2 );
+      pTotalDiffStatus->bBinaryAEqC = m_sd1.isBinaryEqualWith( m_sd3 );
+      pTotalDiffStatus->bBinaryBEqC = m_sd3.isBinaryEqualWith( m_sd2 );
+
+      pp.setInformation(i18n("Diff: A <-> B"));
+      runDiff( m_sd1.getLineDataForDiff(), m_sd1.getSizeLines(), m_sd2.getLineDataForDiff(), m_sd2.getSizeLines(), m_diffList12,1,2,
+               &m_manualDiffHelpList, &m_pOptionDialog->m_options);
+      pp.step();
+      pp.setInformation(i18n("Diff: B <-> C"));
+      runDiff( m_sd2.getLineDataForDiff(), m_sd2.getSizeLines(), m_sd3.getLineDataForDiff(), m_sd3.getSizeLines(), m_diffList23,2,3,
+               &m_manualDiffHelpList, &m_pOptionDialog->m_options);
+      pp.step();
+      pp.setInformation(i18n("Diff: A <-> C"));
+      runDiff( m_sd1.getLineDataForDiff(), m_sd1.getSizeLines(), m_sd3.getLineDataForDiff(), m_sd3.getSizeLines(), m_diffList13,1,3,
+               &m_manualDiffHelpList, &m_pOptionDialog->m_options);
+      pp.step();
+
+      calcDiff3LineListUsingAB( &m_diffList12, m_diff3LineList );
+      calcDiff3LineListUsingAC( &m_diffList13, m_diff3LineList );
+      correctManualDiffAlignment( m_diff3LineList, &m_manualDiffHelpList );
+      calcDiff3LineListTrim( m_diff3LineList, m_sd1.getLineDataForDiff(), m_sd2.getLineDataForDiff(), m_sd3.getLineDataForDiff(), &m_manualDiffHelpList );
+
+      if ( m_pOptions->m_bDiff3AlignBC )
+      {
+         calcDiff3LineListUsingBC( &m_diffList23, m_diff3LineList );
+         correctManualDiffAlignment( m_diff3LineList, &m_manualDiffHelpList );
+         calcDiff3LineListTrim( m_diff3LineList, m_sd1.getLineDataForDiff(), m_sd2.getLineDataForDiff(), m_sd3.getLineDataForDiff(), &m_manualDiffHelpList );
+      }
+      debugLineCheck( m_diff3LineList, m_sd1.getSizeLines(), 1 );
+      debugLineCheck( m_diff3LineList, m_sd2.getSizeLines(), 2 );
+      debugLineCheck( m_diff3LineList, m_sd3.getSizeLines(), 3 );
+
+      pp.setInformation(i18n("Linediff: A <-> B"));
+      pTotalDiffStatus->bTextAEqB = fineDiff( m_diff3LineList, 1, m_sd1.getLineDataForDisplay(), m_sd2.getLineDataForDisplay() );
+      pp.step();
+      pp.setInformation(i18n("Linediff: B <-> C"));
+      pTotalDiffStatus->bTextBEqC = fineDiff( m_diff3LineList, 2, m_sd2.getLineDataForDisplay(), m_sd3.getLineDataForDisplay() );
+      pp.step();
+      pp.setInformation(i18n("Linediff: A <-> C"));
+      pTotalDiffStatus->bTextAEqC = fineDiff( m_diff3LineList, 3, m_sd3.getLineDataForDisplay(), m_sd1.getLineDataForDisplay() );
+      pp.step();
+      if ( m_sd1.getSizeBytes()==0 ) { pTotalDiffStatus->bTextAEqB=false;  pTotalDiffStatus->bTextAEqC=false; }
+      if ( m_sd2.getSizeBytes()==0 ) { pTotalDiffStatus->bTextAEqB=false;  pTotalDiffStatus->bTextBEqC=false; }
+   }
+   m_diffBufferInfo.init( &m_diff3LineList, &m_diff3LineVector,
+      m_sd1.getLineDataForDiff(), m_sd1.getSizeLines(),
+      m_sd2.getLineDataForDiff(), m_sd2.getSizeLines(),
+      m_sd3.getLineDataForDiff(), m_sd3.getSizeLines() );
+   calcWhiteDiff3Lines( m_diff3LineList, m_sd1.getLineDataForDiff(), m_sd2.getLineDataForDiff(), m_sd3.getLineDataForDiff() );
+   calcDiff3LineVector( m_diff3LineList, m_diff3LineVector );
+
+   // Calc needed lines for display
+   m_neededLines = m_diff3LineList.size();
+
+   QList<int> oldHeights;
+   if ( m_pDirectoryMergeSplitter->isVisible() )
+      oldHeights = m_pMainSplitter->sizes();
+
+   initView();
+
+   if ( m_pDirectoryMergeSplitter->isVisible() )
+   {
+      if (oldHeights.count() < 2)
+         oldHeights.append(0);
+      if (oldHeights[1]==0)    // Distribute the available space evenly between the two widgets.
+      {
+         oldHeights[1] = oldHeights[0]/2;
+         oldHeights[0] -= oldHeights[1];
+      }
+      if ( oldHeights[0]==0 && oldHeights[1]==0 )
+      {
+         oldHeights[1] = 100;
+         oldHeights[0] = 100;
+      }
+      m_pMainSplitter->setSizes( oldHeights );
+   }
+
+   m_pMainWidget->setVisible( bGUI );
+
+   m_bTripleDiff = ! m_sd3.isEmpty();
+
+   m_pMergeResultWindowTitle->setEncodings( m_sd1.getEncoding(), m_sd2.getEncoding(), m_sd3.getEncoding() );
+   if ( ! m_pOptions->m_bAutoSelectOutEncoding )
+      m_pMergeResultWindowTitle->setEncoding( m_pOptions->m_pEncodingOut );
+
+   m_pMergeResultWindowTitle->setLineEndStyles( m_sd1.getLineEndStyle(), m_sd2.getLineEndStyle(), m_sd3.getLineEndStyle() );
+
+   if ( bGUI )
+   {
+      const ManualDiffHelpList* pMDHL = &m_manualDiffHelpList;
+      m_pDiffTextWindow1->init( m_sd1.getAliasName(), m_sd1.getEncoding(), m_sd1.getLineEndStyle(),
+         m_sd1.getLineDataForDisplay(), m_sd1.getSizeLines(), &m_diff3LineVector, pMDHL, m_bTripleDiff );
+      m_pDiffTextWindow2->init( m_sd2.getAliasName(), m_sd2.getEncoding(), m_sd2.getLineEndStyle(),
+         m_sd2.getLineDataForDisplay(), m_sd2.getSizeLines(), &m_diff3LineVector, pMDHL, m_bTripleDiff );
+      m_pDiffTextWindow3->init( m_sd3.getAliasName(), m_sd3.getEncoding(), m_sd3.getLineEndStyle(),
+         m_sd3.getLineDataForDisplay(), m_sd3.getSizeLines(), &m_diff3LineVector, pMDHL, m_bTripleDiff );
+
+      m_pDiffTextWindowFrame3->setVisible(m_bTripleDiff);
+   }
+
+   m_bOutputModified = bVisibleMergeResultWindow;
+
+   m_pMergeResultWindow->init(
+      m_sd1.getLineDataForDisplay(), m_sd1.getSizeLines(),
+      m_sd2.getLineDataForDisplay(), m_sd2.getSizeLines(),
+      m_bTripleDiff ? m_sd3.getLineDataForDisplay() : 0, m_sd3.getSizeLines(),
+      &m_diff3LineList,
+      pTotalDiffStatus      
+      );
+   m_pMergeResultWindowTitle->setFileName( m_outputFilename.isEmpty() ? QString("unnamed.txt") : m_outputFilename );
+
+   if ( !bGUI ) 
+   {
+      // We now have all needed information. The rest below is only for GUI-activation.
+      m_sd1.reset();
+      m_sd2.reset();
+      m_sd3.reset();
+      return;
+   }
+
+   m_pOverview->init(&m_diff3LineList, m_bTripleDiff );
+   m_pDiffVScrollBar->setValue( 0 );
+   m_pHScrollBar->setValue( 0 );
+   m_pMergeVScrollBar->setValue( 0 );
+
+   m_pDiffTextWindow1->setPaintingAllowed( true );
+   m_pDiffTextWindow2->setPaintingAllowed( true );
+   m_pDiffTextWindow3->setPaintingAllowed( true );
+   m_pOverview->setPaintingAllowed( true );
+   m_pMergeResultWindow->setPaintingAllowed( true );
+
+
+   if ( !bVisibleMergeResultWindow )
+      m_pMergeWindowFrame->hide();
+   else
+      m_pMergeWindowFrame->show();
+
+   // Try to create a meaningful but not too long caption
+   if ( !isPart() )
+   {
+      // 1. If the filenames are equal then show only one filename
+      QString caption;
+      QString f1 = m_sd1.getAliasName();
+      QString f2 = m_sd2.getAliasName();
+      QString f3 = m_sd3.getAliasName();
+      int p;
+      if ( (p=f1.indexOf("@@"))>=0 )
+         f1 = f1.left( p );
+      if ( (p=f2.indexOf("@@"))>=0 )
+         f2 = f2.left( p );
+      if ( (p=f3.indexOf("@@"))>=0 )
+         f3 = f3.left( p );
+
+      if ( (p=f1.lastIndexOf('/'))>=0 || (p=f1.lastIndexOf('\\'))>=0 )
+         f1 = f1.mid( p+1 );
+      if ( (p=f2.lastIndexOf('/'))>=0 || (p=f2.lastIndexOf('\\'))>=0)
+         f2 = f2.mid( p+1 );
+      if ( (p=f3.lastIndexOf('/'))>=0 || (p=f3.lastIndexOf('\\'))>=0 )
+         f3 = f3.mid( p+1 );
+
+      if ( !f1.isEmpty() ) 
+      {
+         if ( ( f2.isEmpty() && f3.isEmpty() ) || 
+              (f2.isEmpty() && f1==f3) || ( f3.isEmpty() && f1==f2 ) || (f1==f2 && f1==f3)) 
+            caption = f1;
+      }
+      else if ( ! f2.isEmpty() ) 
+      {
+         if ( f3.isEmpty() || f2==f3 ) 
+            caption = f2;
+      }
+      else if ( ! f3.isEmpty() ) 
+         caption = f3;
+
+      // 2. If the files don't have the same name then show all names
+      if ( caption.isEmpty() && (!f1.isEmpty() || !f2.isEmpty() || !f3.isEmpty()) )
+      {
+         caption = ( f1.isEmpty()? QString("") : f1 );
+         caption += QString(caption.isEmpty() || f2.isEmpty() ? "" : " <-> ") + ( f2.isEmpty()? QString("") : f2 );
+         caption += QString(caption.isEmpty() || f3.isEmpty() ? "" : " <-> ") + ( f3.isEmpty()? QString("") : f3 ) ;
+      }
+
+      m_pKDiff3Shell->setWindowTitle( caption.isEmpty() ? QString("KDiff3") : caption+QString(" - KDiff3"));
+   }
+
+   //initialize wheel tracking to zero
+   m_iCumulativeWheelDelta = 0;
+
+   m_bFinishMainInit = true; // call slotFinishMainInit after finishing the word wrap
+   m_bLoadFiles = bLoadFiles;
+   postRecalcWordWrap();
+}
+
+
+void KDiff3App::setHScrollBarRange()
+{
+   int w1 = m_pDiffTextWindow1!=0 && m_pDiffTextWindow1->isVisible() ? m_pDiffTextWindow1->getMaxTextWidth() : 0;
+   int w2 = m_pDiffTextWindow2!=0 && m_pDiffTextWindow2->isVisible() ? m_pDiffTextWindow2->getMaxTextWidth() : 0;
+   int w3 = m_pDiffTextWindow3!=0 && m_pDiffTextWindow3->isVisible() ? m_pDiffTextWindow3->getMaxTextWidth() : 0;
+
+   int wm = m_pMergeResultWindow!=0 && m_pMergeResultWindow->isVisible() ? m_pMergeResultWindow->getMaxTextWidth() : 0;
+
+   int v1 = m_pDiffTextWindow1!=0 && m_pDiffTextWindow1->isVisible() ? m_pDiffTextWindow1->getVisibleTextAreaWidth() : 0;
+   int v2 = m_pDiffTextWindow2!=0 && m_pDiffTextWindow2->isVisible() ? m_pDiffTextWindow2->getVisibleTextAreaWidth() : 0;
+   int v3 = m_pDiffTextWindow3!=0 && m_pDiffTextWindow3->isVisible() ? m_pDiffTextWindow3->getVisibleTextAreaWidth() : 0;
+   int vm = m_pMergeResultWindow!=0 && m_pMergeResultWindow->isVisible() ? m_pMergeResultWindow->getVisibleTextAreaWidth() : 0;
+
+   // Find the minimum, but don't consider 0.
+   int pageStep = 0;
+   if ( (pageStep==0 || pageStep>v1) && v1>0 )
+      pageStep = v1;
+   if ( (pageStep==0 || pageStep>v2) && v2>0  )
+      pageStep = v2;
+   if ( (pageStep==0 || pageStep>v3) && v3>0  )
+      pageStep = v3;
+   if ( (pageStep==0 || pageStep>vm) && vm>0  )
+      pageStep = vm;
+
+   int rangeMax = 0;
+   if ( w1>v1 && w1-v1>rangeMax && v1>0 )
+      rangeMax = w1-v1;
+   if ( w2>v2 && w2-v2>rangeMax && v2>0 )
+      rangeMax = w2-v2;
+   if ( w3>v3 && w3-v3>rangeMax && v3>0 )
+      rangeMax = w3-v3;
+   if ( wm>vm && wm-vm>rangeMax && vm>0 )
+      rangeMax = wm-vm;
+
+   m_pHScrollBar->setRange(0, rangeMax );
+   m_pHScrollBar->setPageStep( pageStep );
+}
+
+void KDiff3App::resizeDiffTextWindowHeight(int newHeight)
+{
+   m_DTWHeight = newHeight;
+
+   m_pDiffVScrollBar->setRange(0, max2(0, m_neededLines+1 - newHeight) );
+   m_pDiffVScrollBar->setPageStep( newHeight );
+   m_pOverview->setRange( m_pDiffVScrollBar->value(), m_pDiffVScrollBar->pageStep() );
+
+   setHScrollBarRange();
+}
+
+void KDiff3App::resizeMergeResultWindow()
+{
+   MergeResultWindow* p = m_pMergeResultWindow;
+   m_pMergeVScrollBar->setRange(0, max2(0, p->getNofLines() - p->getNofVisibleLines()) );
+   m_pMergeVScrollBar->setPageStep( p->getNofVisibleLines() );
+
+   setHScrollBarRange();
+}
+
+void KDiff3App::scrollDiffTextWindow( int deltaX, int deltaY )
+{
+   if ( deltaY!= 0 )
+   {
+      m_pDiffVScrollBar->setValue( m_pDiffVScrollBar->value() + deltaY );
+      m_pOverview->setRange( m_pDiffVScrollBar->value(), m_pDiffVScrollBar->pageStep() );
+   }
+   if ( deltaX!= 0)
+      m_pHScrollBar->QScrollBar::setValue( m_pHScrollBar->value() + deltaX );
+}
+
+void KDiff3App::scrollMergeResultWindow( int deltaX, int deltaY )
+{
+   if ( deltaY!= 0 )
+      m_pMergeVScrollBar->setValue( m_pMergeVScrollBar->value() + deltaY );
+   if ( deltaX!= 0)
+      m_pHScrollBar->setValue( m_pHScrollBar->value() + deltaX );
+}
+
+void KDiff3App::setDiff3Line( int line )
+{
+   m_pDiffVScrollBar->setValue( line );
+}
+
+void KDiff3App::sourceMask( int srcMask, int enabledMask )
+{
+   chooseA->blockSignals(true);
+   chooseB->blockSignals(true);
+   chooseC->blockSignals(true);
+   chooseA->setChecked( (srcMask & 1) != 0 );
+   chooseB->setChecked( (srcMask & 2) != 0 );
+   chooseC->setChecked( (srcMask & 4) != 0 );
+   chooseA->blockSignals(false);
+   chooseB->blockSignals(false);
+   chooseC->blockSignals(false);
+   chooseA->setEnabled( (enabledMask & 1) != 0 );
+   chooseB->setEnabled( (enabledMask & 2) != 0 );
+   chooseC->setEnabled( (enabledMask & 4) != 0 );
+}
+
+
+
+// Function uses setMinSize( sizeHint ) before adding the widget.
+// void addWidget(QBoxLayout* layout, QWidget* widget);
+template <class W, class L>
+void addWidget( L* layout, W* widget)
+{
+   QSize s = widget->sizeHint();
+   widget->setMinimumSize( QSize(max2(s.width(),0),max2(s.height(),0) ) );
+   layout->addWidget( widget );
+}
+
+void KDiff3App::initView()
+{
+   // set the main widget here
+   if ( m_pMainWidget != 0 )
+   {
+      return;
+      //delete m_pMainWidget;
+   }
+   m_pMainWidget = new QWidget(); // Contains vertical splitter and horiz scrollbar   
+   m_pMainSplitter->addWidget( m_pMainWidget );
+   m_pMainWidget->setObjectName("MainWidget");
+   QVBoxLayout* pVLayout = new QVBoxLayout(m_pMainWidget);
+   pVLayout->setMargin(0);
+   pVLayout->setSpacing(0);
+
+   QSplitter* pVSplitter = new QSplitter();
+   pVSplitter->setObjectName("VSplitter");
+   pVSplitter->setOpaqueResize(false);
+   pVSplitter->setOrientation( Qt::Vertical );
+   pVLayout->addWidget( pVSplitter );
+
+   QWidget* pDiffWindowFrame = new QWidget(); // Contains diff windows, overview and vert scrollbar
+   pDiffWindowFrame->setObjectName("DiffWindowFrame");
+   QHBoxLayout* pDiffHLayout = new QHBoxLayout( pDiffWindowFrame );
+   pDiffHLayout->setMargin(0);
+   pDiffHLayout->setSpacing(0);
+   pVSplitter->addWidget(pDiffWindowFrame);
+
+   m_pDiffWindowSplitter = new QSplitter();
+   m_pDiffWindowSplitter->setObjectName("DiffWindowSplitter");
+   m_pDiffWindowSplitter->setOpaqueResize(false);
+
+   m_pDiffWindowSplitter->setOrientation( m_pOptions->m_bHorizDiffWindowSplitting ?  Qt::Horizontal : Qt::Vertical );
+   pDiffHLayout->addWidget( m_pDiffWindowSplitter );
+
+   m_pOverview = new Overview( &m_pOptionDialog->m_options );
+   m_pOverview->setObjectName("Overview");
+   pDiffHLayout->addWidget(m_pOverview);
+   connect( m_pOverview, SIGNAL(setLine(int)), this, SLOT(setDiff3Line(int)) );
+
+   m_pDiffVScrollBar = new QScrollBar( Qt::Vertical, pDiffWindowFrame );
+   pDiffHLayout->addWidget( m_pDiffVScrollBar );
+
+   m_pDiffTextWindowFrame1 = new DiffTextWindowFrame( m_pDiffWindowSplitter, statusBar(), &m_pOptionDialog->m_options, 1, &m_sd1);
+   m_pDiffWindowSplitter->addWidget(m_pDiffTextWindowFrame1);
+   m_pDiffTextWindowFrame2 = new DiffTextWindowFrame( m_pDiffWindowSplitter, statusBar(), &m_pOptionDialog->m_options, 2, &m_sd2);
+   m_pDiffWindowSplitter->addWidget(m_pDiffTextWindowFrame2);
+   m_pDiffTextWindowFrame3 = new DiffTextWindowFrame( m_pDiffWindowSplitter, statusBar(), &m_pOptionDialog->m_options, 3, &m_sd3);
+   m_pDiffWindowSplitter->addWidget(m_pDiffTextWindowFrame3);
+   m_pDiffTextWindow1 = m_pDiffTextWindowFrame1->getDiffTextWindow();
+   m_pDiffTextWindow2 = m_pDiffTextWindowFrame2->getDiffTextWindow();
+   m_pDiffTextWindow3 = m_pDiffTextWindowFrame3->getDiffTextWindow();
+   connect(m_pDiffTextWindowFrame1, SIGNAL(fileNameChanged(const QString&,int)), this, SLOT(slotFileNameChanged(const QString&,int)));
+   connect(m_pDiffTextWindowFrame2, SIGNAL(fileNameChanged(const QString&,int)), this, SLOT(slotFileNameChanged(const QString&,int)));
+   connect(m_pDiffTextWindowFrame3, SIGNAL(fileNameChanged(const QString&,int)), this, SLOT(slotFileNameChanged(const QString&,int)));
+
+   connect(m_pDiffTextWindowFrame1, SIGNAL(encodingChanged(QTextCodec*)), this, SLOT(slotEncodingChangedA(QTextCodec*)));
+   connect(m_pDiffTextWindowFrame2, SIGNAL(encodingChanged(QTextCodec*)), this, SLOT(slotEncodingChangedB(QTextCodec*)));
+   connect(m_pDiffTextWindowFrame3, SIGNAL(encodingChanged(QTextCodec*)), this, SLOT(slotEncodingChangedC(QTextCodec*)));
+
+   // Merge window
+   m_pMergeWindowFrame = new QWidget( pVSplitter );
+   m_pMergeWindowFrame->setObjectName("MergeWindowFrame");
+   pVSplitter->addWidget(m_pMergeWindowFrame);
+   QHBoxLayout* pMergeHLayout = new QHBoxLayout( m_pMergeWindowFrame );
+   pMergeHLayout->setMargin(0);
+   pMergeHLayout->setSpacing(0);
+   QVBoxLayout* pMergeVLayout = new QVBoxLayout();
+   pMergeHLayout->addLayout( pMergeVLayout, 1 );
+
+   m_pMergeResultWindowTitle = new WindowTitleWidget(&m_pOptionDialog->m_options);
+   pMergeVLayout->addWidget( m_pMergeResultWindowTitle );
+
+   m_pMergeResultWindow = new MergeResultWindow( m_pMergeWindowFrame, &m_pOptionDialog->m_options, statusBar() );
+   pMergeVLayout->addWidget( m_pMergeResultWindow, 1 );
+
+   m_pMergeVScrollBar = new QScrollBar( Qt::Vertical, m_pMergeWindowFrame );
+   pMergeHLayout->addWidget( m_pMergeVScrollBar );
+
+   m_pMainSplitter->addWidget(m_pMainWidget);
+
+   autoAdvance->setEnabled(true);
+
+   QList<int> sizes = pVSplitter->sizes();
+   int total = sizes[0] + sizes[1];
+   if ( total<10 )
+      total = 100;
+   sizes[0]=total/2; sizes[1]=total/2;
+   pVSplitter->setSizes( sizes );
+
+   QList<int> hSizes;
+   hSizes << 1 << 1 << 1;
+   m_pDiffWindowSplitter->setSizes( hSizes );
+   
+   m_pMergeResultWindow->installEventFilter( this );       // for Cut/Copy/Paste-shortcuts
+   m_pMergeResultWindow->installEventFilter( m_pMergeResultWindowTitle ); // for focus tracking
+
+   QHBoxLayout* pHScrollBarLayout = new QHBoxLayout();
+   pVLayout->addLayout( pHScrollBarLayout );
+   m_pHScrollBar = new ReversibleScrollBar( Qt::Horizontal, &m_pOptions->m_bRightToLeftLanguage );
+   pHScrollBarLayout->addWidget( m_pHScrollBar );
+   m_pCornerWidget = new QWidget( m_pMainWidget );
+   pHScrollBarLayout->addWidget( m_pCornerWidget );
+
+
+   connect( m_pDiffVScrollBar, SIGNAL(valueChanged(int)), m_pOverview, SLOT(setFirstLine(int)));
+   connect( m_pDiffVScrollBar, SIGNAL(valueChanged(int)), m_pDiffTextWindow1, SLOT(setFirstLine(int)));
+   connect( m_pHScrollBar, SIGNAL(valueChanged2(int)), m_pDiffTextWindow1, SLOT(setHorizScrollOffset(int)));
+   connect( m_pDiffTextWindow1, SIGNAL(newSelection()), this, SLOT(slotSelectionStart()));
+   connect( m_pDiffTextWindow1, SIGNAL(selectionEnd()), this, SLOT(slotSelectionEnd()));
+   connect( m_pDiffTextWindow1, SIGNAL(scroll(int,int)), this, SLOT(scrollDiffTextWindow(int,int)));
+   m_pDiffTextWindow1->installEventFilter( this );
+
+   connect( m_pDiffVScrollBar, SIGNAL(valueChanged(int)), m_pDiffTextWindow2, SLOT(setFirstLine(int)));
+   connect( m_pHScrollBar, SIGNAL(valueChanged2(int)), m_pDiffTextWindow2, SLOT(setHorizScrollOffset(int)));
+   connect( m_pDiffTextWindow2, SIGNAL(newSelection()), this, SLOT(slotSelectionStart()));
+   connect( m_pDiffTextWindow2, SIGNAL(selectionEnd()), this, SLOT(slotSelectionEnd()));
+   connect( m_pDiffTextWindow2, SIGNAL(scroll(int,int)), this, SLOT(scrollDiffTextWindow(int,int)));
+   m_pDiffTextWindow2->installEventFilter( this );
+
+   connect( m_pDiffVScrollBar, SIGNAL(valueChanged(int)), m_pDiffTextWindow3, SLOT(setFirstLine(int)));
+   connect( m_pHScrollBar, SIGNAL(valueChanged2(int)), m_pDiffTextWindow3, SLOT(setHorizScrollOffset(int)));
+   connect( m_pDiffTextWindow3, SIGNAL(newSelection()), this, SLOT(slotSelectionStart()));
+   connect( m_pDiffTextWindow3, SIGNAL(selectionEnd()), this, SLOT(slotSelectionEnd()));
+   connect( m_pDiffTextWindow3, SIGNAL(scroll(int,int)), this, SLOT(scrollDiffTextWindow(int,int)));
+   m_pDiffTextWindow3->installEventFilter( this );
+
+
+   MergeResultWindow* p = m_pMergeResultWindow;
+   connect( m_pMergeVScrollBar, SIGNAL(valueChanged(int)), p, SLOT(setFirstLine(int)));
+
+   connect( m_pHScrollBar,      SIGNAL(valueChanged2(int)), p, SLOT(setHorizScrollOffset(int)));
+   connect( p, SIGNAL(scroll(int,int)), this, SLOT(scrollMergeResultWindow(int,int)));
+   connect( p, SIGNAL(sourceMask(int,int)), this, SLOT(sourceMask(int,int)));
+   connect( p, SIGNAL( resizeSignal() ),this, SLOT(resizeMergeResultWindow()));
+   connect( p, SIGNAL( selectionEnd() ), this, SLOT( slotSelectionEnd() ) );
+   connect( p, SIGNAL( newSelection() ), this, SLOT( slotSelectionStart() ) );
+   connect( p, SIGNAL( modifiedChanged(bool) ), this, SLOT( slotOutputModified(bool) ) );
+   connect( p, SIGNAL( modifiedChanged(bool) ), m_pMergeResultWindowTitle, SLOT( slotSetModified(bool) ) );
+   connect( p, SIGNAL( updateAvailabilities() ), this, SLOT( slotUpdateAvailabilities() ) );
+   connect( p, SIGNAL( showPopupMenu(const QPoint&) ), this, SLOT(showPopupMenu(const QPoint&)));
+   connect( p, SIGNAL( noRelevantChangesDetected() ), this, SLOT(slotNoRelevantChangesDetected()));
+   sourceMask(0,0);
+
+
+   connect( p, SIGNAL(setFastSelectorRange(int,int)), m_pDiffTextWindow1, SLOT(setFastSelectorRange(int,int)));
+   connect( p, SIGNAL(setFastSelectorRange(int,int)), m_pDiffTextWindow2, SLOT(setFastSelectorRange(int,int)));
+   connect( p, SIGNAL(setFastSelectorRange(int,int)), m_pDiffTextWindow3, SLOT(setFastSelectorRange(int,int)));
+   connect(m_pDiffTextWindow1, SIGNAL(setFastSelectorLine(int)), p, SLOT(slotSetFastSelectorLine(int)));
+   connect(m_pDiffTextWindow2, SIGNAL(setFastSelectorLine(int)), p, SLOT(slotSetFastSelectorLine(int)));
+   connect(m_pDiffTextWindow3, SIGNAL(setFastSelectorLine(int)), p, SLOT(slotSetFastSelectorLine(int)));
+   connect(m_pDiffTextWindow1, SIGNAL(gotFocus()), p, SLOT(updateSourceMask()));
+   connect(m_pDiffTextWindow2, SIGNAL(gotFocus()), p, SLOT(updateSourceMask()));
+   connect(m_pDiffTextWindow3, SIGNAL(gotFocus()), p, SLOT(updateSourceMask()));
+   connect(m_pDirectoryMergeInfo, SIGNAL(gotFocus()), p, SLOT(updateSourceMask()));
+
+   connect( m_pDiffTextWindow1, SIGNAL( resizeHeightChangedSignal(int) ),this, SLOT(resizeDiffTextWindowHeight(int)));
+   // The following two connects cause the wordwrap to be recalced thrice, just to make sure. Better than forgetting one.
+   connect(m_pDiffTextWindow1, SIGNAL(resizeWidthChangedSignal(int)), this, SLOT(postRecalcWordWrap()));
+   connect(m_pDiffTextWindow2, SIGNAL(resizeWidthChangedSignal(int)), this, SLOT(postRecalcWordWrap()));
+   connect(m_pDiffTextWindow3, SIGNAL(resizeWidthChangedSignal(int)), this, SLOT(postRecalcWordWrap()));
+
+   m_pDiffTextWindow1->setFocus();
+   m_pMainWidget->setMinimumSize(50,50);
+   m_pCornerWidget->setFixedSize( m_pDiffVScrollBar->width(), m_pHScrollBar->height() );
+   showWindowA->setChecked( true );
+   showWindowB->setChecked( true );
+   showWindowC->setChecked( true );
+}
+
+static int calcManualDiffFirstDiff3LineIdx( const Diff3LineVector& d3lv, const ManualDiffHelpEntry& mdhe )
+{
+   int i;
+   for( i = 0; i<d3lv.size(); ++i )
+   {
+      const Diff3Line& d3l = *d3lv[i];
+      if ( (mdhe.lineA1>=0  &&  mdhe.lineA1==d3l.lineA) ||
+           (mdhe.lineB1>=0  &&  mdhe.lineB1==d3l.lineB) ||
+           (mdhe.lineC1>=0  &&  mdhe.lineC1==d3l.lineC) )
+         return i;
+   }
+   return -1;
+}
+
+// called after word wrap is complete
+void KDiff3App::slotFinishMainInit()
+{
+   setHScrollBarRange();
+
+   int newHeight = m_pDiffTextWindow1->getNofVisibleLines();
+   /*int newWidth  = m_pDiffTextWindow1->getNofVisibleColumns();*/
+   m_DTWHeight = newHeight;
+
+   m_pDiffVScrollBar->setRange(0, max2(0, m_neededLines+1 - newHeight) );
+   m_pDiffVScrollBar->setPageStep( newHeight );
+   m_pOverview->setRange( m_pDiffVScrollBar->value(), m_pDiffVScrollBar->pageStep() );
+
+   int d3l=-1;
+   if ( ! m_manualDiffHelpList.empty() )
+      d3l = calcManualDiffFirstDiff3LineIdx( m_diff3LineVector, m_manualDiffHelpList.front() );
+   if ( d3l>=0 && m_pDiffTextWindow1 )
+   {
+      int line = m_pDiffTextWindow1->convertDiff3LineIdxToLine( d3l );
+      m_pDiffVScrollBar->setValue( max2(0,line-1) );
+   }
+   else
+   {
+      m_pMergeResultWindow->slotGoTop();
+      if ( ! m_outputFilename.isEmpty() && ! m_pMergeResultWindow->isUnsolvedConflictAtCurrent() )
+         m_pMergeResultWindow->slotGoNextUnsolvedConflict();
+   }
+
+   if (m_pCornerWidget)
+      m_pCornerWidget->setFixedSize( m_pDiffVScrollBar->width(), m_pHScrollBar->height() );
+
+   slotUpdateAvailabilities();
+   setUpdatesEnabled(true);
+   // Workaround for a Qt-bug
+   QList<QTreeView*> treeViews = findChildren<QTreeView*>();
+   foreach( QTreeView* pTreeView, treeViews )
+   {
+      pTreeView->setUpdatesEnabled(true);
+   }
+
+   bool bVisibleMergeResultWindow = !m_outputFilename.isEmpty();
+   TotalDiffStatus* pTotalDiffStatus = &m_totalDiffStatus;
+
+   if (m_bLoadFiles)
+   {
+
+      if (bVisibleMergeResultWindow)
+         m_pMergeResultWindow->showNrOfConflicts();
+      else if (
+         // Avoid showing this message during startup without parameters.
+         !(m_sd1.getAliasName().isEmpty() && m_sd2.getAliasName().isEmpty() && m_sd3.getAliasName().isEmpty()) &&
+         (m_sd1.isValid() && m_sd2.isValid() && m_sd3.isValid())
+         )
+      {
+         QString totalInfo;
+         if (pTotalDiffStatus->bBinaryAEqB && pTotalDiffStatus->bBinaryAEqC)
+            totalInfo += i18n("All input files are binary equal.");
+         else  if (pTotalDiffStatus->bTextAEqB && pTotalDiffStatus->bTextAEqC)
+            totalInfo += i18n("All input files contain the same text, but are not binary equal.");
+         else {
+            if (pTotalDiffStatus->bBinaryAEqB) totalInfo += i18n("Files %1 and %2 are binary equal.\n", QString("A"), QString("B"));
+            else if (pTotalDiffStatus->bTextAEqB) totalInfo += i18n("Files %1 and %2 have equal text, but are not binary equal. \n", QString("A"), QString("B"));
+            if (pTotalDiffStatus->bBinaryAEqC) totalInfo += i18n("Files %1 and %2 are binary equal.\n", QString("A"), QString("C"));
+            else if (pTotalDiffStatus->bTextAEqC) totalInfo += i18n("Files %1 and %2 have equal text, but are not binary equal. \n", QString("A"), QString("C"));
+            if (pTotalDiffStatus->bBinaryBEqC) totalInfo += i18n("Files %1 and %2 are binary equal.\n", QString("B"), QString("C"));
+            else if (pTotalDiffStatus->bTextBEqC) totalInfo += i18n("Files %1 and %2 have equal text, but are not binary equal. \n", QString("B"), QString("C"));
+         }
+
+         if (!totalInfo.isEmpty())
+            KMessageBox::information(this, totalInfo);
+      }
+
+      if (bVisibleMergeResultWindow && (!m_sd1.isText() || !m_sd2.isText() || !m_sd3.isText()))
+      {
+         KMessageBox::information(this, i18n(
+            "Some inputfiles don't seem to be pure textfiles.\n"
+            "Note that the KDiff3-merge was not meant for binary data.\n"
+            "Continue at your own risk."));
+      }
+      if (m_sd1.isIncompleteConversion() || m_sd2.isIncompleteConversion() || m_sd3.isIncompleteConversion())
+      {
+         QString files;
+         if (m_sd1.isIncompleteConversion())
+            files += "A";
+         if (m_sd2.isIncompleteConversion())
+            files += files.isEmpty() ? "B" : ", B";
+         if (m_sd3.isIncompleteConversion())
+            files += files.isEmpty() ? "C" : ", C";
+
+         KMessageBox::information(this, i18n(
+            "Some input characters could not be converted to valid unicode.\n"
+            "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n"
+            "Don't save the result if unsure. Continue at your own risk.\n"
+            "Affected input files are in %1.").arg(files));
+      }
+   }
+
+   if (bVisibleMergeResultWindow && m_pMergeResultWindow)
+   {
+      m_pMergeResultWindow->setFocus();
+   }
+   else if (m_pDiffTextWindow1)
+   {
+      m_pDiffTextWindow1->setFocus();
+   }
+}
+
+void KDiff3App::resizeEvent(QResizeEvent* e)
+{
+   QSplitter::resizeEvent(e);
+   if (m_pCornerWidget)
+      m_pCornerWidget->setFixedSize( m_pDiffVScrollBar->width(), m_pHScrollBar->height() );
+}
+
+void KDiff3App::childEvent(QChildEvent *c)
+{
+   // Workaround for a bug in several Qt versions. When a child is added to QSplitter, don't
+   // add it to the splitter if it is a window.
+   if ( c->child()->isWidgetType()) 
+   {
+      QWidget *w = static_cast<QWidget*>(c->child());
+      if ( w->isWindow() )
+         return;
+   }
+   QSplitter::childEvent(c);
+}
+
+bool KDiff3App::eventFilter( QObject* o, QEvent* e )
+{
+   if( o == m_pMergeResultWindow )
+   {
+      if ( e->type() == QEvent::KeyPress )
+      {  // key press
+         QKeyEvent *k = (QKeyEvent*)e;
+         if (k->key()==Qt::Key_Insert &&  (k->QInputEvent::modifiers() & Qt::ControlModifier)!=0 )
+         {
+            slotEditCopy();
+            return true;
+         }
+         if (k->key()==Qt::Key_Insert &&  (k->QInputEvent::modifiers() & Qt::ShiftModifier)!=0 )
+         {
+            slotEditPaste();
+            return true;
+         }
+         if (k->key()==Qt::Key_Delete &&  (k->QInputEvent::modifiers() & Qt::ShiftModifier)!=0 )
+         {
+            slotEditCut();
+            return true;
+         }
+         if ( k->key()==Qt::Key_Escape && m_pKDiff3Shell && m_pOptions->m_bEscapeKeyQuits )
+         {
+            m_pKDiff3Shell->close();
+            return true;
+         }
+      }
+      return QSplitter::eventFilter( o, e );    // standard event processing
+   }
+
+   if ( e->type() == QEvent::KeyPress )   // key press
+   {
+       QKeyEvent *k = (QKeyEvent*)e;
+       if ( k->key()==Qt::Key_Escape && m_pKDiff3Shell && m_pOptions->m_bEscapeKeyQuits )
+       {
+          m_pKDiff3Shell->close();
+          return true;
+       }
+
+       bool bCtrl = (k->QInputEvent::modifiers() & Qt::ControlModifier) != 0;
+       if (k->key()==Qt::Key_Insert &&  bCtrl )
+       {
+          slotEditCopy();
+          return true;
+       }
+       if (k->key()==Qt::Key_Insert &&  (k->QInputEvent::modifiers() & Qt::ShiftModifier)!=0 )
+       {
+          slotEditPaste();
+          return true;
+       }
+       int deltaX=0;
+       int deltaY=0;
+       int pageSize =  m_DTWHeight;
+       switch( k->key() )
+       {
+       case Qt::Key_Down:     if (!bCtrl) ++deltaY; break;
+       case Qt::Key_Up:       if (!bCtrl) --deltaY; break;
+       case Qt::Key_PageDown: if (!bCtrl) deltaY+=pageSize; break;
+       case Qt::Key_PageUp:   if (!bCtrl) deltaY-=pageSize; break;
+       case Qt::Key_Left:     if (!bCtrl) --deltaX;  break;
+       case Qt::Key_Right:    if (!bCtrl) ++deltaX;  break;
+       case Qt::Key_Home: if ( bCtrl )  m_pDiffVScrollBar->setValue( 0 );
+                      else          m_pHScrollBar->setValue( 0 );
+                      break;
+       case Qt::Key_End:  if ( bCtrl )  m_pDiffVScrollBar->setValue( m_pDiffVScrollBar->maximum() );
+                      else          m_pHScrollBar->setValue( m_pHScrollBar->maximum() );
+                      break;
+       default: break;
+       }
+
+       scrollDiffTextWindow( deltaX, deltaY );
+
+       return true;                        // eat event
+   }
+   else if (e->type() == QEvent::Wheel )   // wheel event
+   {
+      QWheelEvent *w = (QWheelEvent*)e;
+      w->accept();
+
+      int deltaX=0;
+
+      int d=w->delta();
+
+      //As per QT documentation, some mice/OS combos send delta values
+      //less than 120 units(15 degrees)
+      d = d + m_iCumulativeWheelDelta;
+      if ( d > -120 && d < 120)
+      {
+         //not enough for a full step in either direction, add it up
+         //to use on a successive call
+         m_iCumulativeWheelDelta = d;
+      }
+      else     
+      {
+         //reset cumulative tracking of the wheel since we have enough 
+         //for a 15 degree movement
+         m_iCumulativeWheelDelta= 0;
+      }
+
+      int deltaY = -d/120 * QApplication::wheelScrollLines();
+
+      scrollDiffTextWindow( deltaX, deltaY );
+      return true;
+   }
+   else if (e->type() == QEvent::Drop )
+   {
+      QDropEvent* pDropEvent = static_cast<QDropEvent*>(e);
+      pDropEvent->accept();
+
+      if ( pDropEvent->mimeData()->hasUrls() )
+      {
+#ifdef KREPLACEMENTS_H
+         QList<QUrl> urlList = pDropEvent->mimeData()->urls();
+         if ( canContinue() && !urlList.isEmpty() )
+         {
+            raise();
+            QString filename = urlList.first().toLocalFile();
+            if      ( o == m_pDiffTextWindow1 ) m_sd1.setFilename( filename );
+            else if ( o == m_pDiffTextWindow2 ) m_sd2.setFilename( filename );
+            else if ( o == m_pDiffTextWindow3 ) m_sd3.setFilename( filename );
+            mainInit();
+         }
+#else
+         KUrl::List urlList = KUrl::List::fromMimeData( pDropEvent->mimeData() );
+         if ( canContinue() && !urlList.isEmpty() )
+         {
+            raise();
+            FileAccess fa( urlList.first().url() );
+            if      ( o == m_pDiffTextWindow1 ) m_sd1.setFileAccess( fa );
+            else if ( o == m_pDiffTextWindow2 ) m_sd2.setFileAccess( fa );
+            else if ( o == m_pDiffTextWindow3 ) m_sd3.setFileAccess( fa );
+            mainInit();
+         }
+#endif
+      }
+      else if ( pDropEvent->mimeData()->hasText() )
+      {
+         QString text = pDropEvent->mimeData()->text();
+         if ( canContinue() )
+         {
+            QStringList errors;
+
+            raise();
+            if      ( o == m_pDiffTextWindow1 ) errors = m_sd1.setData(text);
+            else if ( o == m_pDiffTextWindow2 ) errors = m_sd2.setData(text);
+            else if ( o == m_pDiffTextWindow3 ) errors = m_sd3.setData(text);
+            foreach(QString error, errors)
+            {
+               KMessageBox::error( m_pOptionDialog, error );
+            }
+            mainInit();
+         }
+      }
+
+      return true;
+   }
+   return QSplitter::eventFilter( o, e );    // standard event processing
+}
+
+
+
+
+void KDiff3App::slotFileOpen()
+{
+   if ( !canContinue() ) return;
+
+   if ( m_pDirectoryMergeWindow->isDirectoryMergeInProgress() )
+   {
+      int result = KMessageBox::warningYesNo(this,
+         i18n("You are currently doing a directory merge. Are you sure, you want to abort?"),
+         i18n("Warning"), 
+         KGuiItem( i18n("Abort") ), 
+         KGuiItem( i18n("Continue Merging") ) );
+      if ( result!=KMessageBox::Yes )
+         return;
+   }
+
+
+   slotStatusMsg(i18n("Opening files..."));
+
+   for(;;)
+   {
+      OpenDialog d(this,
+         QDir::toNativeSeparators( m_bDirCompare ? m_pDirectoryMergeWindow->getDirNameA() : m_sd1.isFromBuffer() ? QString("") : m_sd1.getAliasName() ),
+         QDir::toNativeSeparators( m_bDirCompare ? m_pDirectoryMergeWindow->getDirNameB() : m_sd2.isFromBuffer() ? QString("") : m_sd2.getAliasName() ),
+         QDir::toNativeSeparators( m_bDirCompare ? m_pDirectoryMergeWindow->getDirNameC() : m_sd3.isFromBuffer() ? QString("") : m_sd3.getAliasName() ),
+         m_bDirCompare ? ! m_pDirectoryMergeWindow->getDirNameDest().isEmpty() : !m_outputFilename.isEmpty(),
+         QDir::toNativeSeparators( m_bDirCompare ? m_pDirectoryMergeWindow->getDirNameDest() : m_bDefaultFilename ? QString("") : m_outputFilename ),
+         SLOT(slotConfigure()), &m_pOptionDialog->m_options );
+      int status = d.exec();
+      if ( status == QDialog::Accepted )
+      {
+         m_sd1.setFilename( d.m_pLineA->currentText() );
+         m_sd2.setFilename( d.m_pLineB->currentText() );
+         m_sd3.setFilename( d.m_pLineC->currentText() );
+
+         if( d.m_pMerge->isChecked() )
+         {
+            if ( d.m_pLineOut->currentText().isEmpty() )
+            {
+               m_outputFilename = "unnamed.txt";
+               m_bDefaultFilename = true;
+            }
+            else
+            {
+               m_outputFilename = d.m_pLineOut->currentText();
+               m_bDefaultFilename = false;
+            }
+         }
+         else
+            m_outputFilename = "";
+
+         bool bSuccess = improveFilenames(false);
+         if ( !bSuccess )
+            continue;
+
+         if ( m_bDirCompare )
+         {
+            m_pDirectoryMergeSplitter->show();
+            if ( m_pMainWidget!=0 )
+            {
+               m_pMainWidget->hide();
+            }
+            break;
+         }
+         else
+         {
+            m_pDirectoryMergeSplitter->hide();
+            mainInit();
+
+            if ( (! m_sd1.isEmpty() && !m_sd1.hasData())  ||
+                 (! m_sd2.isEmpty() && !m_sd2.hasData())  ||
+                 (! m_sd3.isEmpty() && !m_sd3.hasData()) )
+            {
+               QString text( i18n("Opening of these files failed:") );
+               text += "\n\n";
+               if ( ! m_sd1.isEmpty() && !m_sd1.hasData() )
+                  text += " - " + m_sd1.getAliasName() + "\n";
+               if ( ! m_sd2.isEmpty() && !m_sd2.hasData() )
+                  text += " - " + m_sd2.getAliasName() + "\n";
+               if ( ! m_sd3.isEmpty() && !m_sd3.hasData() )
+                  text += " - " + m_sd3.getAliasName() + "\n";
+
+               KMessageBox::sorry( this, text, i18n("File open error") );
+               continue;
+            }
+         }
+      }
+      break;
+   }
+
+   slotUpdateAvailabilities();
+   slotStatusMsg(i18n("Ready."));
+}
+
+void KDiff3App::slotFileOpen2(QString fn1, QString fn2, QString fn3, QString ofn,
+                              QString an1, QString an2, QString an3, TotalDiffStatus* pTotalDiffStatus )
+{
+   if ( !canContinue() ) return;
+
+   if(fn1=="" && fn2=="" && fn3=="" && ofn=="" && m_pMainWidget!=0 )
+   {
+      m_pMainWidget->hide();
+      return;
+   }
+
+   slotStatusMsg(i18n("Opening files..."));
+
+   m_sd1.setFilename( fn1 );
+   m_sd2.setFilename( fn2 );
+   m_sd3.setFilename( fn3 );
+
+   m_sd1.setAliasName( an1 );
+   m_sd2.setAliasName( an2 );
+   m_sd3.setAliasName( an3 );
+
+   if ( ! ofn.isEmpty() )
+   {
+      m_outputFilename = ofn;
+      m_bDefaultFilename = false;
+   }
+   else
+   {
+      m_outputFilename = "";
+      m_bDefaultFilename = true;
+   }
+
+   bool bDirCompare = m_bDirCompare;
+   improveFilenames(true);  // Create new window for KDiff3 for directory comparison.
+
+   if( m_bDirCompare )
+   {
+   }
+   else
+   {
+      m_bDirCompare = bDirCompare;  // Don't allow this to change here.
+      mainInit( pTotalDiffStatus );
+
+      if ( pTotalDiffStatus!=0 )
+         return;
+
+      if ( (! m_sd1.isEmpty() && ! m_sd1.hasData())  ||
+           (! m_sd2.isEmpty() && ! m_sd2.hasData())  ||
+           (! m_sd3.isEmpty() && ! m_sd3.hasData()) )
+      {
+         QString text( i18n("Opening of these files failed:") );
+         text += "\n\n";
+         if ( ! m_sd1.isEmpty() && !m_sd1.hasData() )
+            text += " - " + m_sd1.getAliasName() + "\n";
+         if ( ! m_sd2.isEmpty() && !m_sd2.hasData() )
+            text += " - " + m_sd2.getAliasName() + "\n";
+         if ( ! m_sd3.isEmpty() && !m_sd3.hasData() )
+            text += " - " + m_sd3.getAliasName() + "\n";
+
+         KMessageBox::sorry( this, text, i18n("File open error") );
+      }
+      else
+      {
+         if ( m_pDirectoryMergeWindow!=0 && m_pDirectoryMergeWindow->isVisible() && ! dirShowBoth->isChecked() )
+         {
+            slotDirViewToggle();
+         }
+      }
+   }
+   slotStatusMsg(i18n("Ready."));
+}
+
+
+void KDiff3App::slotFileNameChanged(const QString& fileName, int winIdx)
+{
+   QString fn1 = m_sd1.getFilename();
+   QString an1 = m_sd1.getAliasName();
+   QString fn2 = m_sd2.getFilename();
+   QString an2 = m_sd2.getAliasName();
+   QString fn3 = m_sd3.getFilename();
+   QString an3 = m_sd3.getAliasName();
+   if (winIdx==1) { fn1 = fileName; an1 = ""; }
+   if (winIdx==2) { fn2 = fileName; an2 = ""; }
+   if (winIdx==3) { fn3 = fileName; an3 = ""; }
+
+   slotFileOpen2( fn1, fn2, fn3, m_outputFilename, an1, an2, an3, 0 );
+}
+
+
+void KDiff3App::slotEditCut()
+{
+   slotStatusMsg(i18n("Cutting selection..."));
+
+   QString s;
+   if ( m_pMergeResultWindow!=0 )
+   {
+      s = m_pMergeResultWindow->getSelection();
+      m_pMergeResultWindow->deleteSelection();
+
+      m_pMergeResultWindow->update();
+   }
+
+   if ( !s.isNull() )
+   {
+      QApplication::clipboard()->setText( s, QClipboard::Clipboard );
+   }
+
+   slotStatusMsg(i18n("Ready."));
+}
+
+void KDiff3App::slotEditCopy()
+{
+   slotStatusMsg(i18n("Copying selection to clipboard..."));
+   QString s;
+   if (               m_pDiffTextWindow1!=0 )   s = m_pDiffTextWindow1->getSelection();
+   if ( s.isNull() && m_pDiffTextWindow2!=0 )   s = m_pDiffTextWindow2->getSelection();
+   if ( s.isNull() && m_pDiffTextWindow3!=0 )   s = m_pDiffTextWindow3->getSelection();
+   if ( s.isNull() && m_pMergeResultWindow!=0 ) s = m_pMergeResultWindow->getSelection();
+   if ( !s.isNull() )
+   {
+      QApplication::clipboard()->setText( s, QClipboard::Clipboard );
+   }
+
+   slotStatusMsg(i18n("Ready."));
+}
+
+void KDiff3App::slotEditPaste()
+{
+   slotStatusMsg(i18n("Inserting clipboard contents..."));
+
+   if ( m_pMergeResultWindow!=0 && m_pMergeResultWindow->isVisible() )
+   {
+      m_pMergeResultWindow->pasteClipboard(false);
+   }
+   else if ( canContinue() )
+   {
+      QStringList errors;
+      bool do_init = false;
+
+      if ( m_pDiffTextWindow1->hasFocus() )
+      {
+         errors = m_sd1.setData( QApplication::clipboard()->text(QClipboard::Clipboard) );
+         do_init = true;
+      }
+      else if ( m_pDiffTextWindow2->hasFocus() )
+      {
+         errors = m_sd2.setData( QApplication::clipboard()->text(QClipboard::Clipboard) );
+         do_init = true;
+      }
+      else if ( m_pDiffTextWindow3->hasFocus() )
+      {
+         errors = m_sd3.setData( QApplication::clipboard()->text(QClipboard::Clipboard) );
+         do_init = true;
+      }
+
+      foreach(QString error, errors)
+      {
+         KMessageBox::error( m_pOptionDialog, error );
+      }
+
+      if(do_init)
+      {
+        mainInit();
+      }
+   }
+
+   slotStatusMsg(i18n("Ready."));
+}
+
+void KDiff3App::slotEditSelectAll()
+{
+   int l=0,p=0; // needed as dummy return values
+   if  ( m_pMergeResultWindow && m_pMergeResultWindow->hasFocus() ) { m_pMergeResultWindow->setSelection( 0,0,m_pMergeResultWindow->getNofLines(),0); }
+   else if ( m_pDiffTextWindow1 && m_pDiffTextWindow1->hasFocus() ) { m_pDiffTextWindow1  ->setSelection( 0,0,m_pDiffTextWindow1->getNofLines(),0,l,p);   }
+   else if ( m_pDiffTextWindow2 && m_pDiffTextWindow2->hasFocus() ) { m_pDiffTextWindow2  ->setSelection( 0,0,m_pDiffTextWindow2->getNofLines(),0,l,p);   }
+   else if ( m_pDiffTextWindow3 && m_pDiffTextWindow3->hasFocus() ) { m_pDiffTextWindow3  ->setSelection( 0,0,m_pDiffTextWindow3->getNofLines(),0,l,p);   }
+
+   slotStatusMsg(i18n("Ready."));
+}
+
+void KDiff3App::slotGoCurrent()
+{
+   if (m_pMergeResultWindow)  m_pMergeResultWindow->slotGoCurrent();
+}
+void KDiff3App::slotGoTop()
+{
+   if (m_pMergeResultWindow)  m_pMergeResultWindow->slotGoTop();
+}
+void KDiff3App::slotGoBottom()
+{
+   if (m_pMergeResultWindow)  m_pMergeResultWindow->slotGoBottom();
+}
+void KDiff3App::slotGoPrevUnsolvedConflict()
+{
+   if (m_pMergeResultWindow)  m_pMergeResultWindow->slotGoPrevUnsolvedConflict();
+}
+void KDiff3App::slotGoNextUnsolvedConflict()
+{
+   m_bTimerBlock = false;
+   if (m_pMergeResultWindow)  m_pMergeResultWindow->slotGoNextUnsolvedConflict();
+}
+void KDiff3App::slotGoPrevConflict()
+{
+   if (m_pMergeResultWindow)  m_pMergeResultWindow->slotGoPrevConflict();
+}
+void KDiff3App::slotGoNextConflict()
+{
+   m_bTimerBlock = false;
+   if (m_pMergeResultWindow)  m_pMergeResultWindow->slotGoNextConflict();
+}
+void KDiff3App::slotGoPrevDelta()
+{
+   if (m_pMergeResultWindow)  m_pMergeResultWindow->slotGoPrevDelta();
+}
+void KDiff3App::slotGoNextDelta()
+{
+   if (m_pMergeResultWindow)  m_pMergeResultWindow->slotGoNextDelta();
+}
+
+void KDiff3App::choose( int choice )
+{
+   if (!m_bTimerBlock )
+   {
+      if ( m_pDirectoryMergeWindow && m_pDirectoryMergeWindow->hasFocus() )
+      {
+         if (choice==A) m_pDirectoryMergeWindow->slotCurrentChooseA();
+         if (choice==B) m_pDirectoryMergeWindow->slotCurrentChooseB();
+         if (choice==C) m_pDirectoryMergeWindow->slotCurrentChooseC();
+         
+         chooseA->setChecked(false);
+         chooseB->setChecked(false);
+         chooseC->setChecked(false);
+      }
+      else if ( m_pMergeResultWindow )
+      {
+         m_pMergeResultWindow->choose( choice );
+         if ( autoAdvance->isChecked() )
+         {
+            m_bTimerBlock = true;
+            QTimer::singleShot( m_pOptions->m_autoAdvanceDelay, this, SLOT( slotGoNextUnsolvedConflict() ) );
+         }
+      }
+   }
+}
+
+void KDiff3App::slotChooseA() { choose( A ); }
+void KDiff3App::slotChooseB() { choose( B ); }
+void KDiff3App::slotChooseC() { choose( C ); }
+
+// bConflictsOnly automatically choose for conflicts only (true) or for everywhere
+static void mergeChooseGlobal( MergeResultWindow* pMRW, int selector, bool bConflictsOnly, bool bWhiteSpaceOnly )
+{
+   if ( pMRW )
+   {
+      pMRW->chooseGlobal(selector, bConflictsOnly, bWhiteSpaceOnly );
+   }
+}
+
+void KDiff3App::slotChooseAEverywhere() {  mergeChooseGlobal( m_pMergeResultWindow, A, false, false ); }
+void KDiff3App::slotChooseBEverywhere() {  mergeChooseGlobal( m_pMergeResultWindow, B, false, false ); }
+void KDiff3App::slotChooseCEverywhere() {  mergeChooseGlobal( m_pMergeResultWindow, C, false, false ); }
+void KDiff3App::slotChooseAForUnsolvedConflicts() {  mergeChooseGlobal( m_pMergeResultWindow, A, true, false ); }
+void KDiff3App::slotChooseBForUnsolvedConflicts() {  mergeChooseGlobal( m_pMergeResultWindow, B, true, false ); }
+void KDiff3App::slotChooseCForUnsolvedConflicts() {  mergeChooseGlobal( m_pMergeResultWindow, C, true, false ); }
+void KDiff3App::slotChooseAForUnsolvedWhiteSpaceConflicts() {  mergeChooseGlobal( m_pMergeResultWindow, A, true, true ); }
+void KDiff3App::slotChooseBForUnsolvedWhiteSpaceConflicts() {  mergeChooseGlobal( m_pMergeResultWindow, B, true, true ); }
+void KDiff3App::slotChooseCForUnsolvedWhiteSpaceConflicts() {  mergeChooseGlobal( m_pMergeResultWindow, C, true, true ); }
+
+
+void KDiff3App::slotAutoSolve()
+{
+   if (m_pMergeResultWindow )
+   {
+      m_pMergeResultWindow->slotAutoSolve();
+      // m_pMergeWindowFrame->show(); incompatible with bPreserveCarriageReturn
+      m_pMergeResultWindow->showNrOfConflicts();
+      slotUpdateAvailabilities();
+   }
+}
+
+void KDiff3App::slotUnsolve()
+{
+   if (m_pMergeResultWindow )
+   {
+      m_pMergeResultWindow->slotUnsolve();
+   }
+}
+
+void KDiff3App::slotMergeHistory()
+{
+   if (m_pMergeResultWindow )
+   {
+      m_pMergeResultWindow->slotMergeHistory();
+   }
+}
+
+void KDiff3App::slotRegExpAutoMerge()
+{
+   if (m_pMergeResultWindow )
+   {
+      m_pMergeResultWindow->slotRegExpAutoMerge();
+   }
+}
+
+void KDiff3App::slotSplitDiff()
+{
+   int firstLine = -1;
+   int lastLine = -1;
+   DiffTextWindow* pDTW=0;
+   if (                m_pDiffTextWindow1 ) { pDTW=m_pDiffTextWindow1; pDTW->getSelectionRange(&firstLine, &lastLine, eD3LLineCoords); }
+   if ( firstLine<0 && m_pDiffTextWindow2 ) { pDTW=m_pDiffTextWindow2; pDTW->getSelectionRange(&firstLine, &lastLine, eD3LLineCoords); }
+   if ( firstLine<0 && m_pDiffTextWindow3 ) { pDTW=m_pDiffTextWindow3; pDTW->getSelectionRange(&firstLine, &lastLine, eD3LLineCoords); }
+   if ( pDTW && firstLine>=0 && m_pMergeResultWindow)
+   {
+      pDTW->resetSelection();
+
+      m_pMergeResultWindow->slotSplitDiff( firstLine, lastLine );
+   }
+}
+
+void KDiff3App::slotJoinDiffs()
+{
+   int firstLine = -1;
+   int lastLine = -1;
+   DiffTextWindow* pDTW=0;
+   if (                m_pDiffTextWindow1 ) { pDTW=m_pDiffTextWindow1; pDTW->getSelectionRange(&firstLine, &lastLine, eD3LLineCoords); }
+   if ( firstLine<0 && m_pDiffTextWindow2 ) { pDTW=m_pDiffTextWindow2; pDTW->getSelectionRange(&firstLine, &lastLine, eD3LLineCoords); }
+   if ( firstLine<0 && m_pDiffTextWindow3 ) { pDTW=m_pDiffTextWindow3; pDTW->getSelectionRange(&firstLine, &lastLine, eD3LLineCoords); }
+   if ( pDTW && firstLine>=0 && m_pMergeResultWindow)
+   {
+      pDTW->resetSelection();
+
+      m_pMergeResultWindow->slotJoinDiffs( firstLine, lastLine );
+   }
+}
+
+void KDiff3App::slotConfigure()
+{
+   m_pOptionDialog->setState();
+   m_pOptionDialog->incrementInitialSize ( QSize(0,40) );
+   m_pOptionDialog->exec();
+   slotRefresh();
+}
+
+void KDiff3App::slotConfigureKeys()
+{
+    KShortcutsDialog::configure(actionCollection(), KShortcutsEditor::LetterShortcutsAllowed, this);
+}
+
+void KDiff3App::slotRefresh()
+{
+   if (m_pDiffTextWindow1!=0)
+   {
+      m_pDiffTextWindow1->setFont(m_pOptions->m_font);
+      m_pDiffTextWindow1->update();
+   }
+   if (m_pDiffTextWindow2!=0)
+   {
+      m_pDiffTextWindow2->setFont(m_pOptions->m_font);
+      m_pDiffTextWindow2->update();
+   }
+   if (m_pDiffTextWindow3!=0)
+   {
+      m_pDiffTextWindow3->setFont(m_pOptions->m_font);
+      m_pDiffTextWindow3->update();
+   }
+   if (m_pMergeResultWindow!=0)
+   {
+      m_pMergeResultWindow->setFont(m_pOptions->m_font);
+      m_pMergeResultWindow->update();
+   }
+   if (m_pHScrollBar!=0)
+   {
+      m_pHScrollBar->setAgain();
+   }
+   if ( m_pDiffWindowSplitter!=0 )
+   {
+      m_pDiffWindowSplitter->setOrientation( m_pOptions->m_bHorizDiffWindowSplitting ? Qt::Horizontal : Qt::Vertical );
+   }
+   if ( m_pDirectoryMergeWindow )
+   {
+      m_pDirectoryMergeWindow->updateFileVisibilities();
+   }
+}
+
+void KDiff3App::slotSelectionStart()
+{
+   //editCopy->setEnabled( false );
+   //editCut->setEnabled( false );
+
+   const QObject* s = sender();
+   if (m_pDiffTextWindow1 && s!=m_pDiffTextWindow1)   m_pDiffTextWindow1->resetSelection();
+   if (m_pDiffTextWindow2 && s!=m_pDiffTextWindow2)   m_pDiffTextWindow2->resetSelection();
+   if (m_pDiffTextWindow3 && s!=m_pDiffTextWindow3)   m_pDiffTextWindow3->resetSelection();
+   if (m_pMergeResultWindow && s!=m_pMergeResultWindow) m_pMergeResultWindow->resetSelection();
+}
+
+void KDiff3App::slotSelectionEnd()
+{
+   //const QObject* s = sender();
+   //editCopy->setEnabled(true);
+   //editCut->setEnabled( s==m_pMergeResultWindow );
+   if ( m_pOptions->m_bAutoCopySelection )
+   {
+      slotEditCopy();
+   }
+   else
+   {
+       QClipboard *clipBoard = QApplication::clipboard();
+
+       if (clipBoard->supportsSelection ())
+       {
+           QString s;
+           if (               m_pDiffTextWindow1!=0 )   s = m_pDiffTextWindow1->getSelection();
+           if ( s.isNull() && m_pDiffTextWindow2!=0 )   s = m_pDiffTextWindow2->getSelection();
+           if ( s.isNull() && m_pDiffTextWindow3!=0 )   s = m_pDiffTextWindow3->getSelection();
+           if ( s.isNull() && m_pMergeResultWindow!=0 ) s = m_pMergeResultWindow->getSelection();
+           if ( !s.isNull() )
+           {
+               clipBoard->setText( s, QClipboard::Selection );
+           }
+       }
+   }
+}
+
+void KDiff3App::slotClipboardChanged()
+{
+   QString s = QApplication::clipboard()->text();
+   //editPaste->setEnabled(!s.isEmpty());
+}
+
+void KDiff3App::slotOutputModified(bool bModified)
+{
+   if ( bModified && !m_bOutputModified )
+   {
+      m_bOutputModified=true;
+      slotUpdateAvailabilities();
+   }
+}
+
+void KDiff3App::slotAutoAdvanceToggled()
+{
+   m_pOptions->m_bAutoAdvance = autoAdvance->isChecked();
+}
+
+void KDiff3App::slotWordWrapToggled()
+{
+   m_pOptions->m_bWordWrap = wordWrap->isChecked();
+   postRecalcWordWrap();
+}
+
+// Enable or disable all widgets except the status bar widget.
+static void mainWindowEnable(QWidget* pWidget, bool bEnable)
+{
+   if (QMainWindow* pWindow = dynamic_cast<QMainWindow*>(pWidget->window()))
+   {
+      QWidget* pStatusBarWidget = pWindow->statusBar();
+      QList<QObject*> children = pWindow->children();
+      for (int i = 0; i < children.count(); ++i)
+      {
+         if (children[i]->isWidgetType())
+         {
+            QWidget* pChildWidget = (QWidget*)children[i];
+            if (pChildWidget != pStatusBarWidget)
+            {
+               pChildWidget->setEnabled(bEnable);
+            }
+         }
+      }
+   }
+}
+
+void KDiff3App::postRecalcWordWrap()
+{
+   if ( ! m_bRecalcWordWrapPosted )
+   {
+      m_bRecalcWordWrapPosted = true;
+      mainWindowEnable(window(), false);
+      m_firstD3LIdx = -1;
+      QTimer::singleShot( 1 /* ms */, this, SLOT(slotRecalcWordWrap()) );
+   }
+   else
+   {
+      g_pProgressDialog->cancel(ProgressDialog::eResize);
+   }
+}
+
+void KDiff3App::slotRecalcWordWrap()
+{
+   recalcWordWrap();
+}
+
+// visibleTextWidthForPrinting is >=0 only for printing, otherwise the really visible width is used
+void KDiff3App::recalcWordWrap(int visibleTextWidthForPrinting)
+{
+   m_bRecalcWordWrapPosted = true;
+   mainWindowEnable(window(), false);
+
+   m_visibleTextWidthForPrinting = visibleTextWidthForPrinting;
+   if (m_firstD3LIdx < 0)
+   {
+      m_firstD3LIdx = 0;
+      if (m_pDiffTextWindow1)
+         m_firstD3LIdx = m_pDiffTextWindow1->convertLineToDiff3LineIdx(m_pDiffTextWindow1->getFirstLine());
+   }
+
+   // Convert selection to D3L-coords (converting back happens in DiffTextWindow::recalcWordWrap()
+   if ( m_pDiffTextWindow1 )
+      m_pDiffTextWindow1->convertSelectionToD3LCoords();
+   if ( m_pDiffTextWindow2 )
+      m_pDiffTextWindow2->convertSelectionToD3LCoords();
+   if ( m_pDiffTextWindow3 )
+      m_pDiffTextWindow3->convertSelectionToD3LCoords();
+
+   g_pProgressDialog->clearCancelState(); // clear cancelled state if previously set
+
+   if (!m_diff3LineList.empty())
+   {
+      if (m_pOptions->m_bWordWrap)
+      {
+         Diff3LineList::iterator i;
+         int sumOfLines = 0;
+         for (i = m_diff3LineList.begin(); i != m_diff3LineList.end(); ++i)
+         {
+            Diff3Line& d3l = *i;
+            d3l.linesNeededForDisplay = 1;
+            d3l.sumLinesNeededForDisplay = sumOfLines;
+            sumOfLines += d3l.linesNeededForDisplay;
+         }
+
+         // Let every window calc how many lines will be needed.
+         if (m_pDiffTextWindow1)
+         {
+            m_pDiffTextWindow1->recalcWordWrap(true, 0, m_visibleTextWidthForPrinting);
+         }
+         if (m_pDiffTextWindow2)
+         {
+            m_pDiffTextWindow2->recalcWordWrap(true, 0, m_visibleTextWidthForPrinting);
+         }
+         if (m_pDiffTextWindow3)
+         {
+            m_pDiffTextWindow3->recalcWordWrap(true, 0, m_visibleTextWidthForPrinting);
+         }
+      }
+      else
+      {
+         m_neededLines = m_diff3LineVector.size();
+         if (m_pDiffTextWindow1)
+            m_pDiffTextWindow1->recalcWordWrap(false, 0, 0);
+         if (m_pDiffTextWindow2)
+            m_pDiffTextWindow2->recalcWordWrap(false, 0, 0);
+         if (m_pDiffTextWindow3)
+            m_pDiffTextWindow3->recalcWordWrap(false, 0, 0);
+      }
+      bool bRunnablesStarted = startRunnables();
+      if (!bRunnablesStarted)
+         slotFinishRecalcWordWrap();
+      else
+      {
+         g_pProgressDialog->setInformation(m_pOptions->m_bWordWrap
+            ? i18n("Word wrap (Cancel disables word wrap)") : i18n("Calculating max width for horizontal scrollbar"), false);
+      }
+   }
+}
+
+void KDiff3App::slotFinishRecalcWordWrap()
+{
+   g_pProgressDialog->pop();
+
+   if ( m_pOptions->m_bWordWrap && g_pProgressDialog->wasCancelled())
+   {
+      if (g_pProgressDialog->cancelReason() == ProgressDialog::eUserAbort)
+      {
+         wordWrap->setChecked(false);
+         m_pOptions->m_bWordWrap = wordWrap->isChecked();
+         QTimer::singleShot(1 /* ms */, this, SLOT(slotRecalcWordWrap())); // do it again
+      }
+      else // eResize
+      {
+         QTimer::singleShot(1 /* ms */, this, SLOT(slotRecalcWordWrap())); // do it again
+      }
+      return;
+   }
+   else
+   {
+      m_bRecalcWordWrapPosted = false;
+   }
+
+   g_pProgressDialog->setStayHidden(false);
+
+   bool bPrinting = m_visibleTextWidthForPrinting >= 0;
+
+   if (!m_diff3LineList.empty())
+   {
+      if (m_pOptions->m_bWordWrap)
+      {
+         Diff3LineList::iterator i;
+         int sumOfLines = 0;
+         for (i = m_diff3LineList.begin(); i != m_diff3LineList.end(); ++i)
+         {
+            Diff3Line& d3l = *i;
+            d3l.sumLinesNeededForDisplay = sumOfLines;
+            sumOfLines += d3l.linesNeededForDisplay;
+         }
+
+         // Finish the word wrap
+         if (m_pDiffTextWindow1)
+            m_pDiffTextWindow1->recalcWordWrap(true, sumOfLines, m_visibleTextWidthForPrinting);
+         if (m_pDiffTextWindow2)
+            m_pDiffTextWindow2->recalcWordWrap(true, sumOfLines, m_visibleTextWidthForPrinting);
+         if (m_pDiffTextWindow3)
+            m_pDiffTextWindow3->recalcWordWrap(true, sumOfLines, m_visibleTextWidthForPrinting);
+
+         m_neededLines = sumOfLines;
+      }
+      else
+      {
+         if (m_pDiffTextWindow1)
+            m_pDiffTextWindow1->recalcWordWrap(false, 1, 0);
+         if (m_pDiffTextWindow2)
+            m_pDiffTextWindow2->recalcWordWrap(false, 1, 0);
+         if (m_pDiffTextWindow3)
+            m_pDiffTextWindow3->recalcWordWrap(false, 1, 0);
+      }
+      slotStatusMsg(QString());
+   }
+
+   if (!bPrinting)
+   {
+      if (m_pOverview)
+         m_pOverview->slotRedraw();
+      if (m_pDiffVScrollBar)
+         m_pDiffVScrollBar->setRange(0, max2(0, m_neededLines + 1 - m_DTWHeight));
+      if (m_pDiffTextWindow1)
+      {
+         m_pDiffVScrollBar->setValue(m_pDiffTextWindow1->convertDiff3LineIdxToLine(m_firstD3LIdx));
+
+         setHScrollBarRange();
+         m_pHScrollBar->setValue(0);
+      }
+   }
+   mainWindowEnable(window(), true);
+
+   if (m_bFinishMainInit)
+   {
+      m_bFinishMainInit = false;
+      slotFinishMainInit();
+   }
+   if (m_pEventLoopForPrinting)
+      m_pEventLoopForPrinting->quit();
+}
+
+void KDiff3App::slotShowWhiteSpaceToggled()
+{
+   m_pOptions->m_bShowWhiteSpaceCharacters = showWhiteSpaceCharacters->isChecked();
+   m_pOptions->m_bShowWhiteSpace = showWhiteSpace->isChecked();
+
+   if ( m_pDiffTextWindow1!=0 )
+      m_pDiffTextWindow1->update();
+   if ( m_pDiffTextWindow2!=0 )
+      m_pDiffTextWindow2->update();
+   if ( m_pDiffTextWindow3!=0 )
+      m_pDiffTextWindow3->update();
+   if ( m_pMergeResultWindow !=0 )
+      m_pMergeResultWindow->update();
+   if ( m_pOverview!=0 )
+      m_pOverview->slotRedraw();
+}
+
+void KDiff3App::slotShowLineNumbersToggled()
+{
+   m_pOptions->m_bShowLineNumbers = showLineNumbers->isChecked();
+   
+   if ( wordWrap->isChecked() )
+      recalcWordWrap();
+
+   if ( m_pDiffTextWindow1!=0 )
+      m_pDiffTextWindow1->update();
+   if ( m_pDiffTextWindow2!=0 )
+      m_pDiffTextWindow2->update();
+
+   if ( m_pDiffTextWindow3!=0 )
+      m_pDiffTextWindow3->update();
+ }
+
+/// Return true for success, else false
+bool KDiff3App::improveFilenames( bool bCreateNewInstance )
+{
+   m_bDirCompare = false;
+
+   FileAccess f1(m_sd1.getFilename());
+   FileAccess f2(m_sd2.getFilename());
+   FileAccess f3(m_sd3.getFilename());
+   FileAccess f4(m_outputFilename);
+
+   if ( f1.isFile()  &&  f1.exists() )
+   {
+      if ( f2.isDir() )
+      {
+         f2.addPath( f1.fileName() );
+         if ( f2.isFile() && f2.exists() )
+            m_sd2.setFileAccess( f2 );
+      }
+      if ( f3.isDir() )
+      {
+         f3.addPath( f1.fileName() );
+         if ( f3.isFile() && f3.exists() )
+            m_sd3.setFileAccess( f3 );
+      }
+      if ( f4.isDir() )
+      {
+         f4.addPath( f1.fileName() );
+         if ( f4.isFile() && f4.exists() )
+            m_outputFilename = f4.absoluteFilePath();
+      }
+   }
+   else if ( f1.isDir() )
+   {
+      m_bDirCompare = true;
+      if (bCreateNewInstance)
+      {
+         emit createNewInstance( f1.absoluteFilePath(), f2.absoluteFilePath(), f3.absoluteFilePath() );
+      }
+      else
+      {
+         FileAccess destDir;
+         if (!m_bDefaultFilename) destDir = f4;
+         m_pDirectoryMergeSplitter->show();
+         if (m_pMainWidget!=0) m_pMainWidget->hide();
+         setUpdatesEnabled(true);
+
+         bool bSuccess = m_pDirectoryMergeWindow->init(
+            f1, f2, f3,
+            destDir,  // Destdirname
+            !m_outputFilename.isEmpty()
+            );
+   
+         m_bDirCompare = true;  // This seems redundant but it might have been reset during full analysis.
+   
+         if (bSuccess)
+         {
+            m_sd1.reset();
+            if (m_pDiffTextWindow1!=0) m_pDiffTextWindow1->init(0,0,eLineEndStyleDos,0,0,0,0,false);
+            m_sd2.reset();
+            if (m_pDiffTextWindow2!=0) m_pDiffTextWindow2->init(0,0,eLineEndStyleDos,0,0,0,0,false);
+            m_sd3.reset();
+            if (m_pDiffTextWindow3!=0) m_pDiffTextWindow3->init(0,0,eLineEndStyleDos,0,0,0,0,false);
+         }
+         slotUpdateAvailabilities();
+         return bSuccess;
+      }
+   }
+   return true;
+}
+
+void KDiff3App::slotReload()
+{
+   if ( !canContinue() ) return;
+
+   mainInit();
+}
+
+bool KDiff3App::canContinue()
+{
+   // First test if anything must be saved.
+   if(m_bOutputModified)
+   {
+      int result = KMessageBox::warningYesNoCancel(this,
+         i18n("The merge result hasn't been saved."),
+         i18n("Warning"), 
+         KGuiItem( i18n("Save && Continue") ), 
+         KGuiItem( i18n("Continue Without Saving") ) );
+      if ( result==KMessageBox::Cancel )
+         return false;
+      else if ( result==KMessageBox::Yes )
+      {
+         slotFileSave();
+         if ( m_bOutputModified )
+         {
+            KMessageBox::sorry(this, i18n("Saving the merge result failed."), i18n("Warning") );
+            return false;
+         }
+      }
+   }
+
+   m_bOutputModified = false;
+   return true;
+}
+
+void KDiff3App::slotCheckIfCanContinue( bool* pbContinue )
+{
+   if (pbContinue!=0) *pbContinue = canContinue();
+}
+
+
+void KDiff3App::slotDirShowBoth()
+{
+   if( dirShowBoth->isChecked() )
+   {
+      if ( m_pDirectoryMergeSplitter )
+         m_pDirectoryMergeSplitter->setVisible( m_bDirCompare );
+
+      if ( m_pMainWidget!=0 )
+         m_pMainWidget->show();
+   }
+   else
+   {
+      bool bTextDataAvailable = ( m_sd1.hasData() || m_sd2.hasData() || m_sd3.hasData() );
+      if ( m_pMainWidget!=0 &&  bTextDataAvailable )
+      {
+         m_pMainWidget->show();
+         m_pDirectoryMergeSplitter->hide();
+      }
+      else if ( m_bDirCompare )
+      {
+         m_pDirectoryMergeSplitter->show();
+      }
+   }
+
+   slotUpdateAvailabilities();
+}
+
+
+void KDiff3App::slotDirViewToggle()
+{
+   if ( m_bDirCompare )
+   {
+      if( ! m_pDirectoryMergeSplitter->isVisible() )
+      {
+         m_pDirectoryMergeSplitter->show();
+         if (m_pMainWidget!=0)
+            m_pMainWidget->hide();
+      }
+      else
+      {
+         if (m_pMainWidget!=0)
+         {
+            m_pDirectoryMergeSplitter->hide();
+            m_pMainWidget->show();
+         }
+      }
+   }
+   slotUpdateAvailabilities();
+}
+
+void KDiff3App::slotShowWindowAToggled()
+{
+   if ( m_pDiffTextWindow1!=0 )
+   {
+      m_pDiffTextWindowFrame1->setVisible( showWindowA->isChecked() );
+      slotUpdateAvailabilities();
+   }
+}
+
+void KDiff3App::slotShowWindowBToggled()
+{
+   if ( m_pDiffTextWindow2!=0 )
+   {
+      m_pDiffTextWindowFrame2->setVisible( showWindowB->isChecked() );
+      slotUpdateAvailabilities();
+   }
+}
+
+void KDiff3App::slotShowWindowCToggled()
+{
+   if ( m_pDiffTextWindow3!=0 )
+   {
+      m_pDiffTextWindowFrame3->setVisible( showWindowC->isChecked() );
+      slotUpdateAvailabilities();
+   }
+}
+
+void KDiff3App::slotEditFind()
+{
+   m_pFindDialog->currentLine = 0;
+   m_pFindDialog->currentPos = 0;
+   m_pFindDialog->currentWindow = 1;
+
+   // Use currently selected text:
+   QString s;
+   if (               m_pDiffTextWindow1!=0 )   s = m_pDiffTextWindow1->getSelection();
+   if ( s.isNull() && m_pDiffTextWindow2!=0 )   s = m_pDiffTextWindow2->getSelection();
+   if ( s.isNull() && m_pDiffTextWindow3!=0 )   s = m_pDiffTextWindow3->getSelection();
+   if ( s.isNull() && m_pMergeResultWindow!=0 ) s = m_pMergeResultWindow->getSelection();
+   if ( !s.isNull() && !s.contains('\n') )
+   {
+      m_pFindDialog->m_pSearchString->setText( s );
+   }   
+   
+   if ( QDialog::Accepted == m_pFindDialog->exec() )
+   {
+      slotEditFindNext();
+   }
+}
+
+void KDiff3App::slotEditFindNext()
+{
+   QString s = m_pFindDialog->m_pSearchString->text();
+   if ( s.isEmpty() )
+   {
+      slotEditFind();
+      return;
+   }
+
+   bool bDirDown = true;
+   bool bCaseSensitive = m_pFindDialog->m_pCaseSensitive->isChecked();
+
+   int d3vLine = m_pFindDialog->currentLine;
+   int posInLine = m_pFindDialog->currentPos;
+   int l=0;
+   int p=0;
+   if ( m_pFindDialog->currentWindow == 1 )
+   {
+      if ( m_pFindDialog->m_pSearchInA->isChecked() && m_pDiffTextWindow1!=0  &&
+           m_pDiffTextWindow1->findString( s, d3vLine, posInLine, bDirDown, bCaseSensitive ) )
+      {
+         m_pDiffTextWindow1->setSelection( d3vLine, posInLine, d3vLine, posInLine+s.length(), l, p );
+         m_pDiffVScrollBar->setValue(l-m_pDiffVScrollBar->pageStep()/2);
+         m_pHScrollBar->setValue( max2( 0, p+(int)s.length()-m_pHScrollBar->pageStep()) );
+         m_pFindDialog->currentLine = d3vLine;
+         m_pFindDialog->currentPos = posInLine + 1;
+         return;
+      }
+      m_pFindDialog->currentWindow = 2;
+      m_pFindDialog->currentLine = 0;
+      m_pFindDialog->currentPos = 0;
+   }
+
+   d3vLine = m_pFindDialog->currentLine;
+   posInLine = m_pFindDialog->currentPos;
+   if ( m_pFindDialog->currentWindow == 2 )
+   {
+      if ( m_pFindDialog->m_pSearchInB->isChecked() && m_pDiffTextWindow2!=0 &&
+           m_pDiffTextWindow2->findString( s, d3vLine, posInLine, bDirDown, bCaseSensitive ) )
+      {
+         m_pDiffTextWindow2->setSelection( d3vLine, posInLine, d3vLine, posInLine+s.length(),l,p );
+         m_pDiffVScrollBar->setValue(l-m_pDiffVScrollBar->pageStep()/2);
+         m_pHScrollBar->setValue( max2( 0, p+(int)s.length()-m_pHScrollBar->pageStep()) );
+         m_pFindDialog->currentLine = d3vLine;
+         m_pFindDialog->currentPos = posInLine + 1;
+         return;
+      }
+      m_pFindDialog->currentWindow = 3;
+      m_pFindDialog->currentLine = 0;
+      m_pFindDialog->currentPos = 0;
+   }
+
+   d3vLine = m_pFindDialog->currentLine;
+   posInLine = m_pFindDialog->currentPos;
+   if ( m_pFindDialog->currentWindow == 3 )
+   {
+      if ( m_pFindDialog->m_pSearchInC->isChecked() && m_pDiffTextWindow3!=0 &&
+           m_pDiffTextWindow3->findString( s, d3vLine, posInLine, bDirDown, bCaseSensitive ) )
+      {
+         m_pDiffTextWindow3->setSelection( d3vLine, posInLine, d3vLine, posInLine+s.length(),l,p );
+         m_pDiffVScrollBar->setValue(l-m_pDiffVScrollBar->pageStep()/2);
+         m_pHScrollBar->setValue( max2( 0, p+(int)s.length()-m_pHScrollBar->pageStep()) );
+         m_pFindDialog->currentLine = d3vLine;
+         m_pFindDialog->currentPos = posInLine + 1;
+         return;
+      }
+      m_pFindDialog->currentWindow = 4;
+      m_pFindDialog->currentLine = 0;
+      m_pFindDialog->currentPos = 0;
+   }  
+
+   d3vLine = m_pFindDialog->currentLine;
+   posInLine = m_pFindDialog->currentPos;
+   if ( m_pFindDialog->currentWindow == 4 )
+   {
+      if ( m_pFindDialog->m_pSearchInOutput->isChecked() && m_pMergeResultWindow!=0 && m_pMergeResultWindow->isVisible() &&
+           m_pMergeResultWindow->findString( s, d3vLine, posInLine, bDirDown, bCaseSensitive ) )
+      {
+         m_pMergeResultWindow->setSelection( d3vLine, posInLine, d3vLine, posInLine+s.length() );
+         m_pMergeVScrollBar->setValue(d3vLine - m_pMergeVScrollBar->pageStep()/2);
+         m_pHScrollBar->setValue( max2( 0, posInLine+(int)s.length()-m_pHScrollBar->pageStep()) );
+         m_pFindDialog->currentLine = d3vLine;
+         m_pFindDialog->currentPos = posInLine + 1;
+         return;
+      }
+      m_pFindDialog->currentWindow = 5;
+      m_pFindDialog->currentLine = 0;
+      m_pFindDialog->currentPos = 0;
+   }
+
+   KMessageBox::information(this,i18n("Search complete."),i18n("Search Complete"));
+   m_pFindDialog->currentWindow = 1;
+   m_pFindDialog->currentLine = 0;
+   m_pFindDialog->currentPos = 0;
+}
+
+void KDiff3App::slotMergeCurrentFile()
+{
+   if ( m_bDirCompare  &&  m_pDirectoryMergeWindow->isVisible()  &&  m_pDirectoryMergeWindow->isFileSelected() )
+   {
+      m_pDirectoryMergeWindow->mergeCurrentFile();
+   }
+   else if ( m_pMainWidget != 0 && m_pMainWidget->isVisible() )
+   {
+      if ( !canContinue() ) return;
+      if ( m_outputFilename.isEmpty() )
+      {
+         if ( !m_sd3.isEmpty() && !m_sd3.isFromBuffer() )
+         {
+            m_outputFilename =  m_sd3.getFilename();
+         }
+         else if ( !m_sd2.isEmpty() && !m_sd2.isFromBuffer() )
+         {
+            m_outputFilename =  m_sd2.getFilename();
+         }
+         else if ( !m_sd1.isEmpty() && !m_sd1.isFromBuffer() )
+         {
+            m_outputFilename =  m_sd1.getFilename();
+         }
+         else
+         {
+            m_outputFilename = "unnamed.txt";
+            m_bDefaultFilename = true;
+         }
+      }
+      mainInit();
+   }
+}
+
+void KDiff3App::slotWinFocusNext()
+{
+   QWidget* focus = qApp->focusWidget();
+   if ( focus == m_pDirectoryMergeWindow && m_pDirectoryMergeWindow->isVisible() && ! dirShowBoth->isChecked() )
+   {
+      slotDirViewToggle();
+   }
+
+   std::list<QWidget*> visibleWidgetList;
+   if ( m_pDiffTextWindow1 && m_pDiffTextWindow1->isVisible() ) visibleWidgetList.push_back(m_pDiffTextWindow1);
+   if ( m_pDiffTextWindow2 && m_pDiffTextWindow2->isVisible() ) visibleWidgetList.push_back(m_pDiffTextWindow2);
+   if ( m_pDiffTextWindow3 && m_pDiffTextWindow3->isVisible() ) visibleWidgetList.push_back(m_pDiffTextWindow3);
+   if ( m_pMergeResultWindow && m_pMergeResultWindow->isVisible() ) visibleWidgetList.push_back(m_pMergeResultWindow);
+   if ( m_bDirCompare /*m_pDirectoryMergeWindow->isVisible()*/ ) visibleWidgetList.push_back(m_pDirectoryMergeWindow);
+   //if ( m_pDirectoryMergeInfo->isVisible() ) visibleWidgetList.push_back(m_pDirectoryMergeInfo->getInfoList());
+
+   std::list<QWidget*>::iterator i = std::find( visibleWidgetList.begin(),  visibleWidgetList.end(), focus);
+   ++i;
+   if ( i==visibleWidgetList.end() ) 
+      i = visibleWidgetList.begin();
+   if ( i!=visibleWidgetList.end() )
+   {
+      if ( *i == m_pDirectoryMergeWindow  && ! dirShowBoth->isChecked() )
+      {
+         slotDirViewToggle();
+      }
+      (*i)->setFocus();
+   }
+}
+
+void KDiff3App::slotWinFocusPrev()
+{
+   QWidget* focus = qApp->focusWidget();
+   if ( focus == m_pDirectoryMergeWindow  && m_pDirectoryMergeWindow->isVisible() && ! dirShowBoth->isChecked() )
+   {
+      slotDirViewToggle();
+   }
+
+   std::list<QWidget*> visibleWidgetList;
+   if ( m_pDiffTextWindow1 && m_pDiffTextWindow1->isVisible() ) visibleWidgetList.push_back(m_pDiffTextWindow1);
+   if ( m_pDiffTextWindow2 && m_pDiffTextWindow2->isVisible() ) visibleWidgetList.push_back(m_pDiffTextWindow2);
+   if ( m_pDiffTextWindow3 && m_pDiffTextWindow3->isVisible() ) visibleWidgetList.push_back(m_pDiffTextWindow3);
+   if ( m_pMergeResultWindow && m_pMergeResultWindow->isVisible() ) visibleWidgetList.push_back(m_pMergeResultWindow);
+   if (m_bDirCompare /* m_pDirectoryMergeWindow->isVisible() */ ) visibleWidgetList.push_back(m_pDirectoryMergeWindow);
+   //if ( m_pDirectoryMergeInfo->isVisible() ) visibleWidgetList.push_back(m_pDirectoryMergeInfo->getInfoList());
+
+   std::list<QWidget*>::iterator i = std::find( visibleWidgetList.begin(),  visibleWidgetList.end(), focus);
+   if ( i==visibleWidgetList.begin() )
+      i=visibleWidgetList.end();
+   --i;
+   if ( i!=visibleWidgetList.end() )
+   {
+      if ( *i == m_pDirectoryMergeWindow  && ! dirShowBoth->isChecked() )
+      {
+         slotDirViewToggle();
+      }
+      (*i)->setFocus();
+   }
+}
+
+void KDiff3App::slotWinToggleSplitterOrientation()
+{
+   if ( m_pDiffWindowSplitter!=0 )
+   {
+      m_pDiffWindowSplitter->setOrientation(
+            m_pDiffWindowSplitter->orientation()==Qt::Vertical ? Qt::Horizontal : Qt::Vertical
+         );
+
+      m_pOptions->m_bHorizDiffWindowSplitting = m_pDiffWindowSplitter->orientation()==Qt::Horizontal;
+   }
+}
+
+void KDiff3App::slotOverviewNormal()
+{
+   if ( m_pOverview != 0 )
+      m_pOverview->setOverviewMode( Overview::eOMNormal );
+   if ( m_pMergeResultWindow !=0 )
+      m_pMergeResultWindow->setOverviewMode( Overview::eOMNormal );
+   slotUpdateAvailabilities();
+}
+
+void KDiff3App::slotOverviewAB()
+{
+   if ( m_pOverview != 0 )
+      m_pOverview->setOverviewMode( Overview::eOMAvsB );
+   m_pMergeResultWindow->setOverviewMode( Overview::eOMAvsB );
+   slotUpdateAvailabilities();
+}
+
+void KDiff3App::slotOverviewAC()
+{
+   if ( m_pOverview != 0 )
+      m_pOverview->setOverviewMode( Overview::eOMAvsC );
+   if ( m_pMergeResultWindow !=0 )
+      m_pMergeResultWindow->setOverviewMode( Overview::eOMAvsC );
+   slotUpdateAvailabilities();
+}
+
+void KDiff3App::slotOverviewBC()
+{
+   if ( m_pOverview != 0 )
+      m_pOverview->setOverviewMode( Overview::eOMBvsC );
+   if ( m_pMergeResultWindow !=0 )
+      m_pMergeResultWindow->setOverviewMode( Overview::eOMBvsC );
+   slotUpdateAvailabilities();
+}
+
+void KDiff3App::slotNoRelevantChangesDetected()
+{
+   if ( m_bTripleDiff &&  ! m_outputFilename.isEmpty() )
+   {
+      //KMessageBox::information( this, "No relevant changes detected", "KDiff3" );
+      if (!m_pOptions->m_IrrelevantMergeCmd.isEmpty())
+      {
+         QString cmd = m_pOptions->m_IrrelevantMergeCmd + " \"" + m_sd1.getAliasName()+ "\" \"" + m_sd2.getAliasName() + "\" \"" + m_sd3.getAliasName();
+         QProcess process;
+         process.start( cmd );
+         process.waitForFinished(-1);
+         //::system( cmd.local8Bit() );
+      }
+   }
+}
+
+static void insertManualDiffHelp( ManualDiffHelpList* pManualDiffHelpList, int winIdx, int firstLine, int lastLine )
+{
+   // The manual diff help list must be sorted and compact.
+   // "Compact" means that upper items can't be empty if lower items contain data.
+
+   // First insert the new item without regarding compactness.
+   // If the new item overlaps with previous items then the previous items will be removed.
+
+   ManualDiffHelpEntry mdhe;
+   mdhe.firstLine( winIdx ) = firstLine;
+   mdhe.lastLine( winIdx ) = lastLine;
+
+   ManualDiffHelpList::iterator i;
+   for( i=pManualDiffHelpList->begin(); i!=pManualDiffHelpList->end(); ++i )
+   {
+      int& l1 = i->firstLine( winIdx );
+      int& l2 = i->lastLine( winIdx );
+      if (l1>=0 && l2>=0)
+      {
+         if ( (firstLine<=l1 && lastLine>=l1)  ||  (firstLine <=l2 && lastLine>=l2) )
+         {
+            // overlap
+            l1 = -1;
+            l2 = -1;
+         }
+         if ( firstLine<l1 && lastLine<l1 )
+         {
+            // insert before this position
+            pManualDiffHelpList->insert( i, mdhe );
+            break;
+         }
+      }
+   }
+   if ( i == pManualDiffHelpList->end() )
+   {
+      pManualDiffHelpList->insert( i, mdhe );
+   }
+
+   // Now make the list compact
+   for( int wIdx=1; wIdx<=3; ++wIdx )
+   {
+      ManualDiffHelpList::iterator iEmpty = pManualDiffHelpList->begin();
+      for( i=pManualDiffHelpList->begin(); i!=pManualDiffHelpList->end(); ++i )
+      {
+         if ( iEmpty->firstLine(wIdx) >= 0 )
+         {
+            ++iEmpty;
+            continue;
+         }
+         if ( i->firstLine(wIdx)>=0 )  // Current item is not empty -> move it to the empty place
+         {
+            iEmpty->firstLine(wIdx) = i->firstLine(wIdx);
+            iEmpty->lastLine(wIdx) = i->lastLine(wIdx);
+            i->firstLine(wIdx) = -1;
+            i->lastLine(wIdx) = -1;
+            ++iEmpty;
+         }
+      }
+   }
+   pManualDiffHelpList->remove( ManualDiffHelpEntry() ); // Remove all completely empty items.
+}
+
+void KDiff3App::slotAddManualDiffHelp()
+{
+   int firstLine = -1;
+   int lastLine = -1;
+   int winIdx = -1;
+   if (                m_pDiffTextWindow1 ) { m_pDiffTextWindow1->getSelectionRange(&firstLine, &lastLine, eFileCoords); winIdx=1; }
+   if ( firstLine<0 && m_pDiffTextWindow2 ) { m_pDiffTextWindow2->getSelectionRange(&firstLine, &lastLine, eFileCoords); winIdx=2; }
+   if ( firstLine<0 && m_pDiffTextWindow3 ) { m_pDiffTextWindow3->getSelectionRange(&firstLine, &lastLine, eFileCoords); winIdx=3; }
+
+   if ( firstLine<0 || lastLine <0 || lastLine<firstLine )
+      KMessageBox::information( this, i18n("Nothing is selected in either diff input window."), i18n("Error while adding manual diff range") );
+   else
+   {
+   /*
+      ManualDiffHelpEntry mdhe;
+      if (!m_manualDiffHelpList.empty()) mdhe = m_manualDiffHelpList.front();
+      if ( winIdx==1 ) { mdhe.lineA1 = firstLine; mdhe.lineA2 = lastLine; }
+      if ( winIdx==2 ) { mdhe.lineB1 = firstLine; mdhe.lineB2 = lastLine; }
+      if ( winIdx==3 ) { mdhe.lineC1 = firstLine; mdhe.lineC2 = lastLine; }
+      m_manualDiffHelpList.clear();
+      m_manualDiffHelpList.push_back( mdhe );
+      */
+
+      insertManualDiffHelp( &m_manualDiffHelpList, winIdx, firstLine, lastLine );
+
+      mainInit( 0, false ); // Init without reload
+      slotRefresh();
+   }
+}
+
+void KDiff3App::slotClearManualDiffHelpList()
+{
+   m_manualDiffHelpList.clear();
+   mainInit( 0, false ); // Init without reload
+   slotRefresh();
+}
+
+void KDiff3App::slotEncodingChangedA(QTextCodec* c)
+{
+    m_sd1.setEncoding(c);
+    mainInit( 0, true, true); // Init with reload
+    slotRefresh();
+}
+
+void KDiff3App::slotEncodingChangedB(QTextCodec* c)
+{
+    m_sd2.setEncoding(c);
+    mainInit( 0, true, true); // Init with reload
+    slotRefresh();
+}
+
+void KDiff3App::slotEncodingChangedC(QTextCodec* c)
+{
+    m_sd3.setEncoding(c);
+    mainInit( 0, true, true ); // Init with reload
+    slotRefresh();
+}
+
+void KDiff3App::slotUpdateAvailabilities()
+{
+   if (m_pMainSplitter==0)
+      return;
+
+   bool bTextDataAvailable = ( m_sd1.hasData() || m_sd2.hasData() || m_sd3.hasData() );
+
+   if( dirShowBoth->isChecked() )
+   {
+      if ( m_pDirectoryMergeSplitter!=0 )
+         m_pDirectoryMergeSplitter->setVisible( m_bDirCompare );
+
+      if ( m_pMainWidget!=0 && !m_pMainWidget->isVisible() &&
+           bTextDataAvailable && !m_pDirectoryMergeWindow->isScanning()
+         )
+         m_pMainWidget->show();
+   }
+
+
+   bool bDiffWindowVisible = m_pMainWidget != 0 && m_pMainWidget->isVisible();
+   bool bMergeEditorVisible = m_pMergeWindowFrame !=0  &&  m_pMergeWindowFrame->isVisible();
+
+   m_pDirectoryMergeWindow->updateAvailabilities( m_bDirCompare, bDiffWindowVisible, chooseA, chooseB, chooseC );
+
+   dirShowBoth->setEnabled( m_bDirCompare );
+   dirViewToggle->setEnabled(
+      m_bDirCompare &&
+      ((!m_pDirectoryMergeSplitter->isVisible()  &&  m_pMainWidget!=0 && m_pMainWidget->isVisible()) ||
+        (m_pDirectoryMergeSplitter->isVisible()  &&  m_pMainWidget!=0 && !m_pMainWidget->isVisible() && bTextDataAvailable) )
+      );
+
+   bool bDirWindowHasFocus = m_pDirectoryMergeSplitter->isVisible() && m_pDirectoryMergeWindow->hasFocus();
+
+   showWhiteSpaceCharacters->setEnabled( bDiffWindowVisible );
+   autoAdvance->setEnabled( bMergeEditorVisible );
+   autoSolve->setEnabled( bMergeEditorVisible  &&  m_bTripleDiff );
+   unsolve->setEnabled( bMergeEditorVisible );
+   if ( !bDirWindowHasFocus )
+   {
+      chooseA->setEnabled( bMergeEditorVisible );
+      chooseB->setEnabled( bMergeEditorVisible );
+      chooseC->setEnabled( bMergeEditorVisible  &&  m_bTripleDiff );
+   }
+   chooseAEverywhere->setEnabled( bMergeEditorVisible );
+   chooseBEverywhere->setEnabled( bMergeEditorVisible );
+   chooseCEverywhere->setEnabled( bMergeEditorVisible  &&  m_bTripleDiff );
+   chooseAForUnsolvedConflicts->setEnabled( bMergeEditorVisible );
+   chooseBForUnsolvedConflicts->setEnabled( bMergeEditorVisible );
+   chooseCForUnsolvedConflicts->setEnabled( bMergeEditorVisible  &&  m_bTripleDiff );
+   chooseAForUnsolvedWhiteSpaceConflicts->setEnabled( bMergeEditorVisible );
+   chooseBForUnsolvedWhiteSpaceConflicts->setEnabled( bMergeEditorVisible );
+   chooseCForUnsolvedWhiteSpaceConflicts->setEnabled( bMergeEditorVisible  &&  m_bTripleDiff );
+   mergeHistory->setEnabled( bMergeEditorVisible );
+   mergeRegExp->setEnabled( bMergeEditorVisible );
+   showWindowA->setEnabled( bDiffWindowVisible && ( m_pDiffTextWindow2->isVisible() || m_pDiffTextWindow3->isVisible() ) );
+   showWindowB->setEnabled( bDiffWindowVisible && ( m_pDiffTextWindow1->isVisible() || m_pDiffTextWindow3->isVisible() ));
+   showWindowC->setEnabled( bDiffWindowVisible &&  m_bTripleDiff && ( m_pDiffTextWindow1->isVisible() || m_pDiffTextWindow2->isVisible() ) );
+   editFind->setEnabled( bDiffWindowVisible );
+   editFindNext->setEnabled( bDiffWindowVisible );
+   m_pFindDialog->m_pSearchInC->setEnabled( m_bTripleDiff );
+   m_pFindDialog->m_pSearchInOutput->setEnabled( bMergeEditorVisible );
+
+   bool bSavable = bMergeEditorVisible && m_pMergeResultWindow->getNrOfUnsolvedConflicts()==0;
+   fileSave->setEnabled( m_bOutputModified && bSavable );
+   fileSaveAs->setEnabled( bSavable );
+
+   goTop->setEnabled( bDiffWindowVisible &&  m_pMergeResultWindow->isDeltaAboveCurrent() );
+   goBottom->setEnabled( bDiffWindowVisible &&  m_pMergeResultWindow->isDeltaBelowCurrent() );
+   goCurrent->setEnabled( bDiffWindowVisible );
+   goPrevUnsolvedConflict->setEnabled( bMergeEditorVisible &&  m_pMergeResultWindow->isUnsolvedConflictAboveCurrent() );
+   goNextUnsolvedConflict->setEnabled( bMergeEditorVisible &&  m_pMergeResultWindow->isUnsolvedConflictBelowCurrent() );
+   goPrevConflict->setEnabled( bDiffWindowVisible &&  m_pMergeResultWindow->isConflictAboveCurrent() );
+   goNextConflict->setEnabled( bDiffWindowVisible &&  m_pMergeResultWindow->isConflictBelowCurrent() );
+   goPrevDelta->setEnabled( bDiffWindowVisible &&  m_pMergeResultWindow->isDeltaAboveCurrent() );
+   goNextDelta->setEnabled( bDiffWindowVisible &&  m_pMergeResultWindow->isDeltaBelowCurrent() );
+
+   overviewModeNormal->setEnabled( m_bTripleDiff && bDiffWindowVisible );
+   overviewModeAB->setEnabled( m_bTripleDiff && bDiffWindowVisible );
+   overviewModeAC->setEnabled( m_bTripleDiff && bDiffWindowVisible );
+   overviewModeBC->setEnabled( m_bTripleDiff && bDiffWindowVisible );
+   Overview::e_OverviewMode overviewMode = m_pOverview==0 ? Overview::eOMNormal : m_pOverview->getOverviewMode();
+   overviewModeNormal->setChecked( overviewMode == Overview::eOMNormal );
+   overviewModeAB->setChecked( overviewMode == Overview::eOMAvsB );
+   overviewModeAC->setChecked( overviewMode == Overview::eOMAvsC );
+   overviewModeBC->setChecked( overviewMode == Overview::eOMBvsC );
+
+   winToggleSplitOrientation->setEnabled( bDiffWindowVisible && m_pDiffWindowSplitter!=0 );
+}
diff --git a/src-QT4/progress.cpp b/src-QT4/progress.cpp
new file mode 100644 (file)
index 0000000..6aa7f0b
--- /dev/null
@@ -0,0 +1,545 @@
+/***************************************************************************
+ *   Copyright (C) 2003-2011 by Joachim Eibl                               *
+ *   joachim.eibl at gmx.de                                                *
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ ***************************************************************************/
+
+#include "progress.h"
+#include "common.h"
+
+#include <QProgressBar>
+#include <QVBoxLayout>
+#include <QPushButton>
+#include <QLabel>
+#include <QApplication>
+#include <QThread>
+#include <QStatusBar>
+#include <kio/job.h>
+
+#include <klocale.h>
+
+ProgressDialog* g_pProgressDialog=0;
+
+ProgressDialog::ProgressDialog( QWidget* pParent, QStatusBar* pStatusBar )
+: QDialog(pParent), m_pStatusBar(pStatusBar)
+{
+   m_pGuiThread = QThread::currentThread();
+
+   setObjectName("ProgressDialog");
+   m_bStayHidden = false;
+   setModal(true);
+   QVBoxLayout* layout = new QVBoxLayout(this);
+
+   m_pInformation = new QLabel( " ", this );
+   layout->addWidget( m_pInformation );
+
+   m_pProgressBar = new QProgressBar();
+   m_pProgressBar->setRange(0,1000);
+   layout->addWidget( m_pProgressBar );
+
+   m_pSubInformation = new QLabel( " ", this);
+   layout->addWidget( m_pSubInformation );
+
+   m_pSubProgressBar = new QProgressBar();
+   m_pSubProgressBar->setRange(0,1000);
+   layout->addWidget( m_pSubProgressBar );
+
+   m_pSlowJobInfo = new QLabel( " ", this);
+   layout->addWidget( m_pSlowJobInfo );
+
+   QHBoxLayout* hlayout = new QHBoxLayout();
+   layout->addLayout(hlayout);
+   hlayout->addStretch(1);
+   m_pAbortButton = new QPushButton( i18n("&Cancel"), this);
+   hlayout->addWidget( m_pAbortButton );
+   connect( m_pAbortButton, SIGNAL(clicked()), this, SLOT(slotAbort()) );
+
+   if (m_pStatusBar)
+   {
+      m_pStatusBarWidget = new QWidget;
+      QHBoxLayout* pStatusBarLayout = new QHBoxLayout(m_pStatusBarWidget);
+      pStatusBarLayout->setMargin(0);
+      pStatusBarLayout->setSpacing(3);
+      m_pStatusProgressBar = new QProgressBar;
+      m_pStatusProgressBar->setRange(0, 1000);
+      m_pStatusProgressBar->setTextVisible(false);
+      m_pStatusAbortButton = new QPushButton( i18n("&Cancel") );
+      connect(m_pStatusAbortButton, SIGNAL(clicked()), this, SLOT(slotAbort()));
+      pStatusBarLayout->addWidget(m_pStatusProgressBar);
+      pStatusBarLayout->addWidget(m_pStatusAbortButton);
+      m_pStatusBar->addPermanentWidget(m_pStatusBarWidget,0);
+      m_pStatusBarWidget->setFixedHeight(m_pStatusBar->height());
+      m_pStatusBarWidget->hide();
+   }
+   else
+   {
+      m_pStatusProgressBar = 0;
+      m_pStatusAbortButton = 0;
+   }
+
+   m_progressDelayTimer = 0;
+   m_delayedHideTimer = 0;
+   m_delayedHideStatusBarWidgetTimer = 0;
+   resize(400, 100);
+   m_t1.start();
+   m_t2.start();
+   m_bWasCancelled = false;
+   m_eCancelReason = eUserAbort;
+   m_pJob = 0;
+}
+
+void ProgressDialog::setStayHidden( bool bStayHidden )
+{
+   if (m_bStayHidden != bStayHidden)
+   {
+      m_bStayHidden = bStayHidden;
+      if (m_pStatusBarWidget)
+      {
+         if (m_bStayHidden)
+         {
+            if (m_delayedHideStatusBarWidgetTimer)
+            {
+               killTimer(m_delayedHideStatusBarWidgetTimer);
+               m_delayedHideStatusBarWidgetTimer = 0;
+            }
+            m_pStatusBarWidget->show();
+         }
+         else
+            hideStatusBarWidget();  // delayed
+      }
+      if ( isVisible() && m_bStayHidden )
+         hide();  // delayed hide
+   }
+}
+
+void ProgressDialog::push()
+{
+   ProgressLevelData pld;
+   if ( !m_progressStack.empty() )
+   {
+      pld.m_dRangeMax = m_progressStack.back().m_dSubRangeMax;
+      pld.m_dRangeMin = m_progressStack.back().m_dSubRangeMin;
+   }
+   else
+   {
+      m_bWasCancelled = false;
+      m_t1.restart();
+      m_t2.restart();
+      if ( !m_bStayHidden )
+         show();
+   }
+
+   m_progressStack.push_back( pld );
+}
+
+void ProgressDialog::pop( bool bRedrawUpdate )
+{
+   if ( !m_progressStack.empty() )
+   {
+      m_progressStack.pop_back();
+      if (m_progressStack.empty())
+      {
+         hide();
+      }
+      else
+         recalc(bRedrawUpdate);
+   }
+}
+
+void ProgressDialog::setInformation(const QString& info, int current, bool bRedrawUpdate )
+{
+   if ( m_progressStack.empty() )
+      return;
+   ProgressLevelData& pld = m_progressStack.back();
+   pld.m_current = current;
+   int level = m_progressStack.size();
+   if ( level==1 )
+   {
+      m_pInformation->setText( info );
+      m_pSubInformation->setText("");
+      if (m_pStatusBar && m_bStayHidden)
+         m_pStatusBar->showMessage(info);
+   }
+   else if ( level==2 )
+   {
+      m_pSubInformation->setText( info );
+   }
+   recalc(bRedrawUpdate);
+}
+
+void ProgressDialog::setInformation(const QString& info, bool bRedrawUpdate )
+{
+   if ( m_progressStack.empty() )
+      return;
+   //ProgressLevelData& pld = m_progressStack.back();
+   int level = m_progressStack.size();
+   if ( level==1 )
+   {
+      m_pInformation->setText( info );
+      m_pSubInformation->setText( "" );
+      if (m_pStatusBar && m_bStayHidden)
+         m_pStatusBar->showMessage(info);
+   }
+   else if ( level==2 )
+   {
+      m_pSubInformation->setText( info );
+   }
+   recalc(bRedrawUpdate);
+}
+
+void ProgressDialog::setMaxNofSteps( int maxNofSteps )
+{
+   if ( m_progressStack.empty() )
+      return;
+   ProgressLevelData& pld = m_progressStack.back();
+   pld.m_maxNofSteps = maxNofSteps;
+   pld.m_current = 0;
+}
+
+void ProgressDialog::addNofSteps( int nofSteps )
+{
+   if ( m_progressStack.empty() )
+      return;
+   ProgressLevelData& pld = m_progressStack.back();
+   pld.m_maxNofSteps.fetchAndAddRelaxed( nofSteps );
+}
+
+void ProgressDialog::step( bool bRedrawUpdate )
+{
+   if ( m_progressStack.empty() )
+      return;
+   ProgressLevelData& pld = m_progressStack.back();
+   pld.m_current.fetchAndAddRelaxed(1);
+   recalc(bRedrawUpdate);
+}
+
+void ProgressDialog::setCurrent( int subCurrent, bool bRedrawUpdate )
+{
+   if ( m_progressStack.empty() )
+      return;
+   ProgressLevelData& pld = m_progressStack.back();
+   pld.m_current = subCurrent;
+   recalc( bRedrawUpdate );
+}
+
+// The progressbar goes from 0 to 1 usually.
+// By supplying a subrange transformation the subCurrent-values
+// 0 to 1 will be transformed to dMin to dMax instead.
+// Requirement: 0 < dMin < dMax < 1
+void ProgressDialog::setRangeTransformation( double dMin, double dMax )
+{
+   if ( m_progressStack.empty() )
+      return;
+   ProgressLevelData& pld = m_progressStack.back();
+   pld.m_dRangeMin = dMin;
+   pld.m_dRangeMax = dMax;
+   pld.m_current = 0;
+}
+
+void ProgressDialog::setSubRangeTransformation( double dMin, double dMax )
+{
+   if ( m_progressStack.empty() )
+      return;
+   ProgressLevelData& pld = m_progressStack.back();
+   pld.m_dSubRangeMin = dMin;
+   pld.m_dSubRangeMax = dMax;
+}
+
+void qt_enter_modal(QWidget*);
+void qt_leave_modal(QWidget*);
+
+void ProgressDialog::enterEventLoop( KJob* pJob, const QString& jobInfo )
+{
+   m_pJob = pJob;
+   m_currentJobInfo = jobInfo;
+   m_pSlowJobInfo->setText( m_currentJobInfo );
+   if ( m_progressDelayTimer )
+      killTimer( m_progressDelayTimer );
+   m_progressDelayTimer = startTimer( 3000 ); /* 3 s delay */
+
+   // immediately show the progess dialog for KIO jobs, because some KIO jobs require password authentication,
+   // but if the progress dialog pops up at a later moment, this might cover the login dialog and hide it from the user.
+   if( m_pJob && !m_bStayHidden )
+      show();
+
+   // instead of using exec() the eventloop is entered and exited often without hiding/showing the window.
+   //qt_enter_modal(this);
+   QEventLoop* pEventLoop = new QEventLoop(this);
+   m_eventLoopStack.push_back( pEventLoop );
+   pEventLoop->exec(); // this function only returns after ProgressDialog::exitEventLoop() is called.
+   delete pEventLoop;
+   m_eventLoopStack.pop_back();
+   //qt_leave_modal(this);
+}
+
+void ProgressDialog::exitEventLoop()
+{
+   if ( m_progressDelayTimer )
+      killTimer( m_progressDelayTimer );
+   m_progressDelayTimer = 0;
+   m_pJob = 0;
+   if (!m_eventLoopStack.empty())
+      m_eventLoopStack.back()->exit();
+}
+
+void ProgressDialog::recalc(bool bUpdate)
+{
+   if (!m_bWasCancelled)
+   {
+      if (QThread::currentThread() == m_pGuiThread)
+      {
+         if (m_progressDelayTimer)
+            killTimer(m_progressDelayTimer);
+         m_progressDelayTimer = 0;
+         if ( ! m_bStayHidden )
+            m_progressDelayTimer = startTimer(3000); /* 3 s delay */
+
+         int level = m_progressStack.size();
+         if ((bUpdate && level == 1) || m_t1.elapsed() > 200)
+         {
+            if (m_progressStack.empty())
+            {
+               m_pProgressBar->setValue(0);
+               m_pSubProgressBar->setValue(0);
+            }
+            else
+            {
+               QList<ProgressLevelData>::iterator i = m_progressStack.begin();
+               int value = int(1000.0 * (getAtomic(i->m_current) * (i->m_dRangeMax - i->m_dRangeMin) / getAtomic(i->m_maxNofSteps) + i->m_dRangeMin));
+               m_pProgressBar->setValue(value);
+               if (m_bStayHidden && m_pStatusProgressBar)
+                  m_pStatusProgressBar->setValue(value);
+
+               ++i;
+               if (i != m_progressStack.end())
+                  m_pSubProgressBar->setValue(int(1000.0 * (getAtomic(i->m_current) * (i->m_dRangeMax - i->m_dRangeMin) / getAtomic(i->m_maxNofSteps) + i->m_dRangeMin)));
+               else
+                  m_pSubProgressBar->setValue(int(1000.0 * m_progressStack.front().m_dSubRangeMin));
+            }
+
+            if (!m_bStayHidden && !isVisible())
+               show();
+            qApp->processEvents();
+            m_t1.restart();
+         }
+      }
+      else
+      {
+         QMetaObject::invokeMethod(this, "recalc", Qt::QueuedConnection, Q_ARG(bool, bUpdate));
+      }
+   }
+}
+
+
+#include <QTimer>
+void ProgressDialog::show()
+{
+   if ( m_progressDelayTimer )
+      killTimer( m_progressDelayTimer );
+   if ( m_delayedHideTimer )
+      killTimer( m_delayedHideTimer );
+   m_progressDelayTimer = 0;
+   m_delayedHideTimer = 0;
+   if ( !isVisible() && (parentWidget()==0 || parentWidget()->isVisible()) )
+   {
+      QDialog::show();
+   }
+}
+
+void ProgressDialog::hide()
+{
+   if ( m_progressDelayTimer )
+      killTimer( m_progressDelayTimer );
+   m_progressDelayTimer = 0;
+   // Calling QDialog::hide() directly doesn't always work. (?)
+   if (m_delayedHideTimer)
+      killTimer(m_delayedHideTimer);
+   m_delayedHideTimer = startTimer(100);
+}
+
+void ProgressDialog::delayedHide()
+{
+   if (m_pJob!=0)
+   {
+      m_pJob->kill( KJob::Quietly );
+      m_pJob = 0;
+   }
+   QDialog::hide();
+   m_pInformation->setText( "" );
+
+   //m_progressStack.clear();
+
+   m_pProgressBar->setValue( 0 );
+   m_pSubProgressBar->setValue( 0 );
+   m_pSubInformation->setText("");
+   m_pSlowJobInfo->setText("");
+}
+
+void ProgressDialog::hideStatusBarWidget()
+{
+   if (m_delayedHideStatusBarWidgetTimer)
+      killTimer(m_delayedHideStatusBarWidgetTimer);
+   m_delayedHideStatusBarWidgetTimer = startTimer(100);
+}
+
+void ProgressDialog::delayedHideStatusBarWidget()
+{
+   if (m_progressDelayTimer)
+      killTimer(m_progressDelayTimer);
+   m_progressDelayTimer = 0;
+   if (m_pStatusBarWidget)
+   {
+      m_pStatusBarWidget->hide();
+      m_pStatusProgressBar->setValue(0);
+      m_pStatusBar->clearMessage();
+   }
+}
+
+
+void ProgressDialog::reject()
+{
+   cancel(eUserAbort);
+   QDialog::reject();
+}
+
+void ProgressDialog::slotAbort()
+{
+   reject();
+}
+
+bool ProgressDialog::wasCancelled()
+{
+   if ( QThread::currentThread() == m_pGuiThread )
+   {
+      if( m_t2.elapsed()>100 )
+      {
+         qApp->processEvents();
+         m_t2.restart();
+      }
+   }
+   return m_bWasCancelled;
+}
+
+void ProgressDialog::clearCancelState()
+{
+   m_bWasCancelled = false;
+}
+
+void ProgressDialog::cancel(e_CancelReason eCancelReason)
+{
+   if ( !m_bWasCancelled)
+   {
+      m_bWasCancelled = true;
+      m_eCancelReason = eCancelReason;
+   }
+}
+
+ProgressDialog::e_CancelReason ProgressDialog::cancelReason()
+{
+   return m_eCancelReason;
+}
+
+void ProgressDialog::timerEvent(QTimerEvent* te )
+{
+   if ( te->timerId() == m_progressDelayTimer )
+   {
+      if( !isVisible() && !m_bStayHidden )
+      {
+         show();
+      }
+      m_pSlowJobInfo->setText( m_currentJobInfo );
+   }
+   else if (te->timerId() == m_delayedHideTimer)
+   {
+      killTimer(m_delayedHideTimer);
+      m_delayedHideTimer = 0;
+      delayedHide();
+   }
+   else if (te->timerId() == m_delayedHideStatusBarWidgetTimer)
+   {
+      killTimer(m_delayedHideStatusBarWidgetTimer);
+      m_delayedHideStatusBarWidgetTimer = 0;
+      delayedHideStatusBarWidget();
+   }
+}
+
+
+ProgressProxy::ProgressProxy()
+{
+   g_pProgressDialog->push();
+}
+
+ProgressProxy::~ProgressProxy()
+{
+   g_pProgressDialog->pop(false);
+}
+
+void ProgressProxy::enterEventLoop( KJob* pJob, const QString& jobInfo )
+{
+  g_pProgressDialog->enterEventLoop(pJob, jobInfo);
+}
+
+void ProgressProxy::exitEventLoop()
+{
+  g_pProgressDialog->exitEventLoop();
+}
+
+QDialog *ProgressProxy::getDialog()
+{
+  return g_pProgressDialog;
+}
+
+void ProgressProxy::setInformation( const QString& info, bool bRedrawUpdate )
+{
+   g_pProgressDialog->setInformation( info, bRedrawUpdate );
+}
+
+void ProgressProxy::setInformation( const QString& info, int current, bool bRedrawUpdate )
+{
+   g_pProgressDialog->setInformation( info, current, bRedrawUpdate );
+}
+
+void ProgressProxy::setCurrent( int current, bool bRedrawUpdate  )
+{
+   g_pProgressDialog->setCurrent( current, bRedrawUpdate );
+}
+
+void ProgressProxy::step( bool bRedrawUpdate )
+{
+   g_pProgressDialog->step( bRedrawUpdate );
+}
+
+void ProgressProxy::setMaxNofSteps( int maxNofSteps )
+{
+   g_pProgressDialog->setMaxNofSteps( maxNofSteps );
+}
+
+void ProgressProxy::addNofSteps( int nofSteps )
+{
+   g_pProgressDialog->addNofSteps( nofSteps );
+}
+
+bool ProgressProxy::wasCancelled()
+{
+   return g_pProgressDialog->wasCancelled();
+}
+
+void ProgressProxy::setRangeTransformation( double dMin, double dMax )
+{
+   g_pProgressDialog->setRangeTransformation( dMin, dMax );
+}
+
+void ProgressProxy::setSubRangeTransformation( double dMin, double dMax )
+{
+   g_pProgressDialog->setSubRangeTransformation( dMin, dMax );
+}
+
+void ProgressProxy::recalc()
+{
+   g_pProgressDialog->recalc(true);
+}
+
diff --git a/src-QT4/progress.h b/src-QT4/progress.h
new file mode 100644 (file)
index 0000000..2e6762f
--- /dev/null
@@ -0,0 +1,139 @@
+/***************************************************************************
+ *   Copyright (C) 2003-2007 by Joachim Eibl                               *
+ *   joachim.eibl at gmx.de                                                *
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ ***************************************************************************/
+
+#ifndef PROGRESS_H
+#define PROGRESS_H
+
+#include <QDialog>
+#include <QTime>
+#include <QList>
+
+class KJob;
+class QEventLoop;
+class QLabel;
+class QProgressBar;
+class QStatusBar;
+
+class ProgressDialog : public QDialog
+{
+   Q_OBJECT
+public:
+   ProgressDialog( QWidget* pParent,QStatusBar* );
+
+   void setStayHidden( bool bStayHidden );
+   void setInformation( const QString& info, bool bRedrawUpdate=true );
+   void setInformation( const QString& info, int current, bool bRedrawUpdate=true );
+   void setCurrent( int current, bool bRedrawUpdate=true  );
+   void step( bool bRedrawUpdate=true );
+   void setMaxNofSteps( int dMaxNofSteps );
+   void addNofSteps( int nofSteps );
+   void push();
+   void pop(bool bRedrawUpdate=true);
+
+   // The progressbar goes from 0 to 1 usually.
+   // By supplying a subrange transformation the subCurrent-values
+   // 0 to 1 will be transformed to dMin to dMax instead.
+   // Requirement: 0 < dMin < dMax < 1
+   void setRangeTransformation( double dMin, double dMax );
+   void setSubRangeTransformation( double dMin, double dMax );
+
+   void exitEventLoop();
+   void enterEventLoop( KJob* pJob, const QString& jobInfo );
+
+   bool wasCancelled();
+   enum e_CancelReason{eUserAbort,eResize};
+   void cancel(e_CancelReason);
+   e_CancelReason cancelReason();
+   void clearCancelState();
+   void show();
+   void hide();
+   void hideStatusBarWidget();
+   void delayedHideStatusBarWidget();
+   
+   virtual void timerEvent(QTimerEvent*);
+public slots:
+   void recalc(bool bRedrawUpdate);
+private:
+
+   struct ProgressLevelData
+   {
+      ProgressLevelData()
+      {
+         m_current=0; m_maxNofSteps=1; m_dRangeMin=0; m_dRangeMax=1; 
+         m_dSubRangeMin = 0; m_dSubRangeMax = 1;
+      }
+      QAtomicInt m_current;
+      QAtomicInt m_maxNofSteps;     // when step() is used.
+      double m_dRangeMax;
+      double m_dRangeMin;
+      double m_dSubRangeMax;
+      double m_dSubRangeMin;
+   };
+   QList<ProgressLevelData> m_progressStack;
+   
+   int m_progressDelayTimer;
+   int m_delayedHideTimer;
+   int m_delayedHideStatusBarWidgetTimer;
+   QList<QEventLoop*> m_eventLoopStack;
+
+   QProgressBar* m_pProgressBar;
+   QProgressBar* m_pSubProgressBar;
+   QLabel* m_pInformation;
+   QLabel* m_pSubInformation;
+   QLabel* m_pSlowJobInfo;
+   QPushButton* m_pAbortButton;
+   QTime m_t1;
+   QTime m_t2;
+   bool m_bWasCancelled;
+   e_CancelReason m_eCancelReason;
+   KJob* m_pJob;
+   QString m_currentJobInfo;  // Needed if the job doesn't stop after a reasonable time.
+   bool m_bStayHidden;
+   QThread* m_pGuiThread;
+   QStatusBar* m_pStatusBar;  // status bar of main window (if exists)
+   QWidget* m_pStatusBarWidget;
+   QProgressBar* m_pStatusProgressBar;
+   QPushButton* m_pStatusAbortButton;
+protected:
+   virtual void reject();
+private slots:
+   void delayedHide();
+   void slotAbort();
+};
+
+// When using the ProgressProxy you need not take care of the push and pop, except when explicit.
+class ProgressProxy: public QObject
+{
+   Q_OBJECT
+public:
+   ProgressProxy();
+   ~ProgressProxy();
+   
+   void setInformation( const QString& info, bool bRedrawUpdate=true );
+   void setInformation( const QString& info, int current, bool bRedrawUpdate=true );
+   void setCurrent( int current, bool bRedrawUpdate=true  );
+   void step( bool bRedrawUpdate=true );
+   void setMaxNofSteps( int maxNofSteps );
+   void addNofSteps( int nofSteps );
+   bool wasCancelled();
+   void setRangeTransformation( double dMin, double dMax );
+   void setSubRangeTransformation( double dMin, double dMax );
+
+   static void exitEventLoop();
+   static void enterEventLoop( KJob* pJob, const QString& jobInfo );
+   static QDialog *getDialog();
+   static void recalc();
+private:
+};
+
+extern ProgressDialog* g_pProgressDialog;
+
+#endif
+
diff --git a/src-QT4/smalldialogs.cpp b/src-QT4/smalldialogs.cpp
new file mode 100644 (file)
index 0000000..a3552f6
--- /dev/null
@@ -0,0 +1,601 @@
+/***************************************************************************
+ *   Copyright (C) 2005-2007 by Joachim Eibl                               *
+ *   joachim.eibl at gmx.de                                                *
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ *   This program is distributed in the hope that it will be useful,       *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
+ *   GNU General Public License for more details.                          *
+ *                                                                         *
+ *   You should have received a copy of the GNU General Public License     *
+ *   along with this program; if not, write to the                         *
+ *   Free Software Foundation, Inc.,                                       *
+ *   51 Franklin Steet, Fifth Floor, Boston, MA 02110-1301, USA.           *
+ ***************************************************************************/
+
+#include "smalldialogs.h"
+#include "options.h"
+#include "diff.h"
+
+#include <QComboBox>
+#include <QCheckBox>
+#include <QLineEdit>
+#include <QLabel>
+#include <QLayout>
+#include <QToolTip>
+#include <QUrl>
+#include <QDir>
+#include <QDropEvent>
+#include <QMenu>
+#include <QPushButton>
+#include <QMimeData>
+
+#include <kfiledialog.h>
+#include <klocale.h>
+
+// OpenDialog **************************************************************
+
+OpenDialog::OpenDialog(
+   QWidget* pParent, const QString& n1, const QString& n2, const QString& n3,
+   bool bMerge, const QString& outputName, const char* slotConfigure, Options* pOptions )
+: QDialog( pParent )
+{
+   setObjectName("OpenDialog");
+   setModal(true);
+   m_pOptions = pOptions;
+
+   QVBoxLayout* v = new QVBoxLayout( this );
+   v->setMargin(5);
+   QGridLayout* h = new QGridLayout();
+   v->addLayout(h);
+   h->setSpacing( 5 );
+   h->setColumnStretch( 1, 10 );
+
+   QLabel* label  = new QLabel( i18n("A (Base):"), this );
+
+   m_pLineA = new QComboBox();
+   m_pLineA->setEditable(true);
+   m_pLineA->insertItems( 0, m_pOptions->m_recentAFiles );
+   m_pLineA->setEditText( KUrl(n1).prettyUrl() );
+   m_pLineA->setMinimumWidth( 200 );
+   QPushButton * button = new QPushButton( i18n("File..."), this );
+   connect( button, SIGNAL(clicked()), this, SLOT( selectFileA() ) );
+   QPushButton * button2 = new QPushButton( i18n("Dir..."), this );
+   connect( button2, SIGNAL(clicked()), this, SLOT( selectDirA() ) );
+   connect( m_pLineA, SIGNAL(editTextChanged(const QString&)), this, SLOT(inputFilenameChanged() ) );
+
+   h->addWidget( label,    0, 0 );
+   h->addWidget( m_pLineA,  0, 1 );
+   h->addWidget( button,   0, 2 );
+   h->addWidget( button2,  0, 3 );
+
+   label    = new QLabel( "B:", this );
+   m_pLineB  = new QComboBox();
+   m_pLineB->setEditable(true);
+   m_pLineB->insertItems( 0, m_pOptions->m_recentBFiles );
+   m_pLineB->setEditText( KUrl(n2).prettyUrl() );
+   m_pLineB->setMinimumWidth( 200 );
+   button   = new QPushButton( i18n("File..."), this );
+   connect( button, SIGNAL(clicked()), this, SLOT( selectFileB() ) );
+   button2   = new QPushButton( i18n("Dir..."), this );
+   connect( button2, SIGNAL(clicked()), this, SLOT( selectDirB() ) );
+   connect( m_pLineB, SIGNAL(editTextChanged(const QString&)), this, SLOT(inputFilenameChanged() ) );
+
+   h->addWidget( label,     1, 0 );
+   h->addWidget( m_pLineB,  1, 1 );
+   h->addWidget( button,    1, 2 );
+   h->addWidget( button2,   1, 3 );
+
+   label  = new QLabel( i18n("C (Optional):"), this );
+   m_pLineC= new QComboBox();
+   m_pLineC->setEditable(true);
+   m_pLineC->insertItems( 0, m_pOptions->m_recentCFiles );
+   m_pLineC->setEditText( KUrl(n3).prettyUrl() );
+   m_pLineC->setMinimumWidth( 200 );
+   button = new QPushButton( i18n("File..."), this );
+   connect( button, SIGNAL(clicked()), this, SLOT( selectFileC() ) );
+   button2   = new QPushButton( i18n("Dir..."), this );
+   connect( button2, SIGNAL(clicked()), this, SLOT( selectDirC() ) );
+   connect( m_pLineC, SIGNAL(editTextChanged(const QString&)), this, SLOT(inputFilenameChanged() ) );
+
+   h->addWidget( label,     2, 0 );
+   h->addWidget( m_pLineC,   2, 1 );
+   h->addWidget( button,    2, 2 );
+   h->addWidget( button2,   2, 3 );
+
+   m_pMerge = new QCheckBox( i18n("Merge"), this );
+   h->addWidget( m_pMerge, 3, 0 );
+
+   QHBoxLayout* hl = new QHBoxLayout();
+   h->addLayout( hl, 3, 1 );
+   hl->addStretch(2);
+   button = new QPushButton(i18n("Swap/Copy Names ..."), this);
+   //button->setToggleButton(false);
+   hl->addWidget( button );
+
+   QMenu* m = new QMenu(this);
+   m->addAction( i18n("Swap %1<->%2", QString("A"),QString("B") ));
+   m->addAction( i18n("Swap %1<->%2",QString("B"),QString("C") ));
+   m->addAction( i18n("Swap %1<->%2",QString("C"),QString("A") ));
+   m->addAction( i18n("Copy %1->Output",QString("A")  ));
+   m->addAction( i18n("Copy %1->Output",QString("B")  ));
+   m->addAction( i18n("Copy %1->Output",QString("C")  ));
+   m->addAction( i18n("Swap %1<->Output",QString("A") ));
+   m->addAction( i18n("Swap %1<->Output",QString("B") ));
+   m->addAction( i18n("Swap %1<->Output",QString("C") ));
+   connect( m, SIGNAL(triggered(QAction*)), this, SLOT(slotSwapCopyNames(QAction*)));
+   button->setMenu(m);
+
+
+   hl->addStretch(2);
+
+   label  = new QLabel( i18n("Output (optional):"), this );
+   m_pLineOut = new QComboBox();
+   m_pLineOut->setEditable(true);
+   m_pLineOut->insertItems( 0, m_pOptions->m_recentOutputFiles );
+   m_pLineOut->setEditText( KUrl(outputName).prettyUrl() );
+   m_pLineOut->setMinimumWidth( 200 );
+   button = new QPushButton( i18n("File..."), this );
+   connect( button, SIGNAL(clicked()), this, SLOT( selectOutputName() ) );
+   button2   = new QPushButton( i18n("Dir..."), this );
+   connect( button2, SIGNAL(clicked()), this, SLOT( selectOutputDir() ) );
+   connect( m_pMerge, SIGNAL(stateChanged(int)), this, SLOT(internalSlot(int)) );
+   connect( this, SIGNAL(internalSignal(bool)), m_pLineOut, SLOT(setEnabled(bool)) );
+   connect( this, SIGNAL(internalSignal(bool)), button, SLOT(setEnabled(bool)) );
+   connect( this, SIGNAL(internalSignal(bool)), button2, SLOT(setEnabled(bool)) );
+
+   m_pMerge->setChecked( !bMerge );
+   m_pMerge->setChecked( bMerge );
+//   m_pLineOutput->setEnabled( bMerge );
+
+//   button->setEnabled( bMerge );
+
+   h->addWidget( label,          4, 0 );
+   h->addWidget( m_pLineOut,      4, 1 );
+   h->addWidget( button,         4, 2 );
+   h->addWidget( button2,        4, 3 );
+
+   h->addItem(new QSpacerItem(200, 0), 0, 1);
+
+   QHBoxLayout* l = new QHBoxLayout();
+   v->addLayout( l );
+   l->setSpacing(5);
+
+   button = new QPushButton( i18n("Configure..."), this );
+   connect( button, SIGNAL(clicked()), pParent, slotConfigure );
+   l->addWidget( button, 1 );
+
+   l->addStretch(1);
+
+   button = new QPushButton( i18n("&OK"), this );
+   button->setDefault( true );
+   connect( button, SIGNAL(clicked()), this, SLOT( accept() ) );
+   l->addWidget( button, 1 );
+
+   button = new QPushButton( i18n("&Cancel"), this );
+   connect( button, SIGNAL(clicked()), this, SLOT( reject() ) );
+   l->addWidget( button,1 );
+
+   QSize sh = sizeHint();
+   setFixedHeight( sh.height() );
+   m_bInputFileNameChanged = false;
+
+#ifdef KREPLACEMENTS_H
+   m_pLineA->lineEdit()->installEventFilter( this );
+   m_pLineB->lineEdit()->installEventFilter( this );
+   m_pLineC->lineEdit()->installEventFilter( this );
+   m_pLineOut->lineEdit()->installEventFilter( this );
+#endif
+}
+
+// Eventfilter: Only needed under Windows.
+// Without this, files dropped in the line edit have URL-encoding.
+// This eventfilter decodes the filenames as needed by KDiff3.
+bool OpenDialog::eventFilter(QObject* o, QEvent* e)
+{
+   if ( e->type()==QEvent::DragEnter )
+   {
+      QDragEnterEvent* d = static_cast<QDragEnterEvent*>(e);
+      d->setAccepted( d->mimeData()->hasUrls() );
+      return true;
+   }
+   if (e->type()==QEvent::Drop)
+   {
+      QDropEvent* d = static_cast<QDropEvent*>(e);
+
+      if ( !d->mimeData()->hasUrls() )
+         return false;
+
+      QList<QUrl> lst = d->mimeData()->urls();
+
+      if ( lst.count() > 0 )
+      {
+         static_cast<QLineEdit*>(o)->setText( QDir::toNativeSeparators( lst[0].toLocalFile() ) );
+         static_cast<QLineEdit*>(o)->setFocus();
+      }
+       
+      return true;
+   }
+   return false;
+}
+
+
+void OpenDialog::selectURL( QComboBox* pLine, bool bDir, int i, bool bSave )
+{
+   QString current = pLine->currentText();
+   if (current.isEmpty() && i>3 ){  current = m_pLineC->currentText(); }
+   if (current.isEmpty()        ){  current = m_pLineB->currentText(); }
+   if (current.isEmpty()        ){  current = m_pLineA->currentText(); }
+   KUrl newURL = bDir ? KFileDialog::getExistingDirectoryUrl( current, this)
+                      : bSave ? KFileDialog::getSaveUrl( current, 0, this)
+                              : KFileDialog::getOpenUrl( current, 0, this);
+   if ( !newURL.isEmpty() )
+   {
+      pLine->setEditText( newURL.url() );
+   }
+   // newURL won't be modified if nothing was selected.
+}
+
+void OpenDialog::selectFileA()     {  selectURL( m_pLineA,    false, 1, false );  }
+void OpenDialog::selectFileB()     {  selectURL( m_pLineB,    false, 2, false );  }
+void OpenDialog::selectFileC()     {  selectURL( m_pLineC,    false, 3, false );  }
+void OpenDialog::selectOutputName(){  selectURL( m_pLineOut,  false, 4, true );  }
+void OpenDialog::selectDirA()      {  selectURL( m_pLineA,    true,  1, false );  }
+void OpenDialog::selectDirB()      {  selectURL( m_pLineB,    true,  2, false );  }
+void OpenDialog::selectDirC()      {  selectURL( m_pLineC,    true,  3, false );  }
+void OpenDialog::selectOutputDir() {  selectURL( m_pLineOut,  true,  4, true );  }
+
+void OpenDialog::internalSlot(int i)
+{
+   emit internalSignal(i!=0);
+}
+
+// Clear the output-filename when any input-filename changed, 
+// because users forgot to change the output and accidently overwrote it with
+// wrong data during a merge.
+void OpenDialog::inputFilenameChanged()
+{
+   if(!m_bInputFileNameChanged)
+   {
+      m_bInputFileNameChanged=true;
+      m_pLineOut->clearEditText();
+   }
+}
+
+static void fixCurrentText( QComboBox* pCB )
+{
+   QString s = pCB->currentText();
+
+   int pos = s.indexOf( '\n' );
+   if ( pos>=0 )
+      s=s.left(pos);
+   pos = s.indexOf( '\r' );
+   if ( pos>=0 )
+      s=s.left(pos);
+
+   pCB->setEditText( s );
+}
+
+void OpenDialog::accept()
+{
+   int maxNofRecentFiles = 10;
+   fixCurrentText( m_pLineA );
+
+   QString s = m_pLineA->currentText();
+   s = QUrl::fromLocalFile(s).toLocalFile();
+   QStringList* sl = &m_pOptions->m_recentAFiles;
+   // If an item exist, remove it from the list and reinsert it at the beginning.
+   sl->removeAll(s);
+   if ( !s.isEmpty() ) sl->prepend( s );
+   if (sl->count()>maxNofRecentFiles) sl->erase( sl->begin()+maxNofRecentFiles, sl->end() );
+
+   fixCurrentText( m_pLineB );
+   s = m_pLineB->currentText();
+   s = QUrl::fromLocalFile(s).toLocalFile();
+   sl = &m_pOptions->m_recentBFiles;
+   sl->removeAll(s);
+   if ( !s.isEmpty() ) sl->prepend( s );
+   if (sl->count()>maxNofRecentFiles) sl->erase( sl->begin()+maxNofRecentFiles, sl->end() );
+
+   fixCurrentText( m_pLineC );
+   s = m_pLineC->currentText();
+   s = QUrl::fromLocalFile(s).toLocalFile();
+   sl = &m_pOptions->m_recentCFiles;
+   sl->removeAll(s);
+   if ( !s.isEmpty() ) sl->prepend( s );
+   if (sl->count()>maxNofRecentFiles) sl->erase( sl->begin()+maxNofRecentFiles, sl->end() );
+
+   fixCurrentText( m_pLineOut );
+   s = m_pLineOut->currentText();
+   s = QUrl::fromLocalFile(s).toLocalFile();
+   sl = &m_pOptions->m_recentOutputFiles;
+   sl->removeAll(s);
+   if ( !s.isEmpty() ) sl->prepend( s );
+   if (sl->count()>maxNofRecentFiles) sl->erase( sl->begin()+maxNofRecentFiles, sl->end() );
+
+   QDialog::accept();
+}
+
+void OpenDialog::slotSwapCopyNames( QAction* pAction ) // id selected in the popup menu
+{
+   int id = pAction->parentWidget()->actions().indexOf(pAction);
+   QComboBox* cb1=0;
+   QComboBox* cb2=0;
+   switch(id)
+   {
+   case 0:  cb1=m_pLineA; cb2=m_pLineB; break;
+   case 1:  cb1=m_pLineB; cb2=m_pLineC; break;
+   case 2:  cb1=m_pLineC; cb2=m_pLineA; break;
+   case 3:  cb1=m_pLineA; cb2=m_pLineOut; break;
+   case 4:  cb1=m_pLineB; cb2=m_pLineOut; break;
+   case 5:  cb1=m_pLineC; cb2=m_pLineOut; break;
+   case 6:  cb1=m_pLineA; cb2=m_pLineOut; break;
+   case 7:  cb1=m_pLineB; cb2=m_pLineOut; break;
+   case 8:  cb1=m_pLineC; cb2=m_pLineOut; break;
+   }
+   if ( cb1 && cb2 )
+   {
+      QString t1 = cb1->currentText();
+      QString t2 = cb2->currentText();
+      cb2->setEditText(t1);
+      if ( id<=2 || id>=6 )
+      {
+         cb1->setEditText( t2 );
+      }
+   }
+}
+
+// FindDialog *********************************************
+
+FindDialog::FindDialog(QWidget* pParent)
+: QDialog( pParent )
+{
+   QGridLayout* layout = new QGridLayout( this );
+   layout->setMargin(5);
+   layout->setSpacing(5);
+
+   int line=0;
+   layout->addWidget( new QLabel(i18n("Search text:"),this), line, 0, 1, 2 );
+   ++line;
+
+   m_pSearchString = new QLineEdit( this );
+   layout->addWidget( m_pSearchString, line, 0, 1, 2 );
+   ++line;
+
+   m_pCaseSensitive = new QCheckBox(i18n("Case sensitive"),this);
+   layout->addWidget( m_pCaseSensitive, line, 1 );
+
+   m_pSearchInA = new QCheckBox(i18n("Search A"),this);
+   layout->addWidget( m_pSearchInA, line, 0 );
+   m_pSearchInA->setChecked( true );
+   ++line;
+
+   m_pSearchInB = new QCheckBox(i18n("Search B"),this);
+   layout->addWidget( m_pSearchInB, line, 0 );
+   m_pSearchInB->setChecked( true );
+   ++line;
+
+   m_pSearchInC = new QCheckBox(i18n("Search C"),this);
+   layout->addWidget( m_pSearchInC, line, 0 );
+   m_pSearchInC->setChecked( true );
+   ++line;
+
+   m_pSearchInOutput = new QCheckBox(i18n("Search output"),this);
+   layout->addWidget( m_pSearchInOutput, line, 0 );
+   m_pSearchInOutput->setChecked( true );
+   ++line;
+
+   QPushButton* pButton = new QPushButton( i18n("&Search"), this );
+   layout->addWidget( pButton, line, 0 );
+   connect( pButton, SIGNAL(clicked()), this, SLOT(accept()));
+
+   pButton = new QPushButton( i18n("&Cancel"), this );
+   layout->addWidget( pButton, line, 1 );
+   connect( pButton, SIGNAL(clicked()), this, SLOT(reject()));
+
+   hide();
+}
+
+void FindDialog::setVisible( bool bVisible )
+{
+   QDialog::setVisible( bVisible );
+   m_pSearchString->selectAll();
+   m_pSearchString->setFocus();
+}
+
+RegExpTester::RegExpTester( QWidget* pParent, const QString& autoMergeRegExpToolTip,
+   const QString& historyStartRegExpToolTip, const QString& historyEntryStartRegExpToolTip, const QString& historySortKeyOrderToolTip )
+: QDialog( pParent)
+{
+   int line=0;
+   setWindowTitle(i18n("Regular Expression Tester"));
+   QGridLayout* pGrid = new QGridLayout( this );
+   pGrid->setSpacing(5);
+   pGrid->setMargin(5);
+
+   QLabel* l = new QLabel(i18n("Auto merge regular expression:"), this);
+   pGrid->addWidget(l,line,0);
+   l->setToolTip( autoMergeRegExpToolTip );
+   m_pAutoMergeRegExpEdit = new QLineEdit(this);
+   pGrid->addWidget(m_pAutoMergeRegExpEdit,line,1);
+   connect( m_pAutoMergeRegExpEdit, SIGNAL(textChanged(const QString&)), this, SLOT(slotRecalc()));
+   ++line;
+
+   l = new QLabel(i18n("Example auto merge line:"), this);
+   pGrid->addWidget(l,line,0);
+   l->setToolTip( i18n("To test auto merge, copy a line as used in your files.") );
+   m_pAutoMergeExampleEdit = new QLineEdit(this);
+   pGrid->addWidget(m_pAutoMergeExampleEdit,line,1);
+   connect( m_pAutoMergeExampleEdit, SIGNAL(textChanged(const QString&)), this, SLOT(slotRecalc()));
+   ++line;
+
+   l = new QLabel(i18n("Match result:"), this);
+   pGrid->addWidget(l,line,0);
+   m_pAutoMergeMatchResult = new QLineEdit(this);
+   m_pAutoMergeMatchResult->setReadOnly(true);
+   pGrid->addWidget(m_pAutoMergeMatchResult,line,1);
+   ++line;
+
+   pGrid->addItem( new QSpacerItem(100,20), line, 0 );
+   pGrid->setRowStretch( line, 5);
+   ++line;
+
+   l = new QLabel(i18n("History start regular expression:"), this);
+   pGrid->addWidget(l,line,0);
+   l->setToolTip( historyStartRegExpToolTip );
+   m_pHistoryStartRegExpEdit = new QLineEdit(this);
+   pGrid->addWidget(m_pHistoryStartRegExpEdit,line,1);
+   connect( m_pHistoryStartRegExpEdit, SIGNAL(textChanged(const QString&)), this, SLOT(slotRecalc()));
+   ++line;
+
+   l = new QLabel(i18n("Example history start line (with leading comment):"), this);
+   pGrid->addWidget(l,line,0);
+   l->setToolTip( i18n("Copy a history start line as used in your files,\n"
+                          "including the leading comment.") );
+   m_pHistoryStartExampleEdit = new QLineEdit(this);
+   pGrid->addWidget(m_pHistoryStartExampleEdit,line,1);
+   connect( m_pHistoryStartExampleEdit, SIGNAL(textChanged(const QString&)), this, SLOT(slotRecalc()));
+   ++line;
+
+   l = new QLabel(i18n("Match result:"), this);
+   pGrid->addWidget(l,line,0);
+   m_pHistoryStartMatchResult = new QLineEdit(this);
+   m_pHistoryStartMatchResult->setReadOnly(true);
+   pGrid->addWidget(m_pHistoryStartMatchResult,line,1);
+   ++line;
+
+   pGrid->addItem( new QSpacerItem(100,20), line, 0 );
+   pGrid->setRowStretch( line, 5);
+   ++line;
+
+   l = new QLabel(i18n("History entry start regular expression:"), this);
+   pGrid->addWidget(l,line,0);
+   l->setToolTip( historyEntryStartRegExpToolTip );
+   m_pHistoryEntryStartRegExpEdit = new QLineEdit(this);
+   pGrid->addWidget(m_pHistoryEntryStartRegExpEdit,line,1);
+   connect( m_pHistoryEntryStartRegExpEdit, SIGNAL(textChanged(const QString&)), this, SLOT(slotRecalc()));
+   ++line;
+
+   l = new QLabel(i18n("History sort key order:"), this);
+   pGrid->addWidget(l,line,0);
+   l->setToolTip( historySortKeyOrderToolTip );
+   m_pHistorySortKeyOrderEdit = new QLineEdit(this);
+   pGrid->addWidget(m_pHistorySortKeyOrderEdit,line,1);
+   connect( m_pHistorySortKeyOrderEdit, SIGNAL(textChanged(const QString&)), this, SLOT(slotRecalc()));
+   ++line;
+
+   l = new QLabel(i18n("Example history entry start line (without leading comment):"), this);
+   pGrid->addWidget(l,line,0);
+   l->setToolTip( i18n("Copy a history entry start line as used in your files,\n"
+                          "but omit the leading comment.") );
+   m_pHistoryEntryStartExampleEdit = new QLineEdit(this);
+   pGrid->addWidget(m_pHistoryEntryStartExampleEdit,line,1);
+   connect( m_pHistoryEntryStartExampleEdit, SIGNAL(textChanged(const QString&)), this, SLOT(slotRecalc()));
+   ++line;
+
+   l = new QLabel(i18n("Match result:"), this);
+   pGrid->addWidget(l,line,0);
+   m_pHistoryEntryStartMatchResult = new QLineEdit(this);
+   m_pHistoryEntryStartMatchResult->setReadOnly(true);
+   pGrid->addWidget(m_pHistoryEntryStartMatchResult,line,1);
+   ++line;
+
+   l = new QLabel(i18n("Sort key result:"), this);
+   pGrid->addWidget(l,line,0);
+   m_pHistorySortKeyResult = new QLineEdit(this);
+   m_pHistorySortKeyResult->setReadOnly(true);
+   pGrid->addWidget(m_pHistorySortKeyResult,line,1);
+   ++line;
+
+   QPushButton* pButton = new QPushButton(i18n("OK"), this);
+   pGrid->addWidget(pButton,line,0);
+   connect( pButton, SIGNAL(clicked()), this, SLOT(accept()));
+
+   pButton = new QPushButton(i18n("Cancel"), this);
+   pGrid->addWidget(pButton,line,1);
+   connect( pButton, SIGNAL(clicked()), this, SLOT(reject()));
+
+   resize( 800, sizeHint().height() );
+}
+
+void RegExpTester::init( const QString& autoMergeRegExp, const QString& historyStartRegExp, const QString& historyEntryStartRegExp, const QString historySortKeyOrder )
+{
+   m_pAutoMergeRegExpEdit->setText( autoMergeRegExp );
+   m_pHistoryStartRegExpEdit->setText( historyStartRegExp );
+   m_pHistoryEntryStartRegExpEdit->setText( historyEntryStartRegExp );
+   m_pHistorySortKeyOrderEdit->setText( historySortKeyOrder );
+}
+
+QString RegExpTester::autoMergeRegExp()
+{
+   return m_pAutoMergeRegExpEdit->text();
+}
+
+QString RegExpTester::historyStartRegExp()
+{
+   return m_pHistoryStartRegExpEdit->text();
+}
+
+QString RegExpTester::historyEntryStartRegExp()
+{
+   return m_pHistoryEntryStartRegExpEdit->text();
+}
+
+QString RegExpTester::historySortKeyOrder()
+{
+   return m_pHistorySortKeyOrderEdit->text();
+}
+
+void RegExpTester::slotRecalc()
+{
+   QRegExp autoMergeRegExp( m_pAutoMergeRegExpEdit->text() );
+   if ( autoMergeRegExp.exactMatch( m_pAutoMergeExampleEdit->text() ) )
+   {
+      m_pAutoMergeMatchResult->setText( i18n("Match success.") );
+   }
+   else
+   {
+      m_pAutoMergeMatchResult->setText( i18n("Match failed.") );
+   }
+
+   QRegExp historyStartRegExp( m_pHistoryStartRegExpEdit->text() );
+   if ( historyStartRegExp.exactMatch( m_pHistoryStartExampleEdit->text() ) )
+   {
+      m_pHistoryStartMatchResult->setText( i18n("Match success.") );
+   }
+   else
+   {
+      m_pHistoryStartMatchResult->setText( i18n("Match failed.") );
+   }
+
+
+   QStringList parenthesesGroups;
+   bool bSuccess = findParenthesesGroups( m_pHistoryEntryStartRegExpEdit->text(), parenthesesGroups );
+   if ( ! bSuccess )
+   {
+      m_pHistoryEntryStartMatchResult->setText( i18n("Opening and closing parentheses do not match in regular expression.") );
+      m_pHistorySortKeyResult->setText( "" );
+      return;
+   }
+   QRegExp historyEntryStartRegExp( m_pHistoryEntryStartRegExpEdit->text() );
+   QString s = m_pHistoryEntryStartExampleEdit->text();
+
+   if ( historyEntryStartRegExp.exactMatch( s ) )
+   {
+      m_pHistoryEntryStartMatchResult->setText( i18n("Match success.") );
+      QString key = calcHistorySortKey( m_pHistorySortKeyOrderEdit->text(),historyEntryStartRegExp,parenthesesGroups);
+      m_pHistorySortKeyResult->setText(key);
+   }
+   else
+   {
+      m_pHistoryEntryStartMatchResult->setText( i18n("Match failed.") );
+      m_pHistorySortKeyResult->setText( "" );
+   }
+}
+
+//#include "smalldialogs.moc"
diff --git a/src-QT4/smalldialogs.h b/src-QT4/smalldialogs.h
new file mode 100644 (file)
index 0000000..56242a8
--- /dev/null
@@ -0,0 +1,118 @@
+/***************************************************************************
+ *   Copyright (C) 2005 by Joachim Eibl                                    *
+ *   joachim.eibl at gmx.de                                                *
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ *   This program is distributed in the hope that it will be useful,       *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
+ *   GNU General Public License for more details.                          *
+ *                                                                         *
+ *   You should have received a copy of the GNU General Public License     *
+ *   along with this program; if not, write to the                         *
+ *   Free Software Foundation, Inc.,                                       *
+ *   51 Franklin Steet, Fifth Floor, Boston, MA 02110-1301, USA.           *
+ ***************************************************************************/
+
+#ifndef SMALLDIALOGS_H
+#define SMALLDIALOGS_H
+
+#include <QDialog>
+
+class Options;
+class QComboBox;
+class QCheckBox;
+class QLineEdit;
+
+class OpenDialog : public QDialog
+{
+   Q_OBJECT
+public:
+   OpenDialog(
+      QWidget* pParent, const QString& n1, const QString& n2, const QString& n3,
+      bool bMerge, const QString& outputName, const char* slotConfigure, Options* pOptions  );
+
+   QComboBox* m_pLineA;
+   QComboBox* m_pLineB;
+   QComboBox* m_pLineC;
+   QComboBox* m_pLineOut;
+
+   QCheckBox* m_pMerge;
+   virtual void accept();
+   virtual bool eventFilter(QObject* o, QEvent* e);
+private:
+   Options* m_pOptions;
+   void selectURL( QComboBox* pLine, bool bDir, int i, bool bSave );
+   bool m_bInputFileNameChanged;
+private slots:
+   void selectFileA();
+   void selectFileB();
+   void selectFileC();
+   void selectDirA();
+   void selectDirB();
+   void selectDirC();
+   void selectOutputName();
+   void selectOutputDir();
+   void internalSlot(int);
+   void inputFilenameChanged();
+   void slotSwapCopyNames(QAction*);
+signals:
+   void internalSignal(bool);
+};
+
+class FindDialog : public QDialog
+{
+   Q_OBJECT
+public:
+   FindDialog(QWidget* pParent);
+   void setVisible(bool); //override QDialog::setVisible()
+
+signals:
+   void findNext();
+
+public:
+   QLineEdit* m_pSearchString;
+   QCheckBox* m_pSearchInA;
+   QCheckBox* m_pSearchInB;
+   QCheckBox* m_pSearchInC;
+   QCheckBox* m_pSearchInOutput;
+   QCheckBox* m_pCaseSensitive;
+
+   int currentLine;
+   int currentPos;
+   int currentWindow;
+};
+
+
+class RegExpTester : public QDialog
+{
+   Q_OBJECT
+private:
+   QLineEdit* m_pAutoMergeRegExpEdit;
+   QLineEdit* m_pAutoMergeMatchResult;
+   QLineEdit* m_pAutoMergeExampleEdit;
+   QLineEdit* m_pHistoryStartRegExpEdit;
+   QLineEdit* m_pHistoryStartMatchResult;
+   QLineEdit* m_pHistoryStartExampleEdit;
+   QLineEdit* m_pHistoryEntryStartRegExpEdit;
+   QLineEdit* m_pHistorySortKeyOrderEdit;
+   QLineEdit* m_pHistoryEntryStartExampleEdit;
+   QLineEdit* m_pHistoryEntryStartMatchResult;
+   QLineEdit* m_pHistorySortKeyResult;
+public:
+   RegExpTester( QWidget* pParent, const QString& autoMergeRegExpToolTip, const QString& historyStartRegExpToolTip, 
+                                   const QString& historyEntryStartRegExpToolTip, const QString& historySortKeyOrderToolTip  );
+   void init( const QString& autoMergeRegExp, const QString& historyStartRegExp, const QString& historyEntryStartRegExp, const QString sortKeyOrder );
+   QString autoMergeRegExp();
+   QString historyStartRegExp();
+   QString historyEntryStartRegExp();
+   QString historySortKeyOrder();
+public slots:
+   void slotRecalc();
+};
+
+#endif
diff --git a/src-QT4/stable.cpp b/src-QT4/stable.cpp
new file mode 100644 (file)
index 0000000..3a4d66c
--- /dev/null
@@ -0,0 +1 @@
+#include "stable.h"
diff --git a/src-QT4/stable.h b/src-QT4/stable.h
new file mode 100644 (file)
index 0000000..a5eae6a
--- /dev/null
@@ -0,0 +1,11 @@
+#ifndef STABLE_H
+#define STABLE_H
+#include <QtCore>
+#include <QtGui>
+#if QT_VERSION>=0x050000
+#include <QtWidgets/QtWidgets>
+#endif
+#ifdef _WIN32
+#include <qt_windows.h>
+#endif
+#endif
diff --git a/src-QT4/version.h b/src-QT4/version.h
new file mode 100644 (file)
index 0000000..73e2e64
--- /dev/null
@@ -0,0 +1,2 @@
+#undef VERSION
+#define VERSION "0.9.98"
diff --git a/src-QT4/xpm/autoadvance.xpm b/src-QT4/xpm/autoadvance.xpm
new file mode 100644 (file)
index 0000000..d499999
--- /dev/null
@@ -0,0 +1,25 @@
+/* XPM */
+static const char *autoadvance[] = {
+/* columns rows colors chars-per-pixel */
+"16 16 3 1",
+". c #0080FF",
+"# c #000000",
+"  c None",
+/* pixels */
+" ##  # # ###  # ",
+"#  # # #  #  # #",
+"#  # # #  #  # #",
+"#### # #  #  # #",
+"#  # ###  #   # ",
+"                ",
+"                ",
+"    ########    ",
+"     #....#     ",
+"      #..#      ",
+"       ##       ",
+"    ########    ",
+"     #....#     ",
+"      #..#      ",
+"       ##       ",
+"                "
+};
diff --git a/src-QT4/xpm/currentpos.xpm b/src-QT4/xpm/currentpos.xpm
new file mode 100644 (file)
index 0000000..c027e6c
--- /dev/null
@@ -0,0 +1,22 @@
+/* XPM */
+static const char *currentpos[]={
+"16 16 3 1",
+"  c #0080FF",
+"# c #000000",
+". c None",
+"................",
+"................",
+"................",
+".#............#.",
+".##..........##.",
+".# #........# #.",
+".#  #..##..#  #.",
+".#   ##  ##   #.",
+".#   #    #   #.",
+".#   ##  ##   #.",
+".#  #..##..#  #.",
+".# #........# #.",
+".##..........##.",
+".#............#.",
+"................",
+"................"};
diff --git a/src-QT4/xpm/down1arrow.xpm b/src-QT4/xpm/down1arrow.xpm
new file mode 100644 (file)
index 0000000..162b692
--- /dev/null
@@ -0,0 +1,25 @@
+/* XPM */
+static const char *down1arrow[] = {
+/* columns rows colors chars-per-pixel */
+"16 16 3 1",
+"  c #0080ff",
+"# c #000000",
+". c None",
+/* pixels */
+"................",
+"................",
+"................",
+"................",
+"................",
+"..############..",
+"...#        #...",
+"....#      #....",
+".....#    #.....",
+"......#  #......",
+".......##.......",
+"................",
+"................",
+"................",
+"................",
+"................"
+};
diff --git a/src-QT4/xpm/down2arrow.xpm b/src-QT4/xpm/down2arrow.xpm
new file mode 100644 (file)
index 0000000..6f34208
--- /dev/null
@@ -0,0 +1,25 @@
+/* XPM */
+static const char *down2arrow[] = {
+/* columns rows colors chars-per-pixel */
+"16 16 3 1",
+"  c #0080ff",
+"# c #000000",
+". c None",
+/* pixels */
+"................",
+"................",
+"..############..",
+"...#        #...",
+"....#      #....",
+".....#    #.....",
+"......#  #......",
+".......##.......",
+"..############..",
+"...#        #...",
+"....#      #....",
+".....#    #.....",
+"......#  #......",
+".......##.......",
+"................",
+"................"
+};
diff --git a/src-QT4/xpm/downend.xpm b/src-QT4/xpm/downend.xpm
new file mode 100644 (file)
index 0000000..214bc8b
--- /dev/null
@@ -0,0 +1,22 @@
+/* XPM */
+static const char *downend[]={
+"16 16 3 1",
+"  c #0080ff",
+"# c #000000",
+". c None",
+"................",
+"................",
+"................",
+"................",
+"................",
+"..############..",
+"...#        #...",
+"....#      #....",
+".....#    #.....",
+"......#  #......",
+".......##.......",
+"..############..",
+"................",
+"................",
+"................",
+"................"};
diff --git a/src-QT4/xpm/file.xpm b/src-QT4/xpm/file.xpm
new file mode 100644 (file)
index 0000000..faf1472
--- /dev/null
@@ -0,0 +1,24 @@
+/* XPM */
+static const char *file_pm[]={
+"16 16 5 1",
+". c None",
+"# c #000000",
+"c c #c0c0c0",
+"b c #dcdcdc",
+"a c #ffffff",
+"..#########.....",
+"..#aaaaaabb#....",
+"..#aaaaaacab#...",
+"..#aaaaaacaab#..",
+"..#aaaaaac####..",
+"..#aaaaaaaccc#..",
+"..#aaaaaaaaaa#..",
+"..#aaaaaaaaaa#..",
+"..#aaaaaaaaaa#..",
+"..#aaaaaaaaaa#..",
+"..#aaaaaaaaaa#..",
+"..#aaaaaaaaaa#..",
+"..#aaaaaaaaaa#..",
+"..#aaaaaaaaaa#..",
+"..#aaaaaaaaaa#..",
+"..############.."};
diff --git a/src-QT4/xpm/filenew.xpm b/src-QT4/xpm/filenew.xpm
new file mode 100644 (file)
index 0000000..2543c9b
--- /dev/null
@@ -0,0 +1,22 @@
+/* XPM */
+static const char * filenew[] = {
+"10 14 5 1",
+"      c None",
+".     c #000000",
+"+     c #FFFFFF",
+"@     c #DCDCDC",
+"#     c #C0C0C0",
+".......   ",
+".++++@@.  ",
+".++++#+@. ",
+".++++#++@.",
+".++++#....",
+".+++++###.",
+".++++++++.",
+".++++++++.",
+".++++++++.",
+".++++++++.",
+".++++++++.",
+".++++++++.",
+".++++++++.",
+".........."};
diff --git a/src-QT4/xpm/fileopen.xpm b/src-QT4/xpm/fileopen.xpm
new file mode 100644 (file)
index 0000000..880417e
--- /dev/null
@@ -0,0 +1,22 @@
+/* XPM */
+static const char *fileopen[] = {
+"    16    13        5            1",
+". c #040404",
+"# c #808304",
+"a c None",
+"b c #f3f704",
+"c c #f3f7f3",
+"aaaaaaaaa...aaaa",
+"aaaaaaaa.aaa.a.a",
+"aaaaaaaaaaaaa..a",
+"a...aaaaaaaa...a",
+".bcb.......aaaaa",
+".cbcbcbcbc.aaaaa",
+".bcbcbcbcb.aaaaa",
+".cbcb...........",
+".bcb.#########.a",
+".cb.#########.aa",
+".b.#########.aaa",
+"..#########.aaaa",
+"...........aaaaa"
+};
diff --git a/src-QT4/xpm/fileprint.xpm b/src-QT4/xpm/fileprint.xpm
new file mode 100644 (file)
index 0000000..6ada912
--- /dev/null
@@ -0,0 +1,24 @@
+/* XPM */
+static const char *fileprint[] = {
+"    16    14        6            1",
+". c #000000",
+"# c #848284",
+"a c #c6c3c6",
+"b c #ffff00",
+"c c #ffffff",
+"d c None",
+"ddddd.........dd",
+"dddd.cccccccc.dd",
+"dddd.c.....c.ddd",
+"ddd.cccccccc.ddd",
+"ddd.c.....c....d",
+"dd.cccccccc.a.a.",
+"d..........a.a..",
+".aaaaaaaaaa.a.a.",
+".............aa.",
+".aaaaaa###aa.a.d",
+".aaaaaabbbaa...d",
+".............a.d",
+"d.aaaaaaaaa.a.dd",
+"dd...........ddd"
+};
diff --git a/src-QT4/xpm/filesave.xpm b/src-QT4/xpm/filesave.xpm
new file mode 100644 (file)
index 0000000..ed3ea96
--- /dev/null
@@ -0,0 +1,21 @@
+/* XPM */
+static const char *filesave[] = {
+"    14    14        3            1",
+". c #040404",
+"# c #808304",
+"a c #bfc2bf",
+"..............",
+".#.aaaaaaaa.a.",
+".#.aaaaaaaa...",
+".#.aaaaaaaa.#.",
+".#.aaaaaaaa.#.",
+".#.aaaaaaaa.#.",
+".#.aaaaaaaa.#.",
+".##........##.",
+".############.",
+".##.........#.",
+".##......aa.#.",
+".##......aa.#.",
+".##......aa.#.",
+"a............."
+};
diff --git a/src-QT4/xpm/folder.xpm b/src-QT4/xpm/folder.xpm
new file mode 100644 (file)
index 0000000..7b2edcd
--- /dev/null
@@ -0,0 +1,24 @@
+/* XPM */
+static const char *folder_pm[]={
+"16 16 5 1",
+". c None",
+"# c #040404",
+"c c #808304",
+"a c #f3f704",
+"b c #f3f7f3",
+"................",
+"................",
+"................",
+".###............",
+"#aba#######.....",
+"#babababab#.....",
+"#ababababa#.....",
+"#baba###########",
+"#aba#ccccccccc#.",
+"#ba#ccccccccc#..",
+"#a#ccccccccc#...",
+"##ccccccccc#....",
+"###########.....",
+"................",
+"................",
+"................"};
diff --git a/src-QT4/xpm/iconA.xpm b/src-QT4/xpm/iconA.xpm
new file mode 100644 (file)
index 0000000..4e44f9f
--- /dev/null
@@ -0,0 +1,22 @@
+/* XPM */
+static const char *iconA[]={
+"16 16 3 1",
+"  c #0080FF",
+"# c #000000",
+". c None",
+"................",
+"................",
+"......###.......",
+".....#   #......",
+"....#  #  #.....",
+"...#  #.#  #....",
+"...# #...# #....",
+"...# #...# #....",
+"...# ##### #....",
+"...#       #....",
+"...# ##### #....",
+"...# #...# #....",
+"...###...###....",
+"................",
+"................",
+"................"};
diff --git a/src-QT4/xpm/iconB.xpm b/src-QT4/xpm/iconB.xpm
new file mode 100644 (file)
index 0000000..9405ee8
--- /dev/null
@@ -0,0 +1,22 @@
+/* XPM */
+static const char *iconB[]={
+"16 16 3 1",
+"  c #0080FF",
+"# c #000000",
+". c None",
+"................",
+"................",
+"...#######......",
+"...#      #.....",
+"...# ####  #....",
+"...# #...# #....",
+"...# ####  #....",
+"...#      #.....",
+"...# ####  #....",
+"...# #...# #....",
+"...# ####  #....",
+"...#      #.....",
+"...#######......",
+"................",
+"................",
+"................"};
diff --git a/src-QT4/xpm/iconC.xpm b/src-QT4/xpm/iconC.xpm
new file mode 100644 (file)
index 0000000..56b7315
--- /dev/null
@@ -0,0 +1,22 @@
+/* XPM */
+static const char *iconC[]={
+"16 16 3 1",
+"  c #0080FF",
+"# c #000000",
+". c None",
+"................",
+"................",
+"......####......",
+".....#    #.....",
+"....#  ### #....",
+"...#  #...##....",
+"...# #..........",
+"...# #..........",
+"...# #..........",
+"...# #..........",
+"...#  #...##....",
+"....#  ### #....",
+".....#    #.....",
+"......####......",
+"................",
+"................"};
diff --git a/src-QT4/xpm/link_arrow.xpm b/src-QT4/xpm/link_arrow.xpm
new file mode 100644 (file)
index 0000000..2ab91e8
--- /dev/null
@@ -0,0 +1,24 @@
+/* XPM */
+static const char *link_arrow[]={
+"16 16 5 1",
+". c None",
+"b c #000000",
+"# c #585858",
+"c c #dcdcdc",
+"a c #ffffff",
+"................",
+"................",
+"................",
+"................",
+"................",
+"................",
+"................",
+"................",
+"########........",
+"#aaaaaab........",
+"#aabbbab........",
+"#aac#bab........",
+"#acbcbab........",
+"#abcaaab........",
+"#aaaaaab........",
+"#bbbbbbb........"};
diff --git a/src-QT4/xpm/nextunsolved.xpm b/src-QT4/xpm/nextunsolved.xpm
new file mode 100644 (file)
index 0000000..0775687
--- /dev/null
@@ -0,0 +1,23 @@
+/* XPM */
+static const char *nextunsolved[]={
+"16 16 4 1",
+". c None",
+"  c #0080ff",
+"# c #000000",
+"a c #ff0000",
+"..############..",
+"...#        #...",
+"....#      #....",
+".....#    #.....",
+"......#  #......",
+"..############..",
+"...#        #...",
+"....#      #....",
+".....#    #.....",
+"......#  #......",
+"..############..",
+"...#aaaaaaaa#...",
+"....#aaaaaa#....",
+".....#aaaa#.....",
+"......#aa#......",
+".......##......."};
diff --git a/src-QT4/xpm/prevunsolved.xpm b/src-QT4/xpm/prevunsolved.xpm
new file mode 100644 (file)
index 0000000..d8d175c
--- /dev/null
@@ -0,0 +1,23 @@
+/* XPM */
+static const char *prevunsolved[]={
+"16 16 4 1",
+"  c #0080ff",
+"# c #000000",
+"a c #ff0000",
+". c None",
+".......##.......",
+"......#aa#......",
+".....#aaaa#.....",
+"....#aaaaaa#....",
+"...#aaaaaaaa#...",
+"..############..",
+"......#  #......",
+".....#    #.....",
+"....#      #....",
+"...#        #...",
+"..############..",
+"......#  #......",
+".....#    #.....",
+"....#      #....",
+"...#        #...",
+"..############.."};
diff --git a/src-QT4/xpm/reload.xpm b/src-QT4/xpm/reload.xpm
new file mode 100644 (file)
index 0000000..d54fec3
--- /dev/null
@@ -0,0 +1,74 @@
+/* XPM */
+static const char *reloadIcon[]={
+"16 16 55 1",
+". c None",
+"e c #25502a",
+"# c #25512b",
+"d c #25522b",
+"g c #26552c",
+"c c #27562e",
+"n c #27582f",
+"b c #28592e",
+"M c #285930",
+"a c #295a2f",
+"q c #295a30",
+"G c #295c31",
+"t c #2a5e31",
+"y c #2b6635",
+"U c #2b6636",
+"Q c #2f703a",
+"H c #327b3d",
+"0 c #36843f",
+"W c #388943",
+"u c #3f7046",
+"r c #42764a",
+"f c #44754b",
+"A c #488653",
+"N c #50995b",
+"K c #529d5f",
+"J c #529f60",
+"m c #53885c",
+"l c #55a161",
+"B c #57a863",
+"R c #5aaa66",
+"I c #5aad69",
+"v c #5baa67",
+"X c #5cb16b",
+"o c #5db469",
+"k c #5eb56c",
+"z c #5eb66b",
+"s c #5fb26d",
+"V c #64b171",
+"Y c #64c274",
+"j c #69c779",
+"Z c #6dc97d",
+"p c #729a77",
+"O c #73c782",
+"i c #7ace89",
+"w c #7bce89",
+"C c #7ecb8b",
+"L c #80d191",
+"h c #80d193",
+"S c #8dd49b",
+"P c #95d8a1",
+"D c #a7ddb1",
+"x c #bde3c2",
+"T c #c0e5c5",
+"E c #daf0de",
+"F c #f9fdf9",
+"................",
+"..#abcde#df.....",
+"..ghhhijklm.....",
+"..nhoooooop.....",
+"..qho....rso....",
+"..tho...uvwxo...",
+"..yhz..ABCDEFo..",
+"gGHhIJJAAKLooo..",
+"MNOPEFo..Qho....",
+".eRSTo...Uho....",
+"..eV.....Uho....",
+"...W.....Qho....",
+"....nXYZihho....",
+"....0ooooooo....",
+"................",
+"................"};
diff --git a/src-QT4/xpm/showequalfiles.xpm b/src-QT4/xpm/showequalfiles.xpm
new file mode 100644 (file)
index 0000000..9fa2e3b
--- /dev/null
@@ -0,0 +1,23 @@
+/* XPM */
+static const char *showequalfiles[]={
+"16 16 4 1",
+"# c None",
+"a c None",
+". c #000000",
+"b c #00ff00",
+"...........##aaa",
+".bbbb.bbbb.##aaa",
+".bbbb.bbbb.##aaa",
+".bbbb.bbbb.##aaa",
+".bbbb.bbbb.##aaa",
+"...........##aaa",
+"aaaaaaaaaaaaaaaa",
+"................",
+"aaaaaaaaaaaaaaaa",
+"................",
+".bbbb.bbbb.bbbb.",
+".bbbb.bbbb.bbbb.",
+".bbbb.bbbb.bbbb.",
+".bbbb.bbbb.bbbb.",
+"................",
+"aaaaaaaaaaaaaaaa"};
diff --git a/src-QT4/xpm/showfilesonlyina.xpm b/src-QT4/xpm/showfilesonlyina.xpm
new file mode 100644 (file)
index 0000000..041b54d
--- /dev/null
@@ -0,0 +1,23 @@
+/* XPM */
+static const char *showfilesonlyina[]={
+"16 16 4 1",
+"# c None",
+"a c None",
+". c #000000",
+"b c #00ff00",
+"...........##aaa",
+".bbbb......##aaa",
+".bbbb......##aaa",
+".bbbb......##aaa",
+".bbbb......##aaa",
+"...........##aaa",
+"aaaaaaaaaaaaaaaa",
+"................",
+"aaaaaaaaaaaaaaaa",
+"................",
+".bbbb...........",
+".bbbb...........",
+".bbbb...........",
+".bbbb...........",
+"................",
+"aaaaaaaaaaaaaaaa"};
diff --git a/src-QT4/xpm/showfilesonlyinb.xpm b/src-QT4/xpm/showfilesonlyinb.xpm
new file mode 100644 (file)
index 0000000..80caaca
--- /dev/null
@@ -0,0 +1,23 @@
+/* XPM */
+static const char *showfilesonlyinb[]={
+"16 16 4 1",
+"# c None",
+"a c None",
+". c #000000",
+"b c #00ff00",
+"...........##aaa",
+"......bbbb.##aaa",
+"......bbbb.##aaa",
+"......bbbb.##aaa",
+"......bbbb.##aaa",
+"...........##aaa",
+"aaaaaaaaaaaaaaaa",
+"................",
+"aaaaaaaaaaaaaaaa",
+"................",
+"......bbbb......",
+"......bbbb......",
+"......bbbb......",
+"......bbbb......",
+"................",
+"aaaaaaaaaaaaaaaa"};
diff --git a/src-QT4/xpm/showfilesonlyinc.xpm b/src-QT4/xpm/showfilesonlyinc.xpm
new file mode 100644 (file)
index 0000000..5f548a4
--- /dev/null
@@ -0,0 +1,22 @@
+/* XPM */
+static const char *showfilesonlyinc[]={
+"16 16 3 1",
+". c None",
+"# c #000000",
+"a c #00ff00",
+"................",
+"................",
+"................",
+"................",
+"................",
+"################",
+"###########aaaa#",
+"###########aaaa#",
+"###########aaaa#",
+"###########aaaa#",
+"################",
+"................",
+"................",
+"................",
+"................",
+"................"};
diff --git a/src-QT4/xpm/showlinenumbers.xpm b/src-QT4/xpm/showlinenumbers.xpm
new file mode 100644 (file)
index 0000000..fb697dc
--- /dev/null
@@ -0,0 +1,21 @@
+/* XPM */
+static const char *showlinenumbers[]={
+"16 16 2 1",
+". c None",
+"# c #000040",
+"................",
+"................",
+"................",
+"................",
+"...#...##..###..",
+"..##..#..#....#.",
+"...#.....#....#.",
+"...#....#...##..",
+"...#...#......#.",
+"...#..#.......#.",
+"..###.####.###..",
+"................",
+"................",
+"................",
+"................",
+"................"};
diff --git a/src-QT4/xpm/showwhitespace.xpm b/src-QT4/xpm/showwhitespace.xpm
new file mode 100644 (file)
index 0000000..2112e91
--- /dev/null
@@ -0,0 +1,22 @@
+/* XPM */
+static const char *showwhitespace[]={
+"16 16 3 1",
+". c None",
+"# c #000000",
+"a c #ffffff",
+"................",
+"................",
+"..############..",
+"..#aaaaaaaaaa#..",
+"..#aaaaaaaaaa#..",
+"..#aaaaaaaaaa#..",
+"..#aaaaaaaaaa#..",
+"..#aaaaaaaaaa#..",
+"..#aaaaaaaaaa#..",
+"..#aaaaaaaaaa#..",
+"..#aaaaaaaaaa#..",
+"..#aaaaaaaaaa#..",
+"..#aaaaaaaaaa#..",
+"..############..",
+"................",
+"................"};
diff --git a/src-QT4/xpm/showwhitespacechars.xpm b/src-QT4/xpm/showwhitespacechars.xpm
new file mode 100644 (file)
index 0000000..0a637ae
--- /dev/null
@@ -0,0 +1,21 @@
+/* XPM */
+static const char *showwhitespacechars[]={
+"16 16 2 1",
+". c None",
+"# c #000040",
+"................",
+"................",
+"................",
+"................",
+"................",
+"................",
+"................",
+"................",
+"................",
+"................",
+".####.####.####.",
+".####.####.####.",
+"................",
+"................",
+"................",
+"................"};
diff --git a/src-QT4/xpm/startmerge.xpm b/src-QT4/xpm/startmerge.xpm
new file mode 100644 (file)
index 0000000..7162719
--- /dev/null
@@ -0,0 +1,25 @@
+/* XPM */
+static const char *startmerge[]={
+"16 16 6 1",
+". c None",
+"# c #000000",
+"b c #0000ff",
+"c c #00ffff",
+"d c #ff0000",
+"a c #ffff00",
+".......##.......",
+"......#aa#......",
+"......#aa#......",
+"...b.b.##.b.b...",
+"...bb......bb...",
+"...bbb....bbb...",
+".##..........##.",
+"#cc#........#cc#",
+"#cc#........#cc#",
+".##.b.b..b.b.##.",
+".....bb..bb.....",
+"....bbb..bbb....",
+".......##.......",
+"......#dd#......",
+"......#dd#......",
+".......##......."};
diff --git a/src-QT4/xpm/up1arrow.xpm b/src-QT4/xpm/up1arrow.xpm
new file mode 100644 (file)
index 0000000..3e144ba
--- /dev/null
@@ -0,0 +1,22 @@
+/* XPM */
+static const char *up1arrow[]={
+"16 16 3 1",
+". c None",
+"# c #000000",
+"a c #0080ff",
+"................",
+"................",
+"................",
+"................",
+"................",
+".......##.......",
+"......#aa#......",
+".....#aaaa#.....",
+"....#aaaaaa#....",
+"...#aaaaaaaa#...",
+"..############..",
+"................",
+"................",
+"................",
+"................",
+"................"};
diff --git a/src-QT4/xpm/up2arrow.xpm b/src-QT4/xpm/up2arrow.xpm
new file mode 100644 (file)
index 0000000..ebe933b
--- /dev/null
@@ -0,0 +1,25 @@
+/* XPM */
+static const char *up2arrow[] = {
+/* columns rows colors chars-per-pixel */
+"16 16 3 1",
+"  c #0080ff",
+"# c #000000",
+". c None",
+/* pixels */
+"................",
+"................",
+".......##.......",
+"......#  #......",
+".....#    #.....",
+"....#      #....",
+"...#        #...",
+"..############..",
+".......##.......",
+"......#  #......",
+".....#    #.....",
+"....#      #....",
+"...#        #...",
+"..############..",
+"................",
+"................"
+};
diff --git a/src-QT4/xpm/upend.xpm b/src-QT4/xpm/upend.xpm
new file mode 100644 (file)
index 0000000..167433d
--- /dev/null
@@ -0,0 +1,22 @@
+/* XPM */
+static const char *upend[]={
+"16 16 3 1",
+"  c #0080ff",
+"# c #000000",
+". c None",
+"................",
+"................",
+"................",
+"................",
+"..############..",
+".......##.......",
+"......#  #......",
+".....#    #.....",
+"....#      #....",
+"...#        #...",
+"..############..",
+"................",
+"................",
+"................",
+"................",
+"................"};
diff --git a/test/alignmenttest.cpp b/test/alignmenttest.cpp
new file mode 100644 (file)
index 0000000..09a1aa9
--- /dev/null
@@ -0,0 +1,281 @@
+// vim:sw=3:ts=3:expandtab
+
+#include <iostream>
+#include <stdio.h>
+
+#include <QDirIterator>
+#include <QTextCodec>
+#include <QTextStream>
+
+#include "diff.h"
+#include "gnudiff_diff.h"
+#include "options.h"
+#include "progress.h"
+
+#define i18n(s) s
+
+
+Options *m_pOptions = NULL;
+ManualDiffHelpList m_manualDiffHelpList;
+
+bool g_bIgnoreWhiteSpace = true;
+bool g_bIgnoreTrivialMatches = true;
+
+
+void determineFileAlignment(SourceData &m_sd1, SourceData &m_sd2, SourceData &m_sd3, Diff3LineList &m_diff3LineList)
+{
+   DiffList m_diffList12;
+   DiffList m_diffList23;
+   DiffList m_diffList13;
+
+   m_diff3LineList.clear();
+
+   // Run the diff.
+   if ( m_sd3.isEmpty() )
+   {
+      runDiff( m_sd1.getLineDataForDiff(), m_sd1.getSizeLines(), m_sd2.getLineDataForDiff(), m_sd2.getSizeLines(), m_diffList12,1,2,
+               &m_manualDiffHelpList, m_pOptions);
+      calcDiff3LineListUsingAB( &m_diffList12, m_diff3LineList );
+      fineDiff( m_diff3LineList, 1, m_sd1.getLineDataForDisplay(), m_sd2.getLineDataForDisplay() );
+   }
+   else
+   {
+      runDiff( m_sd1.getLineDataForDiff(), m_sd1.getSizeLines(), m_sd2.getLineDataForDiff(), m_sd2.getSizeLines(), m_diffList12,1,2,
+               &m_manualDiffHelpList, m_pOptions);
+      runDiff( m_sd2.getLineDataForDiff(), m_sd2.getSizeLines(), m_sd3.getLineDataForDiff(), m_sd3.getSizeLines(), m_diffList23,2,3,
+               &m_manualDiffHelpList, m_pOptions);
+      runDiff( m_sd1.getLineDataForDiff(), m_sd1.getSizeLines(), m_sd3.getLineDataForDiff(), m_sd3.getSizeLines(), m_diffList13,1,3,
+               &m_manualDiffHelpList, m_pOptions);
+
+      calcDiff3LineListUsingAB( &m_diffList12, m_diff3LineList );
+      calcDiff3LineListUsingAC( &m_diffList13, m_diff3LineList );
+      correctManualDiffAlignment( m_diff3LineList, &m_manualDiffHelpList );
+      calcDiff3LineListTrim( m_diff3LineList, m_sd1.getLineDataForDiff(), m_sd2.getLineDataForDiff(), m_sd3.getLineDataForDiff(), &m_manualDiffHelpList );
+
+      if ( m_pOptions->m_bDiff3AlignBC )
+      {
+         calcDiff3LineListUsingBC( &m_diffList23, m_diff3LineList );
+         correctManualDiffAlignment( m_diff3LineList, &m_manualDiffHelpList );
+         calcDiff3LineListTrim( m_diff3LineList, m_sd1.getLineDataForDiff(), m_sd2.getLineDataForDiff(), m_sd3.getLineDataForDiff(), &m_manualDiffHelpList );
+      }
+
+      fineDiff( m_diff3LineList, 1, m_sd1.getLineDataForDisplay(), m_sd2.getLineDataForDisplay() );
+      fineDiff( m_diff3LineList, 2, m_sd2.getLineDataForDisplay(), m_sd3.getLineDataForDisplay() );
+      fineDiff( m_diff3LineList, 3, m_sd3.getLineDataForDisplay(), m_sd1.getLineDataForDisplay() );
+   }
+   calcWhiteDiff3Lines( m_diff3LineList, m_sd1.getLineDataForDiff(), m_sd2.getLineDataForDiff(), m_sd3.getLineDataForDiff() );
+}
+
+
+void printDiffList(const Diff3LineList &diff3LineList,
+                   const SourceData &sd1,
+                   const SourceData &sd2,
+                   const SourceData &sd3)
+{
+   const int columnsize = 30;
+   const int linenumsize = 6;
+   Diff3LineList::const_iterator i;
+   for ( i=diff3LineList.begin(); i!=diff3LineList.end(); ++i )
+   {
+      QTextStream out(stdout);
+      QString lineAText;
+      QString lineBText;
+      QString lineCText;
+
+      const Diff3Line& d3l = *i;
+
+      if(d3l.lineA != -1)
+      {
+         const LineData *pLineData = &sd1.getLineDataForDiff()[d3l.lineA];
+         lineAText = QString(pLineData->pLine, pLineData->size);
+         lineAText = QString("%1 %2").arg(d3l.lineA, linenumsize).arg(lineAText.left(columnsize - linenumsize - 1));
+      }
+
+      if(d3l.lineB != -1)
+      {
+         const LineData *pLineData = &sd2.getLineDataForDiff()[d3l.lineB];
+         lineBText = QString(pLineData->pLine, pLineData->size);
+         lineBText = QString("%1 %2").arg(d3l.lineB, linenumsize).arg(lineBText.left(columnsize - linenumsize - 1));
+      }
+
+      if(d3l.lineC != -1)
+      {
+         const LineData *pLineData = &sd3.getLineDataForDiff()[d3l.lineC];
+         lineCText = QString(pLineData->pLine, pLineData->size);
+         lineCText = QString("%1 %2").arg(d3l.lineC, linenumsize).arg(lineCText.left(columnsize - linenumsize - 1));
+      }
+
+      out << QString("%1 %2 %3").arg(lineAText, -columnsize)
+                                .arg(lineBText, -columnsize)
+                                .arg(lineCText, -columnsize) + "\n";
+   }
+}
+
+
+void loadExpectedAlignmentFile(QString expectedResultFileName, Diff3LineList &expectedDiff3LineList)
+{
+   Diff3Line d3l;
+
+   expectedDiff3LineList.clear();
+
+   QFile file(expectedResultFileName);
+   QString line;
+   if ( file.open(QIODevice::ReadOnly) )
+   {
+      QTextStream t( &file );
+      while ( !t.atEnd() )
+      {
+         QStringList lst = t.readLine().split(QRegExp("\\s+"));
+         d3l.lineA = lst.at(0).toInt();
+         d3l.lineB = lst.at(1).toInt();
+         d3l.lineC = lst.at(2).toInt();
+
+         expectedDiff3LineList.push_back( d3l );
+      }
+      file.close();
+   }
+}
+
+void writeActualAlignmentFile(QString actualResultFileName, const Diff3LineList &actualDiff3LineList)
+{
+   Diff3LineList::const_iterator p_d3l;
+
+   QFile file(actualResultFileName);
+   if ( file.open(QIODevice::WriteOnly) )
+   {
+      {
+         QTextStream t( &file );
+
+         for(p_d3l = actualDiff3LineList.begin(); p_d3l != actualDiff3LineList.end(); p_d3l++)
+         {
+            t << p_d3l->lineA << " " << p_d3l->lineB << " " << p_d3l->lineC << endl;
+         }
+      }
+      file.close();
+   }
+}
+
+bool runTest(QString file1, QString file2, QString file3, QString expectedResultFile, QString actualResultFile, int maxLength)
+{
+   Options options;
+   Diff3LineList actualDiff3LineList, expectedDiff3LineList;
+   QTextCodec *p_codec = QTextCodec::codecForName("UTF-8");
+   QTextStream out(stdout);
+
+   options.m_bIgnoreCase = false;
+   options.m_bDiff3AlignBC = true;
+
+   m_pOptions = &options;
+
+   SourceData m_sd1, m_sd2, m_sd3;
+
+   QString msgprefix = "Running test with ";
+   QString filepattern = QString(file1).replace("_base.", "_*.");
+   QString msgsuffix = QString("...%1").arg("", maxLength - filepattern.length());
+   out << msgprefix << filepattern << msgsuffix;
+   out.flush();
+
+   m_sd1.setOptions(&options);
+   m_sd1.setFilename(file1);
+   m_sd1.readAndPreprocess(p_codec, false);
+
+   m_sd2.setOptions(&options);
+   m_sd2.setFilename(file2);
+   m_sd2.readAndPreprocess(p_codec, false);
+
+   m_sd3.setOptions(&options);
+   m_sd3.setFilename(file3);
+   m_sd3.readAndPreprocess(p_codec, false);
+
+   determineFileAlignment(m_sd1, m_sd2, m_sd3, actualDiff3LineList);
+
+   loadExpectedAlignmentFile(expectedResultFile, expectedDiff3LineList);
+
+   Diff3LineList::iterator p_actual = actualDiff3LineList.begin();
+   Diff3LineList::iterator p_expected = expectedDiff3LineList.begin();
+   bool equal = true;
+
+   equal = (actualDiff3LineList.size() == expectedDiff3LineList.size());
+
+   while(equal && (p_actual != actualDiff3LineList.end()))
+   {
+      equal = (p_actual->lineA == p_expected->lineA) &&
+              (p_actual->lineB == p_expected->lineB) &&
+              (p_actual->lineC == p_expected->lineC);
+      p_actual++;
+      p_expected++;
+   }
+
+   if(equal)
+   {
+      out << "OK" << endl;
+   }
+   else
+   {
+      out << "NOK" << endl;
+
+      writeActualAlignmentFile(actualResultFile, actualDiff3LineList);
+
+      out << "Actual result (written to " << actualResultFile << "):" << endl;
+      out << "----------------------------------------------------------------------------------------------" << endl;
+      printDiffList(actualDiff3LineList, m_sd1, m_sd2, m_sd3);
+      out << "----------------------------------------------------------------------------------------------" << endl;
+      out << "Expected result:" << endl;
+      out << "----------------------------------------------------------------------------------------------" << endl;
+      printDiffList(expectedDiff3LineList, m_sd1, m_sd2, m_sd3);
+      out << "----------------------------------------------------------------------------------------------" << endl;
+   }
+
+   return equal;
+}
+
+int main()
+{
+   bool allOk = true;
+   int maxLength = 0;
+   QTextStream out(stdout);
+   QDir testdatadir("testdata");
+
+   QStringList nameFilter;
+   nameFilter << "*_base.*";
+
+   QStringList baseFiles = testdatadir.entryList(nameFilter, QDir::Files, QDir::Name);
+   QListIterator<QString> it(baseFiles);
+
+   for (int i = 0; i < baseFiles.size(); i++)
+   {
+      maxLength = std::max(baseFiles.at(i).length(), maxLength);
+   }
+   maxLength += testdatadir.path().length() + 1;
+
+   while (it.hasNext())
+   {
+      QString fileName = testdatadir.path() + QDir::separator() + it.next();
+
+      QRegExp baseFileRegExp("(.*)_base\\.(.*)");
+      baseFileRegExp.exactMatch(fileName);
+
+      QString prefix = baseFileRegExp.cap(1);
+      QString suffix = baseFileRegExp.cap(2);
+
+      QString contrib1FileName(prefix + "_contrib1." + suffix);
+      QString contrib2FileName(prefix + "_contrib2." + suffix);
+      QString expectedResultFileName(prefix + "_expected_result." + suffix);
+      QString actualResultFileName(prefix + "_actual_result." + suffix);
+
+      if(QFile(contrib1FileName).exists() &&
+         QFile(contrib2FileName).exists() &&
+         QFile(expectedResultFileName).exists())
+      {
+         bool ok = runTest(fileName, contrib1FileName, contrib2FileName, expectedResultFileName, actualResultFileName, maxLength);
+
+         allOk = allOk && ok;
+      }
+      else
+      {
+         out << "Skipping " << fileName << " " << contrib1FileName << " " << contrib2FileName << " " << expectedResultFileName << " " << endl;
+      }
+   }
+
+   return allOk ? 0 : -1;
+}
diff --git a/test/fakefileaccess.cpp b/test/fakefileaccess.cpp
new file mode 100644 (file)
index 0000000..858d56e
--- /dev/null
@@ -0,0 +1,107 @@
+#include <assert.h>
+#include "fileaccess.h"
+
+FileAccess::FileAccess()
+{
+}
+
+FileAccess::FileAccess(const QString& name, bool bWantToWrite)
+{
+  assert(!bWantToWrite);
+
+  m_name = name;
+}
+
+FileAccess::~FileAccess()
+{
+}
+
+//   FileAccess( const QString& name, bool bWantToWrite=false ); // name: local file or dirname or url (when supported)
+//   void setFile( const QString& name, bool bWantToWrite=false );
+//
+bool FileAccess::isValid() const
+{
+  return m_name.length() != 0;
+}
+
+//   bool isFile() const;
+//   bool isDir() const;
+//   bool isSymLink() const;
+bool FileAccess::exists() const
+{
+  assert(FALSE);
+}
+qint64 FileAccess::size() const
+{
+  assert(FALSE);
+}
+
+qint64 FileAccess::sizeForReading()
+{
+  assert(FALSE);
+}
+
+//   bool isReadable() const;
+//   bool isWritable() const;
+//   bool isExecutable() const;
+//   bool isHidden() const;
+//   QString readLink() const;
+//
+//   QDateTime   created()       const;
+//   QDateTime   lastModified()  const;
+//   QDateTime   lastRead()      const;
+//
+//   QString fileName() const; // Just the name-part of the path, without parent directories
+//   QString filePath() const; // The path-string that was used during construction
+QString FileAccess::prettyAbsPath() const
+{
+  assert(FALSE);
+}
+//   KUrl url() const;
+QString FileAccess::absoluteFilePath() const
+{
+  return "";
+}
+
+bool FileAccess::isLocal() const
+{
+  return true;
+}
+
+bool FileAccess::readFile(void* pDestBuffer, unsigned long maxLength )
+{
+  assert(FALSE);
+}
+bool FileAccess::writeFile(const void* pSrcBuffer, unsigned long length )
+{
+  assert(FALSE);
+}
+
+//   bool listDir( t_DirectoryList* pDirList, bool bRecursive, bool bFindHidden,
+//                 const QString& filePattern, const QString& fileAntiPattern,
+//                 const QString& dirAntiPattern, bool bFollowDirLinks, bool bUseCvsIgnore );
+bool FileAccess::copyFile( const QString& destUrl )
+{
+  assert(FALSE);
+}
+//   bool createBackup( const QString& bakExtension );
+//
+QString FileAccess::tempFileName()
+{
+  assert(FALSE);
+}
+
+bool FileAccess::removeTempFile( const QString& )
+{
+  assert(FALSE);
+}
+
+/*bool FileAccess::removeFile()
+{
+  assert(FALSE);
+}*/
+bool FileAccess::removeFile( const QString& )
+{
+  assert(FALSE);
+}
+
diff --git a/test/fakekdiff3_part.cpp b/test/fakekdiff3_part.cpp
new file mode 100644 (file)
index 0000000..2c47b5f
--- /dev/null
@@ -0,0 +1,7 @@
+extern "C"
+{
+    void* init_libkdiff3part()
+    {
+        return 0;
+    }
+}
diff --git a/test/fakeoptiondialog.cpp b/test/fakeoptiondialog.cpp
new file mode 100644 (file)
index 0000000..610b3d8
--- /dev/null
@@ -0,0 +1,3 @@
+#include "optiondialog.h"
+
+
diff --git a/test/fakeprogressproxy.cpp b/test/fakeprogressproxy.cpp
new file mode 100644 (file)
index 0000000..9eb24a8
--- /dev/null
@@ -0,0 +1,76 @@
+#include <assert.h>
+#include "progress.h"
+
+void ProgressDialog::delayedHide()
+{
+}
+
+void ProgressDialog::slotAbort()
+{
+}
+
+void ProgressDialog::reject()
+{
+}
+
+void ProgressDialog::timerEvent(QTimerEvent*)
+{
+}
+
+ProgressProxy::ProgressProxy()
+{
+}
+
+ProgressProxy::~ProgressProxy()
+{
+}
+
+void ProgressProxy::setInformation( const QString& info, bool bRedrawUpdate )
+{
+  /* Suppress warning about unused parameters */
+  (void)info;
+  (void)bRedrawUpdate;
+}
+
+void ProgressProxy::setInformation( const QString& info, double dCurrent, bool bRedrawUpdate )
+{
+  /* Suppress warning about unused parameters */
+  (void)info;
+  (void)dCurrent;
+  (void)bRedrawUpdate;
+}
+
+void ProgressProxy::setCurrent( double dCurrent, bool bRedrawUpdate )
+{
+  /* Suppress warning about unused parameters */
+  (void)dCurrent;
+  (void)bRedrawUpdate;
+}
+
+void ProgressProxy::step( bool bRedrawUpdate )
+{
+  /* Suppress warning about unused parameters */
+  (void)bRedrawUpdate;
+}
+
+bool ProgressProxy::wasCancelled()
+{
+  return false;
+}
+
+void ProgressProxy::exitEventLoop()
+{
+}
+
+void ProgressProxy::enterEventLoop( KJob* pJob, const QString& jobInfo )
+{
+  /* Suppress warning about unused parameters */
+  (void)pJob;
+  (void)jobInfo;
+}
+
+QDialog *ProgressProxy::getDialog()
+{
+  return NULL;
+}
+
diff --git a/test/testdata/1_simpletest_base.txt b/test/testdata/1_simpletest_base.txt
new file mode 100644 (file)
index 0000000..cfe6960
--- /dev/null
@@ -0,0 +1,2 @@
+same everywhere
+
diff --git a/test/testdata/1_simpletest_contrib1.txt b/test/testdata/1_simpletest_contrib1.txt
new file mode 100644 (file)
index 0000000..9b11be5
--- /dev/null
@@ -0,0 +1,6 @@
+same in b and c
+only in b
+again same in b and c
+same in b and c except for space
+same everywhere
+
diff --git a/test/testdata/1_simpletest_contrib2.txt b/test/testdata/1_simpletest_contrib2.txt
new file mode 100644 (file)
index 0000000..61afd81
--- /dev/null
@@ -0,0 +1,5 @@
+same in b and c
+again same in b and c
+same  in b and c except for space
+same everywhere
+
diff --git a/test/testdata/1_simpletest_expected_result.txt b/test/testdata/1_simpletest_expected_result.txt
new file mode 100644 (file)
index 0000000..609d069
--- /dev/null
@@ -0,0 +1,7 @@
+-1 0 0
+-1 1 -1
+-1 2 1
+-1 3 2
+0 4 3
+1 5 4
+2 6 5
diff --git a/test/testdata/README b/test/testdata/README
new file mode 100644 (file)
index 0000000..cbd6a9a
--- /dev/null
@@ -0,0 +1,43 @@
+Adding test cases
+-----------------
+
+Each test case consists of 4 files: three files with input data and one
+file that contains the expected vertical alignment chosen by kdiff3.
+
+Test data files should follow this naming convention:
+ *_base.*
+ *_contrib1.*
+ *_contrib2.*
+ *_expected_result.*
+
+The test automatically detects files that follow this convention and executes the
+test on these sets of files in alphabetical order.
+
+
+Specifying expected alignment
+-----------------------------
+
+Each line in the alignment file corresponds to a line in the diff view of
+kdiff3 and consists of the three line numbers from files A, B and C that are
+put on that line in the diff view.
+
+So for instance if file A contains two lines, file B is empty and file C
+contains one line that is the same as the second line in A, kdiff3 may align
+them like this in the diff view:
+
+A:                   B:                 C:
+something                               
+something else                          something else
+
+An alignment file for this alignment would look like this:
+1 -1 -1
+2 -1  1
+
+As you can see -1 is used to indicate that a line in the diff view does not
+contain a line from the input file.
+
+
+--
+Maurice van der Pot
+griffon26@kfk4ever.com
+
diff --git a/test/tests.pro b/test/tests.pro
new file mode 100644 (file)
index 0000000..a276cb6
--- /dev/null
@@ -0,0 +1,29 @@
+TEMPLATE = app
+CONFIG  += qt warn_on thread precompile_header debug
+
+HEADERS  = ../src-QT4/kreplacements/kreplacements.h \
+           ../src-QT4/fileaccess.h \
+           ../src-QT4/progress.h
+SOURCES = alignmenttest.cpp \
+          ../src-QT4/common.cpp \
+          ../src-QT4/diff.cpp \
+          ../src-QT4/fileaccess.cpp \
+          ../src-QT4/gnudiff_analyze.cpp \
+          ../src-QT4/gnudiff_io.cpp \
+          ../src-QT4/gnudiff_xmalloc.cpp \
+          ../src-QT4/kreplacements/kreplacements.cpp \
+          fakekdiff3_part.cpp \
+          fakeprogressproxy.cpp
+
+
+TARGET = alignmenttest
+INCLUDEPATH += ../src-QT4 ../src-QT4/kreplacements
+
+
+
+QMAKE_EXTRA_TARGETS = check
+
+check.depends = alignmenttest
+check.commands = ./alignmenttest
+
+